CSL  6.0
Class Hierarchy
This inheritance list is sorted roughly, but not completely, alphabetically:
[detail level 123456]
 Ccsl::Abst_FFT_WAbstract FFT class can do forward/reverse real/complex I/O FFTs
 Ccsl::AccessorHas public data members
 Ccsl::AmbisonicOrderAmbisonic order structure (separate definition for horizontal and vertical order):
 CAudioEffectX
 CAudioIODeviceCallback
 Cmath::matrix::base_mat
 Ccsl::BinauralSourceCacheBinauralSourceCache: used for caching previous state of spatial sources. This has the history of input FFTs and the last output sample block for OLA
 CFFTReal::BitReversedLUT
 Ccsl::BufferBuffer – the multi-channel sample buffer class (passed around between generators and IO guys)
 CButtonListener
 Ccsl::CacheableCacheable – a mix-in for caching streams
 Ccsl::CGestaltThe CSL system defaults class
 Ccsl::CMIDIMessageCMIDIMessage class (mapped to juce::MidiMessage)
 Ccsl::CombComb filter class
 CComboBoxListener
 CComponent
 CConnection
 Ccsl::ControllableControllable – 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
 CController
 Ccontroller_str
 Ccsl::CPoint
 Ccsl::CSL_MIDIMessageCSL_MIDIMessage
 Ccsl::CSL_RS_MSG
 Ccsl::CThreadThe PThreads CSL Thread class
 Ccsl::CVariableCVariable 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
 Ccsl::DistanceCuePure 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
 CDocumentWindow
 CDocumentWindow
 Cexception
 Cexception
 Ccsl::FAllpassAll-pass filter class
 CFFTReal
 Ccsl::FilterSpecificationForward declaration
 CFrameStream
 Ccsl::GrainGrain data structure This implementation uses a linked list data structure. You might want to add a few more members to this for flexibility
 Ccsl::GrainCloudGrainCloud – 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
 Ccsl::HRTFHRTF: 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)
 Ccsl::HRTFDatabaseHRTFDatabase: 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
 CInst_Context
 Ccsl::InterleaverInterleaver handles copying interleaved sample buffers (like sound files and inter-process sockets) to/from non-interleaved CSL-style Buffer objects
 Ccsl::IODeviceIO Device class – a holder for a sound interface with name, id, # IO channels, etc
 CJUCEApplication
 CJUCEApplication
 CListener
 CListener
 CListener
 CListener
 CListener
 CListener
 Clogic_error
 Cmath::matrix
 CMidiInputCallback
 Ccsl::ModelThe 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")
 Ccsl::ObserverCSL 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
 COrbit
 Ccsl::PartialStruct for partial overtones
 CPME
 CPMESource
 Ccsl::PortPort – 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)
 CProcessor
 Ccsl::SeekableSeekable – a mix-in for positionable streams
 Ccsl::SHARCInstrumentSHARC instrument class
 Ccsl::SHARCLibrarySHARC library class
 Ccsl::SHARCSpectrumSHARC spectrum class
 Ccsl::ShoeBox
 CSliderListener
 CSocket
 Ccsl::SoundFileMetadataClass SndFileMetadata holds the ID3 tags of a sound file
 Ccsl::SpeakerRepresents a speaker as a position relative to the center of a space
 Ccsl::SpeakerLayoutExpert
 Ccsl::SpeakerSetGroups two or three loudspeakers, and their inverse. Used for VBAP computations
 Ccsl::SpeakerSetLayout
 Ccsl::SynchSync is a cross-thread synchronization object
 Ccsl::testStructStruct used for the JUCE pop-up menu of tests (see the test files)
 CThread
 CTimer
 CFFTReal::TrigoLUT
 Ccsl::VBAPSourceCache
 Ccsl::WriteableWriteable – a mix-in for buffers and streams that one can write to