Struct Elliptic Filter
pub struct EllipticFilter { /* private fields */ }Expand description
One-channel fixed-state f64 processing. Sample/block/reset have no allocation, lock or I/O. Nonfinite audio propagates; headroom/denormals/transitions are consumer policy. No finite IIR tail, smoothing or native deadline guarantee.
use ravet_signal::{EllipticDesign,EllipticFilter,EllipticResponse};
let d=EllipticDesign::new(EllipticResponse::LowPass{pass_edge_hz:9000.},
48000.,7,1.,80.).unwrap();
let mut f=EllipticFilter::new(d);
assert!(f.process_sample(1.).is_finite());Implementations§
§impl EllipticFilter
impl EllipticFilter
pub fn new(design: EllipticDesign) -> Self
pub fn new(design: EllipticDesign) -> Self
Start all histories at zero.
pub fn set_design(&mut self, design: EllipticDesign)
pub fn set_design(&mut self, design: EllipticDesign)
Replace the whole design and reset every history, without smoothing.
pub fn process_sample(&mut self, input: f64) -> f64
pub fn process_sample(&mut self, input: f64) -> f64
Process one sample, retaining one channel’s state.
pub fn process_in_place(&mut self, samples: &mut [f64])
pub fn process_in_place(&mut self, samples: &mut [f64])
Process an arbitrary block; empty blocks do nothing.
pub fn reset(&mut self)
pub fn reset(&mut self)
Clear every state without allocation.