Trait hexodsp::DynamicNode1x1 
source · [−]pub trait DynamicNode1x1: Send {
    fn process(
        &mut self,
        _input: &[f32],
        _output: &mut [f32],
        _ctx: &DynNode1x1Context
    );
    fn set_sample_rate(&mut self, _sample_rate: f32) { ... }
    fn reset(&mut self) { ... }
}Expand description
This trait allows you to write custom HexoDSP nodes in Rust and provide them at runtime using [crate::NodeConfigurator::set_dynamic_node1x1] or crate::SynthConstructor::set_dynamic_node1x1.
The 1x1 means there is one dedicated input signal and one dedicated output signal. The input signal is accompanied with 4 auxiliary signals using the DynNode1x1Context structure.
There is a trait implementation for FnMut(&[f32], &mut [f32], &DynNode1x1Context) functions,
which means you don’t have to implement a full structure yourself and can just pass in
closures to crate::SynthConstructor::set_dynamic_node1x1:
 use hexodsp::{SynthConstructor, DynamicNode1x1, DynNode1x1Context};
 use hexodsp::build::*;
 let mut sc = SynthConstructor::new();
 sc.set_dynamic_node1x1(0, Box::new(|inp: &[f32], out: &mut [f32], ctx: &DynNode1x1Context| {
     // Your code here!
 }));
 sc.upload(&out(0).input().ch1(&rust1x1(0).output().sig()));See also: crate::SynthConstructor::set_dynamic_node1x1 for a more detailed example.
Required Methods
sourcefn process(
    &mut self,
    _input: &[f32],
    _output: &mut [f32],
    _ctx: &DynNode1x1Context
)
 
fn process(
    &mut self,
    _input: &[f32],
    _output: &mut [f32],
    _ctx: &DynNode1x1Context
)
You implement this method with your own custom DSP code.
Provided Methods
sourcefn set_sample_rate(&mut self, _sample_rate: f32)
 
fn set_sample_rate(&mut self, _sample_rate: f32)
The sample rate function sets the sample rate the DSP graph is currently running at.