VST 3 Interfaces: Steinberg::Vst Namespace Reference
Author: Steinberg

VST 3 Interfaces VST 3.7 SDK for developing VST plug-in

- Main Page
- Modules
- Namespaces
- Classes
- Files

- Namespace List
- Namespace Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Macros Groups Pages
Namespaces | Classes | Typedefs | Enumerations | Functions | Variables
Steinberg::Vst Namespace Reference

All VST specific interfaces are located in Vst namespace. More...

## Namespaces
namespace | Algo
namespace | Helpers
namespace | InterAppAudio
namespace | MPE
namespace | SampleAccurate
namespace | Test
namespace | PlugType
| Component Types used as subCategories in PClassInfo2.
namespace | ChannelContext
| For Channel Context Info Interface.
namespace | ViewType
| View Types used for IEditController::createView.
namespace | FunctionNameType
namespace | LayerType
| Layer Types used in a VST XML Representation.
namespace | CurveType
| Curve Types used in a VST XML Representation.
namespace | Attributes
| Attributes used to defined a Layer in a VST XML Representation.
namespace | AttributesFunction
| Attributes Function used to defined the function of a Layer in a VST XML Representation.
namespace | AttributesStyle
| Attributes Style associated a specific Layer Type in a VST XML Representation.
namespace | AttributesFlags
| Attributes Flags defining a Layer in a VST XML Representation.
namespace | PresetAttributes
| Predefined Preset Attributes.
namespace | StateType
| Predefined StateType used for Key kStateType.
namespace | MusicalInstrument
| Predefined Musical Instrument.
namespace | MusicalStyle
| Predefined Musical Style.
namespace | MusicalCharacter
| Predefined Musical Character.
namespace | SpeakerArr
| Speaker Arrangement Definitions (SpeakerArrangement)

## Classes
class | AudioEffect
class | Bus
class | EventBus
class | AudioBus
class | BusList
class | AudioBuffer
class | BypassProcessor
class | Component
class | ComponentBase
class | EditController
class | EditorView
class | Unit
class | ProgramList
class | ProgramListWithPitchNames
class | EditControllerEx1
class | VSTGUIEditor
class | NoteExpressionType
class | RangeNoteExpressionType
class | NoteExpressionTypeContainer
class | Parameter
class | RangeParameter
class | StringListParameter
class | ParameterContainer
class | PresetFile
class | FileStream
class | ReadOnlyBStream
class | BufferStream
class | XmlRepresentationHelper
class | SingleComponentEffect
class | SpeakerArray
class | ConnectionProxy
class | EventList
class | HostApplication
exception | HostAttributeList
exception | HostMessage
class | ParameterValueQueue
class | ParameterChanges
class | ParameterChangeTransfer
class | PlugInterfaceSupport
class | PlugProvider
class | PluginContextFactory
class | HostProcessData
struct | TestingPluginContext
struct | TestDefaults
class | TestBase
class | TestEnh
class | ParamPoint
class | ParamChanges
exception | StringResult
class | ProcessContextRequirements
class | ProcessDataSlicer
struct | RTTransferT
class | IAttributeList
| Attribute list used in IMessage and IStreamAttributes: Vst::IAttributeList. More...
class | IStreamAttributes
| Meta attributes of a stream: Vst::IStreamAttributes. More...
struct | ProcessSetup
| Audio processing setup. More...
struct | AudioBusBuffers
| Processing buffers of an audio bus. More...
struct | ProcessData
| Any data needed in audio processing. More...
class | IAudioProcessor
| Audio processing interface: Vst::IAudioProcessor. More...
class | IAudioPresentationLatency
| Extended IAudioProcessor interface for a component: Vst::IAudioPresentationLatency. More...
class | IProcessContextRequirements
| Extended IAudioProcessor interface for a component: Vst::IProcessContextRequirements. More...
class | IAutomationState
| Extended plug-in interface IEditController: Vst::IAutomationState. More...
struct | BusInfo
    BusInfo:
This is the structure used with getBusInfo, informing the host about what is a specific given bus. More...
struct | RoutingInfo
    Routing Information:
