Skip to main content

Audio normalizer online

Match peak, RMS, or LUFS targets. Platform presets, visual meters, batch processing.

Free & unlimited
All processing happens in your browser. No data is sent to any server.

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

Key facts about Audio normalizer online
MechanismOne constant gain, applied by a GainNode in an OfflineAudioContext — no compressor, no limiter, no ffmpeg
ModesPeak (dBFS), RMS (dB) and LUFS, each with its own target control
Platform presetsSpotify -14, Apple Music -16, YouTube -14, Podcast -16, EBU R128 -23, US TV ATSC -24 LUFS
Peak targets0 dB, -0.3 dB, -1 dB, -3 dB and -6 dB
Clip guardIn RMS and LUFS mode the gain is capped so the highest sample lands at -0.1 dBFS
Loudness figureEstimated as RMS dB minus 0.691 — an approximation, not a K-weighted ITU-R BS.1770 measurement
OutputAlways 16-bit PCM WAV, with a -normalized suffix on the filename
PreservedSample rate, channel count and length are unchanged; only amplitude moves
DiscardedThe source container and its tags — a normalized MP3 comes back as WAV, so ID3 art and artist fields are gone
Accepted inputMP3, WAV, OGG, FLAC, AAC and M4A, up to 500 MB per file
BatchBatch tab decodes every dropped file, shows each one's peak and estimated LUFS, and applies the same target to all
Silent filesA 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. 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. 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. 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. 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. 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. 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.

Specs & compatibility
Input formatsMP3, WAV, OGG, FLAC, AAC, M4A — whatever your browser's decodeAudioData accepts
Maximum file size500 MB per file (roughly six hours of 16-bit stereo WAV)
Output format16-bit PCM WAV only
Output sizeA 5 MB MP3 comes back as roughly 50 MB of WAV — uncompressed audio is about 10 MB per stereo minute at 44.1 kHz
BrowsersAny browser with AudioContext and OfflineAudioContext: Chrome, Edge, Firefox and Safari 14.1+
SpeedOffline rendering runs far faster than real time; a three-minute track is typically done in a second or two, decode included
MemoryThe 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
MobileWorks 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
Not in any way you can hear. The tool multiplies every sample by one number, which shifts the level without changing the shape of the waveform. The one real cost is that the output is written as 16-bit WAV, so a very large gain reduction pushes quiet detail slightly closer to the 16-bit noise floor. Coming the other way, boosting a quiet file also boosts its hiss by the identical amount — normalization cannot separate wanted signal from noise, and never claims to.
Because the output is uncompressed 16-bit PCM WAV. That is about 10 MB per stereo minute at 44.1 kHz regardless of what the input was, so a 5 MB MP3 typically comes back around 50 MB. WAV is used deliberately: it is the only lossless container the browser can write without pulling in an encoder, and it means the normalize step itself adds no generation loss. If you need a small file, run the WAV through the audio converter afterwards and encode to MP3 or AAC once.
Close, but not identical. A true LUFS reading follows ITU-R BS.1770: K-weighting filters, 400 ms gated blocks, and a relative gate that ignores silence. This tool estimates loudness as the whole-file RMS in dB minus 0.691. On typical speech and music that lands within about a decibel of a real integrated measurement, which is fine for hitting a streaming target. On sparse material with long silences, or anything heavily bass-weighted, the estimate drifts further. Use it to get in the right neighbourhood, and a certified meter if you are delivering to a broadcaster.
No. In RMS and LUFS mode the gain is clamped so that the loudest single sample lands at -0.1 dBFS, which means the tool will refuse to apply the full gain your target asks for if that would push the peak over the ceiling. You will see this as a smaller gain figure in the summary line than you expected. In peak mode clipping cannot happen by definition, because the peak is what you are targeting. What the tool does not do is add a limiter to squeeze more loudness out of a peaky file.
Yes. Switch to the batch tab and drop every file in. Each one is decoded and measured separately — the list shows each file's peak and estimated LUFS — and then the same target is applied to all of them. Note that this is per-file normalization, not album normalization: each track is moved independently to the target, so deliberate loudness differences between a quiet intro and a loud closer are flattened. If an album's internal dynamics matter, normalize the loudest track and apply that same gain manually to the others.
No. This tool is pure Web Audio: the file is read into an ArrayBuffer in the tab, decoded by the browser's own decodeAudioData, rendered through an OfflineAudioContext, and written back to WAV by JavaScript running on this page. Unlike the converter tools here, it does not even fetch an ffmpeg engine, so there is no network request at all once the page has loaded. Open your browser's Network panel and normalize a file; it stays empty. The download link is a blob: URL that points at memory inside your own tab.
View all

Part of Audio tools that run in your browser

Updated

We use anonymous analytics to improve ToolChamp. No personal data is stored or sold. Privacy Policy