csl Namespace Reference

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


Classes

class  CSLService
class  Accessor
class  AdditiveInstrument
class  BasicFMInstrument
class  FancyFMInstrument
class  Instrument
class  SndFileInstrument
class  SampleBankInstrument
class  BasicWhiteNoiseInstrument
class  AUIO
class  CAIO
class  FileIO
class  JackIO
class  JUCEIO
class  Microphone
class  CSL_MIDIMessage
 CSL_MIDIMessage. More...
class  MIDIIO
class  MIDIIn
class  MIDIOut
class  NullIO
class  StdIO
class  PAIO
class  RemoteIO
struct  CSL_RS_MSG
class  RemoteStream
class  Abst_SoundFile
class  SoundCue
class  CASoundFile
class  JSoundFile
class  LSoundFile
class  VSTIO
class  CGestalt
class  Model
 Forward declaration. More...
class  Observer
class  Buffer
class  BufferCMap
class  UnitGenerator
 forward declaration More...
class  Port
class  Controllable
class  Scalable
class  Effect
class  Phased
class  Writeable
class  Seekable
class  Cacheable
class  FanOut
class  Splitter
class  Joiner
class  Interleaver
class  IO
class  IODevice
class  exception
class  CException
class  MemoryError
class  ValueError
class  TimingError
class  RunTimeError
class  LogicError
class  DomainError
class  OutOfRangeError
class  IOError
struct  testStruct
class  RingBufferTap
class  RingBuffer
class  BufferStream
class  CVariable
class  StaticVariable
class  DynamicVariable
class  BinaryOp
class  AddOp
class  MulOp
class  Clipper
class  FrequencyAmount
class  Filter
 Filter: the canonical-form n-pole/m-zero filter class. More...
class  Butter
class  Formant
class  Notch
 Notch Filter with poles at +-z and complex conjugate zeros at +-omega. More...
class  Allpass
class  Moog
 Moog VCF class. More...
class  FilterSpecification
 forward declaration More...
class  FIR
class  Freeverb
class  Comb
class  FAllpass
class  Stereoverb
class  InOut
class  Mixer
class  Panner
class  NtoMPanner
class  StereoWidth
class  Convolver
class  DelayLine
class  FDN
struct  lpc_header
struct  frame_header
class  LPCAnalyzer
class  LPCFilter
class  CslRtpSession
class  RtpReceiver
class  RtpSender
class  LineSegment
class  Envelope
class  ADSR
 ADSR = 4-segment attack/decay/sustain/release envelope class. More...
class  AR
 AR = 3-segment attack/release envelope class. More...
class  Triangle
class  RandEnvelope
struct  Grain
class  GrainPlayer
class  GrainCloud
class  KarplusString
class  Lorenz
class  Noise
class  WhiteNoise
class  PinkNoise
class  Oscillator
class  WavetableOscillator
class  CompOrCacheOscillator
class  Sine
class  Sawtooth
class  Square
class  Impulse
struct  Partial
class  SumOfSines
class  SquareBL
class  SHARCSpectrum
class  SHARCInstrument
class  SHARCLibrary
class  SimpleSine
class  SineAsPhased
class  SineAsScaled
class  FFT
class  IFFT
class  WaveShaper
class  Window
class  RectangularWindow
 RectangularWindow:A rectangular window has all values set to the Gain value, or by default to 1. 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
class  AmbisonicUnitGenerator
 Ambisonic Abstract Base Class. More...
class  AmbisonicEncoder
class  AmbisonicDecoder
class  AmbisonicPanner
class  AmbisonicMixer
class  AmbisonicRotator
class  Glue
class  BinauralPanner
 forward declaration More...
class  BinauralSourceCache
class  HRTF
class  HRTFDatabase
class  DistanceSimulator
class  DistanceCue
class  IntensityAttenuationCue
class  AirAbsorptionCue
 Simulates the frequency dependent air absorption using a one pole/zero lowpass filter. More...
class  ShoeBox
class  Spatializer
class  Auralizer
class  SpeakerLayoutExpert
 * More...
class  SpatialPanner
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  Speaker
 Represents a speaker as a position relative to the center of a space. More...
