mp3 to midi
Runs locally in your browser

MISSING SHORT NOTES

Why Short Notes Disappear in Audio to MIDI Conversion

A short sound is not automatically a MIDI note. In this converter, an audio frame must pass the silence check and yield a usable pitch; adjacent frames of the same detected pitch must then form a note long enough to pass Minimum note. A quiet, noisy, out-of-range, or very brief sound can fail before a note is exported. Test the same file below and change only one control at a time.

PROCESS ON THIS DEVICE

Test the missing note

Use one clear recording. Compare the piano-roll preview and note count after each single-control change, then download the .mid file.

INPUT  MP3 / WAV / M4A / FLAC / OGG → OUTPUT  .MID

Drop one audio file here

or click to choose audio from your device

Choose audioMP3, WAV, M4A, FLAC, or OGG · one file · up to 50 MB / 5 minutes
Or record a short single-note melody with your microphone.

Your audio stays on your device. All processing happens in this browser. No file is uploaded to a server.

No sign-upOne file at a timeNo watermark

SOURCE-CODE CHECK

Three different gates

The script measures frame level against Silence threshold, searches for a pitch inside Pitch range, and groups consecutive accepted pitch frames. It only keeps a grouped note if its duration reaches Minimum note. A lower duration setting helps only at the last gate; it cannot repair a frame that never produced a pitch.

DO NOT CONFUSE

Quantize is later

Quantize changes the timing of MIDI events after notes have been detected. It cannot bring back an omitted note. Tempo changes how a beat grid is interpreted; neither control repairs a failed audio detection step.

Original diagram of audio frames passing loudness and pitch checks before a note-duration filter
These are sequential checks in this site's current script. A missing note can stop at more than one gate.
Part of this converterCurrent source-code valueWhat it means
Analysis sample rate12,000 samples/secondDecoded audio is downsampled before pitch analysis.
Analysis frame2,048 samples, about 171 msPitch is estimated from a window, not from an instantaneous point.
Frame hop512 samples, about 43 msNeighboring windows overlap; this is not a hard minimum note length.
Default Minimum note90 msA grouped detected note shorter than this is discarded.

The time conversions are arithmetic from app.js: samples ÷ 12,000 × 1,000. They are implementation facts, not a promise that any particular real-world note will be recovered.

ONE-CHANGE TEST

Find the failed gate

Keep the recording fixed. First run the defaults and write down the note count and where the expected note should appear. Lower Minimum note one step and convert again. If it is still absent, reset that control; try a lower Silence threshold. Finally widen only the relevant end of Pitch range. Keep a change only when the intended note appears without unwanted fragments.

SOURCE QUALITY

Use a clear single-note phrase

A dense mix, drum hit, room echo, or pitch slide can confuse a monophonic pitch estimate. Trim to an isolated phrase if possible. Do not rename an audio file to a different extension; a failed decode is separate from a missing detected note.

Use this original short-note test sheet to record what changed and what stayed fixed. For a broader symptom map, see conversion troubleshooting; for a fair A/B test, see compare two results.

QUICK ANSWERS

Missing short-note questions

Why does my short note disappear from the MIDI?

In this tool, it may fail the loudness check, yield no stable pitch in the selected range, or form a detected note shorter than Minimum note. Test those gates one at a time with the same file.

Will lowering Minimum note always fix it?

No. That filter acts only after pitch frames have been grouped into a note. Lowering it can also retain unwanted fragments.

Can Quantize restore a note that was not detected?

No. Quantize moves the timing of retained notes; it does not analyze the original audio again or add missing pitches.

Is 171 ms the minimum audio note length?

No. It is this script's analysis-window duration. Overlapping windows and the duration filter are separate mechanisms, so it is not a guaranteed recoverability cutoff.