EBU R128 in 5 Minutes: Broadcast to Streaming
EBU R128 is why your TV doesn't blast at commercials. It's a -23 LUFS integrated spec built on ITU-R BS.1770 with proper gating and true-peak. Once you understand it, Spotify, YouTube and TikTok at -14 LUFS make perfect sense.
What EBU R128 actually is
EBU R128 was published in 2010 by the European Broadcasting Union to fix loudness jumps between programs. Before R128, broadcast used QPPM peak meters and allowed huge loudness differences. R128 defines loudness measurement, not just peak.
It references three ITU standards:
- ITU-R BS.1770-4 – the core loudness algorithm: K-weighting + mean-square + loudness gating. This is what you implement.
- ITU-R BS.1771 – requirements for loudness meters.
- EBU Tech 3341/3342/3343/3344 – how to apply R128: metering, distribution, short-form, live.
LU = Loudness Unit. 1 LU = 1 dB. -23 LUFS = -23 dB relative to full scale, K-weighted and gated. LUFS and the official ITU term LKFS are identical numerically.
Why you should care as a producer
If you master to -14 LUFS for Spotify, you are already using EBU R128 measurement. Spotify uses the exact same K-weighting and absolute gating as broadcast. The only difference is the target number.
The numbers: EBU R128 S1 delivery
| Parameter | Target | Notes |
|---|---|---|
| Integrated Loudness | -23.0 LUFS ±0.5 LU | Full program, gated with -70 / -10 |
| Maximum True-Peak | -1.0 dBTP | 4x oversampled, per ITU |
| Maximum Short-term | -18.0 LUFS (EBU Tech 3343 guideline) | 3s window, prevents loud moments |
| Loudness Range (LRA) | Report – no strict max | Typical broadcast: 5–20 LU, see LRA guide |
| Maximum Momentary | Report – live limit -15 LUFS recommended | 400ms window |
Streaming adaptations:
- Spotify / YouTube Music:
-14 LUFSintegrated, -1 dBTP - YouTube (video):
-14 LUFSintegrated, -1 dBTP - TikTok / Reels / Shorts:
-14 to -16 LUFS, often normalized louder on phones – see short-form guide - Apple Music Sound Check: -16 LUFS
- Podcast / AES: -16 to -19 LUFS
How LUFS measurement works under R128
Learned from What is LUFS? This is the exact implementation.
1. K-weighting. ITU 1770 applies two filters per channel before measuring power: a high-shelf pre-filter (≈ +4 dB above 1.5 kHz, accounting for head acoustic) and a 38 Hz high-pass (RLB curve). ITU provides exact biquad coefficients – not an approximate EQ. That's why cheap meters can be off 0.5 dB. JSM Loudness uses the exact coefficients.
2. Mean Square Block: 400 ms blocks with 75% overlap. R128 chops audio into 400 ms gating blocks, overlapping at 100 ms steps. Each block's loudness is calculated as:
L = -0.691 + 10*log10( sum(G_i * mean_square_i) ) where G is channel weighting (1.0 front, 1.41 surround).
3. Two-stage gating. This is what replaced RMS completely.
- Absolute gate: -70 LUFS. Any 400 ms block quieter than -70 LUFS is discarded. Removes silence and very low noise from Integrated calculation.
- Relative gate: -10 LU below current integrated. After first pass, compute integrated of absolute-gated blocks. Then compute second threshold: Integrated - 10 LU. Discard blocks below that. This removes background music, quiet dialogue tails, etc., so integrated tracks foreground loudness.
The result is Integrated LUFS: the gated program loudness. That's the -23 number in broadcast, -14 for streaming.
The three loudness time scales
All three use the same K-weighting, only window length differs.
Momentary (M) – 400 ms
No gating, rectangular 400 ms window. For live meter ballistics. Helps see transients. EBU recommends live operators keep Momentary under -15 LUFS peak during entertainment to avoid jump.
Short-term (S) – 3 seconds
No gating per EBU Tech 3341, 3 s sliding window with 75% overlap. This is what you watch for consistency. If S hits -12 LUFS while Integrated is -23, that section will feel loud. For music mastering, S variation is your PLR / PSR.
Integrated (I) – full program length to ~30 min typically, with -70/-10 gating. This is the delivery spec. For tracks under 30 sec (ads, TikTok), many platforms still use Integrated but S and true-peak matter more.
True-peak: why -1 dBTP is mandatory
Sample peak (dBFS) reads the highest digital sample. True-peak (dBTP) reads the actual analog waveform after D/A reconstruction. Between two samples at -0.2 dBFS, the reconstructed wave can overshoot to +0.6 dBTP. That's inter-sample clipping – you hear it as tiny clips on cheap DACs and AAC encoders.
EBU R128 requires ITU-R BS.1770 4x oversampling true-peak:
- Upsample 4x with precise low-pass interpolation filter per ITU.
- Measure absolute peak of interpolated signal. Report in dBTP.
- Max -1.0 dBTP for broadcast. For streaming, same -1.0 dBTP is safest even if platform says -0.1 dBTP, because MP3/AAC can add 0.5-1.2 dB of peak after encoding.
See deep dive on dBTP for codec headroom numbers.
Broadcast -23 vs streaming -14: same meter, different target
-23 LUFS was chosen for broadcast to leave 9 LU of headroom above dialogue for explosions, while keeping dialogue intelligible at home without riding volume. It aligns roughly with film mix reference (79 dBC). Loud commercials are automatically pulled down to match program.
Streaming chose -14 LUFS because:
- Music is already loud – pop masters averaged -9 to -7 LUFS in the loudness war. Normalizing to -23 would make all music sound quiet on phones.
- -14 is compromise between dynamic range and phone/laptop listening. YouTube initially tried -13, moved to -14 to match Spotify.
- Platform normalization is always lowering loud masters, not raising quiet ones with gain only – Spotify adds true-peak limiting at -1 dBTP when turning up quiet tracks, which can sound worse than delivering at target.
This is why -14 became the new 0 dB. Master to -14 Integrated, -1.0 dBTP max, LRA 6-9 LU for pop, and short-term controlled to ±2 LU around Integrated for consistency.
Practical workflow for R128-compliant masters
- Mix at -23 to -18 LUFS short-term rough. Keep vocal forward; K-weighting already boosts intelligibility range.
- Measure integrated. If delivering broadcast: aim -23.0 integrated. If Spotify/YouTube/TikTok: aim -14.0 ±0.5.
- Check true-peak after limiting. If your limiter shows -0.3 dBTP, codec may still go over. Use 4x oversampled TP. Aim -1.0 dBTP. True-peak limiters that only look at sample peak will clip.
- Check LRA and PLR. LRA for track: LRA > 12 LU = very dynamic (jazz, classical), < 5 LU = crushed. PLR = True-Peak minus Short-term max. PSR = Short-term max minus Short-term min. For short-form, PSR 6-9 is sweet spot – not fatiguing on mobile.
- Fix, not just turn down. If integrated is -9 LUFS, don't just gain-down 5 dB to hit -14. Check where short-term is spiking. Use clip gain, not just master fader.
How JSM Loudness implements EBU R128 accurately
Exact ITU-R BS.1770-4 biquad coefficients per Table 1, not approximated. 400 ms blocks, 75% overlap, -70 absolute / -10 relative gating per EBU Tech 3341. 4x ITU oversampled true-peak per BS.1770 Annex 2. Verified against EBU reference files: -14.05 LUFS reference, 3.01 LU offset test at -23.0 LUFS broadcast file. All in-browser via WebAssembly – file is chunked with Web Audio API.
Privacy & Quebec Law 25: Audio never leaves your device. No upload, no server processing, no storage. Processing stays in your browser memory, then discarded on refresh. No account, no cookies for audio. That also satisfies Quebec Law 25 data residency minimization – no personal audio data is transmitted. Analytics (GA4) only runs after explicit Accept in consent banner, and never contains audio.
FAQ
What is the EBU R128 target loudness?
-23.0 LUFS integrated ±0.5 LU tolerance, max true-peak -1.0 dBTP. Defined in EBU R128 S1, measured per ITU-R BS.1770-4 with K-weighting and -70/-10 gating. LRA and Short-term are reported but not hard-limited except for short-form ad guidelines.
What's the difference between broadcast -23 LUFS and streaming -14 LUFS?
Same meter, different trade-off. -23 leaves headroom for film-style dynamic range and loudness consistency across channels. -14 is louder for music/podcast consumption on mobile, matching where masters already live. Spotify normalizes louder masters down to -14; quiet masters are turned up with a limiter at -1 dBTP. Mastering at -14 Integrated / -1 dBTP gives you control instead of platform's limiter.
Why require -1 dBTP true-peak instead of 0 dBFS sample peak?
Because true reconstruction peaks exceed sample values. A 44.1k brick at 0 dBFS can hit +3 dBTP after reconstruction. Codecs (MP3, AAC) re-filter and add another 0.5-1 dB. -1 dBTP gives safety for DACs and transcoders. See True Peak vs Sample Peak and the full dBTP deep dive.