CSL  6.0
csl Namespace Reference

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

Classes

class  Abst_FFT_W
 Abstract FFT class can do forward/reverse real/complex I/O FFTs. 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  Accessor
 The Accessor class has public data members. More...
 
class  AdditiveInstrument
 AdditiveInstrument. More...
 
class  AddOp
 AddOp – A BinaryOp that adds two UnitGenerators or fixed constants together. More...
 
class  ADSR
 ADSR = 4-segment attack/decay/sustain/release envelope class. More...
 
class  AirAbsorptionCue
 Simulates the frequency dependent air absorption using a one pole/zero lowpass filter. 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. More...
 
class  AmbisonicDecoder
 
class  AmbisonicEncoder
 
class  AmbisonicMixer
 
class  AmbisonicOrder
 Ambisonic order structure (separate definition for horizontal and vertical order): More...
 
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  AmbisonicRotator
 
class  AmbisonicUnitGenerator
 Ambisonic Abstract Base Class. More...
 
class  AR
 AR = 3-segment attack/release envelope class. More...
 
class  AUIO
 General-purpose AudioUnit IO class. More...
 
class  Auralizer
 
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  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  Biquad
 General-purpose Biquad IIR (2nd order recursive) filter. This is simplified and optimized, but doesn't support dynamic or scalable controls. It uses inst vars rather than arrays for the coefficients. NB: peak gain (dB) is used only for the peak and shelf types) More...
 
class  BlackmanHarrisWindow
 BlackmanHarrisWindow. More...
 
class  BlackmanWindow
 BlackmanWindow. More...
 
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  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. 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  Butter
 Butterworth IIR (2nd order recursive) filter. More...
 
class  Cacheable
 Cacheable – a mix-in for caching streams. More...
 
class  CAIO
 CoreAudio IO class. More...
 
class  CASoundFile
 CoreAudio sound file. More...
 
class  CException
 Base class of CSL exceptions (written upper-case). Has a string message. More...
 
class  CGestalt
 The CSL system defaults class. More...
 
class  Clipper
 Clipper class. More...
 
class  CMIDIMessage
 CMIDIMessage class (mapped to juce::MidiMessage) More...
 
class  Comb
 Comb filter class. More...
 
class  CompOrCacheOscillator
 CompOrCacheOscillator – Abstract oscillator class for those who can compute of cache their wavetables. 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  Convolver
 The Convolver is a CSL Effect. More...
 
class  Convolver2
 The Convolver2 is a CSL Effect. More...
 
class  CPoint
 
class  CSL_MIDIMessage
 CSL_MIDIMessage. More...
 
struct  CSL_RS_MSG
 
class  CThread
 The PThreads CSL Thread class. 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  DBError
 DB Error. More...
 
class  DelayLine
 
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  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  DLine
 
class  DomainError
 Numerical data of wrong type. More...
 
class  DynamicVariable
 The DynamicVariable class is a changing variable that can perform an operation (e.g., scaling) on another unit generator. More...
 
class  Effect
 Effect – mix-in for classes that have unit generators as inputs (like filters). 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  FAllpass
 All-pass filter class. 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  FanOut
 A fan-out generator for DSP graphs with loops. 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  FileIO
 FileIO.hIO using a sound file for storing output sample data. More...
 
class  Filter
 Filter: the canonical-form n-pole/m-zero filter class. More...
 
class  FilterSpecification
 forward declaration More...
 
class  FIR
 Examples. More...
 
class  FMInstrument
 FMInstrument. 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  Freeverb
 CSL port of the public domain Freeverb reverberator. 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  FSine
 FSine – (uses a ringing filter for the sine calc) 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  HammingWindow
 HammingWindow: Belongs to the familly of cosine window functions. More...
 
class  HannWindow
 HannWindow. More...
 
class  HeadphoneSpeakerLayout
 "Headphone Layout", where two phones are positioned 90¼ left, 90¼ right and no elevation (0¼). 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  IFFT
 Inverse FFT. More...
 
class  Impulse
 Impulse – oscillator class (this create a single impulse delayed by 'delay' samples) More...
 
