Being a musician and a programmer I’ve always been interested in the MIDI file format and the possible web applications that could leverage it. When I first started programming I really wanted to do something with MIDI so I looked up the spec for the MIDI file format but was very intimidated by the details, like woah. So I shelved it and proceeded to build simpler applications, many musical in nature, which helped me build my skillset. What I like about about MIDI is how universal it is; once you have a MIDI file you can use one of the many applications available to play it, transpose it, notate it, and modify it.
By combining this library with a pitch and rhythm generating algorithm you could potentially create unique pieces of music. With some basic constraints I would imagine you could get something sounding pretty good. Another idea I had was using this library to create audio “visualizations” of a dataset. For instance if you set some time based data to a beat, say one day equals one quarter note, and set the data points to pitches/velocity/octaves it could be consumed through the ears or even as written notation.
Of course you could also use this library in a more conventional way and incorporate it into some type of interface such as a piano roll or notation editor to provide a MIDI export feature.
The full documentation can be found on the GitHub page, so I won’t go into too much detail here. Though, here’s an example that should give you a basic idea of how the API is used to write the melody for “Hot Cross Buns”: