Browsed by
Author: jhwang1

Vanessa’s Status 4/27

Vanessa’s Status 4/27

We had our in-lab demo this Wednesday. During a run through on Monday, I found out that there was a bug in the performance score evaluator. The problem was that because we manually fixed bpms for different speed modes, they are slightly out of time. Because of that, if the piece is very long, note offset error gets larger, which leads to a very low performance score (because it deduct points for all notes at the end). Thus, this week…

Read More Read More

Vanessa’s Status 4/20

Vanessa’s Status 4/20

This week was mostly about integrating our parts. We decided to send start.txt file from OMR to both Pi and my side to start the LED matrix. Thus, I made a simple Python code that waits for this start.txt file along with the output musicXML file and user performance MIDI file. Now, my performance score evaluator waits until all these files are available, then calculates the score. I also modified the evaluator a bit so that it returns a gradebook…

Read More Read More

Vanessa’s Status 4/13

Vanessa’s Status 4/13

This week we had our last reading assignment and discussion on Monday. It was interesting to learn about realization and production phases with real examples.  I found a software that can replace Garageband which is Ableton Live. Although it is not a free software, I was able to try using it through 30-days free trial. Unfortunately, it cannot detect the bpm of the recorded performance (which I hope we could do without making calculations from raspberry pi), but I can…

Read More Read More

Vanessa’s Status 4/6

Vanessa’s Status 4/6

This week I worked on fixing bugs of performance score evaluator. Because we had our demo on Monday, we met earlier to have a run through. One of our problems was that I wasn’t able to compare two files with different bpm. Thus, just for the demo, I manually calculated the bpm of our LED matrix and set Garageband’s bpm before recording the user performance. Moreover, while testing before the demo, I realized that there was another bug in my evaluator;…

Read More Read More

Vanessa’s Status 3/30

Vanessa’s Status 3/30

I continued working on performance score evaluator from last week. Following are the several problems that I fixed: 1.Wrong time signature When I recorded user’s performance and saved it as a MIDI file, it had different time signature compared to the original musicXML file. I tried to manually change the time signature while parsing the MIDI file using Music21 library, but the process was too complicated. Thus, when recording user’s performance from Garageband, I found a way to set its…

Read More Read More

Vanessa’s Status 3/23

Vanessa’s Status 3/23

This week I worked on writing performance score evaluator, and I spent most of my time trying different functions in Music21 library. There are various data structures in Music21 that can represent music in different formats; after exploring different data structures, I decided to use Stream because I need a ‘stream’ of notes in order to compare two midi files. Thus, I wrote a function, midi2stream, that gets the path to MIDI file and converts the file to a Stream…

Read More Read More

Vanessa’s Status 3/9

Vanessa’s Status 3/9

Our team worked on our design report this Monday after the reading assignment discussion. I also did my ethics assignment before the deadline extension.  This week, I was able to spend some time on our actual project. I asked several questions/worries related to performance score evaluator to the professor, and was able to make some design decisions. Initially, my plan was to compare two MusicXML files by converting the user input MIDI file to MusicXML, but after trying some conversions,…

Read More Read More

Vanessa’s Status 3/2

Vanessa’s Status 3/2

I mostly researched and tried different things with MIDI files that I got from MuseScore. There were several challenges that I discovered: How to convert MIDI files to MusicXML files MIDI files don’t contain right hand/left hand information In order to evaluate performance score from user input, I need the corresponding MusicXML that I can compare with the original MusicXML file that I passed to Raspberry Pi. However, keyboard’s user input is transferred to computer as a MIDI file, so…

Read More Read More

Vanessa’s Status 2/23

Vanessa’s Status 2/23

Design review presentation Our team created design review presentation for next Wednesday and I worked on slides for application area, block diagram, and metrics/validation. While doing this, we’ve talked about and decided some of the implementation details of our project, but some of them still require more research such as parsing MIDI files and calculating their performance scores within Raspberry Pi. MusicXML I have finished writing generateMusicXml.py that takes an attribute dictionary and a measures list as input and outputs…

Read More Read More