Audio Joiner

Drop clips. Drag to reorder. Optional crossfade between them. Get one combined file as MP3 or WAV. The audio never uploads.

drop clips here

Add MP3, WAV, M4A, FLAC, OGG, AAC. Drop more later to append.

    How it works

    Every clip is decoded to raw samples, brought to a common sample rate and channel count, concatenated in the order you set, and encoded once at the end. There is no intermediate file and no repeated re-encoding: the join happens on the raw audio, so the only lossy step is the final export.

    Files with different sample rates are resampled up to the highest one in the set rather than down to the lowest. Resampling down would throw away information that the better file actually has, and mismatched rates joined without resampling is what produces the classic chipmunk or slow-motion effect halfway through a compilation.

    Order, and how to change it

    Clips join top to bottom in the list. Dropping several files at once orders them naturally, so track2 lands before track10 rather than after it, which is what a plain alphabetical sort gets wrong. Drag a row to move it. If the running order matters and the filenames do not carry it, rename before dropping — it is quicker than rearranging afterwards.

    The crossfade

    With the crossfade at zero, clips are butted directly against each other, and the join is audible whenever the two files do not both sit at silence at the boundary — you hear a click or an abrupt change in room tone. A crossfade of 20 to 50 ms is enough to hide that on speech without smearing the words. For music, a longer fade of one to three seconds blends two pieces into each other, which is what you want for a continuous mix and emphatically not what you want for an audiobook.

    The crossfade overlaps the clips rather than adding silence between them, so the finished file is slightly shorter than the sum of its parts. On a long compilation with many joins that adds up, which matters if you are matching a target duration.

    What people use this for

    Before you join

    Level differences between clips are the thing that most often ruins a join, and joining does not fix them: a quiet take stays quiet next to a loud one, and the listener reaches for the volume control at every boundary. Run each source through normalize to the same target first, then join. If the clips came from different rooms or different microphones, no amount of level matching hides the change in tone — that is a recording problem, not an editing one.

    Limits

    Everything is held in memory at once, decoded and uncompressed, so the practical ceiling is the total of all the clips rather than the size of the largest. Around 500 MB of combined source is where a laptop starts to struggle and a phone gives up sooner. Joining a long book in two halves and then joining the halves works when a single pass does not.

    FAQ

    Are my clips uploaded?

    No. The joiner runs entirely in your browser.

    How many clips can I join?

    Practically, around 20–30 clips of a few minutes each. The limit is browser memory, not the tool.

    Can I add fades between clips?

    Yes — pick a crossfade length in the controls.

    Mixed formats?

    Fine. MP3 + WAV + M4A in one join is supported.

    What order do the files join in?

    Top to bottom in the list. Dropping several at once orders them naturally, so track2 comes before track10. Drag a row to change it.

    Why is there a click where two clips meet?

    The two files are not both at silence at the boundary. Set a crossfade of 20 to 50 ms, which is short enough to be inaudible as a fade and long enough to remove the step.

    Can I join files with different sample rates?

    Yes. Everything is resampled up to the highest rate in the set, so there is no pitch shift at the joins.

    Should I normalize before or after joining?

    Before, and each clip separately. Normalizing the finished file only fixes the peak of the whole thing, which does nothing about one section being quieter than the next.