class  InOut
 InOut class copies the IO port's input buffer to the output buffer, possibly with channel remap and scaling. More...
 
class  Instrument
 Instrument class (abstract) More...
 
class  IntensityAttenuationCue
 Sound attenuation due to increasing distance. This "Base" Class uses the inverse square law. Subclass for other methods. 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. More...
 
class  IODevice
 IO Device class – a holder for a sound interface with name, id, # IO channels, etc. More...
 
class  IOError
 IO Error. 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  Joiner
 Joiner class – a multiplexer for multi-channel signals. More...
 
class  JSoundFile
 JUCE sound file. More...
 
class  JUCEIO
 JUCEIO is an IO that runs as a JUCE. More...
 
class  KarplusString
 KarplusString – string model class. More...
 
class  LineSegment
 A linearly interpolated segment – this has start and end values, and a duration (in seconds). More...
 
class  LogicError
 Impossible operation. More...
 
class  Lorenz
 Lorenz chaotic oscillator = this plays one variable of the Lorenz Strange Attractor between +1 and -1. More...
 
class  LSoundFile
 Here's the sound file reader/writer class; it assumes libSndFile and interleaved sample buffers. More...
 
class  MemoryError
 Malloc failure subclass. More...
 
class  Microphone
 Microphone – copies the input buffer (from the sound driver) to its output. More...
 
class  MIDIIn
 MIDIIn class is-a MidiInputCallback too, and an "input-ready" flag. 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  MIDIOut
 MIDIOut class write msgs out to a device (or file) More...
 
class  MIDIPlayer
 MIDI stream/file player. More...
 
class  Mixer
 Mixer – The n-input m-channel mixer 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  Moog
 Moog-style resonant VCF class. More...
 
class  MulOp
 MulOp – A BinaryOp that multiplies two UnitGenerators or fixed constants together, sample-by-sample. More...
 
class  Noise
 Abstract Noise class - inherits from UnitGenerator & Scalable, and provides constructors and basic pseudo-raondom methods. More...
 
class  Notch
 Notch Filter with poles at +-z and complex conjugate zeros at +-omega. More...
 
class  NtoMPanner
 
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  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  Oscillator
 Oscillator – Abstract oscillator class; inherits from UnitGenerator, Phased, and Scalable and provides convenience constructors (freq, ampl, offset, phase) More...
 
class  OutOfRangeError
 Data out of range. More...
 
class  PAIO
 The PortAudio IO class. More...
 
class  Panner
 The CSL mono-to-stereo L/R panner class. More...
 
struct  Partial
 Struct for partial overtones. More...
 
class  Phased
 Phased – a mix-in for objects with phase accumulators (local float) and frequency controls (an input port). More...
 
class  PinkNoise
 Pink noise – equal power per octave. 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). More...
 
class  ProcessingError
 Processing Error. More...
 
class  RandEnvelope
 RandEnvelope envelope class – makes random control signals using a single line segment. More...
 
class  RectangularWindow
 RectangularWindow:A rectangular window has all values set to the Gain value, or by default to 1. More...
 
class  RemoteIO
 the RemoteIO class More...
 
class  RemoteStream
 RemoteStream class. More...
 
class  RingBuffer
 RingBuffer is the storage + a default reader. More...
 
class  RingBufferTap
 RingBufferTap is a reader that loops over a buffer. More...
 
class  RunTimeError
 Illegal operation at run time. More...
 
class  SampleBankInstrument
 Sample bank player instrument. More...
 
class  Sawtooth
 Sawtooth oscillator class (non-band-limited) More...
 
class  Scalable
 Scalable – mix-in class with scale and offset control inputs (may be constants or generators). More...
 
class  Seekable
 Seekable – a mix-in for positionable streams. More...
 
class  SHARCInstrument
 SHARC instrument class. More...
 
class  SHARCLibrary
 SHARC library class. More...
 
class  SHARCSpectrum
 SHARC spectrum class. More...
 
class  ShoeBox
 
class  SimplePanner
 Simple Panner. More...
 
