How to volume normalize an mp3 — free, no upload
- Step 1Open the Peak Volume Normalizer — Go to volume-normalizer. The FFmpeg WASM engine loads in the page — no install, no sign-in.
- Step 2Drop your MP3 — Drag in one MP3 (WAV, FLAC, M4A, OGG, Opus and video also work). It is decoded locally; nothing uploads.
- Step 3Set the peak target — Use Target peak (dBFS). −1 (default) is the safe MP3 ceiling; the range is −12 to 0 in 0.5 dB steps.
- Step 4Choose the output format — Keep MP3 (re-encoded via
libmp3lame) or pick WAV/FLAC/M4A if you want to avoid another lossy generation. - Step 5Run the normalize — Click run. Pass one measures the decoded peak; pass two applies the gain and re-encodes to your chosen format.
- Step 6Download the result — Save the
-peaknormMP3 (or other format). Re-running on the output is a ~0 dB no-op, so it is safe.
MP3 in, format out — what happens to quality
All paths apply the same measured gain; they differ only in whether the output adds a lossy generation. Encoders are the ones the tool actually uses.
| Output format | Encoder | Extra lossy gen? | Best for |
|---|---|---|---|
| MP3 | libmp3lame | Yes (one more) | Quick share where the file stays MP3. |
| WAV | pcm_s16le | No (lossless) | Editing the normalised audio further. |
| FLAC | flac | No (lossless) | Archiving the normalised result. |
| M4A (AAC) | aac | Yes (transcode) | Apple-ecosystem playback. |
MP3 normalising controls and limits
Verified from the volume-normalizer client and processor. Same controls apply to any input format; MP3 is the common case.
| Item | Value | Note |
|---|---|---|
| Target peak range | −12 to 0 dBFS, step 0.5 | Default −1 dBFS. |
| Detection | volumedetect on decoded audio | Reads max_volume; you do not enter it. |
| Gain applied | target − measured peak | Single volume=<gain>dB shift. |
| Free tier limit | 50 MB / 30 min / 1 file | Pro 200 MB / 120 min; Pro-media & Developer 100 GB / unlimited. |
Cookbook
Real MP3 runs. Watch the measured peak (decoded, not the tag) and the format choice — that choice decides whether you add another lossy generation.
A quiet downloaded MP3 to −1, kept as MP3
The simplest case — normalise and stay MP3 for sharing. One extra libmp3lame encode is the trade-off.
Pass 1 (volumedetect on decoded MP3): max_volume: -8.4 dB Target: -1 dBFS -> gain +7.40 dB Output: MP3 (libmp3lame) Output: track-peaknorm.mp3 (peak -1.0 dBFS)
Normalise an MP3 but export WAV for editing
If the MP3 is going into an editor, output WAV so you do not stack a second lossy encode on top.
Input: voice.mp3 (max_volume -12.0 dB) Target: -1 dBFS -> gain +11.00 dB Output format: WAV (pcm_s16le) Output: voice-peaknorm.wav (lossless)
Why the default is −1, not 0, for MP3
MP3 decoding can reconstruct peaks above the stored sample peak. Normalising to 0 risks audible inter-sample clipping on playback; −1 leaves margin.
Stored sample peak after normalize to 0 dBFS: 0.0 dBFS Decoded inter-sample peak on playback: +0.6 dBTP -> clip Normalize to -1 dBFS instead -> headroom for the over.
A loud MP3 brought down to a safe ceiling
An MP3 already peaking near full scale is attenuated to −1 so it has proper playback headroom.
Pass 1: max_volume -0.3 dB Target: -1 dBFS Gain = -1 - (-0.3) = -0.70 dB Output: peak at -1.0 dBFS (safer for playback).
Normalise, then guarantee true-peak compliance
For an MP3 you will publish, follow normalising with the true-peak limiter to catch the inter-sample overs.
1) This tool: MP3 -> -1 dBFS peak 2) /audio-tools/true-peak-limiter -> -1 dBTP guaranteed Result: safe stored peak AND safe true peak.
Edge cases and what actually happens
MP3 re-encoded when keeping MP3 output
Re-encodedApplying gain and writing MP3 means a second libmp3lame encode — a small extra quality cost. For zero generation loss, export WAV or FLAC instead.
Normalising to 0 dBFS causes playback clipping
Supported0 is allowed, but MP3 decoding can produce inter-sample peaks above 0 dBTP, which clip on playback. The default −1 dBFS exists to avoid this; for a guarantee use true-peak-limiter.
Already-clipped MP3
PreservedIf the MP3 was encoded from clipped audio, the distortion is in the samples. Normalising re-scales level only; it cannot rebuild the flattened peaks.
Measured peak differs from the ReplayGain/tag value
ExpectedThe tool measures the actual decoded max_volume, ignoring any loudness tags written into the MP3. The shift is based on the real audio, not metadata.
Very low-bitrate MP3
SupportedNormalising works on any bitrate, but a low-bitrate source already has audible artefacts that the boost will make more obvious. Normalise the highest-quality source you have.
VBR MP3 input
SupportedVariable-bitrate MP3 decodes fine; volumedetect reads the decoded signal. Re-encoding to MP3 will write at the encoder's default rate, not necessarily the source VBR profile.
MP3 over 50 MB / 30 min on Free
413 too largeA long MP3 (e.g. a full DJ set or audiobook) can exceed Free limits. Pro allows 200 MB / 120 min; Pro-media and Developer remove the duration cap (100 GB).
Boost reveals MP3 hiss / artefacts
ExpectedGain lifts the noise floor and any encoding artefacts equally. Run ai-noise-reducer if hiss becomes intrusive after a large boost.
Several MP3s to normalise
Single file onlyThe tool handles one file per run. Normalise each MP3 individually with the same target if you want them to share a ceiling.
Re-normalising an already-normalised MP3
PreservedRe-running re-measures the at-target decoded peak and applies ~0 dB. It is idempotent — no compounding gain or extra distortion beyond the unavoidable re-encode.
Frequently asked questions
How does it normalise an MP3's volume?
Pass one decodes the MP3 and measures its max_volume with FFmpeg volumedetect; pass two applies a single volume=<gain>dB shift so the loudest sample lands on your target (default −1 dBFS), then re-encodes to your chosen format.
Does normalising re-encode my MP3?
If you keep MP3 output, yes — it is re-encoded once with libmp3lame, a small quality cost. Choose WAV or FLAC output to avoid an extra lossy generation.
Why is the default −1 dBFS and not 0 for MP3?
MP3 decoding can reconstruct inter-sample peaks above the stored sample peak. Targeting 0 risks audible clipping on playback; −1 leaves margin. For a hard guarantee use true-peak-limiter.
Will it use the MP3's loudness/ReplayGain tag?
No. It measures the actual decoded audio, not any tag. The gain reflects what the file really sounds like.
Can I normalise the MP3 and convert it at the same time?
Yes. Set Output format to WAV, FLAC, or M4A and the normalised audio is written in that format in the same run.
Will normalising clip my MP3?
Not at or below your target — the gain lands the decoded peak on the ceiling. The default −1 keeps headroom against inter-sample overs.
Does it boost only, or can it lower a loud MP3?
Both. If the MP3 peaks above your target, the gain is negative and it is turned down to meet the ceiling.
Is my MP3 uploaded?
No. Everything runs in your browser via FFmpeg WebAssembly. The file never leaves your device.
Will my low-bitrate MP3 sound better after normalising?
It will be louder, not higher quality. Normalising changes level only; it cannot recover detail lost to a low bitrate, and a big boost can make artefacts more obvious.
Can I normalise several MP3s at once?
No — the tool is single-file. Normalise each MP3 in its own run, using the same target for a shared ceiling.
What are the size and length limits for MP3s?
Free: 50 MB and 30 minutes. Pro: 200 MB / 120 min. Pro-media and Developer: 100 GB and unlimited duration.
Is this loudness (LUFS) normalisation for MP3?
No, it is peak normalisation. For a perceived-loudness target suited to streaming/podcast platforms, use loudness-normalizer.
Privacy first
Every JAD Audio tool runs entirely in your browser via FFmpeg (WebAssembly) and RNNoise. Your audio files never leave your device — verified by zero outbound network requests during processing.