prerequisite

Decibels and loudness

Why audio levels are measured on a log scale, what dBFS and LUFS mean, and how loudness differs from peak level.

Before this

This page assumes you are comfortable with:

Why you need this

Every audio tool reports levels in decibels, and every later page in this cluster uses them: trimming a sound effect, matching the loudness of two music loops, leaving room so overlapping sounds do not distort. This page gives you the three level words the cluster uses (dB, dBFS, LUFS) and the one surprise underneath them: the loudest point of a clip says little about how loud it sounds.

The idea

Amplitude is how far a waveform swings away from zero, the height of the wave on a graph of pressure (or sample value) over time. Our ears do not judge amplitude by differences. Going from amplitude 0.1 to 0.2 sounds like about the same step as going from 0.4 to 0.8, because both steps double the amplitude. Ears judge by ratios.

A logarithm turns ratios into differences. The base-10 logarithm, written log⁡10\log_{10}, answers "10 to what power gives this number?": log⁡10100=2\log_{10} 100 = 2 because 102=10010^2 = 100, and log⁡101000=3\log_{10} 1000 = 3. Multiplying two numbers adds their logarithms, so a chain of doublings becomes a chain of equal steps. That is exactly how hearing behaves, so audio levels are measured on a log scale.

The decibel (dB) is that log scale for audio. For two amplitudes aa and arefa_{\text{ref}}, the level difference is

L=20log⁡10aaref dB.L = 20 \log_{10} \frac{a}{a_{\text{ref}}} \ \text{dB}.

The 20 comes from two conventions: decibels are ten times a log of a power ratio, and power goes as amplitude squared, which doubles the 10.

Filled in with small numbers:

Amplitude ratio a/arefa / a_{\text{ref}} Level change
2 (double) 20log⁡102=20×0.301=+6.0220 \log_{10} 2 = 20 \times 0.301 = +6.02 dB
1 (same) 0 dB
0.5 (half) −6.02-6.02 dB
10 +20+20 dB

So +6 dB is roughly double the amplitude and −6-6 dB is roughly half. Engineers round to 6. A decibel is always a comparison. On its own it is a change in level; it becomes an absolute level only once you name the reference.

dBFS: the file's ceiling as the reference

A digital audio file stores each sample as a number with a fixed largest value. Call that largest value 1.0. dBFS (decibels relative to full scale) uses it as the reference, so 0 dBFS is the loudest a file can hold and every real level is negative. A sample at 0.5 sits at −6.02-6.02 dBFS; a sample at 0.891 sits at −1-1 dBFS.

If processing pushes a sample past 1.0, the file cannot store it. The value is cut flat at the ceiling, which is called clipping. On a waveform display the tops of the wave look sliced off; to the ear it is a crackle or a harsh buzz. Clipping cannot be undone by turning the clip down afterward, because the shape of the wave above the ceiling is already gone.

Peak is not loudness

The peak level of a clip is the single largest sample, in dBFS. It tells you how close you are to clipping. It does not tell you how loud the clip sounds, because the ear responds to sound energy sustained over time, not to one instant.

LUFS (loudness units relative to full scale) is the standard measure of perceived loudness, defined in the ITU-R BS.1770 recommendation and used by the EBU R 128 broadcast rule. A loudness meter computes it in three moves: it filters the sound to weight frequencies roughly the way ears do (very low bass counts for less), averages the energy over short blocks of 400 ms, and drops blocks that are near-silent so pauses do not drag the number down. Integrated LUFS is that measurement across a whole clip. One LU (loudness unit) is the same size as one dB, so "3 LU louder" means a 3 dB change.

The standard calibrates the scale with one reference sound: a full-scale 1 kHz sine wave in a single channel reads −3.01-3.01 LUFS. That lets you predict the reading of any steady 1 kHz tone from its peak.

True peak is the peak of the smooth wave a player rebuilds between the samples, which can land slightly above the highest stored sample; meters report it in dBTP.

Worked example

Halving twice. Start with a tone whose peak amplitude is 1.0, at 0 dBFS.