class  SimpleSine
 SimpleSine – The simplest CSL sine oscillator class. More...
 
class  Sine
 Sine – oscillator class (this computes the sine fcn on the fly) 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  SndFileInstrument
 Sound file player instrument. More...
 
class  SoundCue
 SoundCue – a pointer to a segment of a sound file. More...
 
class  SoundFileMetadata
 Class SndFileMetadata holds the ID3 tags of a sound file. 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  SpatialPanner
 Base class for all panners. Handles source management and holds a speaker layout. More...
 
class  SpatialSource
 Temp Spatial Sound Source. More...
 
class  Speaker
 Represents a speaker as a position relative to the center of a space. More...
 
class  SpeakerLayout
 
class  SpeakerLayoutExpert
 
class  SpeakerSet
 Groups two or three loudspeakers, and their inverse. Used for VBAP computations. More...
 
class  SpeakerSetLayout
 
class  Splitter
 Splitter class – a de-multiplexer for multi-channel signals. More...
 
class  Square
 Square oscillator class (non-band-limited) More...
 
class  SquareBL
 Band-limited square, impulse, and triangle waveform oscillators. 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  StdIO
 StdIO reads/write the UNIX Standard IO pipes. More...
 
class  StereoPanner
 Simple Stereo Panner. More...
 
class  StereoSpeakerLayout
 Standard "Stereo Speaker Layout", where two speakers are positioned 30¼ left, 30¼ right and no elevation (0¼). More...
 
class  Stereoverb
 
class  StereoWidth
 Stereo width processor – can mix stereo channels or subtract the sum from each to widen. More...
 
class  SumOfSines
 
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  Synch
 Sync is a cross-thread synchronization object. More...
 
class  SynchPthread
 PThread version of Sync. More...
 
struct  testStruct
 struct used for the JUCE pop-up menu of tests (see the test files) More...
 
class  ThreadPthread
 PThread version of Thread. More...
 
class  TimingError
 Time-out. More...
 
class  Triangle
 Triangle envelope class – equal attack/release times. More...
 
class  TriangularWindow
 TriangularWindow:A triangularWindow window. More...
 
class  UnitGenerator
 forward declaration 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  ValueError
 Wrong kind of operand error. More...
 
class  VBAP
 Vector Base Amplitude Panning. More...
 
class  VBAPSourceCache
 
class  VSTIO
 VSTIO is an IO that answers the VST processReplacing() call by calling its CSL graph. More...
 
class  WaveShaper
 WaveShaper – Wave-shaping oscillator class. More...
 
class  WavetableOscillator
 WavetableOscillatorOscillator 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  WelchWindow
 WelchWindow: This is basically an equal-power curve. More...
 
class  WhiteNoise
 White noise – equal power per frequency. 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  Writeable
 Writeable – a mix-in for buffers and streams that one can write to. More...
 

Typedefs

typedef vector< Accessor * > AccessorVector
 Typedef for AccessorVector object. More...
 
typedef void *(* THREAD_START_ROUTINE )(void *)
 
typedef int SoundFileMode
 
typedef int SoundFileFormat
 
typedef std::vector< Observer * > ObserverVector
 Forward declaration. More...
 
typedef float * FloatArray
 < All of CSL takes place within the "csl" namespace More...
 
typedef FloatArrayFloatArrayPtr
 float pointer pointer type More...
 
typedef float sample
 (could be changed to int, or double) More...
 
typedef float Sample
 the same, written upper-case More...
 
typedef sampleSampleBuffer
 1-channel buffer data type, vector of (sample) More...
 
typedef SampleBufferSampleBufferVector
 Multi-channel buffer data type, vector of (SampleBuffer) More...
 
typedef SampleBufferSampleBufferArray
 Multi-channel buffer data type. More...
 
typedef sample SampleComplex [2]
 array-of-2 complex # type (like FFTW) More...
 
typedef SampleComplexSampleComplexVector
 complex vector More...
 
typedef SampleComplexSampleComplexPtr
 complex pointer More...
 
typedef SampleComplexPtrSampleComplexMatrix
 complex 2D matrix More...
 