class  DLine
class  VBAP
 Vector Base Amplitude Panning. More...
class  StereoPanner
class  SurroundPanner
class  VBAPSourceCache
class  SpeakerSet
 Groups two or three loudspeakers, and their inverse. Used for VBAP computations. More...
class  SpeakerSetLayout
class  BlockResizer
class  CPoint
class  Abst_FFT_W
class  ThreadUtil
class  ThreadedReader
class  ThreadedWriter
class  Synch
 Thread function signature. More...
class  Thread
class  SynchPthread
class  ThreadPthread

Typedefs

typedef vector< Accessor * > AccessorVector
typedef void *(* THREAD_START_ROUTINE )(void *)
typedef int SoundFileMode
typedef int SoundFileFormat
typedef float sample
 < All of CSL takes place in 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 void * VOIDFCNPTR (void *arg)
 the generic void fcn pointer
typedef unsigned CSL_MAP_KEY
 Forward declaration to IO Device model.
typedef std::map< CSL_MAP_KEY,
Port * > 
PortMap
typedef std::vector
< UnitGenerator * > 
UGenVector
 UGenVector: unit generator pointers (used for outputs).
typedef std::map< std::string,
UnitGenerator * > 
UGenMap
 UGenMap: a named map of unit generators (used for GUIs).
typedef std::vector< IODevice * > IODeviceVector
 IOs hold onto device vectors.
typedef unsigned long Timestamp
typedef signed long long INT64
typedef unsigned long long UINT64
typedef int ButterworthType
typedef int InOutFlags
typedef struct csl::lpc_header CSL_LPC_HEADER
typedef struct csl::frame_header CSL_LPC_FRAME
typedef int LineMode
typedef map< double,
LineSegment * > 
Breakpoints
 a map between a name/key and a port object (used for control and audio inputs)
typedef struct csl::Grain Grain
typedef int InterpolationPolicy
typedef int PartialDescriptionMode
typedef vector< HRTF * > HRTFVector
typedef int PointMode
typedef void *(* ThreadFunc )(void *)

Enumerations

enum  {
  kNumParameters = 16, kThresh = 0, kWindowSize, kNumBins,
  kOut, kNumParams
}
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 }
enum  BufferContentType {
  kSamples, kSpectra, kLPCCoeff, kIRData,
  kWavelet, kGeometry, kUnknown
}
enum  BufferCopyPolicy { kCopy, kExpand, kIgnore }
enum  SeekPosition { kPositionStart, kPositionCurrent, kPositionEnd }
enum  IO_Status {
  kIONew, kIOInit, kIOOpen, kIORunning,
  kIOClosed, kIOExit
}
enum  VOperator {
  kOpPlus, kOpTimes, kOpMinus, kOpDivided,
  kOpNegated
}
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 }
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,
  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.
float MIDINoteToFreq (unsigned midiNote)
 MIDINoteToFreq -- converts from MIDI notes ( C3, etc ) to frequency.
unsigned FreqToMIDINote (float frequency)
 FreqToMIDINote -- converts from frequency to MIDI notes ( C3, etc ).
void * RemoteIO_read_loop (void *inst)
void * RS_read_loop (void *inst)
int CSL_CreateThread (THREAD_START_ROUTINE pfnThreadProc, void *pvParam)
void logMsg (char *format,...)
 default is kLogInfo severity
void logMsg (LogLevel level, char *format,...)
void vlogMsg (char *format, va_list args)
void vlogMsg (LogLevel level, char *format, va_list args)
bool sleepUsec (float dur)
 sleep for dur usec, msec or sec
bool sleepMsec (float dur)
bool sleepSec (float dur)
float fRand (void)
 A variety of random-number functions.
float fRand2 (void)
 float between -1 and 1
float fRand3 (float minV, float maxV)
 float in range min - max
float fRand4 (float base, float range)
 float in range base +- (range * base)
float fRand5 (float base, float range)
 float in range base +- range
float fRand6 (float val)
 float in range 0 +- val
float fRandZ (void)
 0 - 1 (name: zero)
float fRand1 (void)
 -1 - 1 (one)
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)
float fRandV (float val)
 0 +- v (val)
