VST 3 Interfaces
VST 3.6.14
SDK for developing VST Plug-in
|
All VST specific interfaces are located in Vst namespace. More...
Namespaces | |
Attributes | |
Attributes used to defined a Layer in a VST XML Representation. | |
AttributesFlags | |
Attributes Flags defining a Layer in a VST XML Representation. | |
AttributesFunction | |
Attributes Function used to defined the function of a Layer in a VST XML Representation. | |
AttributesStyle | |
Attributes Style associated a specific Layer Type in a VST XML Representation. | |
ChannelContext | |
For Channel Context Info Interface. | |
CurveType | |
Curve Types used in a VST XML Representation. | |
LayerType | |
Layer Types used in a VST XML Representation. | |
MusicalCharacter | |
Predefined Musical Character. | |
MusicalInstrument | |
Predefined Musical Instrument. | |
MusicalStyle | |
Predefined Musical Style. | |
PlugType | |
Component Types used as subCategories in PClassInfo2. | |
PresetAttributes | |
Predefined Preset Attributes. | |
SpeakerArr | |
Speaker Arrangement Definitions (SpeakerArrangement) | |
StateType | |
Predefined StateType used for Key kStateType. | |
ViewType | |
View Types used for IEditController::createView. | |
Classes | |
struct | AudioBusBuffers |
Processing buffers of an audio bus. More... | |
struct | BusInfo |
BusInfo: This is the structure used with getBusInfo, informing the host about what is a specific given bus. More... | |
struct | Chord |
Description of a chord. More... | |
struct | ChordEvent |
Chord event specific data. More... | |
struct | DataEvent |
Data event specific data. More... | |
struct | Event |
Event. More... | |
struct | FrameRate |
Frame Rate A frame rate describes the number of image (frame) displayed per second. More... | |
class | IAttributeList |
Attribute list used in IMessage and IStreamAttributes. More... | |
class | IAudioPresentationLatency |
Extended IAudioProcessor interface for a component. More... | |
class | IAudioProcessor |
Audio Processing Interface. More... | |
class | IAutomationState |
Extended Plug-in interface IEditController. More... | |
class | IComponent |
Component Base Interface. More... | |
class | IComponentHandler |
Host callback interface for an edit controller. More... | |
class | IComponentHandler2 |
Extended Host callback interface IComponentHandler2 for an edit controller. More... | |
class | IComponentHandler3 |
Extended Host callback interface IComponentHandler3 for an edit controller. More... | |
class | IComponentHandlerBusActivation |
Extended Host callback interface IComponentHandlerBusActivation for an edit controller. More... | |
class | IConnectionPoint |
Connect a component with another one. More... | |
class | IContextMenu |
Context Menu Interface. More... | |
struct | IContextMenuItem |
IContextMenuItem is an entry element of the context menu. More... | |
class | IContextMenuTarget |
Context Menu Item Target Interface. More... | |
class | IEditController |
Edit controller component interface. More... | |
class | IEditController2 |
Edit controller component interface extension. More... | |
class | IEditControllerHostEditing |
Parameter Editing from Host. More... | |
class | IEventList |
List of events to process. More... | |
class | IHostApplication |
Basic Host Callback Interface. More... | |
class | IInterAppAudioConnectionNotification |
Extended Plug-in interface IEditController for Inter-App Audio connection state change notifications. More... | |
class | IInterAppAudioHost |
Inter-App Audio host Interface. More... | |
class | IInterAppAudioPresetManager |
Extended Plug-in interface IEditController for Inter-App Audio Preset Management. More... | |
class | IKeyswitchController |
Extended Plug-in interface IEditController for key switches support. More... | |
class | IMessage |
Private Plug-in message. More... | |
class | IMidiLearn |
MIDI Learn Interface. More... | |
class | IMidiMapping |
MIDI Mapping Interface. More... | |
class | INoteExpressionController |
Extended Plug-in interface IEditController for note expression event support. More... | |
class | INoteExpressionPhysicalUIMapping |
Extended Plug-in interface IEditController for note expression event support. More... | |
class | IParameterChanges |
All parameter changes of a processing block. More... | |
class | IParameterFinder |
Extension for IPlugView to find view parameters (lookup value under mouse support) More... | |
class | IParamValueQueue |
Queue of changes for a specific parameter. More... | |
class | IPlugInterfaceSupport |
Host callback interface for an edit controller. More... | |
class | IPrefetchableSupport |
Indicates that the Plug-in could or not support Prefetch (dynamically). More... | |
class | IProgramListData |
Component extension to access program list data. More... | |
class | IStreamAttributes |
Meta attributes of a stream. More... | |
class | ITestPlugProvider |
Test Helper. More... | |
class | IUnitData |
Component extension to access unit data. More... | |
class | IUnitHandler |
Host callback for unit support. More... | |
class | IUnitHandler2 |
Host callback for extended unit support. More... | |
class | IUnitInfo |
Edit controller extension to describe the Plug-in structure. More... | |
class | IVst3ToAAXWrapper |
VST 3 to AAX Wrapper Interface. More... | |
class | IVst3ToAUWrapper |
VST 3 to AU Wrapper Interface. More... | |
class | IVst3ToVst2Wrapper |
VST 3 to VST 2 Wrapper Interface. More... | |
class | IVst3WrapperMPESupport |
Wrapper MPE Support Interface. More... | |
class | IXmlRepresentationController |
Extended Plug-in interface IEditController for a component. More... | |
struct | KeyswitchInfo |
KeyswitchInfo is the structure describing a key switch This structure is used by the method IKeyswitchController::getKeyswitchInfo. More... | |
struct | LegacyMIDICCOutEvent |
Legacy MIDI CC Out event specific data. More... | |
struct | NoteExpressionTextEvent |
Note Expression Text event. More... | |
struct | NoteExpressionTypeInfo |
NoteExpressionTypeInfo is the structure describing a note expression supported by the Plug-in. More... | |
struct | NoteExpressionValueDescription |
Description of a Note Expression Type This structure is part of the NoteExpressionTypeInfo structure, it describes for given NoteExpressionTypeID its default value (for example 0.5 for a kTuningTypeID (kIsBipolar: centered)), its minimum and maximum (for predefined NoteExpressionTypeID the full range is predefined too) and a stepCount when the given NoteExpressionTypeID is limited to discrete values (like on/off state). More... | |
struct | NoteExpressionValueEvent |
Note Expression Value event. More... | |
struct | NoteOffEvent |
Note-off event specific data. More... | |
struct | NoteOnEvent |
Note-on event specific data. More... | |
struct | ParameterInfo |
Controller Parameter Info. More... | |
struct | PhysicalUIMap |
PhysicalUIMap describes a mapping of a noteExpression Type to a Physical UI Type. More... | |
struct | PhysicalUIMapList |
PhysicalUIMapList describes a list of PhysicalUIMap. More... | |
struct | PolyPressureEvent |
PolyPressure event specific data. More... | |
struct | ProcessContext |
Audio processing context. More... | |
struct | ProcessData |
Any data needed in audio processing. More... | |
struct | ProcessSetup |
Audio processing setup. More... | |
struct | ProgramListInfo |
Basic Program List Description. More... | |
struct | RepresentationInfo |
RepresentationInfo is the structure describing a representation This structure is used in the function. More... | |
struct | RoutingInfo |
Routing Information: When the Plug-in supports multiple I/O buses, a host may want to know how the buses are related. More... | |
struct | ScaleEvent |
Scale event specific data. More... | |
struct | UnitInfo |
Basic Unit Description. More... | |
Typedefs | |
typedef int32 | KnobMode |
Knob Mode. More... | |
typedef uint32 | NoteExpressionTypeID |
typedef double | NoteExpressionValue |
typedef uint32 | KeyswitchTypeID |
typedef uint32 | PhysicalUITypeID |
typedef uint32 | PrefetchableSupport |
typedef char16 | TChar |
UTF-16 character. More... | |
typedef TChar | String128 [128] |
128 character UTF-16 string More... | |
typedef const char8 * | CString |
C-String. More... | |
typedef int32 | MediaType |
media type (audio/event) More... | |
typedef int32 | BusDirection |
bus direction (in/out) More... | |
typedef int32 | BusType |
bus type (main/aux) More... | |
typedef int32 | IoMode |
I/O mode (see The Simple Mode) More... | |
typedef int32 | UnitID |
unit identifier More... | |
typedef double | ParamValue |
parameter value type More... | |
typedef uint32 | ParamID |
parameter identifier More... | |
typedef int32 | ProgramListID |
program list identifier More... | |
typedef int16 | CtrlNumber |
MIDI controller number (see ControllerNumbers for allowed values) More... | |
typedef double | TQuarterNotes |
time expressed in quarter notes More... | |
typedef int64 | TSamples |
time expressed in audio samples More... | |
typedef uint32 | ColorSpec |
color defining by 4 component ARGB value (Alpha/Red/Green/Blue) More... | |
typedef float | Sample32 |
32-bit precision audio sample More... | |
typedef double | Sample64 |
64-bit precision audio sample More... | |
typedef double | SampleRate |
sample rate More... | |
typedef uint64 | SpeakerArrangement |
Bitset of speakers. More... | |
typedef uint64 | Speaker |
Bit for one speaker. More... | |
Functions | |
IMessage * | allocateMessage (IHostApplication *host) |
Variables | |
const int32 | kDefaultFactoryFlags = PFactoryInfo::kUnicode |
Standard value for PFactoryInfo::flags. More... | |
const Speaker | kSpeakerL = 1 << 0 |
Speaker Definitions. More... | |
const Speaker | kSpeakerR = 1 << 1 |
Right (R) More... | |
const Speaker | kSpeakerC = 1 << 2 |
Center (C) More... | |
const Speaker | kSpeakerLfe = 1 << 3 |
Subbass (Lfe) More... | |
const Speaker | kSpeakerLs = 1 << 4 |
Left Surround (Ls) More... | |
const Speaker | kSpeakerRs = 1 << 5 |
Right Surround (Rs) More... | |
const Speaker | kSpeakerLc = 1 << 6 |
Left of Center (Lc) - Front Left Center. More... | |
const Speaker | kSpeakerRc = 1 << 7 |
Right of Center (Rc) - Front Right Center. More... | |
const Speaker | kSpeakerS = 1 << 8 |
Surround (S) More... | |
const Speaker | kSpeakerCs = kSpeakerS |
Center of Surround (Cs) - Back Center - Surround (S) More... | |
const Speaker | kSpeakerSl = 1 << 9 |
Side Left (Sl) More... | |
const Speaker | kSpeakerSr = 1 << 10 |
Side Right (Sr) More... | |
const Speaker | kSpeakerTc = 1 << 11 |
Top Center Over-head, Top Middle (Tc) More... | |
const Speaker | kSpeakerTfl = 1 << 12 |
Top Front Left (Tfl) More... | |
const Speaker | kSpeakerTfc = 1 << 13 |
Top Front Center (Tfc) More... | |
const Speaker | kSpeakerTfr = 1 << 14 |
Top Front Right (Tfr) More... | |
const Speaker | kSpeakerTrl = 1 << 15 |
Top Rear/Back Left (Trl) More... | |
const Speaker | kSpeakerTrc = 1 << 16 |
Top Rear/Back Center (Trc) More... | |
const Speaker | kSpeakerTrr = 1 << 17 |
Top Rear/Back Right (Trr) More... | |
const Speaker | kSpeakerLfe2 = 1 << 18 |
Subbass 2 (Lfe2) More... | |
const Speaker | kSpeakerM = 1 << 19 |
Mono (M) More... | |
const Speaker | kSpeakerACN0 = (Speaker)1 << 20 |
Ambisonic ACN 0. More... | |
const Speaker | kSpeakerACN1 = (Speaker)1 << 21 |
Ambisonic ACN 1. More... | |
const Speaker | kSpeakerACN2 = (Speaker)1 << 22 |
Ambisonic ACN 2. More... | |
const Speaker | kSpeakerACN3 = (Speaker)1 << 23 |
Ambisonic ACN 3. More... | |
const Speaker | kSpeakerACN4 = (Speaker)1 << 38 |
Ambisonic ACN 4. More... | |
const Speaker | kSpeakerACN5 = (Speaker)1 << 39 |
Ambisonic ACN 5. More... | |
const Speaker | kSpeakerACN6 = (Speaker)1 << 40 |
Ambisonic ACN 6. More... | |
const Speaker | kSpeakerACN7 = (Speaker)1 << 41 |
Ambisonic ACN 7. More... | |
const Speaker | kSpeakerACN8 = (Speaker)1 << 42 |
Ambisonic ACN 8. More... | |
const Speaker | kSpeakerACN9 = (Speaker)1 << 43 |
Ambisonic ACN 9. More... | |
const Speaker | kSpeakerACN10 = (Speaker)1 << 44 |
Ambisonic ACN 10. More... | |
const Speaker | kSpeakerACN11 = (Speaker)1 << 45 |
Ambisonic ACN 11. More... | |
const Speaker | kSpeakerACN12 = (Speaker)1 << 46 |
Ambisonic ACN 12. More... | |
const Speaker | kSpeakerACN13 = (Speaker)1 << 47 |
Ambisonic ACN 13. More... | |
const Speaker | kSpeakerACN14 = (Speaker)1 << 48 |
Ambisonic ACN 14. More... | |
const Speaker | kSpeakerACN15 = (Speaker)1 << 49 |
Ambisonic ACN 15. More... | |
const Speaker | kSpeakerTsl = 1 << 24 |
Top Side Left (Tsl) More... | |
const Speaker | kSpeakerTsr = 1 << 25 |
Top Side Right (Tsr) More... | |
const Speaker | kSpeakerLcs = 1 << 26 |
Left of Center Surround (Lcs) - Back Left Center. More... | |
const Speaker | kSpeakerRcs = 1 << 27 |
Right of Center Surround (Rcs) - Back Right Center. More... | |
const Speaker | kSpeakerBfl = 1 << 28 |
Bottom Front Left (Bfl) More... | |
const Speaker | kSpeakerBfc = 1 << 29 |
Bottom Front Center (Bfc) More... | |
const Speaker | kSpeakerBfr = 1 << 30 |
Bottom Front Right (Bfr) More... | |
const Speaker | kSpeakerPl = (Speaker)1 << 31 |
Proximity Left (Pl) More... | |
const Speaker | kSpeakerPr = (Speaker)1 << 32 |
Proximity Right (Pr) More... | |
const Speaker | kSpeakerBsl = (Speaker)1 << 33 |
Bottom Side Left (Bsl) More... | |
const Speaker | kSpeakerBsr = (Speaker)1 << 34 |
Bottom Side Right (Bsr) More... | |
const Speaker | kSpeakerBrl = (Speaker)1 << 35 |
Bottom Rear Left (Brl) More... | |
const Speaker | kSpeakerBrc = (Speaker)1 << 36 |
Bottom Rear Center (Brc) More... | |
const Speaker | kSpeakerBrr = (Speaker)1 << 37 |
Bottom Rear Right (Brr) More... | |
All VST specific interfaces are located in Vst namespace.
typedef uint32 NoteExpressionTypeID |
typedef double NoteExpressionValue |
typedef uint32 KeyswitchTypeID |
typedef uint32 PhysicalUITypeID |
typedef uint32 PrefetchableSupport |
enum ComponentFlags |
Component Flags used as classFlags in PClassInfo2.
Enumerator | |
---|---|
kDistributable |
Component can be run on remote computer. |
kSimpleModeSupported |
Component supports simple IO mode (or works in simple mode anyway) see The Simple Mode. |
enum SymbolicSampleSizes |
Symbolic sample size.
Enumerator | |
---|---|
kSample32 |
32-bit precision |
kSample64 |
64-bit precision |
enum ProcessModes |
Processing mode informs the Plug-in about the context and at which frequency the process call is called.
VST3 defines 3 modes:
Note about Process Modes switching: -Switching between kRealtime and kPrefetch process modes are done in realtime thread without need of calling IAudioProcessor::setupProcessing, the Plug-in should check in process call the member processMode of ProcessData in order to know in which mode it is processed. -Switching between kRealtime (or kPrefetch) and kOffline requires that the host calls IAudioProcessor::setupProcessing in order to inform the Plug-in about this mode change.
Enumerator | |
---|---|
kRealtime |
realtime processing |
kPrefetch |
prefetch processing |
kOffline |
offline processing |
enum IoModes |
I/O modes.
Enumerator | |
---|---|
kSimple |
1:1 Input / Output. Only used for Instruments. See The Simple Mode |
kAdvanced |
n:m Input / Output. Only used for Instruments. |
kOfflineProcessing |
Plug-in used in an offline processing context. |
enum RestartFlags |
Flags used for IComponentHandler::restartComponent.
Enumerator | |
---|---|
kReloadComponent |
The Component should be reloaded [SDK 3.0.0]. |
kIoChanged |
Input and/or Output Bus configuration has changed [SDK 3.0.0]. |
kParamValuesChanged |
Multiple parameter values have changed (as result of a program change for example) [SDK 3.0.0]. |
kLatencyChanged |
Latency has changed (IAudioProcessor.getLatencySamples) [SDK 3.0.0]. |
kParamTitlesChanged |
Parameter titles or default values or flags have changed [SDK 3.0.0]. |
kMidiCCAssignmentChanged |
MIDI Controller Assignments have changed [SDK 3.0.1]. |
kNoteExpressionChanged |
Note Expression has changed (info, count, PhysicalUIMapping, ...) [SDK 3.5.0]. |
kIoTitlesChanged |
Input and/or Output bus titles have changed [SDK 3.5.0]. |
kPrefetchableSupportChanged |
Prefetch support has changed (.
|
kRoutingInfoChanged |
RoutingInfo has changed (.
|
enum KnobModes |
enum ControllerNumbers |
Controller Numbers (MIDI)
Enumerator | |
---|---|
kCtrlBankSelectMSB |
Bank Select MSB. |
kCtrlModWheel |
Modulation Wheel. |
kCtrlBreath |
Breath controller. |
kCtrlFoot |
Foot Controller. |
kCtrlPortaTime |
Portamento Time. |
kCtrlDataEntryMSB |
Data Entry MSB. |
kCtrlVolume |
Channel Volume (formerly Main Volume) |
kCtrlBalance |
Balance. |
kCtrlPan |
Pan. |
kCtrlExpression |
Expression. |
kCtrlEffect1 |
Effect Control 1. |
kCtrlEffect2 |
Effect Control 2. |
kCtrlGPC1 |
General Purpose Controller #1. |
kCtrlGPC2 |
General Purpose Controller #2. |
kCtrlGPC3 |
General Purpose Controller #3. |
kCtrlGPC4 |
General Purpose Controller #4. |
kCtrlBankSelectLSB |
Bank Select LSB. |
kCtrlDataEntryLSB |
Data Entry LSB. |
kCtrlSustainOnOff |
Damper Pedal On/Off (Sustain) |
kCtrlPortaOnOff |
Portamento On/Off. |
kCtrlSustenutoOnOff |
Sustenuto On/Off. |
kCtrlSoftPedalOnOff |
Soft Pedal On/Off. |
kCtrlLegatoFootSwOnOff |
Legato Footswitch On/Off. |
kCtrlHold2OnOff |
Hold 2 On/Off. |
kCtrlSoundVariation |
Sound Variation. |
kCtrlFilterCutoff |
Filter Cutoff (Timbre/Harmonic Intensity) |
kCtrlReleaseTime |
Release Time. |
kCtrlAttackTime |
Attack Time. |
kCtrlFilterResonance |
Filter Resonance (Brightness) |
kCtrlDecayTime |
Decay Time. |
kCtrlVibratoRate |
Vibrato Rate. |
kCtrlVibratoDepth |
Vibrato Depth. |
kCtrlVibratoDelay |
Vibrato Delay. |
kCtrlSoundCtrler10 |
undefined |
kCtrlGPC5 |
General Purpose Controller #5. |
kCtrlGPC6 |
General Purpose Controller #6. |
kCtrlGPC7 |
General Purpose Controller #7. |
kCtrlGPC8 |
General Purpose Controller #8. |
kCtrlPortaControl |
Portamento Control. |
kCtrlEff1Depth |
Effect 1 Depth (Reverb Send Level) |
kCtrlEff2Depth |
Effect 2 Depth (Tremolo Level) |
kCtrlEff3Depth |
Effect 3 Depth (Chorus Send Level) |
kCtrlEff4Depth |
Effect 4 Depth (Delay/Variation/Detune Level) |
kCtrlEff5Depth |
Effect 5 Depth (Phaser Level) |
kCtrlDataIncrement |
Data Increment (+1) |
kCtrlDataDecrement |
Data Decrement (-1) |
kCtrlNRPNSelectLSB |
NRPN Select LSB. |
kCtrlNRPNSelectMSB |
NRPN Select MSB. |
kCtrlRPNSelectLSB |
RPN Select LSB. |
kCtrlRPNSelectMSB |
RPN Select MSB. |
kCtrlAllSoundsOff |
All Sounds Off. |
kCtrlResetAllCtrlers |
Reset All Controllers. |
kCtrlLocalCtrlOnOff |
Local Control On/Off. |
kCtrlAllNotesOff |
All Notes Off. |
kCtrlOmniModeOff |
Omni Mode Off + All Notes Off. |
kCtrlOmniModeOn |
Omni Mode On + All Notes Off. |
kCtrlPolyModeOnOff |
Poly Mode On/Off + All Sounds Off. |
kCtrlPolyModeOn |
Poly Mode On. |
kAfterTouch |
After Touch (associated to Channel Pressure) |
kPitchBend |
Pitch Bend Change. |
kCountCtrlNumber |
Count of Controller Number. |
kCtrlProgramChange |
Program Change (use LegacyMIDICCOutEvent.value only) |
kCtrlPolyPressure |
Polyphonic Key Pressure (use LegacyMIDICCOutEvent.value for pitch and LegacyMIDICCOutEvent.value2 for pressure) |
kCtrlQuarterFrame |
Quarter Frame ((use LegacyMIDICCOutEvent.value only) |
enum NoteExpressionTypeIDs : uint32 |
NoteExpressionTypeIDs describes the type of the note expression.
VST predefines some types like volume, pan, tuning by defining their ranges and curves. Used by NoteExpressionEvent::typeId and NoteExpressionTypeID::typeId
enum KeyswitchTypeIDs : uint32 |
KeyswitchTypeIDs describes the type of a key switch.
enum PhysicalUITypeIDs |
PhysicalUITypeIDs describes the type of Physical UI (PUI) which could be associated to a note expression.
enum ePrefetchableSupport |
|
inline |
const int32 kDefaultFactoryFlags = PFactoryInfo::kUnicode |
Standard value for PFactoryInfo::flags.