typedef std::vector< CPoint * > PointVector
 Forward declaration. More...
 
typedef std::vector< unsigned > UnsignedVector
 A vector of unsigneds. More...
 
typedef std::vector< float > FloatVector
 A vector of floats. More...
 
typedef void * VoidFcnPtr (void *arg)
 the generic void fcn pointer More...
 
typedef void VoidFcnPtrN (void)
 the truly void fcn pointer More...
 
typedef unsigned uint
 
typedef unsigned CSL_MAP_KEY
 Forward declaration. More...
 
typedef std::map< CSL_MAP_KEY,
Port * > 
PortMap
 
typedef std::vector< Buffer * > BufferVector
 Buffer/UGenVector: unit generator pointers (used for outputs) More...
 
typedef std::vector
< UnitGenerator * > 
UGenVector
 
typedef std::map< std::string,
UnitGenerator * > 
UGenMap
 UGenMap: a named map of unit generators (used for GUIs) More...
 
typedef std::map< unsigned,
UnitGenerator * > 
UGenIMap
 
typedef std::map< unsigned, float > FloatMap
 
typedef std::vector< IODevice * > IODeviceVector
 IOs hold onto device vectors. More...
 
typedef std::vector< Instrument * > InstrumentVector
 Players hold onto Instrument vectors/maps. More...
 
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() More...
 
typedef int FilterType
 
typedef int InOutFlags
 
typedef int LineMode
 
typedef map< float, LineSegment * > Breakpoints
 a map between a time and a line segment More...
 
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. More...
 
typedef int InterpolationPolicy
 
typedef int PartialDescriptionMode
 
typedef vector< HRTF * > HRTFVector
 
typedef int PointMode
 
typedef int VOperator
 

Enumerations

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  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 More...
 
void CSL_MIDIMessageToPmEvent (CSL_MIDIMessage *cslMIDI, PmEvent *event)
 CSL_MIDIMessageToPmEvent – converts CSL_MIDIMessage to PmEvent. More...
 
void PmEventToCSL_MIDIMessage (PmEvent *event, CSL_MIDIMessage *cslMIDI)
 PmEventToCSL_MIDIMessage – converts PmEvent to CSL_MIDIMessage. More...
 
unsigned Message_ChannelToStatus (CSL_MIDIMessageType message, unsigned channel)
 Message_ChannelToStatus – converts from message and channel to status byte. More...
 
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. More...
 
void logMsg (LogLevel level, const char *format,...)
 
void logMsgNN (const char *format,...)
 no-newline versions More...
 
void logMsgNN (LogLevel level, const char *format,...)
 Log the file & line #. More...
 
void logLine ()
 Log the file & line #. More...
 
void logURL ()
 log file/line as a URL More...
 
void vlogMsg (bool cz, LogLevel level, const char *format, va_list args)
 
bool sleepUsec (float dur)
 Misc. global functions in the csl namespace. More...
 
bool sleepMsec (float dur)
 
bool sleepSec (float dur)
 
Timestamp timeNow ()
 high-accuracy system or IO time in ticks More...
 
float fTimeNow ()
 system or IO time in seconds More...
 
float fRandZ (void)
 A variety of useful random-number functions. More...
 
float fRand1 (void)
 -1 - 1 (one) More...
 
float fRandV (float val)
 0 - v (val) More...
 
float fRandM (float minV, float maxV)
 min - max (min/max) More...
 
float fRandR (float base, float range)
 b +- (r * b) (range) More...
 
float fRandB (float base, float range)
 b +- r (base) More...
 
int iRandV (int val)
 Integer rands. More...
 
int iRandM (int minV, int maxV)
 min - max (min/max) More...
 
int iRandB (int base, int range)
 b +- r (base) More...
 
bool coin ()
 Answer true or false. More...
 
bool coin (float bias)
 Answer with a bias (1 –> always true) More...
 
float keyToFreq (unsigned midiKey)
 MIDI Conversions. More...
 
unsigned freqToKey (float frequency)
 freqToKey – converts from frequency in Hz to MIDI key # More...
 
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. More...
 
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. More...
 
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. More...
 

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.

