A wrong-looking join is almost always the result of a hidden step the joiner did not perform: it inserted silence, duplicated a channel, normalized loudness, or moved a clip out of order. Audio Joiner avoids those problems by decoding every selected file through one browser AudioContext and concatenating the decoded channel samples back-to-back in the exact list order you set, with no inserted silence, overlap, crossfade, normalization, transition, or automatic trimming. Because the join is mechanical and the limits are explicit, an output that looks wrong usually traces back to a reordering step, a channel-count mismatch, or one of the displayed budgets being exceeded. Working through those three causes in order fixes the vast majority of wrong-looking join results. Audio Joiner treats every download as a new static PCM16 WAV file written from the decoded samples, so the file you preview and download is the file that will play, and the order, channels, and joins shown in the preview are exactly what will be encoded into RIFF/WAVE.

What a Wrong-Looking Join Result Usually Means
When the result of joining audio looks or sounds off, the symptom usually falls into one of four groups: wrong order, wrong duration, wrong channel layout, or wrong codec expectations. Wrong order means the first clip ends up at the end of the file because the joiner alphabetized filenames, sorted by date, or assumed reverse-chronological order. Wrong duration means the WAV is shorter or longer than the sum of the sources, which happens when a tool inserts silence, trims a leading or trailing edge, or skips a track that failed to decode. Wrong channel layout means one channel is silent, both channels sound identical, or the file plays only in one ear because a mono file was doubled, summed, or remixed into a stereo track.
Wrong codec expectations is a softer category: the file plays, but its size, sample rate, or absence of metadata makes it look like a regression. The download is several times larger than the source MP3 or M4A, the sample rate shown in a media inspector is 48000 Hz even though the source was 44100 Hz, and there is no title, artist, or cover art because the WAV is a raw PCM file. None of these mean the join failed; they mean the join is doing exactly what the product contract says it does. The fix is to recognize which symptom you have and address it directly rather than re-running the same join and hoping the output changes.
Why Audio Joiner's Design Avoids the Most Common Errors
Audio Joiner is built around three choices that rule out the most common wrong-looking results. First, every file in one selection is decoded through the same AudioContext, and all decoded tracks must share the same channel count and, after resampling, the same sample rate, so a mono and stereo mixture is rejected instead of being silently duplicated, dropped, averaged, or remapped. Second, decoded channel samples are concatenated directly in list order, which means the last sample frame of one track is followed immediately by the first sample frame of the next track in the output channel arrays; nothing is added, nothing is removed, and the channel identity is preserved. Third, reordering changes the decoded-buffer array and the visible list together, and it clears any older WAV so a stale result cannot claim a previous order after you click Move up or Move down.
Because the join is purely a channel concatenation into one Float32Array followed by a shared encoder that clips floats to signed PCM16 and interleaves channels into a 44-byte little-endian RIFF/WAVE header, there is no separate gain stage, fade stage, or resampler applied to the joined file. The output uses the working sample rate of the AudioContext, . If your sources had different stored sample rates, the displayed rate for the tracks and the result may differ from the originals because Web Audio may resample source files to the context's working rate.
How to Redo the Join Until the Result Looks Right
The fastest way to fix a wrong-looking result is to redo the join from the start using the same sources, with the new ordering or channel choice. The preview controls let you confirm every decision before you click the download button.
- Open Audio Joiner in a fresh browser tab so any older selection is cleared and a new AudioContext is created.
- Choose 2 to 10 browser-decodable audio files within the displayed per-file and total limits; the picker recognizes common MP3, WAV, M4A, AAC, Ogg, WebM, and FLAC names and MIME types.
- Wait for browser decoding to finish. Damaged, encrypted, incomplete, mislabeled, or unsupported files produce a clear error rather than being skipped.
- Preview each decoded track to confirm it is the clip you intended and that the channel layout (mono or stereo) matches the rest of the selection.
- Use Move up or Move down until the list is in the exact order you want the output to follow; the decoded-buffer array updates at the same time and any older WAV is cleared.
- Select Join in this order, then preview the resulting PCM16 WAV to check the join points, total duration, and channel playback before downloading.
- Download the WAV and keep your source files until you have confirmed duration, order, joins, channel playback, and file size are correct.
If you only need a time range rather than a full track, or you want fades, loudness matching, channel conversion, compressed output, metadata preservation, or sample-level repair, Audio Joiner is not the right tool for that step. Switch to Audio Cutter for a time-range cut, or use a dedicated editor for the more advanced operations.
Limits That Reject a Selection Instead of Producing a Wrong File
When the result of a join looks wrong because the join never produced a file, the cause is almost always one of the explicit limits. Audio Joiner enforces the budgets in the table below; a selection outside any of them is rejected with a specific message rather than being shortened, downmixed, downsampled, or trimmed to fit.
| Limit | Value |
|---|---|
| Number of files per selection | 2 to 10 |
| Maximum size per file | 25 MiB (26,214,400 bytes) |
| Maximum total selection size | 100 MiB (104,857,600 bytes) |
| Maximum decoded duration | 30 minutes across all tracks |
| Maximum channel count | 8 channels |
| Maximum sample rate | 192 kHz |
| Maximum channel-samples | 30,000,000 samples counted across all channels |
A high-rate or multichannel selection can reach the channel-sample budget before the duration limit. For a stereo selection at 48 kHz, the 30 million sample budget works out to 30,000,000 ÷ (2 × 48,000) = 312.5 seconds, which is roughly 5 minutes 13 seconds of decoded audio. At 96 kHz stereo the same budget yields about 2 minutes 36 seconds, and at 192 kHz stereo it falls to about 1 minute 18 seconds. If you hit the sample budget first, the rejection message names the constraint that triggered, so you can drop a file, convert a track to a lower rate in a separate step, or split the join across two outputs.
Why the WAV Looks Different From Your Source Files
Even when the join is correct, the downloaded WAV often looks unfamiliar compared with the source MP3, M4A, AAC, Ogg, WebM, or FLAC. Three differences account for most of the surprise. First, the output is uncompressed PCM16, so the file size scales with sample rate, channel count, and duration rather than with the source bitrate; a 10-minute 48 kHz stereo WAV is roughly 110 MB, while the same content in 192 kbps AAC is closer to 14 MB. Second, the output does not preserve the original codec, bitrate, encoder settings, tags, album art, chapters, cue points, loop points, loudness fields, timestamps, or other container metadata; it is a new static PCM representation of the browser-decoded samples. Third, the working sample rate of the joined file is the rate of the shared AudioContext, so if any source was decoded to a different rate, the result will reflect the working rate rather than the rate stored in the original header.
The shared encoder writes a complete 44-byte 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 from -1 through 1, with negative full scale mapping to -32768, positive full scale to 32767, and non-finite values written as silence. Those behaviors are deterministic, which means the same selection and the same browser produces the same bytes, and a mismatch between the preview and the downloaded file indicates a different selection rather than an encoder bug.
Quick Checks After You Fix the Join
Once the download is on disk, four checks confirm the join is no longer wrong. Open the WAV in a media inspector and verify that the duration equals the sum of the decoded track durations, that the channel count matches the selection, and that the sample rate matches what the preview reported. Play the file from the first sample and listen for a click or pop at any boundary; because the join is gap-free and identity-preserving, a clean boundary sounds seamless and . Play the file in mono-sum mode if your player supports it and confirm that both channels of every original clip are present. Finally, compare the downloaded file size against the expected uncompressed size of channels × rate × duration × 2 bytes per sample; .
Audio Joiner never uploads your sources; file reading, Web Audio decoding, channel concatenation, WAV encoding, preview, and download all happen in 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, so closing the tab is a safe way to clear the working data. If you want a deeper walkthrough of what the output should contain after a successful run, see the related guide on how to check the result after you join audio.
Related reading: How to Get Started Joining Audio Files Locally.