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
impl Biquad
Sourcepub fn new(kind: BiquadKind, frequency: f32, q: f32, gain_db: f32) -> Self
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 Processor for Biquad
impl Processor for Biquad
Source§fn history_samples(&self) -> u32
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)
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]],
)
fn process( &mut self, _ctx: &ProcessCtx, inputs: &[&[f32]], outputs: &mut [&mut [f32]], )
Processes planar channel slices supplied by the host. Read more
Source§fn save_state(&self) -> StateBlob
fn save_state(&self) -> StateBlob
Serializes history at an offline chunk boundary.
Source§fn load_state(&mut self, state: &StateBlob) -> Result<(), StateError>
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
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
fn latency_samples(&self) -> u32
Algorithmic delay that the graph host must compensate.
Auto Trait Implementations§
impl Freeze for Biquad
impl RefUnwindSafe for Biquad
impl Send for Biquad
impl Sync for Biquad
impl Unpin for Biquad
impl UnsafeUnpin for Biquad
impl UnwindSafe for Biquad
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more