CSL 5.2

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

- Namespace List
- Namespace Members

Classes | Typedefs | Enumerations | Functions
csl Namespace Reference

AdditiveInstrument.h – Sum-of-sines synthesis instrument class. More...

## Classes
class | CSLService
class | Accessor
| The Accessor class has public data members. More...
class | AdditiveInstrument
| AdditiveInstrument. More...
class | VAdditiveInstrument
| VAdditiveInstrument = vector-additive - cross-fade between 2 SOS spectra Envelope mXEnv(dur, pause, xfade, 0.0f) float paus = fRandV(0.5) * dur; float fade = fRandV(dur - paus); AR(float t, float i, float a, float r);. More...
class | FMInstrument
| FMInstrument. More...
class | FancyFMInstrument
| FancyFMInstrument - FM with vibrato (with AR-envelope), attack chiff (filtered noise with AR-envelope), and random freq. drift and ampl. swell envelopes. More...
class | Instrument
| Instrument class (abstract) More...
class | WhiteNoiseInstrument
class | SndFileInstrument
| Sound file player instrument. More...
class | SampleBankInstrument
| Sample bank player instrument. More...
class | AUIO
| General-purpose AudioUnit IO class. More...
class | CAIO
| CoreAudio IO class. More...
class | FileIO
| FileIO.h – IO using a sound file for storing output sample data. More...
class | iPhoneIO
| CoreAudio IO class for the iPhone. More...
class | JackIO
| JackIO is an IO that uses a thread and a timer to call its graph's nextBuffer(); it doesn't do anything with the resulting buffer, but assumes that other objects (observers of the graph) will handle some actual IO. More...
class | JUCEIO
| JUCEIO is an IO that runs as a JUCE. More...
class | Microphone
| Microphone – copies the input buffer (from the sound driver) to its output. More...
class | CMIDIMessage
| CMIDIMessage class (mapped to juce::MidiMessage) More...
class | MIDIIO
| MIDIIO class: superclass of in and out; has a message buffer and current messages It's a model so you can observe it. Uses mMsg.CMIDIMessageType as a status flag. More...
class | MIDIIn
| MIDIIn class is-a MidiInputCallback too, and an "input-ready" flag. More...
class | MIDIOut
| MIDIOut class write msgs out to a device (or file) More...
class | MIDIPlayer
| MIDI stream/file player. More...
class | CSL_MIDIMessage
| CSL_MIDIMessage. More...
class | NullIO
| NullIO is an IO that uses a thread and a timer to call its graph's nextBuffer(); it doesn't do anything with the resulting buffer, but assumes that other objects (observers of the graph) will handle some actual IO. More...
class | StdIO
| StdIO reads/write the UNIX Standard IO pipes. More...
class | PAIO
| The PortAudio IO class. More...
class | RemoteIO
| the RemoteIO class More...
struct | CSL_RS_MSG
class | RemoteStream
| RemoteStream class. More...
class | SoundFileMetadata
| Class SndFileMetadata holds the ID3 tags of a sound file. More...
class | Abst_SoundFile
| Here's the abstract sound file reader/writer class, a sample player UGen. The concrete subclasses represent sound file APIs, not individual formats. More...
class | SoundCue
| SoundCue – a pointer to a segment of a sound file. More...
class | CASoundFile
| CoreAudio sound file. More...
class | JSoundFile
| JUCE sound file. More...
class | LSoundFile
| Here's the sound file reader/writer class; it assumes libSndFile and interleaved sample buffers. More...
class | DecodedFile
| DecodedFile - abstract class for MP3/4/AAC - read-only decoded files Provides a BufferVector for reading files of unknown size. More...
class | MP3File
| MP3File - decodes MP3s into a buffer upon openForRead() More...
class | VSTIO
| VSTIO is an IO that answers the VST processReplacing() call by calling its CSL graph. More...
class | CGestalt
| The CSL system defaults class. More...
class | Model
| The Model/Observable/Subject class; instances of its subclasses should send themselves, this->changed(some_data); on "relevant" state changes; the code they inherit (from Model) manages updating the list of observer/dependent objects in that they each receive update(some_data); and can access the model-passed data (the model might pass "this"). More...
class | Observer
| CSL Observer/Dependent/Monitor class – instances receive update() messages from "models" and handle some argument, which may be the model's "this" pointer, or any other data. More...
class | Buffer
| Buffer – the multi-channel sample buffer class (passed around between generators and IO guys). More...
class | BufferCMap
| BufferCMap is a Sample buffer with channel map and count. The map is so that one can have (e.g.,) a buffer that stands for 3 channels within an 8-channel space. More...
class | UnitGenerator
| forward declaration More...
class | Port
| Port – used to represent constant, control-rate or signal inputs and outputs in named maps; holds a UnitGenerator and its buffer, OR a single floating-point value (in which case the UGen pointer is set to NULL and mPtrIncrement = 0). The nextValue() message is used to get the dynamic or static value. More...
class | Controllable
| Controllable – superclass of the mix-ins that add control or signal inputs. This holds onto a map of port objects that represent the inputs, and manages the naming and processing flow for dynamic inputs. More...
class | Scalable
| Scalable – mix-in class with scale and offset control inputs (may be constants or generators). This uses the mInput map keys CSL_SCALE and CSL_OFFSET. Most actual unit generators inherit this as well as UnitGenerator. We use Controllable as a virtual superclass so that we can mix it in twice (in classes that are also Phased) More...
class | Effect
| Effect – mix-in for classes that have unit generators as inputs (like filters). Note that this always uses a separate buffer for the input. More...
class | Phased
| Phased – a mix-in for objects with phase accumulators (local float) and frequency controls (an input port). This puts an item named CSL_FREQUENCY in the Controllable parent mInputs map. We use Controllable as a virtual superclass so that we can mix it in twice (in classes that are also Scalable) More...
class | Writeable
| Writeable – a mix-in for buffers and streams that one can write to. More...
class | Seekable
| Seekable – a mix-in for positionable streams. More...
class | Cacheable
| Cacheable – a mix-in for caching streams. More...
class | FanOut
| A fan-out generator for DSP graphs with loops This takes a single input, and provides mNumFanOuts outputs; it only calls its input every mNumFanOuts frames. This behavior is now standard on UnitGenerators, using their mOutputs UGenVector (see UnitGenerators::nextBuffer). More...
class | Splitter
| Splitter class – a de-multiplexer for multi-channel signals. More...
class | Joiner
| Joiner class – a multiplexer for multi-channel signals. More...
class | Interleaver
| Interleaver handles copying interleaved sample buffers (like sound files and inter-process sockets) to/from non-interleaved CSL-style Buffer objects. More...
class | IO
| IO – the abstract I/O scheduling class; subclasses interface to specific I/O APIs. An IO object has a graph (a ptr to a UGen), and it registers itself with some call-back API (like PortAudio, CoreAudio, Jack, VST, JUCE), setting up a callback function that in turn calls the nextBuffer() method of its graph root. One creates an IO with the desired rate, block size (optional) I/O device keys, and the number of in and out channels; you then set its root to be your DSP graph and send it start/stop messages. More...
class | IODevice
| IO Device class – a holder for a sound interface with name, id, # IO channels, etc. More...
class | CException
| Base class of CSL exceptions (written upper-case). Has a string message. More...
class | MemoryError
| Malloc failure subclass. More...
class | ValueError
| Wrong kind of operand error. More...
class | TimingError
| Time-out. More...
class | RunTimeError
| Illegal operation at run time. More...
class | LogicError
| Impossible operation. More...
class | DomainError
| Numerical data of wrong type. More...
class | OutOfRangeError
| Data out of range. More...
class | IOError
| IO Error. More...
class | DBError
| DB Error. More...
class | ProcessingError
| Processing Error. More...
struct | testStruct
class | BinaryOp
| BinaryOp – An Effect that takes two input sources (UnitGenerators or scalars) and gives a single UnitGenerator as its output. BinaryOp is an abstract class who's nextBuffer method is to be implemented by subclasses. More...
class | AddOp
| AddOp – A BinaryOp that adds two UnitGenerators or fixed constants together. More...
class | MulOp
| MulOp – A BinaryOp that multiplies two UnitGenerators or fixed constants together, sample-by-sample. More...
class | Clipper
| Clipper class. More...
class | FrequencyAmount
| FrequencyAmount – mix-in class with frequency and amount (BW) control inputs (may be constants or generators). amount (probably 0..1) is a generalised placeholder for bandwidth, resonance or radius, according to filter type or could equally be used as a kind of x,y location in the frequency domain. More...
class | Filter
| Filter: the canonical-form n-pole/m-zero filter class. More...
class | Butter
| Butterworth IIR (2nd order recursive) filter. This operates upon a buffer of frames of amplitude samples by applying the following equation y(n) = a0*x(n) + a1*x(n-1) + a2*x(n-2) - b1*y(n-1) - b2*y(n-2) where x is an amplitude sample. It has constructors that can calculate the coefficients from a given cutoff frequency. More...
class | Formant
| Formant Filter with zeros at +-z and complex conjugate poles at +-omega. setupCoeffs() looks at the member var called normalize; if normalize is true, the filter zeros are placed at z = 1, z = -1, and the coefficients are then normalized to produce a constant unity peak gain. The resulting filter frequency response has a resonance at the given frequency. The closer the poles are to the unit-circle (radius close to one), the narrower the resulting resonance width. More...
class | Notch
| Notch Filter with poles at +-z and complex conjugate zeros at +-omega. More...
class | Allpass
| Allpass Filter with a pole and a zero at equal frequency and straddling the unit circle. Allows all freqs to pass through but messes with phases. Note that the Amount parameter of FrequencyAmount is ignored. More...
class | Moog
| Moog VCF class. More...
class | FilterSpecification
| forward declaration More...
class | FIR
| FIR Filter class. More...
class | Freeverb
| CSL port of the public domain Freeverb reverberator. More...
class | Comb
| Comb filter class. More...
class | FAllpass
| All-pass filter class. More...
class | Stereoverb
class | InOut
| InOut class copies the IO port's input buffer to the output buffer, possibly with channel remap and scaling. More...
class | Mixer
| Mixer – The n-input m-channel mixer class. More...
class | Panner
| The CSL mono-to-stereo L/R panner class. More...
class | NtoMPanner
class | StereoWidth
| Stereo width processor – can mix stereo channels or subtract the sum from each to widen. More...
class | CslRtpSession
class | RtpReceiver
class | RtpSender
class | LineSegment
| A linearly interpolated segment – this has start and end values, and a duration (in seconds). More...
class | Envelope
| Envelope: a collection of LineSegments; may have an input (scale) and act like a processor, or have no input and act like a control UGen. I inherit Scalable setScale, setOffset for inputs. More...
class | ADSR
| ADSR = 4-segment attack/decay/sustain/release envelope class. More...
class | AR
| AR = 3-segment attack/release envelope class. More...
class | Triangle
| Triangle envelope class – equal attack/release times. More...
class | RandEnvelope
| RandEnvelope envelope class – makes random control signals using a single line segment. More...
struct | Grain
| Grain data structure This implementation uses a linked list data structure. You might want to add a few more members to this for flexibility. More...
class | GrainCloud
| GrainCloud – routine for playing clouds under GUI control. This could be called a cloud or a stream. You could also add a few more variables to make more flexible clouds. More...
class | GrainPlayer
| GrainPlayer – low-level granular synthesis generator, uses a list of current grains. More...
class | KarplusString
| KarplusString – string model class. More...
class | Lorenz
| Lorenz chaotic oscillator = this plays one variable of the Lorenz Strange Attractor between +1 and -1. More...
class | Noise
| Abstract Noise class - inherits from UnitGenerator & Scalable, and provides constructors and basic pseudo-raondom methods. More...
class | WhiteNoise
| White noise – equal power per frequency. More...
class | PinkNoise
| Pink noise – equal power per octave. More...
class | WaveShaper
| WaveShaper – Wave-shaping oscillator class. More...
class | Oscillator
| Oscillator – Abstract oscillator class; inherits from UnitGenerator, Phased, and Scalable and provides convenience constructors (freq, ampl, offset, phase) More...
class | WavetableOscillator
| WavetableOscillator – Oscillator with a stored wave table that does table look-up. The default wave table is an 8192-sample sine. (perhaps accept a vector of freqs and a multichannel buffer?) More...
class | CompOrCacheOscillator
| CompOrCacheOscillator – Abstract oscillator class for those who can compute of cache their wavetables. More...
class | Sine
| Sine – oscillator class (this computes the sine fcn on the fly) More...
class | FSine
| FSine – (uses a ringing filter for the sine calc) More...
class | Sawtooth
| Sawtooth oscillator class (non-band-limited) More...
class | Square
| Square oscillator class (non-band-limited) More...
class | Impulse
| Impulse – oscillator class (this create a single impulse delayed by 'delay' samples) More...
struct | Partial
| Struct for partial overtones. More...
class | SumOfSines
class | SquareBL
| Band-limited square, impulse, and triangle waveform oscillators. More...
class | SHARCSpectrum
| SHARC spectrum class. More...
class | SHARCInstrument
| SHARC instrument class. More...
class | SHARCLibrary
| SHARC library class. More...
class | SimpleSine
| SimpleSine – The simplest CSL sine oscillator class. More...
class | SineAsPhased
| SineAsPhased – A sine oscillator that uses the Phased mix-in class, meaning that we inherit mFrequency and mPhase and macros for dynamic control. More...
class | SineAsScaled
| SineAsScaled – A sine oscillator that also has scale and offset as dynamic controls (from Scalable) (Note the tripple inheritance) More...
class | FFT
| Forward FFT unit generator is an Effect because it handles an input It puts spectral frames in the output buffer and then broadcasts a change message, so clients are expected to observe it. More...
class | IFFT
| Inverse FFT. More...
class | Window
| Window; The superclass of all other window function classes in CSL. Subclasses need only to implement the fillWindow(); and the Constructors. More...
class | RectangularWindow
| RectangularWindow:A rectangular window has all values set to the Gain value, or by default to 1. More...
class | TriangularWindow
| TriangularWindow:A triangularWindow window. More...
class | HammingWindow
| HammingWindow: Belongs to the familly of cosine window functions. More...
class | HannWindow
| HannWindow. More...
class | BlackmanWindow
| BlackmanWindow. More...
class | BlackmanHarrisWindow
| BlackmanHarrisWindow. More...
class | WelchWindow
| WelchWindow: This is basically an equal-power curve. More...
class | AmbisonicOrder
| Ambisonic order structure (separate definition for horizontal and vertical order): More...
class | AmbisonicUnitGenerator
| Ambisonic Abstract Base Class. More...
class | AmbisonicEncoder
class | AmbisonicDecoder
class | AmbisonicPanner
| Ambisonic Panner Wraps around the different ambisonic classes, providing a single interface for encoding, manipulating and decoding (i.e. panning) multiple UnitGenerators. More...
class | AmbisonicMixer
class | AmbisonicRotator
class | BinauralPanner
| forward declaration More...
class | BinauralSourceCache
| BinauralSourceCache: used for caching previous state of spatial sources. This has the history of input FFTs and the last output sample block for OLA. More...
class | HRTF
| HRTF: holds the data that corresponds to an HRTF for a single position. It has a list of complex buffers for the FFTs of the HRIR, typically 16 blocks of 512 each for an 8k HRTF. This version knows how to parse the IRCAM hrtfs sets Subclasses could load different HRTF sets (e.g., CIPIC). More...
class | HRTFDatabase
| HRTFDatabase: has a vector of HRTFs and can access them by position – hrtfAt(CPoint) – or by index – hrtfAt(unsigned). Implemented as a Singleton because it's large (typ 188 HRTFs, 25 MB). Create it with a folder/resource name, it reads "files.txt" for a list of HRIR files to load. This has a number of file/folder/DB IO methods for load/store of bulk HRTF data sets in IRCAM format and CSL's pre-processed HRTF.dat files. More...
class | DistanceSimulator
| Only handles single sound sources because objects have different positions. Two objects can't ocuppy the same position, and usually distance cues go before the panning, so handling multiple sources by one Distance simulator, would producde a multi-channel object, where the positions aren't dynamic anymore. More...
class | DistanceCue
| Pure Abstract Base Class for all distance cues. A DistanceCue subclass is just an algorithm that modifies a signal based on the distance from the listener. Distance Cues should hold their state, so when "process" is called they can modify the signal buffer given. When "compute" is called is usually due to a change in distance, so if anything has to be re-calculated, it's done. More...
class | IntensityAttenuationCue
| Sound attenuation due to increasing distance. This "Base" Class uses the inverse square law. Subclass for other methods. More...
class | AirAbsorptionCue
| Simulates the frequency dependent air absorption using a one pole/zero lowpass filter. More...
class | ShoeBox
class | SimplePanner
| Simple Panner. More...
class | Spatializer
| Container class that simplifies the spatial audio interface. This layer hides most of the inner-working of audio spatialization, providing a simple interface for sound placement in a space. More...
class | Auralizer
class | SpeakerLayoutExpert
class | SpatialPanner
| Base class for all panners. Handles source management and holds a speaker layout. More...
class | SpatialSource
| Temp Spatial Sound Source. More...
class | SpeakerLayout
class | StereoSpeakerLayout
| Standard "Stereo Speaker Layout", where two speakers are positioned 30¼ left, 30¼ right and no elevation (0¼). More...
class | HeadphoneSpeakerLayout
| "Headphone Layout", where two phones are positioned 90¼ left, 90¼ right and no elevation (0¼). More...
class | Speaker
| Represents a speaker as a position relative to the center of a space. More...
class | DelayLine
class | DLine
class | VBAP
| Vector Base Amplitude Panning. More...
class | StereoPanner
| Simple Stereo Panner. More...
class | SurroundPanner
| Generic Panner for most surround formats. It accepts any number of speakers around the horizontal plane, and a subwoofer (.1 or not) More...
class | VBAPSourceCache
class | SpeakerSet
| Groups two or three loudspeakers, and their inverse. Used for VBAP computations. More...
class | SpeakerSetLayout
class | BlockResizer
| Regularizes the amount of data called for. This is useful for time-frequency transformations that only work with certain buffer sizes. More...
class | CPoint
class | Abst_FFT_W
| Abstract FFT class can do forward/reverse real/complex I/O FFTs. More...
class | RingBufferTap
| RingBufferTap is a reader that loops over a buffer. More...
class | RingBuffer
| RingBuffer is the storage + a default reader. More...
class | BufferStream
| Class to simplify writing into and playing back buffers. Think of this as a simple buffer that has a seek, read and write calls built-in. More...
class | CThread
| The abstract CSL Thread class. More...
class | Synch
| Sync is a cross-thread synchronization object. More...
class | SynchPthread
| PThread version of Sync. More...
class | ThreadPthread
| PThread version of Thread. More...
class | CVariable
| CVariable is the the abstract external variable (plug or port) class. This is the abstract class for static and dynamic variables; it's a sample stream. Clients of Variable (oscillators, dsp units, etc) first ask whether its values are fixed over the length of the buffer or not. If the value is fixed, the client calls next_sample() to get the next sample and use it the DSP loop. If the value is not fixed, the client calls next_buffer() to get the next buffer of values. More...
class | StaticVariable
| StaticVariable – he static external variable (plug) class. This is a kind of variable that holds onto floating-point value that is fixed each control rate period (e.g., changes at most once per control rate). More...
class | DynamicVariable
| The DynamicVariable class is a changing variable that can perform an operation (e.g., scaling) on another unit generator. More...