bool coin ()
 Answer true or false.
bool coin (float bias)
 Answer true or false with a bias (bias 1 --> always true).
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

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

AdditiveInstrument.h -- Sum-of-sines synthesis instrument class. 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

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

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

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

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

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

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

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

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

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

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

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

SoundFileL.h -- concrete sound file class using libsndfile

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.

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.

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

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

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

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.

BinaryOp.h -- The specification file for simple arithmetic operations on UnitGenerators. 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

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

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.

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

FDN.h -- CSL feedback delay network class 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 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.

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

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

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

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

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.

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 which only work with certain fixed buffer sizes. BlockResizer works for up-block and down-block situations.

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

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.

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: FFTW (assumes fftw3f), RealFFT (RealFFT code included in CSL), and KISS FFT, built-in FFT from Laurent de Soras (included, untested).

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

ThreadedReader/ThreadedWriter -- frame streams that use separate threads See the copyright notice and acknowledgment of authors in the file COPYRIGHT

These class are simply a cacheing ugens that use a separate thread to get their input or write their output.


Typedef Documentation

typedef vector<Accessor *> csl::AccessorVector

Typedef for AccessorVector object

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

typedef int csl::SoundFileMode

typedef int csl::SoundFileFormat

typedef float csl::sample

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

< short-hand for the base sample type

typedef float csl::Sample

(could be changed to int)

the same, written upper-case

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

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

Multi-channel buffer data type.

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

complex vector

complex pointer

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

Forward declaration.

A vector of points

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

the generic void fcn pointer

typedef unsigned csl::CSL_MAP_KEY

Forward declaration to IO Device model.

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)

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

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

UGenVector: unit generator pointers (used for outputs).

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

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

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

IOs hold onto device vectors.

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). This will be platform- and API-specific, and will differ between hosts.

typedef signed long long csl::INT64

Typedefs for basic types that differ across platforms

typedef unsigned long long csl::UINT64

typedef int csl::ButterworthType

typedef int csl::InOutFlags

typedef int csl::LineMode

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

a map between a name/key and a port object (used for control and audio inputs)

typedef struct csl::Grain csl::Grain

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

typedef vector<HRTF *> csl::HRTFVector

typedef int csl::PointMode

typedef void*(* csl::ThreadFunc)(void *)


Enumeration Type Documentation

anonymous enum

Enumerator:
kNumParameters 
kThresh 
kWindowSize 
kNumBins 
kOut 
kNumParams 

CSL_MIDIMessageType.

Enumerator:
kNone 
kNoteOff 
kNoteOn 
kPolyTouch 
kControlChange 
kProgramChange 
kAftertouch 
kPitchWheel 
kSysEX 

Logging functions are standard C functions

Enumerator:
kLogInfo  Enumeration for log message severity level.
kLogWarning 
kLogError 
kLogFatal 

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.

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

Enumeration for seek flags

Enumerator:
kPositionStart 
kPositionCurrent 
kPositionEnd 

Enumerator:
kIONew 
kIOInit 
kIOOpen 
kIORunning 
kIOClosed 
kIOExit 

Enumerator:
kOpPlus 
kOpTimes 
kOpMinus 
kOpDivided 
kOpNegated 

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

Enumerator:
kMin 
kMax 
kBoth 

Enumeration to define the possible states of our internal RingBuffer.

Enumerator:
kNormal 
kBuffering 
kOverflow 
kUnderrun 
kInactive 
kNumStates 

Enumerator:
kFree  free state
kDSP  calculating audio samples
kSched  scheduling grains

Flag for the decoding method.

Enumerator:
kPSEUDOINVERSE 
kPROJECTION 

Flag for the decoder flavour.

Enumerator:
kBASIC 
kINPHASE 
kMAXRE 

enum csl::Axes

Enumerator:
kTILT 
kTUMBLE 
kROTATE 

anonymous enum

Enumerator:
kMarble 
kConcrete 
kBrick 
kGlass 
kWood 

Panner types.

Enumerator:
kAutomatic 
kBinaural  HRTF 2-channel panning.
kVBAP  Vector Base Amplitude Panning.
kAmbisonic  Full 3D Ambisonics.
kWFS  Wave Field Synthesis.