Step Amplitude Change from previous Level
Start 1.0 0 dBFS
Halve 0.5 20log⁡100.5=−6.0220 \log_{10} 0.5 = -6.02 dB −6.02-6.02 dBFS
Halve again 0.25 −6.02-6.02 dB −12.04-12.04 dBFS

Each halving subtracts the same 6.02 dB, even though the first halving removed 0.5 of amplitude and the second removed only 0.25. That is the log scale doing its job: equal ratios, equal steps.

Same peak, different loudness. Two mono clips, each 2 s long, both made of a 1 kHz tone.

  • Clip A is a steady tone at amplitude 0.5 for the full 2 s.
  • Clip B is a quiet tone at amplitude 0.125, with one 20 ms burst that jumps to 0.5.

Both peaks are 0.5, so both read −6.02-6.02 dBFS peak. A peak-only check calls them equally loud.

Loudness tells another story. Clip A is a steady 1 kHz tone, so its reading follows the calibration: −6.02−3.01=−9.03-6.02 - 3.01 = -9.03 LUFS. Clip B spends 1.98 s at amplitude 0.125, which is −18.06-18.06 dBFS, so its body reads −18.06−3.01=−21.07-18.06 - 3.01 = -21.07 LUFS. The 20 ms burst adds a little energy: averaged over the whole 2 s it lifts the result by about 0.6 dB, to roughly −20.5-20.5 LUFS.

Peak Integrated loudness
Clip A −6.02-6.02 dBFS −9.03-9.03 LUFS
Clip B −6.02-6.02 dBFS about −20.5-20.5 LUFS

Same peak, about 11.5 LU apart in loudness. Played one after the other, Clip B sounds far quieter. If you "normalized" both to the same peak, nothing would change, because their peaks already match. Matching loudness needs a gain of about +11.5 dB on Clip B, and that gain would push its 0.5 burst far past the 0 dBFS ceiling. That trade between loudness and peak is the whole problem of Loudness for games.

A two-line check you can paste in a browser console:

const dB = (ratio) => 20 * Math.log10(ratio);
console.log(dB(0.5), dB(0.25), dB(2)); // -6.02..., -12.04..., 6.02...

In a game's audio pipeline

Decibels appear in stage 4, shape it for the game. Editing and layering sound effects sets each layer's level in dB and checks the combined peak in dBFS. Loudness for games measures every clip in LUFS and applies a gain in dB to bring it to a target. Earlier, in stage 3, Curating takes relies on the idea here: compare takes at matched loudness, or the louder take will seem better just for being louder.

Common mistakes

  • Treating dB as a fixed amount. "Turn it up 6 dB" doubles the amplitude whatever the starting level. A sound at −30-30 dBFS and one at −6-6 dBFS both double.
  • Normalizing to peak and expecting matched loudness. A sharp transient sets the peak, and the rest of the clip stays quiet. You hear a soundtrack that jumps in volume from clip to clip.
  • Pushing a clip to 0 dBFS. Any later gain, layering, or format conversion clips it. You hear crackle on the loudest hits.
  • Mixing up LUFS and dBFS. −14-14 LUFS and −14-14 dBFS describe different things: an average loudness and a single sample.
  • Reading loudness off a waveform's height. A dense, flat-looking waveform can be much louder than a spiky one with taller peaks.

Cost

The arithmetic is free: one logarithm per comparison. Measuring integrated LUFS means a meter must hear the whole clip, either played through in real time or scanned as a file, so a 3-minute track costs up to 3 minutes of metering. Changing a level by a set number of dB is one multiplication per sample and never changes file size. The real cost is skipped measurement: a clip that was never metered gets fixed later, after a player notices.

Going further

  • Loudness for games: targets, headroom, and what happens when sounds overlap.
  • The ITU-R BS.1770 recommendation, which defines the loudness measurement and true peak.
  • The EBU R 128 recommendation and its companion technical documents on loudness metering.
  • Try it: load any two clips into an editor with a loudness meter, match their peaks, and listen to how different they still sound.

Leads to

Back to Local text-to-audio for games