A morning memory

One day I woke up remembering that someone told me that Chopin sounds so good because of the massive use of alterated notes (the black keys). So I decided to sit down and create a tool to see if that was true.

Well, it turns out that my memory or that person was wrong. Or it's probably me choosing the wrong scores. Anyway I created this page to see how many times a note is played, you can choose beetween several scores, stored in MusicXML. The file is parsed, note are counted and displayed with D3.

The curious cat

At a certain point during the development I was curious about how those notes would sound if played together as a single chord so I integrated MIDI.js into the page and picked notes from the array of played notes and put them into a sequence. At the beginning I played the notes all at once but the sound was so horrible that I added a little delay between each notes. Things went well.

Then it was the turn of the random player. Hit the button and you'll hear a random selection of notes picked up with little control. I'd love to pick up notes that are consistent to the key of the score. Maybe in a few months.

TODO

There's a lot I'd like to do.

  1. REDUCING THE SIZE OF THE XML FILES!!!
  2. Contacting a real musician and ask him if this is somehow useful
  3. Cleaning the code and perfecting the aloghoritm. I did some trick to retrieve the value of the bar to display it in the label and I wonder if I need to skip the XML loading and serve just the clean array, but this bring us to the next point
  4. Adding file uploading support. It means that you'll be able to visualise your own musicXML, or even more funny, a MIDI file while it's playing...
  5. Designing. So far it's not the best design I can give you. It was just a proof of concept to me and I thought it was worth to share anyway.
  6. Stopping the music or playing it well. So far you are not able to stop notes to be played, once you hit one of the noisy button. This could be particularly boring if the code doesn't pick up the right notes in random mode. I'd love to be able to let the code pick only beautiful intervals. It shouldn't be that hard.
  7. A more advanced development of this page will allow people to plug a MIDI keyboard and see a chart changing while playing. It could become a tool to study music improvvisation
  8. Comparing scores. What kind of decent visualization doesn't allow comparing series? One could compare all the scorse of Chopin with all of the scores of Beethoven, say.

Credits including unused tutorial, libraries, files