Joining audio in the browser
Each file you add is decoded into raw floating-point samples using the Web Audio API — the same machinery a browser uses to play audio in a game or a music app. Once every input is raw samples, joining them is simply a matter of writing them one after another into a single buffer.
That is why mixed input formats work. An MP3, a WAV and an M4A all arrive at the same representation before anything is concatenated, so there is no format negotiation to get wrong.
Why the output is uncompressed
The merged buffer is written out as a 16-bit PCM WAV. It would be easy to encode an MP3 instead, and tempting, because the file would be a tenth of the size — but it would also mean silently putting your audio through a lossy encoder you did not ask for.
Sources that were already MP3 have lost detail once. Re-encoding them costs a second generation, and the artifacts of the two encoders compound rather than cancel. Handing back WAV keeps the join lossless with respect to what came out of the decoder, and leaves the choice of delivery format to you.
When you do want a compressed result, the Audio Converter takes this WAV and encodes it once, at a bitrate and format you pick.
The resampling caveat
decodeAudioDataalways resamples to the AudioContext's rate, which is dictated by your audio hardware and is usually 48kHz. A 44.1kHz source is therefore resampled before this tool ever sees the samples, and there is no Web Audio API through which to prevent it.
For speech, podcasts and general listening this is inaudible. For archival work where the original rate matters, it is a real limitation, and the result banner reports the actual output rate so it is never a surprise.
Gaps between tracks
The gap option inserts true digital silence between each pair of tracks. None is right for continuous material — a DJ mix, or a recording split across several files mid-sentence. A short gap of half a second to a second suits separate items in a sequence, such as chapters or individual takes, where an abrupt jump would be jarring.
Common uses
- Reassembling a recording that was split across several files
- Combining voice memos into a single interview file
- Stitching podcast segments into one episode before final encoding
- Building a continuous track from separate takes