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 structure.

I am currently working on comparing two different Stream structures, and will finish within few days for it to return an integer value which will be the performance score. In order to test while I am writing the function, I recorded a MIDI file of Swans on the Lake that does not have any mistake(default). I also made several modifications of that MIDI file using Garageband:

  1. Default with one note missing
  2. Default with one wrong note (without the correct note)
  3. Default with one wrong note (with the correct note)
  4. Default with one note played longer than its duration
  5. Default with one note played shorter than its duration
  6. Default all shifted one beat to the right

Once I am done writing the function, I’ll use these example MIDI files to adjust their performance scores and create a specified score rubric. One problem that I have right now is that after converting the two MIDI files to Stream structures, they sometimes have different attribute values such as time signatures and major/minor keys. Thus, I am still searching for a function that can fix these attribute values of streams.

I am currently on schedule, and I’ll try to finish writing performance score evaluator so that I can focus on integration next week with our team members. We also need to create a simple Python script that can transfer XML files from MIDI to Pi automatically.

Leave a Reply

Your email address will not be published. Required fields are marked *