Skip to main content

Source

Trait Source 

Source
pub trait Source<T, const BUF_SIZE: usize>: SignalNode<T, BUF_SIZE>
where T: Transcendental,
{ // Required method fn generate( &mut self, clock: &ClockTick, control_inputs: &[T], clock_inputs: &[ClockTick], ) -> Result<(), ProcessError>; // Provided methods fn num_signal_outputs(&self) -> usize { ... } fn num_control_inputs(&self) -> usize { ... } fn num_clock_inputs(&self) -> usize { ... } }
Expand description

Active source of signals

Sources generate audio from internal state. They have no audio inputs, but may have control and clock inputs for modulation.

Required Methods§

Source

fn generate( &mut self, clock: &ClockTick, control_inputs: &[T], clock_inputs: &[ClockTick], ) -> Result<(), ProcessError>

Generate the next block of audio

§Arguments
  • clock - Current clock tick
  • control_inputs - Control signal values (one per control input)
  • clock_inputs - Clock signal values (one per clock input)

The source writes output samples into its own output port buffers, accessible via self.output_port_mut(index).

Provided Methods§

Source

fn num_signal_outputs(&self) -> usize

Number of audio outputs (default 1)

Source

fn num_control_inputs(&self) -> usize

Number of control inputs (default 0)

Source

fn num_clock_inputs(&self) -> usize

Number of clock inputs (default 0)

Trait Implementations§

Source§

impl<T, const BUF_SIZE: usize> Processable<T, BUF_SIZE> for Box<dyn Source<T, BUF_SIZE>>
where T: Transcendental,

Source§

fn process_block( &mut self, ctx: &mut ProcessContext<'_, T, BUF_SIZE>, ) -> Result<(), ProcessError>

Process a single block of audio. Read more

Implementors§