When the plug-in supports multiple I/O busses, a host may want to know how the busses are related. More...
class | IComponent
| Component base interface: Vst::IComponent. More...
class | IComponentHandler3
| Extended host callback interface Vst::IComponentHandler3 for an edit controller. More...
class | IContextMenuTarget
| Context Menu Item Target interface: Vst::IContextMenuTarget. More...
struct | IContextMenuItem
| IContextMenuItem is an entry element of the context menu. More...
class | IContextMenu
| Context Menu interface: Vst::IContextMenu. More...
struct | ParameterInfo
| Controller Parameter Info. More...
class | IComponentHandler
| Host callback interface for an edit controller: Vst::IComponentHandler. More...
class | IComponentHandler2
| Extended host callback interface for an edit controller: Vst::IComponentHandler2. More...
class | IComponentHandlerBusActivation
| Extended host callback interface for an edit controller: Vst::IComponentHandlerBusActivation. More...
class | IProgress
| Extended host callback interface for an edit controller: Vst::IProgress. More...
class | IEditController
| Edit controller component interface: Vst::IEditController. More...
class | IEditController2
| Edit controller component interface extension: Vst::IEditController2. More...
class | IMidiMapping
| MIDI Mapping interface: Vst::IMidiMapping. More...
class | IEditControllerHostEditing
| Parameter Editing from host: Vst::IEditControllerHostEditing. More...
struct | NoteOnEvent
| Note-on event specific data. More...
struct | NoteOffEvent
| Note-off event specific data. More...
struct | DataEvent
| Data event specific data. More...
struct | PolyPressureEvent
| PolyPressure event specific data. More...
struct | ChordEvent
| Chord event specific data. More...
struct | ScaleEvent
| Scale event specific data. More...
struct | LegacyMIDICCOutEvent
| Legacy MIDI CC Out event specific data. More...
struct | Event
    Event
Structure representing a single Event of different types associated to a specific event (kEvent) bus. More...
class | IEventList
| List of events to process: Vst::IEventList. More...
class | IHostApplication
| Basic host callback interface: Vst::IHostApplication. More...
class | IVst3ToVst2Wrapper
| VST 3 to VST 2 Wrapper interface: Vst::IVst3ToVst2Wrapper. More...
class | IVst3ToAUWrapper
| VST 3 to AU Wrapper interface: Vst::IVst3ToAUWrapper. More...
class | IVst3ToAAXWrapper
| VST 3 to AAX Wrapper interface: Vst::IVst3ToAAXWrapper. More...
class | IVst3WrapperMPESupport
| Wrapper MPE Support interface: Vst::IVst3WrapperMPESupport. More...
class | IInterAppAudioHost
| Inter-App Audio host Interface. More...
class | IInterAppAudioConnectionNotification
| Extended plug-in interface IEditController for Inter-App Audio connection state change notifications. More...
class | IInterAppAudioPresetManager
| Extended plug-in interface IEditController for Inter-App Audio Preset Management. More...
class | IMessage
| Private plug-in message: Vst::IMessage. More...
class | IConnectionPoint
| Connect a component with another one: Vst::IConnectionPoint. More...
class | IMidiLearn
| MIDI Learn interface: Vst::IMidiLearn. 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 | NoteExpressionTextEvent
| Note Expression Text event. More...
struct | NoteExpressionTypeInfo
| NoteExpressionTypeInfo is the structure describing a note expression supported by the plug-in. More...
class | INoteExpressionController
| Extended plug-in interface IEditController for note expression event support: Vst::INoteExpressionController. More...
struct | KeyswitchInfo
    KeyswitchInfo is the structure describing a key switch
This structure is used by the method IKeyswitchController::getKeyswitchInfo. More...
class | IKeyswitchController
| Extended plug-in interface IEditController for key switches support: Vst::IKeyswitchController. More...
class | IParamValueQueue
| Queue of changes for a specific parameter: Vst::IParamValueQueue. More...
class | IParameterChanges
| All parameter changes of a processing block: Vst::IParameterChanges. More...
class | IParameterFunctionName
| Edit controller component interface extension: Vst::IParameterFunctionName. 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...
class | INoteExpressionPhysicalUIMapping
| Extended plug-in interface IEditController for note expression event support: Vst::INoteExpressionPhysicalUIMapping. More...
class | IPlugInterfaceSupport
| Host callback interface for an edit controller: Vst::IPlugInterfaceSupport. More...
class | IParameterFinder
| Extension for IPlugView to find view parameters (lookup value under mouse support): Vst::IParameterFinder. More...
class | IPrefetchableSupport
| Indicates that the plug-in could or not support Prefetch (dynamically): Vst::IPrefetchableSupport. More...
struct | FrameRate
    Frame Rate
