 So, we have a thing working now, but yeah, obviously it needs a lot more work, it's currently playing random musical notes, and let's see what we've got, this code seems to work now. When you scroll through, EG generates these musical notes, which is fine, except that should be dynamically generated. How to modify the code to generate musical notes dynamically from EG data frequency components. See what we get. Yeah, we already have the mapping bit, so it's going places now. It's different to what we had. Yeah, that sounds the chip, we need to find closest musical note to EG frequency. We already have this code. Yeah, we do want to segment into smaller parts. Yeah, we will do a linear interpolation. That's probably the chip before. Yeah, yeah, probably should start the new code. We just need to fix this EG. It's not currently being used because it's commented out. Yeah, a bunch of those, and the names, I don't know why I need the note names, but okay. So, getData is okay. ConvertNg is partially commented out. The active part generated list of musical notes presumably based on the EG data, and returns them as Gs, and the concept part is to tend to more complex EG data processing. Yeah, that's right. In case this notes, the problem is that if the notes, if I call it that, it will stop working. If I need that, well, EG data should be there. Again, it's a problem here, converting the data, and it will show a different channel after a while, but converting EG data. This argument requesting business is meant to be default because that's not the right number. Right, it's printing the data, okay. I'm getting this era G loading check of channel, and let's go one by one. Ensure that load underscore data function is correctly reading and processing the EG data. Well, that's okay. Load data is returning to the EG. The issue might be in the scaling or mapping of the EG frequencies to musical notes. Currently, it seems like you're returning a hard coded response with notes C4, D4, E4. If this is for testing purposes, ensure that the actual data processing logic is correctly implemented and used. Yeah, it must be mismatched there. So the coded work, this one. And so I know this code worked, looks the same. The only difference is how this code is structured. It's all being converted to EG. It's the musical notes instead. Yes, that's what the seizure sounds like, I think. Let's double check the code. Let's save this quickly because it has something useful. Yeah, I can get rid of some of the commented out. That was just for testing. You can print the musical notes and check this scale. Need to stop playing some sort of button. Actually not meant to be playing multiple times. We can't really call it music, but let's see if we can improve it. The mapping, there's some fancy neural network something for the mapping instead of what's currently linear interpolation. Yes, we don't actually need it. It's now happening twice. Yeah, load data is in a separate function, but this one, that is also a problem. Scrolling is still late. On sessions, late several times, and the slider is moved. Yeah, it depends on throttle. Good idea. Yeah, we do want to do that. What other things? Right, still a print playback. I haven't thought about it. What does that mean? Okay, yeah, that's actually what I want. Yeah, I'm thinking of fixing it in the back end instead. We'll have this DJ feel to it when you actually move the sliders. I'm not sure if I should be doing it front end or back end. This one makes a lot of sense. Canceling previous requests. Holiday request parameters. Should it stop playing or play on top of it? It's kind of tempting data slider thing. So instead of that, the bouncing didn't really work, did it? Don't use the web media anymore, do we? So if I click on it only once, okay, and reduce the window size to 10. Yeah, it's not affected by the window size, there's a problem. Count is always 100. Fix code. Yes, it should be default. That's not just getting the value from the document from the front panel. Okay, made global, isn't it? So that will be the default. That's the whole update data function. The application, see what it says. 10 windows. So let's test this. Okay, having a problem. Channel zero, strike it again. Start is not defined. JS, JavaScript, line 81, change, convert agent to music. Yes. Get rid of that error. Let's make the window size 10. Okay, so that's what the seizure sounds like. At the end here, we should have no seizure. Okay, first of all, it's playing the same. Let's stop this. It's still playing the same thing over and over again. Now it's changing with the slider. That's good. Let's quickly just keep testing this for a sec. Just try a different channel, different ng-chill. And why is all this errors? Not the errors there. I mean, there's no problem. It's still working. That's a good thing. I have a window size, but just to just need to make sure it's generating less nodes. So even two nodes, it's only played one. Yeah, there's something funny with this buffer node found business. Let's do channel four. I did one node and three node found. Okay, I think I know why, because we are not defining them in Python code. Only have one of those. We actually don't have any of those. Do we have a node? No. Do we have a F node? No. E node? No. This one? No. That's odd. Okay, if we have musical nodes as that, it's actually played all of them and one node found. It's really odd in the context of audio. The error could be a result of attempting to process or visualize data that isn't yet available or has already been processed. My hand goes musical nodes and this error with buffer 20 node found. Yeah, this one. The error buffer 20 node found in the context of using soundfront player.min.js suggests that the soundfront player is trying to play a note for which it doesn't have the audio sample loaded. This is a common issue with free or limited soundfronts. Make sure that your code isn't attempting to play sounds before any user interaction has occurred. Check the state of the audio context and ensure it's not in a suspended state when trying to play a double check the format of the note names. Ensure they match exactly what the soundfront player expects, including capitalization and notation like C-Sharp 4 Phidias, C-Sharp 4 or DB4.