Audio to MIDI file too big: the limit is a byte count, not a song length.

A file is refused here at 20,971,520 bytes, and a file of 20,971,521 bytes is refused outright — one byte is the whole difference. That number is not a duration and not a paywall, so the same minute of music can fit comfortably or not fit at all depending on how it was exported.

We tested that directly: one 60-second performance, exported six ways, passed the check at 5.05 MB and was refused at 32.96 MB. Nothing about the music changed between those two files. Below are the readings, what 20 MB buys in each format, and the shortest route from a refused file to a converted one.

Select a recording to create a MIDI draft locally.

The selected audio is decoded in your browser; it is not uploaded to a server.

The measurement

Same 60 seconds, six exports, two verdicts.

The first test isolates the file from the music. One 60-second phrase — four sine tones cycling in half-second steps, same amplitude envelope, same order — was written to six RIFF/WAVE files that differ only in sample rate, bit depth and mono-or-stereo layout. Each file was set on the converter's file input and the page's own verdict was read back: the status line text and whether the Convert button stayed enabled.

Export of the same 60 sFile sizeVerdict
44.1 kHz · 16-bit · mono5,292,044 BAccepted
44.1 kHz · 16-bit · stereo10,584,044 BAccepted
44.1 kHz · 24-bit · stereo15,876,044 BAccepted
48 kHz · 24-bit · stereo17,280,044 BAccepted
96 kHz · 16-bit · stereo23,040,044 BRefused
96 kHz · 24-bit · stereo34,560,044 BRefused

That is a 6.5× spread across one minute of identical audio. The two refused files are not longer, louder or more complex than the four that passed; they were exported at a higher sample rate, which stores more samples per second without storing more music.

The second test pins the threshold itself. One file of exactly 20,971,520 bytes was built, and a second file made from it by appending a single zero byte, giving 20,971,521 bytes. The first converted normally: 422 notes in 15.5 seconds on this machine. The second was refused with the message This file is larger than 20 MB. Choose a smaller audio file. and the Convert button stayed disabled. The check is a byte comparison against 20 × 1,024 × 1,024, so it does not round, and it does not care how long the audio is.

The third finding costs people the most time. Both refused files displayed 20.00 MB · ready to process locally in the file picker, and so did the accepted 20,971,520-byte file. The readout rounds to two decimals, so at the boundary it prints the same string either side of the line: at 20.00 MB with a dead Convert button, the label is not wrong, it is just too coarse to tell you which side you landed on.

Test conditions. Chrome 154 on Windows 11, the live converter at https://localmidi.com/audio-to-midi/, sensitivity at the default Balanced setting. Test files were generated locally as uncompressed RIFF/WAVE PCM (44.1 kHz or 96 kHz, 16- or 24-bit, mono or stereo, 60 seconds, four sine tones at 0.55 peak amplitude, 10 ms fade-in and 50 ms fade-out). Verdicts were read from the page's status element and the button's disabled state, not inferred from the code. The 20,971,520-byte file was a 237.8-second mono 44.1 kHz take; its conversion produced 422 note events.

What the cap buys

20 MB is three minutes fifty-eight of mono WAV, or thirty-six seconds at 96 kHz.

Because the limit counts bytes, how much audio fits is decided by the file's data rate: divide 20,971,520 by the bytes each format writes per second. The last column is arithmetic on the cap, with one exception — the 44.1 kHz mono row is the file we actually converted.

FormatBytes per secondAudio that fits
44.1 kHz · 16-bit · mono88,200237.8 s · 3:58 (measured)
44.1 kHz · 16-bit · stereo176,400118.9 s · 1:59
48 kHz · 24-bit · stereo288,00072.8 s · 1:13
96 kHz · 24-bit · stereo576,00036.4 s · 0:36

The practical reading is not "20 MB is small". A 3:58 mono export is most of a normal song and converts in about fifteen seconds, so there is no reason to pre-chop a four-minute take into thirty-second pieces. The cap only bites when the export settings inflate the file: if a song keeps failing while a shorter take of the same material passes, the settings are the variable, not the song.

Compressed formats move the arithmetic the other way: a lossy file stores far fewer bytes per second, so the same 20,971,520 bytes represent more seconds. For that path, see MP3 to MIDI.

Making it fit

Change the export before you change the music.

The mono 16-bit export of the 60-second phrase was 5,292,044 bytes; the 96 kHz 24-bit stereo export of the same phrase was 34,560,044. That 6.5× difference came entirely from an export dialog, and closing it is usually enough.

  1. Re-export the part you actually need. If the target is one melody line, a mono 44.1 kHz 16-bit export carries everything the detector can use. Bit depth and mono-or-stereo layout add bytes without adding a second voice to a single-line part.
  2. Trim before you export, not after. Silence at the head and tail is stored like any other audio. Cutting a minute of room tone and count-in off the front of a take removes about 5 MB from a 44.1 kHz mono WAV.
  3. Split at bar lines if you still do not fit. Cut on a bar boundary, convert each section, then join the MIDI in your DAW at the tempo you intend to use. Splitting mid-phrase is what creates notes that start on the wrong beat of the join.
  4. Convert the stem, not the mix. A full mix is too large and the wrong input for a detector that follows one pitch line.

The step-by-step version of the whole workflow, including what to prepare before the first conversion, is in how to convert audio to MIDI.

After a split

Two things break when you join sections.

The first is the seam note. A cut through a sustained note ends it early in one file and starts a second note late in the next, so the join holds either a gap or an overlap that was never played. Cut where the part is silent, or plan on one edit by hand.

The second is placement. The exported file is written against a fixed 120 BPM, 480-tick-per-quarter grid, so a part recorded at any other tempo arrives with correct internal spacing and incorrect bar positions — and joining two sections multiplies that offset rather than averaging it out. Timing drift after conversion covers what that offset looks like and why a single global nudge does not fix it.

Neither problem comes from the size limit, and a smaller file fixes neither. They are the cost of converting in pieces — cheaper than re-recording a part that would have fit in one file at 44.1 kHz mono.

FAQ

File size questions

Why is my file refused when it says 20.00 MB?

The limit is 20,971,520 bytes and the readout rounds to two decimals, so a refused file and an accepted one can both show 20.00 MB. Re-export at a lower sample rate or as mono.

Is there a time limit on the audio?

No separate time limit. The only check is the byte count, so the maximum duration is whatever fits in 20,971,520 bytes for your format — about 3:58 for 44.1 kHz mono 16-bit, about 1:13 for 48 kHz 24-bit stereo.

Does a smaller file mean worse conversion?

Not by itself. A mono 16-bit export of a single-line part keeps the pitch information the detector uses. Cutting the file by lowering the sample rate or dropping to mono is different from cutting it by removing music.

Can I convert a file in sections and join the MIDI later?

Yes. Cut on bar lines, convert each section with the same sensitivity setting, then join in your DAW at the tempo you will actually use. Check the notes on either side of each seam.