A frame rate describes the number of image (frame) displayed per second. More...
struct | Chord
| Description of a chord. More...
struct | ProcessContext
| Audio processing context. More...
struct | RepresentationInfo
    RepresentationInfo is the structure describing a representation
This structure is used in the function More...
class | IXmlRepresentationController
| Extended plug-in interface IEditController for a component: Vst::IXmlRepresentationController. More...
class | ITestPlugProvider
| Test Helper. More...
class | ITestPlugProvider2
| Test Helper extension. More...
struct | UnitInfo
| Basic Unit Description. More...
struct | ProgramListInfo
| Basic Program List Description. More...
class | IUnitHandler
| Host callback for unit support: Vst::IUnitHandler. More...
class | IUnitHandler2
| Host callback for extended unit support: Vst::IUnitHandler2. More...
class | IUnitInfo
| Edit controller extension to describe the plug-in structure: Vst::IUnitInfo. More...
class | IProgramListData
| Component extension to access program list data: Vst::IProgramListData. More...
class | IUnitData
| Component extension to access unit data: Vst::IUnitData. More...

## Typedefs
typedef int32 | KnobMode
| Knob Mode Type.
typedef uint32 | NoteExpressionTypeID
| Note Expression Types.
typedef double | NoteExpressionValue
| Note Expression Value.
typedef uint32 | KeyswitchTypeID
typedef uint32 | PhysicalUITypeID
| Physical UI Type.
typedef uint32 | PrefetchableSupport
| Prefetchable Support Type.
typedef char16 | TChar
| UTF-16 character.
typedef TChar | String128 [128]
| 128 character UTF-16 string
typedef const char8 * | CString
| C-String.
typedef int32 | MediaType
| media type (audio/event)
typedef int32 | BusDirection
| bus direction (in/out)
typedef int32 | BusType
| bus type (main/aux)
typedef int32 | IoMode
| I/O mode (see vst3IoMode)
typedef int32 | UnitID
| unit identifier
typedef double | ParamValue
| parameter value type
typedef uint32 | ParamID
| parameter identifier
typedef int32 | ProgramListID
| program list identifier
typedef int16 | CtrlNumber
| MIDI controller number (see ControllerNumbers for allowed values)
typedef double | TQuarterNotes
| time expressed in quarter notes
typedef int64 | TSamples
| time expressed in audio samples
typedef uint32 | ColorSpec
| color defining by 4 component ARGB value (Alpha/Red/Green/Blue)
typedef float | Sample32
| 32-bit precision audio sample
typedef double | Sample64
| 64-bit precision audio sample
typedef double | SampleRate
| sample rate
typedef uint64 | SpeakerArrangement
| Bitset of speakers.
typedef uint64 | Speaker
| Bit for one speaker.