Granulator.h – CSL class for doing granular synthesis.

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

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.

Convolver.h – The way-simplified convolution class. This is an FFT-based convolver that uses the Nayuki FFT directly (no wrapper). It also stores the FFT data in non-interleaved vectors (e.g., mFilterFFTRe & mFilterFFTIm) steph.nosp@m.en@h.nosp@m.eaven.nosp@m.ever.nosp@m.ywher.nosp@m.e.co.nosp@m.m - 1905.

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 6.

CGestalt.h – the CSL 6.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.

SoundFileL.h – concrete sound file class using libsndfile.

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

The MP3 file playback is a mild hack; it first converts each MP3 file to a temp AIFF file and uses that for playback. There is no MP3 writing (encoding) at present.

There's a variety of random-number functions.

The timer sleep methods are interruptable with a global flag.

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 It is provided under GPL by Jake Janovetz (janov.nosp@m.etz@.nosp@m.uiuc..nosp@m.edu)

The FIR implementation is based on a minimal version written for the MAT 240B course; it does not use the CSL RingBuffer helper class.

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 245 of file CGestalt.h.

typedef float* csl::FloatArray

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

float pointer type

Definition at line 187 of file CSL_Types.h.

float pointer pointer type

Definition at line 188 of file CSL_Types.h.

typedef float csl::sample

(could be changed to int, or double)

Definition at line 191 of file CSL_Types.h.

typedef float csl::Sample

the same, written upper-case

Definition at line 192 of file CSL_Types.h.

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

Definition at line 194 of file CSL_Types.h.

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

Definition at line 195 of file CSL_Types.h.

Multi-channel buffer data type.

Definition at line 196 of file CSL_Types.h.

typedef sample csl::SampleComplex[2]

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

Definition at line 198 of file CSL_Types.h.

complex vector

Definition at line 202 of file CSL_Types.h.

complex pointer

Definition at line 203 of file CSL_Types.h.

complex 2D matrix

Definition at line 204 of file CSL_Types.h.

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

Forward declaration.

A vector of points

Definition at line 215 of file CSL_Types.h.

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

A vector of unsigneds.

Definition at line 218 of file CSL_Types.h.

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

A vector of floats.

Definition at line 219 of file CSL_Types.h.

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

the generic void fcn pointer

Definition at line 221 of file CSL_Types.h.

typedef void csl::VoidFcnPtrN(void)

the truly void fcn pointer

Definition at line 222 of file CSL_Types.h.

typedef unsigned csl::uint

Definition at line 224 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 233 of file CSL_Types.h.

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

Definition at line 238 of file CSL_Types.h.

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

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

Definition at line 240 of file CSL_Types.h.

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

Definition at line 241 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 243 of file CSL_Types.h.

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

Definition at line 245 of file CSL_Types.h.

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

Definition at line 246 of file CSL_Types.h.

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

IOs hold onto device vectors.

Definition at line 249 of file CSL_Types.h.

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

Players hold onto Instrument vectors/maps.

Definition at line 251 of file CSL_Types.h.

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

Definition at line 252 of file CSL_Types.h.

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

Definition at line 253 of file CSL_Types.h.

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

Definition at line 255 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 261 of file CSL_Types.h.

typedef int csl::FilterType

Definition at line 59 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.

Definition at line 57 of file Oscillator.h.

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

CMIDIMessageType enum of midi msg categories.

Enumerator
kNone 
kNoteOff 
kNoteOn 
kPolyTouch 
kControlChange 
kProgramChange 
kAftertouch 
kPitchWheel 
kSysEX 

Definition at line 26 of file MIDIIOJ.h.

CSL_MIDIMessageType.

Enumerator
kNone 
kNoteOff 
kNoteOn 
kPolyTouch 
kControlChange 
kProgramChange 
kAftertouch 
kPitchWheel 
kSysEX 

Definition at line 48 of file MIDIIOP.h.

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 154 of file CGestalt.h.

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 71 of file CSL_Core.h.

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 210 of file CSL_Core.h.

Enumeration for seek flags.

