/audit · worked example
Five shows. 3.3 hours. 127 measurements each.
We took the latest episode of five shows currently published on one podcast host and measured each one against the levels Apple Podcasts recommends in its best practices: -16 LUFS ±1, true peak at or under -1 dBTP. Apple does not reject episodes that miss them, and all five are live. Then we ran every lens the engine has. The show names are withheld. The numbers are real.
Measured 2026-09-18 · AudioLab engine 0.4.1 · 143 s of compute for 3.3 hours · no audio stored
4 of 5 sit 2.9 to 5.6 LU under Apple's recommended level, with peaks that leave no room to bring them up without a limiter. That is not a rejection: all five are live. It matters when a listener has Sound Check on, because Apple then levels episodes to -16 LUFS, and these episodes need 2.9 to 5.6 dB of gain their peaks have no room for. What a player does with that is not documented. The speech itself reads clear in 4 of 5, so the fix is a level and a limiter at export, and a host can point it out the moment a file arrives.
- peak 0.41 dBTP as delivered, above 0 dBTP: can clip on playback and when re-encoded
- reaching Apple's recommended -16 LUFS takes +5.6 dB, which puts the peak at 6.01 dBTP, above -1 dBTP: it needs a limiter before upload to get there
- mains hum 60 Hz, 9 dB above the floor in the pauses
Over the whole episode, one time axis
The gain to each platform's target level, and where the peak lands
| Platform | Gain | Peak after | Ceiling | Verdict |
|---|---|---|---|---|
| Spotify | 0.0 dB | 0.41 dBTP | -1 dBTP | peak over ceiling |
| YouTube | 0.0 dB | 0.41 dBTP | -1 dBTP | peak over ceiling |
| TIDAL | 0.0 dB | 0.41 dBTP | -1 dBTP | peak over ceiling |
| Amazon Music | 0.0 dB | 0.41 dBTP | -2 dBTP | peak over ceiling |
| Apple Music (sound-check) | 0.0 dB | 0.41 dBTP | -1 dBTP | peak over ceiling |
| Apple Podcasts | 0.0 dB | 0.41 dBTP | -1 dBTP | peak over ceiling |
| TikTok | 0.0 dB | 0.41 dBTP | -1 dBTP | peak over ceiling |
| Instagram / Reels | 0.0 dB | 0.41 dBTP | -1 dBTP | peak over ceiling |
| SoundCloud | 0.0 dB | 0.41 dBTP | -1 dBTP | peak over ceiling |
| Deezer | 0.0 dB | 0.41 dBTP | -1 dBTP | peak over ceiling |
| EBU R128 broadcast | -1.4 dB | -0.99 dBTP | -1 dBTP | peak over ceiling |
| ATSC A/85 (US broadcast) | -2.4 dB | -1.99 dBTP | -2 dBTP | peak over ceiling |
Platforms apply loudness at playback in different ways, and not every one turns a quiet file up. The table shows what reaching each target would take.
All 127 measurements for Show A
- Duration file.duration
- 1693 sec
- Sample rate file.sampleRate
- 44100 Hz
- Channels file.channels
- 2.00
- Bit depth (guess) file.bitDepth
- lossy
- Format file.format
- mp3
- File size file.sizeKb
- 26456
- Input hash file.inputHash
- 37ba3d108e93e562bdc8dbbc21ef84cef8b812859e67d4e3b66f3037fbee8a96
- Integrated loudness loudness.integrated
- -21.6 LUFS
- Short-term max loudness.shortTermMax
- -8.51 LUFS
- Loudness range loudness.range
- 4.23 LU
- True peak loudness.truePeak
- 0.41 dBTP
- Momentary max loudness.momentaryMax
- -7.09 LUFS
- Peak level.peak
- 0.40 dBFS
- RMS level level.rms
- -25.0 dBFS
- Crest factor level.crest
- 25.4 dB
- Stereo correlation stereo.correlation
- 0.97 ratio
- Stereo width stereo.width
- 0.08
- Mono compatible stereo.monoCompatible
- yes
- Left/right balance stereo.balance
- 0.01 dB
- Channel layout stereo.layout
- stereo
- Bass mono compatibility stereo.bassCorrelation
- 0.99 ratio
- Spectrum spectrum.curve
- {"freqs":[30,31.575974060495316,33.2347379289691,34.98064075841627,36.81826017357525,38.75…
- Spectral centroid spectrum.centroid
- 4030 Hz
- Spectral rolloff spectrum.rolloff
- 8861 Hz
- Spectral flatness spectrum.flatness
- 0.05
- Tonal balance spectrum.bands
- {"sub":1,"bass":0.41464798649821677,"lowMid":0.15885812975189356,"mid":0.08715147560484021…
- Harshness issue.harshness
- 0.00
- Muddiness issue.muddiness
- 0.00
- Speech ratio voice.speechRatio
- 0.60
- Speech duration voice.speechSec
- 1021 sec
- Silence duration voice.silenceSec
- 672 sec
- Speech segments voice.segments
- 1361 items
- Speech bursts per second voice.syllableRate
- 3.50 ratio
- Speaking rate voice.speakingRate
- Normal
- Long pauses voice.longSilences
- 36.0
- Voice peak voice.peak
- -0.69 dBFS
- Speech level voice.speechLevel
- -24.5 dBFS
- Noise floor voice.noiseFloor
- -77.9 dBFS
- Signal to noise voice.snr
- 53.4 dB
- Segmental SNR voice.segmentalSnr
- 49.8 dB
- SNR spread voice.segmentalSnrSpread
- 30.9 dB
- SNR per phrase voice.segmentSnr
- 1361 values
- Clipped samples voice.clipping
- 0.00
- Gap level voice.gapLevel
- -41.0 dBFS
- Background speech rhythm voice.gapModulation
- 0.24
- Background clatter voice.gapModulationHigh
- 0.09
- Background cadence voice.gapPeriodicity
- 0.50
- Energy in the pauses after speech voice.roomEcho
- 0.21
- Voice brightness voice.brightness
- 0.41
- Sibilance risk voice.sibilance
- Medium
- Cut off at the start voice.startsInSpeech
- yes
- Cut off at the end voice.endsInSpeech
- no
- Level at the start voice.edgeStartDb
- -18.2 dBFS
- Level at the end voice.edgeEndDb
- -65.7 dBFS
- What fills the pauses scene.background
- program
- Program in the background scene.programScore
- 0.88
- Voices or notes in the pauses scene.gapHarmonicShare
- 0.32
- Spectral movement in the pauses scene.gapSpectralFlux
- 0.26
- Steady tone in the pauses scene.gapTone
- no value
- Constant background noise scene.stationaryScore
- 0.00
- Rumble in the pauses scene.gapLowBandShare
- 0.72
- Speech band in the pauses scene.gapSpeechBandShare
- 0.52
- Pause level spread scene.gapStabilityDb
- 2.06 dB
- Speech over background scene.speechToBackground
- 19.5 dB
- Intelligibility (proxy) scene.intelligibility
- clear
- Intelligibility score (proxy) scene.intelligibilityScore
- 1.00
- Worst phrases SNR scene.worstPhraseSnr
- 28.7 dB
- Phrase level segment.level
- p10 -26.2 · p50 -23.4 · p90 -20.8 dBFS
- Phrase clipping segment.clipFraction
- p10 0.0 · p50 0.0 · p90 0.0
- Energy after this phrase segment.decayScore
- p10 0.0 · p50 0.2 · p90 0.6
- Decay slope segment.tailDecay
- p10 -234.9 · p50 -94.9 · p90 -23.7 dB/s
- Background character segment.flankFlatness
- p10 0.2 · p50 0.4 · p90 0.6
- Peak to loudness ratio dynamics.plr
- 22.0 LU
- Peak to short-term ratio dynamics.psr
- 8.92 LU
- Platform normalisation platform.normalisation
- 12 items
- Seam ratio loop.seamRatio
- 0.00 ratio
- Silence at start loop.edgeSilenceStartMs
- 5.76 ms
- Silence at end loop.edgeSilenceEndMs
- 2.40 ms
- Bandwidth provenance.bandwidthHz
- 15569 Hz
- Lossy source provenance.lossySource
- lossy ~128k
- Effective bit depth provenance.effectiveBitDepth
- 24.0
- Upsampled from provenance.upsampled
- no value
- Bandwidth splices provenance.spliceCount
- 13.0
- Tone prominence tone.prominenceDb
- no value
- Tone frequency tone.frequencyHz
- no value
- Tonality tone.label
- no value
- Mains hum hum.levelDb
- 9.30 dB
- Mains frequency hum.mainsHz
- 60.0 Hz
- Content type signal.contentType
- voice
- Content confidence signal.contentConfidence
- 0.85
- Evidence signal.contentEvidence
- 4 values
- Beat stability signal.beatStability
- 0.20
- Spectral flatness (opening) signal.tonality
- 0.05
- Brightness signal.brightnessBucket
- Balanced
- Dynamics signal.dynamicsBucket
- Dynamic
- Rough band label signal.dominantBand
- Mid dominant
- Mono-in-disguise score signal.monophonic
- 0.97
- DC offset signal.dcOffset
- 0.00 ratio
- Has clipping signal.clipping
- no
- Clipping regions signal.clippingRegions
- 0.00
- Silent regions signal.silenceRegions
- 440
- Total silence signal.silenceTotalSec
- 352 sec
- Timeline regions signal.regions
- 1107 items
- Tags signal.tags
- 5 values
- Third-octave spectrum series.thirdOctave
- {"centres":[20,25,31.5,40,50,63,80,100,125,160,200,250,315,400,500,630,800,1000,1250,1600,…
- Loudness over time series.shortTermLufs
- 16899 values
- Waveform series.waveform
- 480 values
- Voice envelope series.rmsEnvelope
- 84656 values
- Voice activity mask series.voicedMask
- 84656 values
- Energy envelope series.energyEnvelope
- 480 values
- Brightness envelope series.centroidEnvelope
- 480 values
- Spectrum lane grid.terrain
- no value
- Level lane grid.level
- p10 -29.8 · p50 -25.5 · p90 -23.2 dBFS
- Peak lane grid.peak
- p10 -13.0 · p50 -9.4 · p90 -6.5 dBFS
- Dynamics lane grid.crest
- p10 13.9 · p50 16.2 · p90 19.2 dB
- Brightness lane grid.centroid
- p10 1232.9 · p50 1867.5 · p90 3114.0 Hz
- Bandwidth lane grid.bandwidth
- p10 12833.8 · p50 15568.5 · p90 15740.8 Hz
- Noise floor lane grid.noiseFloor
- p10 -83.9 · p50 -80.1 · p90 -63.6 dBFS
- Stereo lane grid.correlation
- p10 1.0 · p50 1.0 · p90 1.0 ratio
- Width lane grid.width
- p10 0.0 · p50 0.0 · p90 0.0
- Flatness lane grid.flatness
- p10 0.0 · p50 0.0 · p90 0.1
- Clipping lane grid.clipFraction
- p10 0.0 · p50 0.0 · p90 0.0
- DC lane grid.dcOffset
- p10 0.0 · p50 0.0 · p90 0.0 ratio
- Headroom lane derived.headroom
- p10 37.6 · p50 53.3 · p90 58.5 dB
- Novelty lane derived.novelty
- p10 0.2 · p50 0.3 · p90 0.6
- Change lane derived.flux
- p10 0.3 · p50 0.3 · p90 0.5
- Noise character lane derived.bandFlatness
- low 0.35 · mid 0.50 · high 0.70
"No value" means the lens found nothing to report on this file (no steady tone, no upsampling), not that it failed. Every lens is defined on /lenses.
- reaching Apple's recommended -16 LUFS takes +2.9 dB, which puts the peak at 2.23 dBTP, above -1 dBTP: it needs a limiter before upload to get there
- peak -0.68 dBTP as delivered, above the -1 dBTP ceiling
Over the whole episode, one time axis
The gain to each platform's target level, and where the peak lands
| Platform | Gain | Peak after | Ceiling | Verdict |
|---|---|---|---|---|
| Spotify | 0.0 dB | -0.68 dBTP | -1 dBTP | peak over ceiling |
| YouTube | 0.0 dB | -0.68 dBTP | -1 dBTP | peak over ceiling |
| TIDAL | 0.0 dB | -0.68 dBTP | -1 dBTP | peak over ceiling |
| Amazon Music | 0.0 dB | -0.68 dBTP | -2 dBTP | peak over ceiling |
| Apple Music (sound-check) | 0.0 dB | -0.68 dBTP | -1 dBTP | peak over ceiling |
| Apple Podcasts | 0.0 dB | -0.68 dBTP | -1 dBTP | peak over ceiling |
| TikTok | 0.0 dB | -0.68 dBTP | -1 dBTP | peak over ceiling |
| Instagram / Reels | 0.0 dB | -0.68 dBTP | -1 dBTP | peak over ceiling |
| SoundCloud | 0.0 dB | -0.68 dBTP | -1 dBTP | peak over ceiling |
| Deezer | 0.0 dB | -0.68 dBTP | -1 dBTP | peak over ceiling |
| EBU R128 broadcast | -4.1 dB | -4.77 dBTP | -1 dBTP | ok |
| ATSC A/85 (US broadcast) | -5.1 dB | -5.77 dBTP | -2 dBTP | ok |
Platforms apply loudness at playback in different ways, and not every one turns a quiet file up. The table shows what reaching each target would take.
All 127 measurements for Show B
- Duration file.duration
- 2596 sec
- Sample rate file.sampleRate
- 48000 Hz
- Channels file.channels
- 2.00
- Bit depth (guess) file.bitDepth
- lossy
- Format file.format
- mp3
- File size file.sizeKb
- 60888
- Input hash file.inputHash
- 8f14a065574d8bdd3d4e0101c4dd774144b8c325487eadf6379d9d764d7246a2
- Integrated loudness loudness.integrated
- -18.9 LUFS
- Short-term max loudness.shortTermMax
- -8.94 LUFS
- Loudness range loudness.range
- 5.07 LU
- True peak loudness.truePeak
- -0.68 dBTP
- Momentary max loudness.momentaryMax
- -5.81 LUFS
- Peak level.peak
- -0.69 dBFS
- RMS level level.rms
- -21.9 dBFS
- Crest factor level.crest
- 21.2 dB
- Stereo correlation stereo.correlation
- 1.00 ratio
- Stereo width stereo.width
- 0.00
- Mono compatible stereo.monoCompatible
- yes
- Left/right balance stereo.balance
- 0.00 dB
- Channel layout stereo.layout
- dual-mono
- Bass mono compatibility stereo.bassCorrelation
- 1.00 ratio
- Spectrum spectrum.curve
- {"freqs":[30,31.575974060495316,33.2347379289691,34.98064075841627,36.81826017357525,38.75…
- Spectral centroid spectrum.centroid
- 1968 Hz
- Spectral rolloff spectrum.rolloff
- 3680 Hz
- Spectral flatness spectrum.flatness
- 0.02
- Tonal balance spectrum.bands
- {"sub":0.10857858452568822,"bass":0.9366812247979895,"lowMid":1,"mid":0.19757851071125135,…
- Harshness issue.harshness
- 0.00
- Muddiness issue.muddiness
- 0.58
- Speech ratio voice.speechRatio
- 0.68
- Speech duration voice.speechSec
- 1767 sec
- Silence duration voice.silenceSec
- 830 sec
- Speech segments voice.segments
- 1802 items
- Speech bursts per second voice.syllableRate
- 3.65 ratio
- Speaking rate voice.speakingRate
- Normal
- Long pauses voice.longSilences
- 9.00
- Voice peak voice.peak
- -0.69 dBFS
- Speech level voice.speechLevel
- -21.8 dBFS
- Noise floor voice.noiseFloor
- -60.5 dBFS
- Signal to noise voice.snr
- 38.8 dB
- Segmental SNR voice.segmentalSnr
- 47.0 dB
- SNR spread voice.segmentalSnrSpread
- 24.9 dB
- SNR per phrase voice.segmentSnr
- 1802 values
- Clipped samples voice.clipping
- 0.00
- Gap level voice.gapLevel
- -35.6 dBFS
- Background speech rhythm voice.gapModulation
- 0.57
- Background clatter voice.gapModulationHigh
- 0.10
- Background cadence voice.gapPeriodicity
- 0.25
- Energy in the pauses after speech voice.roomEcho
- 0.14
- Voice brightness voice.brightness
- 0.30
- Sibilance risk voice.sibilance
- Low
- Cut off at the start voice.startsInSpeech
- no
- Cut off at the end voice.endsInSpeech
- no
- Level at the start voice.edgeStartDb
- -99.8 dBFS
- Level at the end voice.edgeEndDb
- -55.3 dBFS
- What fills the pauses scene.background
- program
- Program in the background scene.programScore
- 0.53
- Voices or notes in the pauses scene.gapHarmonicShare
- 0.22
- Spectral movement in the pauses scene.gapSpectralFlux
- 0.44
- Steady tone in the pauses scene.gapTone
- no value
- Constant background noise scene.stationaryScore
- 0.00
- Rumble in the pauses scene.gapLowBandShare
- 0.78
- Speech band in the pauses scene.gapSpeechBandShare
- 0.31
- Pause level spread scene.gapStabilityDb
- 6.41 dB
- Speech over background scene.speechToBackground
- 13.3 dB
- Intelligibility (proxy) scene.intelligibility
- clear
- Intelligibility score (proxy) scene.intelligibilityScore
- 0.69
- Worst phrases SNR scene.worstPhraseSnr
- 29.2 dB
- Phrase level segment.level
- p10 -24.8 · p50 -21.0 · p90 -18.0 dBFS
- Phrase clipping segment.clipFraction
- p10 0.0 · p50 0.0 · p90 0.0
- Energy after this phrase segment.decayScore
- p10 0.0 · p50 0.1 · p90 0.5
- Decay slope segment.tailDecay
- p10 -129.7 · p50 -57.4 · p90 -14.9 dB/s
- Background character segment.flankFlatness
- p10 0.2 · p50 0.4 · p90 0.6
- Peak to loudness ratio dynamics.plr
- 18.2 LU
- Peak to short-term ratio dynamics.psr
- 8.26 LU
- Platform normalisation platform.normalisation
- 12 items
- Seam ratio loop.seamRatio
- 0.00 ratio
- Silence at start loop.edgeSilenceStartMs
- 47.0 ms
- Silence at end loop.edgeSilenceEndMs
- 32.0 ms
- Bandwidth provenance.bandwidthHz
- 14766 Hz
- Lossy source provenance.lossySource
- lossless
- Effective bit depth provenance.effectiveBitDepth
- 24.0
- Upsampled from provenance.upsampled
- no value
- Bandwidth splices provenance.spliceCount
- 296
- Tone prominence tone.prominenceDb
- -9.40 dB
- Tone frequency tone.frequencyHz
- 137 Hz
- Tonality tone.label
- none
- Mains hum hum.levelDb
- 2.90 dB
- Mains frequency hum.mainsHz
- no value
- Content type signal.contentType
- mixed
- Content confidence signal.contentConfidence
- 0.60
- Evidence signal.contentEvidence
- 4 values
- Beat stability signal.beatStability
- 0.18
- Spectral flatness (opening) signal.tonality
- 0.02
- Brightness signal.brightnessBucket
- Balanced
- Dynamics signal.dynamicsBucket
- Dynamic
- Rough band label signal.dominantBand
- Mid dominant
- Mono-in-disguise score signal.monophonic
- 1.00
- DC offset signal.dcOffset
- 0.00 ratio
- Has clipping signal.clipping
- no
- Clipping regions signal.clippingRegions
- 0.00
- Silent regions signal.silenceRegions
- 554
- Total silence signal.silenceTotalSec
- 283 sec
- Timeline regions signal.regions
- 1940 items
- Tags signal.tags
- 6 values
- Third-octave spectrum series.thirdOctave
- {"centres":[20,25,31.5,40,50,63,80,100,125,160,200,250,315,400,500,630,800,1000,1250,1600,…
- Loudness over time series.shortTermLufs
- 25931 values
- Waveform series.waveform
- 480 values
- Voice envelope series.rmsEnvelope
- 129816 values
- Voice activity mask series.voicedMask
- 129816 values
- Energy envelope series.energyEnvelope
- 480 values
- Brightness envelope series.centroidEnvelope
- 480 values
- Spectrum lane grid.terrain
- no value
- Level lane grid.level
- p10 -25.2 · p50 -22.3 · p90 -19.9 dBFS
- Peak lane grid.peak
- p10 -8.9 · p50 -5.5 · p90 -2.4 dBFS
- Dynamics lane grid.crest
- p10 14.5 · p50 16.7 · p90 19.3 dB
- Brightness lane grid.centroid
- p10 945.1 · p50 1392.0 · p90 2558.3 Hz
- Bandwidth lane grid.bandwidth
- p10 10640.6 · p50 14742.2 · p90 16312.5 Hz
- Noise floor lane grid.noiseFloor
- p10 -74.6 · p50 -71.3 · p90 -62.7 dBFS
- Stereo lane grid.correlation
- p10 1.0 · p50 1.0 · p90 1.0 ratio
- Width lane grid.width
- p10 0.0 · p50 0.0 · p90 0.0
- Flatness lane grid.flatness
- p10 0.0 · p50 0.0 · p90 0.0
- Clipping lane grid.clipFraction
- p10 0.0 · p50 0.0 · p90 0.0
- DC lane grid.dcOffset
- p10 0.0 · p50 0.0 · p90 0.0 ratio
- Headroom lane derived.headroom
- p10 39.7 · p50 48.8 · p90 53.1 dB
- Novelty lane derived.novelty
- p10 0.2 · p50 0.3 · p90 0.4
- Change lane derived.flux
- p10 0.3 · p50 0.3 · p90 0.4
- Noise character lane derived.bandFlatness
- low 0.52 · mid 0.45 · high 0.75
"No value" means the lens found nothing to report on this file (no steady tone, no upsampling), not that it failed. Every lens is defined on /lenses.
- reaching Apple's recommended -16 LUFS takes +5.4 dB, which puts the peak at 5.23 dBTP, above -1 dBTP: it needs a limiter before upload to get there
- peak -0.21 dBTP as delivered, above the -1 dBTP ceiling
Over the whole episode, one time axis
The gain to each platform's target level, and where the peak lands
| Platform | Gain | Peak after | Ceiling | Verdict |
|---|---|---|---|---|
| Spotify | 0.0 dB | -0.21 dBTP | -1 dBTP | peak over ceiling |
| YouTube | 0.0 dB | -0.21 dBTP | -1 dBTP | peak over ceiling |
| TIDAL | 0.0 dB | -0.21 dBTP | -1 dBTP | peak over ceiling |
| Amazon Music | 0.0 dB | -0.21 dBTP | -2 dBTP | peak over ceiling |
| Apple Music (sound-check) | 0.0 dB | -0.21 dBTP | -1 dBTP | peak over ceiling |
| Apple Podcasts | 0.0 dB | -0.21 dBTP | -1 dBTP | peak over ceiling |
| TikTok | 0.0 dB | -0.21 dBTP | -1 dBTP | peak over ceiling |
| Instagram / Reels | 0.0 dB | -0.21 dBTP | -1 dBTP | peak over ceiling |
| SoundCloud | 0.0 dB | -0.21 dBTP | -1 dBTP | peak over ceiling |
| Deezer | 0.0 dB | -0.21 dBTP | -1 dBTP | peak over ceiling |
| EBU R128 broadcast | -1.6 dB | -1.77 dBTP | -1 dBTP | ok |
| ATSC A/85 (US broadcast) | -2.6 dB | -2.77 dBTP | -2 dBTP | ok |
Platforms apply loudness at playback in different ways, and not every one turns a quiet file up. The table shows what reaching each target would take.
All 127 measurements for Show C
- Duration file.duration
- 1689 sec
- Sample rate file.sampleRate
- 44100 Hz
- Channels file.channels
- 2.00
- Bit depth (guess) file.bitDepth
- lossy
- Format file.format
- mp3
- File size file.sizeKb
- 39576
- Input hash file.inputHash
- 95c713db6610bbeb3653e2483a9ccd12e30cf70bf392dccac8c886f425156ef9
- Integrated loudness loudness.integrated
- -21.4 LUFS
- Short-term max loudness.shortTermMax
- -15.2 LUFS
- Loudness range loudness.range
- 6.94 LU
- True peak loudness.truePeak
- -0.21 dBTP
- Momentary max loudness.momentaryMax
- -13.2 LUFS
- Peak level.peak
- -0.38 dBFS
- RMS level level.rms
- -25.1 dBFS
- Crest factor level.crest
- 24.7 dB
- Stereo correlation stereo.correlation
- 0.89 ratio
- Stereo width stereo.width
- 0.16
- Mono compatible stereo.monoCompatible
- yes
- Left/right balance stereo.balance
- 0.15 dB
- Channel layout stereo.layout
- stereo
- Bass mono compatibility stereo.bassCorrelation
- 0.79 ratio
- Spectrum spectrum.curve
- {"freqs":[30,31.575974060495316,33.2347379289691,34.98064075841627,36.81826017357525,38.75…
- Spectral centroid spectrum.centroid
- 2317 Hz
- Spectral rolloff spectrum.rolloff
- 4899 Hz
- Spectral flatness spectrum.flatness
- 0.08
- Tonal balance spectrum.bands
- {"sub":0.006066806996780935,"bass":0.4734979815085013,"lowMid":1,"mid":0.1611865421321162,…
- Harshness issue.harshness
- 0.00
- Muddiness issue.muddiness
- 1.00
- Speech ratio voice.speechRatio
- 0.74
- Speech duration voice.speechSec
- 1245 sec
- Silence duration voice.silenceSec
- 443 sec
- Speech segments voice.segments
- 970 items
- Speech bursts per second voice.syllableRate
- 3.60 ratio
- Speaking rate voice.speakingRate
- Normal
- Long pauses voice.longSilences
- 15.0
- Voice peak voice.peak
- -0.46 dBFS
- Speech level voice.speechLevel
- -25.1 dBFS
- Noise floor voice.noiseFloor
- -49.6 dBFS
- Signal to noise voice.snr
- 24.5 dB
- Segmental SNR voice.segmentalSnr
- 27.6 dB
- SNR spread voice.segmentalSnrSpread
- 17.4 dB
- SNR per phrase voice.segmentSnr
- 970 values
- Clipped samples voice.clipping
- 0.00
- Gap level voice.gapLevel
- -38.3 dBFS
- Background speech rhythm voice.gapModulation
- 0.38
- Background clatter voice.gapModulationHigh
- 0.13
- Background cadence voice.gapPeriodicity
- 0.25
- Energy in the pauses after speech voice.roomEcho
- 0.25
- Voice brightness voice.brightness
- 0.47
- Sibilance risk voice.sibilance
- Medium
- Cut off at the start voice.startsInSpeech
- no
- Cut off at the end voice.endsInSpeech
- no
- Level at the start voice.edgeStartDb
- -90.0 dBFS
- Level at the end voice.edgeEndDb
- -137 dBFS
- What fills the pauses scene.background
- program
- Program in the background scene.programScore
- 0.53
- Voices or notes in the pauses scene.gapHarmonicShare
- 0.22
- Spectral movement in the pauses scene.gapSpectralFlux
- 0.31
- Steady tone in the pauses scene.gapTone
- no value
- Constant background noise scene.stationaryScore
- 0.00
- Rumble in the pauses scene.gapLowBandShare
- 0.84
- Speech band in the pauses scene.gapSpeechBandShare
- 0.31
- Pause level spread scene.gapStabilityDb
- 10.6 dB
- Speech over background scene.speechToBackground
- 17.1 dB
- Intelligibility (proxy) scene.intelligibility
- clear
- Intelligibility score (proxy) scene.intelligibilityScore
- 0.94
- Worst phrases SNR scene.worstPhraseSnr
- 18.2 dB
- Phrase level segment.level
- p10 -27.6 · p50 -24.9 · p90 -21.7 dBFS
- Phrase clipping segment.clipFraction
- p10 0.0 · p50 0.0 · p90 0.0
- Energy after this phrase segment.decayScore
- p10 0.0 · p50 0.3 · p90 0.6
- Decay slope segment.tailDecay
- p10 -101.7 · p50 -40.9 · p90 -9.6 dB/s
- Background character segment.flankFlatness
- p10 0.2 · p50 0.4 · p90 0.6
- Peak to loudness ratio dynamics.plr
- 21.2 LU
- Peak to short-term ratio dynamics.psr
- 15.0 LU
- Platform normalisation platform.normalisation
- 12 items
- Seam ratio loop.seamRatio
- 0.00 ratio
- Silence at start loop.edgeSilenceStartMs
- 214 ms
- Silence at end loop.edgeSilenceEndMs
- 903 ms
- Bandwidth provenance.bandwidthHz
- 15655 Hz
- Lossy source provenance.lossySource
- lossless
- Effective bit depth provenance.effectiveBitDepth
- 24.0
- Upsampled from provenance.upsampled
- no value
- Bandwidth splices provenance.spliceCount
- 9.00
- Tone prominence tone.prominenceDb
- no value
- Tone frequency tone.frequencyHz
- no value
- Tonality tone.label
- no value
- Mains hum hum.levelDb
- 5.60 dB
- Mains frequency hum.mainsHz
- no value
- Content type signal.contentType
- voice
- Content confidence signal.contentConfidence
- 0.65
- Evidence signal.contentEvidence
- 3 values
- Beat stability signal.beatStability
- 0.16
- Spectral flatness (opening) signal.tonality
- 0.08
- Brightness signal.brightnessBucket
- Bright
- Dynamics signal.dynamicsBucket
- Dynamic
- Rough band label signal.dominantBand
- Upper-mid dominant
- Mono-in-disguise score signal.monophonic
- 0.89
- DC offset signal.dcOffset
- 0.00 ratio
- Has clipping signal.clipping
- no
- Clipping regions signal.clippingRegions
- 0.00
- Silent regions signal.silenceRegions
- 318
- Total silence signal.silenceTotalSec
- 222 sec
- Timeline regions signal.regions
- 830 items
- Tags signal.tags
- 5 values
- Third-octave spectrum series.thirdOctave
- {"centres":[20,25,31.5,40,50,63,80,100,125,160,200,250,315,400,500,630,800,1000,1250,1600,…
- Loudness over time series.shortTermLufs
- 16853 values
- Waveform series.waveform
- 480 values
- Voice envelope series.rmsEnvelope
- 84423 values
- Voice activity mask series.voicedMask
- 84423 values
- Energy envelope series.energyEnvelope
- 480 values
- Brightness envelope series.centroidEnvelope
- 480 values
- Spectrum lane grid.terrain
- no value
- Level lane grid.level
- p10 -28.9 · p50 -25.8 · p90 -22.6 dBFS
- Peak lane grid.peak
- p10 -12.6 · p50 -9.1 · p90 -5.3 dBFS
- Dynamics lane grid.crest
- p10 13.6 · p50 16.6 · p90 20.1 dB
- Brightness lane grid.centroid
- p10 1712.0 · p50 2978.7 · p90 5746.2 Hz
- Bandwidth lane grid.bandwidth
- p10 15245.5 · p50 15654.6 · p90 15826.9 Hz
- Noise floor lane grid.noiseFloor
- p10 -59.9 · p50 -54.4 · p90 -41.5 dBFS
- Stereo lane grid.correlation
- p10 0.9 · p50 0.9 · p90 0.9 ratio
- Width lane grid.width
- p10 0.1 · p50 0.1 · p90 0.2
- Flatness lane grid.flatness
- p10 0.0 · p50 0.0 · p90 0.1
- Clipping lane grid.clipFraction
- p10 0.0 · p50 0.0 · p90 0.0
- DC lane grid.dcOffset
- p10 0.0 · p50 0.0 · p90 0.0 ratio
- Headroom lane derived.headroom
- p10 17.4 · p50 27.8 · p90 34.4 dB
- Novelty lane derived.novelty
- p10 0.2 · p50 0.3 · p90 0.4
- Change lane derived.flux
- p10 0.3 · p50 0.3 · p90 0.4
- Noise character lane derived.bandFlatness
- low 0.28 · mid 0.56 · high 0.74
"No value" means the lens found nothing to report on this file (no steady tone, no upsampling), not that it failed. Every lens is defined on /lenses.
- speech borderline (<0.65)
Over the whole episode, one time axis
The gain to each platform's target level, and where the peak lands
| Platform | Gain | Peak after | Ceiling | Verdict |
|---|---|---|---|---|
| Spotify | +0.0 dB | -1.00 dBTP | -1 dBTP | plays below target |
| YouTube | 0.0 dB | -1.04 dBTP | -1 dBTP | plays below target |
| TIDAL | +2.4 dB to reach | (1.31 at that level) | -1 dBTP | they do not publish this |
| Amazon Music | 0.0 dB | -1.04 dBTP | -2 dBTP | peak over ceiling |
| Apple Music (sound-check) | +0.3 dB to reach | (-0.69 at that level) | -1 dBTP | they do not publish this |
| Apple Podcasts | +0.3 dB to reach | (-0.69 at that level) | -1 dBTP | they do not publish this |
| TikTok | +2.4 dB to reach | (1.31 at that level) | -1 dBTP | they do not publish this |
| Instagram / Reels | +2.4 dB to reach | (1.31 at that level) | -1 dBTP | they do not publish this |
| SoundCloud | +2.4 dB to reach | (1.31 at that level) | -1 dBTP | they do not publish this |
| Deezer | +1.4 dB to reach | (0.31 at that level) | -1 dBTP | they do not publish this |
| EBU R128 broadcast | -6.7 dB | -7.69 dBTP | -1 dBTP | ok |
| ATSC A/85 (US broadcast) | -7.7 dB | -8.69 dBTP | -2 dBTP | ok |
Platforms apply loudness at playback in different ways, and not every one turns a quiet file up. The table shows what reaching each target would take.
All 127 measurements for Show D
- Duration file.duration
- 2317 sec
- Sample rate file.sampleRate
- 44100 Hz
- Channels file.channels
- 2.00
- Bit depth (guess) file.bitDepth
- lossy
- Format file.format
- mp3
- File size file.sizeKb
- 54301
- Input hash file.inputHash
- 6cf52de8d5773577e65acd728c72e2cebef7acb92f608c1960b6309a8de56a1d
- Integrated loudness loudness.integrated
- -16.4 LUFS
- Short-term max loudness.shortTermMax
- -11.3 LUFS
- Loudness range loudness.range
- 5.30 LU
- True peak loudness.truePeak
- -1.04 dBTP
- Momentary max loudness.momentaryMax
- -9.11 LUFS
- Peak level.peak
- -1.04 dBFS
- RMS level level.rms
- -19.3 dBFS
- Crest factor level.crest
- 18.2 dB
- Stereo correlation stereo.correlation
- 0.98 ratio
- Stereo width stereo.width
- 0.07
- Mono compatible stereo.monoCompatible
- yes
- Left/right balance stereo.balance
- -0.03 dB
- Channel layout stereo.layout
- stereo
- Bass mono compatibility stereo.bassCorrelation
- 0.98 ratio
- Spectrum spectrum.curve
- {"freqs":[30,31.575974060495316,33.2347379289691,34.98064075841627,36.81826017357525,38.75…
- Spectral centroid spectrum.centroid
- 3610 Hz
- Spectral rolloff spectrum.rolloff
- 9453 Hz
- Spectral flatness spectrum.flatness
- 0.13
- Tonal balance spectrum.bands
- {"sub":0.10858427539657907,"bass":0.6763224983291706,"lowMid":1,"mid":0.2961678830335651,"…
- Harshness issue.harshness
- 0.00
- Muddiness issue.muddiness
- 0.76
- Speech ratio voice.speechRatio
- 0.74
- Speech duration voice.speechSec
- 1721 sec
- Silence duration voice.silenceSec
- 596 sec
- Speech segments voice.segments
- 1358 items
- Speech bursts per second voice.syllableRate
- 2.30 ratio
- Speaking rate voice.speakingRate
- Slow
- Long pauses voice.longSilences
- 12.0
- Voice peak voice.peak
- -1.05 dBFS
- Speech level voice.speechLevel
- -18.8 dBFS
- Noise floor voice.noiseFloor
- -37.8 dBFS
- Signal to noise voice.snr
- 19.0 dB
- Segmental SNR voice.segmentalSnr
- 20.6 dB
- SNR spread voice.segmentalSnrSpread
- 16.8 dB
- SNR per phrase voice.segmentSnr
- 1358 values
- Clipped samples voice.clipping
- 0.00
- Gap level voice.gapLevel
- -30.3 dBFS
- Background speech rhythm voice.gapModulation
- 0.45
- Background clatter voice.gapModulationHigh
- 0.10
- Background cadence voice.gapPeriodicity
- 0.32
- Energy in the pauses after speech voice.roomEcho
- 0.25
- Voice brightness voice.brightness
- 0.32
- Sibilance risk voice.sibilance
- Medium
- Cut off at the start voice.startsInSpeech
- no
- Cut off at the end voice.endsInSpeech
- no
- Level at the start voice.edgeStartDb
- -100 dBFS
- Level at the end voice.edgeEndDb
- -100 dBFS
- What fills the pauses scene.background
- program
- Program in the background scene.programScore
- 0.62
- Voices or notes in the pauses scene.gapHarmonicShare
- 0.25
- Spectral movement in the pauses scene.gapSpectralFlux
- 0.34
- Steady tone in the pauses scene.gapTone
- no value
- Constant background noise scene.stationaryScore
- 0.00
- Rumble in the pauses scene.gapLowBandShare
- 0.72
- Speech band in the pauses scene.gapSpeechBandShare
- 0.30
- Pause level spread scene.gapStabilityDb
- 11.5 dB
- Speech over background scene.speechToBackground
- 13.2 dB
- Intelligibility (proxy) scene.intelligibility
- borderline
- Intelligibility score (proxy) scene.intelligibilityScore
- 0.65
- Worst phrases SNR scene.worstPhraseSnr
- 12.7 dB
- Phrase level segment.level
- p10 -21.1 · p50 -18.6 · p90 -16.1 dBFS
- Phrase clipping segment.clipFraction
- p10 0.0 · p50 0.0 · p90 0.0
- Energy after this phrase segment.decayScore
- p10 0.0 · p50 0.3 · p90 0.6
- Decay slope segment.tailDecay
- p10 -68.1 · p50 -27.1 · p90 -7.9 dB/s
- Background character segment.flankFlatness
- p10 0.2 · p50 0.4 · p90 0.6
- Peak to loudness ratio dynamics.plr
- 15.3 LU
- Peak to short-term ratio dynamics.psr
- 10.3 LU
- Platform normalisation platform.normalisation
- 12 items
- Seam ratio loop.seamRatio
- 0.00 ratio
- Silence at start loop.edgeSilenceStartMs
- 400 ms
- Silence at end loop.edgeSilenceEndMs
- 2885 ms
- Bandwidth provenance.bandwidthHz
- 15525 Hz
- Lossy source provenance.lossySource
- lossless
- Effective bit depth provenance.effectiveBitDepth
- 24.0
- Upsampled from provenance.upsampled
- no value
- Bandwidth splices provenance.spliceCount
- 26.0
- Tone prominence tone.prominenceDb
- no value
- Tone frequency tone.frequencyHz
- no value
- Tonality tone.label
- no value
- Mains hum hum.levelDb
- 3.90 dB
- Mains frequency hum.mainsHz
- no value
- Content type signal.contentType
- voice
- Content confidence signal.contentConfidence
- 0.85
- Evidence signal.contentEvidence
- 4 values
- Beat stability signal.beatStability
- 0.16
- Spectral flatness (opening) signal.tonality
- 0.13
- Brightness signal.brightnessBucket
- Balanced
- Dynamics signal.dynamicsBucket
- Dynamic
- Rough band label signal.dominantBand
- Mid dominant
- Mono-in-disguise score signal.monophonic
- 0.98
- DC offset signal.dcOffset
- 0.00 ratio
- Has clipping signal.clipping
- no
- Clipping regions signal.clippingRegions
- 0.00
- Silent regions signal.silenceRegions
- 453
- Total silence signal.silenceTotalSec
- 371 sec
- Timeline regions signal.regions
- 1382 items
- Tags signal.tags
- 7 values
- Third-octave spectrum series.thirdOctave
- {"centres":[20,25,31.5,40,50,63,80,100,125,160,200,250,315,400,500,630,800,1000,1250,1600,…
- Loudness over time series.shortTermLufs
- 23134 values
- Waveform series.waveform
- 480 values
- Voice envelope series.rmsEnvelope
- 115828 values
- Voice activity mask series.voicedMask
- 115828 values
- Energy envelope series.energyEnvelope
- 480 values
- Brightness envelope series.centroidEnvelope
- 480 values
- Spectrum lane grid.terrain
- no value
- Level lane grid.level
- p10 -22.5 · p50 -19.6 · p90 -17.0 dBFS
- Peak lane grid.peak
- p10 -8.6 · p50 -6.1 · p90 -3.4 dBFS
- Dynamics lane grid.crest
- p10 11.3 · p50 13.5 · p90 16.2 dB
- Brightness lane grid.centroid
- p10 1044.8 · p50 2204.0 · p90 4941.8 Hz
- Bandwidth lane grid.bandwidth
- p10 12166.3 · p50 15525.4 · p90 18475.5 Hz
- Noise floor lane grid.noiseFloor
- p10 -48.6 · p50 -41.2 · p90 -30.9 dBFS
- Stereo lane grid.correlation
- p10 1.0 · p50 1.0 · p90 1.0 ratio
- Width lane grid.width
- p10 0.0 · p50 0.0 · p90 0.1
- Flatness lane grid.flatness
- p10 0.0 · p50 0.0 · p90 0.1
- Clipping lane grid.clipFraction
- p10 0.0 · p50 0.0 · p90 0.0
- DC lane grid.dcOffset
- p10 -0.0 · p50 0.0 · p90 0.0 ratio
- Headroom lane derived.headroom
- p10 12.1 · p50 21.5 · p90 29.3 dB
- Novelty lane derived.novelty
- p10 0.1 · p50 0.2 · p90 1.0
- Change lane derived.flux
- p10 0.2 · p50 0.3 · p90 0.4
- Noise character lane derived.bandFlatness
- low 0.65 · mid 0.53 · high 0.72
"No value" means the lens found nothing to report on this file (no steady tone, no upsampling), not that it failed. Every lens is defined on /lenses.
- reaching Apple's recommended -16 LUFS takes +3.2 dB, which puts the peak at 3.02 dBTP, above -1 dBTP: it needs a limiter before upload to get there
- peak -0.17 dBTP as delivered, above the -1 dBTP ceiling
Over the whole episode, one time axis
The gain to each platform's target level, and where the peak lands
| Platform | Gain | Peak after | Ceiling | Verdict |
|---|---|---|---|---|
| Spotify | 0.0 dB | -0.17 dBTP | -1 dBTP | peak over ceiling |
| YouTube | 0.0 dB | -0.17 dBTP | -1 dBTP | peak over ceiling |
| TIDAL | 0.0 dB | -0.17 dBTP | -1 dBTP | peak over ceiling |
| Amazon Music | 0.0 dB | -0.17 dBTP | -2 dBTP | peak over ceiling |
| Apple Music (sound-check) | 0.0 dB | -0.17 dBTP | -1 dBTP | peak over ceiling |
| Apple Podcasts | 0.0 dB | -0.17 dBTP | -1 dBTP | peak over ceiling |
| TikTok | 0.0 dB | -0.17 dBTP | -1 dBTP | peak over ceiling |
| Instagram / Reels | 0.0 dB | -0.17 dBTP | -1 dBTP | peak over ceiling |
| SoundCloud | 0.0 dB | -0.17 dBTP | -1 dBTP | peak over ceiling |
| Deezer | 0.0 dB | -0.17 dBTP | -1 dBTP | peak over ceiling |
| EBU R128 broadcast | -3.8 dB | -3.98 dBTP | -1 dBTP | ok |
| ATSC A/85 (US broadcast) | -4.8 dB | -4.98 dBTP | -2 dBTP | ok |
Platforms apply loudness at playback in different ways, and not every one turns a quiet file up. The table shows what reaching each target would take.
All 127 measurements for Show E
- Duration file.duration
- 3536 sec
- Sample rate file.sampleRate
- 44100 Hz
- Channels file.channels
- 2.00
- Bit depth (guess) file.bitDepth
- lossy
- Format file.format
- mp3
- File size file.sizeKb
- 55247
- Input hash file.inputHash
- 61fb8fa27e61bcc898af19cba0efe52cc99aa0bb5477fab73f95aa62245e9eee
- Integrated loudness loudness.integrated
- -19.2 LUFS
- Short-term max loudness.shortTermMax
- -14.5 LUFS
- Loudness range loudness.range
- 7.50 LU
- True peak loudness.truePeak
- -0.17 dBTP
- Momentary max loudness.momentaryMax
- -9.23 LUFS
- Peak level.peak
- -0.20 dBFS
- RMS level level.rms
- -23.0 dBFS
- Crest factor level.crest
- 22.8 dB
- Stereo correlation stereo.correlation
- 1.00 ratio
- Stereo width stereo.width
- 0.03
- Mono compatible stereo.monoCompatible
- yes
- Left/right balance stereo.balance
- 0.00 dB
- Channel layout stereo.layout
- stereo
- Bass mono compatibility stereo.bassCorrelation
- 1.00 ratio
- Spectrum spectrum.curve
- {"freqs":[30,31.575974060495316,33.2347379289691,34.98064075841627,36.81826017357525,38.75…
- Spectral centroid spectrum.centroid
- 2588 Hz
- Spectral rolloff spectrum.rolloff
- 5588 Hz
- Spectral flatness spectrum.flatness
- 0.04
- Tonal balance spectrum.bands
- {"sub":0.014300480820645608,"bass":0.9797174499850985,"lowMid":1,"mid":0.3511937646342016,…
- Harshness issue.harshness
- 0.00
- Muddiness issue.muddiness
- 0.16
- Speech ratio voice.speechRatio
- 0.63
- Speech duration voice.speechSec
- 2216 sec
- Silence duration voice.silenceSec
- 1320 sec
- Speech segments voice.segments
- 2693 items
- Speech bursts per second voice.syllableRate
- 2.70 ratio
- Speaking rate voice.speakingRate
- Slow
- Long pauses voice.longSilences
- 66.0
- Voice peak voice.peak
- -0.20 dBFS
- Speech level voice.speechLevel
- -22.7 dBFS
- Noise floor voice.noiseFloor
- -63.2 dBFS
- Signal to noise voice.snr
- 40.4 dB
- Segmental SNR voice.segmentalSnr
- 38.5 dB
- SNR spread voice.segmentalSnrSpread
- 37.9 dB
- SNR per phrase voice.segmentSnr
- 2693 values
- Clipped samples voice.clipping
- 0.00
- Gap level voice.gapLevel
- -37.7 dBFS
- Background speech rhythm voice.gapModulation
- 0.34
- Background clatter voice.gapModulationHigh
- 0.07
- Background cadence voice.gapPeriodicity
- 0.37
- Energy in the pauses after speech voice.roomEcho
- 0.21
- Voice brightness voice.brightness
- 0.51
- Sibilance risk voice.sibilance
- Medium
- Cut off at the start voice.startsInSpeech
- no
- Cut off at the end voice.endsInSpeech
- no
- Level at the start voice.edgeStartDb
- -68.2 dBFS
- Level at the end voice.edgeEndDb
- -79.9 dBFS
- What fills the pauses scene.background
- program
- Program in the background scene.programScore
- 0.99
- Voices or notes in the pauses scene.gapHarmonicShare
- 0.35
- Spectral movement in the pauses scene.gapSpectralFlux
- 0.56
- Steady tone in the pauses scene.gapTone
- no value
- Constant background noise scene.stationaryScore
- 0.00
- Rumble in the pauses scene.gapLowBandShare
- 0.47
- Speech band in the pauses scene.gapSpeechBandShare
- 0.55
- Pause level spread scene.gapStabilityDb
- 6.75 dB
- Speech over background scene.speechToBackground
- 17.5 dB
- Intelligibility (proxy) scene.intelligibility
- clear
- Intelligibility score (proxy) scene.intelligibilityScore
- 0.97
- Worst phrases SNR scene.worstPhraseSnr
- 18.7 dB
- Phrase level segment.level
- p10 -27.6 · p50 -23.3 · p90 -18.4 dBFS
- Phrase clipping segment.clipFraction
- p10 0.0 · p50 0.0 · p90 0.0
- Energy after this phrase segment.decayScore
- p10 0.0 · p50 0.2 · p90 0.6
- Decay slope segment.tailDecay
- p10 -172.8 · p50 -62.0 · p90 -14.3 dB/s
- Background character segment.flankFlatness
- p10 0.2 · p50 0.4 · p90 0.7
- Peak to loudness ratio dynamics.plr
- 19.0 LU
- Peak to short-term ratio dynamics.psr
- 14.4 LU
- Platform normalisation platform.normalisation
- 12 items
- Seam ratio loop.seamRatio
- 0.00 ratio
- Silence at start loop.edgeSilenceStartMs
- 26.9 ms
- Silence at end loop.edgeSilenceEndMs
- 141 ms
- Bandwidth provenance.bandwidthHz
- 12037 Hz
- Lossy source provenance.lossySource
- lossless
- Effective bit depth provenance.effectiveBitDepth
- 24.0
- Upsampled from provenance.upsampled
- no value
- Bandwidth splices provenance.spliceCount
- 3.00
- Tone prominence tone.prominenceDb
- no value
- Tone frequency tone.frequencyHz
- no value
- Tonality tone.label
- no value
- Mains hum hum.levelDb
- 1.50 dB
- Mains frequency hum.mainsHz
- no value
- Content type signal.contentType
- voice
- Content confidence signal.contentConfidence
- 0.85
- Evidence signal.contentEvidence
- 4 values
- Beat stability signal.beatStability
- 0.21
- Spectral flatness (opening) signal.tonality
- 0.04
- Brightness signal.brightnessBucket
- Balanced
- Dynamics signal.dynamicsBucket
- Dynamic
- Rough band label signal.dominantBand
- Mid dominant
- Mono-in-disguise score signal.monophonic
- 1.00
- DC offset signal.dcOffset
- 0.00 ratio
- Has clipping signal.clipping
- no
- Clipping regions signal.clippingRegions
- 0.00
- Silent regions signal.silenceRegions
- 470
- Total silence signal.silenceTotalSec
- 334 sec
- Timeline regions signal.regions
- 1873 items
- Tags signal.tags
- 6 values
- Third-octave spectrum series.thirdOctave
- {"centres":[20,25,31.5,40,50,63,80,100,125,160,200,250,315,400,500,630,800,1000,1250,1600,…
- Loudness over time series.shortTermLufs
- 35326 values
- Waveform series.waveform
- 480 values
- Voice envelope series.rmsEnvelope
- 176788 values
- Voice activity mask series.voicedMask
- 176788 values
- Energy envelope series.energyEnvelope
- 480 values
- Brightness envelope series.centroidEnvelope
- 480 values
- Spectrum lane grid.terrain
- no value
- Level lane grid.level
- p10 -27.5 · p50 -24.2 · p90 -19.9 dBFS
- Peak lane grid.peak
- p10 -8.6 · p50 -4.8 · p90 -1.6 dBFS
- Dynamics lane grid.crest
- p10 16.1 · p50 18.9 · p90 22.0 dB
- Brightness lane grid.centroid
- p10 1687.2 · p50 2293.0 · p90 3661.8 Hz
- Bandwidth lane grid.bandwidth
- p10 11994.0 · p50 12037.1 · p90 12123.2 Hz
- Noise floor lane grid.noiseFloor
- p10 -81.4 · p50 -74.2 · p90 -64.2 dBFS
- Stereo lane grid.correlation
- p10 1.0 · p50 1.0 · p90 1.0 ratio
- Width lane grid.width
- p10 0.0 · p50 0.0 · p90 0.0
- Flatness lane grid.flatness
- p10 0.0 · p50 0.0 · p90 0.0
- Clipping lane grid.clipFraction
- p10 0.0 · p50 0.0 · p90 0.0
- DC lane grid.dcOffset
- p10 -0.0 · p50 0.0 · p90 0.0 ratio
- Headroom lane derived.headroom
- p10 39.4 · p50 50.1 · p90 57.8 dB
- Novelty lane derived.novelty
- p10 0.2 · p50 0.3 · p90 0.5
- Change lane derived.flux
- p10 0.3 · p50 0.3 · p90 0.4
- Noise character lane derived.bandFlatness
- low 0.52 · mid 0.56 · high 0.86
"No value" means the lens found nothing to report on this file (no steady tone, no upsampling), not that it failed. Every lens is defined on /lenses.
This page came from one command over five files. The same measurement runs on each file as it arrives: one call when an episode is uploaded, a verdict back in seconds, and a sentence the creator can act on before the episode goes live. "Your episode sits 5.4 dB under Apple's recommended level, and a limiter at -1 dBTP before export fixes it" is a sentence a creator can act on in two minutes.
- Check a target level:
/v1/mixlab/check-targetreturns pass or fail per metric and an ffmpeg command that fixes it. - Check the speech:
/v1/voicelab/qareturns per-phrase signal to noise, clipping, hum and the intelligibility read (a proxy for how well a listener could follow the voice). - A backlog:
/v1/batchruns any of these routes over up to 20 URLs per call. - From an agent: the MCP server exposes the same checks as tools. How to use the fields before a transcription, and what they do not predict, is written out on Read the audio before you transcribe.
curl https://audiolab.tools/v1/mixlab/check-target \
-H "Authorization: Bearer $AUDIOLAB_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "https://your-cdn.example/episode.mp3", "target": "podcast"}'curl https://audiolab.tools/v1/voicelab/qa \
-H "Authorization: Bearer $AUDIOLAB_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "https://your-cdn.example/episode.mp3"}'curl https://audiolab.tools/v1/batch \
-H "Authorization: Bearer $AUDIOLAB_API_KEY" \
-H "Content-Type: application/json" \
-d '{"endpoint": "voicelab/qa",
"urls": ["https://your-cdn.example/ep-101.mp3", "https://your-cdn.example/ep-102.mp3"]}' Intake audit
EUR 490
Up to 50 hours of your audio, this page for every file, and one report with the share that misses your target and the threshold that catches it. Five working days. The report holds numbers, not your audio.
Every month after
EUR 249 / month
The same report over the new intake, the threshold adjusted with you, and an hour of your team's questions. Or wire the API yourself; 1,000 calls a month are free.
Prices exclude VAT.
What we keep
An audit is measured on our own computer with the AudioLab engine: your audio is not uploaded to the AudioLab API or to any other service. The report and the CSV hold numbers, labels and the name of each file, not audio. We delete the files you send when we deliver the report, or as agreed with you. If you wire the API yourself instead, the audio reaches our EU-hosted API: a direct request is decoded in memory and discarded when it ends, and a larger upload sits in EU storage until a sweep (every 15 minutes, everything older than 45 minutes) removes it, always within the hour. The numbers of your analyses stay until you delete them or close your account. More on /privacy.
- Loudness and true peak per ITU-R BS.1770 and EBU R128. The levels are Apple's own recommendation, from the best-practice section of Audio requirements for Apple Podcasts. Apple does not reject episodes that miss them. A file within 1 LU of -16 counts as on target; beyond that, the peak after the gain decides, because that gain has to fit under the ceiling.
- Intelligibility is a proxy, not an STI: the weaker of the worst tenth of per-phrase signal to noise and the speech level over the pauses, reduced for clipping. Clear from 0.65, borderline from 0.35.
- All five files are MP3. The codec lens looks for the wall an encoder leaves in the spectrum and does not see one at 192 kbps; the container still makes them lossy, and they are reported that way.
- The episodes were public and are identified here only by kind and month. Nothing was kept but the numbers on this page.