Enumerator:
kTruncate 
kLinear 
kAllPass 

VBAP types.

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

real/complex flag (determines results from forward FFT)

Enumerator:
CSL_FFT_REAL 
CSL_FFT_COMPLEX 
CSL_FFT_MAGPHASE 

forward/reverse flag (determines FFT direction)

Enumerator:
CSL_FFT_FORWARD 
CSL_FFT_INVERSE 


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 
)

float csl::MIDINoteToFreq ( unsigned  midiNote  ) 

MIDINoteToFreq -- converts from MIDI notes ( C3, etc ) to frequency.

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

unsigned csl::FreqToMIDINote ( float  frequency  ) 

FreqToMIDINote -- converts from frequency to MIDI notes ( C3, etc ).

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

void* csl::RemoteIO_read_loop ( void *  inst  ) 

void* csl::RS_read_loop ( void *  inst  ) 

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

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

default is kLogInfo severity

These are the public logging messages

References kLogInfo.

Referenced by csl::Abst_SoundFile::Abst_SoundFile(), csl::AmbisonicMixer::addInput(), csl::Controllable::addInput(), csl::Model::attachObserver(), 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::Model::detachObserver(), csl::HRTFDatabase::dump(), csl::HRTF::dump(), csl::Window::dump(), csl::SineAsScaled::dump(), csl::SineAsPhased::dump(), csl::SumOfSines::dump(), csl::Oscillator::dump(), csl::Noise::dump(), csl::Lorenz::dump(), csl::KarplusString::dump(), csl::Envelope::dump(), csl::LineSegment::dump(), csl::Filter::dump(), csl::Clipper::dump(), csl::IODevice::dump(), csl::Controllable::dump(), csl::Port::dump(), csl::UnitGenerator::dump(), csl::CASoundFile::dump(), csl::SoundCue::dump(), csl::Abst_SoundFile::dump(), csl::Effect::Effect(), csl::FanOut::FanOut(), csl::MIDIIn::filter_active_sensing(), csl::MIDIIn::filter_clock_msg(), csl::MIDIIn::filter_sysex(), csl::ShoeBox::findNumReflectionsFromTime(), csl::SpeakerLayoutExpert::findPannerFromLayout(), csl::SpeakerSetLayout::findSpeakerPairs(), csl::LSoundFile::format(), csl::Buffer::freeBuffers(), csl::FrequencyAmount::FrequencyAmount(), csl::MIDIIO::handle_error(), csl::PAIO::handleError(), csl::AUIO::handleError(), csl::HRTF::HRTF(), csl::HRTFDatabase::HRTFDatabase(), csl::RemoteIO::init_io(), csl::LSoundFile::initFromSndfile(), csl::AmbisonicRotator::initialize(), csl::AmbisonicMixer::initialize(), csl::AmbisonicDecoder::initialize(), csl::Convolver::initialize(), csl::PAIO::initialize(), csl::SndFileInstrument::initialize(), csl::RemoteStream::initSockets(), csl::IO::IO(), csl::HRTFDatabase::loadFromDB(), csl::HRTFDatabase::loadFromFile(), csl::LPCFilter::LPCFilter(), csl::LSoundFile::LSoundFile(), csl::Glue::next_buffer(), csl::VBAP::nextBuffer(), csl::SpatialSource::nextBuffer(), csl::Spatializer::nextBuffer(), csl::BinauralPanner::nextBuffer(), csl::AmbisonicRotator::nextBuffer(), csl::AmbisonicMixer::nextBuffer(), csl::AmbisonicPanner::nextBuffer(), csl::AmbisonicDecoder::nextBuffer(), csl::AmbisonicEncoder::nextBuffer(), csl::Window::nextBuffer(), csl::IFFT::nextBuffer(), csl::SineAsScaled::nextBuffer(), csl::SineAsPhased::nextBuffer(), csl::SimpleSine::nextBuffer(), csl::Impulse::nextBuffer(), csl::Square::nextBuffer(), csl::Sawtooth::nextBuffer(), csl::Sine::nextBuffer(), csl::WavetableOscillator::nextBuffer(), csl::PinkNoise::nextBuffer(), csl::WhiteNoise::nextBuffer(), csl::Lorenz::nextBuffer(), csl::KarplusString::nextBuffer(), csl::Envelope::nextBuffer(), csl::Panner::nextBuffer(), csl::Mixer::nextBuffer(), csl::Freeverb::nextBuffer(), csl::FIR::nextBuffer(), csl::Moog::nextBuffer(), csl::Filter::nextBuffer(), csl::Clipper::nextBuffer(), csl::MulOp::nextBuffer(), csl::AddOp::nextBuffer(), csl::UnitGenerator::nextBuffer(), csl::LSoundFile::nextBuffer(), csl::RemoteIO::open(), csl::PAIO::open(), csl::JackIO::open(), csl::FileIO::open(), csl::CAIO::open(), csl::LSoundFile::openForRead(), csl::JSoundFile::openForRead(), csl::CASoundFile::openForRead(), csl::LSoundFile::openForWrite(), csl::JSoundFile::openForWrite(), csl::CASoundFile::openForWrite(), pa_callback(), csl::BasicFMInstrument::parseArgs(), csl::Phased::Phased(), csl::BasicWhiteNoiseInstrument::play_osc_note(), csl::SndFileInstrument::playOSC(), csl::AdditiveInstrument::playOSC(), csl::RtpSender::printError(), csl::RtpReceiver::printError(), csl::IO::printTimeStatistics(), csl::RemoteIO::process_request_packet(), csl::IO::pullInput(), csl::Effect::pullInput(), csl::Controllable::pullInput(), csl::MIDIIn::read(), csl::JSoundFile::readBufferFromFile(), csl::SpeakerLayout::readSpeakerFile(), csl::FIR::readTaps(), RemoteIO_read_loop(), csl::RemoteStream::RemoteStream(), csl::SpatialPanner::removeSource(), csl::Spatializer::removeSource(), RS_Read_Loop(), csl::RtpReceiver::RtpReceiver(), csl::RtpSender::RtpSender(), csl::Scalable::Scalable(), csl::LSoundFile::seekTo(), csl::JSoundFile::seekTo(), csl::CASoundFile::seekTo(), csl::BasicWhiteNoiseInstrument::set_parameter(), csl::FrequencyAmount::setAmount(), csl::IFFT::setBin(), csl::DelayLine::setDelayLength(), csl::DelayLine::setDelayTime(), csl::FrequencyAmount::setFrequency(), csl::AmbisonicEncoder::setInput(), csl::Effect::setInput(), csl::AmbisonicRotator::setNthInput(), csl::FilterSpecification::setNumTaps(), csl::Scalable::setOffset(), csl::Spatializer::setPanningMode(), csl::SndFileInstrument::setParameter(), csl::FancyFMInstrument::setParameter(), csl::BasicFMInstrument::setParameter(), csl::AdditiveInstrument::setParameter(), csl::Abst_SoundFile::setRate(), csl::Scalable::setScale(), csl::ShoeBox::setSourceLocation(), csl::AmbisonicRotator::setTilt(), csl::AmbisonicRotator::setTumble(), csl::SpatialSource::SpatialSource(), csl::RemoteIO::start(), csl::PAIO::start(), csl::FileIO::start(), csl::PAIO::stop(), csl::PAIO::test(), csl::FileIO::threadFunction(), csl::BufferStream::writeBuffer(), csl::JSoundFile::writeBuffer(), csl::CASoundFile::writeBuffer(), and csl::PAIO::~PAIO().

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