Enumerator
kPositionStart 
kPositionCurrent 
kPositionEnd 

Definition at line 560 of file CSL_Core.h.

IO Status flag.

Enumerator
kIONew 
kIOInit 
kIOOpen 
kIORunning 
kIOClosed 
kIOExit 

Definition at line 720 of file CSL_Core.h.

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.

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

Enumerator
kMin 
kMax 
kBoth 

Definition at line 15 of file Clipper.h.

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.

Flag for the decoding method.

Enumerator
kPSEUDOINVERSE 
kPROJECTION 

Definition at line 146 of file Ambisonic.h.

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.

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.

Enumerator
kTruncate 
kLinear 
kAllPass 

Definition at line 14 of file DLine.h.

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.

real/complex flag (determines results from forward FFT)

Enumerator
CSL_FFT_REAL 
CSL_FFT_COMPLEX 
CSL_FFT_MAGPHASE 

Definition at line 55 of file FFT_Wrapper.h.

forward/reverse flag (determines FFT direction)

Enumerator
CSL_FFT_FORWARD 
CSL_FFT_INVERSE 

Definition at line 63 of file FFT_Wrapper.h.

Function Documentation

void csl::copy_CSL_MIDIMessage ( CSL_MIDIMessage source,
CSL_MIDIMessage dest 
)
void csl::CSL_MIDIMessageToPmEvent ( CSL_MIDIMessage cslMIDI,
PmEvent *  event 
)
void csl::PmEventToCSL_MIDIMessage ( PmEvent *  event,
CSL_MIDIMessage cslMIDI 
)
unsigned csl::Message_ChannelToStatus ( CSL_MIDIMessageType  message,
unsigned  channel 
)
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)
int csl::CSL_CreateThread ( THREAD_START_ROUTINE  pfnThreadProc,
void *  pvParam 
)
void csl::logMsg ( const char *  format,
  ... 
)

These are the public logging messages.

default is kLogInfo severity

Definition at line 292 of file CGestalt.cpp.

