Skip to main content

Biquad

Struct Biquad 

Source
pub struct Biquad { /* private fields */ }
Expand description

Two-channel transposed-direct-form-II biquad.

Coefficients and recursion are f64; samples are f32. Low-band poles sit within about 2 * pi * f / rate of the unit circle, which f32 cannot resolve (a 10 Hz low-pass at 96 kHz passes DC at +1.2 dB, and at 384 kHz the poles reach the circle). In f64 every band up to 768 kHz is stable and within 0.1 dB of its design.

Implementations§

Source§

impl Biquad

Source

pub fn new(kind: BiquadKind, frequency: f32, q: f32, gain_db: f32) -> Self

Creates a parametric filter.

Processor::prepare replaces non-finite parameters with 1 kHz, Q 0.707 and 0 dB, then clamps them to this module’s ranges.

Trait Implementations§

Source§

impl Clone for Biquad

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 Debug for Biquad

Source§

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

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

impl Processor for Biquad

Source§

fn history_samples(&self) -> u32

Additional source history for a cold seek, excluding algorithmic delay. For recursive processors this approximates uninterrupted playback rather than matching it bit for bit.
Source§

fn prepare(&mut self, sample_rate: u32, _max_block: usize)

Configures non-real-time state before processing begins.
Source§

fn process( &mut self, _ctx: &ProcessCtx, inputs: &[&[f32]], outputs: &mut [&mut [f32]], )

Processes planar channel slices supplied by the host. Read more
Source§

fn reset(&mut self)

Clears signal history without changing authored parameters.
Source§

fn save_state(&self) -> StateBlob

Serializes history at an offline chunk boundary.
Source§

fn load_state(&mut self, state: &StateBlob) -> Result<(), StateError>

Restores history saved by a processor of the same type and preparation, atomically. Read more
Source§

fn inputs_per_output(&self) -> usize

Input channels read per output channel: 1 for an effect, 2 with a second bus (sidechain or crossfade). A crate::ProcessorChain accepts only processors that read one.
Source§

fn latency_samples(&self) -> u32

Algorithmic delay that the graph host must compensate.

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.