Skip to content

Join and merge audio files

Merge MP3, WAV and M4A files into one track. Reorder them, trim each piece on its waveform, add a crossfade — all inside your browser.

  • Runs in your browser
  • Files are never uploaded
  • Free, no account
Drop the audio files you want to joinMP3, WAV, M4A, FLAC, OGG, Opus, AMR — mix formats freely, they get lined up for you.MP3, WAV, M4A, AAC, OGG, OGA, OPUS, FLAC, WMA, AIFF, AIF, AMR, WEBM, MP4 · up to 2048 MB each
Waveforms are drawn with the browser’s own Web Audio decoder, so you can trim before you commit. Joining runs through FFmpeg in this tab: no upload, no track limit, no watermark and no five-minute cap.

First use downloads the 10 MB video engine from this site. After that it is cached and works offline. It is WebAssembly served by onthisdevice.com — never a third-party CDN — and your file is still processed entirely on your own device.

How to join audio files

  1. Add every file at once. Each one gets a waveform, drawn by your browser’s own audio decoder.
  2. Reorder with the arrow buttons — the list plays top to bottom.
  3. Drag the handles under a waveform to trim that track. The highlighted section is what will be used.
  4. Choose a crossfade if you want the tracks to blend rather than butt together.
  5. Join, listen to the result in the player, and download.

Two paths, and why it matters which one runs

Joining audio can be a lossless operation or a lossy one, and most tools quietly do the lossy version every time. This one picks based on what you have asked for and tells you which path it took.

Lossless copyRe-encode
Runs whenAll files share one format, no trims, no crossfadeMixed formats, any trim, or any crossfade
What happensAudio packets are copied straight into the output containerEverything is decoded, normalised to 44.1 kHz stereo and encoded once
QualityBit-identical to the sourcesOne additional generation of lossy encoding
SpeedNear-instant, even for hours of audioRoughly real-time divided by ten on a modern laptop

If preserving quality matters more than a smooth transition — joining chapters of an audiobook, or reassembling a recording that was split across files — convert everything to the same format first with the audio converter, then join without trimming to keep the lossless path.

How crossfades change the length

A crossfade overlaps two tracks rather than inserting anything between them, so it makes the result shorter. With n tracks and a crossfade of d seconds, the total is:

total = sum of trimmed lengths − (n − 1) × d

Four tracks of three minutes each with a two-second crossfade give 12 minutes minus 6 seconds, not 12 minutes. The running total above the track list already accounts for it, and a track shorter than the crossfade is rejected with an explanation rather than producing silence.

The fade shape used is tri — a linear triangular curve on both sides, which is the neutral default. It suits speech, ambience and most music. Only sustained tonal material with matched keys benefits from anything more exotic.

What the waveforms are for

Each track is decoded by the browser’s Web Audio API and reduced to 480 peak values, which are drawn as a bar chart. The highlighted portion is the part you have kept; the dimmed portions are trimmed away. That makes the common jobs visual rather than guesswork: finding where the speaking starts, cutting the count-in at the front of a take, trimming the fumbling at the end of a voice note.

Some browsers cannot decode every format — Safari and Opus is the usual pairing — and those tracks show a note instead of a waveform. Trimming and joining still work; you just lose the picture.

Common jobs this handles

  • Stitching a split recording. Phone recorders often break long sessions into 30-minute files. Join with no trims and no crossfade for a lossless single file.
  • Building a continuous mix. Reorder, trim the dead air off each end, add a two-second crossfade.
  • Combining voice notes. Turn a scattered run of WhatsApp messages into one coherent recording — see Opus to MP3 if you need them converted first.
  • Assembling an audiobook chapter. Join the takes, trim the retakes out at the boundaries.
  • Adding an intro and outro to a podcast episode, with crossfades at both joins.

Why 44.1 kHz stereo on the re-encode path

Concatenating and crossfading require every branch of the filter graph to agree on sample rate, sample format and channel layout — otherwise FFmpeg refuses to link them. Rather than picking the first file’s properties and quietly resampling everything else to match, this tool normalises all branches explicitly to 44.1 kHz stereo, the safest common denominator for playback everywhere. A mono source is duplicated across both channels; a 48 kHz source is resampled once, with a high-quality filter, rather than twice.

No upload, no cap, no watermark

Thirty tracks per session, no limit on their length or combined size beyond your device’s memory, and no watermark or signup on the way out. The usual free web joiner caps you at a handful of files and a few hundred megabytes, and asks for an account before the download — constraints that exist because their servers are doing the work. Here your processor is, and you can confirm nothing is transmitted by opening the Network tab or simply switching off Wi-Fi first.

Questions

Does joining re-encode my files?

Only when it has to. If every track is the same format and you have not trimmed anything or set a crossfade, the audio packets are copied straight through and the result is bit-identical to the sources. Mixed formats, a trim or a crossfade all require decoding, so everything is normalised to 44.1 kHz stereo and encoded once. The panel says which path ran.

How does the crossfade change the total length?

A crossfade overlaps neighbouring tracks rather than adding time, so each one shortens the result by its own length. Three tracks with a 2-second crossfade finish 4 seconds shorter than the sum of the parts. The running total above the list already accounts for it.

Where do the waveforms come from?

Your browser’s own Web Audio decoder reads each file and the peaks are drawn on a canvas. Some browsers cannot decode every format — Safari and Opus, for instance — and those tracks simply show a note instead of a waveform. Trimming and joining still work.

Is there a length or track limit?

Thirty tracks per session, and no limit at all on their length or combined size beyond your device’s memory. Compare that with the usual free web joiner, which caps you at a handful of files, a few hundred megabytes, and a watermark or signup before download.