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 | |
~VST3Plugin () | |
object destructor: because of class factory, do NOT use this for destruction; use terminate() instead | |
tresult PLUGIN_API | initialize (FUnknown *context) override |
object initializer | |
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... | |
tresult PLUGIN_API | canProcessSampleSize (int32 symbolicSampleSize) override |
Client queries us for our supported sample lengths. | |
tresult PLUGIN_API | setupProcessing (ProcessSetup &newSetup) override |
we get information about sample rate, bit-depth, etc... | |
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. | |
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. | |
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. | |
bool | doControlUpdate (ProcessData &data) |
Find and issue Control Changes. | |
tresult PLUGIN_API | process (ProcessData &data) override |
the VST3 audio processing function | |
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. | |
bool | issueMIDICCProxyMessage (ParamID proxyParamID, ParamValue proxyParamValue) |
Find and issue Control Changes. | |
void | unipolarDoubleToMIDI14_bit (double unipolarValue, uint32_t &midiDataLSB, uint32_t &midiDataMSB) |
IPlugView *PLUGIN_API | createView (const char *_name) override |
creates the custom GUI view | |
tresult PLUGIN_API | terminate () override |
object destroyer | |
virtual tresult | receiveText (const char8 *text) override |
VST3 messaging system - not used in ASPiK but here if you want to play with messaging. | |
tresult PLUGIN_API | setParamNormalizedFromFile (ParamID tag, ParamValue value) |
helper function for setComponentState() | |
tresult PLUGIN_API | setComponentState (IBStream *fileStream) override |
This is the serialization-read function so the GUI can be updated from a preset or startup. | |
void | updateMeters (ProcessData &data, bool forceOff=false) |
update the outbound VST3 parameters that correspond to plugin meter variables | |
tresult PLUGIN_API | setParamNormalized (ParamID tag, ParamValue value) override |
This is overridden for selecting a preset, this is also called when automating parameters. | |
virtual tresult PLUGIN_API | getProgramName (ProgramListID listId, int32 programIndex, String128 name) override |
Get preset name. | |
virtual void PLUGIN_API | update (FUnknown *changedUnknown, int32 message) override |
Toggle preset. | |
virtual uint32 PLUGIN_API | getLatencySamples () override |
virtual uint32 PLUGIN_API | getTailSamples () override |
Returns the tail-time in samples. | |
void | updateHostInfo (ProcessData &data, HostInfo *hostInfo) |
update the incoming host data for the plugin core | |
Static Public Member Functions | |
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:
|
override |
Client queries us for our supported sample lengths.
Define our word-length capabilities (currently 32 bit only)
NOTES:
|
inlinestatic |
our COM creation method
|
override |
creates the custom GUI view
IPlugView: create our custom GUI
NOTES:
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
IUnitInfo handler.
NOTES:
static function for class facgtory access to plugin core's corresponding static function
NOTES:
|
inlineoverridevirtual |
base class override
|
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 |
Get preset name.
IUnitInfo
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 |
Returns the tail-time in samples.
base class override for tailtime
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:
|
override |
object initializer
One time init to define our I/O and vsteditcontroller parameters
NOTES:
bool Steinberg::Vst::ASPiK::VST3Plugin::issueMIDICCProxyMessage | ( | ParamID | proxyParamID, |
ParamValue | proxyParamValue | ||
) |
Find and issue Control Changes.
NOTES:
|
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 |
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 |
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 |
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 |
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 setComponentState()
helper function for serialization
NOTES:
|
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 |
we get information about sample rate, bit-depth, etc...
you can access info about the processing via ProcessSetup; see ivstaudioprocessor.h
NOTES:
|
override |
object destroyer
the end. this destroys the core
NOTES:
|
overridevirtual |
Toggle preset.
from IDependent---------------—
NOTES:
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 |
||
) |
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: