csl::UnitGenerator Class Reference

#include <CSL_Core.h>

Inheritance diagram for csl::UnitGenerator:

csl::AmbisonicUnitGenerator csl::BufferStream csl::DelayLine csl::Effect csl::Effect csl::Envelope csl::Granulator csl::IFFT csl::InOut csl::Instrument csl::KarplusString csl::LineSegment csl::Lorenz csl::Microphone csl::Mixer csl::Mixer csl::Mixer csl::Noise csl::Oscillator csl::Panner csl::RemoteStream csl::RingBuffer csl::RingBufferTap csl::RtpReceiver csl::SimpleSine csl::SineAsPhased csl::SineAsScaled csl::SoundCue csl::SoundFile csl::Spatializer csl::SpatialPanner csl::SpatSource csl::StaticVariable 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 Fri Apr 6 20:18:18 2007 for CSL by  doxygen 1.4.5-20051010