## Enumerations
enum | ComponentFlags { kDistributable = 1 << 0, kSimpleModeSupported = 1 << 1 }
| Component Flags used as classFlags in PClassInfo2. More...
enum | SymbolicSampleSizes { kSample32, kSample64 }
| Symbolic sample size. More...
enum | ProcessModes { kRealtime, kPrefetch, kOffline }
| Processing mode informs the plug-in about the context and at which frequency the process call is called. More...
enum | MediaTypes { kAudio = 0, kEvent, kNumMediaTypes }
| Bus media types. More...
enum | BusDirections { kInput = 0, kOutput }
| Bus directions. More...
enum | BusTypes { kMain = 0, kAux }
| Bus types. More...
enum | IoModes { kSimple = 0, kAdvanced, kOfflineProcessing }
| I/O modes. More...
enum | RestartFlags { kReloadComponent = 1 << 0, kIoChanged = 1 << 1, kParamValuesChanged = 1 << 2, kLatencyChanged = 1 << 3, kParamTitlesChanged = 1 << 4, kMidiCCAssignmentChanged = 1 << 5, kNoteExpressionChanged = 1 << 6, kIoTitlesChanged = 1 << 7, kPrefetchableSupportChanged = 1 << 8, kRoutingInfoChanged = 1 << 9, kKeyswitchChanged = 1 << 10 }
| Flags used for IComponentHandler::restartComponent. More...
enum | KnobModes { kCircularMode = 0, kRelativCircularMode, kLinearMode }
| Knob Mode. More...
enum | NoteIDUserRange { kNoteIDUserRangeLowerBound = -10000, kNoteIDUserRangeUpperBound = -1000 }
| Reserved note identifier (noteId) range for a plug-in. More...
enum | ControllerNumbers { kCtrlBankSelectMSB = 0, kCtrlModWheel = 1, kCtrlBreath = 2, kCtrlFoot = 4, kCtrlPortaTime = 5, kCtrlDataEntryMSB = 6, kCtrlVolume = 7, kCtrlBalance = 8, kCtrlPan = 10, kCtrlExpression = 11, kCtrlEffect1 = 12, kCtrlEffect2 = 13, kCtrlGPC1 = 16, kCtrlGPC2 = 17, kCtrlGPC3 = 18, kCtrlGPC4 = 19, kCtrlBankSelectLSB = 32, kCtrlDataEntryLSB = 38, kCtrlSustainOnOff = 64, kCtrlPortaOnOff = 65, kCtrlSustenutoOnOff = 66, kCtrlSoftPedalOnOff = 67, kCtrlLegatoFootSwOnOff = 68, kCtrlHold2OnOff = 69, kCtrlSoundVariation = 70, kCtrlFilterCutoff = 71, kCtrlReleaseTime = 72, kCtrlAttackTime = 73, kCtrlFilterResonance = 74, kCtrlDecayTime = 75, kCtrlVibratoRate = 76, kCtrlVibratoDepth = 77, kCtrlVibratoDelay = 78, kCtrlSoundCtrler10 = 79, kCtrlGPC5 = 80, kCtrlGPC6 = 81, kCtrlGPC7 = 82, kCtrlGPC8 = 83, kCtrlPortaControl = 84, kCtrlEff1Depth = 91, kCtrlEff2Depth = 92, kCtrlEff3Depth = 93, kCtrlEff4Depth = 94, kCtrlEff5Depth = 95, kCtrlDataIncrement = 96, kCtrlDataDecrement = 97, kCtrlNRPNSelectLSB = 98, kCtrlNRPNSelectMSB = 99, kCtrlRPNSelectLSB = 100, kCtrlRPNSelectMSB = 101, kCtrlAllSoundsOff = 120, kCtrlResetAllCtrlers = 121, kCtrlLocalCtrlOnOff = 122, kCtrlAllNotesOff = 123, kCtrlOmniModeOff = 124, kCtrlOmniModeOn = 125, kCtrlPolyModeOnOff = 126, kCtrlPolyModeOn = 127, kAfterTouch = 128, kPitchBend = 129, kCountCtrlNumber, kCtrlProgramChange = 130, kCtrlPolyPressure = 131, kCtrlQuarterFrame = 132 }
| Controller Numbers (MIDI) More...
enum | NoteExpressionTypeIDs : uint32 { kVolumeTypeID = 0, kPanTypeID, kTuningTypeID, kVibratoTypeID, kExpressionTypeID, kBrightnessTypeID, kTextTypeID, kPhonemeTypeID, kCustomStart = 100000, kCustomEnd = 200000, kInvalidTypeID = 0xFFFFFFFF }
| NoteExpressionTypeIDs describes the type of the note expression. More...
enum | KeyswitchTypeIDs : uint32 { kNoteOnKeyswitchTypeID = 0, kOnTheFlyKeyswitchTypeID, kOnReleaseKeyswitchTypeID, kKeyRangeTypeID }
| KeyswitchTypeIDs describes the type of a key switch. More...
enum | PhysicalUITypeIDs { kPUIXMovement = 0, kPUIYMovement, kPUIPressure, kPUITypeCount, kInvalidPUITypeID = 0xFFFFFFFF }
    PhysicalUITypeIDs describes the type of Physical UI (PUI) which could be associated to a note
expression. More...
enum | ePrefetchableSupport { kIsNeverPrefetchable = 0, kIsYetPrefetchable, kIsNotYetPrefetchable, kNumPrefetchableSupport }
| Prefetchable Support Enum. More...

## Functions
IMessage * | allocateMessage (IHostApplication *host)
| Helper to allocate a message.

