Skip to main content

Biquad

Struct Biquad 

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

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

The coefficients are designed and the recursion runs in f64; samples go in and come out as f32. A low band’s poles sit within about 2 * pi * f / rate of the unit circle, which f32 cannot resolve: at 96 kHz a 10 Hz low-pass in f32 passes DC at +1.2 dB, and at 384 kHz and above its poles round onto or past the circle, so the filter goes silent or runs away. In f64 every band of every rate 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.

Parameters are sanitized in Processor::prepare: non-finite values fall back to 1 kHz, Q 0.707 and 0 dB, then each is clamped to the ranges this module exports.

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. Built-in recursive processors use a finite settling horizon; this is an approximation to uninterrupted playback, not a bit-exact state snapshot.
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, prepared alike, whole or not at all. Read more
Source§

fn inputs_per_output(&self) -> usize

How many input channels the processor reads for each output channel: 1 for an effect, 2 for one that also reads a second bus after the first (a sidechain, or the other side of a crossfade). A crate::ProcessorChain gives each node only its own channels, so it takes 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.