 Yay, so we have this JavaScript that we were working on for a while now, we actually came to a point where we started from scratch using a code for a different application, now it's working okay, it's 226 lines of code, we also have this lask application Python code that's currently running locally, that is what the front page looks like, the new feature is that it's also converting this AG into sound. So that's how it sounds like when you scroll through this file channel seven. So this is the whole segment as the seizure in it on different channels. So this channel 14 actually sounds more interesting. So that's what the seizure sounded like kind of can hear what the difference between seizure and no seizure. But yes, it's not great, we'll be trying to improve it in the future. One of the problems, for example, for future improvement is the fact that the wavelet denoising doesn't actually make much difference. Does make difference at all for in terms of the sound makes a little bit of difference. You can actually see the difference over there. Yeah, this is two of them overlaid on top of one another, you can see it even more. And how different wavelets are doing it's what it's giving in the air and why. It seems like by orthogonal, a 1.1 makes the larger difference. Yeah, if the trending is off, the filtering doesn't really work. There's also this crackling noise when nodes are changing. It's only happening when scrolling we actually tried addressing it yesterday. So I'm wondering, wondering now if a Python was the last code that was uploaded to change up if if I ask any questions now it will try and address them through Python code instead of JavaScript. I don't know. There is a bit of crackling noise when nodes are changing. So when scrolling through the e g file, there's some sort of sound interference seem to be between the different nodes. Yeah, I think we checked it yesterday wasn't the buffering, but something else essentially now, if you can hear it, but it's doing some sort of decay. So it's not just turning the note off when it's playing, but it should be a function for it should be some sort of delay. Why don't I see that code? Actually, unusual. It should be changing play frequency is function. Yeah, this RAM, right? Yeah, this duration, increase that is not working as expected. Make any difference. You need to see for any magic numbers, this duration is longer. Yeah, there is this crackling sound between a when scrolling the cell 14 or something. It's something more interesting. Yeah, I don't know if you can hear it as well, but I'm gonna get rid of that crackling sound between nodes. What could it be? Audio buffering issue? Yeah, we are using for a sine waves playing at the same time. This tells you how the mapping is actually happening. No, it's not like a normalize power. It's the normalize power range. It should be from zero to one. So based on the code, what normalize power range. Yes, it was normally way too small. We should have had the amplitudes as well. Numbers seem to be too small. We are just the maximum power to 2000 instead of 3000. So yeah, this normalize power for Delta band is higher. It's going up to 15k. This number is very low. Right, so now it's more sensitive and these numbers go get some larger closer to one value as well. So that was a better or not. It essentially became way more sensitive. It actually shows you the exact mapping reducing a maximum power from 3000 to 100. What would this do? Right, so it's not clipping in this particular case, but yes, it might clip with other signals. I don't know if this power goes higher than the current at 20k. Right, yeah, they're definitely more noticeable. Using the maximum power to more realistic, like 100 might provide normalization that is more representative of actual power distribution. Yes, so this power distribution, the normalize power distribution is more realistic, yes. So that's what seizure sounds like on channel 15. A little clip over there, to remove more power in there. I was trying to see what the effect window size has. Why is it only two powers? No, it is clipping. Right, so it is clipping on channel 14. That's the problem. Yes, when the mapping is one, that means the normalize power is clipping. So how bad is it? Because it's still playing a note. And let's just double check it should be playing the highest note using index 36, playing as C6. Check the code using index 36, C6. Yes, it's playing the highest note in the delta range. It should be also playing the highest note in theta range, in alpha range, the mapping power, the power, the normalize power is 0.57, which translates into G5. So G5 should be somewhere in the middle of between E3 and E6. Anyway, reducing this max power, essentially a magic number, because it's not a maximum power, it's the maximum normalize power anyway, but that's resulting in normalized numbers between 0 and 1. I have channel 7 as default. It's not the most interesting one. Music wise, 15 sounds a bit better. Let's try 30 and we haven't tried 30. So window size obviously matters a lot. Let's try 5, 6. You can also use your keyboards. The other thing there's an obvious overlap. Yeah, the overlap quite a bit. That's the other problem. Yeah, we actually should have something that changes by how much the scroll is moving. It should depend on the window size. We have this standard 8, 10 seconds. Anyway, you can use your keyboard mouse. There's an overlap in the scrolling. Just kind of obvious we can change that. So on one hand, we want to keep as many things as default as possible. On the other hand, we want to give you more control over how this works. So let me know what you think. Essentially, all these variables, they could be made well, they're not constant, but they are, well, I call them magic numbers, but let's see if it understands magic numbers in programming as a numeric value that is used in the code without any explanation of what it represents. That's right. There's magic numbers in the provided code. File scroller. Yes, this file scroller is important. We have the volume. The volume seemed to be okay. Well, yeah, that's the one I can let you adjust like the user to adjust actually, but that's probably a bad idea duration. Yeah, could let a we could have a slider for the duration as well. I know the 10 is passing into base 10. So note that is explainable. That's not magic. A volume duration is the magic numbers. We can just let the user control those. Yes, 1000 if it's converting from seconds to milliseconds, it's not that it's not a magic number as well as we know why it's 1000. Yeah, those are magic numbers. The zero for mean and max normalized power, minimum maximum power values used for normalization. The 100 there is a magic number that will be harder to explain. Why is it 100? Step 11. Start node index. This is the index of the last node in the nodes array. Why? Well, because there's 11 of those. I don't know why there's 11 of those 49. It's a constant using a formula to convert a node to a frequency. Yeah, figure these three and one looks like magic numbers to me that seem to just work. Yeah, we might add the volume and duration this stage. It's how all channels sound like. Yeah, I don't think we look at one as well. It's not clipping if it sounds any better or worse. We also ideally have a selection of the musical instrument. I actually want to extract some other features, not just a power in each frequency band and turn them into a map them into pitch and timbre. If I continue this next time, let me know if there's any relevant questions and I'll see you later. Bye.