MIDILACE Runs on your device
OPEN TEST LIBRARY

The input, the MIDI, and the mistakes.

Every sample here is downloadable in both directions: the audio that went in and the MIDI file that came out. Two of them also have note-by-note annotations from a published research dataset, so you can count what the converter found and what it invented instead of taking our word for it.

Convert your own file
THE SIX CASES

What was converted, and what came out

Each case was converted on the public page, with default settings, and the downloaded .mid file is published unchanged. Nothing was cleaned up before publication: the errors in the export are the point of the exercise.

Published inputs, exports and note counts
CaseInputExported MIDIIntended notesExported events
Three-note test, WAV
Synthetic signal
WAV · 132 KBMIDI · 102 B36
Three-note test, MP3
Same audio, MP3 encode
MP3 · 49 KBMIDI · 110 B37
Acoustic guitar, WAV
Real performance · GuitarSet
WAV · 1.0 MBMIDI4568
Acoustic guitar, MP3
Same 12 seconds, 128 kbps
MP3 · 189 KBMIDI4568
Solo voice, WAV
Real singing · vocadito
WAV · 769 KBMIDI3147
Solo voice, MP3
Same 8.7 seconds, 128 kbps
MP3 · 140 KBMIDI3147
Piano arpeggio, MP3
Real performance · CC0 Bach
MP3 · 81 KBMIDIabout 1730

The four-second guitar sample used by the one-click example on the home page is a shorter excerpt of the same performance: midilace-guitar-demo-4s.mp3.

REAL RECORDING

A solo guitar passage, measured note by note

The source is GuitarSet, a research dataset of acoustic guitar performances recorded with a hexaphonic pickup, released under CC BY 4.0. We took the first 12 seconds of the solo microphone channel from player 00, take BN1-129-Eb, and kept the file's own per-string note annotations as the reference. The excerpt contains 45 annotated notes across 15 pitches between B♭2 and C5, at roughly 129 BPM.

What the converter did with it: it returned 68 note events. Forty-one of them sit on an annotated pitch within 80 milliseconds of the annotated onset. Mean onset error across those 41 was 15 to 17 ms and the worst was 72 ms, which is well inside a sixteenth note at this tempo. The remaining 27 events are either extra or too far from an annotated note to count.

Two lanes: 45 annotated guitar notes, and below them 68 exported MIDI events, 27 of them extra.
Top: the annotated performance. Bottom: the exported MIDI, coloured by whether each event matched an annotated note. Orange marks events with no matching annotation.

The four notes that were missed

Two of the four misses happen where the guitar plays several strings at once, which is exactly where a single-microphone transcription gets ambiguous. The other two are single notes that fell below the default confidence threshold:

Annotated notes with no matching event
TimeNoteWhat else is sounding
0.188 sB♭3F3 starts at the same moment, an octave and a fourth below.
0.499 sE3Nothing else sounds within 40 ms: a single note.
6.545 sE♭4G4 and C5 start within 13 ms of it: a three-note voicing.
6.902 sD4Nothing else sounds within 40 ms: a short 0.10 s note.

The extra events

Twenty-seven events have no annotated partner at the same pitch and moment. Sorted by their distance from the nearest annotated note:

  • 8 are exactly one octave away — five above the real note, three below.
  • 1 repeats the pitch of a real note as a separate short event, the note-splitting behaviour also visible in the three-note test.
  • 2 fall where no note was annotated at all, with nothing within 100 ms.
  • The rest sit within a few semitones of a real note sounding at that moment. The most common intervals are a fifth and a fourth below. We cannot attribute each one to a specific cause from audio alone; they behave like the harmonic and resonance artefacts you delete by hand in an editor.

Durations are short as well. The 41 matched events average 0.34 seconds against 0.48 seconds for the annotated notes, so held notes end early and often restart. In a piano roll that reads as a dashed line where the player held one note.

For what to do about these three error types in a DAW, see guitar to MIDI: what converts cleanly and what you must fix.

REAL RECORDING

A sung phrase, marked twice by two listeners

The source is vocadito, forty solo vocal excerpts released under CC BY 4.0 where each note is annotated independently by two people. We used excerpt 20 exactly as it ships: mono, 44.1 kHz, 8.7 seconds, one voice with no accompaniment. It holds 31 notes across 11 pitches between F#3 and E4.

The two annotation sets contain 31 and 30 notes and agree on 26 of them, so the reference itself has a margin of about five notes — where a scoop turns into a note is a judgement call. Scored against the first set, the export contains 25 matching events, 6 missed notes and 22 extras; against the second set it is 26, 4 and 21.

Two lanes: 31 hand-annotated vocal notes, and below them 47 exported MIDI events, 22 of them extra.
Top: the annotated singing. Bottom: the exported MIDI. Orange marks events with no matching annotation; pale marks in the top lane are annotated notes that produced nothing.

What the 22 extras are: fifteen of them sit within a semitone of a note that was sung — five are the same pitch re-triggered and ten are the neighbour above or below, which is what vibrato and scoops do to a pitch tracker. Two are octave doublings of a sung note, two land at E7 and C#7 where nobody sang anything, two are two semitones out and one is a fifth out. The pitch names are mostly right; the note boundaries are what the model gets wrong.

