|
SynthLab SDK
|
Yamaha DX EG-based. More...
#include <dxegcore.h>
Public Member Functions | |
| DXEGCore () | |
| Construction: Cores follow the same construction pattern. More... | |
| virtual | ~DXEGCore () |
| 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... | |
| virtual int32_t | getState () override |
| virtual bool | shutdown () override |
| Shutdown handler for EG. More... | |
| virtual void | setSustainOverride (bool b) override |
| Sustain pedal handler for EG. More... | |
Public Member Functions inherited from SynthLab::ModuleCore | |
| ModuleCore () | |
| Constructs a ModuleCore. More... | |
| 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 | setStepInc (double timeMsec, double scale=1.0) |
| Calculates linear step increment based on time in millisecs. More... | |
Protected Attributes | |
| double | egStepInc = 0.0 |
| linear time stepping More... | |
| double | attackTimeScalar = 0.0 |
| for MIDI modulations to attack time | |
| double | decayTimeScalar = 0.0 |
| for MIDI modulations to decay time | |
| EGState | state = EGState::kOff |
| state variable for FSM | |
| double | envelopeOutput = 0.0 |
| current outupt | |
| double | linearEnvOutput = 0.0 |
| current outupt | |
| double | curveEnvOutput = 0.0 |
| current outupt | |
| double | dxOutput = 0.0 |
| final output value | |
| double | releaseLevel = 0.0 |
| release end point | |
| double | sampleRate = 0.0 |
| fs | |
| bool | sustainOverride = false |
| if true, places the EG into sustain mode | |
| bool | releasePending = false |
| a flag set when a note off event occurs while the sustain pedal is held, telling the EG to go to the release state once the pedal is released | |
| bool | resetToZero = false |
| notes the EG is in reset-to-zero mode | |
| bool | noteOff = false |
| not currently used | |
| bool | retriggered = false |
| for retrigger modulation | |
| double | lastTriggerMod = 0.0 |
| for detecting rising edge of modulator | |
| double | incShutdown = 0.0 |
| shutdown linear incrementer | |
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 | |
Yamaha DX EG-based.
Base Class: ModuleCore
GUI Parameters: EGParameters
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::DXEGCore::DXEGCore | ( | ) |
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.
|
inlineoverridevirtual |
ModuleCore Overrides for EG Cores only
Reimplemented from SynthLab::ModuleCore.
|
overridevirtual |
Renders the output of the module.
| processInfo | the thunk-barrier compliant data structure for passing all needed parameters |
< current outupt
< current outupt
Implements SynthLab::ModuleCore.
|
overridevirtual |
Resets object to initialized state.
ModuleCore Overrides
| processInfo | the thunk-barrier compliant data structure for passing all needed parameters |
Implements SynthLab::ModuleCore.
|
inlineprotected |
Calculates linear step increment based on time in millisecs.
calculate new step size
| timeMsec | the time in milliseconds scalar value for stretching or shrinking the final value |
|
overridevirtual |
Sustain pedal handler for EG.
Reimplemented from SynthLab::ModuleCore.
|
overridevirtual |
Shutdown handler for EG.
Reimplemented from 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.
|
protected |
linear time stepping
local variables