MP3 to MIDI vs Sheet Music: What Changes Between the Two Exports

An MP3 turned into a MIDI file and the same MP3 turned into sheet music are not the same notes in two wrappers. A MIDI file stores a pitch as one number; a MusicXML score stores it as a letter, an accidental and an octave, so the score has to decide something the recording never contained. Four more fields cross between the two containers differently.

What the two exports differ on

  • Of the six fields a transcription needs, two cross unchanged and four do not. The note number and the key signature's count of sharps or flats survive the crossing. The duration grid, the tempo, the time signature and the velocity reference do not.
  • Pitch is the clearest case. MIDI carries a note number from 0 to 127 and nothing beside it. MusicXML carries step, alter and octave — a letter, an accidental and an octave. "Which note" is answered in both; "how it is spelled" only in the score.
  • A spelling error cannot be fixed by re-running the MIDI path, because the MIDI file never carried a spelling.

Pitch: one number against three fields

A Standard MIDI File stores a pitch as a single number from 0 to 127. Nothing beside it names a letter or an accidental, because the format has no concept of either. MusicXML represents the same pitch as three elements — step, alter and octave — with the step written using the English letters A through G. The same note in a score is C sharp or D flat, and the file has to choose.

Duration: one grid for the file

Both containers count time in divisions of a quarter note. A Standard MIDI File declares one division value in its header, and it applies to every event in the file. MusicXML declares divisions inside attributes, and the specification warns that divisions must be chosen to take tuplets into account. It also states the ceiling: for compatibility with Standard MIDI 1.0 files, divisions should not exceed 16383.

Tempo: stored upside down

MIDI's Set Tempo event, FF 51 03, carries three bytes holding microseconds per quarter note. MusicXML's tempo attribute on sound holds quarter notes per minute. The two are reciprocals, so a value carried from one into the other inverts the tempo. The MIDI specification notes that the resolution keeps a four-minute piece at 120 beats per minute accurate within 500 microseconds at the end.

Key signature crosses, time signature does not

MIDI's Key Signature meta event, FF 59 02, carries the count of sharps or flats from -7 to +7, plus major or minor. MusicXML's fifths uses the same signed count. Time signature does not cross so cleanly. MIDI's FF 58 04 carries four numbers — numerator, denominator as a negative power of two, clocks per metronome click, and notated 32nd notes per quarter note. Its example for 6/8 is FF 58 04 06 03 24 08.

Velocity: a percentage of 90, not 127

A MIDI file stores velocity from 0 to 127. MusicXML's dynamics attribute on sound stores it as a percentage, but not of 127. The specification defines it as a percentage of the default forte value, 90 for MIDI 1.0. Velocity 90 in the MIDI file is 100 percent in the score, and the top of the MIDI range is not the top of the scale.

Which export to take

Take the score when the next step is to read, print or hand the music to a player: only it can hold a spelling. Take the MIDI file when the next step is editing notes in a DAW, because the score's extra fields are decisions to undo. If you want both, check whether one upload yields both — jukeblocks states that only the chosen format is exported, so a second format can mean a second job.

Related