How to Join Audio Files
Intro, episode, outro. Verse, chorus, bridge. Ten voice memos from a walk. Joining — merging multiple audio files into one — is the reverse of splitting, and it has its own pitfalls: tiny gaps, clicks at the joins, and mismatched formats. Here's how to join audio files online cleanly, plus the MP3 gap problem nobody warns you about.
When joining makes sense
- Podcast assembly: intro music + episode body + outro + ad reads, recorded or sourced separately, become one publishable MP3.
- Audiobooks: merge per-chapter WAVs into a single file per section after proofing.
- Voice memos: ten 2-minute memos from a walk become one 20-minute note.
- Music: stitch song sections, combine stems' bounces, or build a continuous DJ-style mix from separate tracks.
- Language learning: join phrase-by-phrase recordings into one drill track with consistent gaps.
- Fixing a split: you split a file, changed your mind about a chapter break — join the parts back.
Before you join: match sample rate and channels
A browser joiner decodes everything to raw audio first, so mixed inputs work — but matching them upfront avoids surprises:
| Property | What to do | Why |
|---|---|---|
| Sample rate | Use all 44.1 kHz or all 48 kHz | Mixing rates forces resampling; one bad resample can dull transients |
| Channels | All stereo or all mono | Mono + stereo joins usually duplicate mono to both channels — fine, but know it's happening |
| Format | WAV preferred for intermediates | Joining MP3s re-encodes; joining WAVs is bit-perfect |
| Loudness | Roughly match per-file levels first | A quiet intro followed by a loud episode sounds broken; check each with a LUFS meter |
The loudness one is the most skipped and most audible. If your intro music was mastered hot at -8 LUFS and your episode sits at -16, the transition will startle listeners. Normalize the parts to similar integrated LUFS before joining — or at least check them.
How to join audio in your browser (step by step)
Using the free audio joiner (the Join tab of the editor) — local processing, no upload:
- Add files in order. Drop them all at once or one by one; drag to reorder. The playlist shows each file's duration so you can sanity-check the total.
- Trim the edges first. Cut leading/trailing silence off each part before joining — otherwise you bake awkward pauses into the middle of the merged file. (See how to trim audio.)
- Set the gap behavior. Choose: butt-join (no gap), fixed silence (e.g., 0.5 s between parts — good for drills and chapters), or crossfade (10–50 ms — good for music).
- Preview each join. Listen to the 3 seconds straddling every boundary. This is where clicks hide.
- Export once. WAV if you'll master further, MP3 192–320 kbps if this is the final delivery.
Gaps, crossfades, and clean joins
Three ways to handle the boundary between part A and part B:
- Butt join (zero gap): A ends, B starts immediately. Works when both sides are at digital silence — e.g., joining two trimmed speech segments. Any waveform discontinuity clicks, so zoom in and cut at zero crossings.
- Fixed silence: insert 0.3–1.0 s of silence between parts. The professional choice for audiobooks, drills, and multi-take compilations. It reads as intentional pacing, not a glitch.
- Crossfade (10–100 ms): overlap the tail of A with the head of B while fading A out and B in. Hides discontinuities in music and continuous ambience. Keep it short — long crossfades on speech sound like a DJ transition where none was wanted.
Click killer
If a join clicks and you can't find a zero crossing, apply a 10 ms fade-out to the end of part A and a 10 ms fade-in to the start of part B before joining. The fades force both sides to silence at the boundary — no discontinuity, no click, inaudible as an effect.
The MP3 gap problem (read this before merging MP3s)
Here is the thing nobody warns you about: MP3 files can't start or end exactly where you think. The MP3 format encodes in frames (~26 ms each), and encoders add encoder delay — typically about 50 ms of padding silence at the start of every file, plus padding to fill the last frame. This is inherent to the format, not a bug in your tool.
Consequences for joining:
- Joining MP3s back-to-back inserts ~50 ms of near-silence at every boundary. For speech with natural pauses, invisible. For gapless music (live albums, DJ mixes), audible as a tiny hiccup.
- The fix: join from WAV sources when gapless matters, and encode to MP3 once at the end. One encode = one padding region, at the very start and end of the final file, where nobody hears it.
- If you only have MP3s, trim ~50 ms off the start of each part (except the first) before joining. It's approximate — encoder delay varies slightly — but it gets you close.
- Players with gapless playback (most modern apps) read the LAME header's padding info and skip it — but only within a single file. Across separately-joined MP3 parts, the padding is real audio silence in the file.
This is also why splitting an MP3 and rejoining the parts never perfectly reconstructs the original — each split bakes in new padding. WAV in, WAV out, encode once: that's the lossless round-trip.
Podcast assembly: the standard join order
If you're building a podcast episode from parts, this is the order most producers use — and the gaps that go with each join:
- Cold open / teaser (0:15–0:45) — the hook, pulled from later in the episode.
- Theme music (0:10–0:20) — 0.3 s silence after the teaser, then music.
- Intro / host welcome — butt-join straight out of the music's fade.
- Main content — 0.5 s silence before it starts; gives the listener a breath.
- Ad reads — 0.5–1.0 s silence on each side so they feel like distinct segments, not interruptions.
- Outro + calls to action — butt-join from content.
- Outro music — start it under the last 3–5 seconds of the outro (a mini crossfade), then let it play out and fade.
Assemble in this order, preview every boundary, then export once. If you re-record the ad read next week, you only replace part 5 and re-export — no need to rebuild the episode.
Joining different formats together
MP3 + WAV + M4A in one join? Fine — the joiner decodes each to raw PCM, resamples to a common rate (usually the first file's, or 44.1 kHz), and concatenates. Practical notes:
- Quality follows the weakest link. A 96 kbps MP3 joined with WAVs still sounds like a 96 kbps MP3 in its section. Upsampling doesn't restore lost data.
- Watch the sample rates. 44.1 kHz + 48 kHz forces a resample of one side. Good resamplers are transparent; just don't do it twice.
- Export format: if any input was lossless and you care, export WAV. If everything was MP3 anyway, export MP3 at the highest input bitrate (or higher) — don't downconvert.
After joining: loudness and true peak
Run the merged file through the loudness analyzer before publishing. Two things to verify: integrated LUFS across the whole join (per-part differences average out, but check it lands near your target — -14 for Spotify), and true peak under -1 dBTP, because re-encoding the concatenated file can create new inter-sample peaks at the join boundaries even if the sources were clean.
Frequently asked questions
How do I combine multiple MP3 files into one?
Load the MP3s into a browser-based audio joiner in the order you want them, then export as a single file. The tool decodes each MP3, concatenates the raw audio, and encodes one output file. Keep all inputs at the same sample rate (44.1 kHz or 48 kHz) for the cleanest result.
Will there be gaps between joined MP3 files?
MP3 encoding adds a tiny padding of silence (~50 ms) at the start of each file due to encoder delay. When joining MP3s, trim that padding or join from WAV sources for truly seamless playback. If you hear a small gap or click at a join, a 10 ms crossfade fixes it.
Can I join WAV and MP3 files together?
Yes. A browser joiner decodes every input to raw audio first, so mixed formats, sample rates, and channel counts all combine fine — everything is resampled to a common rate (usually 44.1 or 48 kHz) before joining. For best quality, export the result as WAV if you plan further edits.
Does joining audio files reduce quality?
Joining decodes each input and re-encodes the combined output — one extra encode generation for MP3 inputs. At 192 kbps and above this is inaudible. Joining WAV files is mathematically lossless: the samples are concatenated bit-for-bit with zero quality change.
Join your audio now — free, no upload, no signup
Drag-to-reorder playlist • Gaps & crossfades • MP3 / WAV / M4A / OGG