User Rating 0.0 ★★★★★
Total Usage 0 times
Category Audio Tools

Drop audio file here or click to browse

MP3, WAV, OGG, FLAC, AAC • Max 500 MB

Is this tool helpful?

Your feedback helps us improve.

★ ★ ★ ★ ★

About

Manually splitting audio files introduces timing errors measured in milliseconds that cascade into sync failures in multi-track production. This tool decodes audio natively in the browser using the Web Audio API, renders a per-pixel peak waveform on Canvas, and lets you place split markers at sample-accurate positions. Each segment is exported as a standalone WAV file with a proper 44-byte RIFF header. An optional linear crossfade of configurable duration tfade prevents click artifacts at cut boundaries. The tool handles mono and stereo sources at any sample rate fs up to 192 kHz.

Limitations: decoding relies on the browser's built-in codec support. Chromium handles MP3, WAV, OGG, FLAC, and AAC. Safari may reject OGG Vorbis. Output is always uncompressed PCM WAV at the source file's native bit depth of 16 bit (float-to-int16 conversion). Files above 500 MB may cause memory pressure on devices with limited RAM.

audio splitter split audio cut audio wav splitter audio cutter waveform editor audio segments

Formulas

Each audio segment is extracted as raw PCM and encoded into a WAV container. The output file size in bytes:

S = fs × ch × b8 × t + 44

Where fs = sample rate in Hz, ch = number of channels, b = bits per sample (16), t = duration in seconds, and 44 is the RIFF header size in bytes.

The optional linear crossfade applies an amplitude ramp at each cut boundary:

Aout(n) = x(n) × Nfade − nNfade
Ain(n) = x(n) × nNfade

Where Nfade = fs × tfade is the fade length in samples, and n is the sample index within the fade region. Float32 samples are clamped to [−1, 1] before conversion to Int16 via: s16 = round(x × 32767).

Reference Data

Audio FormatExtensionChromeFirefoxSafariTypical BitrateLossless
WAV (PCM).wav✓✓✓1411 kbps (CD)Yes
MP3.mp3✓✓✓128 - 320 kbpsNo
AAC.m4a / .aac✓✓✓96 - 256 kbpsNo
OGG Vorbis.ogg✓✓✗64 - 500 kbpsNo
FLAC.flac✓✓✓ (11+)400 - 1200 kbpsYes
WebM (Opus).webm✓✓✗6 - 510 kbpsNo
AIFF.aiff✗✗✓1411 kbpsYes
WAV Output Specs (this tool)
Bit Depth16 bit signed integer (PCM)
Header Size44 bytes (standard RIFF/WAVE)
Max Channels2 (stereo)
Sample RatePreserved from source (8000 - 192000 Hz)
Byte OrderLittle-endian
Max Safe Duration~3 hours at 44100 Hz stereo
File Size FormulaS = fs × ch × 2 × t + 44

Frequently Asked Questions

Browsers decode compressed formats (MP3, AAC, OGG) into raw PCM via the Web Audio API, but re-encoding back to a lossy format requires a codec library. WAV is uncompressed PCM with a simple 44-byte header that can be constructed natively in JavaScript. This avoids quality loss from a second compression pass. If you need MP3 output, import the WAV segments into any audio editor for re-encoding.
All metadata is discarded during decoding. The Web Audio API extracts only the raw sample data. The output WAV files contain no ID3, Vorbis Comment, or other metadata frames. You must re-tag segments manually using a metadata editor.
If a segment's duration is less than twice the configured fade duration, the fade is automatically reduced to half the segment length. For a segment of 200 ms with a 150 ms fade, the effective fade becomes 100 ms. This prevents the fade-out and fade-in from overlapping within the same segment.
A 2-hour stereo file at 44100 Hz occupies approximately 1.27 GB in memory as Float32 PCM. Most modern devices with 8 GB RAM handle this. On low-memory devices, close other tabs first. The tool decodes progressively and renders the waveform from the decoded buffer. Export is done segment-by-segment to limit peak allocation.
Safari's AudioContext does not support OGG Vorbis or WebM Opus codecs. The decodeAudioData call rejects with an EncodingError. Convert your file to MP3 or WAV before loading, or use Chrome/Firefox. The tool detects this failure and shows a specific toast message identifying the codec incompatibility.
Splits operate on individual PCM samples, not on codec frames. After decoding, the audio exists as a continuous Float32Array. Marker positions are converted to sample indices via i = round(t × fs). This gives sample-level precision - typically 22.7 Ξs at 44100 Hz.