Audio-to-MIDI conversion rarely produces a clean file on the first pass. The note detection model finds the right pitches most of the time, but it also splits single notes into fragments, invents octave ghosts inside chords, and writes one sustained tone as several short notes. This page names three of the most common artefacts, shows the numbers behind them, and gives one fix per artefact that you can apply in any MIDI editor.
Every number below comes from the same six synthetic test clips described on the accuracy test page. The clips contain 80 reference notes in total across six scenarios: single notes, three-note chords and drum patterns, each in a dry and an echo-added version. Every clip was converted on this site, the .mid file was downloaded, and notes were parsed with @tonejs/midi and matched against the reference list by pitch and onset (within 0.15 seconds, one-to-one).
| Artefact | What it looks like | Extra notes before merge | Extra notes after merge | Fix in a MIDI editor |
|---|---|---|---|---|
| Split notes | One short note written as two of the same pitch, 60–100 ms apart | 10 | 0 | Select both, join them into one note spanning the full duration |
| Octave ghosts in chords | A chord's root or fifth appears again one octave higher, at the same onset | 13 | 1 | Delete the octave-higher duplicate; keep the pitch that matches the chord |
| Fragmented sustain | One held note written as 4–6 back-to-back notes of the same pitch | 74 | 0 | Select the chain, merge into one long note from the first onset to the last end |
The "after merge" column reflects what this site now produces, because the merging step runs automatically after conversion. But the underlying fragments are still there in the raw model output, and if you use a different converter — or turn the merge off — you will see them. Knowing what they are and how to fix them by hand is the point of this page.
In the single-note dry test clip, eight reference notes were all matched correctly — and all eight also produced a second, shorter note of the same pitch immediately after the first. The reference notes last 0.14 seconds. The model's minimum note length is set to 5 frames, which at a frame rate of 22,050 / 256 ≈ 86.1 frames per second is about 58 milliseconds. Because 58 ms is shorter than the 140 ms note, the model can fit two fragments inside one sounding note, and it does.
Here is one pair from the output: a note at MIDI pitch 60 starting at 0.325 seconds with a duration of 0.10 seconds, immediately followed by another note at pitch 60 starting at 0.429 seconds with a duration of 0.09 seconds. The reference note is a single strike at 0.30 seconds. The converter found it and then split the tail into a second event.
Fix: in a MIDI editor, select both notes and join them into one note that spans from the first onset to the second note's end. If your editor has a "merge overlapping or adjacent notes of the same pitch" command, that does it in one step.
What the merge step does automatically: the site now joins any two notes of the same pitch whose gap is 3 frames or less (about 35 ms). After this step, the 10 split-note extras in the single-dry clip dropped to 0.
In the three-note chord dry test clip, eight major triads were all matched correctly (24 of 24 reference notes). But the output also contained 13 extra notes at exactly one octave above a chord tone — MIDI pitch 79 appearing alongside 67, pitch 76 alongside 64, at the same onset. These are not random wrong notes; they are the second harmonic (at 0.2 times the fundamental's amplitude in the test signal) promoted into a note event by the model.
The 0.2 figure is a setting in the test-signal generator, not something measured from the converters. It is documented on the accuracy page. What matters here is the pattern: the extra pitch is always exactly +12 semitones from a real chord member, and it starts at the same time as that member.
Fix: select the octave-higher note and delete it. If your editor can filter by pitch range, you can also select all notes above the highest expected pitch and remove them, but check each one first — a real high note and an octave ghost look the same until you compare them to the chord below.
After the merge step, 12 of the 13 octave ghosts disappeared. The merge only joins same-pitch fragments, so the mechanism here is different: raising the onset threshold from 0.25 to 0.5 suppressed some of the weaker harmonic-triggered onsets. One survived.
This one does not come from the six synthetic clips. It comes from a real CC0 piano recording converted on this site's piano to MIDI page on 26 October 2026.
The recording is Emotional piano loop (CC0, 27.8 seconds, 44,100 Hz stereo). The converter produced 521 notes in one track. In the first second, a note at MIDI pitch 45 (A2, 110 Hz) was written as six separate notes, each starting exactly where the previous one ends:
| Note | Pitch | Onset (s) | Duration (s) | End (s) |
|---|---|---|---|---|
| 1 | 45 (A2) | 0.0115 | 0.0927 | 0.1042 |
| 2 | 45 (A2) | 0.1042 | 0.0698 | 0.1740 |
| 3 | 45 (A2) | 0.1740 | 0.0697 | 0.2437 |
| 4 | 45 (A2) | 0.2437 | 0.0698 | 0.3135 |
| 5 | 45 (A2) | 0.3135 | 0.1396 | 0.4531 |
| 6 | 45 (A2) | 0.4531 | 0.4292 | 0.8823 |
We checked the recording instead of trusting either the six-note output or the single-note hypothesis. A short-time magnitude envelope at 110 Hz across the same span shows one attack, at 0.02 seconds, and no second attack. The level stays above 26% of its peak from 0.02 to 0.90 seconds and never returns to the noise floor. The recording holds a single sustained A2.
The six notes are therefore a split of one sustained tone, not six key presses. Nothing in the audio marks the five boundaries at 0.1042, 0.1740, 0.2437, 0.3135 and 0.4531 seconds. In a MIDI editor this reads as six presses of the same key.
A seventh note begins at 0.8823 seconds, exactly where the sixth ends. That one is a genuine second strike: the 110 Hz level reaches its lowest point in the span (26% of peak) at 0.88 seconds, and a new attack follows. So the fragment chain runs from 0.0115 to 0.8823 seconds, and the note after it is real.
Fix: select all six notes and merge them into one note spanning 0.0115 to 0.8823 seconds. Keep the seventh note separate. In a piano-roll editor this takes about ten seconds with a drag-select and a "merge selected" command.
This site now runs an automatic merge after conversion: any two notes of the same pitch separated by 3 frames or less (about 35 milliseconds at 22,050 Hz with a 256-sample hop) are joined into one. The effect on the six test clips:
| Clip | Reference | Before merge | After merge |
|---|---|---|---|
| Single notes, dry | 8 | 8 / 10 / 0 | 8 / 0 / 0 |
| Single notes, with echoes | 8 | 8 / 32 / 0 | 8 / 0 / 0 |
| Three-note chords, dry | 24 | 24 / 20 / 0 | 24 / 1 / 0 |
| Three-note chords, with echoes | 24 | 24 / 100 / 0 | 24 / 1 / 0 |
| Drum pattern, dry | 8 | 7 / 3 / 1 | 7 / 0 / 1 |
| Drum pattern, with echoes | 8 | 8 / 27 / 0 | 8 / 0 / 0 |
| Total | 80 | 80 / 91 / 1 | 80 / 1 / 0 |
Extra notes went from 91 to 1. The one remaining extra is an octave ghost in the chords-dry clip that the merge did not catch because it is a different pitch from the chord tone it shadows.
What the merge costs. Two genuine strikes of the same pitch less than about 35 milliseconds apart are joined into one note. On a piano that is a very fast repeated note; on drums it is a roll or a flam.
This test did not measure that loss. None of the six clips contains a repeated strike of the same pitch — every event is 0.5 seconds apart — so the merge had nothing genuine to eat here. We have not quantified how much real music is affected, and we are not going to invent a percentage. If your material has fast repeated notes on one pitch, expect them to be under-counted.
Whether the merge runs automatically or not, the output is still one track of estimated notes, not a finished part. Here is a workflow that works in any piano-roll editor (Reaper, Ableton, Logic, MuseScore, FL Studio, or a free tool like LMMS):
To convert your own file and try the clean-up steps on the result, use the MP3 to MIDI converter, the WAV converter, or the piano converter. The accuracy test page has the full six-clip comparison across four converters.