Audio Converter
Every audio converter on the first page of results uploads your file to a server first, and none of them tells you what the file actually is before the progress bar starts. This one does the whole job in the tab: the container is parsed here, the audio is decoded by your own browser, and the output is written here as uncompressed 16-bit PCM WAV or as an MP3 at 96 to 320 kbps. Three things are checked before any work begins, and each refusal names the value it refused: the first 64 bytes of the file, so a file renamed .mp3 that is really a WAV is caught instead of being decoded as nonsense; the codec inside the track, asked of this browser, so an unsupported one is named up front rather than halfway through; and an MP4's audio tracks, which are listed for you to choose from when there is more than one, with a file that carries no audio refused outright. The size of the output is shown before you start, and it is honest about which number it is: a WAV size is exact arithmetic, so one minute of 44.1 kHz stereo is 10.1 MB, while an MP3 size is an estimate from the bitrate that the encoder's own frames move by a few per cent. The ceilings are 50 MB of file and 10 minutes of audio, because the whole track is held as 32-bit samples in this tab.
Open a MP3 file
· or drop one anywhere on the stage
Ready. Choose a MP3 file, or drop one on the stage.
The MP3 is decoded once, in this tab, after its frame header is read. The output is uncompressed 16-bit PCM at the sample rate you choose, which does not restore anything a lossy file already lost: it is a larger file, not a better one.
The From control is a mode, not a guess: the first bytes of the file are read and checked against it, so a file that was renamed is refused with what it actually is. An MP4 has its audio tracks listed before anything is extracted and its video is never decoded. Changing the sample rate resamples by linear interpolation, and changing the channel count averages a stereo pair down or copies a mono channel to both sides. The ceilings are 50 MB and 10 minutes, because the whole track is held as 32-bit samples in the memory of this tab before a single output byte is written.
The two open source parts, and their licences
Both are bundled at these exact versions and served from this site, never from another service. The links are in the licence note under the tool.
| Part | Version | Licence | What it does here |
|---|---|---|---|
| Mediabunny | 1.55.7 | MPL-2.0 | Parses the container and decodes the chosen audio track through your browser |
| lamejs | 1.2.7 | LGPL-3.0 | Encodes MP3 frames from 16-bit samples, loaded only when the output is MP3 |
| Your browser | whichever you are using | not ours | Supplies the actual audio decoders, which is why support differs between browsers |
Common questions
- Does converting an MP3 to WAV improve the quality?
- No, and any page that suggests it does is selling something. An MP3 was made by throwing away parts of the sound that the encoder judged you would not miss, and that decision cannot be undone by a later step. What a WAV gives you is a file that has not been compressed again: the samples the MP3 decodes to are written out at 16 bits with no further loss, which is what an editor or a CD-burning program wants. The file gets much larger in the process. One minute of 44.1 kHz stereo PCM is 10.1 MB whatever it came from, while the same minute at 192 kbps is about 1.4 MB, and the page prints both numbers before you press Convert.
- Is my file uploaded anywhere?
- No. The container is parsed in this tab, the audio is decoded by the decoder built into your browser, and the output file is written by JavaScript here and handed straight to the browser's download. There is no upload, no queue, no account and no request of any kind, which is also why a 10 minute file converts at the speed of your own machine rather than the speed of somebody's free tier. The only thing kept between visits is the five settings on the readout, stored in this browser under one key, and the Start over button at the top of the page forgets them.
- Why does it refuse a file I know is an MP3?
- Because the first bytes say otherwise. The page reads the first 64 bytes of the file and looks for the marks each container leaves: RIFF and WAVE for a WAV, an ID3 tag or an MPEG frame sync for an MP3, OggS for an Ogg, and an ftyp box with its brand for M4A and MP4. If those bytes disagree with the From mode you picked, the conversion stops before a decoder is asked for anything and the message names what the file actually is, so the fix is one click on the From control. Renaming a file changes its extension and nothing else, which is why the check exists at all.
- Which formats can it open, and why does that depend on my browser?
- The container side is handled here, so MP3, WAV, M4A, OGG and MP4 are all parsed on the page. Compressed audio is decoded by your browser through WebCodecs, while plain PCM inside a WAV needs no decoder at all, so the codec inside the container decides the answer: AAC in an M4A or MP4, Vorbis or Opus in an Ogg, MP3 and PCM everywhere. Current versions of Chrome, Edge and Safari cover all of those, and Firefox covers most, with the exact list differing a little between them and between operating systems. Rather than guess, the page asks your browser whether it can decode this particular track and tells you before conversion starts if the answer is no, naming the codec so you know what to export instead.
- What comes out, exactly?
- For WAV: uncompressed PCM at 16 bits, at 44,100 Hz or 48,000 Hz, mono or stereo, with a 44 byte RIFF header whose sizes are computed from the sample count rather than guessed at. For MP3: a constant bitrate file at 96, 128, 192, 256 or 320 kbps, encoded frame by frame at 1,152 samples a frame. If the output sample rate differs from the file's own, the audio is resampled by linear interpolation, which is an approximation and is named as one on the page. Stereo to mono averages the two sides so nothing panned hard disappears, and mono to stereo copies the one channel to both.
- What happens with an MP4 or a video file?
- Only the audio is touched. A file with more than one audio track has them listed before anything is extracted, with the codec and channel count of each, and the video is never decoded, which is why converting the soundtrack of a clip is quick. Which one to take is never guessed at: the tracks appear on the stage as buttons and you pick one, which is what a film carrying more than one language needs. A file with no audio track at all is refused before any work starts, with a message saying that is what is missing.
- Why are there limits on a tool that runs on my own machine?
- Because decoding expands audio, and the expansion lands in this tab's memory. Ten minutes of 48 kHz stereo is 57.6 million samples, which is 219.7 MB held as 32-bit floats before a single output byte exists, and the encode allocates again on top of that. So the ceilings are 50 MB of file and 10 minutes of audio, checked against the file before it is read and against the decoded track before anything is allocated. Neither is a paywall: there is nothing to buy here. For something longer, cut it into pieces first and convert them one at a time.
- Can I stop a conversion once it has started?
- Yes. Cancel sits next to Convert and takes effect within a frame or two, because the decode and the MP3 encode both run in chunks and check for it between them. Writing a WAV is a single pass at the end instead, so a cancel during those few hundred milliseconds lands just after it rather than during it: the finished bytes are thrown away, no download appears, and the page tells you it was cancelled. Cancelling leaves the file open and your settings as they were, so you can change the bitrate or the channel count and start again without choosing the file a second time. Nothing partial is written: the download only appears once a complete file exists.
Files are decoded and re-encoded in your browser, so nothing is uploaded. Converting cannot restore detail a lossy file already lost: MP3 to WAV makes a larger file, not a better one. Which formats can be decoded depends on your browser, and this page checks the file's actual bytes and its codec before starting rather than trusting the extension.