## Variables
const int32 | kDefaultFactoryFlags = PFactoryInfo::kUnicode
| Standard value for PFactoryInfo::flags.
const Speaker | kSpeakerL = 1 << 0
| Speaker Definitions.
const Speaker | kSpeakerR = 1 << 1
| Right (R)
const Speaker | kSpeakerC = 1 << 2
| Center (C)
const Speaker | kSpeakerLfe = 1 << 3
| Subbass (Lfe)
const Speaker | kSpeakerLs = 1 << 4
| Left Surround (Ls)
const Speaker | kSpeakerRs = 1 << 5
| Right Surround (Rs)
const Speaker | kSpeakerLc = 1 << 6
| Left of Center (Lc) - Front Left Center.
const Speaker | kSpeakerRc = 1 << 7
| Right of Center (Rc) - Front Right Center.
const Speaker | kSpeakerS = 1 << 8
| Surround (S)
const Speaker | kSpeakerCs = kSpeakerS
| Center of Surround (Cs) - Back Center - Surround (S)
const Speaker | kSpeakerSl = 1 << 9
| Side Left (Sl)
const Speaker | kSpeakerSr = 1 << 10
| Side Right (Sr)
const Speaker | kSpeakerTc = 1 << 11
| Top Center Over-head, Top Middle (Tc)
const Speaker | kSpeakerTfl = 1 << 12
| Top Front Left (Tfl)
const Speaker | kSpeakerTfc = 1 << 13
| Top Front Center (Tfc)
const Speaker | kSpeakerTfr = 1 << 14
| Top Front Right (Tfr)
const Speaker | kSpeakerTrl = 1 << 15
| Top Rear/Back Left (Trl)
const Speaker | kSpeakerTrc = 1 << 16
| Top Rear/Back Center (Trc)
const Speaker | kSpeakerTrr = 1 << 17
| Top Rear/Back Right (Trr)
const Speaker | kSpeakerLfe2 = 1 << 18
| Subbass 2 (Lfe2)
const Speaker | kSpeakerM = 1 << 19
| Mono (M)
const Speaker | kSpeakerACN0 = (Speaker)1 << 20
| Ambisonic ACN 0.
const Speaker | kSpeakerACN1 = (Speaker)1 << 21
| Ambisonic ACN 1.
const Speaker | kSpeakerACN2 = (Speaker)1 << 22
| Ambisonic ACN 2.
const Speaker | kSpeakerACN3 = (Speaker)1 << 23
| Ambisonic ACN 3.
const Speaker | kSpeakerACN4 = (Speaker)1 << 38
| Ambisonic ACN 4.
const Speaker | kSpeakerACN5 = (Speaker)1 << 39
| Ambisonic ACN 5.
const Speaker | kSpeakerACN6 = (Speaker)1 << 40
| Ambisonic ACN 6.
const Speaker | kSpeakerACN7 = (Speaker)1 << 41
| Ambisonic ACN 7.
const Speaker | kSpeakerACN8 = (Speaker)1 << 42
| Ambisonic ACN 8.
const Speaker | kSpeakerACN9 = (Speaker)1 << 43
| Ambisonic ACN 9.
const Speaker | kSpeakerACN10 = (Speaker)1 << 44
| Ambisonic ACN 10.
const Speaker | kSpeakerACN11 = (Speaker)1 << 45
| Ambisonic ACN 11.
const Speaker | kSpeakerACN12 = (Speaker)1 << 46
| Ambisonic ACN 12.
const Speaker | kSpeakerACN13 = (Speaker)1 << 47
| Ambisonic ACN 13.
const Speaker | kSpeakerACN14 = (Speaker)1 << 48
| Ambisonic ACN 14.
const Speaker | kSpeakerACN15 = (Speaker)1 << 49
| Ambisonic ACN 15.
const Speaker | kSpeakerACN16 = (Speaker)1 << 50
| Ambisonic ACN 16.
const Speaker | kSpeakerACN17 = (Speaker)1 << 51
| Ambisonic ACN 17.
const Speaker | kSpeakerACN18 = (Speaker)1 << 52
| Ambisonic ACN 18.
const Speaker | kSpeakerACN19 = (Speaker)1 << 53
| Ambisonic ACN 19.
const Speaker | kSpeakerACN20 = (Speaker)1 << 54
| Ambisonic ACN 20.
const Speaker | kSpeakerACN21 = (Speaker)1 << 55
| Ambisonic ACN 21.
const Speaker | kSpeakerACN22 = (Speaker)1 << 56
| Ambisonic ACN 22.
const Speaker | kSpeakerACN23 = (Speaker)1 << 57
| Ambisonic ACN 23.
const Speaker | kSpeakerACN24 = (Speaker)1 << 58
| Ambisonic ACN 24.
const Speaker | kSpeakerTsl = (Speaker)1 << 24
| Top Side Left (Tsl)
const Speaker | kSpeakerTsr = (Speaker)1 << 25
| Top Side Right (Tsr)
const Speaker | kSpeakerLcs = (Speaker)1 << 26
| Left of Center Surround (Lcs) - Back Left Center.
const Speaker | kSpeakerRcs = (Speaker)1 << 27
| Right of Center Surround (Rcs) - Back Right Center.
const Speaker | kSpeakerBfl = (Speaker)1 << 28
| Bottom Front Left (Bfl)
const Speaker | kSpeakerBfc = (Speaker)1 << 29
| Bottom Front Center (Bfc)
const Speaker | kSpeakerBfr = (Speaker)1 << 30
| Bottom Front Right (Bfr)
const Speaker | kSpeakerPl = (Speaker)1 << 31
| Proximity Left (Pl)
const Speaker | kSpeakerPr = (Speaker)1 << 32
| Proximity Right (Pr)
const Speaker | kSpeakerBsl = (Speaker)1 << 33
| Bottom Side Left (Bsl)
const Speaker | kSpeakerBsr = (Speaker)1 << 34
| Bottom Side Right (Bsr)
const Speaker | kSpeakerBrl = (Speaker)1 << 35
| Bottom Rear Left (Brl)
const Speaker | kSpeakerBrc = (Speaker)1 << 36
| Bottom Rear Center (Brc)
const Speaker | kSpeakerBrr = (Speaker)1 << 37
| Bottom Rear Right (Brr)

