ASPiK SDK
|
The VST3Plugin object is the ASPiK plugin shell for the VST3 API. More...
#include <vst3plugin.h>
Public Member Functions | |
VST3Plugin () | |
object constructor: because of class factory, do NOT use this for init; use initialize() instead More... | |
~VST3Plugin () | |
object destructor: because of class factory, do NOT use this for destruction; use terminate() instead More... | |
tresult PLUGIN_API | initialize (FUnknown *context) override |
object initializer More... | |
tresult PLUGIN_API | setBusArrangements (SpeakerArrangement *inputs, int32 numIns, SpeakerArrangement *outputs, int32 numOuts) override |
Client queries us for our supported Busses; this is where you can modify to support mono, surround, etc... More... | |
tresult PLUGIN_API | canProcessSampleSize (int32 symbolicSampleSize) override |
Client queries us for our supported sample lengths. More... | |
tresult PLUGIN_API | setupProcessing (ProcessSetup &newSetup) override |
we get information about sample rate, bit-depth, etc... More... | |
tresult PLUGIN_API | setActive (TBool state) override |
VST3 plugins may be turned on or off; you are supposed to dynamically delare stuff when activated then delete when de-activated. More... | |
tresult PLUGIN_API | setState (IBStream *fileStream) override |
This is the READ part of the serialization process. We get the stream interface and use it to read from the filestream. More... | |
tresult PLUGIN_API | getState (IBStream *fileStream) override |
This is the WRITE part of the serialization process. We get the stream interface and use it to write to the filestream. This is important because it is how the Factory Default is set at startup, as well as when writing presets. More... | |
bool | doControlUpdate (ProcessData &data) |
Find and issue Control Changes. More... | |
tresult PLUGIN_API | process (ProcessData &data) override |
the VST3 audio processing function More... | |
virtual tresult PLUGIN_API | getMidiControllerAssignment (int32 busIndex, int16 channel, CtrlNumber midiControllerNumber, ParamID &id) override |
The client queries this 129 times for 130 possible control messages, see ivstsmidicontrollers.h for the VST defines for kPitchBend, kCtrlModWheel, etc... for each MIDI Channel in our Event Bus. More... | |
IPlugView *PLUGIN_API | createView (const char *_name) override |
creates the custom GUI view More... | |
tresult PLUGIN_API | terminate () override |
object destroyer More... | |
virtual tresult | receiveText (const char8 *text) override |
VST3 messaging system - not used in ASPiK but here if you want to play with messaging. More... | |
tresult PLUGIN_API | setParamNormalizedFromFile (ParamID tag, ParamValue value) |
helper function for setComponentState() More... | |
tresult PLUGIN_API | setComponentState (IBStream *fileStream) override |
This is the serialization-read function so the GUI can be updated from a preset or startup. More... | |
void | updateMeters (ProcessData &data, bool forceOff=false) |
update the outbound VST3 parameters that correspond to plugin meter variables More... | |
bool | addProgramList (ProgramList *list) |
part of the IUnitInfo support for presets; generally no user editable code here. More... | |
ProgramList * | getProgramList (ProgramListID listId) const |
part of the IUnitInfo support for presets; generally no user editable code here. More... | |
tresult | notifyPogramListChange (ProgramListID listId, int32 programIndex=kAllProgramInvalid) |
If list changes; should not be called as we only have one program list. More... | |
tresult PLUGIN_API | setParamNormalized (ParamID tag, ParamValue value) override |
This is overridden for selecting a preset, this is also called when automating parameters. More... | |
virtual int32 PLUGIN_API | getProgramListCount () override |
We have one list for our one set of presets. More... | |
virtual tresult PLUGIN_API | getProgramListInfo (int32 listIndex, ProgramListInfo &info) override |
Get information about our preset list. More... | |
virtual tresult PLUGIN_API | getProgramName (ProgramListID listId, int32 programIndex, String128 name) override |
Get preset name. More... | |
virtual tresult PLUGIN_API | getProgramInfo (ProgramListID listId, int32 programIndex, CString attributeId, String128 attributeValue) override |
Only used for presets. More... | |
virtual tresult PLUGIN_API | hasProgramPitchNames (ProgramListID listId, int32 programIndex) override |
Not Used. More... | |
virtual tresult PLUGIN_API | getProgramPitchName (ProgramListID listId, int32 programIndex, int16 midiPitch, String128 name) override |
Not Used. More... | |
virtual tresult | setProgramName (ProgramListID listId, int32 programIndex, const String128 name) override |
Set preset name. More... | |
virtual void PLUGIN_API | update (FUnknown *changedUnknown, int32 message) override |
Toggle preset. More... | |
virtual uint32 PLUGIN_API | getLatencySamples () override |
virtual uint32 PLUGIN_API | getTailSamples () override |
Returns the tail-time in samples. More... | |
void | updateHostInfo (ProcessData &data, HostInfo *hostInfo) |
update the incoming host data for the plugin core More... | |
tresult PLUGIN_API | initialize (FUnknown *context) override |
tresult PLUGIN_API | setBusArrangements (SpeakerArrangement *inputs, int32 numIns, SpeakerArrangement *outputs, int32 numOuts) override |
tresult PLUGIN_API | canProcessSampleSize (int32 symbolicSampleSize) override |
tresult PLUGIN_API | setupProcessing (ProcessSetup &newSetup) override |
tresult PLUGIN_API | setActive (TBool state) override |
tresult PLUGIN_API | setState (IBStream *fileStream) override |
tresult PLUGIN_API | getState (IBStream *fileStream) override |
bool | doControlUpdate (ProcessData &data) |
tresult PLUGIN_API | process (ProcessData &data) override |
virtual tresult PLUGIN_API | getMidiControllerAssignment (int32 busIndex, int16 channel, CtrlNumber midiControllerNumber, ParamID &id) override |
IPlugView *PLUGIN_API | createView (const char *_name) override |
tresult PLUGIN_API | terminate () override |
virtual tresult | receiveText (const char8 *text) override |
tresult PLUGIN_API | setParamNormalizedFromFile (ParamID tag, ParamValue value) |
tresult PLUGIN_API | setParamNormalized (ParamID tag, ParamValue value) override |
tresult PLUGIN_API | setComponentState (IBStream *fileStream) override |
void | updateMeters (ProcessData &data, bool forceOff=false) |
bool | addUnit (Unit *unit) |
IUnitInfo handler. More... | |
tresult PLUGIN_API | getUnitInfo (int32 unitIndex, UnitInfo &info) override |
IUnitInfo handler. More... | |
bool | addProgramList (ProgramList *list) |
ProgramList * | getProgramList (ProgramListID listId) const |
tresult | notifyPogramListChange (ProgramListID listId, int32 programIndex=kAllProgramInvalid) |
virtual int32 PLUGIN_API | getProgramListCount () override |
virtual tresult PLUGIN_API | getProgramListInfo (int32 listIndex, ProgramListInfo &info) override |
virtual tresult PLUGIN_API | getProgramName (ProgramListID listId, int32 programIndex, String128 name) override |
virtual tresult PLUGIN_API | getProgramInfo (ProgramListID listId, int32 programIndex, CString attributeId, String128 attributeValue) override |
virtual tresult PLUGIN_API | hasProgramPitchNames (ProgramListID listId, int32 programIndex) override |
virtual tresult PLUGIN_API | getProgramPitchName (ProgramListID listId, int32 programIndex, int16 midiPitch, String128 name) override |
virtual tresult | setProgramName (ProgramListID listId, int32 programIndex, const String128 name) override |
virtual void PLUGIN_API | update (FUnknown *changedUnknown, int32 message) override |
virtual uint32 PLUGIN_API | getLatencySamples () override |
virtual uint32 PLUGIN_API | getTailSamples () override |
void | updateHostInfo (ProcessData &data, HostInfo *hostInfo) |
Static Public Member Functions | |
static FUnknown * | createInstance (void *context) |
static FUID * | getFUID () |
static function for VST3 clsss factory More... | |
static const char * | getPluginName () |
static function for VST3 clsss factory More... | |
static const char * | getVendorName () |
static function for VST3 clsss factory More... | |
static const char * | getVendorURL () |
static function for VST3 clsss factory More... | |
static const char * | getVendorEmail () |
static function for VST3 clsss factory More... | |
static CString | getPluginType () |
static function for VST3 clsss factory More... | |
static FUnknown * | createInstance (void *context) |
static FUID * | getFUID () |
static function for VST3 clsss factory | |
static const char * | getPluginName () |
static function for VST3 clsss factory | |
static const char * | getVendorName () |
static function for VST3 clsss factory | |
static const char * | getVendorURL () |
static function for VST3 clsss factory | |
static const char * | getVendorEmail () |
static function for VST3 clsss factory | |
static CString | getPluginType () |
static function for VST3 clsss factory | |
Public Attributes | |
uint32 | m_uLatencyInSamples = 0 |
set in constructor with plugin | |
Protected Attributes | |
VSTParamUpdateQueue ** | m_pParamUpdateQueueArray = nullptr |
sample accurate parameter automation | |
unsigned int | sampleAccuracy = 1 |
sample accurate parameter automation | |
bool | enableSAAVST3 = false |
sample accurate parameter automation | |
UnitVector | units |
ProgramListVector | programLists |
ProgramIndexMap | programIndexMap |
UnitID | selectedUnit |
The VST3Plugin object is the ASPiK plugin shell for the VST3 API.
Steinberg::Vst::ASPiK::VST3Plugin::VST3Plugin | ( | ) |
object constructor: because of class factory, do NOT use this for init; use initialize() instead
NOTES:
Steinberg::Vst::ASPiK::VST3Plugin::~VST3Plugin | ( | ) |
object destructor: because of class factory, do NOT use this for destruction; use terminate() instead
NOTES:
bool Steinberg::Vst::ASPiK::VST3Plugin::addProgramList | ( | ProgramList * | list | ) |
for future compat for added programs, etc...
bool Steinberg::Vst::ASPiK::VST3Plugin::addProgramList | ( | ProgramList * | list | ) |
part of the IUnitInfo support for presets; generally no user editable code here.
IUnitInfo for future compat; not curently supporting program lists; only have/need Factory Presets!
NOTES:
bool Steinberg::Vst::ASPiK::VST3Plugin::addUnit | ( | Unit * | unit | ) |
IUnitInfo handler.
IUnitInfo
NOTES:
|
override |
Define our word-length capabilities (currently 32 bit only)
|
override |
Client queries us for our supported sample lengths.
Define our word-length capabilities (currently 32 bit only)
NOTES:
|
inlinestatic |
our COM creation method
|
inlinestatic |
our COM creation method
|
override |
IPlugView: create our custom GUI
|
override |
creates the custom GUI view
IPlugView: create our custom GUI
NOTES:
bool Steinberg::Vst::ASPiK::VST3Plugin::doControlUpdate | ( | ProcessData & | data | ) |
functions to reduce size of process()
bool Steinberg::Vst::ASPiK::VST3Plugin::doControlUpdate | ( | ProcessData & | data | ) |
Find and issue Control Changes.
functions to reduce size of process()
NOTES:
|
static |
static function for VST3 clsss factory
static function for class facgtory access to plugin core's corresponding static function
IUnitInfo handler.
NOTES:
NOTES:
NOTES:
|
inlineoverridevirtual |
base class override
|
inlineoverridevirtual |
base class override
|
overridevirtual |
IMidiMapping
|
overridevirtual |
The client queries this 129 times for 130 possible control messages, see ivstsmidicontrollers.h for the VST defines for kPitchBend, kCtrlModWheel, etc... for each MIDI Channel in our Event Bus.
IMidiMapping
NOTES:
|
static |
static function for VST3 clsss factory
static function for class facgtory access to plugin core's corresponding static function
NOTES:
|
static |
static function for VST3 clsss factory
static function for class facgtory access to plugin core's corresponding static function
NOTES:
|
overridevirtual |
Only used for presets.
NOTES:
ProgramList * Steinberg::Vst::ASPiK::VST3Plugin::getProgramList | ( | ProgramListID | listId | ) | const |
part of the IUnitInfo support for presets; generally no user editable code here.
NOTES:
|
overridevirtual |
We have one list for our one set of presets.
NOTES:
|
overridevirtual |
Get information about our preset list.
NOTES:
|
overridevirtual |
Get preset name.
NOTES:
|
overridevirtual |
Not Used.
NOTES:
|
override |
This is the WRITE part of the serialization process. We get the stream interface and use it to write to the filestream. This is important because it is how the Factory Default is set at startup, as well as when writing presets.
NOTES:
|
overridevirtual |
base class override for tailtime
|
overridevirtual |
Returns the tail-time in samples.
base class override for tailtime
NOTES:
|
override |
IUnitInfo handler.
NOTES:
|
static |
static function for VST3 clsss factory
static function for class facgtory access to plugin core's corresponding static function
NOTES:
|
static |
static function for VST3 clsss factory
static function for class facgtory access to plugin core's corresponding static function
NOTES:
|
static |
static function for VST3 clsss factory
static function for class facgtory access to plugin core's corresponding static function
NOTES:
|
overridevirtual |
Not Used.
NOTES:
|
override |
One time init to define our I/O and vsteditcontroller parameters
|
override |
object initializer
One time init to define our I/O and vsteditcontroller parameters
NOTES:
tresult Steinberg::Vst::ASPiK::VST3Plugin::notifyPogramListChange | ( | ProgramListID | listId, |
int32 | programIndex = kAllProgramInvalid |
||
) |
If list changes; should not be called as we only have one program list.
NOTES:
|
override |
The all important process method where the audio is rendered/effected
|
override |
the VST3 audio processing function
The all important process method where the audio is rendered/effected
data | process information from the host |
NOTES:
|
overridevirtual |
for GUI_TIMER_PING and recreate view operations
|
overridevirtual |
VST3 messaging system - not used in ASPiK but here if you want to play with messaging.
for GUI_TIMER_PING and recreate view operations
NOTES:
|
override |
Turn on/off
|
override |
VST3 plugins may be turned on or off; you are supposed to dynamically delare stuff when activated then delete when de-activated.
Turn on/off
NOTES:
|
override |
Define the audio I/O we support
|
override |
Client queries us for our supported Busses; this is where you can modify to support mono, surround, etc...
Define the audio I/O we support
NOTES:
numIns | = number of input busses |
numOuts | = number of output busses |
inputs[x] | –> requested input channel format for that bus |
outputs[x] | –> requested output channel format for that bus |
|
override |
serialize-read from file to setup the GUI parameters
|
override |
This is the serialization-read function so the GUI can be updated from a preset or startup.
serialize-read from file to setup the GUI parameters
NOTES:
|
override |
This is overridden for selecting a preset, this is also called when automating parameters.
NOTES:
tresult PLUGIN_API Steinberg::Vst::ASPiK::VST3Plugin::setParamNormalizedFromFile | ( | ParamID | tag, |
ParamValue | value | ||
) |
helper function for serialization
tresult PLUGIN_API Steinberg::Vst::ASPiK::VST3Plugin::setParamNormalizedFromFile | ( | ParamID | tag, |
ParamValue | value | ||
) |
helper function for setComponentState()
helper function for serialization
NOTES:
|
overridevirtual |
Set preset name.
NOTES:
|
override |
Serialization: Save and load presets from a file stream
|
override |
This is the READ part of the serialization process. We get the stream interface and use it to read from the filestream.
Serialization: Save and load presets from a file stream
NOTES:
|
override |
you can access info about the processing via ProcessSetup; see ivstaudioprocessor.h
|
override |
we get information about sample rate, bit-depth, etc...
you can access info about the processing via ProcessSetup; see ivstaudioprocessor.h
NOTES:
|
override |
the end. this destroys the core
|
override |
object destroyer
the end. this destroys the core
NOTES:
|
overridevirtual |
from IDependent---------------—
|
overridevirtual |
Toggle preset.
from IDependent---------------—
NOTES:
void Steinberg::Vst::ASPiK::VST3Plugin::updateHostInfo | ( | ProcessData & | data, |
HostInfo * | hostInfo | ||
) |
update host info for this process loop
void Steinberg::Vst::ASPiK::VST3Plugin::updateHostInfo | ( | ProcessData & | data, |
HostInfo * | hostInfo | ||
) |
update the incoming host data for the plugin core
update host info for this process loop
data | process information from the host |
hostInfo | HostInfo struct to fill out as the return |
NOTES:
void Steinberg::Vst::ASPiK::VST3Plugin::updateMeters | ( | ProcessData & | data, |
bool | forceOff = false |
||
) |
for meters
void Steinberg::Vst::ASPiK::VST3Plugin::updateMeters | ( | ProcessData & | data, |
bool | forceOff = false |
||
) |
update the outbound VST3 parameters that correspond to plugin meter variables
for meters
data | process information from the host |
forceOff | turn off meters regawrdless of audio input values |
NOTES: