Skip to main content

MultichannelAlgorithm

Trait MultichannelAlgorithm 

Source
pub trait MultichannelAlgorithm<T: Transcendental>: Send {
    // Required methods
    fn num_inputs(&self) -> usize;
    fn num_outputs(&self) -> usize;
    fn process(
        &mut self,
        inputs: &[&[T]],
        outputs: &mut [&mut [T]],
    ) -> ProcessResult<()>;
    fn reset(&mut self);
}
Expand description

A signal processing algorithm with multiple inputs and outputs.

Unlike Algorithm<T> which is strictly single-input/single-output (SISO), this trait supports N-to-M channel processing in a single call.

Required Methods§

Source

fn num_inputs(&self) -> usize

Number of signal input channels.

Source

fn num_outputs(&self) -> usize

Number of signal output channels.

Source

fn process( &mut self, inputs: &[&[T]], outputs: &mut [&mut [T]], ) -> ProcessResult<()>

Process one buffer of samples.

  • inputs.len() == num_inputs()
  • outputs.len() == num_outputs()
  • Each inner slice has exactly BUF_SIZE samples (determined by the caller).
Source

fn reset(&mut self)

Reset internal state.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§