## Typedefs
typedef vector< Accessor * > | AccessorVector
| Typedef for AccessorVector object.
typedef void *(* | THREAD_START_ROUTINE )(void *)
typedef int | SoundFileMode
typedef int | SoundFileFormat
typedef std::vector< Observer * > | ObserverVector
| Forward declaration.
typedef float | sample
| < All of CSL takes place within the "csl" namespace
typedef float | Sample
| (could be changed to int)
typedef sample * | SampleBuffer
| 1-channel buffer data type, vector of (sample)
typedef SampleBuffer * | SampleBufferVector
| Multi-channel buffer data type, vector of (SampleBuffer)
typedef SampleBuffer * | SampleBufferArray
| Multi-channel buffer data type.
typedef sample | SampleComplex [2]
| array-of-2 complex # type (like FFTW)
typedef SampleComplex * | SampleComplexVector
| complex vector
typedef SampleComplex * | SampleComplexPtr
| complex pointer
typedef std::vector< CPoint * > | PointVector
| Forward declaration.
typedef std::vector< unsigned > | UnsignedVector
| A vector of unsigneds.
typedef void * | VoidFcnPtr (void *arg)
| the generic void fcn pointer
typedef void | VoidFcnPtrN (void)
| the truly void fcn pointer
typedef unsigned | CSL_MAP_KEY
| Forward declaration.
typedef std::map< CSL_MAP_KEY, Port * > | PortMap
typedef std::vector< Buffer * > | BufferVector
| Buffer/UGenVector: unit generator pointers (used for outputs)
typedef std::vector < UnitGenerator * > | UGenVector
typedef std::map< std::string, UnitGenerator * > | UGenMap
| UGenMap: a named map of unit generators (used for GUIs)
typedef std::map< unsigned, UnitGenerator * > | UGenIMap
typedef std::map< unsigned, float > | FloatMap
typedef std::vector< float > | FloatVector
typedef std::vector< IODevice * > | IODeviceVector
| IOs hold onto device vectors.
typedef std::vector< Instrument * > | InstrumentVector
| Players hold onto Instrument vectors/maps.
typedef std::map< int, InstrumentVector > | InstrumentLibrary
typedef std::map< std::string, Instrument * > | InstrumentMap
typedef std::map< std::string, std::string > | StringMap
typedef unsigned long | Timestamp
| Timestamp type: we assume that we can get the host's best guess at the IO word clock (normally passed into the audio IO callback function). call timeNow() to get the time We also support float-time in fTimeNow()
typedef int | ButterworthType
typedef int | InOutFlags
typedef int | LineMode
typedef map< float, LineSegment * > | Breakpoints
| a map between a time and a line segment
typedef struct csl::Grain | Grain
| Grain data structure This implementation uses a linked list data structure. You might want to add a few more members to this for flexibility.
typedef int | InterpolationPolicy
typedef int | PartialDescriptionMode
typedef vector< HRTF * > | HRTFVector
typedef int | PointMode
typedef int | VOperator

