Volume Normalizer, Explained

After reading this you will know the difference between peak and RMS normalization, how each level is computed from raw samples, and how to pick a target that makes your files match without clipping.

What normalization actually does

Audio in a file is a list of numbers, one per sample. In 16-bit audio each number runs from -32768 to 32767. It is easier to think in the normalized range from -1.0 to +1.0, where 1.0 is the loudest value the format can store. Normalization multiplies every sample by a single constant, the gain, so the whole signal gets louder or quieter by the same factor.

Suppose a recording never rises above 0.5 in absolute value. It uses only half the available range and sounds quiet. Multiply every sample by 2.0 and the peak reaches 1.0. Nothing about the shape of the waveform changes, so no distortion is added. The whole clip is now 6 dB louder. That single multiply is the entire operation. The interesting question is how you choose the gain.

Peak versus RMS: two ways to measure loud

There are two useful ways to summarize how loud a file is, and they answer different questions.

Peak
The largest absolute sample value in the file. It tells you how close you are to clipping, and nothing else.
RMS
Root mean square, the square root of the average of the squared samples. It tracks the sustained energy of the signal, which lines up much better with how loud something sounds to a listener.

The gap between them matters. A sparse drum track with sharp transients can peak at 1.0 while its RMS sits far below. A compressed pop master can peak at the same 1.0 but hold an RMS three times higher, so it sounds much louder even though both files hit the same peak. That is why matching peaks alone rarely makes two clips sound equal.

Peak normalization only guarantees the loudest sample. Two files with the same peak can still sound very different. RMS matching tracks perceived loudness more closely.

The math behind each mode

Peak normalization finds the loudest sample and scales it to your target. If p is the current peak and t is the target peak, the gain is:

g_{\text{peak}} = \frac{t}{p}

Here p and t are both linear amplitudes in the range 0 to 1. If the file peaks at 0.5 and you target 1.0, the gain is 1.0 / 0.5 = 2.0.

RMS normalization computes the current RMS and scales it to a target RMS. For N samples x_i:

\text{RMS} = \sqrt{\frac{1}{N} \sum_{i=1}^{N} x_i^2}

Every symbol: N is the number of samples, x_i is the value of sample i, and the sum runs over the whole file. The RMS gain is then the target RMS divided by the measured RMS, the same ratio idea as before.

Levels are usually quoted in decibels rather than raw ratios. To convert a linear amplitude a to dBFS (decibels relative to full scale):

L_{\text{dBFS}} = 20 \log_{10}(a)

Full scale 1.0 is 0 dBFS. An amplitude of 0.5 is 20 \log_{10}(0.5) \approx -6.02 dBFS. Every halving of amplitude costs about 6 dB, and every doubling adds about 6 dB.

A worked example with the demo values

Bringing a quiet clip up to a target peak

Take a short clip whose loudest sample is 0.5 (that is -6.02 dBFS) and whose RMS is 0.1 (that is -20 dBFS). You want a peak target of -1 dBFS, a common safe ceiling.

  1. Convert the target from dB to linear: a = 10^{-1/20} \approx 0.8913.
  2. Compute the peak gain: g = 0.8913 / 0.5 = 1.7826.
  3. Apply it. The new peak is 0.8913 and the new RMS is 0.1 \times 1.7826 = 0.1783, which is 20 \log_{10}(0.1783) \approx -14.98 dBFS.

The peak now sits 1 dB below full scale, exactly as asked. Notice the RMS rose by the same 5 dB the peak did, from -20 to -14.98 dBFS. Peak normalization moves the whole file by one factor, so the peak-to-RMS distance (the crest factor) never changes. Here it stays at -1 - (-14.98) \approx 14 dB before and after.

A clip with peak 0.5 and RMS 0.1 needs a gain of 1.783 to reach a -1 dBFS peak. Lower target peaks reduce the gain proportionally: a -6 dBFS target uses gain 1.002, and a 0 dBFS target uses gain 2.0.

Why a limiter is sometimes needed

RMS matching can demand a gain that pushes peaks past 1.0. Imagine a file with RMS 0.05 and peak 0.6. To reach an RMS target of 0.15 you need a gain of 0.15 / 0.05 = 3.0. That would drive the peak to 0.6 \times 3.0 = 1.8, well over full scale. Any sample above 1.0 gets clipped to 1.0, which flattens the waveform tops and adds harsh distortion.

A soft limiter prevents this. Instead of a hard clip, it reduces gain smoothly as samples approach the ceiling, so the loudest peaks are shaved rather than chopped square. You reach the loudness target while keeping the peak at or below your limit. The cost is that the very loudest transients are no longer perfectly proportional to the rest, but the audible damage is far smaller than clipping.

If an RMS target forces a large gain, check the resulting peak before trusting the file. Without a limiter, a gain of 3.0 on a signal peaking at 0.6 clips every sample above 0.333 in the original, which can be most of the loud content.

Reading the numbers you get back

The tool reports peak and RMS before and after, in dBFS. Read them as a pair.

Two files at the same peak but different loudness
FilePeak (dBFS)RMS (dBFS)Crest factor (dB)
Acoustic take-1.0-18.017.0
Pop master-1.0-9.08.0

Both peak at -1 dBFS, so peak normalization already treats them as equal. Yet the pop master has an RMS 9 dB higher, so it sounds roughly twice as loud. If you want them to match by ear, target RMS, not peak. The crest factor column shows why: the acoustic take keeps 17 dB of headroom above its average level, the pop master keeps only 8 dB.

Peaks match exactly while RMS differs by 9 dB, which is most of the perceived loudness gap.

Common mistakes

The first mistake is normalizing to 0 dBFS. A target of exactly full scale leaves no room for the tiny overshoots that later processing, resampling or lossy encoding can introduce. Aim for -1 or -0.3 dBFS instead so a re-encode does not clip.

The second is expecting peak normalization to equalize loudness across tracks. It cannot. As the table shows, matched peaks with different crest factors still sound different by many dB.

The third is stacking normalization on already-loud material. If a file peaks at -0.1 dBFS, normalizing to -1 dBFS makes it quieter, not louder. Check the reported gain: a value below 1.0 means the file was already above your target and got turned down.

The fourth is treating RMS as identical to broadcast loudness units like LUFS. RMS ignores the frequency weighting that hearing applies, so a bass-heavy clip can measure the same RMS as a bright clip yet sound quieter. RMS is a good, cheap approximation, not the last word.

Related tools

Normalize the level after you have the right section. Use the Audio Trimmer to cut a clip and add fades first, then normalize the result so the whole thing sits at a consistent level. For video, the Video Trimmer & Compressor handles trimming, muting and compression in the browser.

Frequently asked questions

Does normalization reduce audio quality?

Peak and RMS normalization multiply every sample by one constant, which adds no distortion at all as long as nothing clips. Quality only suffers if the gain pushes peaks above 1.0 without a limiter, or if repeated quantization in low bit depth adds noise.

What target level should I choose?

For a safe peak ceiling use -1 dBFS. For loudness matching across a set of files, pick an RMS target that no file has to be pushed toward with a gain much above 2.0, and enable soft limiting to catch the peaks.

Why did my file get quieter after normalizing?

Its level was already above the target. Normalization sets the level to the target exactly, up or down. A reported gain below 1.0 means the tool turned the file down to meet your ceiling.

Is RMS the same as LUFS?

No. LUFS applies a frequency weighting that models human hearing and gates out silent passages. RMS is unweighted average energy. RMS is close enough for matching similar material, but LUFS is the standard for broadcast and streaming targets.

Are my files uploaded anywhere?

No. Everything runs locally in your browser, and your files are never uploaded to any server.