References kLogError, kLogFatal, kLogInfo, and kLogWarning.

Referenced by dumpAMFMSin(), ambiOSC::encoderOSC(), event_handler(), float_set_density(), floatParamSetter(), generic_handler(), initial_test(), initUdp(), input_read_interpret_test(), intParamSetter(), jack_shutdown(), load_Ulysses_sounds(), main(), Spectrogram::normalize(), osc_error(), play_note(), playNote(), playWithArgs(), quitCSL(), remote_mixer(), remote_player(), ambiOSC::rotatorOSC(), run_tests(), setupOSCInstrLibrary(), Spectrogram::Spectrogram(), stringParamSetter(), test50RandFreqEnv(), test_allpass(), test_am_sin(), test_basic_fm_instrument(), test_Binaural_horiz(), test_Binaural_vertAxial(), test_Binaural_vertMedian(), test_bw_bandpass(), test_env_fm_sin(), test_env_fm_sin2(), test_envelope(), test_envelopes(), test_filter_sweep(), test_FIR(), test_FIR2(), test_fm_sin(), test_fm_sin2(), test_formant(), test_frequency_envelope(), test_gliss_sin(), test_ifft(), test_InOut(), test_logging(), test_long_ifft(), test_mixer_with_sines(), test_moog(), test_notch(), test_panning_sin(), test_panning_sine_mix(), test_pink_noise(), test_saw(), test_scaled_sin(), test_SHARC(), test_SHARC2(), test_sin(), test_sound_file_player(), test_square(), test_squareBL(), test_vector_ifft(), test_wavetable(), test_white_noise(), testADSR2(), testADSR_FM(), testAMFMEnvs(), testAMFMSin(), testARSin(), testARSin2(), testBasicWaves(), testBigPanMix(), testBlockResizer(), testBlockResizer2(), testClipper(), testCMapIO(), testDynamicFilters(), testEnvScale(), testFancy_FM(), testFancyFMInstrument(), testFilters(), testFIR(), testFMInstrument(), testFrequencyEnv(), testGliss(), testManyDynamicFilters(), testMonoSoundFilePlayer(), testMultiTap(), testN2MPan(), testNoises(), testOscBank(), testPan(), testPanMix(), testRandFreqEnv(), testReverb(), testScaledSin(), testSimpleSines(), testSineMixer(), testSndFileInstrument(), testSoundFileTranspose(), testStereoSoundFilePlayer(), testStereoverb(), testString(), testSumOfSinesCached(), testSumOfSinesNonCached(), testSweep(), testSwell(), testWaveTableFromFile(), and testWavetableInterpolation().

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

