Wrapper type for the FrameSigT trait to simplify some trait implementations for signals. For
example this allows arithmetic traits like std::ops::Add to be implemented for frame signals.
Wrapper type for the SigT trait to simplify some trait implementations for signals. For
example this allows arithmetic traits like std::ops::Add to be implemented for signals.
A wrapper of a signal which can be shallow-cloned. Use this to split a signal into two copies
of itself without duplicating all the computations that produced the signal. Incurs a small
performance penalty as buffered values must be copied from the underlying signal into each
instance of the shared signal.
A signal with values produced each audio frame. This is distinct from the SigT trait whose
values are produced for each audio sample. Each audio frame corresponds to the sound driver
requesting a buffer of values. This is suitable for signals produced by input events such as a
mouse or computer keyboard, or midi keybeard.
A signal with values produced for each audio sample. Values are produced in batches of a size
determined by the audio driver. This is suitable for audible audio signals or controls signals
that vary at the same rate as an audio signal (e.g. an envelope follower produced by analyzing
an audio signal). Low-frequency signals such as LFOs should still use this type, as their
value still changes smoothly at the audio sample rate despite the signal they represent
typically being below perceptible audio frequencies.