There are many full-featured libraries for reading Standard MIDI Files , but they are often doing more than just reading and end up being a bit on the over-engineered side.

Here is what could be the shortest MIDI file parser ever, in a simple self-contained c++ header file. It is short because it does not do much and does not try to be smart.


It should be able to load any MIDI file and turn it into a list of MIDI events that are correctly timestamped (tempo change events are handled). And that's all !