BrowserTools

Audio Joiner

Merge tracks into one continuous file

By Guga — BrowserTools maintainer, Tbilisi, Georgia Updated 2026-08-26
Free Private No uploads

Every part is decoded and re-encoded here, by a WebAssembly build of FFmpeg, which costs a one-time download of close to 30 MB out of unpkg.com. Nothing you select is ever transmitted.

What is Audio Joiner?

This concatenates. Select four files, get one file back with them end to end in the order you picked, and nothing else — there is no summing, no crossfade and no overlap, so two tracks that both contain a lead vocal stay two lead vocals sitting on top of each other. Every part is decoded and re-encoded into a single MP3, which unifies the container and codec but does not correct anything else: the join assumes the parts share a sample rate and channel layout, and it does not resample. Mix a 44.1 kHz recording with a 48 kHz one and the output header describes whichever rate came first, so the other segment plays fast or slow. Normalise rates before joining if that matters.

Join multiple audio files into a single track — useful for podcasts, DJ sets and audiobook chapters. Re-encodes to MP3 to smooth over mixed formats, all locally.

Private Audio Joiner In Your Browser

Audio Joiner is processed locally with client-side JavaScript. Your files never touch a server, and there is no queue to wait in.

Step-by-Step

How to use Audio Joiner

1

Drop two or more audio files onto the panel; only audio containers are accepted here, not video.

2

Confirm the selection order, since that becomes the running order of the joined file.

3

Press Join into one MP3 and wait — a one-off engine download comes first, then a re-encode of the combined length.

4

Play the joined track in the audio player, check its duration, and press Download MP3 to keep it.

Key Capabilities
  • Concatenates an arbitrary number of parts strictly in selection order.
  • Re-encodes the whole joined stream once with libmp3lame, so the output is a single uniform MP3.
  • Accepts MP3, WAV, OGG, M4A, FLAC and other audio containers, normalising the container and codec across them.
  • Cleans up every part and the join list from the engine's filesystem once the output is read back.
Common Use Cases
  • A audiobook producer stitching eleven separately recorded chapters into one continuous file for distribution.
  • A DJ preparing a 40-minute continuous mix from exported sets without opening a DAW.
  • A researcher concatenating forty interview extracts into a single corpus file for batch analysis.
Clear Answers

Frequently Asked Questions

Does this mix the tracks together or play them in sequence?
In sequence. The parts are laid end to end with nothing but the natural gap between them. If you need two stems summed into one channel, this is the wrong tool — that is mixing, and it needs a different filter chain entirely.
What happens if the parts have different sample rates?
The rate is not resampled. The joined file's header describes the rate of the first part, and a segment recorded at a different rate will play faster or slower than it should. The fix is to convert each part to a common rate first, then join — do not rely on the join to reconcile it.
Will there be clicks or gaps at the joins?
Possibly a very short one. Each source MP3 carries its own encoder delay, baked in at the start of its audio, so joining several can shift a part by a few milliseconds relative to its neighbours. Joining FLAC or WAV sources avoids that particular offset.
How much memory does a long join need?
Every part is read whole into the WebAssembly engine's in-memory filesystem, and the joined result is held in memory before the download is offered. Join a handful of hour-long chapters rather than a full album's worth of lossless masters. The ~30 MB engine itself downloads once from unpkg.com and is then cached.