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:
- ReadFeedback — mix feedback buffers into node inputs
- process_left — execute left sub-graph + bridge.process_left(inputs)
- process_right — bridge.process_right(outputs) + execute right sub-graph
- WriteFeedback — capture node outputs into feedback buffers
- Shadow copy — swap read/write feedback buffers
Required Methods§
Sourcefn num_inputs(&self) -> usize
fn num_inputs(&self) -> usize
Number of signal input channels.
Sourcefn num_outputs(&self) -> usize
fn num_outputs(&self) -> usize
Number of signal output channels.
Sourcefn process_left(&mut self, inputs: &[&[T]]) -> ProcessResult<()>
fn process_left(&mut self, inputs: &[&[T]]) -> ProcessResult<()>
Input callback: write into bridge state.
Sourcefn process_right(&mut self, outputs: &mut [&mut [T]]) -> ProcessResult<()>
fn process_right(&mut self, outputs: &mut [&mut [T]]) -> ProcessResult<()>
Output callback: read from bridge state.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".