pub struct LoudnessNormalization {
pub gain_db: f64,
pub integrated_lufs: f64,
pub true_peak_dbtp: f64,
pub peak_limited: bool,
pub limiter_limited: bool,
}Expand description
A static gain that brings a measured mix to a loudness target without letting its true peak exceed a ceiling, or its sample peak reach a master limiter after it.
Fields§
§gain_db: f64Gain to apply, in dB.
integrated_lufs: f64Integrated loudness after the gain, in LUFS.
true_peak_dbtp: f64True peak after the gain, in dBTP.
peak_limited: boolWhether a peak bound, not the target, set the gain: the true-peak
ceiling or the limiter (Self::limiter_limited). The result is
quieter than the target.
limiter_limited: boolWhether the master limiter’s threshold was the bound that set the gain, below what the ceiling allows.
Implementations§
Source§impl LoudnessNormalization
impl LoudnessNormalization
Sourcepub fn plan(
report: &LoudnessReport,
target_lufs: f64,
ceiling_dbtp: f64,
limiter_threshold: Option<f64>,
) -> Option<Self>
pub fn plan( report: &LoudnessReport, target_lufs: f64, ceiling_dbtp: f64, limiter_threshold: Option<f64>, ) -> Option<Self>
The gain that moves report to target_lufs, lowered if needed so
the true peak stays at or below ceiling_dbtp and, when the mix goes
on through a master limiter whose linear threshold is
limiter_threshold, so the sample peak stays LIMITER_MARGIN_DB
below that threshold. The limiter then never acts on the normalized
mix, which comes out at the planned loudness. The limiter bound is on
the sample peak because that is what the limiter detects.
None when the measured audio has no integrated loudness (it is
silent below the absolute gate), or when the report holds a loudness
or peak, or the threshold is, not a finite (and for the threshold,
positive) number, which no gain can be planned from.
Sourcepub fn linear_gain(&self) -> f64
pub fn linear_gain(&self) -> f64
The gain as a linear factor.