Week of 12/1 – Jiahao Zhou

After converting everything from MATLAB to Python I knew that Python would possibly be slower than MATLAB. However, testing revealed that on larger samples (> 5 seconds), the Python code begins to lag noticeably. The longer the sample, the slower the Python code. After timing I have determined that the for loops inside the Python functions are much slower than the MATLAB counterparts. This seems to be due to MATLAB using a just-in-time compiler. I changed some of the NumPy functions like arange() back into range() which actually helped increase speed a little.

However, at the point we are in the project the extra speed is not critical to our success. Since the demo is coming up next week I turned my attention to finishing the Final Project report. We ran into integration problems due to problems with the backend. We had to wrap up the integration before finishing the paper. The rest of the week was spent on the paper. We are now doing the finishing touches before the demo and making our video.

Week of 12/1 – Saransh Agarwal

Focused on getting the final presentation ready and on integrating the DSP part. It has been done so by sending a complete wav file to the backend.

Next week, the focus is to complete the final report. and get the system ready for demo, by improving the performance of the front and backend communication, and add a final score page.

Week of 12/1

  • Connected the high pass filter with the low pass filter, then feed the output of the combined filters into an op-amp to amplify the output signal. With the microphone connected to the filters with a breakout, and with the output of the op-amp connected to a 2-sided 3.5mm cable using a breakout, I then use a 3.5mm to USB adapter to integrate the circuit with the laptop and the webapp
  • The schedule is on progress
  • The plan for the upcoming week is to demo

Week of 11/17 – Saransh Agarwal

Spent the week finishing up the implementation of Wad.js functions and helping test the noise filter so that it can be added to the main pipeline.

Still need to integrate the digital signal processing part with the backend.

Have slack coming up so we should be able to catch up,over thanksgiving break.

Week of 11/17 – Jiahao Zhou

Since we decided to not use the MATLAB engine, I have been converting my code over to Python. I initially ran into some trouble getting all the libraries set up for some of the helper modules, but all of the functionality of the MATLAB algorithm has been reimplemented with NumPy, SciPy, Matplotlib, and Pandas in Python. The next step is to integrate it with the backend and get the web app working. I will be in Pittsburgh over break so I plan to use that time to make sure everything runs smoothly before our initial demo and presentation.

Week of 11/17

  • Spent the week building multiple passive high pass filters, built high pass filters with the same cutoff frequencies and had the output of one cascade into the input of another. There are four high pass filters connected each filter was designed to have a 40Hz high pass filter cutoff frequency. Then connected the microphone with the low pass filter that was already built, then sent the output of the low pass filter to the laptop. The output sent to the laptop sounded very low when played on the laptop.
  • The schedule is on progress
  • The plan for the upcoming weeks is to work on amplifying the output of the circuit with an op-amp and connecting the high pass filter with the rest of the circuit. After the low pass filter, the output can be amplified. Then by using the 3.5mm breakout, the 3.5mm 2-sided cable, and the 3.5mm to USB adapter the output can be sent to the laptop.

Week of 11/10 – Saransh Agarwal

This week I tested if the filtered mic works with the laptop/webapp interface properly, as part of combining all our components. I did not get to a stage where I could combine the DSP part into the application due to problems from last week, a team member being sick, and having a big project(USB) due for 341. As per the schedule there is still a couple of days left to finish combining it but realistically it is a goal for next week, and I have adjusted the schedule by 2 days.

Other than that I did work on the frontend by implementing Wad.js functions and we now have direct mic access.

Plan for next week is to combine the DSP part and store the microphone data into the database in an efficient manner.

Week of 11/10

  • Improved on the filter circuit by using four of the same low pass filters with the same cutoff frequency of 14kHZ and cascading the output of one filter into the input of another filter, the system of low pass filters reduced the peak to peak voltage of the output signal of the system to less than 10 percent of the peak to peak of the input signal to the system. Also, tested the integration of the microphone, two 3.5mm breakouts, two-sided aux cable, aux to USB adapter, and laptop. The components were able to properly integrate and get sound from the mic onto the laptop.
  • The schedule is on progress.
  • Plans for the upcoming week is to now integrate the microphone with the filter circuit as an input and then integrate the output of the filter circuit with the other components like the laptop. Also, plan to work on the high pass filter part of the circuit.

Week of 11/3 – Jiahao Zhou

Got beat detection to work better with higher thresholds. This made the detected onsets less frequent, but more clear and easier to distinguish. However, we ran into a problem with the MATLAB Engine on the servers. Due to some documentation errors, my partner was not able to use it. Therefore, I am going to be switching to Python. As of now, I have converted the main voice tempo detector function to Python and am working on getting the helper modules converted. This will probably take me until next week to finish. Once done, I plan to begin implementing this on the servers and get it running on the web app. Even though this conversion will take extra time, I have the beat detection done early, and the addition of built-in slack means I can finish before the final demo.

Week of 11/3 – Saransh Agarwal

Was behind schedule due to trouble with MATLAB Engine API (discrepancy between official documentation and implementation).  To resolve this the MATLAB code is being converted to Python and I am working on converting the environment to a previous Python version as well. It is worth pursuing both avenues as the Python version not only acts as a safeguard but also allows us to benchmark the performance between the two, to get some quantative metrics.

I have also updated my schedule with more detail to focus efforts in these last 4 weeks, based on the demo date.