Skip to content

Normalize Audio Online — Free LUFS Loudness Tool

Pick a podcast, streaming or broadcast target and let the file be measured before anything is changed.

ENGINEFFMPEG LOUDNORM
ACCEPTSMP3 WAV OGG M4A FLAC AAC OPUS WMA
MAX SIZEMEMORY-BOUND
UPLOADNEVER

Nothing is enforced, but the waveform is decoded to 32-bit float in this tab at roughly 20 MB per minute of 44.1 kHz stereo, and the normalised file is built whole in the engine's memory before it is handed back.

01Upload your audio file by dragging it into the drop zone or clicking to browse.
02Pick a TARGET — Streaming, Podcast or Broadcast — choose the output FORMAT, then click Normalise. The file is measured first and the page reports what it found.
03Click Download to save the normalised audio.

About Normalize Audio

Loudness is not volume, and it is not peak level. Two files can both peak at exactly 0 dBFS and still sound a long way apart, because what you hear is the average energy over time rather than the tallest sample in the file. That average has a unit — LUFS — and the places audio ends up publish targets in it: around −14 LUFS for music streaming, −16 for spoken word, −23 for EBU R128 television. This tool takes a file to one of those three targets using FFmpeg's loudnorm filter, which is a real loudness measurement rather than a peak search. It runs in two passes where it can. The first pass measures the programme loudness, the true peak and the loudness range of the whole file and prints them; the second pass feeds those numbers back and asks for a single, linear gain, which leaves the dynamics inside the file alone. Loudnorm does not always grant it: when one gain large enough to reach the target would push the true peak past the ceiling, it rides the gain across the file instead — the dynamics change and the result lands near the target rather than on it. It never announces that, so the second pass is asked for its own report and the page names whichever of the two gains it really applied. That first pass costs about 22 milliseconds per second of audio, which is roughly seven seconds for a five-minute episode, and the page shows what it measured. When the measurement comes back unusable — a digitally silent file reports an infinite loudness, which cannot be fed back — the run falls back to loudnorm's single-pass mode, which adjusts as it goes and lands near the target rather than on it. The page says which of the two passes really ran rather than claiming the better one. Two things are worth knowing before you use the output. Loudnorm negotiates a 192 kHz internal rate, so the sample rate is pinned back to the source's on the way out; MP3 can only carry nine sample rates, topping out at 48 kHz, so an MP3 export of a 96 kHz source is written at 48 kHz and anything else off that list is rounded up rather than to the nearest, which costs bytes instead of bandwidth; either way the page says so. And tags and cover art do not survive: the picture stream is not mapped and the metadata is explicitly dropped rather than copied across. Everything runs in this tab through FFmpeg compiled to WebAssembly, and nothing is uploaded.

Questions

What is LUFS, and why not just make it louder?

LUFS measures average loudness over time, weighted the way hearing is, rather than the tallest sample in the file. Two files can both peak at 0 dBFS and still sound a long way apart. Peak normalisation only guarantees that nothing clips; a LUFS target is what actually makes two tracks sound like they belong together.

Does it really run two passes?

It does when it can, and it tells you when it did not. The first pass measures the whole file with loudnorm and prints the numbers; the second feeds them back and asks for one linear gain. If that measurement comes back unusable — a digitally silent file reports an infinite loudness, which cannot be fed back — the run falls back to loudnorm's single-pass mode and says so on screen. The pass count is read off the filtergraph that actually executed, and the gain is read off what the second pass reported doing: loudnorm rides the gain instead of applying one whenever a single gain would break the true-peak ceiling, and the page names whichever it did.

Which target should I pick?

Podcast (−16 LUFS, −1.5 dBTP) is the safe default for anything with a voice in it. Streaming (−14 LUFS, −1 dBTP) is the common music-streaming playback level — a master louder than that gets turned down on the way to the listener rather than played louder. Broadcast (−23 LUFS, −2 dBTP) is the EBU R128 television target; the 7 LU loudness range on that preset is this tool's choice, not part of the standard.

Why did my 96 kHz file come out at 48 kHz?

Only on MP3 export. Loudnorm negotiates a 192 kHz internal rate, so the output rate is pinned back explicitly — to the source's rate for WAV and FLAC, and for MP3 to one of the nine rates it can actually carry, which tops out at 48 kHz. A rate off that list is rounded up rather than to the nearest, so no part of the band is thrown away. The page says so when it happens. Choose WAV or FLAC to keep the original rate.

How long does it take, and what happens to my tags?

The measuring pass costs about 22 milliseconds per second of audio, so a five-minute file spends roughly seven seconds being measured before anything is written; the second pass is the usual encode on top of that. Tags and cover art are not carried over — the audio stream is taken out and written on its own.

Is my file uploaded to a server?

No. Transmute processes everything locally in your browser using JavaScript and WebAssembly. Your files never leave your device — there is no server, no upload, no cloud processing.

Related