MIDI TO WAV · MEASURED BIT DEPTH · UPDATED 2026-10-25
MIDI to WAV Converter: Convert a MIDI File to WAV Free
To convert MIDI to WAV (midi to wav conversion), a synthesizer must play the notes with a SoundFont, then write the recording as an uncompressed WAV — there is no separate “encoder” step. The tool below does that in your browser with TimGM6mb: choose a .mid file, click Convert to WAV, download a 44,100 Hz 16-bit stereo file peak-normalized to −1 dBFS. Nothing is uploaded. Offline: fluidsynth -ni -g 0.8 -r 44100 -F song.wav FluidR3_GM.sf2 song.mid.
Convert MIDI to WAV in your browser (MP3 optional)
Choose a .mid or .midi file. For midi to wav conversion, click Convert to WAV. The notes are played by a General MIDI SoundFont (TimGM6mb) and encoded on this device; the file is never uploaded. Up to 10 minutes of music; output is 44,100 Hz 16-bit stereo, peak-normalized to -1 dBFS; MP3 at 192 kbps.
Open-source parts: spessasynth_core (Apache-2.0) synthesizer, lamejs (LGPL-3.0) MP3 encoder, TimGM6mb SoundFont (GPL-2.0). Licenses. The test renders further down were made with FluidSynth and the larger FluidR3_GM SoundFont, so they sound different from this tool.
MIDI to WAV vs MIDI to MP3 on this site
Google’s US results for “midi to wav” are almost all online converters (FreeConvert, Zamzar, Lacuna, Vertopal and similar). This page is the reverse of our WAV to MIDI path and the WAV-first sibling of MIDI to MP3. Same in-browser SoundFont render; here the first-screen job stops at WAV. Exclusive material below is our own FluidSynth bit-depth / float-clipping matrix and public wav-results.json — not a restatement of those converters’ upload forms.
How big is the WAV from a MIDI to WAV converter?
We rendered one MIDI (from our MP3→MIDI path, 11.379 s of piano with FluidR3_GM at FluidSynth gain 0.8) to three bit depths at 44,100 Hz stereo. Size follows sample rate × channels × bytes/sample × seconds, plus a small header:
| Format | FluidSynth flag | Audio bytes (formula) | Header | File size |
|---|---|---|---|---|
| 16-bit stereo | -r 44100 default | 2,007,296 | 44 | 2,007,340 bytes |
| 24-bit stereo | -O s24 | 3,010,944 | 44 | 3,010,988 bytes (1.5×) |
| 32-bit float stereo | -O float | 4,014,592 | 88 | 4,014,680 bytes (2×) |
| 16-bit mono | then ffmpeg -ac 1 | 1,003,648 | 78 | 1,003,726 bytes |
Loudness did not change with bit depth: 16-bit, 24-bit and float all measured −27.9 LUFS with a −13.51 dBFS peak on this MIDI. The in-page tool writes 16-bit stereo peak-normalized to −1 dBFS (different SoundFont TimGM6mb, so loudness differs from the FluidR3 table).
Why render MIDI to a float WAV before you edit it
A 32-bit float WAV keeps peaks above full scale; a 16-bit WAV cuts them off. Same MIDI, FluidR3_GM, raised FluidSynth gain:
| Gain | Float peak | 16-bit result | Float after −1 dB |
|---|---|---|---|
| 0.8 | −13.51 dBFS | −13.51 dBFS, 0 samples clipped | n/a (already under) |
| 2.0 | −5.55 dBFS | −5.55 dBFS, 0 clipped | n/a |
| 4.0 | +0.47 dBFS | 0.00 dBFS, 7 samples cut off | +0.47 kept; −1 dB restores headroom |
Prediction matched each measurement to 0.01 dB. Chords clip at lower gain than a single melody. For DAW work: render with -O float, set level there, then bounce to 16-bit. Raw counts: wav-results.json (2026-10-19).
Offline midi to wav conversion (FluidSynth)
These are the exact commands we used for the tables (FluidSynth 2.4.4 on Linux; same flags on Windows/macOS):
fluidsynth -ni -q -g 0.8 -r 44100 -F song.wav FluidR3_GM.sf2 song.mid
fluidsynth -ni -q -g 0.8 -r 44100 -O float -F song-float.wav FluidR3_GM.sf2 song.mid
fluidsynth -ni -q -g 4.0 -r 44100 -O float -F song-hot.wav FluidR3_GM.sf2 song.mid
Default FluidSynth gain is quiet; we use -g 0.8 for finished 16-bit files and higher only when testing headroom. Trim near-silent tails with FFmpeg if needed — our piano render shortened from 11.379 s to 9.200 s below −60 dB:
ffmpeg -i song.wav -af "areverse,silenceremove=start_periods=1:start_threshold=-60dB,areverse" trimmed.wav
What ranking midi-to-wav tools usually omit
What this page publishes that many upload “midi to wav” forms typically do not:
- Open formula + measured file sizes for 16 / 24 / float WAV from one MIDI
- Float vs 16-bit clipping at gain 4.0 with sample counts (+0.47 dBFS / 7 clipped samples)
- Public JSON of the WAV tests and reproducible FluidSynth flags
- In-browser TimGM6mb render with no upload (same stack as our MIDI→MP3 tool)
SERP re-fetch for a fresh exclusive score remains available when box Chrome can pull a full 10; we do not invent a tenth organic row.
MIDI end vs sounding length: what the release tail costs in WAV bytes
The size table above uses our 11.379 s piano render. The FluidSynth command block already notes that the same file trims to 9.200 s once near-silent tail below −60 dB is removed. That 2.179 s gap is note-release and reverb decaying after the last MIDI note-off — it is not extra musical material, but it is extra WAV bytes. At 44,100 Hz stereo 16-bit, audio bytes = 44,100 × 2 × 2 × seconds = 176,400 × seconds.
| Tail after last note-off | 16-bit stereo | 24-bit stereo | 32-bit float stereo | Share of our 11.379 s 16-bit file (2,007,296 audio bytes) |
|---|---|---|---|---|
| 0.50 s | 88,200 bytes | 132,300 bytes | 176,400 bytes | 4.4% |
| 1.00 s | 176,400 bytes | 264,600 bytes | 352,800 bytes | 8.8% |
| 2.179 s (our measured trim) | 384,376 bytes | 576,563 bytes | 768,751 bytes | 19.1% |
| 3.00 s | 529,200 bytes | 793,800 bytes | 1,058,400 bytes | 26.4% |
Our measured tail is 2,007,296 − (9.200 × 176,400) = 2,007,296 − 1,622,880 = 384,416 bytes, matching 2.179 × 176,400 = 384,376 within one 16-bit stereo frame of rounding. Almost one fifth of that 16-bit WAV is decay after the notes ended. If you need the smallest editor-friendly file, render, then trim with the same FFmpeg silenceremove already printed above. If you need the decay (a pad, a marked sustain pedal), keep the tail and budget the bytes.
TimGM6mb SoundFont size vs the WAV you download
The in-page tool loads /vendor/midi-render/TimGM6mb.sf2 once in the browser. That file measures 5,969,788 bytes (5.69 MiB) on this site. The SoundFont does not grow with MIDI length and is not uploaded anywhere — only fetched as a static asset. The WAV you download does grow with time, as the size table shows.
| Object | Bytes | Ratio vs TimGM6mb (5,969,788) |
|---|---|---|
| TimGM6mb.sf2 (this site, measured) | 5,969,788 | 1.00× |
| Our 11.379 s 16-bit stereo render | 2,007,340 file / 2,007,296 audio | 0.34× — the WAV is smaller than the SoundFont |
| Our 11.379 s 32-bit float render | 4,014,680 file / 4,014,592 audio | 0.67× — still smaller than the SoundFont |
| 60 s 16-bit stereo | 10,584,000 audio + 44 header | 1.77× |
| 10 min 16-bit stereo (tool cap) | 105,840,000 audio + 44 header ≈ 100.9 MiB | 17.7× |
| 10 min 32-bit float stereo | 211,680,000 audio + 88 header ≈ 201.9 MiB | 35.5× |
For clips under about 34 seconds of 16-bit stereo (5,969,788 ÷ 176,400 ≈ 33.8 s), the downloaded WAV is smaller than the SoundFont the browser already fetched. Past that point the WAV dominates memory. Program changes inside the MIDI do not download a second SoundFont; they only pick different instruments from the same 5.69 MiB file. That is the opposite of an upload converter, which would send your MIDI out and return a WAV without you hosting a SoundFont at all.
Ten-minute cap: the largest WAV this page will emit
The FAQ states the tool accepts a .mid file under 5 MB and up to 10 minutes. Here is the output budget that cap implies at 44,100 Hz stereo — the same rate the in-page renderer writes — so you can see why a long MIDI should stay at 16-bit unless you still need float headroom.
| Format | Bytes / sample / channel | Audio bytes for 600 s | Typical header | File size at the cap |
|---|---|---|---|---|
| 16-bit stereo (what the page downloads) | 2 | 105,840,000 | 44 | 105,840,044 bytes (100.93 MiB) |
| 24-bit stereo | 3 | 158,760,000 | 44 | 158,760,044 bytes (151.40 MiB) |
| 32-bit float stereo | 4 | 211,680,000 | 88 | 211,680,088 bytes (201.87 MiB) |
| 16-bit mono | 2 | 52,920,000 | 44 | 52,920,044 bytes (50.47 MiB) |
The downloaded file from this page is the 16-bit stereo row, peak-normalized to −1 dBFS. A 10-minute float render would be almost twice that (201.9 MiB) and is a desktop FluidSynth choice, not the in-page download. The 5 MB MIDI input cap is separate: a verbose MIDI can hit 5 MB well before 10 minutes, and a compact MIDI can run 10 minutes while staying far under 5 MB. The cap that bounds WAV size is the 10-minute clock, not the 5 MB file size.
Working the opposite path (audio → MIDI) or comparing formats? Start from the audio to MIDI converter or the audio tools hub.
Related converters
MIDI to MP3 (same render, then 192 kbps encode) · MP3 to WAV · WAV to MIDI (reverse) · audio to MIDI converter · MP3 to MIDI · audio tools hub
MIDI to WAV FAQ
What is midi to wav conversion?
MIDI to WAV conversion means a synthesizer plays the MIDI notes with a SoundFont or virtual instrument and records the audio as an uncompressed WAV file. The converter on this page does that in your browser; the MIDI file is not uploaded.
Can I convert MIDI to WAV for free here?
Yes. Choose a .mid file under 5 MB and up to 10 minutes, click Convert to WAV, and download a 44,100 Hz 16-bit stereo WAV peak-normalized to -1 dBFS. No account and no daily quota.
Should I render MIDI to a 16-bit, 24-bit or float WAV?
Render MIDI to a 32-bit float WAV when you will still change the level: at gain 4.0 our float WAV peaked at +0.47 dBFS and a -1 dB change brought it back intact, while the 16-bit render of the same notes had 7 samples cut off at 0 dBFS. For a finished file, 16-bit is half the size of float.
How big is a WAV rendered from MIDI?
A WAV rendered from MIDI is sample rate × channels × bytes per sample × seconds, plus a small header: our 11.379-second 16-bit 44,100 Hz stereo render is 2,007,340 bytes (44-byte header). 24-bit is 1.5× and float 2× the 16-bit size.
Is MIDI to WAV the same as MIDI to MP3?
Same first step: render notes to audio. MIDI to WAV stops there. MIDI to MP3 encodes that WAV. For MP3 settings and bitrate tests see our MIDI to MP3 page; this page is for midi to wav and midi to wav conversion.