Team Status 4/29

 

  • List all unit tests and overall system test carried out for experimentation of the system. List any findings and design changes made from your analysis of test results and other data obtained from the experimentation.

Signal Processing: ~30 samples tested, looking for pitch accuracy and onset accuracy primarily.

ML Model:

Web backend:

  • What are the most significant risks that could jeopardize the success of the project? How are these risks being managed? What contingency plans are ready?

The biggest risk to the project is still the quality of generated music. Although the quality of music generated by the pre trained model is good, It’s hard to predict how the finetuning will affect the generated music. To mitigate this risk we’re researching different techniques used when fine tuning models (such as freezing certain weights) to prevent divergence.

  • Were any changes made to the existing design of the system (requirements, block diagram, system spec, etc)? Why was this change necessary, what costs does the change incur, and how will these costs be mitigated going forward?

The overall design of the system remains the same.

  • Provide an updated schedule if changes have occurred.

No changes

Eli Status 4/29

What did you personally accomplish this week on the project? Give files or photos that demonstrate your progress. Prove to the reader that you put sufficient effort into the project over the course of the week (12+ hours).

I completed implementing pitch detection, note onsets and midi score generation. I am completely done with my parts of the project except for testing and integration.

Final procedure:

  1. Get amplitude envelope for detecting whether a note is being played or not:

2. Run pitch detection and onset detection (rough):

3. Put it all together:

This graph is a little messy, but it is showing filtered pitches (spikes from 2. removed) in blue, note onsets in red, and whether a note is being played or not in green.

Still need to do testing, this is being held up due to wanting to test using our group’s recording procedure. Should be quick to do testing though.

Is your progress on schedule or behind? If you are behind, what actions will be taken to catch up to the project schedule?

Just behind on testing, but that will only take an hour or so maximum once the other parts of the project are integrated.What deliverables do you hope to complete in the next week?

Finish integration/testing.

Eli Status 4/23

What did you personally accomplish this week on the project? Give files or photos that demonstrate your progress. Prove to the reader that you put sufficient effort into the project over the course of the week (12+ hours).

Implemented memoization for the Yin autocorrelation method. This speeds up computation significantly and allows me to take continuous lag windows which fixed the accuracy problem.

This is the output of the autocorrelation currently on a c major scale (frequency on left axis, time on bottom). This is now fully accurate.

I also implemented midi score generation. This is quick, flexible and fast. Generated sample midi scores and tested with Vedant’s model. Seems to be working fine.

Performed initial accuracy testing on a few different downloaded clean tone guitar samples. Accuracy >95% correct identification. The main source of inaccuracy is due to the tuning of the window sizes.

Worked on onset/offset detection. Found a few methods, likely going to stick with the built in aubio onset detection. There is some inaccuracy, but it seems good enough for primer generation:

Is your progress on schedule or behind? If you are behind, what actions will be taken to catch up to the project schedule?

On schedule.What deliverables do you hope to complete in the next week?

Integrate and more fully test pitch detection/onset detection.

Eli Status 4/8

What did you personally accomplish this week on the project? Give files or photos that demonstrate your progress. Prove to the reader that you put sufficient effort into the project over the course of the week (12+ hours).

Implemented Yin autocorrelation method from paper.

http://audition.ens.fr/adc/pdf/2002_JASA_YIN.pdf

This autocorrelation method is extremely slow. I changed windowing parameters of the autocorrelation and changed the frequency range over which the autocorrelation operates. Now the speed is acceptable (%70 length of input), but the accuracy needs help. The autocorrelation is finding the second most powerful harmonic peaks rather than the main fundamental peak.

This is the output of the autocorrelation currently on a c major scale (frequency on left axis, time on bottom). The autocorrelation finds relative pitches very well. It sees whole step, whole step, half step, whole, whole, whole, half exactly as a major scale should be. It just thinks the fundamental is different.

Is your progress on schedule or behind? If you are behind, what actions will be taken to catch up to the project schedule?

On scheduleWhat deliverables do you hope to complete in the next week?

Continue tuning pitch detection. Include onset detection for note timing and create MIDI score from input.

Eli Status 4/1

What did you personally accomplish this week on the project? Give files or photos that demonstrate your progress. Prove to the reader that you put sufficient effort into the project over the course of the week (12+ hours).

Finished ESP32-A1S bringup. Audio streaming from board done.

Have windowed stfts done. Still need to ensure precision and accuracy of determined fundamental are good. Requires bin size tuning and ensuring the parameters of the transform are well suited for clean tone electric guitar recordings.

Performed filtering of static noise. Able to remove most common electric guitar noise.

Is your progress on schedule or behind? If you are behind, what actions will be taken to catch up to the project schedule?

Almost back on schedule. As long as I have pitch detection for the interim demo, I will be on track.What deliverables do you hope to complete in the next week?

Read fundamental pitch from analyzed guitar notes, perform testing to ensure accuracy.

Team Status 4/1

  • What are the most significant risks that could jeopardize the success of theproject? How are these risks being managed? What contingency plans are ready?
    • The risks remain the same as last week and they are being managed the same
  • Were any changes made to the existing design of the system (requirements,block diagram, system spec, etc)? Why was this change necessary, what costsdoes the change incur, and how will these costs be mitigated going forward?
    • No changes were made
  • Provide an updated schedule if changes have occurred.
    • No changes

Eli Status Report 3/25

What did you personally accomplish this week on the project? Give files or photos that demonstrate your progress. Prove to the reader that you put sufficient effort into the project over the course of the week (12+ hours).

Started ESP-A1S bringup. Might need to scope more time to this as neither Sachit nor I have worked with it before. We were planning on using the Arduino IDE to aid in a quick bringup, but custom libraries are required which are not compatible with our board. Therefore we have to use the ESP-IDF/ADF and completely bring up the board with networking and LINEIN interaction.

Went through radix-2 FFT and other time saving fourier transform algorithms. Have a firm grasp on overlap add and overlap save reconstruction methods.

Is your progress on schedule or behind? If you are behind, what actions will be taken to catch up to the project schedule?

Still behind where I was hoping to be. Might need to reduce scope. Will have better grasp on scheduling after this week.What deliverables do you hope to complete in the next week?

Implement single window stft. Apply to single guitar notes. Report frequency content.

Finish ESP-A1S bringup for audio portion.

Team Status 3/25

  • What are the most significant risks that could jeopardize the success of theproject? How are these risks being managed? What contingency plans are ready?
    • The risks remain the same as last week and they are being managed the same
  • Were any changes made to the existing design of the system (requirements,block diagram, system spec, etc)? Why was this change necessary, what costsdoes the change incur, and how will these costs be mitigated going forward?
    • No changes were made
  • Provide an updated schedule if changes have occurred.
    • No changes

Eli Status Report 3/18

What did you personally accomplish this week on the project? Give files or photos that demonstrate your progress. Prove to the reader that you put sufficient effort into the project over the course of the week (12+ hours).

Tested gaussian filtering on entire samples, realized it adds noise over long time periods. Switched to using low pass filters. Works well.

Is your progress on schedule or behind? If you are behind, what actions will be taken to catch up to the project schedule?

I was hoping to accomplish more this week, I am behind now. I have enough slack to cover being behind, but I will need to make significant progress this week. I still need to implement stft windowing. What deliverables do you hope to complete in the next week?

Start to implement stft with constant q transform. Implement single stft window as first step, then implement binning stft.