## Enumerations
enum | { kNumParameters = 16, kThresh = 0, kWindowSize, kNumBins, kOut, kNumParams }
enum | CMIDIMessageType { kNone = 0, kNoteOff = 8, kNoteOn = 9, kPolyTouch = 10, kControlChange = 11, kProgramChange = 12, kAftertouch = 13, kPitchWheel = 14, kSysEX = 15 }
| CMIDIMessageType enum of midi msg categories. More...
enum | CSL_MIDIMessageType { kNone = 0, kNoteOff = 8, kNoteOn = 9, kPolyTouch = 10, kControlChange = 11, kProgramChange = 12, kAftertouch = 13, kPitchWheel = 14, kSysEX = 15 }
| CSL_MIDIMessageType. More...
enum | LogLevel { kLogInfo, kLogWarning, kLogError, kLogFatal }
| Logging functions are standard C functions. More...
enum | BufferContentType { kSamples, kSpectra, kLPCCoeff, kIRData, kWavelet, kGeometry, kUnknown }
| Sample buffer contents type (optional) One could argue that we should use subclasses for this, but they're not behaviorally different at present. More...
enum | BufferCopyPolicy { kCopy, kExpand, kIgnore }
| UnitGenerator buffer copy policy flags (for multi-channel expansion) More...
enum | SeekPosition { kPositionStart, kPositionCurrent, kPositionEnd }
| Enumeration for seek flags. More...
enum | IO_Status { kIONew, kIOInit, kIOOpen, kIORunning, kIOClosed, kIOExit }
| IO Status flag. More...
enum | Status { kOk, kFound, kNotFound, kEmpty, kErr }
| CSL status flags (for return values) More...
enum | ClipperFlags { kMin, kMax, kBoth }
| Whether to clip using the minimum, maximum or both values. More...
enum | RtpBufferState { kNormal = 0, kBuffering, kOverflow, kUnderrun, kInactive, kNumStates }
| Enumeration to define the possible states of our internal RingBuffer. More...
enum | GrainulatorState { kFree, kDSP, kSched }
| This flag is for the app state, so that we don't change the grain lists while calculating samples. More...
enum | AmbisonicDecoderMethod { kPSEUDOINVERSE = 0, kPROJECTION }
| Flag for the decoding method. More...
enum | AmbisonicDecoderFlavour { kBASIC = 0, kINPHASE, kMAXRE }
| Flag for the decoder flavour. More...
enum | Axes { kTILT = 0, kTUMBLE, kROTATE }
enum | { kMarble = 0, kConcrete, kBrick, kGlass, kWood }
enum | PannerType { kAutomatic = 0, kBinaural, kVBAP, kAmbisonic, kSimple, kWFS }
| Panner types. More...
enum | InterpType { kTruncate, kLinear, kAllPass }
enum | VBAPMode { kAuto = 0, kPantophonic = 2, kPeriphonic = 3 }
| VBAP types. More...
enum | CSL_FFTType { CSL_FFT_REAL = 0, CSL_FFT_COMPLEX, CSL_FFT_MAGPHASE }
| real/complex flag (determines results from forward FFT) More...
enum | CSL_FFTDir { CSL_FFT_FORWARD = 0, CSL_FFT_INVERSE }
| forward/reverse flag (determines FFT direction) More...

