Egregora Loudness Meter (BS1770)
Measure LUFS before you trust your ears
- audio
- metrics
Your ears are lying to you about loudness. A track can feel louder because it's brighter, or because it's compressed, or because you've been listening for forty minutes and your brain gave up. LUFS - the ITU-R BS.1770 loudness standard, the one streaming platforms measure against - is the number that doesn't care about any of that. This node gives ComfyUI a proper BS.1770-style loudness meter, and it's the measuring stick that makes the rest of the Egregora pack trustworthy.
Here's the workflow-shaped reason you want it: the whole pack is about improving audio and then verifying the improvement. But if your "improved" output is just louder, you've fooled yourself. Run the original and the processed version through this meter and you get an apples-to-apples loudness picture. Then the pack's gain-match node (or the 1770 gain matcher) can normalize levels before you A/B, and the ABX nodes can test whether anyone can actually hear a difference at matched loudness. Meters first, ears second.
How it works
The node computes an integrated LUFS reading (the whole-file loudness), plus momentary (400 ms) and short-term (3 s) LUFS series, LRA (loudness range - how much the loudness varies), and - with compute_true_peak on (default) - true peak in dBFS using oversample (default 4x) interpolation. That last one matters: sample peaks miss inter-sample peaks, which is how you get clipping you can't see on the waveform.
One important caveat from the author's own code comments: this is a practical approximation of BS.1770. It's exactly right for A/B-ing your own files and getting in the right ballpark for streaming targets. It is not a certification-grade metering suite - if you're mastering for delivery and the platform will audit your loudness, validate against a reference meter.
The inputs
audio- the AUDIO buffer.compute_true_peak(default on) - measure true peak; off saves a little time.oversample(default 4) - oversampling factor for true peak; higher = more precise, slower.
Output is a single metrics DICT with lufs_integrated, lufs_momentary, lufs_short_term, lra, and (if enabled) true_peak_dbfs.
Install notes
Loudness is computed in pure NumPy inside the eval pack - no extra dependency beyond what the pack already pulls in (SciPy). If the pack is installed, this node just works, which is more than you can say for most of its enhancement siblings.
The take
Think of it as the pack's conscience. FlashSR and Fat Llama can both make audio sound better while actually making it louder or duller; this node tells you which is happening. Match your reference and processed files to the same LUFS with the gain-match node, then run the null test, and you'll know whether the enhancement is real or just loudness theater.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| audio | AUDIO | — | |
| compute_true_peakopt | BOOLEAN | true | — |
| oversampleopt | INT | 41–8 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| metrics | DICT | — |