1 #ifndef __synthCore_h__ 2 #define __synthCore_h__ 5 #include "synthvoice.h" 8 #include "../source/synthbase.h" 9 #include "../source/audiodelay.h" 48 bool enableMIDINoteEvents =
true;
51 uint32_t synthModeIndex =
enumToInt(SynthMode::kMono);
54 double globalVolume_dB = 0.0;
57 unsigned int globalPitchBendSensCoarse = 7;
58 unsigned int globalPitchBendSensFine = 0;
62 int globalTuningCoarse = 0;
63 int globalTuningFine = 0;
66 double globalUnisonDetune_Cents = 0.0;
69 std::shared_ptr<SynthVoiceParameters> voiceParameters = std::make_shared<SynthVoiceParameters>();
77 std::shared_ptr<AudioDelayParameters> audioDelayParameters = std::make_shared<AudioDelayParameters>();
78 bool enableDelayFX =
false;
105 virtual bool reset(
double _sampleRate);
108 virtual bool initialize(
const char* dllPath =
nullptr);
115 void getParameters(std::shared_ptr<SynthEngineParameters>& _parameters) { _parameters = parameters; }
118 void setParameters(std::shared_ptr<SynthEngineParameters>& _parameters);
135 void setDynamicModules(std::vector<std::shared_ptr<SynthLab::ModuleCore>> modules);
144 std::shared_ptr<SynthEngineParameters> parameters = std::make_shared<SynthEngineParameters>();
147 std::shared_ptr<MidiInputData> midiInputData = std::make_shared<MidiInputData>();
148 std::shared_ptr<MidiOutputData> midiOutputData = std::make_shared<MidiOutputData>();
154 std::shared_ptr<WavetableDatabase> wavetableDatabase =
nullptr;
157 std::shared_ptr<PCMSampleDatabase> sampleDatabase =
nullptr;
160 std::unique_ptr<AudioDelay> pingPongDelay =
nullptr;
#define enumToInt(ENUM)
macro helper to cast a typed enum to an int
Definition: synthfunctions.h:245
virtual bool reset(double _sampleRate)
Resets all voices and the audio delay object.
Definition: synthengine.cpp:157
std::vector< std::string > getModuleCoreNames(uint32_t moduleType)
Gets module core names, four per object.
Definition: synthengine.cpp:109
void accumulateVoice(SynthProcessInfo &synthProcessInfo, double scaling=0.707)
Accumulates voice buffers into a single mix buffer for each channel.
Definition: synthengine.cpp:327
int getFreeVoiceIndex()
Helper function to find a free voice to use.
Definition: synthengine.cpp:612
int getActiveVoiceIndexInNoteOn(unsigned int midiNoteNumber)
Helper function to find the voice that is playing a certain MIDI note.
Definition: synthengine.cpp:661
std::unique_ptr< SynthVoice > synthVoices[MAX_VOICES]
array of voice objects for the engine
Definition: synthengine.h:151
SynthEngine(uint32_t blockSize=64)
Construction:
Definition: synthengine.cpp:31
virtual bool render(SynthProcessInfo &synthProcessInfo)
Render a buffer of output audio samples.
Definition: synthengine.cpp:209
Contains parameters for the Synth Engine component.
Definition: synthengine.h:43
Definition: synthengine.cpp:16
std::vector< std::string > getModuleStrings(uint32_t mask)
Gets module-specific core STRINGS (e.g. waveform names for oscillators, filter types for filters...
Definition: synthengine.cpp:121
int getStealingVoiceIndexInNoteOn(unsigned int midiNoteNumber)
Helper function to find the voice that is playing a certain MIDI note and that will be stolen...
Definition: synthengine.cpp:681
int getVoiceIndexToSteal()
Helper function to find a free voice to steal based on some kind of heuristic.
Definition: synthengine.cpp:630
void setAllCustomUpdateCodes()
Forwards custom code settings to first voice (since all voices share the same architecture) ...
Definition: synthengine.cpp:84
void setParameters(std::shared_ptr< SynthEngineParameters > &_parameters)
Function to update the engine and voice parameters.
Definition: synthengine.cpp:512
const uint32_t MAX_VOICES
Definition: synthconstants.h:35
Definition: sequencer.h:564
virtual bool initialize(const char *dllPath=nullptr)
Initializes all voices with the DLL path.
Definition: synthengine.cpp:181
void applyGlobalVolume(SynthProcessInfo &synthProcessInfo)
Apply a single global volume control to output mix buffers.
Definition: synthengine.cpp:292
This structure holds all of the information needed to for the plugin framework to send MIDI informati...
Definition: synthbase.h:1324
Encapsulates an entire synth engine, producing one type of synthesizer set of voices (e...
Definition: synthengine.h:98
virtual ~SynthEngine()
Destruction:
Definition: synthengine.cpp:72
virtual bool processMIDIEvent(midiEvent &event)
The MIDI event handler function; for note on/off messages it finds the voices to turn on/off...
Definition: synthengine.cpp:352
void setDynamicModules(std::vector< std::shared_ptr< SynthLab::ModuleCore >> modules)
Adds dynamic module cores to the voice's member obejcts.
Definition: synthengine.cpp:95
std::vector< std::string > getModKnobStrings(uint32_t mask)
Gets module-specific Mod Knob label STRINGS.
Definition: synthengine.cpp:138
Information about a MIDI event.
Definition: synthstructures.h:166