## Functions
void | copy_CSL_MIDIMessage (CSL_MIDIMessage *source, CSL_MIDIMessage *dest)
| copy_CSL_MIDIMessage – copies CSL_MIDIMessage
void | CSL_MIDIMessageToPmEvent (CSL_MIDIMessage *cslMIDI, PmEvent *event)
| CSL_MIDIMessageToPmEvent – converts CSL_MIDIMessage to PmEvent.
void | PmEventToCSL_MIDIMessage (PmEvent *event, CSL_MIDIMessage *cslMIDI)
| PmEventToCSL_MIDIMessage – converts PmEvent to CSL_MIDIMessage.
unsigned | Message_ChannelToStatus (CSL_MIDIMessageType message, unsigned channel)
| Message_ChannelToStatus – converts from message and channel to status byte.
void * | RemoteIO_read_loop (void *inst)
void * | RS_read_loop (void *inst)
int | CSL_CreateThread (THREAD_START_ROUTINE pfnThreadProc, void *pvParam)
void | logMsg (const char *format,...)
| These are the public logging messages.
void | logMsg (LogLevel level, const char *format,...)
| Log the file & line #.
void | logLine ()
| Log the file & line #.
void | logURL ()
| log file/line as a URL
void | vlogMsg (const char *format, va_list args)
void | vlogMsg (LogLevel level, const char *format, va_list args)
bool | sleepUsec (float dur)
| Misc. global functions in the csl namespace.
bool | sleepMsec (float dur)
bool | sleepSec (float dur)
Timestamp | timeNow ()
| high-accuracy system or IO time in ticks
float | fTimeNow ()
| system or IO time in seconds
float | fRandZ (void)
| A variety of useful random-number functions.
float | fRand1 (void)
| -1 - 1 (one)
float | fRandV (float val)
| 0 - v (val)
float | fRandM (float minV, float maxV)
| min - max (min/max)
float | fRandR (float base, float range)
| b +- (r * b) (range)
float | fRandB (float base, float range)
| b +- r (base)
int | iRandV (int val)
| Integer rands.
int | iRandM (int minV, int maxV)
| min - max (min/max)
int | iRandB (int base, int range)
| b +- r (base)
bool | coin ()
| Answer true or false.
bool | coin (float bias)
| Answer with a bias (1 –> always true)
float | keyToFreq (unsigned midiKey)
| MIDI Conversions.
unsigned | freqToKey (float frequency)
| freqToKey – converts from frequency in Hz to MIDI key #
void * | RTP_read_loop (void *inst)
void | singularValueDecomposition (sample **a, int m, int n, sample *w, sample **v)
| Utility function used in calculating the inverse of a matrix, used in AmbisonicDecoder for the pseudoinverse method.
void | fumaEncodingWeights (SampleBuffer weights, const AmbisonicOrder &order, sample azimuth, sample elevation)
| Utility function that calculates fuma encoding weights for a given order, azimuth and elevation.
void | fumaIndexedEncodingWeights (SampleBuffer weights, const AmbisonicOrder &order, sample &azimuth, sample &elevation)
| Utility function that calculates fuma encoding weights for a given order, azimuth and elevation.

## Detailed Description

AdditiveInstrument.h – Sum-of-sines synthesis instrument class.

FFT_Wrapper.h – wrapper class for FFTs that hides implementation details This class can be used with FFTW, FFTReal, or other FFT implementations. It assumes real-values float vectors as input to the FFT, and can deliver real or complex results in several formats (complex #s or mag/phase). The IFFT assumes complex input and delivers real-valued output.

BlockResizer.h – Regularizes the amount of data called for, meaning that different parts of a graph can run at different callback block sizes. This is useful for time-frequency transformations that only work with fixed buffer sizes. A BlockResizer either caches large blocks between multiple smaller callbacks, or it calls a smaller-block-size graph several times per larger-sized downstream callbacks. BlockResizer works for up-block and down-block situations. This version also handles multi-channel mapping, so you can use a mono input and ask it for multi-channel output; it will copy.

Window.h – specification of the various function window classes See the copyright notice and acknowledgment of authors in the file COPYRIGHT.

Lorenz.h – Header file for the Lorenz chaotic oscillator See the copyright notice and acknowledgment of authors in the file COPYRIGHT.

Envelope.h – The basic (concrete) CSL breakpoint envelope classes. See the copyright notice and acknowledgment of authors in the file COPYRIGHT.

CslRTPSession.h – Contains a subclass of RTPSession, which is the core of RTP.

Mixer.h – The multi-channel panner and mixer classes. See the copyright notice and acknowledgment of authors in the file COPYRIGHT.

FIR.h – CSL filter specification and FIR filter classes See the copyright notice and acknowledgment of authors in the file COPYRIGHT.

BinaryOp.h – The specification file for simple arithmetic operations on UnitGenerators. See the copyright notice and acknowledgment of authors in the file COPYRIGHT.

< we use the STL vector, map, and string classes

CSL_Exceptions.h – the CSL Exception classes (specifications + implementations)

CSL_Core.h – the specification file for the core classes of CSL version 5.

CGestalt.h – the CSL 5.0 CGestalt (system utility) class specification, system constants, logging, and utility methods; SAFE_MALLOC/SAFE_FREE macros The logging system has a number of print methods that use the printf var-args format and can be filtered on verbosity. There's a variety of random-number functions. The timer sleep methods are interruptable with a global flag.

SoundFileMP3.h – concrete sound file class using libMAD for mp3 and libFAAD for mp4.

SoundFileJ.h – CSL's concrete sound file class using JUCE.

SoundFileCA.h – CSL's concrete sound file class for CoreAudio files Note: this is experimental and incomplete as of CSL 5.0.

SoundFile.h – CSL's abstract sound file class, a sample player UGen, SoundCue & SoundFileBuffer. The concrete subclasses represent sound file APIs, not individual formats.

MIDIIOJ.h – MIDI IO using JUCE.

Microphone.h – CSL class that copies the input buffer (from the sound driver) to its output See the copyright notice and acknowledgment of authors in the file COPYRIGHT.

SndFileInstrument.h – Sound file player instrument class See the copyright notice and acknowledgment of authors in the file COPYRIGHT.

BasicFMInstrument.h – Simple and fancy FM example instrument classes. See the copyright notice and acknowledgment of authors in the file COPYRIGHT.

See the copyright notice and acknowledgment of authors in the file COPYRIGHT

Accessors "du", set_duration_f "am", set_amplitude_f "fr", set_freq_f "po", set_position_f "aa", set_attack_f – amplitude envelope ADSR "ad", set_decay_f "as", set_sustain_f "re", set_release_f "pt", set_partial_f "ps", set_partials_f

OSC note formats (4 or 8 arguments): dur, ampl, c_fr, pos dur, ampl, c_fr, pos, att, dec, sus, rel

This instrument implements single-operator FM with ADSR envelopes for the amplitude and modulation index envelopes; it provides 13 parameter accessors for use by OSC.

Accessors "du", set_duration_f "am", set_amplitude_f "in", set_index_f "cf", set_c_freq_f "mf", set_m_freq_f "po", set_position_f "aa", set_attack_f – amplitude envelope ADSR "ad", set_decay_f "as", set_sustain_f "ar", set_release_f "ia", set_iattack_f – mod. index envelope ADSR "id", set_idecay_f "is", set_isustain_f "ir", set_irelease_f

OSC note formats (6 or 14 arguments): dur, ampl, c_fr, m_fr, ind, pos dur, ampl, c_fr, m_fr, ind, pos, att, dec, sus, rel, i_att, i_dec, i_sus, i_rel

This instrument implements sound file playback with a basic A/R envelope and panning; it provides 4 parameter accessors for use by OSC.

Accessors "am", set_amplitude_f "ra", set_rate_f "po", set_position_f "fi", set_file_f "st", set_start_f "en", set_stop_f "at", set_attack_f "de", set_decay_f

OSC note formats (6 or 14 arguments): ampl, pos ampl, pos, rate ampl, pos, start, stop ampl, pos, rate, start, stop ampl, pos, start, stop, attack, decay ampl, pos, rate, start, stop, attack, decay

See the copyright notice and acknowledgment of authors in the file COPYRIGHT

Classes: SoundFileMetadata, Abst_SoundFile, SoundCue, SoundFileBuffer (unfinished) We read ID3-style tags from MP4/3, AAC, FLAC, etc. files using TagLib, http://developer.kde.org/~wheeler/taglib.html

The sound file player is actually a powerful sampler, supporting arbitrary transposition using wavetable interpolation or a sample rate convertor; Sound files are seekable and also writeable.

See the copyright notice and acknowledgment of authors in the file COPYRIGHT

See the copyright notice and acknowledgment of authors in the file COPYRIGHT

These classes load their target file into a buffer on openForRead(). There is no MP3/4 writing (encoding) at present.

The MVC Observer/Subject or dependency pattern classes are also here.

See the copyright notice and acknowledgment of authors in the file COPYRIGHT

See the copyright notice and acknowledgment of authors in the file COPYRIGHT

What's here:

Core Classes Buffer – the multi-channel sample buffer class (passed around between generators and IO guys) BufferCMap – a sample buffer with channel map and count (used for many-channel processing) Port – used to represent signal and control inputs and outputs in named maps; holds a UnitGenerator and its buffer UnitGenerator – an object that can fill a buffer with samples, the central abstraction of CSL DSP

Mix-in classes (added to UnitGenerator) Controllable – superclass of the mix-ins that add control or signal inputs (held in maps) Effect – A (controllable) UnitGenerator subclass that process an input port (e.g., filters, panners). All effects inherit from me. Scalable – A (controllable) mix-in that adds scale (multiplicative) and offset (additive) inputs (used by most common UGens) Phased – a (controllable) mix-in for generators with frequency inputs and persistent phase accumulators All of these mix-in classes add macros for handling their special named control ports, as in DECLARE_PHASED_CONTROLS, LOAD_PHASED_CONTROLS, and UPDATE_PHASED_CONTROLS Writeable – a mix-in for generators that one can write into a buffer on Seekable – a mix-in for generators that one can position (seek) as a stream Cacheable – a mix-in for generators that can cache their past output values (of any size)

Channel/Buffer processing FanOut – 1-in n-out fan-out object (now built in to UnitGenerator) Splitter – splits a stream into multiple 1-channel outputs Joiner – joins multiple 1-channel inputs into a single stream Interleaver – general inderleaver/de-interleaver

I/O IO – the input/output stream/driver, its utility functions and virtual constructors IODevice – a holder for a sound interface with name, id, # IO channels, etc.

Exception classes

Status - enumerated return flag type CException - Base class of CSL exceptions (written upper-case). MemoryError - Malloc failure subclass Wrong kind of operand error TimingError - Time-out RunTimeError - Illegal operation at run time LogicError - Impossible operation DomainError - Numerical data of wrong type OutOfRangeError - Data out of range IOError - IO Error

See the copyright notice and acknowledgment of authors in the file COPYRIGHT

What's here:

BinaryOp – an abstract class that specific binary operators (add, mul, etc.) inherit from) AddOp – Adds two UnitGenerators (or a UnitGenerator and a scalar) together MulOp – Multiplies two UnitGenerators (or a UnitGenerator and a scalar) together

