SynthLab SDK
|
Wavetables that implement electronic drum samples; these samples were extracted from WAV files and converted into wavetables using RackAFX-TableMaker. More...
#include <drumwtcore.h>
Public Member Functions | |
DrumWTCore () | |
Construction: Cores follow the same construction pattern. More... | |
virtual | ~DrumWTCore () |
virtual bool | reset (CoreProcData &processInfo) override |
Resets object to initialized state. More... | |
virtual bool | update (CoreProcData &processInfo) override |
Updates the object for the next block of audio processing. More... | |
virtual bool | render (CoreProcData &processInfo) override |
Renders the output of the module. More... | |
virtual bool | doNoteOn (CoreProcData &processInfo) override |
Note-on handler for the ModuleCore. More... | |
virtual bool | doNoteOff (CoreProcData &processInfo) override |
Note-off handler for the ModuleCore. More... | |
Public Member Functions inherited from SynthLab::ModuleCore | |
ModuleCore () | |
Constructs a ModuleCore. More... | |
virtual int32_t | getState () |
virtual bool | shutdown () |
virtual void | setSustainOverride (bool sustain) |
virtual void | setStandAloneMode (bool b) |
bool | startGlideModulation (GlideInfo &glideInfo) |
uint32_t | getModuleType () |
const char * | getModuleName () |
void * | getModuleHandle () |
void | setModuleHandle (void *handle) |
uint32_t | getModuleIndex () |
void | setModuleIndex (uint32_t index) |
int32_t | getPreferredModuleIndex () |
void | setPreferredModuleIndex (uint32_t index) |
ModuleCoreData & | getModuleData () |
provides access to the core data: More... | |
Protected Member Functions | |
double | renderSample (SynthClock &clock, bool forceLoop) |
Renders one sample out of the wavetable Core Specific: More... | |
Protected Attributes | |
double | sampleRate = 0.0 |
sample rate | |
double | outputAmplitude = 1.0 |
amplitude in dB | |
double | panLeftGain = 0.707 |
left channel gain | |
double | panRightGain = 0.707 |
right channel gain | |
bool | oneShotDone = false |
one-shot flag | |
int32_t | currentWaveIndex = -1 |
to minimize dictionary (map) lookup iterating | |
SynthClock | oscClock |
timebase | |
IWavetableSource * | selectedTableSource = nullptr |
selected based on oscillator pitch | |
DrumWTSource | drumTables [MODULE_STRINGS] |
Protected Attributes inherited from SynthLab::ModuleCore | |
uint32_t | moduleType = UNDEFINED_MODULE |
type of module, LFO_MODULE, EG_MODULE, etc... | |
const char * | moduleName = nullptr |
module name must be set in derived constructor | |
void * | moduleHandle = nullptr |
used for dynamically loading cores from DLLs | |
uint32_t | moduleIndex = 0 |
index of this core | |
int32_t | preferredIndex = -1 |
preferred index of this DYNAMIC core | |
ModuleCoreData | coreData |
core strings (16) and mod knob labels (4) | |
bool | standAloneMode = false |
flag for stand-alone mode of operation outside of SynthLab | |
std::unique_ptr< GlideModulator > | glideModulator |
built-in glide modulator for oscillators | |
Wavetables that implement electronic drum samples; these samples were extracted from WAV files and converted into wavetables using RackAFX-TableMaker.
This is one of the simplest wavetable oscillator cores because the samples are pitchless and there is no pitch modulation applied. Pitch modulation addition is an excellent homework chore.
Base Class: ModuleCore
GUI Parameters: WTOscParameters
Access to Modulators is done via the thunk-barrier compliant CoreProcData argument
Access to audio buffers (I/O/FM) is done via the thunk-barrier compliant CoreProcData argument
Construction: Cores follow the same construction pattern
Standalone Mode:
Module Strings, zero-indexed for your GUI Control:
ModKnob Strings, for fixed GUI controls by index constant
Render:
SynthLab::DrumWTCore::DrumWTCore | ( | ) |
Construction: Cores follow the same construction pattern.
simple default constructor
Core Specific:
|
inlinevirtual |
Destructor is empty: all resources are smart pointers
|
overridevirtual |
Note-off handler for the ModuleCore.
Core Specific:
processInfo | is the thunk-barrier compliant data structure for passing all needed parameters |
Implements SynthLab::ModuleCore.
|
overridevirtual |
Note-on handler for the ModuleCore.
Core Specific:
processInfo | is the thunk-barrier compliant data structure for passing all needed parameters |
Implements SynthLab::ModuleCore.
|
overridevirtual |
Renders the output of the module.
processInfo | the thunk-barrier compliant data structure for passing all needed parameters |
Implements SynthLab::ModuleCore.
|
protected |
Renders one sample out of the wavetable Core Specific:
helper to render each sample from wavetable
clock | the current timebase |
|
overridevirtual |
Resets object to initialized state.
ModuleCore Overrides
processInfo | the thunk-barrier compliant data structure for passing all needed parameters |
Implements SynthLab::ModuleCore.
|
overridevirtual |
Updates the object for the next block of audio processing.
processInfo | the thunk-barrier compliant data structure for passing all needed parameters |
Implements SynthLab::ModuleCore.