LUFS, explained — why every streaming platform measures your loudness the same way
The ITU-R BS.1770-5 standard is the reason Spotify, Apple, YouTube, and Tidal all use the same loudness target. Here's what it actually measures, why K-weighting matters, and how it's different from dBFS and RMS.
This post is part of the archive. The workflow-first guide lives in Learn and is the better place to start if you want the product path instead of the background read.
If you've spent any time near a final-polish plugin in the last decade, you've seen "LUFS" everywhere — on every streaming spec, every loudness meter, every conversation about "how loud should my file be." But LUFS isn't just a re-skinned dB meter. It's a specific, perceptual measurement defined by an international standard, and understanding what it actually measures is the difference between measuring by numbers and measuring by guesswork.
This post unpacks LUFS from first principles: what it measures, how it differs from dBFS and RMS, why it's not just "more accurate volume," and why every major streaming platform decided on the same target.
The point isn't only to understand the math. It's to know what a good loudness workflow looks like in a tool: measure the track, compare it to the target, fix the handful of real problems, and render without guessing.
The problem LUFS solves
Until ~2010, there was no agreed-upon way to measure how loud a track sounded — only how loud it was on paper. dBFS (decibels relative to full scale) measures sample-level peaks. RMS measures the root-mean-square average power over a window. Neither tracks how the human ear actually experiences loudness.
That mismatch is why the loudness war happened. Engineers competed to make tracks "louder" by squashing dynamic range and pushing sample peaks toward 0 dBFS. The result: every track on a CD compilation hit the same peak level, but the most aggressively processed ones sounded louder because they had more energy packed into the same peak.
The fix: a loudness measurement that aligns with perception. The International Telecommunication Union (ITU) and the European Broadcasting Union (EBU) collaborated on ITU-R BS.1770, which is now published as BS.1770-5. It defines:
- A frequency-weighting curve that mimics the ear's sensitivity (K-weighting)
- A gating algorithm that excludes silence and quiet passages from the average
- A target reference point: −23 LUFS for broadcast (EBU R128)
LUFS = "Loudness Units relative to Full Scale." It's measured in dB, scaled so 0 LUFS is the theoretical maximum (a square wave at 0 dBFS). Music typically lands between −24 (very quiet) and −6 (extremely loud).
What K-weighting actually does
The human ear isn't a flat receiver. It's most sensitive to mid frequencies (≈1–4 kHz, where vocal formants live) and progressively less sensitive to very low and very high frequencies. A 40 Hz tone at −20 dBFS sounds much quieter than a 2 kHz tone at the same −20 dBFS.
K-weighting is a two-stage filter that approximates this curve:
- A shelving filter that boosts above ~1.5 kHz by about 4 dB — accounting for the ear's increased high-mid sensitivity
- A high-pass filter at ~38 Hz with a gentle slope — removing sub-bass energy that doesn't contribute proportionally to perceived loudness
After K-weighting, a track's measured "loudness" much more closely tracks how a listener perceives it. Two tracks that measure the same in K-weighted LUFS will sound roughly equally loud to a human ear — regardless of whether one is bass-heavy and the other is bright.
This is the magic that makes LUFS the measurement for streaming: it's the closest we can get to "match perceptual loudness across genres" with a deterministic, reproducible algorithm.
Integrated vs. short-term vs. momentary
LUFS isn't one number — it's three windows of the same measurement:
- Momentary LUFS — a 400 ms sliding window. Useful for catching transient spikes (a snare hit, a vocal pop).
- Short-term LUFS — a 3-second sliding window. Used by streaming platforms to track program dynamics over time. The "short-term max" is the peak loudness in any 3-second window of the program.
- Integrated LUFS — the entire program, with silence and quiet passages gated out. This is the number Spotify, Apple, etc. normalize to.
When a streaming spec says "−14 LUFS," it means integrated. Short-term max can — and usually does — exceed −14 LUFS during the loudest passages (a chorus, a drop). That's expected; you want some range.
The gating algorithm
Integrated LUFS isn't a flat average of every sample in the track. If it were, a track with 30 seconds of silence at the start would measure quieter than the same track without the silence — even though the music part sounds identical.
BS.1770-5's gating solves this in two passes:
- Absolute gate at −70 LUFS — drop anything below this threshold (silence, room tone). Compute a preliminary integrated loudness from what's left.
- Relative gate at −10 LU below the preliminary value — drop anything more than 10 LU below the preliminary mean. Recompute the integrated loudness from the survivors.
The result: silence, quiet intros, and noise-floor sections don't drag the measurement down. The integrated LUFS reflects the loud part of your track, which is the part the listener will compare against the next track on the playlist.
Loudness range (LRA)
LUFS gives you "how loud is the track on average?" LRA — Loudness Range — gives you "how much does the loudness vary?"
LRA is the dB difference between the 10th and 95th percentile of the short-term LUFS distribution, after gating. A track with LRA = 4 LU is consistently loud, no dynamics, the loudness war master. A track with LRA = 14 LU has big quiet-loud-quiet swings, full dynamics, classical-music territory.
Streaming-appropriate masters land between 6 and 12 LU. Below 6, the master sounds exhausted and squashed; above 12, it sounds quiet because the loud parts have to fight against quiet parts that drag the perceived average down.
True peak vs. sample peak (and why you need both)
LUFS measures perceived loudness — it doesn't tell you anything about peaks. For peaks, BS.1770-5 also defines dBTP (true peak), which is the inter-sample peak measured at 4× oversampling.
A sample-domain peak of 0 dBFS can have inter-sample peaks well above 0 dBTP (often +1 to +3 dBTP, depending on the signal). Any downstream lossy encoder (Spotify Ogg, Apple AAC) reconstructs the signal at higher rates and can clip on those inter-sample peaks. Hence every streaming spec also includes a TP ceiling — typically −1.0 dBTP — to give the encoder breathing room.
How MixLens uses BS.1770-5
Every analysis MixLens runs measures:
- Integrated LUFS via the
pyloudnormimplementation of BS.1770-5 - Short-term LUFS max for the loudness-over-time chart
- LRA using the gated 10th-to-95th-percentile method
- True peak (dBTP) at 4× oversampling
Every score that mentions "loudness" traces back to these numbers, with the BS.1770-5 reference linked in the methodology page. No black-box AI; just the math the streaming platforms themselves use.
In the product, that becomes a workflow:
- Upload a bounce and see loudness, true peak, and dynamics immediately.
- Pick a target like Streaming, Club, Broadcast, or Competitive loudness.
- Use the corrective panel to apply only the steps you need.
- Preview the result before spending the full render.
- Export the finished master with the same measurements still visible.
TL;DR
- LUFS measures perceived loudness using K-weighting + gating, not raw signal level
- Integrated LUFS is the number streaming platforms normalize to
- LRA tells you how dynamic the master is; 6–12 LU is the streaming sweet spot
- True peak (dBTP) catches the peaks between samples that lossy encoders clip on
- All four are defined by the same standard (ITU-R BS.1770-5) so a master measured anywhere measures the same everywhere
The next time you see "−14 LUFS, −1.0 dBTP" on a platform spec, you know exactly what it's asking for and why.
See your mix the way it'll translate.
MixLens runs the same standards-based analysis described in this post on your bounce — free, deterministic, every score backed by a citation.