SynthLab SDK
Class Hierarchy
This inheritance list is sorted roughly, but not completely, alphabetically:
[detail level 12]
 CSynthLab::CircularBuffer< double >
 CCustomViewInfo
 CDynamicModuleManagerThis object maintains a set of SynthLab-DM Dynamic Modules
 CDynamicStringManagerDynamic string manager - this object connects plugin parameters and their GUI controls with new or different sets of strings to display
 CmoduleAuxParamSet
 CModuleGetterObject for loading and unloading SyntLab-DM Dynamic Modules which are API-agnostic DLLs (Windows) or dylibs (MacOS)
 Cmoodycamel::BlockingReaderWriterQueue< T, MAX_BLOCK_SIZE >
 Cmoodycamel::ReaderWriterQueue< T, MAX_BLOCK_SIZE >
 Cmoodycamel::ReaderWriterQueue< std::string, 2 >
 Cmoodycamel::ReaderWriterQueue< std::vector< std::string >, 2 >
 CSynthLab::AudioBufferEncapsulates the audio buffering requirements of any module that uses audio samples for input and/or output
 CSynthLab::AudioDelayParametersCustom parameter structure for the AudioDelay object
 CSynthLab::BasicLookupTablesVery basic lookup table object
 CSynthLab::BQAudioFilterSimple version of the AudioFilter object from Designing Audio Effects Plugins in C++ 2nd Ed. by Will Pirkle that impelments a biquad audio filter
 CSynthLab::BQCoeffsStructure to hold the seven coeffieicents used in the AudioFilter object from Designing Audio Effects Plugins in C++ 2nd Ed. by Will Pirkle
 CSynthLab::CircularBuffer< T >The CircularBuffer object implements a simple circular buffer. It uses a wrap mask to wrap the read or write index quickly
 CSynthLab::convertUpper
 CSynthLab::CoreProcDataThis structure holds all of the information needed to call functions on a ModuleCore object. This structure must contain datatypes that are basic C++ types or structures of them, and can not contain anything from the std:: library
 CSynthLab::DCAParametersCustom parameter structure for the DCA. This is a very simple object
 CSynthLab::DCRemovalFilterImplements a first order HPF with fc = 2.0Hz
 CSynthLab::DelayLine
 CSynthLab::DiodeVA1Coeffs
 CSynthLab::DMConfig
 CSynthLab::DynamicWavetableStructure for holding information about a static wavetable, that is read from a static location, either compiled into the synth as a resource, or from a binary data file at startup time
 CSynthLab::EGParametersCustom parameter structure for the any of the synth EGs. This structure is designed to take care of both analog EG and the DX EG requirements. Notable members:
 CSynthLab::ExciterSpecial purpose object for use as Karplus Strong exciter
 CSynthLab::ExciterEGSpecial purpose EG just for the Karplus Strong exciter
 CSynthLab::ExciterParametersCustom parameter structure for the Exciter object for the KS Oscillator and cores
 CSynthLab::FilterOutputHolds an array of filter output values; SynthLab filters can produce multiple outputs at once. For example, the 1st order VA filter produces 1st order LPF, HPF and APF output samples in the same render() function
 CSynthLab::FilterParametersCustom parameter structure for the any of the synth filters. This structure is designed to take care of both VA and biquad filter parameter requirements. Notable members:
 CSynthLab::FMOperatorParametersCustom parameter structure for moving GUI control information to the FMOperator oscillator object and its cores. Notable members:
 CSynthLab::FracDelayAPFImplements a first order APF that is used to generate a fractional delay for the physcial model of a string
 CSynthLab::GlideInfo
 CSynthLab::GlideModulatorSpecialized version of the RampModulator, with nearly identically named functions to peform the portamento operation (aka glide modulation)
 CSynthLab::HighShelfFilterImplementation of a high shelving filter
 CSynthLab::HP2FilterImplements a simple 2nd order HPF
 CSynthLab::IFilterBaseSimple interface for SynthLab filters
 CSynthLab::IMidiInputDataInterface for a MIDI input data object
 CSynthLab::IModulatorInterface for modulator objects
 CSynthLab::IPCMSampleDatabaseInterface for PCM sample databases
 CSynthLab::IPCMSampleSourceInterface for PCM sample sources
 CSynthLab::IWavetableDatabaseInterface for wavetable databases
 CSynthLab::IWavetableSourceInterface for wavetable sources
 CSynthLab::JumpTable< T >A customized circular buffer for the wave sequencer object. This is identical to the CircularBuffer object in the FX plugin book
 CSynthLab::KSOscParametersCustom parameter structure for the Karplus-Strong oscillator and its cores. Notable members:
 CSynthLab::Lane
 CSynthLab::LaneStepHolds all the information needed for one step of one lane in the wave sequencer
 CSynthLab::LFOParametersCustom parameter structure for the LFO object. Notable members:
 CSynthLab::LimiterImplements a custom peak limiter designed especially for self oscillating filters whose outputs are > 0dBFS
 CSynthLab::LinPeakDetectorEncapsulates McNally's peak detector with added LPF smoothing (optional)
 CSynthLab::LogPeakDetectorEncapsulates McNally's peak detector with added LPF smoothing (optional)
 CSynthLab::LookUpTableStructure to hold a dynamic LUT and its length
 CSynthLab::LowShelfFilterImplementation of a low shelving filter
 CSynthLab::LP1PFilterImplementation of a one-pole LPF
 CSynthLab::LP2FilterImplements a simple 2nd order LPF
 CSynthLab::midiEventInformation about a MIDI event
 CSynthLab::MIDINoteEventInformation about a MIDI note event (note on or note off)
 CSynthLab::MidiOutputDataMIDI output message and data information
 CSynthLab::ModDestinationStructure that encapsulates the controls for a modulation destination as part of the modulation matrix
 CSynthLab::ModMatrixVery customizable modulation matrix object
 CSynthLab::ModMatrixParametersCustom GUI control structure for the modulation matrix
 CSynthLab::ModSourceStructure that encapsulates the controls for a modulation source as part of the modulation matrix
 CSynthLab::ModuleCoreAbstract base class that encapsulates functionality of a module core; used with the Module-Core paradigm
 CSynthLab::ModuleCoreDataContains the two sets of strings unique to each core: the module strings (waveforms for oscillators) and the mod knob label strings
 CSynthLab::MorphBankDataInformation about a bank of wavetables that are used in the morphing wavetable core
 CSynthLab::NoiseGeneratorSimple object that generates white, gaussian white or pink noise
 CSynthLab::NoiseOscillatorParametersCustom parameter structure for the NoiseOscillator object
 CSynthLab::OscParametersCustom parameter structure for general purpose oscillators or those that don't fit into one of the other categories
 CSynthLab::ParametricFilterImplementation of a constant-Q parametric EQ filter
 CSynthLab::PCMOscParametersCustom parameter structure for the PCM sample oscillator and its cores. Notable members:
 CSynthLab::PCMSampleOpens a WAV file and extracts contents into a floating point buffer, regardless of original datatypes in file. After parsing the file, use const float* getSampleBuffer() to acces the read-only buffer of data. The following types are supported:
 CSynthLab::PCMSampleOutputHolds the audio output samples from reading a PCM sample file
 CSynthLab::PluckPosFilterComnination of three filters in one; note that the figure in the book does not show the variety of connection combinations and filter bypassing possible, nor the multiple output points
 CSynthLab::PluginInfoStructure that is used during the base class initilize( ) funciton call, after object instantiation is complete. This structure contains the path to the DLL itself which can be used to open/save files including pre-installed WAV files for sample based synths
 CSynthLab::RampModulatorThis is a tiny modulator object that produces an output that ramps up or down linearly between two values over a specified time in milliseconds
 CSynthLab::ResLoopFilterImplements a first order feedforward LPF with coefficients a0 = a1 = 0.5
 CSynthLab::ResonatorSpecial purpose object for use as Karplus Strong resonator
 CSynthLab::RIFF_CHUNK
 CSynthLab::SimpleLPFEncapsulates a tiny first order, all-pole LPF object
 CSynthLab::SlewLimiterImplements a simple slew limiter using a one pole lowpass filter
 CSynthLab::StaticWavetableStructure for holding information about a static wavetable, that is read from a static location, either compiled into the synth as a resource, or from a binary data file at startup time
 CSynthLab::SynchronizerThis is a very specialized object that performs the hard-sync operation using two SynthClocks
 CSynthLab::SynthClockCompact modulo counter with wrapping used as the timebase for all oscillators
 CSynthLab::SynthEngineEncapsulates an entire synth engine, producing one type of synthesizer set of voices (e.g. Virtual Analog, Sample Based, FM, etc...)
 CSynthLab::SynthEngineParametersContains parameters for the Synth Engine component
 CSynthLab::SynthLabBankSetThis super-structure holds a set of SynthLabTableSet called a "bank" and used in the morphing wavetable core to register and install these tables with the database
 CSynthLab::SynthLabTableSetThis structure defines a set of wavetables that are usually found in .h files and compiled into the synth. This structure is used specifically with wavetables that are made with RackAFX-TableMaker utility functions, that can encode tables in hex format for storage without needing fractional decimal representation
 CSynthLab::SynthModuleAbstract base class that encapsulates functionality of a module; used with the Module-Core paradigm
 CSynthLab::SynthVoiceThis is the voice object for a software synth
 CSynthLab::SynthVoiceParametersContains parameters for the Synth Voice component
 CSynthLab::TimerUltra compact timer object that is used for many different functionalities
 CSynthLab::TinyBPFImplements a simple 2nd order BPF
 CSynthLab::TinyResonMinute implementation of a 2nd order resonator filter
 CSynthLab::UWaveData
 CSynthLab::VA1CoeffsTiny structure to hold 1st order VA filter coefficients, to make it easier to share them across sync-tuned filters
 CSynthLab::VADiodeCoeffs
 CSynthLab::VADiodeFilter
 CSynthLab::VAKorg35Coeffs
 CSynthLab::VAMoogCoeffs
 CSynthLab::VAOscParametersCustom parameter structure for the VAOscillator and its ModuleCores. Notable members:
 CSynthLab::VASVFCoeffs
 CSynthLab::VectorXFadeDataHolds mixing coefficient multipliers for the Sequential/Korg vector joystick
 CSynthLab::WAVE_FILE_HEADER
 CSynthLab::WAVE_SAMPLE
 CSynthLab::WaveFolderOpens a folder full of WAV files and gleans information about the files to prep them for parsing and having their sample guts extracted. This object can figure out MIDI unity note numbers from the WAV file names (e.g. Dagga_A#4.wav). This object is used to parse folders of samples to build patches for sample based synths
 CSynthLab::WAVEFORMATEX_WP
 CSynthLab::WaveSequencerParametersGUI Parameters for wave sequencer object
 CSynthLab::WaveSequencerStatusMeters
 CSynthLab::WaveStringDataInformation about the selected core and the selected wavform within that core
 CSynthLab::WSOscParametersCustom parameter structure for the wave sequencer module. Notable members:
 CSynthLab::WTOscParametersCustom parameter structure for wavetable oscillators (note that several SynthLab oscillators are actually wavetable at the core). Notable members:
 CSynthLab::XFadeDataData about a crossfade operation
 CSynthLab::XFaderCrossfades two values (from A to B)
 CSynthLab::XHoldFaderCrossfades two values (from A to B) and then holds B for some amount of time