A Clean Mix Can Still Fail Delivery
Streaming, podcast, and broadcast targets differ. Turning a file up by ear can miss integrated loudness, loudness range, or true-peak limits and create a second rejected export.
loudnessgate wraps FFmpeg's loudnorm measurement and two-pass normalization with named broadcast, podcast, and music-streaming profiles.
Make Mastering Checkable
The JSON report records integrated LUFS, true peak, loudness range, every pass or fail decision, and required gain. The same engine powers the CLI, API, workbench, integration test, and container.
The Demo
The podcast fixture measures -18.4 LUFS against a -16 target and needs 2.4 dB of gain. Its -2.1 dBTP peak and 6.2 LU range already pass, so the report explains exactly why the file fails.
Two-pass normalization is deterministic for the measured file. Codec overshoot, downstream processing, platform-specific policies, and listening quality still require final review.
Standards Basis
The measurement model is grounded in EBU R128, while the binary path uses FFmpeg's documented loudnorm filter.
Read the EBU R128 loudness recommendation.