MIDI vs MusicXML vs ABC notation: which format should you use?
Use MIDI when something needs to play the music, MusicXML when something needs to display or edit the written score, and ABC when a tune has to travel as plain text. MIDI stores performance events, MusicXML stores notation, and ABC stores a compact human-typable melody.
What MIDI stores
MIDI is a performance format. A Standard MIDI File is a timed list of events: note on, note off, pitch as a number from 0 to 127, velocity, tempo changes, and program changes that select instrument sounds.
Crucially, MIDI stores no audio and no page layout. Middle C is note number 60 and nothing more, so the file cannot tell a converter whether to print C sharp or D flat. There are no staves, no clefs, no slurs, no lyrics, and no reliable indication of which hand or voice played a note. Key and time signature exist as optional meta events that many files never bother to write. This is why files are tiny, usually a few kilobytes for a whole piece, and why hardware has used the format continuously since the 1980s.
What MusicXML stores
MusicXML is a notation format. It describes the printed page: clefs, key signatures, beams, stems, ties, slurs, articulations, dynamics, lyrics, multiple voices per staff, and the explicit spelling of every pitch.
It is XML text, maintained under the W3C Music Notation Community Group, and it is the standard way to move a score between different notation programs without retyping it. Files come as uncompressed .musicxml or zipped .mxl, and both are considerably larger than the equivalent MIDI because they carry all the engraving detail MIDI omits.
What ABC notation stores
ABC is a plain-text notation format designed to be typed by hand. A tune is a short header giving title, meter, default note length, and key, followed by letters for pitches and numbers for durations.
It stays readable in an email, a forum post, or a text file, which is why it became the standard exchange format for folk and traditional tunes. The tradeoff is expressive range: ABC handles single-line melodies with chord symbols comfortably, and gets awkward once you need multiple staves, dense piano voicing, or fine engraving control.
Side-by-side comparison
| Format | Extension | What it stores | Readable as text | Best for |
|---|---|---|---|---|
| MIDI | .mid, .midi | Note on and off, pitch number, velocity, timing, tempo, instrument program | No, it is binary | Playback, hardware keyboards, DAWs, light guides |
| MusicXML | .musicxml, .mxl | Clefs, key and time signatures, pitch spelling, beams, slurs, lyrics, voices, dynamics | Yes, it is XML | Moving editable scores between notation programs |
| ABC | .abc | Melody, key, meter, chord symbols, tune metadata | Yes, plain text | Folk and traditional tunes, sharing in text |
What gets lost when you convert
Converting toward MIDI loses notation, and converting away from MIDI requires guessing it. This asymmetry is the single most useful thing to understand about these three formats.
Export a finished score to MIDI and the pitches and rhythms survive, while the spelling, staves, slurs, lyrics, and layout are discarded. Import that same MIDI back and the software has to reconstruct all of it from timing and pitch numbers alone, which is why a round trip rarely returns the page you started with. See how to convert a MIDI file to sheet music for the cleanup that reconstruction needs.
MusicXML to ABC drops most engraving detail and any material that will not fit a single melodic line. ABC to MusicXML is usually clean, because you are adding structure rather than throwing it away.
Which one should you pick?
- Sending music to a keyboard, synth, or DAW: MIDI. Nothing else speaks to the hardware.
- Handing a score to another notation program: MusicXML. It is the only one of the three that preserves the page.
- Printing for a music stand: neither. Export PDF from a notation program once the score looks right.
- Posting a tune where people can read and edit it inline: ABC.
- Archiving your own work: keep both MusicXML and MIDI. Notation and performance are genuinely different data, and one cannot fully regenerate the other.
Related reading: how to play MIDI files on Android.
LuminaKeys
LuminaKeys plays MIDI songs on Android while lighting the matching keys on your MIDI keyboard in real time, and exports your song library as MIDI, MusicXML, or PDF sheet music for use in other DAWs and apps.