All articles
Loudness

True Peak vs Sample Peak: Why Your -0.1 dBFS Master Clips on Spotify

By 7 min read
TL;DR
  • 01Sample peak is the highest number stored in the file. True peak is the highest level the waveform actually reaches between samples after analog reconstruction. They are not the same value.
  • 02The gap is typically 0.5 to 1.0 dB and can exceed 2 dB on dense, transient-rich material. A master peaking at -0.1 dBFS routinely clips at +0.7 dBTP after MP3 or AAC encoding.
  • 03Every modern loudness spec (EBU R128, ACX, Apple, Spotify, Netflix) is written in dBTP, not dBFS. If your meter does not explicitly say "True Peak", it is showing sample peak and the number is optimistic.

You bounce a master, the limiter ceiling reads -0.1 dBFS, the file looks clean in every meter you trust. You upload to Spotify and a listener tells you the loud sections are crackling. You re-check the file. Still -0.1 dBFS. Nothing in the DAW has changed.

The clipping is real, and it happened after the file left your DAW. This is what inter-sample peaks are, why every loudness specification this decade is written in dBTP rather than dBFS, and how a master that looks fine becomes a master that distorts.

Sample Peak: What Your Meter Has Always Shown

Digital audio is a sequence of samples. At 44.1 kHz, the file stores one amplitude value every 22.7 microseconds. A standard peak meter scans those stored values and reports the largest one. Call it sample peak, peak, or dBFS. Same measurement.

The measurement is exact for the values that are stored. The problem is that the signal between samples is not stored. It is reconstructed at playback by the DAC, the codec, or the streaming player. That reconstruction can, and routinely does, produce a waveform that peaks higher than any individual stored sample.

True Peak: What the Waveform Actually Does

True peak is the highest instantaneous level the reconstructed analog waveform reaches between sample points. It is measured by running the signal through a reconstruction filter (typically 4x oversampling, sometimes 8x or 16x for accuracy) and reading the peak of the upsampled waveform.

The ITU-R BS.1770 standard defines this measurement explicitly: oversample by at least 4x, apply a true peak detector, report in dBTP. Every loudness specification that points at BS.1770 (EBU R128, ATSC A/85, ACX, Apple, Spotify, Amazon, Netflix) inherits this definition.

Why the Two Numbers Differ

Picture two samples sitting at +0.99 and +0.99. Both legal, both under 0 dBFS. The waveform passing between them does not have to stay between them. If the reconstruction filter draws a curve through and around those two points, the peak of that curve can sit at +1.05 or higher. That excursion exists in time but does not exist as a sample. The sample meter never sees it.

This is an inter-sample peak. It is not a bug. It is a direct consequence of the sampling theorem. Any time the underlying continuous signal between two samples would naturally rise above either sample value, the inter-sample peak is real and it shows up in the DAC output.

How Big Is the Gap in Practice?

MaterialTypical Sample-to-True-Peak Gap
Solo voice, lightly processed0.2 to 0.5 dB
Voice with heavy limiting0.5 to 1.0 dB
Music master at -1 dBFS ceiling0.8 to 1.5 dB
Dense pop master, hard-limited1.5 to 2.5 dB
Pathological transients (kick, snare attack)up to 3 dB

The gap grows with how aggressively the signal was limited. A flat-topped waveform, the kind a brickwall limiter produces, has more inter-sample energy than a peaky one with the same numerical maximum, because the reconstruction filter has more high-frequency content to ring on.

What Lossy Codecs Do to the Gap

MP3, AAC, Ogg Vorbis and Opus do not store sample values directly. They store frequency-domain coefficients and reconstruct the time-domain waveform at playback. That reconstruction is approximate, and the approximation routinely produces samples 0.5 to 1.0 dB higher than the original file.

Stack that on top of an existing inter-sample peak headroom shortage and the result is clipping. A -0.3 dBFS master with 0.6 dB of inter-sample headroom (true peak: +0.3 dBTP) re-encoded to 128 kbps AAC can land at +1.0 dBFS in the decoded buffer. That is the crackle the listener heard.

What the Specs Actually Require

SpecTrue Peak CeilingWhy That Number
EBU R128-1 dBTPHeadroom for broadcast chain + codec
ATSC A/85-2 dBTPATSC encoder headroom requirement
Spotify-1 dBTPOgg Vorbis reconstruction headroom
Apple Podcasts / Music-1 dBTPAAC reconstruction headroom
ACX-3 dBTPMP3 encoding + downstream processing
Netflix-2 dBTPCodec + downstream chain

Every one of these ceilings is set below 0 dBTP for the same reason: the encoder needs room to reconstruct without clipping. The numbers are not arbitrary safety margins. They are the measured headroom requirements of the codecs each platform uses.

How to Measure True Peak Correctly

FixUse a meter that explicitly says "True Peak" or "dBTP". Fabfilter Pro-L2, iZotope Insight, Waves WLM Plus, the free Youlean Loudness Meter, and the loudness panes built into modern Pro Tools, Logic and Reaper all measure true peak. If your meter only says "Peak" or shows dBFS, it is reading sample peak. The number you need is about 1 dB lower than what it shows.

Check the meter's oversampling factor if it exposes one. 4x is the BS.1770 minimum. 8x or 16x is more accurate on highly transient material. The difference between 4x and 16x measurement is small (under 0.2 dB on typical content) but can matter when the file sits right on the spec boundary.

How to Hit the Ceiling Without Re-mastering

Most modern brickwall limiters have a "True Peak" or "ISP" switch. With it on, the limiter oversamples the side-chain detector and limits the inter-sample peaks directly. Set the ceiling to the spec target (-1 dBTP, -2 dBTP, etc.) and the output is correct by construction.

With the switch off, the limiter is limiting sample peaks. That means the file can pass the limiter at -0.1 dBFS and still produce inter-sample peaks above 0 dBTP. This is the most common cause of "my master clips on Spotify even though my limiter is on it."

FixTurn on true-peak limiting in your output limiter and set the ceiling to the spec target. Pro-L2: "True Peak Limiting". Ozone Maximizer: "True Peak". Reaper ReaLimit: "ISP". Without this switch, the limiter ceiling number is not the number the spec is testing.

Why This Gets Hard at Scale

On a single master, a true peak meter and a true peak limiter solve the problem in two clicks. Across a back catalog, a multi-chapter audiobook, or a podcast network with multiple shows and varying mastering chains, the failure is silent. The sample peak meter passes, the file ships, and the clipping shows up only on the platform's lossy stream.

Running every render through a true-peak check against the target spec, before the file leaves the studio, removes the gap between what the DAW says and what the listener hears.

Stop checking manually

DubCheck runs all of these checks automatically

LUFS, True Peak, Noise Floor, and LRA checked against the exact platform spec in one click. Pass/Fail PDF report included. Runs 100% locally on your machine.

Download free 7-day Pro trial