Audio normalizer online
Match peak, RMS, or LUFS targets. Platform presets, visual meters, batch processing.
This normalizer raises or lowers one constant gain across the whole file so its level lands on the target you pick. It decodes the file with the browser's own decodeAudioData, measures sample peak and RMS across every channel, then renders the whole track through a single GainNode inside an OfflineAudioContext. Three targeting modes are available: peak (0, -0.3, -1, -3 or -6 dBFS), RMS, and a LUFS mode with presets for Spotify (-14), Apple Music (-16), YouTube (-14), podcasts (-16), EBU R128 broadcast (-23) and US TV ATSC A/85 (-24). In RMS and LUFS mode the gain is additionally clamped so the loudest sample cannot pass -0.1 dBFS, so nothing clips. Meters show peak, RMS and the estimated loudness before and after, and a batch tab normalizes a whole folder of files to one target.
Key facts about Audio normalizer online
| Mechanism | One constant gain, applied by a GainNode in an OfflineAudioContext — no compressor, no limiter, no ffmpeg |
|---|---|
| Modes | Peak (dBFS), RMS (dB) and LUFS, each with its own target control |
| Platform presets | Spotify -14, Apple Music -16, YouTube -14, Podcast -16, EBU R128 -23, US TV ATSC -24 LUFS |
| Peak targets | 0 dB, -0.3 dB, -1 dB, -3 dB and -6 dB |
| Clip guard | In RMS and LUFS mode the gain is capped so the highest sample lands at -0.1 dBFS |
| Loudness figure | Estimated as RMS dB minus 0.691 — an approximation, not a K-weighted ITU-R BS.1770 measurement |
| Output | Always 16-bit PCM WAV, with a -normalized suffix on the filename |
| Preserved | Sample rate, channel count and length are unchanged; only amplitude moves |
| Discarded | The source container and its tags — a normalized MP3 comes back as WAV, so ID3 art and artist fields are gone |
| Accepted input | MP3, WAV, OGG, FLAC, AAC and M4A, up to 500 MB per file |
| Batch | Batch tab decodes every dropped file, shows each one's peak and estimated LUFS, and applies the same target to all |
| Silent files | A file whose peak is exactly zero is rejected rather than multiplied by infinity |
What happens to your file
Nothing is uploaded, and unlike the converter tools on this site this one never fetches an engine either. Your file is read with FileReader into an ArrayBuffer, decoded by the browser's built-in decodeAudioData, rendered through an OfflineAudioContext, and written back to a 16-bit WAV by a 44-byte RIFF header that this page's JavaScript builds by hand. The download link is a blob: URL pointing at memory inside your own tab. There is no request to any server at any point in the normalize step, which you can verify with an empty Network panel while a file processes.
About this tool
- 1
Drop the file in
Pick single-file or batch mode, then drag an MP3, WAV, OGG, FLAC, AAC or M4A onto the drop zone. The page decodes it and immediately shows measured peak, RMS and estimated loudness.
- 2
Choose a mode
Peak matches the loudest sample to a ceiling. RMS matches average energy. LUFS aims at a perceived-loudness number and is the one streaming platforms care about.
- 3
Set the target
Either tap a platform preset (Spotify, Apple Music, YouTube, Podcast, EBU R128, US TV) or move the target control yourself. The summary line shows the gain in dB that will be applied.
- 4
Check the meters
The target marker is the vertical pin on the meter. If the pin sits far left of the current value the file will get quieter, not louder — that is normal for anything already mastered hot.
- 5
Normalize
The whole file renders through one gain stage. Play the before and after buttons back to back; the difference should be level only, with no pumping or dulling.
- 6
Download the WAV
The result is a 16-bit WAV. If you need MP3 or AAC back, run the WAV through the audio converter afterwards so the lossy encode happens once, after normalizing.
| Input formats | MP3, WAV, OGG, FLAC, AAC, M4A — whatever your browser's decodeAudioData accepts |
|---|---|
| Maximum file size | 500 MB per file (roughly six hours of 16-bit stereo WAV) |
| Output format | 16-bit PCM WAV only |
| Output size | A 5 MB MP3 comes back as roughly 50 MB of WAV — uncompressed audio is about 10 MB per stereo minute at 44.1 kHz |
| Browsers | Any browser with AudioContext and OfflineAudioContext: Chrome, Edge, Firefox and Safari 14.1+ |
| Speed | Offline rendering runs far faster than real time; a three-minute track is typically done in a second or two, decode included |
| Memory | The decoded track is held as 32-bit floats, so a 60-minute stereo file needs roughly 1.2 GB of RAM while it is open |
| Mobile | Works on iOS and Android, but large files are the first thing a mobile browser kills for memory |
- Use LUFS -14 for Spotify and YouTube, -16 for Apple Music and most podcast hosts, and -23 for anything going to EBU R128 broadcast.
- Normalizing louder than the source does not add detail; it multiplies the noise floor by exactly the same factor as the music.
- If a file is already above the target, the tool turns it down. That is the correct result, and it is what a streaming platform would have done to you anyway.
- Batch mode applies one target to everything, which is what you want for an album or a podcast season and wrong for a mixed playlist of different genres.
- Normalize first, then EQ or convert. Doing it in the other order means your carefully set level is no longer the level you measured.
- The estimated LUFS figure is derived from RMS, so it reads a little differently from a true BS.1770 meter on sparse or heavily filtered material. Treat it as a good working number, not a delivery certificate.
- If you only want to stop a file clipping, use peak mode at -1 dB and skip loudness entirely.
- Peak, RMS and LUFS normalization modes
- Presets for Spotify, Apple Music, YouTube, podcasts, EBU R128 and US TV
- Peak targets of 0, -0.3, -1, -3 and -6 dBFS
- Before and after meters with a target marker pin
- Batch tab for normalizing many files to one target
- Automatic clip guard at -0.1 dBFS in RMS and LUFS mode
- A/B playback of the original and the normalized render
- Levelling a podcast season so every episode hits -16 LUFS before it goes to the host
- Bringing an interview recorded too quietly on a phone up to a usable level
- Matching the loudness of tracks ripped from different sources before burning or compiling a playlist
- Pulling a hot master down to -14 LUFS so Spotify's own normalization does not do it less gracefully
- Preparing narration for a video edit so it sits at a predictable level against the music bed
- Checking what a file's actual peak and RMS are without opening a DAW
Related tools
View allPart of Audio tools that run in your browser
Works well with this6
More audio tools10
Updated