Kill the dead air. Match the levels. In one pass.
Drop your files: the trimmer finds where each one actually starts and ends, cuts the silence, and normalizes the level — peak for samples, LUFS for spoken word. Batch out as a ZIP.
Free · no account · runs in your browser — nothing is uploaded; your audio never leaves your device.
Nothing downloads until you accept it: trim the batch, audition each row's trimmed result, accept the rows you want, then download — one file directly, several as a ZIP.
Clean files are the floor. A clean library is the product.
AudioEncode in the studio runs this across your whole collection and remembers the results — every file trimmed, tagged, and findable forever. Sign up: 3 full packs free.
Why head-and-tail silence matters more than it seems
A half-second of dead air in front of a sample means every drop lands late when you trigger it. Uneven lead-ins across a kit mean nothing sits on the grid. And a folder of voice notes recorded at wildly different levels is unusable until someone levels it. This tool fixes all three in one pass, for up to ten files at a time, and never touches the audio between the first and last real sound.
The two normalization modes exist because "loud" means two different things: peak mode makes the loudest sample hit a target — right for drums and one-shots — while LUFS mode matches how loud material feels, which is what podcast platforms and streaming services actually measure.
The review-before-commit silence trimmer
Nothing is uploaded, so your audio never leaves the machine you are working on. The run itself never hands you a file. It computes each result, writes the amount removed into the row, for example “trimmed 2.40s”, and adds the measured level whenever normalization is on, then stops. That pause is the point: the batch is reviewed before it commits.
Every row carries its own Audition trim button, which plays the cut and levelled result — the shorter file you are about to keep, not the original you dropped in. If it sounds right, press Accept on that row; the row marks itself and the download button counts it. Rows you do not accept are never written. Change the threshold and run the same files again and every accept resets, so a stale acceptance cannot ship stale audio.
Reading a row after the run
Each row keeps the file name and replaces the file size with the result of the pass. The trim figure is the total removed from both ends combined, so “trimmed 2.40s” means the head and tail together lost that much audio. When peak normalization is on, the row adds “peak −0.3 dB”, because that is where the loudest sample now sits.
Loudness mode reports the measurement it started from and the target it moved to, as in “-18.6 → -16 LUFS”. A target of −16 LUFS suits spoken word and −14 LUFS suits streaming material, while samples are matched at −0.3 dB. The gain applied to reach that target is capped at 30 dB. A file with nothing above the threshold does not produce an empty WAV: the row reports “failed — file is silent below the threshold”, so you can drop the threshold and try again.
A worked pass
Say you have six spoken-word files, a threshold of −45 dB, and loudness set to −16 LUFS. Each file loses a different amount from its head and tail, because each recording has its own lead-in and run-out. After the run every row reports the same −16 LUFS target, so the six files play back at one perceived level even though their trims differ — audition any row to hear that before accepting it. A folder of 200 ms drum hits is the opposite case, and peak −0.3 dB is the right setting there. Integrated loudness measured across a hit that short tells you very little, and the row may not report a figure at all.
What changes and what does not
The pass removes leading and trailing silence and sets one overall gain figure; nothing else is rewritten. Everything inside those boundaries comes back as it went in.
- Sample rate stays at the source rate, with no resampling.
- Channel count is preserved, so stereo does not collapse to mono.
- The audio between the first and last sound is copied untouched.
- Output is uncompressed WAV, named yourfile_clean.wav for each source.
- Download commits only the rows you accepted: one accepted row saves that WAV directly, several arrive as a ZIP named trimmed_normalized.zip.
When to use the dead-air trimmer instead
Gaps in the middle of a music file are usually intentional, so this trimmer only works from the two ends. For spoken word with long internal pauses, use the PodDJ Dead-Air Trimmer, which is built to cut silence between sentences.
How to trim silence from audio files
- Add filesDrop up to 10 audio files on the trimmer.
- Set the thresholdPick -60 dB to keep soft intros, -45 dB as standard, or -35 dB to trim aggressively.
- Choose normalizationLeave it off, normalize peaks for samples, or normalize loudness to -16 or -14 LUFS.
- ProcessPress Trim and normalize all and check each file's waveform.
- DownloadSave the processed files, individually or as a ZIP.
Frequently asked questions
How does the silence trimmer decide what to cut?
It scans from each end for the first moment the level rises above a threshold (default −45 dB, adjustable) and cuts there, snapping to zero crossings with a few milliseconds of padding so nothing clips or pops. Quiet fade-ins survive — raise the threshold if your material starts extremely soft.
What's the difference between peak and LUFS normalization?
Peak normalization raises the whole file so its loudest sample hits a target — perfect for one-shots and samples. LUFS normalization matches perceived loudness — the right choice for voice notes, podcast clips, and comparing songs. The tool offers both.
Can it remove silence in the middle of a file?
This tool trims head and tail only — mid-file gaps are usually intentional in music. For dead-air removal inside podcast episodes, use the Dead-Air Trimmer on poddj.com; it's built exactly for that.
What format comes out?
Uncompressed WAV at the source sample rate, single files directly or batches as a ZIP.