Skip to content

Audio Joiner

Join 2–10 browser-decodable audio files in a chosen order and download one local PCM16 WAV.

Privacy: your files never leave your device. All processing happens locally in your browser.

How to use

  1. 1.Choose 2–10 browser-decodable audio files within the displayed per-file and total limits.
  2. 2.Preview the decoded tracks and use Move up or Move down until the list is in the required order.
  3. 3.Select Join in this order, preview the PCM16 WAV, then download it.

About Audio Joiner

Audio Joiner combines 2–10 audio files in the exact order shown and creates one downloadable WAV without uploading the sources. Select the files together, wait for browser decoding, preview each track, and use Move up or Move down to set the sequence. The join has no inserted silence, overlap, crossfade, normalization, transition, or automatic trimming. The last sample frame of one decoded track is followed immediately by the first sample frame of the next track in the output channel arrays.

Input decoding uses the Web Audio API and therefore depends on the codecs available in the current browser and operating system. The picker recognizes common MP3, WAV, M4A, AAC, Ogg, WebM, and FLAC names and MIME types, but a recognized extension does not guarantee that every codec variant can be decoded by Safari, Chrome, Firefox, or another browser. Damaged, encrypted, incomplete, mislabeled, or unsupported files produce a clear error. No codec library or server fallback is added.

Every file in one selection is decoded through the same AudioContext. Web Audio may resample source files to that context's working sample rate, so the rate displayed for the tracks and result may differ from rates stored in the original files. The output does not preserve independent source sample rates. All decoded tracks must also have the same channel count. A mono and stereo mixture is rejected rather than silently duplicating, dropping, averaging, or remapping channels. Matching channels are retained in their decoded order and concatenated independently before WAV interleaving.

The production joiner and isolated tests share the same channel-concatenation function and join plan. The plan validates track count, sample rate, channel count, total frames, duration, channel-sample budget, and the frame offset where every track begins. Golden stereo fixtures use different values in the left and right channels across two tracks, proving that track order and channel identity survive the join. Reordering changes the decoded-buffer array and visible list together, and it clears any older WAV so a stale result cannot claim a previous order.

Every download is a newly encoded RIFF/WAVE file with interleaved, little-endian, signed 16-bit PCM samples. The shared encoder writes 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. Tests inspect those header bytes and the complete stereo sample sequence. Float samples are clipped to the range from -1 through 1; negative full scale maps to -32768, positive full scale to 32767, and non-finite values are written as silence.

PCM WAV is uncompressed and can be much larger than the selected MP3, AAC, Opus, Vorbis, or FLAC files. 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. Keep the source files and confirm the downloaded duration, order, joins, channel playback, and file size before deleting any original.

Limits are explicit rather than silent. Select between 2 and 10 files. Each encoded file may be no larger than 25 MiB (26,214,400 bytes) and the selection may not exceed 100 MiB (104,857,600 bytes) total. Decoded audio may not exceed 30 minutes in total, eight channels, 192 kHz, or 30 million samples counted across all channels. A high-rate or multichannel selection can reach the sample budget before the duration limit. Nothing is shortened, downmixed, downsampled, or omitted to fit a limit; the selection is rejected with a specific message.

Selected files and the finished WAV use temporary local object URLs for playback and download. They are released when replaced or when the page closes. Decode work carries a job identifier, and component cleanup invalidates older jobs so a slow read or decode cannot overwrite a newer selection. The AudioContext is closed after decoding, on replacement, and during cleanup. Selecting the same files again works because the file input is reset after every choice. Use Audio Cutter when you need a time range rather than a full track, or a dedicated editor when you need fades, loudness matching, channel conversion, compressed output, metadata preservation, or sample-level repair.

Methodology & sources

The browser validates 2–10 recognized audio files against 25 MiB per-file and 100 MiB total input limits, creates local preview URLs, and decodes every file sequentially through one AudioContext. That shared context may resample sources to one working rate. Incremental and final shared plans reject invalid frames, rates above 192 kHz, more than eight channels, channel-count mismatches, more than 30 minutes, or more than 30 million channel-samples. Production then copies each decoded channel into one Float32Array at tested cumulative frame offsets. A shared encoder clips float samples to signed PCM16, interleaves channels in frame order, and writes a 44-byte little-endian RIFF/WAVE header. Tests verify order, stereo channel identity, budgets, reordering, eight external PCM values, and every important header field.

Frequently asked questions

Are gaps or fades added between files?
No. Decoded channel samples are concatenated directly in list order with no inserted silence, overlap, crossfade, or normalization.
Can I mix mono and stereo files?
No. All files must decode to the same channel count. A mismatch is rejected instead of being silently remixed.
Why can the output WAV be larger than the sources?
PCM16 WAV is uncompressed. The original compressed codec and bitrate are not preserved.
Are my audio files uploaded?
No. File reading, Web Audio decoding, channel concatenation, WAV encoding, preview, and download all happen in the current browser tab.