 This will be a new project, a new Flask application with translating EEG into music. Recent one, so we have something similar. We need to make sure we can actually play music through the browser. Also writing another block on the detection theory. Yeah, Chatchity is really good at comparing two different concepts that potentially were never compared before, or at least not in writing. The terminal just writing this face detection thing. Yes, we have this EEG Music Structure. Okay, I have all these requirements that it's recommending to use. We have Flask, NumPy, SciPy, Mudbot, LeapSciK, Pandas, C-Born, TensiveLaw, SciPy, okay. Okay, first of all, we want an integrated earmen now. Generate all this and files using Ubuntu Terminal. Creating an app directory for a make ear. Right, now we have the app folder. Then we have create another directory in data. Music output uploads. That's okay. Test. Then we have config, config a bunch. Okay, we can keep it there even though we'll have to then move it to there. Patch configuration. Open an text editor. Did it? No, it did not. That's okay because we can edit it from here. The requirements file. Okay, run by a readmeand license. Yeah, file permissions will be filed. This is not where we deploy. Anyway, we have a different deployment folder. So we had the requirements file. What shall we do next? Can we do a mockup index HTML? Yeah, templates, nanoindex. Okay, should I tell it? I'm actually using Visual Studio Code. Oh, it does not matter. Continue index HTML code. No, we don't want to upload the HG data. We have the HG data. At this stage, we do not want to upload anything. We have EG data and the music will be played in the browser itself. Let's see what it looks like. X HTML should be fine. We'll see how it looks like later. So the Python code. Let's have some data. A, V, G, A, raw. This file can have the same thing as the EG spectrograph, is it? Okay, this file. Yeah, now we don't want to open it for short. It's way too large. I want to pop it into the data folder. Now, Python code should start like the Python code. Leaves still run by the main file. Can you tell it is? Yep. Reprocessing file sounds good. This file should have something that is similar to this. And do a band pass as well. So we should start with something like this in reprocessing. I keep forgetting that text is pitch to text being turned on. It's never getting my voice correctly anyway. Well, now it does. We will turn that off for a sec. The folder is wrong. Yeah, that's how we load the data file. It's what we used before. It worked pretty well. A preprocessing doesn't have any errors. So we know this code works, but we need to sort the folder. Relative path. Yeah, we can do relative path. Let's use copilot to fix the folder. Just accept that it doesn't look correct. That EG row join. No, actually it might be correct. Turn Y. Turn B and A. This is returning the parameters for filtering. Actually filtering can go into... Yeah, let's call this loading. So that stuff can go into filter by. And then here then we don't need pandas, do we? No, we do. We're using it to read the CSV. We don't need scipy. We need scipy for filtering. Okay, so we have this to... What next? And we can close. Probably should display the raw data. Because that one used to work well and have it in here. So we'll have the raw data display and the music playing. We might not have the same interface for it. Let's start a new one in the run by. And this is still the by. Just pop it in the chat so it has a reference to it. We have this is load data by to use the filter in GPROS. We're using port function filter by and apply them to your ng. For example, replace g.data. Do we need to do it now? An interesting recommendation. Because this one is returning the filter parameters. Whereas this is actually returning the filtered data. That's actually his bed. I do like it. Let's see g.data. How do we do that? From filter, first we have this problem. It should be a simple fix. Yeah, where is filter by send directory? That works. No, that's not how it works. Some filter. I'm using the filter from scipy. Should be just from scipy import filter. From scipy import filter. And let's see from scipy. Okay, this should be an easy fix. Okay, let's bring back what we had. No, let's get another go and ask a co-pilot to fix this. Right, I didn't know. Didn't know filter is a package. Is that package called filter? No, it's NumPy. The filter should be coming from NumPy, isn't it? Yeah, what's called the GitHub co-pilot is hopeless. How about the Butterworth bandpass filter? Yeah, NumPy import. Okay, this is still giving me the defined parameters. Okay, well, the Butterbandpass filter. Where is it coming from? It's just called butter, defined butter. Okay, so we need to do those. Okay, that should work. And then we define parameters and apply the filter. Okay, and the EG data should be the input of this thing. EG data is the input of this thing. Yeah, this will be a long one. Oh, I'm using GPT 3.5 thing. Maybe that's why it's doing silly, silly, being silly. Yeah, let's start for, start from scratch. Hopefully it will appear on the side very soon. When I say soon, we're probably talking days, weeks, week. Hopefully under a week. Because we can convert this into GPT4 all of a sudden. Yeah, it just starts a new thing. A new thing anyway. I wish you could jump back and forth, but no, you can not. Okay, so this is our load data. This is the structure of the whole thing. One second, the utils. So this will be built up by filtering functions. And you have, yeah, we need to have music conversion in there as well. Music conversion pie. Don't have the code for it yet. We also have load data. Hey, where is the utils? Utils, right, we have load. That convert to numpy, maybe. No, let's just do loading first. Let's see what we do with it later. Sensation detection model. Okay, so we have that structure. We have, loading the data has to be this, because that's where the raw data is. The EG raw. Right, we have loading data. We have filtered data. It's super slow. Okay, I can stop now. So this is the overall template for the stuff. Let's see what we have in HTML, filter pie, run pie, and generate something for the run pie. Okay, I can stop that. Definitely need run pie. Create up, running the app, and how to run. Yeah, we have flask. Yeah, requirements should be okay. Leave the requirements file for now. Yeah, why do we need that? Let's see the load. I'm not sure we do not actually need it. How about just that? This goes into the same code, isn't it? Is this it? The index HTML is not found. Well, that's because while I fix this, the index HTML, do you know how to use this properly? Index HTML is in copy relative path. Control I use this folder set. It's the same. What, did you do anything? What? Generate. Generating something and then getting rid of it? No, it didn't change anything. We need to use the whole 3D star. It's not actually being... GitHub Copilot can learn from. And we need to change the folder. Change to use this index HTML copy relative path. It's a slow way. Most of the time. It still gives me an error and too much document. It's not finding the file. Yeah, that's right. O.S.K. Listen to your brain's music. Experience the unique sounds generated from your EEG. That's actually not your EEG. It's EEG at this stage. Sounds generated from EEG data. Yeah, we have this little player thing. It's a nice little player. It's very cool copyright. It's not updating lives, run, pies and debug through mode. Yeah, we have to refresh the page. That's why. We would like to display the raw EEG waveform on the front page HTML. Back end. Yeah, graphing library. We were using something else. We can try different graphing library. That's okay. We're going to use a template HTML JavaScript. Repair EEG.vekin at zero. We're using JS Deliver. Chat.js. Okay. Where does it go? Canvas ID. It's a script. Why the script is not in JavaScript file? We're actually happy to try it out. This goes before the body ends. Here. Diplotations. We're going to be using TypeScript files. Okay, one main JS that shows raw EEG signals. static JS. Probably want to simplify the structure. And main JS. This will be in static main JS. And in HTML path to main JS relative path. We'll find it. If I just write main JS. Main JS is not found. Copy relative path. We'll try again using GitHub co-pilot. Not giving up on it just yet. Instead. How do you properly use it? Right. It actually looks weird. Main JS. Static main JS not found. Why? It isn't a static folder. It's also in the app folder. GitHub co-pilot. You'll learn from GPT for some more main JS. Relative path change to use. With the same template folder. Static folder. Many other folders. After ing data endpoint. In this instance. Obviously more. This development. We'll try to use static path data. We'll just continue this next time. See you later. Bye.