The FilterSpecification uses the Parks-McClellan/Remez iterative algorithm The FIR implementation is based on a minimal version written for the MAT 240B course; it does not use the CSL RingBuffer helper class.

What's here:

CslRtpSession: Adds functionality for handling RTP packets sent by the server.

TODO: Need to unify the client/server main programs into one, so that the user has the option of either transmitting data or listening to a port. Also need to extend functionality so that the client specifies the server to listen to, rather than the server adding clients manually. We also need to write some methods to access the ring buffer, rather than through direct access.

These are UnitGenerators that represent arbitrarily long breakpoint functions and do linear interpolation between their breakpoints. There are several kinds of constructors, e.g., using breakpoint objects or x/y value pairs, and one can scale the values or times of an existing envelope.

Classes: LineSegment: A linearly interpolated segment with start and end values, and a duration (in seconds). Envelope: a collection of LineSegments; may have an input and act like an effect, or have no input and act like a control UnitGenerator Specific kinds of envelope (AR, ADSR, Triangle) and RandomEnvelope

Helper class for other classes that need a signal to be windowed. For example, to perform an FFT usually is better to apply a window function to the signal to get beter results. Usage (two ways to be used): a) Instantiate a window object (for example Window myWindow(512, 1);) and then call the window() function to get a pointer to the window buffer. or... b) call the nextBuffer on the window, so it fills a buffer with itself, wraping around if the buffer passed is larger.

The size should be specified in samples.

TODO: a) Add more window types.

Todo:
  Make a position object (possibly inherits from CPoint) that keeps both polar and cartesian values.

    The API is minimal, with a constructor method and the work-horse
    nextBuffer(Buffer & in, Buffer & out) method doing a single FFT or IFFT

    This file includes both the abstract wrapper, and the 3 standard concrete subclasses.
    Compile this with one of the API flags defined in the compiler (-DUSE_FFTW), or define it below.
    There are 3 standard concrete subclasses:
        RealFFT (RealFFT code included in CSL), and
        FFTW (assumes fftw3f is installed),
        KISS FFT, built-in FFT from Laurent de Soras (included, untested).

See the copyright notice and acknowledgment of authors in the file COPYRIGHT

## Typedef Documentation

typedef vector<Accessor *> csl::AccessorVector

Typedef for AccessorVector object.

Definition at line 39 of file Accessor.h.

typedef void *(* csl::THREAD_START_ROUTINE)(void *)

Definition at line 93 of file RemoteStream.h.

typedef int csl::SoundFileMode

Definition at line 57 of file SoundFile.h.

typedef int csl::SoundFileFormat

Definition at line 65 of file SoundFile.h.

typedef std::vector<Observer *> csl::ObserverVector

Forward declaration.

Definition at line 234 of file CGestalt.h.

typedef float csl::sample

< All of CSL takes place within the "csl" namespace

< short-hand for the base sample type

Definition at line 180 of file CSL_Types.h.

typedef float csl::Sample

(could be changed to int)

the same, written upper-case

Definition at line 181 of file CSL_Types.h.

typedef sample* csl::SampleBuffer

1-channel buffer data type, vector of (sample)

Definition at line 183 of file CSL_Types.h.

typedef SampleBuffer* csl::SampleBufferVector

Multi-channel buffer data type, vector of (SampleBuffer)

Definition at line 184 of file CSL_Types.h.

typedef SampleBuffer* csl::SampleBufferArray

Multi-channel buffer data type.

Definition at line 185 of file CSL_Types.h.

typedef sample csl::SampleComplex[2]

array-of-2 complex # type (like FFTW)

Definition at line 187 of file CSL_Types.h.

typedef SampleComplex* csl::SampleComplexVector

complex vector

Definition at line 197 of file CSL_Types.h.

typedef SampleComplex* csl::SampleComplexPtr

complex pointer

Definition at line 198 of file CSL_Types.h.

typedef std::vector<CPoint *> csl::PointVector

Forward declaration.

A vector of points

Definition at line 200 of file CSL_Types.h.

typedef std::vector<unsigned> csl::UnsignedVector

A vector of unsigneds.

Definition at line 203 of file CSL_Types.h.

typedef void* csl::VoidFcnPtr(void *arg)

the generic void fcn pointer

Definition at line 205 of file CSL_Types.h.

typedef void csl::VoidFcnPtrN(void)

the truly void fcn pointer

Definition at line 206 of file CSL_Types.h.

typedef unsigned csl::CSL_MAP_KEY

Forward declaration.

the type I use for map keys (could also be a string) PortMap: a map between a name/key and a port object (used for control and audio inputs)

Definition at line 215 of file CSL_Types.h.

typedef std::map<CSL_MAP_KEY, Port *> csl::PortMap

Definition at line 220 of file CSL_Types.h.

typedef std::vector<Buffer *> csl::BufferVector

Buffer/UGenVector: unit generator pointers (used for outputs)

Definition at line 222 of file CSL_Types.h.

typedef std::vector<UnitGenerator *> csl::UGenVector

Definition at line 223 of file CSL_Types.h.

typedef std::map<std::string, UnitGenerator *> csl::UGenMap

UGenMap: a named map of unit generators (used for GUIs)

Definition at line 225 of file CSL_Types.h.

typedef std::map<unsigned, UnitGenerator *> csl::UGenIMap

Definition at line 227 of file CSL_Types.h.

typedef std::map<unsigned, float> csl::FloatMap

Definition at line 228 of file CSL_Types.h.

typedef std::vector<float> csl::FloatVector

Definition at line 229 of file CSL_Types.h.

typedef std::vector<IODevice *> csl::IODeviceVector

IOs hold onto device vectors.

Definition at line 231 of file CSL_Types.h.

typedef std::vector<Instrument *> csl::InstrumentVector

Players hold onto Instrument vectors/maps.

Definition at line 233 of file CSL_Types.h.

typedef std::map<int, InstrumentVector> csl::InstrumentLibrary

Definition at line 234 of file CSL_Types.h.

typedef std::map<std::string, Instrument *> csl::InstrumentMap

Definition at line 235 of file CSL_Types.h.

typedef std::map<std::string, std::string> csl::StringMap

Definition at line 237 of file CSL_Types.h.

typedef unsigned long csl::Timestamp

Timestamp type: we assume that we can get the host's best guess at the IO word clock (normally passed into the audio IO callback function). call timeNow() to get the time We also support float-time in fTimeNow()

Definition at line 243 of file CSL_Types.h.

typedef int csl::ButterworthType

Definition at line 51 of file Filters.h.

typedef int csl::InOutFlags

Definition at line 30 of file InOut.h.

typedef int csl::LineMode

Definition at line 38 of file Envelope.h.

typedef map<float, LineSegment *> csl::Breakpoints

a map between a time and a line segment

Definition at line 82 of file Envelope.h.

typedef struct csl::Grain csl::Grain

Grain data structure This implementation uses a linked list data structure. You might want to add a few more members to this for flexibility.

typedef int csl::InterpolationPolicy

Definition at line 57 of file Oscillator.h.

typedef int csl::PartialDescriptionMode

Definition at line 184 of file Oscillator.h.

