Converter · No upload
WAV to MP3, without uploading anything
Drop in WAV recordings and download MP3s a fraction of the size. The conversion runs entirely inside your browser — nothing is uploaded, which matters twice for WAV: recordings are private, and they're huge. The network meter below proves the zero live.
How this converter works
When you choose a file, the browser's File API hands this page the bytes in memory — no transfer happens, because the file is already on your machine. Your browser decodes the WAV itself; PCM audio is the simplest thing a browser's audio engine reads, so this site ships no decoder at all for your files. The raw samples are then re-encoded to MP3 at the bitrate you chose by lamejs, a JavaScript port of the LAME encoder (LGPL), running inside this tab, and the result is handed back as a download link with the before and after sizes printed on the row. A server never appears in the pipeline because this site doesn't have one.
The encoder is the one thing that downloads, once — before any file of yours is read, so the network meter's zero is honest. WAV is where the local architecture pays twice: an hour of CD-quality audio is around 600 MB, which is a long upload to someone else's server and a non-event to read from your own disk. And you can run the strongest check yourself — let the encoder land, switch your wifi off, and convert. It still works. The methodology page covers the other verifications and publishes the encoder's license and provenance.
The honest limits: WAV to MP3 is a lossless-to-lossy conversion, so this is the one direction where the loss is entirely yours to choose — the WAV had everything, and the bitrate dial decides how much the MP3 keeps. 128 kbps is compact and fine for speech, 192 kbps (the default) is near-transparent for most music, 320 kbps is the format's ceiling. Keep the WAV as your master. Unusual rates and channel counts are remixed to what MP3 can hold — high sample rates come down to 44.1 kHz, surround mixes fold to stereo — and broadcast-WAV metadata is not carried across. A damaged file gets its own error row naming the problem rather than being silently skipped.