Skip to main content

LoudnessNormalization

Struct LoudnessNormalization 

Source
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: f64

Gain to apply, in dB.

§integrated_lufs: f64

Integrated loudness after the gain, in LUFS.

§true_peak_dbtp: f64

True peak after the gain, in dBTP.

§peak_limited: bool

Whether 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: bool

Whether the master limiter’s threshold was the bound that set the gain, below what the ceiling allows.

Implementations§

Source§

impl LoudnessNormalization

Source

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.

Source

pub fn linear_gain(&self) -> f64

The gain as a linear factor.

Trait Implementations§

Source§

impl Clone for LoudnessNormalization

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for LoudnessNormalization

Source§

impl Debug for LoudnessNormalization

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl PartialEq for LoudnessNormalization

Source§

fn eq(&self, other: &Self) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for LoudnessNormalization

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.