Re-running the same MP3 at each sensitivity setting shows the trade-off directly: More notes gives 70 events with 27 found and 43 extra, Balanced gives 47 with 25 and 22, and Fewer, cleaner gives 36 with 23 and 13. On voice, the middle setting is already the reasonable one and the quiet setting is often better.

Full write-up: voice to MIDI, the pitch survives and the note count does not.

REAL RECORDING

A dense piano arpeggio, where the count goes wrong

The source is the opening of the Prelude in C major from Bach's Well-Tempered Clavier, played by Kimiko Ishizaka and released into the public domain (CC0) by the Open Well-Tempered Clavier project. We cut five seconds starting where the music starts. The passage is an unbroken run of sixteenth notes with the pedal down; the prelude is 35 bars of them and this performance lasts 162.9 seconds, which puts one note every 0.29 seconds and about 17 notes in five seconds.

The export contains 30 events. The first onsets are correctly spaced at 0.30, 0.27 and 0.23 seconds — the sixteenth-note grid — and the duplicates begin once several notes ring together. The harmony is the part that holds: 28 of the 30 events fall on C, E or G, the chord the passage is built from, across C4 to G5. The two outsiders are a D4 and an A4 near the end of the window.

Unlike the guitar, dense piano did not add octave layers. It added events between real ones, and it left note lengths between 0.07 and 1.85 seconds for notes that share one written value. This recording has no note-by-note answer key, so the count here comes from the score and the tempo rather than from annotations.

Full write-up: piano to MIDI, the pitches hold up and the rhythm does not.

MP3 AGAINST WAV

Does the compressed file change the result?

The same 12 seconds were encoded to MP3 at 128 kbps and converted separately. The difference is one event:

WAV and MP3 exports of identical audio
MeasureWAV inputMP3 input
Exported events6868
Annotated notes matched41 of 4541 of 45
Same three notes missedYesYes
Mean / worst onset error17 ms / 72 ms17 ms / 72 ms

With the earlier, more sensitive default the encode did leave a mark on the synthetic three-note file: the WAV export had six events and the MP3 export seven, because an A5 appeared 47 ms into the first note, an octave above the A4 that was actually played. At the balanced default both exports contain the same four events, and on this guitar excerpt the two inputs produce identical counts. A lossy encode can add a spurious octave, but it is not what stands between you and a usable transcription. Converting MP3 to WAV before running the tool is not a fix for wrong notes; the notes are estimated from the sound either way.

METHOD

How to reproduce or check any of this

  1. Download an input and its exported MIDI from the table above.
  2. Import the audio into any editor and the MIDI into a piano-roll editor. Compare pitches, starts and ends event by event.
  3. To reproduce the export, load the same input on the converter page and convert it again. The model is deterministic, so the same input produces the same events.
  4. To check the guitar counts, download the reference MIDI built from the dataset annotations. A note counts as matched when the pitch is identical and the onset is within 80 ms.
  5. The full event list, including every extra event and its nearest annotated note, is in our published audit: 144 rows of CSV.
WHAT THIS DOES NOT PROVE

Read the numbers as one example, not a score

This is one guitar excerpt, one vocal take, one piano passage and two synthetic signals. It is enough to show which kinds of errors to expect — missed notes inside chords, octave duplicates, split sustains, vibrato neighbours — and it is not enough to state an accuracy percentage for the tool, for an instrument in general, or for your recording. A different player, a different microphone position or a busier arrangement will produce a different error profile.

Two limits of the reference matter as well. The dataset annotates when a string is plucked; it does not describe how long the sound rings, so the annotated durations are performance notation rather than measured decay. And the excerpt is monophonic in intent but not in sound: strings ring through each other, which is why the reference contains moments with three simultaneous notes.

LICENCE AND ATTRIBUTION

Where these files come from

The guitar excerpt is derived from GuitarSet (Xi et al., 2018), Zenodo record 3371780, licensed CC BY 4.0. Changes made: first 12 seconds of 00_BN1-129-Eb_solo_mic.wav, converted to mono 44.1 kHz WAV and to a 128 kbps MP3 excerpt. The four-second demo file is the first four seconds of the same excerpt. The annotations in the reference MIDI are the dataset's own per-string note labels, reduced to onset, pitch and duration.

The vocal excerpt is vocadito_20.wav from vocadito (Bittner et al., 2022), Zenodo record 5578807, licensed CC BY 4.0. Changes made: none to the audio; it was copied as published and re-encoded to a 128 kbps MP3. The reference MIDI is annotation set A1, reduced from onset, frequency and duration to onset, pitch and duration; the pitch is the nearest equal-tempered semitone.

The piano excerpt is the opening of the Prelude in C major, BWV 846, from The Open Well-Tempered Clavier performed by Kimiko Ishizaka and released under Public Domain Mark 1.0. Changes made: five seconds cut from 1.44 seconds into the track, re-encoded to a 128 kbps MP3. No annotations exist for this recording; the expected note count is derived from the score's sixteenth-note grid and the track's duration.

The synthetic three-note files were generated for this site and may be reused freely. Our exported MIDI files contain only note data produced by this tool.