MIDI to MP3
Drop a MIDI file. Hear it played by a synthesized General MIDI instrument set, then save it as MP3, WAV, FLAC, OGG, Opus or M4A.
Nothing is uploaded. Everything runs in this tab with @audio/midi-render and @audio/midi-parse.
MIDI to MP3 with a synthesizer, not a soundfont
This page reads the file with @audio/midi-parse (tracks, tempo map, note and controller events) and renders it with @audio/midi-render: every one of the 128 General MIDI Level 1 programs is a from-scratch synth voice — FM synthesis (Chowning, 1973) for pianos, brass and bells, Karplus–Strong plucked strings for guitars and bass, and modal resonator banks (Fletcher & Rossing) for bars, plates and struck strings. There is no soundfont, no sample bank, nothing to download beyond the JavaScript itself.
What it sounds like
A synth-GM module, not a recording. Pianos ring with a modal string body under an FM hammer transient, organs are nine-partial additive drawbars, brass patches rise in FM modulation index through the attack the way a real embouchure builds. It is a faithful, coded approximation of each GM voice, not a substitute for a sampled soundfont when exact GM timbre matching matters.
Tempo, transpose, sample rate, channels
Tempo from 50% to 200% stretches or compresses the whole note schedule before synthesis, so slowing down re-renders the piece at the new speed rather than just stretching silence. Transpose shifts every non-percussion note up to an octave either way. Sample rate (44.1 or 48 kHz) and channel count (stereo or mono) set the render's output directly.
What the report shows
Note and track counts come straight from @audio/midi-parse. Instruments used lists the General MIDI program names in effect on each channel — the same per-channel program resolution the renderer itself uses — plus percussion when channel 10 has notes.
Questions
Is this a real soundfont or sampled instruments?
No. Every General MIDI program is synthesized live from scratch with FM synthesis, Karplus–Strong plucked strings and modal resonator banks — the same algorithm families real synthesizers use, not a recording. It sounds like a synth-GM module, not a sample library.
Which MIDI files work?
Standard MIDI Files, format 0 or 1, .mid or .midi. Multi-track, multi-channel files are supported: program changes, channel volume (CC7), pan (CC10, read once per channel), sustain pedal (CC64) and pitch bend are all read from the file.
What happens on the drum channel?
Channel 10 always uses the fixed General MIDI percussion map (kick, snare, hi-hat, toms, cymbals, latin percussion on keys 35 to 81), regardless of any program change on that channel — that is what GM Level 1 specifies.
Why does rendering take a few seconds?
Every note is synthesized sample by sample in your browser, then encoded to the format you pick. A multi-minute, several-hundred-note piece takes a few seconds on a laptop. Nothing is uploaded and nothing is cached on a server.
Can I change the tempo or key?
Yes. Tempo (50 to 200%) stretches or compresses the note schedule before synthesis; transpose (±12 semitones) shifts every non-percussion note. Both apply to the render itself, not as after-the-fact audio processing.
More audio utilities
- Extract audio from video
- Remove or replace video audio
- Audio converter
- Loudness meter and normalizer
- Noise remover
- Remove silence from audio
- Wow and flutter fixer
- Transcribe audio to text and subtitles
- Key and BPM finder
- Vocal remover
- Pitch and tempo changer
- Audio to MIDI and sheet music
- Tuner
- Audio recorder
- Lossless audio checker
- Spectrogram
- Room and speaker measurement