[][src]Trait oscen::signal::Signal

pub trait Signal: Any {
    fn as_any_mut(&mut self) -> &mut dyn Any;
fn signal(&mut self, rack: &Rack, sample_rate: Real) -> Real;
fn tag(&self) -> Tag; }

Synth modules must implement the Signal trait. In fact one could define a synth module as a struct that implements Signal. as_any_mut is necessary so that modules can be downcast in order to access their specific fields.

Required methods

fn as_any_mut(&mut self) -> &mut dyn Any

This method has the same trivial implementation for all implentors of the trait. We need it to downcast trait objects to their underlying type.

fn signal(&mut self, rack: &Rack, sample_rate: Real) -> Real

Responsible for updating the phase and returning the next signal value, i.e. amplitude.

fn tag(&self) -> Tag

Synth modules must have a tag (name) to serve as their key in the rack.

Loading content...

Implementors

impl Signal for Adsr[src]

impl Signal for AllPass[src]

impl Signal for Bpf[src]

impl Signal for Comb[src]

impl Signal for Hpf[src]

impl Signal for Lpf[src]

impl Signal for Notch[src]

impl Signal for WaveGuide[src]

impl Signal for MidiControl[src]

impl Signal for MidiPitch[src]

impl Signal for CrossFade[src]

impl Signal for Delay[src]

impl Signal for Mixer[src]

impl Signal for Modulator[src]

impl Signal for Product[src]

impl Signal for Union[src]

impl Signal for Vca[src]

impl Signal for Clock[src]

impl Signal for FourierOsc[src]

impl Signal for Osc01[src]

impl Signal for PinkNoise[src]

impl Signal for SawOsc[src]

impl Signal for SineOsc[src]

impl Signal for SquareOsc[src]

impl Signal for TriangleOsc[src]

impl Signal for WhiteNoise[src]

impl Signal for Freeverb[src]

impl Signal for GateSeq[src]

impl Signal for PitchSeq[src]

impl Signal for SineFold[src]

impl Signal for Tanh[src]

impl Signal for Link[src]

impl Signal for SynthModule[src]

impl Signal for ArcMutex<dyn Signal + Send>[src]

impl<T> Signal for ArcMutex<T> where
    T: Signal
[src]

Loading content...