Audio Trimmer – Cut, Fade and Export Audio Without Uploading
This audio trimmer cuts a part out of any recording on your device. Open an MP3, WAV, M4A, FLAC or Ogg file, drag the two handles on the waveform, listen to the cut points and download the result as MP3 or WAV. Decoding, editing and encoding all happen in the browser tab, so the audio is never uploaded. Use Keep selection for the usual trim, or Remove selection to cut a cough, an ad break or a false start out of the middle and join what is left.
Samples, sample rate and frames
Digital audio is a list of samples: numbers that give the height of the sound wave at evenly spaced moments. A CD-quality file stores 44,100 samples per second per channel, so one second of stereo is 88,200 numbers. The trimmer stores the start and end of the selection as whole sample positions, not as rounded seconds, so moving a handle back and forth never drifts. Zoom in far enough and the waveform turns into individual dots, one per sample.
How an MP3 can be cut without re-encoding
An MP3 file is a run of short frames. Each Layer III frame holds 1,152 samples, which is about 26.1 ms at 44.1 kHz and 24 ms at 48 kHz. Every frame starts with a 4-byte header giving its bitrate and sample rate, so a program can step through the file frame by frame. Copying a run of whole frames gives a valid, shorter MP3 that is byte-for-byte identical to the original audio, with no quality loss and no waiting. That is what Same as source does, which is why the handles snap to frame boundaries in that mode. The tool also writes a fresh Xing/Info header so players show the right duration; files that used the rarer VBRI header get none, so some players may show an estimated length.
There are two small costs. Layer III frames can borrow spare bits from earlier frames (the bit reservoir), so the first frame after a cut may point back into audio that was removed, and many decoders briefly mute it. Encoders also add about 1,100 samples of delay at the start, which this tool ignores, so the waveform can sit up to about one frame away from what a player outputs.
Lossless WAV cutting
WAV files usually store plain PCM samples, so a cut is exact to the sample. With Same as source, untouched audio is copied straight from the file and only the fade and join regions are rewritten, in the file's own bit depth. Metadata chunks such as LIST, bext and cue points are dropped, because their times no longer match the shorter file.
Why cuts click, and how fades fix it
A cut in the middle of a waveform makes the signal jump from some value straight to silence. The ear hears that jump as a click. The trimmer applies a tiny 5 ms linear fade at every hard cut by default (220 samples at 44.1 kHz), which is too short to notice as a fade but long enough to remove the click. In Remove mode the two sides of the join overlap with an equal-power crossfade, where the outgoing side follows cos(p·π/2) and the incoming side sin(p·π/2), so the combined power stays constant through the join.
Fade shapes and loudness
We hear loudness roughly on a logarithmic scale measured in decibels, so a fade that is straight on paper does not sound straight. A linear fade changes the level steadily. An equal-power fade (sin curve) stays near full volume longer and drops at the end, which suits music. A cubic fade (p³) falls quickly at first and then tails off, which often sounds the most natural for a fade-out. The fade curve is drawn over the waveform and the preview plays exactly what the export will contain.
Tips for common jobs
- Ringtones and notification sounds: set the start, tap a 15 s or 30 s length chip, add a one-second fade-out and export as MP3.
- Podcasts and voice memos: use Trim silence to drop dead air from both ends, and raise the display gain to see quiet speech.
- Checking a cut: Hear start, Hear end and Hear the join play just the few seconds around each cut, which is where problems show up.
Credits
MP3 encoding uses LAME through @breezystack/lamejs, a JavaScript port licensed under the LGPL-3.0. It is loaded only when you export as MP3 (re-encode).