Loudness

True Peak vs Sample Peak: Why Inter-Sample Peaks Matter

The highest sample is not the highest point of the waveform. How inter-sample peaks arise, why encoders make them worse, and why delivery specs set true-peak ceilings.

By the LufsReady teamPublished October 23, 20265 min read

Your editor's meter says the loudest sample is -0.5 dBFS, so the file cannot clip. Then the MP3 version distorts on a phone. The explanation is the difference between sample peak and true peak, and it is the reason most loudness specifications set their ceiling as a true-peak value.

Samples are not the waveform

A digital file stores the level of the signal at regular instants, 44,100 or 48,000 times per second. On playback, a converter rebuilds a smooth, continuous waveform that passes through every sample. Between two samples, that waveform can rise higher than either of them. Those hidden maxima are called inter-sample peaks.

A simple example shows how large the effect can be. Take a sine wave at exactly a quarter of the sample rate, timed so that every sample lands 45 degrees either side of a crest. Each sample then sits at about 71 percent of the wave's real height, so a sample-peak meter reads 3 dB below the true peak. A file like that can show -3 dBFS on a sample-peak meter while its true peak is 0 dBTP, right at the point of clipping.

Speech rarely produces a case that extreme, but heavy limiting makes inter-sample overs more likely, because it pushes many samples up against the same ceiling.

How true peak is measured

ITU-R BS.1770-5, Annex 2, defines true-peak measurement in a few steps: oversample the signal four times (for example from 48 kHz to 192 kHz), low-pass filter it, take the absolute value, and convert to dB TP. The oversampled signal fills in points between the original samples, so its maximum is a much better estimate of the reconstructed peak.

The standard notes that higher sample rates and oversampling ratios are preferred, and that a 96 kHz signal needs only 2x oversampling. Even a correct 4x meter is an estimate: the standard's own analysis shows it can under-read by up to about 0.7 dB for content near the top of the audio band. That is one reason to keep a margin of half a decibel or more under any true-peak ceiling.

True peak is never lower than sample peak. The samples are points on the reconstructed waveform, so its highest point is at least as high as the highest sample. A file that passes a true-peak limit also passes the same limit measured as sample peak.

Why lossy encoding raises peaks

MP3, AAC and Opus do not store your samples. They store a compact description of the sound that leaves out detail the ear is unlikely to miss, and the decoder builds a new waveform from it. That waveform sounds close to the original but is not identical in shape, and its peaks can be higher. Apple's podcast requirements put it directly: compression algorithms "typically don't modify the loudness and might clip the signal if the recommended true-peak value is not respected."

The headroom you leave therefore covers two things at once: inter-sample peaks a sample meter cannot see, and the extra peak level the encoder may add. The only reliable check is to decode the encoded file and measure its true peak.

Why specs ask for -1 or -2 dBTP

True-peak ceilings vary with how much processing and encoding happens after your file leaves you:

  • -1 dBTP is the usual ceiling for files that go to an encoder once. Apple Podcasts asks for a true peak no higher than -1 dBFS, measured per BS.1770-5. EBU R 128 sets -1 dBTP as the maximum during production. AES TD1008 recommends -1 dBTP at the input of a lossy encoder and notes that high-rate coders, around 256 kbps, may work with as little as -0.5 dBTP.
  • -2 dBTP appears where more processing follows or loud material meets an encoder. ATSC A/85 for US television asks for true peaks below -2 dBTP. EBU Tech 3344 recommends an end-stage limiter at -2 dBTP before audio reaches the distribution encoder. Spotify's music guidance asks for a true peak below -2 dBTP if the master is louder than -14 LUFS.
  • -3 dB for ACX. ACX's peak limit is -3 dB, and ACX does not say whether that means sample peak or true peak. The ACX Check plugin measures sample peak, so mastering to a true peak at or below -3 dBTP satisfies either reading.

Lower bit rates generally need more headroom than high ones, so a low-bit-rate mono podcast is where you should be strictest about the ceiling.

Standard or platformCeilingPeak type
Apple Podcasts-1 dBFSTrue peak, per BS.1770-5
EBU R 128-1 dBTPTrue peak (±0.3 dB measurement tolerance)
AES TD1008-1 dBTP at the encoder inputTrue peak
Spotify musicBelow -1 dBTP; below -2 dBTP if louder than -14 LUFSTrue peak
ATSC A/85Below -2 dBTPTrue peak (about ±0.5 dB measurement tolerance)
ACX-3 dBNot specified; ACX Check measures sample peak

Why a sample-peak limiter is not enough

A limiter that only looks at samples guarantees that no sample crosses its threshold. It does nothing about the waveform between the samples. In our own tests, a sample-peak limiter set to -1 dB passed a test tone whose samples sat at -3 dBFS but whose true peak was 0 dBTP. The limiter never acted, because no sample came near its threshold.

A true-peak limiter works on an oversampled copy of the signal, so it sees and controls the reconstructed peaks. Even then, set its ceiling a little below the spec, because resampling filters can ring and meters can under-read slightly.

A practical workflow

  1. Set the loudness first, then limit. Adding gain after the limiter undoes its work.
  2. Use an oversampling true-peak limiter with its ceiling slightly under the spec, for example around -1.5 dBTP for a -1 dBTP target, or around -3.5 dBTP when you want a true-peak-safe file for ACX's -3 dB.
  3. Encode to the delivery format.
  4. Decode the encoded file and measure its true peak. If it is over the ceiling, lower the limiter ceiling and encode again.

The free clipping detector lists every place a file crosses a true-peak ceiling, including overs between samples, and the LUFS meter shows true peak next to integrated loudness. For how peak relates to RMS and LUFS, see LUFS vs RMS vs peak; for format choices that affect encoding, see podcast and audiobook file formats.

LufsReady ends its chain with the same loop: a 4x-oversampled true-peak limiter, encoding to the chosen format, then a fresh measurement of the encoded file, rendered again (up to three times) if the result misses the target or the ceiling. The how it works page lists each step.

Sources

Check your file in seconds

Measure loudness, true peak and noise floor for free in your browser, or master a file to the exact target with a report.