MP3 to MIDI Verification: What to Check Before You Trust the Output
A converted MIDI file is a set of claims about a recording. Verifying it means testing those claims, not cleaning the file up. The eight checks below settle it: three read the file header, three need your ears, two ask what the file never carried.
The short answer
- Run the three header checks first. A file with no tempo event plays at 120 BPM whatever the recording was, so every bar line is already wrong.
- Format decides what you can hear. Format 0 packs every channel onto one track, which removes the fastest way to run the octave check.
- Fix isolated errors; re-convert systematic ones. The same register wrong twice in a row is the detector's decision, not a misplaced note.
- No benchmark site publishes an acceptance test. Their guidance is a repair list, not a pass or a fail.
The three header checks, which take seconds
Open the file in any editor that shows raw MIDI events and read three values.
- Tempo. If the file carries no tempo meta event, playback assumes 120 BPM — 500,000 microseconds per quarter note. A recording made at 96 BPM arrives with its bar lines in the wrong place, and the grid you quantize against is the wrong grid.
- Format. Format 0 stores every channel in a single track; Format 1 stores one or more simultaneous tracks. In Format 0 the bass and the melody share a track, so you cannot mute one to hear the other — and that mute is how the octave check below is run.
- Resolution. The header's division field is 15 bits, so ticks per quarter note cannot exceed 32,767. At 480 ticks per quarter and 120 BPM, one tick is 1.04 ms and a thirty-second note is 62.5 ms, which is the threshold the ghost-note check uses.
The three note checks, which need your ears
These are the error classes the benchmark sites describe, turned around into tests.
- Octave. Bass notes are where this hides, because a strong overtone can be detected instead of the fundamental. An octave is exactly twelve semitones, so the error is a factor of two in frequency and one listening pass against the original confirms it.
- Ghost notes. Sort the note list by duration and audition everything shorter than the thirty-second threshold from the header check. These are detection artefacts rather than performance.
- Overlap. Sort by start time and look for two notes at the same pitch on the same channel whose spans intersect. The format defines no outcome for that. Treat any such pair as a duration error or a tie that was split.
Two things the file may not carry at all
Both are visible without listening, and neither can be repaired by editing notes.
- Dynamics. MIDI velocity spans 0 to 127. Count the distinct velocity values the file uses. A count of one means the file carries no dynamics, and no amount of note editing will put them back — the part has to be performed again or the source re-converted.
- Program changes. A file may contain program change events, and a DAW that honours them will replace the instrument you have just assigned. Look before you spend time choosing sounds.
When to stop, and when to re-convert instead
Two rules settle it. Repair by hand when the errors are isolated and unlike each other: one bass note an octave down, a handful of ghost notes. Re-convert systematic errors — the same register wrong repeatedly, or every note sharing one velocity. A systematic error is a decision the detector made, and fixing it by hand reproduces that decision as your own.
The stopping point is the same either way: one pass over a representative bar of each section, finding no octave error and no overlap. Ghost notes and durations do not have to be exhausted, because neither changes which notes are present.