typedef vector<HRTF *> csl::HRTFVector

Definition at line 117 of file BinauralDB.h.

typedef int csl::PointMode

Definition at line 32 of file CPoint.h.

typedef int csl::VOperator

Definition at line 84 of file Variable.h.

## Enumeration Type Documentation

anonymous enum

Enumerator:

  kNumParameters |
  kThresh |
  kWindowSize |
  kNumBins |
  kOut |
  kNumParams |

Definition at line 14 of file WhiteNoiseInstrument.h.

enum csl::CMIDIMessageType

CMIDIMessageType enum of midi msg categories.

Enumerator:

  kNone |
  kNoteOff |
  kNoteOn |
  kPolyTouch |
  kControlChange |
  kProgramChange |
  kAftertouch |
  kPitchWheel |
  kSysEX |

Definition at line 26 of file MIDIIOJ.h.

enum csl::CSL_MIDIMessageType

CSL_MIDIMessageType.

Enumerator:

  kNone |
  kNoteOff |
  kNoteOn |
  kPolyTouch |
  kControlChange |
  kProgramChange |
  kAftertouch |
  kPitchWheel |
  kSysEX |

Definition at line 48 of file MIDIIOP.h.

enum csl::LogLevel

Logging functions are standard C functions.

Enumerator:

  kLogInfo | Enumeration for log message severity level. you can filter on this.
  kLogWarning |
  kLogError |
  kLogFatal |

Definition at line 144 of file CGestalt.h.

enum csl::BufferContentType

Sample buffer contents type (optional) One could argue that we should use subclasses for this, but they're not behaviorally different at present.

Enumerator:

  kSamples | Regular audio samples.
  kSpectra | FFT complex spectral frames.
  kLPCCoeff | LPC reflection coefficients.
  kIRData | FIR Impulse Response frames.
  kWavelet | Wavelet coefficients.
  kGeometry | Spatial geometry buffers.
  kUnknown | Unknown or other data type.

Definition at line 54 of file CSL_Core.h.

enum csl::BufferCopyPolicy

UnitGenerator buffer copy policy flags (for multi-channel expansion)

Enumerator:

  kCopy | compute 1 channel and copy
  kExpand | call monoNextBuffer multiple times
  kIgnore | ignore extra buffer channels

Definition at line 186 of file CSL_Core.h.

enum csl::SeekPosition

Enumeration for seek flags.

Enumerator:

  kPositionStart |
  kPositionCurrent |
  kPositionEnd |

Definition at line 528 of file CSL_Core.h.

enum csl::IO_Status

IO Status flag.

Enumerator:

  kIONew |
  kIOInit |
  kIOOpen |
  kIORunning |
  kIOClosed |
  kIOExit |

Definition at line 686 of file CSL_Core.h.

enum csl::Status

CSL status flags (for return values)

Enumerator:

  kOk | "OK" return status
  kFound | "found" return status
  kNotFound | "not found" return status
  kEmpty | "empty" return status
  kErr | "error" return status

Definition at line 34 of file CSL_Exceptions.h.

enum csl::ClipperFlags

Whether to clip using the minimum, maximum or both values.

Enumerator:

  kMin |
  kMax |
  kBoth |

Definition at line 15 of file Clipper.h.

enum csl::RtpBufferState

Enumeration to define the possible states of our internal RingBuffer.

Enumerator:

  kNormal |
  kBuffering |
  kOverflow |
  kUnderrun |
  kInactive |
  kNumStates |

Definition at line 41 of file CslRtpSession.h.

enum csl::GrainulatorState

This flag is for the app state, so that we don't change the grain lists while calculating samples.

Enumerator:

  kFree | free state
  kDSP | calculating audio samples
  kSched | scheduling grains

Definition at line 37 of file Granulator.h.

enum csl::AmbisonicDecoderMethod

Flag for the decoding method.

Enumerator:

  kPSEUDOINVERSE |
  kPROJECTION |

Definition at line 146 of file Ambisonic.h.

enum csl::AmbisonicDecoderFlavour

Flag for the decoder flavour.

Enumerator:

  kBASIC |
  kINPHASE |
  kMAXRE |

Definition at line 153 of file Ambisonic.h.

enum csl::Axes

Enumerator:

  kTILT |
  kTUMBLE |
  kROTATE |

Definition at line 67 of file AmbisonicUtilities.h.

anonymous enum

Enumerator:

  kMarble |
  kConcrete |
  kBrick |
  kGlass |
  kWood |

Definition at line 17 of file ShoeBox.h.

enum csl::PannerType

Panner types.

Enumerator:

  kAutomatic |
  kBinaural | HRTF 2-channel panning.
  kVBAP | Vector Base Amplitude Panning.
  kAmbisonic | Full 3D Ambisonics.
  kSimple | Simple panning/filtering spatializer.
  kWFS | Wave Field Synthesis.

Definition at line 18 of file SpatialAudio.h.

enum csl::InterpType

Enumerator:

  kTruncate |
  kLinear |
  kAllPass |

Definition at line 14 of file DLine.h.

enum csl::VBAPMode

VBAP types.

Enumerator:

  kAuto |
  kPantophonic | Only uses the horizontally placed speakers (zero elevation)
  kPeriphonic | Full 3D VBAP.

Definition at line 46 of file VBAP.h.

enum csl::CSL_FFTType

real/complex flag (determines results from forward FFT)

Enumerator:

  CSL_FFT_REAL |
  CSL_FFT_COMPLEX |
  CSL_FFT_MAGPHASE |

Definition at line 51 of file FFT_Wrapper.h.

enum csl::CSL_FFTDir

forward/reverse flag (determines FFT direction)

Enumerator:

  CSL_FFT_FORWARD |
  CSL_FFT_INVERSE |

Definition at line 59 of file FFT_Wrapper.h.

## Function Documentation

void csl::copy_CSL_MIDIMessage | ( | CSL_MIDIMessage * | source,
|  | CSL_MIDIMessage * | dest
| ) |  |

copy_CSL_MIDIMessage – copies CSL_MIDIMessage

Definition at line 25 of file MIDIIOP.cpp.

References csl::CSL_MIDIMessage::channel, csl::CSL_MIDIMessage::data1, csl::CSL_MIDIMessage::data2, csl::CSL_MIDIMessage::message, and csl::CSL_MIDIMessage::time.

Referenced by csl::MIDIOut::set_message(), and csl::MIDIOut::write().

void csl::CSL_MIDIMessageToPmEvent | ( | CSL_MIDIMessage * | cslMIDI,
|  | PmEvent * | event
| ) |  |

CSL_MIDIMessageToPmEvent – converts CSL_MIDIMessage to PmEvent.

Definition at line 37 of file MIDIIOP.cpp.

References csl::CSL_MIDIMessage::channel, csl::CSL_MIDIMessage::data1, csl::CSL_MIDIMessage::data2, csl::CSL_MIDIMessage::message, Message_ChannelToStatus(), and csl::CSL_MIDIMessage::time.

Referenced by csl::MIDIOut::write().

void csl::PmEventToCSL_MIDIMessage | ( | PmEvent * | event,
|  | CSL_MIDIMessage * | cslMIDI
| ) |  |

PmEventToCSL_MIDIMessage – converts PmEvent to CSL_MIDIMessage.

Definition at line 49 of file MIDIIOP.cpp.

References csl::CSL_MIDIMessage::channel, csl::CSL_MIDIMessage::data1, csl::CSL_MIDIMessage::data2, csl::CSL_MIDIMessage::message, and csl::CSL_MIDIMessage::time.

unsigned csl::Message_ChannelToStatus | ( | CSL_MIDIMessageType | message,
|  | unsigned | channel
| ) |  |

Message_ChannelToStatus – converts from message and channel to status byte.

Definition at line 64 of file MIDIIOP.cpp.

Referenced by CSL_MIDIMessageToPmEvent(), csl::MIDIOut::write_Aftertouch(), csl::MIDIOut::write_ControlChange(), csl::MIDIOut::write_NoteOff(), csl::MIDIOut::write_NoteOn(), csl::MIDIOut::write_PitchWheel(), csl::MIDIOut::write_PolyTouch(), and csl::MIDIOut::write_ProgramChange().

void* csl::RemoteIO_read_loop | ( | void * | inst | ) |

Definition at line 126 of file RemoteIO.cpp.

References CSL_CMD_NEXT_BUFFER, CSL_CMD_SET_CLIENT, CSL_CMD_STOP, kLogError, logMsg(), THE_IO, and TRUE.

Referenced by csl::RemoteIO::start().

void* csl::RS_read_loop | ( | void * | inst | ) |

Referenced by csl::RemoteStream::RemoteStream().

int csl::CSL_CreateThread | ( | THREAD_START_ROUTINE | pfnThreadProc,
|  | void * | pvParam
| ) |  |

Referenced by csl::RemoteStream::RemoteStream(), and csl::RemoteIO::start().