## Detailed Description

All VST specific interfaces are located in Vst namespace.

## Typedef Documentation

typedef uint32 KeyswitchTypeID

## Enumeration Type Documentation

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

enum SymbolicSampleSizes

Symbolic sample size.

See Also
  ProcessSetup, ProcessData

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:

- kRealtime: each process call is called at a realtime frequency (defined by [numSamples of ProcessData] / samplerate). The plug-in should always try to process as fast as possible in order to let enough time slice to other plug-ins.
- kPrefetch: each process call could be called at a variable frequency (jitter, slower / faster than realtime), the plug-in should process at the same quality level than realtime, plug-in must not slow down to realtime (e.g. disk streaming)! The host should avoid to process in kPrefetch mode such sampler based plug-in.
- kOffline: each process call could be faster than realtime or slower, higher quality than realtime could be used. plug-ins using disk streaming should be sure that they have enough time in the process call for streaming, if needed by slowing down to realtime or slower.

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.

See Also
  ProcessSetup, ProcessData

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 vst3IoMode
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 The host has to unload completely the plug-in (controller/processor) and reload it. [SDK 3.0.0]
kIoChanged | Input / Output Bus configuration has changed The plug-in informs the host that either the bus configuration or the bus count has changed. The host has to deactivate the plug-in, asks the plug-in for its wanted new bus configurations, adapts its processing graph and reactivate the plug-in. [SDK 3.0.0]
kParamValuesChanged | Multiple parameter values have changed (as result of a program change for example) The host invalidates all caches of parameter values and asks the edit controller for the current values. [SDK 3.0.0]
kLatencyChanged | Latency has changed The plug informs the host that its latency has changed, getLatencySamples should return the new latency after setActive (true) was called The host has to deactivate and reactivate the plug-in, then afterwards the host could ask for the current latency (getLatencySamples) see IAudioProcessor::getLatencySamples [SDK 3.0.0].
kParamTitlesChanged | Parameter titles, default values or flags (ParameterFlags) have changed The host invalidates all caches of parameter infos and asks the edit controller for the current infos. [SDK 3.0.0]
kMidiCCAssignmentChanged | MIDI Controllers and/or Program Changes Assignments have changed The plug-in informs the host that its MIDI-CC mapping has changed (for example after a MIDI learn or new loaded preset) or if the stepCount or UnitID of a ProgramChange parameter has changed. The host has to rebuild the MIDI-CC => parameter mapping (getMidiControllerAssignment) and reread program changes parameters (stepCount and associated unitID) [SDK 3.0.1]
kNoteExpressionChanged | Note Expression has changed (info, count, PhysicalUIMapping, ...) Either the note expression type info, the count of note expressions or the physical UI mapping has changed. The host invalidates all caches of note expression infos and asks the edit controller for the current ones. See INoteExpressionController, NoteExpressionTypeInfo and INoteExpressionPhysicalUIMapping [SDK 3.5.0]
kIoTitlesChanged | Input / Output bus titles have changed The host invalidates all caches of bus titles and asks the edit controller for the current titles. [SDK 3.5.0]
kPrefetchableSupportChanged | Prefetch support has changed The plug-in informs the host that its PrefetchSupport has changed The host has to deactivate the plug-in, calls IPrefetchableSupport::getPrefetchableSupport and reactivate the plug-in see IPrefetchableSupport [SDK 3.6.1].
kRoutingInfoChanged | RoutingInfo has changed The plug-in informs the host that its internal routing (relation of an event-input-channel to an audio-output-bus) has changed The host ask the plug-in for the new routing with IComponent::getRoutingInfo, vst3Routing see IComponent [SDK 3.6.6].
kKeyswitchChanged | Key switches has changed (info, count) Either the Key switches info, the count of Key switches has changed. The host invalidates all caches of Key switches infos and asks the edit controller (IKeyswitchController) for the current ones. See IKeyswitchController [SDK 3.7.3]