References kLogInfo.

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

bool csl::sleepUsec ( float  dur  ) 

sleep for dur usec, msec or sec

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

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

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

bool csl::sleepMsec ( float  dur  ) 

bool csl::sleepSec ( float  dur  ) 

float csl::fRand ( void   ) 

A variety of random-number functions.

float between 0 and 1

Referenced by coin(), fRand2(), fRand3(), fRand4(), fRand6(), fRandZ(), granuloop(), and csl::FancyFMInstrument::playOSC().

float csl::fRand2 ( void   ) 

float between -1 and 1

References fRand().

Referenced by fRand1(), fRand5(), granuloop(), and testStereoverb().

float csl::fRand3 ( float  minV,
float  maxV 
)

float in range min - max

References fRand().

Referenced by createRandFreqEnvPatch(), fRandM(), testBigPanMix(), and testManyDynamicFilters().

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

float in range base +- (range * base)

References fRand().

Referenced by fRandR().

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

float in range base +- range

References fRand2().

Referenced by fRandB(), and testStereoverb().

float csl::fRand6 ( float  val  ) 

float in range 0 +- val

References fRand().

Referenced by fRandV().

float csl::fRandZ ( void   ) 

0 - 1 (name: zero)

References fRand().

Referenced by csl::RandEnvelope::initSegment(), and csl::RandEnvelope::nextSegment().

float csl::fRand1 ( void   ) 

-1 - 1 (one)

0 - 1

References fRand2().

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

min - max (min/max)

-1 - 1

References fRand3().

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

b +- (r * b) (range)

min - max

References fRand4().

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

b +- r (base)

base +- (range * base)

References fRand5().

float csl::fRandV ( float  val  ) 

0 +- v (val)

base +- range

References fRand6().

bool csl::coin (  ) 

Answer true or false.

0 +- val

References fRand().

bool csl::coin ( float  bias  ) 

Answer true or false with a bias (bias 1 --> always true).

References fRand().

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.


Generated on Thu Sep 17 23:14:17 2009 for CSL by  doxygen 1.5.8