csl::UnitGenerator Class Reference

#include <CSL_Core.h>

Inheritance diagram for csl::UnitGenerator:

csl::AmbisonicUnitGenerator csl::AmbisonicUnitGenerator csl::BlockResizer csl::BlockResizer csl::BufferStream csl::BufferStream csl::DelayLine csl::DelayLine csl::Effect csl::Effect csl::Envelope csl::Envelope csl::GrainPlayer csl::GrainPlayer csl::IFFT csl::IFFT csl::Instrument csl::Instrument csl::KarplusString csl::KarplusString csl::LineSegment csl::LineSegment csl::Lorenz csl::Lorenz csl::Microphone csl::Microphone csl::Mixer csl::Mixer csl::Noise csl::Noise csl::Oscillator csl::Oscillator csl::RemoteStream csl::RemoteStream csl::RingBufferTap csl::RingBufferTap csl::RtpReceiver csl::RtpReceiver csl::SimpleSine csl::SimpleSine csl::SineAsPhased csl::SineAsPhased csl::SineAsScaled csl::SineAsScaled csl::SoundCue csl::SoundCue csl::Spatializer csl::Spatializer csl::SpatialPanner csl::SpatialPanner csl::SpatialSource csl::SpatialSource csl::StaticVariable csl::StaticVariable csl::Window csl::Window

Detailed Description

forward declaration

UnitGenerator -- the core of CSL; all unit generators inherit from this class.

These have members for their sample rate and number of channels, and know their outputs. The main operation is the nextBuffer() method, which is overridden in many of the subclasses.

If more than 1 output is used, these can handle fan-out automatically, either synchronous (as in loops in a graph) or async (as in separate call-back threads). The mOutputCache RingBuffer may hold some large number of past samples, and can use nextBuffer() to do n-way fan-out either synchronously or with differing buffer sizes or callback rates.

UnitGenerator inherits from Model, meaning that it has to send this->changed((void *) dataBuffer) from within its nextBuffer method so that dependent objects (like signal views) can get notification when it computes samples. This mechanism could also be used for signal flow.


The documentation for this class was generated from the following file:
Generated on Sat Oct 17 14:12:36 2009 for CSL by  doxygen 1.4.5-20051010