enum KnobModes

Knob Mode.

Enumerator
kCircularMode | Circular with jump to clicked position.
kRelativCircularMode | Circular without jump to clicked position.
kLinearMode | Linear: depending on vertical movement.

enum NoteIDUserRange

Reserved note identifier (noteId) range for a plug-in.

Guaranteed not used by the host.

Enumerator
kNoteIDUserRangeLowerBound |
kNoteIDUserRangeUpperBound |

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

See Also
  NoteExpressionTypeInfo

Enumerator
kVolumeTypeID | Volume, plain range [0 = -oo , 0.25 = 0dB, 0.5 = +6dB, 1 = +12dB]: plain = 20 * log (4 * norm)
kPanTypeID | Panning (L-R), plain range [0 = left, 0.5 = center, 1 = right].
kTuningTypeID | Tuning, plain range [0 = -120.0 (ten octaves down), 0.5 none, 1 = +120.0 (ten octaves up)] plain = 240 * (norm - 0.5) and norm = plain / 240 + 0.5 oneOctave is 12.0 / 240.0; oneHalfTune = 1.0 / 240.0;.
kVibratoTypeID | Vibrato.
kExpressionTypeID | Expression.
kBrightnessTypeID | Brightness.
kTextTypeID | See NoteExpressionTextEvent.
kPhonemeTypeID | TODO:
kCustomStart | start of custom note expression type ids
kCustomEnd | end of custom note expression type ids
kInvalidTypeID | indicates an invalid note expression type

enum KeyswitchTypeIDs : uint32

KeyswitchTypeIDs describes the type of a key switch.

See Also
  KeyswitchInfo

Enumerator
kNoteOnKeyswitchTypeID | press before noteOn is played
kOnTheFlyKeyswitchTypeID | press while noteOn is played
kOnReleaseKeyswitchTypeID | press before entering release
kKeyRangeTypeID | key should be maintained pressed for playing

enum PhysicalUITypeIDs

    PhysicalUITypeIDs describes the type of Physical UI (PUI) which could be associated to a note

expression.

See Also
  PhysicalUIMap

Enumerator
kPUIXMovement | absolute X position when touching keys of PUIs. Range [0=left, 0.5=middle, 1=right]
kPUIYMovement | absolute Y position when touching keys of PUIs. Range [0=bottom/near, 0.5=center, 1=top/far]
kPUIPressure | pressing a key down on keys of PUIs. Range [0=No Pressure, 1=Full Pressure]
kPUITypeCount | count of current defined PUIs
kInvalidPUITypeID | indicates an invalid or not initialized PUI type

enum ePrefetchableSupport

Prefetchable Support Enum.

Enumerator
kIsNeverPrefetchable | every instance of the plug does not support prefetch processing
kIsYetPrefetchable | in the current state the plug support prefetch processing
kIsNotYetPrefetchable | in the current state the plug does not support prefetch processing
kNumPrefetchableSupport |

## Function Documentation

IMessage* Steinberg::Vst::allocateMessage | ( | IHostApplication * | host | ) |
| inline

Helper to allocate a message.

## Variable Documentation

const int32 kDefaultFactoryFlags = PFactoryInfo::kUnicode

Standard value for PFactoryInfo::flags.

Empty

Copyright ©2023 Steinberg Media Technologies GmbH. All Rights Reserved. This documentation is under this license.