Accomplishments this week
1. Advanced MIDI pattern matching tested live.
- After finishing the advanced MIDI pattern matching algorithm last week, I moved on to testing the algorithm with live MIDI input instead of pseudo test files.
- I used the MIDI module of Pygame for reading in the MIDI input notes. I poll one MIDI event at a time and only make use of the note_on event with a non-zero velocity field. If such an event is detected, the note being read is added to the LiveNotes list, which keeps track of recent notes. When the size of the LiveNotes list reaches 10, the MIDI matching algorithm is run on the LiveNotes list, which returns the position of the most recent note on the sheet music specified by (index of the current measure, position in the current measure, resolution of the current measure).
- For each sheet music currently in our database, I’ve manually played through them and checked the returned information of the most recent note I played on the keyboard: (index of the current measure, position in the current measure, resolution of the current measure), and all of them gives back accurate matching results.
- Currently, I’m playing with no error: I played each note accurately throughout the whole sheet music.
2. Major Schedule Change Because of COVID-19
- Since now I cannot work with Tracy, I do not have access to the hardware component (Raspberry Pi); Tracy cannot have access to the keyboard, which is owned by me, either. The original workflow of our project is to connect the keyboard with the Raspberry Pi and let the Raspberry Pi send MIDI input signals to our Cloud service. Now, after careful discussion with my groupmates, the workflow is updated to the following:
- I will connect the MIDI keyboard to my computer, and my computer will run a program that sends MIDI input to our cloud service (I’ll simulate what should’ve been done on the Raspberry Pi end). For the rest, it’s pretty much the same as the originally proposed workflow. The cloud service will run the advanced MIDI matching algorithm on the MIDI signals collected, and return a flip signal once the flip point is detected, and print out the real-time tracker information on the webpage at the same time.
Progress for schedule:
- On schedule
Deliverables I hope to accomplish next week:
- connect with Jiameng’s program
- get started with testing, including error notes, on the MIDI keyboard
0 Comments