The Midifile library contains six classes:
| MidiFile | Primary class, responsible for reading and writing MIDI files. |
| MidiEventList | Responsible for managing MidiEvent lists for tracks within the MidiFile class. |
| MidiEvent | MidiMessage plus a timestamp and other bookkeeping variables. |
| MidiMessage | Raw MIDI protocol message. Inherited by the MidiEvent class. |
| Binasc | MidiFile Support class for reading/writing ASCII byte codes representing MIDI files. |
| Options | Independent helper class for processing command-line options. |