CSL  5.2
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.hIO 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
 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  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 sampleSampleBuffer
 1-channel buffer data type, vector of (sample)
typedef SampleBufferSampleBufferVector
 Multi-channel buffer data type, vector of (SampleBuffer)
typedef SampleBufferSampleBufferArray
 Multi-channel buffer data type.
typedef sample SampleComplex [2]
 array-of-2 complex # type (like FFTW)
typedef SampleComplexSampleComplexVector
 complex vector
typedef SampleComplexSampleComplexPtr
 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.

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

Definition at line 183 of file CSL_Types.h.

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

Definition at line 184 of file CSL_Types.h.

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.

complex vector

Definition at line 197 of file CSL_Types.h.

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.

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

anonymous enum
Enumerator:
kNumParameters 
kThresh 
kWindowSize 
kNumBins 
kOut 
kNumParams 

Definition at line 14 of file WhiteNoiseInstrument.h.

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 144 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 54 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 186 of file CSL_Core.h.

Enumeration for seek flags.

Enumerator:
kPositionStart 
kPositionCurrent 
kPositionEnd 

Definition at line 528 of file CSL_Core.h.

IO Status flag.

Enumerator:
kIONew 
kIOInit 
kIOOpen 
kIORunning 
kIOClosed 
kIOExit 

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

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.

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 51 of file FFT_Wrapper.h.

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

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  )
float csl::fRand1 ( void  )
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 
)
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.