Skip to main content

BridgeAlgorithm

Trait BridgeAlgorithm 

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

A graph node that serves as a duplex boundary between recording and playback chains.

§Execution model

Each tick is split into five phases:

  1. ReadFeedback — mix feedback buffers into node inputs
  2. process_left — execute left sub-graph + bridge.process_left(inputs)
  3. process_right — bridge.process_right(outputs) + execute right sub-graph
  4. WriteFeedback — capture node outputs into feedback buffers
  5. Shadow copy — swap read/write feedback buffers

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_left(&mut self, inputs: &[&[T]]) -> ProcessResult<()>

Input callback: write into bridge state.

Source

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

Output callback: read from bridge state.

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§