SynthLab SDK
SynthLab::CoreProcData Struct Reference

This 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. More...

#include <synthbase.h>

Public Attributes

IModulatormodulationInputs = nullptr
 input modulation values More...
 
IModulatormodulationOutputs = nullptr
 output modulation values
 
float ** inputBuffers = nullptr
 set of input bufers, one per channel More...
 
float ** outputBuffers = nullptr
 set of output bufers, one per channel
 
float ** fmBuffers = nullptr
 used for DX synths (phase modulator synths)
 
IWavetableDatabasewavetableDatabase = nullptr
 wavetable database, usually owned by engine More...
 
IPCMSampleDatabasesampleDatabase = nullptr
 PCM sample database, usually owned by engine.
 
IMidiInputDatamidiInputData = nullptr
 MIDI input daa, usually owned by engine.
 
void * moduleParameters = nullptr
 module parameters, cloaked as void* – varies according to module
 
const char * dllPath = nullptr
 path to the plugin, used for finding PCM sample WAV files
 
double sampleRate = 0.0
 fs
 
uint32_t samplesToProcess = 64
 number of samples in this block
 
double unisonDetuneCents = 0.0
 detuning value for this core
 
double unisonStartPhase = 0.0
 unison start phase value for this core
 
double BPM = 120.0
 current BPM, needed for LFO sync to BPM
 
MIDINoteEvent noteEvent
 the MIDI note event for the current audio block
 

Detailed Description

This 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.

  • this structure must survive being passed across a thunk-barrier for use with dynamic modules
Author
Will Pirkle http://www.willpirkle.com
Remarks
This object is included and described in further detail in Designing Software Synthesizer Plugins in C++ 2nd Ed. by Will Pirkle
Version
Revision : 1.0
Date
Date : 2021 / 04 / 26

Member Data Documentation

◆ inputBuffers

float** SynthLab::CoreProcData::inputBuffers = nullptr

set of input bufers, one per channel

old fashioned (naked) pointers can survive the thunk-barrier

◆ modulationInputs

IModulator* SynthLab::CoreProcData::modulationInputs = nullptr

input modulation values

Interfaces to modulation arrays

◆ wavetableDatabase

IWavetableDatabase* SynthLab::CoreProcData::wavetableDatabase = nullptr

wavetable database, usually owned by engine

Pointers to shared resources


The documentation for this struct was generated from the following file: