SynthLab SDK
SynthObjects

Very specilized and very small objects that handle the most fundamental implementations in the synth. This includes timer, ramp modulator, cross-fade-holder objects and many more. More...

Classes

class  SynthLab::BasicLookupTables
 Very basic lookup table object. More...
 
class  SynthLab::DynamicTableSource
 Storage for one dynamic table source; a wavetable that is created dynamically at load time, rather than being loaded from a static resource or table array. More...
 
class  SynthLab::ExciterEG
 Special purpose EG just for the Karplus Strong exciter. More...
 
class  SynthLab::Exciter
 Special purpose object for use as Karplus Strong exciter. More...
 
class  SynthLab::SimpleLPF
 Encapsulates a tiny first order, all-pole LPF object. More...
 
class  SynthLab::LogPeakDetector
 Encapsulates McNally's peak detector with added LPF smoothing (optional) More...
 
class  SynthLab::LinPeakDetector
 Encapsulates McNally's peak detector with added LPF smoothing (optional) More...
 
class  SynthLab::Limiter
 Implements a custom peak limiter designed especially for self oscillating filters whose outputs are > 0dBFS. More...
 
class  SynthLab::ModMatrix
 Very customizable modulation matrix object. More...
 
class  SynthLab::PCMSample
 Opens 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: More...
 
class  SynthLab::WaveFolder
 Opens 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. More...
 
class  SynthLab::Resonator
 Special purpose object for use as Karplus Strong resonator. More...
 
class  SynthLab::JumpTable< T >
 A customized circular buffer for the wave sequencer object. This is identical to the CircularBuffer object in the FX plugin book. More...
 
class  SynthLab::LaneStep
 Holds all the information needed for one step of one lane in the wave sequencer. More...
 
class  SynthLab::SineTableSource
 Storage for one static sinusoidal table source; stores a single sine table that is used for all notes. More...
 
class  SynthLab::AudioBuffer
 Encapsulates the audio buffering requirements of any module that uses audio samples for input and/or output. More...
 
class  SynthLab::SynthClock
 Compact modulo counter with wrapping used as the timebase for all oscillators. More...
 
class  SynthLab::Timer
 Ultra compact timer object that is used for many different functionalities. More...
 
class  SynthLab::XFader
 Crossfades two values (from A to B) More...
 
class  SynthLab::XHoldFader
 Crossfades two values (from A to B) and then holds B for some amount of time. More...
 
class  SynthLab::SlewLimiter
 Implements a simple slew limiter using a one pole lowpass filter. More...
 
class  SynthLab::Synchronizer
 This is a very specialized object that performs the hard-sync operation using two SynthClocks. More...
 
class  SynthLab::RampModulator
 This is a tiny modulator object that produces an output that ramps up or down linearly between two values over a specified time in milliseconds. More...
 
class  SynthLab::GlideModulator
 Specialized version of the RampModulator, with nearly identically named functions to peform the portamento operation (aka glide modulation) More...
 
class  SynthLab::NoiseGenerator
 Simple object that generates white, gaussian white or pink noise. More...
 
struct  SynthLab::WavetableDatabase
 Object that acts as the wavetable database, as shared synth-wide resource. You should study this especially if you want to implement your own database with your own wavetable formats, etc... More...
 
struct  SynthLab::PCMSampleDatabase
 Object that acts as the PCM sample database, as shared synth-wide resource. You should study this especially if you want to implement your own database with your own PCM sample formats, etc... More...
 
class  SynthLab::SynthProcessInfo
 This structure holds all of the information needed to for the plugin framework to send MIDI information into the engine, and receive rendered audio samples that result. More...
 
class  SynthLab::MidiInputData
 Holds all MIDI input data values. More...
 
class  SynthLab::Modulators
 Implements a modulator object. More...
 
class  SynthLab::ModuleCore
 Abstract base class that encapsulates functionality of a module core; used with the Module-Core paradigm. More...
 
class  SynthLab::SynthModule
 Abstract base class that encapsulates functionality of a module; used with the Module-Core paradigm. More...
 
class  SynthLab::SynthLabPCMSource
 Storage for a set of PCM samples that constitute a patch or instrument. More...
 
class  SynthLab::StaticTableSource
 Storage for one static table source; a static table is pre-compiled into the synth, or (optionally) read from a file. The "source" stores a set of these tables to maximize frequency content while prohibiting aliasing. More...
 
class  SynthLab::DrumWTSource
 Storage for one static table source, specifically for drums which are pitchless and one-shot. More...
 

Detailed Description

Very specilized and very small objects that handle the most fundamental implementations in the synth. This includes timer, ramp modulator, cross-fade-holder objects and many more.