pub struct MultirateMatrixConvolver { /* private fields */ }Implementations§
Source§impl MultirateMatrixConvolver
impl MultirateMatrixConvolver
Sourcepub fn new(
inputs: usize,
outputs: usize,
low_block_size: usize,
factor: usize,
routes: &[FirRoute],
) -> Result<Self, DspError>
pub fn new( inputs: usize, outputs: usize, low_block_size: usize, factor: usize, routes: &[FirRoute], ) -> Result<Self, DspError>
Hamming-windowed 64 * factor + 1 tap prototype with cutoff at
0.4 times the low sample rate. Route taps are at that low rate.
Sourcepub fn with_prototype(
inputs: usize,
outputs: usize,
low_block_size: usize,
factor: usize,
routes: &[FirRoute],
prototype: &[f64],
) -> Result<Self, DspError>
pub fn with_prototype( inputs: usize, outputs: usize, low_block_size: usize, factor: usize, routes: &[FirRoute], prototype: &[f64], ) -> Result<Self, DspError>
Use an explicit odd, symmetric anti-alias prototype for both rate
converters. Its DC gain is used as supplied; interpolation gains by
factor. Symmetry makes the reported integer alignment delay valid.
Sourcepub fn process(
&mut self,
inputs: &[&[f64]],
outputs: &mut [&mut [f64]],
) -> Result<(), DspError>
pub fn process( &mut self, inputs: &[&[f64]], outputs: &mut [&mut [f64]], ) -> Result<(), DspError>
Process one high-rate block without allocation. Decimation computes only retained samples; interpolation visits only nonzero polyphases.
Sourcepub fn process_buffers<I: AsRef<[f64]>, O: AsMut<[f64]>>(
&mut self,
inputs: &[I],
outputs: &mut [O],
) -> Result<(), DspError>
pub fn process_buffers<I: AsRef<[f64]>, O: AsMut<[f64]>>( &mut self, inputs: &[I], outputs: &mut [O], ) -> Result<(), DspError>
Process retained channel buffers without allocating slice-view arrays.
pub fn reset(&mut self)
pub fn block_size(&self) -> usize
pub fn low_block_size(&self) -> usize
pub fn factor(&self) -> usize
pub fn input_count(&self) -> usize
pub fn output_count(&self) -> usize
Sourcepub fn latency_samples(&self) -> usize
pub fn latency_samples(&self) -> usize
Two linear-phase prototype delays, in high-rate samples.
Sourcepub fn tail_samples(&self) -> usize
pub fn tail_samples(&self) -> usize
Conservative high-rate tail length, including both rate converters.
pub fn transforms_per_block(&self) -> (usize, usize)
Trait Implementations§
Auto Trait Implementations§
impl !RefUnwindSafe for MultirateMatrixConvolver
impl !UnwindSafe for MultirateMatrixConvolver
impl Freeze for MultirateMatrixConvolver
impl Send for MultirateMatrixConvolver
impl Sync for MultirateMatrixConvolver
impl Unpin for MultirateMatrixConvolver
impl UnsafeUnpin for MultirateMatrixConvolver
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