Joining audio correctly means combining 2 to 10 browser-decodable files in the exact order you need, with every file decoding to the same channel count, and producing a single gap-free PCM16 WAV you can preview and download locally without ever uploading the sources. The word "correctly" hides several concrete requirements that many tools gloss over: the order of the tracks in the final file must match the order shown in the visible list, the join between two tracks must be sample-accurate rather than padded with silence or smeared with a crossfade, and the channel layout of the output must match what you expected rather than being silently downmixed or duplicated. When you use Audio Joiner in your browser, those requirements are stated explicitly and either met or rejected with a specific message, which is why it is the safest reference point for anyone asking how to join audio correctly in the first place.
Most failed joins come from three recurring causes: the file picker accepted files that the browser later cannot decode, two tracks that look fine on paper decode to different channel counts, or the user reordered by hand but trusted a previous preview. The sections below cover the rules the tool enforces before you click Join, the exact steps for a clean run, and the verification steps that prove the output matches what you intended.

What "Joining Audio Correctly" Actually Requires
A correct join has four observable properties that any reader can confirm without specialist software:
- The tracks in the downloaded WAV play back in the same order shown in the on-screen list.
- The transition between two adjacent tracks is sample-accurate, so the last sample of one track is immediately followed by the first sample of the next, with no silent padding, overlap, crossfade, or transition effect of any kind.
- The channel layout in the output matches every input, so a stereo source stays stereo and a mono source stays mono, with matching identity in left and right channels preserved across tracks.
- The downloaded file is a self-contained, locally generated RIFF/WAVE PCM file that can be opened in another audio editor, played in a media player, or passed to the next step in your workflow.
If any one of those four properties is wrong, the join is wrong, even if the file plays without an error. Audio Joiner is built so each property is either guaranteed by its behavior or rejected up front, rather than silently fixed.
The Limits Audio Joiner Enforces Before You Click Join
The tool advertises explicit budgets instead of silently truncating, resampling, or downmixing a selection. Every limit below is checked before decoding finishes, and a violation produces a clear error message rather than a degraded file.
| Constraint | Value | Why it matters |
|---|---|---|
| File count | 2 to 10 files per selection | Fewer than 2 cannot form a join; more than 10 is rejected to keep the join plan predictable. |
| Per-file size | 25 MiB (26,214,400 bytes) per encoded file | Protects browser memory and keeps decode times short. |
| Total input size | 100 MiB (104,857,600 bytes) across the selection | Stops the combined sources from overwhelming the tab. |
| Total decoded duration | 30 minutes across all selected files | Independent of file size, since compressed formats vary widely. |
| Channel count | Up to 8 channels per file | Matches the Web Audio API range used for decoding. |
| Sample rate | Up to 192 kHz | Anything above is rejected up front. |
| Channel-sample budget | 30 million samples counted across all channels | A high-rate or multichannel selection can reach this before hitting the 30-minute cap. |
Nothing is shortened, downmixed, downsampled, or omitted to fit a limit. If a selection breaks any row above, the join is rejected before a WAV is produced.
How to Join Audio Correctly Step by Step
- Open Audio Joiner in your browser and choose 2 to 10 audio files from your device. The picker recognizes common names and MIME types for MP3, WAV, M4A, AAC, Ogg, WebM, and FLAC, but a recognized extension does not guarantee that your current browser can open the codec variant. Damaged, encrypted, incomplete, mislabeled, or unsupported files produce a clear error.
- Wait for every chosen file to finish decoding through the same AudioContext. The on-screen display shows the working sample rate and channel count of that context, which may differ from the rates stored in the original files because Web Audio can resample sources to the context's working rate.
- Preview each decoded track using its built-in player. If a track sounds wrong, pauses unexpectedly, or reports zero duration, replace that file before you reorder anything.
- Use the Move up or Move down controls until the visible list matches the order you want in the output. Reordering updates both the decoded-buffer array and the list together, and clears any older WAV so a stale result cannot claim a previous order.
- Confirm that every track shows the same channel count. A mono and stereo mixture is rejected rather than being silently duplicated, dropped, averaged, or remapped, so this step is the moment to catch a mismatch before you click Join.
- Click Join in this order, then preview the resulting PCM16 WAV in the same tab. If anything sounds off, switch back to the list, reorder or replace tracks, and join again.
- Download the WAV to a location you control. The file is a brand-new RIFF/WAVE PCM16 encoding written from the decoded samples; it is not a copy of any source container.
Channel Count and Sample Rate Rules That Decide Whether a Join Succeeds
The single most common reason a join looks wrong is a channel-count mismatch the user did not notice until after download. Because all decoded tracks must share the same channel count, mixing a mono voice memo with a stereo music bed is rejected up front rather than being silently remixed. The table below summarizes what the tool does in each channel scenario.
| Scenario | Outcome |
|---|---|
| All files decode to the same mono channel count | Join succeeds; one mono channel in the WAV, in list order. |
| All files decode to the same stereo channel count | Join succeeds; left and right channels are concatenated independently before WAV interleaving, preserving identity across tracks. |
| Mono and stereo files in the same selection | Join is rejected; no silent duplication, drop, averaging, or channel remap occurs. |
| Any file decodes to more than 8 channels | Join is rejected before any output is written. |
Sample rate works differently. The browser does not require every input to start at the same rate, but Web Audio may resample each source to the working rate of the single AudioContext used for the selection. The rate you see in the tool is that working rate, and the output WAV is written at that rate as well. Source sample rates are not preserved in the output, so if you need a specific final rate, decode your sources to that rate in a separate editor before joining.
What the Output WAV Does and Does Not Preserve
The downloaded file is a brand-new static PCM representation of the decoded samples, not a container that carries the original codec, bitrate, tags, album art, chapters, cue points, loop points, loudness fields, timestamps, or other metadata. Specifically, the encoder writes a 44-byte little-endian RIFF/WAVE header with the RIFF size, WAVE and fmt identifiers, PCM format tag, channel count, decoded sample rate, byte rate, block alignment, 16-bit depth, data identifier, and exact data byte length. Float samples are clipped to the range -1 through 1; negative full scale maps to -32768, positive full scale to 32767, and non-finite values are written as silence.
Because PCM16 WAV is uncompressed, the output can be much larger than the selected MP3, AAC, Opus, Vorbis, or FLAC sources even when the audio is identical in length. If your downstream tool needs a compressed file, run the WAV through a separate encoder rather than expecting the joiner to emit MP3 or AAC directly.
File reading, Web Audio decoding, channel concatenation, WAV encoding, preview, and download all happen inside the current browser tab. Selected files and the finished WAV use temporary local object URLs that are released when replaced or when the page closes, and the AudioContext is closed after decoding, on replacement, and during cleanup. Decode work carries a job identifier, and component cleanup invalidates older jobs so a slow read or decode cannot overwrite a newer selection.
Quick Verification Before You Delete the Originals
The fastest way to confirm you joined audio correctly is to compare five observable properties of the downloaded file against what you asked for, in this order:
- Duration: open the WAV in any player and check that the total duration matches the sum of the individual durations you started with, allowing for the working sample rate the tool reported.
- Order: scrub through the file at each transition and listen for the order you set in the list.
- Joins: at every boundary, confirm there is no audible silence gap, click, pop, fade, or overlap. A correct join sounds like one continuous clip at the seam.
- Channels: play the file in mono and stereo modes if your player supports both, and confirm the layout matches the channel count you expected.
- File size: compare the downloaded file size against the uncompressed PCM16 estimate for the total duration, channels, and rate. A result that is far smaller or larger than that estimate is a signal to re-check.
Keep the source files until those five checks pass. If anything looks wrong, the How Do I Check the Result After I Join Audio guide walks through deeper diagnosis, including what to do when a transition sounds wrong or a track seems out of order. For cases where you need a time range rather than a full track, fades, loudness matching, channel conversion, compressed output, metadata preservation, or sample-level repair, Audio Joiner is not the right tool, and a dedicated editor is the correct next step instead.
For the technical background on the decode step that Audio Joiner relies on, the Web Audio API documents the BaseAudioContext decodeAudioData method and the AudioBuffer interface, which together define how a browser turns an encoded file into the channel-sample arrays the joiner concatenates.
Related reading: Use an Audio Equalizer Correctly: A Three-Band Checklist.