 Let's do it quickly, check this out, don't get anything, okay it should be working there. Right, the sound is okay, stop monitoring. The mistake in the title, can I fix it? It wasn't fixed, channel, yes. Copy, start in a second. The heads should be delayed now. Okay, I'm still fixing this one, as you can tell. It's not really working, should look something similar to this, but with EEG. We had a chat with EEG doing some changes for us, that is great. Should be similar to what we had in the past. Should go before fetch data and render. New code starts here, new code ends here, that's pretty neat, pretty handy. Yeah, we're essentially using different orders, depending on if we are in production or not. Rest of the function, doesn't say new code here. The fetch data and render const, this one here. So we're using endpoint instead of that. I have get data in multiple places, do we? Here we have this fetch, fetch data and of that chart. Takes second as an import, in that second line as well. And we can comment that out, I think, in that rest of the code. Let's test. Obviously it won't work now, because we need to redeploy. It will be still working in local development. Where's the URL? Can't find it. Just want to make sure it's running locally as well. So this is what it should look like. It's working well. We want the same in production. So now we're checking if the JavaScript code will check if we are in production or not. And we need this to deploy, deploy, deploy, deploy. To make sure Cloudflare will let us make changes. Give me a sec, Cloudflare. Within development mode. Right, and now it should work. Yay. Okay, that was quick and easy. Quick and easy. Very nice. So make a few, just clean it up a bit. HTML. HTML can delete these copies. And in HTML we like to add this header, this standard header for the project. This is a standard header for the project. So this is now in production. And we do want to add this standard header thing. The wheels need to make changes to how it looks like. Don't think so. Yeah, this is not great. This is a flash application, so you can really test the HTML by itself. Which is a bit unfortunate, but that's just the way it is. So all the inputs working okay, logarithmic, linear, scale. We also need the description. Wait, what if we, this one. We need to remove quite a few things to change. But it's in production already, so you can go check it out. Let me know what you think. Script.js. That's the beginning of a container. It's all the same. Shall we add? Adds. Yeah, might as well because many could I forget later. Now, another thing is this style. We actually have a common style for the whole project. We have to use, because management says so. Starship CSS. We'll pop it in here. So the one for, yeah, the styles here says have to sort those out. We don't want anything conflicting in them. So for example, yeah, file scroller bar is unique to this. That's okay. But I know this is applied to everything. It's okay to have styling for the control. Yeah, that's fine because we have our own template for the thing. Select input is okay. Our signal plot is okay. And I can't really test it on the server before actually deploying into production, which should be fine. The thing still works on the locally. This is what we currently have in production. Spectrum plot, that's okay. This is just the input buttons. They can remain the same. Those check boxes could have been made bigger. But we will sort it later. We already made quite a few changes. This can be closed requirements. Flask numpy, scipy pandas can be closed. Oh, and we need a description for the project. So we have this text that we started with. Wait a second. Let's not eat a flask. Yep, the display gene thrips in the main. Hopefully we have right because we also need to read me. Can create a read me file. Should have all the information. Yeah, it's not a repository, but that's okay. No, that's not good. Yeah, and license. I think we're actually using creative comments. Or I think attribution required. Okay, we can remove the bit. Started this code. Can remove that bit because we already have the code. Some more prompts. That's stuff that didn't work to begin with, but now it seems okay. Chat labels. Yeah, we removed the play button. And that's all the previous prompts and things. Save that. Turn this text into a description. Okay, let's see what it says. Okay, welcome features. Yeah, that's correct. Size selector. Trend toggle. Filter order. That's actually incorrect. And then put check. Filter order is now one, two. Pokemon. This is silly. Filter order selector is one, two, four. With default of two, correct. And turn into HTML text. All right, I also forgot about those questions. Yeah, this description and stuff. It's in the top of the header. The file is obviously different. Remind me to change this. Should have an image for the file. It's the image called. EG spectrum something. It should be in here. Second one. EG spectrum. I don't know if you need these two dots. Yeah, I was getting confused with that. Because that's the image that will appear when you... So say this feature extractor should have check extract. This is wrong page. So when you put it in social media and stuff, it should have the image. It's just giving me the EG feature extractor. Just giving me bionic chaos. EG simulation. It's just wrong. Any tools that give correct anything. Just as if I'm mocking up a post. No, this one gives me the same. Pretty sure the ACG game subcalior quest used to give something useful. Okay, this one does. This blog should give this image in the... When you make a post, when you share. Yeah, that's right. So let's see what's the difference. EG signal quality. Just a simple HTML for one. There's this image in it. And that's what is something with the folders. It cannot find the image or something. Let's sort it out later. Right. Many after changing that. Changing this one. The bottom. Of course. I have the plot container. Diff-diff-diff. Why is this JavaScript? It's called there. Okay. We have that description. It can go. It's actually meant to be H2. Yeah, we don't have normally one or another label on the top. Just checking the text. 34. Yep, the default is second order. Right, so. Locally. Still working. Okay. Slogging for some time, why? Just normally check. This thing works, it does. Don't have any errors. And now close this for a sec. Why? The ad is on top. It should only come up after 10 seconds. Now it's at the bottom. I think it's when the screen is small. This is ugly. This is how it will look like on a mobile. Yeah. So don't use it on a mobile. Wait, no, it is scaling the screen. Yeah, they don't really fit two of them. Yet the ad comes up on top on smaller screens. I don't know why. It's Google does the ads. As you can imagine. Yes, that was a lot of errors just popped through. So I need to do the Google ads. It doesn't like a smaller narrow screen, does it? I think it's something in the screen. So I need to work again on what that error is. Check all the other apps. One should move over here. It doesn't matter. It doesn't mention the play button. No, because we can't read it. It should not get us. Bring it back and just gray it out. I told you the project is messy. Therefore it's called chaos. I think we'll just have to leave with that. At least for the meantime. Yeah, it's working okay. And the next line would be the noise remover. So it would be pretty much the same. We can no play button. It just didn't work. It's potentially overloading my server. This one will have additional wavelet denoising options. Using a discrete wavelet transform. We can select the number of levels. That's roughly what it used to look like. Now it's a bit different. Now that we have... We can close. Start wrapping up for today. The other thing is we have automated videos coming up a day scheduled to come up daily every midnight. So it will be one like midnight, well, tonight, tomorrow. I only have one so far. So yeah, there will be more videos. So stay tuned. Those are pretty much highlights of the live streams. And there is a semi-automated video processing thing. I can ask HHPT to improve it. Probably about to run out of the romped quota. Anyway, this one extracts audio from the video and divides into chunks. Analyzes the volume. Saves video clips from the original video based on when the significant audio starts and ends. It does this by watching for significant duration of silence. Three seconds by default. I don't know, three seconds. I don't think three seconds can be quite a lot of silence. But I don't know. Because sometimes when I edit, I trim it some more. Sometimes I don't. So for example, the earlier stream, which was called... What was it called? The last thing we processed the stream from a couple of days ago. Ah, from Friday. 26. Let me check. 26. Yes, we have that one. And then we have that two from today. The current one. And this one. I'm combing this out because we already processed that. Let me check. 26 years. A generalize for multiple files. Instead of hard coding one file name, you could iterate through all files in the directory and process. No, no, that's okay. We can do one at a time. Those streams are long. As you know, error handling, optimising self-writing. The extracted audio to disk and reading it again. Processing it in memory. This might speed up the process. That's interesting. Yeah, those parameters we set ourselves. It manages to avoid a necessary step of writing the audio to disk. Only to read it immediately after. You can leverage the NumPy array presentation of the audio directly. Here's how you can optimize. Yeah, don't mind. I mean, it currently works. I'm probably okay with it. Video clip, sampling rate. Both for movie 5, not specified. Yeah, I think it's doing too many changes. But essentially what it does, run this one. So it's fetching all the audio and then look checks for silence. So if I'm not talking for a while, apparently longer than three seconds, it will chop the video, remove the silence from it. And it will generate hundreds of videos. And we normally, because we're on Linux at the moment, we're using this Kden live. And this is where we created this short. So yeah, it will generate this chopped up segments of the video, which are much easier to edit. I'm pretty sure we already published this one. Yeah, it's that one there. A short one. So we can close that. Anyway, we'll continue next time. See you in a bit.