References kLogInfo, and 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(), CSLServerComponent::audioDeviceIOCallback(), CSLMIDIComponent::audioDeviceIOCallback(), CSLAbstComponent::audioDeviceIOCallback(), CSLComponent::audioDeviceIOCallback(), csl::BinaryOp::BinaryOp(), csl::CAIO::CAIO(), csl::ShoeBox::calculateReflections(), csl::Model::changed(), csl::Abst_SoundFile::checkBuffer(), csl::Convolver::checkBuffers(), 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(), CSLMIDIComponent::CSLMIDIComponent(), 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::HRTF::dump(), csl::Envelope::dump(), csl::Filter::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(), load_filter_data(), csl::HRTFDatabase::loadFromDB(), csl::HRTFDatabase::loadFromFile(), csl::LSoundFile::LSoundFile(), main(), csl::Abst_SoundFile::mergeToMono(), mic_test(), csl::SimpleSine::nextBuffer(), csl::Convolver2::nextBuffer(), csl::Convolver::nextBuffer(), csl::Lorenz::nextBuffer(), csl::AmbisonicPanner::nextBuffer(), csl::Clipper::nextBuffer(), csl::Freeverb::nextBuffer(), csl::KarplusString::nextBuffer(), csl::Window::nextBuffer(), csl::Mixer::nextBuffer(), csl::Spatializer::nextBuffer(), csl::SineAsPhased::nextBuffer(), csl::WhiteNoise::nextBuffer(), csl::BinauralPanner::nextBuffer(), csl::AmbisonicMixer::nextBuffer(), csl::SpatialSource::nextBuffer(), csl::IFFT::nextBuffer(), csl::SineAsScaled::nextBuffer(), csl::VBAP::nextBuffer(), csl::PinkNoise::nextBuffer(), csl::WavetableOscillator::nextBuffer(), csl::Panner::nextBuffer(), csl::FIR::nextBuffer(), csl::LSoundFile::nextBuffer(), csl::AddOp::nextBuffer(), csl::AmbisonicRotator::nextBuffer(), csl::Sine::nextBuffer(), csl::Filter::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(), oscServer(), pa_callback(), panner_test(), csl::FMInstrument::parseArgs(), csl::Phased::Phased(), playNote(), csl::AdditiveInstrument::playOSC(), csl::SndFileInstrument::playOSC(), playSineMixer(), playWithArgs(), csl::FIR::print_taps(), csl::IO::printTimeStatistics(), csl::RemoteIO::process_request_packet(), csl::VSTIO::processReplacing(), csl::Controllable::pullInput(), csl::Effect::pullInput(), csl::IO::pullInput(), quit_handler(), csl::MIDIIn::read(), csl::LSoundFile::readBufferFromFile(), csl::Buffer::readFromFile(), csl::SpeakerLayout::readSpeakerFile(), csl::FIR::readTaps(), reapGrains(), CSLServerComponent::recordOnOff(), CSLAbstComponent::recordOnOff(), CSLComponent::recordOnOff(), RemoteIO_read_loop(), csl::RemoteStream::RemoteStream(), csl::Spatializer::removeSource(), csl::SpatialPanner::removeSource(), RS_Read_Loop(), csl::Scalable::Scalable(), csl::Mixer::scaleInput(), csl::CASoundFile::seekTo(), csl::JSoundFile::seekTo(), csl::LSoundFile::seekTo(), 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::Convolver2::setIRFile(), csl::Convolver::setIRFile(), csl::AmbisonicRotator::setNthInput(), csl::FilterSpecification::setNumTaps(), csl::Scalable::setOffset(), csl::Spatializer::setPanningMode(), csl::AdditiveInstrument::setParameter(), csl::FMInstrument::setParameter(), csl::SndFileInstrument::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_convolution(), test_convolution_file(), test_ifft(), test_SHARC(), test_SHARC2(), test_SimpleP(), test_VBAP_horiz(), test_vector_ifft(), testADSR2(), testADSR_FM(), testAMFMEnvs(), testAMFMSin(), testARSin(), testARSin2(), testBasicWaves(), testBigPanMix(), testBiquads(), 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::BufferStream::writeBuffer(), CSLMIDIComponent::~CSLMIDIComponent(), and csl::PAIO::~PAIO().

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

Definition at line 306 of file CGestalt.cpp.

References vlogMsg().

void csl::logMsgNN ( const char *  format,
  ... 
)

no-newline versions

Definition at line 299 of file CGestalt.cpp.

References kLogInfo, and vlogMsg().

Referenced by csl::FIR::print_taps().

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

Log the file & line #.

Definition at line 313 of file CGestalt.cpp.

References vlogMsg().

void csl::logLine ( )

Log the file & line #.

log file/line as a URL

Definition at line 322 of file CGestalt.cpp.

void csl::logURL ( )

log file/line as a URL

Definition at line 328 of file CGestalt.cpp.

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

Definition at line 234 of file CGestalt.cpp.

References CSL_LINE_LEN, kLogError, kLogFatal, kLogInfo, kLogWarning, len, and mVerbosity.

Referenced by logMsg(), and logMsgNN().

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 345 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().

Timestamp csl::timeNow ( )

high-accuracy system or IO time in ticks

Definition at line 386 of file CGestalt.cpp.

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

float csl::fTimeNow ( )

system or IO time in seconds

Definition at line 398 of file CGestalt.cpp.

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

float csl::fRandZ ( void  )
float csl::fRand1 ( void  )
float csl::fRandV ( float  val)

0 - v (val)

Definition at line 444 of file CGestalt.cpp.

References fRandZ().

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

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

b +- (r * b) (range)

Definition at line 432 of file CGestalt.cpp.

References fRandZ().

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

b +- r (base)

Definition at line 438 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 452 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 458 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 464 of file CGestalt.cpp.

References fRandB().

bool csl::coin ( )

Answer true or false.

Definition at line 470 of file CGestalt.cpp.

References fRandZ().

Referenced by testStringChorus().

bool csl::coin ( float  bias)

Answer with a bias (1 –> always true)

Definition at line 476 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 483 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 490 of file CGestalt.cpp.

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

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.