void csl::logMsg | ( | const char * | format,
|  |  | ...
| ) |  |

These are the public logging messages.

default is kLogInfo severity

Definition at line 230 of file CGestalt.cpp.

References vlogMsg().

Referenced by csl::Abst_SoundFile::Abst_SoundFile(), csl::AmbisonicMixer::addInput(), csl::Controllable::addInput(), csl::Buffer::allocateBuffers(), csl::Model::attachObserver(), audio_dump(), csl::JUCEIO::audioDeviceIOCallback(), csl::BinaryOp::BinaryOp(), csl::CAIO::CAIO(), csl::ShoeBox::calculateReflections(), csl::Model::changed(), csl::Abst_SoundFile::checkBuffer(), csl::PAIO::close(), csl::RemoteStream::connectToServer(), csl::HRTFDatabase::convertDB(), csl::Buffer::copyHeaderFrom(), csl::MIDIIO::copyMessage(), csl::Buffer::copyOnlySamplesFrom(), csl::Buffer::copySamplesFrom(), csl::Buffer::copySamplesFromTo(), createGrains(), csl::MP3File::decodeMP3(), csl::Model::detachObserver(), csl::CASoundFile::dump(), csl::Noise::dump(), csl::Clipper::dump(), csl::Lorenz::dump(), csl::KarplusString::dump(), csl::Oscillator::dump(), csl::Window::dump(), csl::SineAsPhased::dump(), csl::LineSegment::dump(), csl::SineAsScaled::dump(), csl::SoundFileMetadata::dump(), csl::Filter::dump(), csl::HRTF::dump(), csl::Envelope::dump(), csl::HRTFDatabase::dump(), csl::Abst_SoundFile::dump(), csl::SoundCue::dump(), csl::SumOfSines::dump(), csl::UnitGenerator::dump(), csl::Port::dump(), csl::Controllable::dump(), csl::IODevice::dump(), csl::SHARCLibrary::dump_stats(), dumpAMFMSin(), csl::MIDIIO::dumpDevices(), echo_test(), csl::Effect::Effect(), csl::FanOut::FanOut(), filt_test(), csl::MIDIIn::filter_active_sensing(), csl::MIDIIn::filter_clock_msg(), csl::MIDIIn::filter_sysex(), csl::ShoeBox::findNumReflectionsFromTime(), csl::SpeakerLayoutExpert::findPannerFromLayout(), csl::SpeakerSetLayout::findSpeakerPairs(), floatParamSetter(), csl::LSoundFile::format(), csl::Buffer::freeBuffers(), csl::FrequencyAmount::FrequencyAmount(), csl::GrainCloud::GrainCloud(), csl::MIDIIO::handle_error(), csl::AUIO::handleError(), csl::PAIO::handleError(), csl::MIDIIO::handleError(), csl::HRTF::HRTF(), csl::HRTFDatabase::hrtfAt(), csl::HRTFDatabase::HRTFDatabase(), csl::MIDIPlayer::init(), csl::RemoteIO::init_io(), csl::LSoundFile::initFromSndfile(), csl::PAIO::initialize(), csl::AmbisonicMixer::initialize(), csl::SndFileInstrument::initialize(), csl::AmbisonicRotator::initialize(), csl::AmbisonicDecoder::initialize(), csl::RemoteStream::initSockets(), intParamSetter(), csl::IO::IO(), jack_shutdown(), csl::JSoundFile::JSoundFile(), csl::HRTFDatabase::loadFromDB(), csl::HRTFDatabase::loadFromFile(), csl::LSoundFile::LSoundFile(), main(), csl::Abst_SoundFile::mergeToMono(), mic_test(), csl::SimpleSine::nextBuffer(), csl::Lorenz::nextBuffer(), csl::AmbisonicPanner::nextBuffer(), csl::Clipper::nextBuffer(), csl::KarplusString::nextBuffer(), csl::Freeverb::nextBuffer(), csl::Window::nextBuffer(), csl::Mixer::nextBuffer(), csl::Spatializer::nextBuffer(), csl::SineAsPhased::nextBuffer(), csl::WhiteNoise::nextBuffer(), csl::BinauralPanner::nextBuffer(), csl::AmbisonicMixer::nextBuffer(), csl::IFFT::nextBuffer(), csl::SpatialSource::nextBuffer(), csl::SineAsScaled::nextBuffer(), csl::VBAP::nextBuffer(), csl::PinkNoise::nextBuffer(), csl::WavetableOscillator::nextBuffer(), csl::Panner::nextBuffer(), csl::FIR::nextBuffer(), csl::AddOp::nextBuffer(), csl::LSoundFile::nextBuffer(), csl::AmbisonicRotator::nextBuffer(), csl::Filter::nextBuffer(), csl::Sine::nextBuffer(), csl::Envelope::nextBuffer(), csl::MulOp::nextBuffer(), csl::FSine::nextBuffer(), csl::Sawtooth::nextBuffer(), csl::AmbisonicEncoder::nextBuffer(), csl::Square::nextBuffer(), csl::Impulse::nextBuffer(), csl::AmbisonicDecoder::nextBuffer(), csl::Moog::nextBuffer(), csl::UnitGenerator::nextBuffer(), noteLoop(), csl::FileIO::open(), csl::PAIO::open(), csl::JackIO::open(), csl::CAIO::open(), csl::RemoteIO::open(), csl::iPhoneIO::open(), csl::MIDIIn::open(), csl::CASoundFile::openForRead(), csl::JSoundFile::openForRead(), csl::CASoundFile::openForWrite(), csl::JSoundFile::openForWrite(), csl::LSoundFile::openForWrite(), pa_callback(), panner_test(), csl::FMInstrument::parseArgs(), csl::Phased::Phased(), csl::WhiteNoiseInstrument::play_osc_note(), playNote(), csl::AdditiveInstrument::playOSC(), csl::SndFileInstrument::playOSC(), playWithArgs(), csl::RtpSender::printError(), csl::RtpReceiver::printError(), csl::RemoteIO::process_request_packet(), csl::VSTIO::processReplacing(), csl::Controllable::pullInput(), csl::Effect::pullInput(), csl::IO::pullInput(), csl::MIDIIn::read(), csl::JSoundFile::readBufferFromFile(), csl::LSoundFile::readBufferFromFile(), csl::SpeakerLayout::readSpeakerFile(), csl::FIR::readTaps(), reapGrains(), RemoteIO_read_loop(), csl::RemoteStream::RemoteStream(), csl::Spatializer::removeSource(), csl::SpatialPanner::removeSource(), RS_Read_Loop(), csl::RtpReceiver::RtpReceiver(), csl::RtpSender::RtpSender(), csl::Scalable::Scalable(), csl::Mixer::scaleInput(), csl::CASoundFile::seekTo(), csl::JSoundFile::seekTo(), csl::LSoundFile::seekTo(), csl::WhiteNoiseInstrument::set_parameter(), csl::FrequencyAmount::setAmount(), csl::IFFT::setBin(), csl::DelayLine::setDelayLength(), csl::DelayLine::setDelayTime(), csl::Envelope::setDuration(), csl::FrequencyAmount::setFrequency(), csl::AmbisonicEncoder::setInput(), csl::Effect::setInput(), csl::AmbisonicRotator::setNthInput(), csl::FilterSpecification::setNumTaps(), csl::Scalable::setOffset(), csl::Spatializer::setPanningMode(), csl::AdditiveInstrument::setParameter(), csl::SndFileInstrument::setParameter(), csl::FMInstrument::setParameter(), csl::FancyFMInstrument::setParameter(), csl::Abst_SoundFile::setRate(), csl::Scalable::setScale(), csl::ShoeBox::setSourceLocation(), csl::AmbisonicRotator::setTilt(), csl::AmbisonicRotator::setTumble(), setupOSCInstrLibrary(), csl::CGestalt::sndFileName(), csl::SpatialSource::SpatialSource(), csl::PAIO::start(), csl::FileIO::start(), csl::RemoteIO::start(), csl::iPhoneIO::start(), csl::MIDIPlayer::start(), csl::GrainCloud::startThreads(), csl::PAIO::stop(), csl::iPhoneIO::stop(), stringParamSetter(), csl::PAIO::test(), test50RandFreqEnv(), test_Ambi_horiz(), test_Binaural_horiz(), test_Binaural_vertAxial(), test_Binaural_vertMedian(), test_ifft(), test_SHARC(), test_SHARC2(), test_SimpleP(), test_VBAP_horiz(), test_vector_ifft(), testADSR2(), testADSR_FM(), testAMFMEnvs(), testAMFMSin(), testARSin(), testARSin2(), testBasicWaves(), testBigPanMix(), testBlockDownsizer(), testBlockUpsizer(), testClipper(), testCMapIO(), testComplexEnvelope(), testDynamicFilters(), testDynamicMixer(), testDynamicVoice(), testEnvScale(), testFancy_FM(), testFancyFMInstrument(), testFanMix1(), testFanMix2(), testFilters(), testFIR(), testFMInstrument(), testFrequencyEnv(), testGliss(), testGrainCloud(), testManyRandSOS(), testMonoFilePlayer(), testMultiTap(), testN2MPan(), testNDynamicFilters(), testNoises(), testOscBank(), testPan(), testPanMix(), testRandFreqEnv(), testReverb(), testSAFilter(), testScaledSin(), testSimpleSines(), testSineMixer(), testSndFileBank(), testSndFileInstrument(), testSOSInstrument(), testSoundFileTranspose(), testSplitJoin1(), testSplitJoin2(), testStereoFilePlayer(), testStereoverb(), testString(), testStringChorus(), testSumOfSines1F(), testSumOfSinesCached(), testSumOfSinesNonCached(), testSumOfSinesSteps(), testSweep(), testSwell(), testWaveShaper(), testWaveTableFromFile(), testWavetableInterpolation(), csl::FileIO::threadFunction(), csl::CASoundFile::writeBuffer(), csl::JSoundFile::writeBuffer(), csl::BufferStream::writeBuffer(), and csl::PAIO::~PAIO().

void csl::logMsg | ( | LogLevel | level,
|  | const char * | format,
|  |  | ...
| ) |  |

Log the file & line #.

Definition at line 288 of file CGestalt.cpp.

References vlogMsg().

void csl::logLine | ( |  | ) |

Log the file & line #.

log file/line as a URL

Definition at line 297 of file CGestalt.cpp.

void csl::logURL | ( |  | ) |

log file/line as a URL

Definition at line 303 of file CGestalt.cpp.

void csl::vlogMsg | ( | const char * | format,
|  | va_list | args
| ) |  |

Definition at line 226 of file CGestalt.cpp.

References kLogInfo.

Referenced by logMsg().

void csl::vlogMsg | ( | LogLevel | level,
|  | const char * | format,
|  | va_list | args
| ) |  |

Definition at line 257 of file CGestalt.cpp.

References CSL_LOG_PREFIX, kLogError, kLogFatal, kLogInfo, kLogWarning, mVerbosity, and SWALLOW_CR.

bool csl::sleepUsec | ( | float | dur | ) |

Misc. global functions in the csl namespace.

Sleep for micro-seconds, milli-seconds or seconds These are interruptable and return true if interrupted; false for normal termination sleep for dur usec, msec or sec

Definition at line 336 of file CGestalt.cpp.

References csl::CGestalt::stopNow(), and TIMER_INTERVAL.

Referenced by createGrains(), PME::manage_sources(), csl::GrainPlayer::nextBuffer(), sleepMsec(), sleepSec(), csl::FileIO::stop(), and csl::FileIO::threadFunction().

bool csl::sleepMsec | ( | float | dur | ) |

Definition at line 363 of file CGestalt.cpp.

References sleepUsec().

Referenced by createGrains(), main(), reapGrains(), csl::GrainCloud::startThreads(), testBasicWaves(), testScaledSin(), testSumOfSinesCached(), and testWavetableInterpolation().

bool csl::sleepSec | ( | float | dur | ) |

Definition at line 370 of file CGestalt.cpp.

References sleepUsec().

Referenced by main(), noteLoop(), runTest(), csl::MIDIPlayer::start(), test_Ambi_horiz(), test_Binaural_horiz(), test_Binaural_vertAxial(), test_Binaural_vertMedian(), test_SimpleP(), test_VBAP_horiz(), testDynamicMixer(), testGrainCloud(), testMultiTap(), testReverb(), testSndFileBank(), testSoundFileTranspose(), testStereoverb(), and testStringChorus().

Timestamp csl::timeNow | ( |  | ) |

high-accuracy system or IO time in ticks

Definition at line 377 of file CGestalt.cpp.

Referenced by csl::MIDIIn::handleIncomingMidiMessage().

float csl::fTimeNow | ( |  | ) |

system or IO time in seconds

Definition at line 389 of file CGestalt.cpp.

Referenced by csl::MIDIPlayer::start().

float csl::fRandZ | ( | void |  | ) |

A variety of useful random-number functions.

0 - 1 (name: zero)

Definition at line 405 of file CGestalt.cpp.

Referenced by coin(), fRand1(), fRandM(), fRandR(), fRandV(), csl::RandEnvelope::initSegment(), csl::RandEnvelope::nextSegment(), csl::FancyFMInstrument::playMIDI(), csl::FancyFMInstrument::playOSC(), sosNote(), testComplexEnvelope(), and testStringChorus().

float csl::fRand1 | ( | void |  | ) |

-1 - 1 (one)

Definition at line 411 of file CGestalt.cpp.

References fRandZ().

Referenced by fRandB(), noteLoop(), sosNote(), csl::MIDIPlayer::start(), testComplexEnvelope(), testFanMix1(), testFanMix2(), testSndFileBank(), and testStereoverb().

float csl::fRandV | ( | float | val | ) |

0 - v (val)

Definition at line 435 of file CGestalt.cpp.

References fRandZ().

Referenced by iRandV(), and csl::SumOfSines::SumOfSines().

float csl::fRandM | ( | float | minV,
|  | float | maxV
| ) |  |

min - max (min/max)

Definition at line 417 of file CGestalt.cpp.

References fRandZ().

Referenced by createRandFreqEnvPatch(), iRandM(), noteLoop(), sosNote(), csl::SumOfSines::SumOfSines(), testBigPanMix(), testComplexEnvelope(), testManyRandSOS(), testNDynamicFilters(), testSndFileBank(), testString(), and testStringChorus().

float csl::fRandR | ( | float | base,
|  | float | range
| ) |  |

b +- (r * b) (range)

Definition at line 423 of file CGestalt.cpp.

References fRandZ().

float csl::fRandB | ( | float | base,
|  | float | range
| ) |  |

b +- r (base)

Definition at line 429 of file CGestalt.cpp.

References fRand1().

Referenced by createGrains(), iRandB(), and testStereoverb().

int csl::iRandV | ( | int | val | ) |

Integer rands.

0 - v (val)

Definition at line 443 of file CGestalt.cpp.

References fRandV().

Referenced by noteLoop(), and testSndFileBank().

int csl::iRandM | ( | int | minV,
|  | int | maxV
| ) |  |

min - max (min/max)

Definition at line 449 of file CGestalt.cpp.

References fRandM().

Referenced by noteLoop(), testSndFileBank(), and testStringChorus().

int csl::iRandB | ( | int | base,
|  | int | range
| ) |  |

b +- r (base)

Definition at line 455 of file CGestalt.cpp.

References fRandB().

bool csl::coin | ( |  | ) |

Answer true or false.

Definition at line 461 of file CGestalt.cpp.

References fRandZ().

Referenced by testStringChorus().

bool csl::coin | ( | float | bias | ) |

Answer with a bias (1 –> always true)

Definition at line 467 of file CGestalt.cpp.

References fRandZ().

float csl::keyToFreq | ( | unsigned | midiKey | ) |

MIDI Conversions.

keyToFreq – converts from MIDI key numbers (1 - 127) to frequency in Hz.

Definition at line 474 of file CGestalt.cpp.

Referenced by csl::MIDIIn::get_frequency(), csl::CMIDIMessage::getFrequency(), noteLoop(), csl::AdditiveInstrument::playMIDI(), csl::FMInstrument::playMIDI(), csl::FancyFMInstrument::playMIDI(), and testStringChorus().

unsigned csl::freqToKey | ( | float | frequency | ) |

freqToKey – converts from frequency in Hz to MIDI key #

freqToKey – converts from frequency in Hz to MIDI key # 8.17579891564371 Hz is MIDI key 0

Definition at line 481 of file CGestalt.cpp.

Referenced by csl::KarplusString::trigger(), csl::MIDIOut::write_NoteOff(), and csl::MIDIOut::write_NoteOn().

void* csl::RTP_read_loop | ( | void * | inst | ) |

void csl::singularValueDecomposition | ( | sample ** | a,
|  | int | m,
|  | int | n,
|  | sample * | w,
|  | sample ** | v
| ) |  |
| related

Utility function used in calculating the inverse of a matrix, used in AmbisonicDecoder for the pseudoinverse method.

void csl::fumaEncodingWeights | ( | SampleBuffer | weights,
|  | const AmbisonicOrder & | order,
|  | sample | azimuth,
|  | sample | elevation
| ) |  |
| related

Utility function that calculates fuma encoding weights for a given order, azimuth and elevation.

Referenced by csl::AmbisonicEncoder::nextBuffer().

void csl::fumaIndexedEncodingWeights | ( | SampleBuffer | weights,
|  | const AmbisonicOrder & | order,
|  | sample & | azimuth,
|  | sample & | elevation
| ) |  |
| related

Utility function that calculates fuma encoding weights for a given order, azimuth and elevation.