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

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

Namespaces | Classes | Typedefs | Enumerations | Functions | Variables
Steinberg::Vst Namespace Reference

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

## Namespaces
namespace | Algo
namespace | Attributes
| Attributes used to defined a Layer in a VST XML Representation.
namespace | AttributesFlags
| Attributes Flags defining 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 | ChannelContext
| For Channel Context Info Interface.
namespace | CurveType
| Curve Types used in a VST XML Representation.
namespace | DataExchangeHandler
namespace | FunctionNameType
namespace | Helpers
namespace | InterAppAudio
namespace | LayerType
| Layer Types used in a VST XML Representation.
namespace | MPE
namespace | MusicalCharacter
| Predefined Musical Character.
namespace | MusicalInstrument
| Predefined Musical Instrument.
namespace | MusicalStyle
| Predefined Musical Style.
namespace | ParameterChangeTransfer
namespace | ParameterValueQueue
namespace | PlugType
| Component Types used as subCategories in PClassInfo2.
namespace | PresetAttributes
| Predefined Preset Attributes.
namespace | PresetFile
namespace | SampleAccurate
namespace | SpeakerArr
| Speaker Arrangement Definitions (SpeakerArrangement)
namespace | StateType
| Predefined StateType used for Key kStateType.
namespace | StringConvert
namespace | Test
namespace | UMP
namespace | ViewType
| View Types used for IEditController::createView.

## Classes
class | AudioBuffer
class | AudioBus
struct | AudioBusBuffers
| Processing buffers of an audio bus. More...
class | AudioEffect
class | BufferStream
class | Bus
struct | BusInfo
| BusInfo: This is the structure used with getBusInfo, informing the host about what is a specific given bus. More...
class | BusList
class | BypassProcessor
struct | Chord
| Description of a chord. More...
struct | ChordEvent
| Chord event specific data. More...
class | Component
class | ComponentBase
class | ConnectionProxy
struct | DataEvent
| Data event specific data. More...
struct | DataExchangeBlock
class | DataExchangeHandler
class | DataExchangeReceiverHandler
class | EditController
class | EditControllerEx1
class | EditorView
struct | Event
| EventStructure representing a single Event of different types associated to a specific event (kEvent) bus. More...
class | EventBus
class | EventList
class | FileStream
struct | FrameRate
| Frame Rate A frame rate describes the number of image (frame) displayed per second. More...
class | HostApplication
class | HostAttributeList
struct | HostDataExchangeHandler
class | HostMessage
class | HostProcessData
class | IAttributeList
| Attribute list used in IMessage and IStreamAttributes: Vst::IAttributeList. More...
class | IAudioPresentationLatency
| Extended IAudioProcessor interface for a component: Vst::IAudioPresentationLatency. More...
class | IAudioProcessor
| Audio processing interface: Vst::IAudioProcessor. More...
class | IAutomationState
| Extended plug-in interface IEditController: Vst::IAutomationState. More...
class | IComponent
| Component base interface: Vst::IComponent. 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 | IComponentHandler3
| Extended host callback interface Vst::IComponentHandler3 for an edit controller. More...
class | IComponentHandlerBusActivation
| Extended host callback interface for an edit controller: Vst::IComponentHandlerBusActivation. More...
class | IComponentHandlerSystemTime
| Extended plug-in interface IComponentHandler for an edit controller. More...
class | IConnectionPoint
| Connect a component with another one: Vst::IConnectionPoint. More...
class | IContextMenu
| Context Menu interface: Vst::IContextMenu. More...
struct | IContextMenuItem
| IContextMenuItem is an entry element of the context menu. More...
class | IContextMenuTarget
| Context Menu Item Target interface: Vst::IContextMenuTarget. More...
class | IDataExchangeHandler
| Host Data Exchange handler interface: Vst::IDataExchangeHandler. More...
struct | IDataExchangeHandlerHost
class | IDataExchangeReceiver
| Data Exchange Receiver interface: Vst::IDataExchangeReceiver. More...
class | IEditController
| Edit controller component interface: Vst::IEditController. More...
class | IEditController2
| Edit controller component interface extension: Vst::IEditController2. More...
class | IEditControllerHostEditing
| Parameter Editing from host: Vst::IEditControllerHostEditing. More...
class | IEventList
| List of events to process: Vst::IEventList. More...
class | IHostApplication
| Basic host callback interface: Vst::IHostApplication. 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: Vst::IKeyswitchController. More...
class | IMessage
| Private plug-in message: Vst::IMessage. More...
class | IMidiLearn
| MIDI Learn interface: Vst::IMidiLearn. More...
class | IMidiMapping
| MIDI Mapping interface: Vst::IMidiMapping. More...
class | INoteExpressionController
| Extended plug-in interface IEditController for note expression event support: Vst::INoteExpressionController. More...
class | INoteExpressionPhysicalUIMapping
| Extended plug-in interface IEditController for note expression event support: Vst::INoteExpressionPhysicalUIMapping. More...
class | IParameterChanges
| All parameter changes of a processing block: Vst::IParameterChanges. More...
class | IParameterFinder
| Extension for IPlugView to find view parameters (lookup value under mouse support): Vst::IParameterFinder. More...
class | IParameterFunctionName
| Edit controller component interface extension: Vst::IParameterFunctionName. More...
class | IParamValueQueue
| Queue of changes for a specific parameter: Vst::IParamValueQueue. More...
class | IPlugInterfaceSupport
| Host callback interface for an edit controller: Vst::IPlugInterfaceSupport. More...
class | IPrefetchableSupport
| Indicates that the plug-in could or not support Prefetch (dynamically): Vst::IPrefetchableSupport. More...
class | IProcessContextRequirements
| Extended IAudioProcessor interface for a component: Vst::IProcessContextRequirements. More...
class | IProgramListData
| Component extension to access program list data: Vst::IProgramListData. More...
class | IProgress
| Extended host callback interface for an edit controller: Vst::IProgress. More...
class | IRemapParamID
| Extended IEditController interface for a component. More...
class | IStreamAttributes
| Meta attributes of a stream: Vst::IStreamAttributes. More...
class | ITestPlugProvider
| Test Helper. More...
class | ITestPlugProvider2
| Test Helper extension. More...
class | IUnitData
| Component extension to access unit data: Vst::IUnitData. 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 | IVst3ToAAXWrapper
| VST 3 to AAX Wrapper interface: Vst::IVst3ToAAXWrapper. More...
class | IVst3ToAUWrapper
| VST 3 to AU Wrapper interface: Vst::IVst3ToAUWrapper. More...
class | IVst3ToVst2Wrapper
| VST 3 to VST 2 Wrapper interface: Vst::IVst3ToVst2Wrapper. More...
class | IVst3WrapperMPESupport
| Wrapper MPE Support interface: Vst::IVst3WrapperMPESupport. More...
class | IXmlRepresentationController
| Extended plug-in interface IEditController for a component: Vst::IXmlRepresentationController. 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...
class | NoteExpressionType
class | NoteExpressionTypeContainer
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...
class | ParamChanges
class | Parameter
class | ParameterChanges
class | ParameterChangeTransfer
class | ParameterContainer
struct | ParameterInfo
| Controller Parameter Info. More...
class | ParameterValueQueue
class | ParamPoint
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 | PluginContextFactory
class | PlugInterfaceSupport
class | PlugProvider
struct | PolyPressureEvent
| PolyPressure event specific data. More...
class | PresetFile
struct | ProcessContext
| Audio processing context. More...
class | ProcessContextRequirements
struct | ProcessData
| Any data needed in audio processing. More...
class | ProcessDataSlicer
struct | ProcessSetup
| Audio processing setup. More...
class | ProgramList
struct | ProgramListInfo
| Basic Program List Description. More...
class | ProgramListWithPitchNames
class | RangeNoteExpressionType
class | RangeParameter
class | ReadOnlyBStream
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 busses, a host may want to know how the busses are related. More...
struct | RTTransferT
struct | ScaleEvent
| Scale event specific data. More...
class | SingleComponentEffect
class | SpeakerArray
class | StringListParameter
class | StringResult
class | SystemTime
class | TestBase
struct | TestDefaults
class | TestEnh
struct | TestingPluginContext
class | ThreadChecker
class | Unit
struct | UnitInfo
| Basic Unit Description. More...
class | VSTGUIEditor
class | XmlRepresentationHelper

## Typedefs
typedef char[4] | ChunkID
typedef int32 | ProcessSampleSize
typedef std::function< bool(ITestResult *)> | TestFunc
typedef std::function< bool(FUnknown *, ITestResult *)> | TestFuncWithContext
typedef uint32 | DataExchangeQueueID
typedef uint32 | DataExchangeBlockID
typedef uint32 | DataExchangeUserContextID
using | KnobMode = int32
| Knob Mode Type. More...
typedef uint32 | NoteExpressionTypeID
| Note Expression Types. More...
typedef double | NoteExpressionValue
| Note Expression Value. More...
typedef uint32 | KeyswitchTypeID
typedef uint32 | PhysicalUITypeID
| Physical UI Type. More...
typedef uint32 | PrefetchableSupport
| Prefetchable Support Type. More...
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 vst3IoMode) More...
typedef int32 | UnitID
| unit identifier More...
typedef double | ParamValue
| parameter value type: normalized value => [0.0, 1.0] More...
typedef uint32 | ParamID
| parameter identifier: value in range [0, 0x7FFFFFFF]. 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...

## Enumerations
enum | ChunkType
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 : int32 { 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 , kParamIDMappingChanged = 1 << 11 }
| Flags used for IComponentHandler::restartComponent. More...
enum | KnobModes : KnobMode { 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
void ** | getChannelBuffersPointer (const ProcessSetup &processSetup, const AudioBusBuffers &bufs)
uint32 | getSampleFramesSizeInBytes (const ProcessSetup &processSetup, int32 numSamples)
uint64 | getChannelMask (int32 numChannels)
tresult | getSpeakerChannelIndex (SpeakerArrangement arrangement, uint64 speaker, int32 &channel)
void | setupVSTGUIBundleSupport (void *hInstance)
const ChunkID & | getChunkID (ChunkType type)
bool | verify (tresult result)
bool | copyStream (IBStream *inStream, IBStream *outStream)
| IMPLEMENT_FUNKNOWN_METHODS (FileStream, IBStream, IBStream::iid) tresult FileStream
| IMPLEMENT_REFCOUNT (ReadOnlyBStream) ReadOnlyBStream
| IMPLEMENT_FUNKNOWN_METHODS (BufferStream, IBStream, IBStream::iid) BufferStream
bool | isEqualID (const ChunkID id1, const ChunkID id2)
| IMPLEMENT_FUNKNOWN_METHODS (ConnectionProxy, IConnectionPoint, IConnectionPoint::iid) ConnectionProxy
| IMPLEMENT_FUNKNOWN_METHODS (EventList, IEventList, IEventList::iid) EventList
| IMPLEMENT_FUNKNOWN_METHODS (HostMessage, IMessage, IMessage::iid) HostMessage
| IMPLEMENT_FUNKNOWN_METHODS (HostAttributeList, IAttributeList, IAttributeList::iid) IPtr< IAttributeList > HostAttributeList
| IMPLEMENT_FUNKNOWN_METHODS (ParameterChanges, IParameterChanges, IParameterChanges::iid) IMPLEMENT_FUNKNOWN_METHODS(ParameterValueQueue
| IMPLEMENT_FUNKNOWN_METHODS (TestBase, ITest, ITest::iid)
void | addMessage (ITestResult *testResult, const std::u16string &str)
void | addMessage (ITestResult *testResult, const char *str)
void | addErrorMessage (ITestResult *testResult, const char *str)
void | addErrorMessage (ITestResult *testResult, const std::u16string &str)
std::u16string | printf (const char8 *format,...)
| IMPLEMENT_FUNKNOWN_METHODS (ParamChanges, IParamValueQueue, IParamValueQueue::iid) ParamChanges
| SMTG_TYPE_ALIGN_CHECK (PFactoryInfo, 4, 4, 4, 4) SMTG_TYPE_ALIGN_CHECK(PClassInfo
| SMTG_TYPE_ALIGN_CHECK (PClassInfo2, 4, 4, 4, 4) SMTG_TYPE_ALIGN_CHECK(PClassInfoW
| SMTG_TYPE_ALIGN_CHECK (ProcessSetup, 8, 1, 8, 8) SMTG_TYPE_ALIGN_CHECK(AudioBusBuffers
| SMTG_TYPE_ALIGN_CHECK (ProcessData, 8, 1, 4, 4) SMTG_TYPE_ALIGN_CHECK(BusInfo
| SMTG_TYPE_ALIGN_CHECK (RoutingInfo, 4, 1, 4, 4) SMTG_TYPE_ALIGN_CHECK(IContextMenuItem
| SMTG_TYPE_ALIGN_CHECK (ParameterInfo, 8, 1, 8, 8) SMTG_TYPE_ALIGN_CHECK(NoteOnEvent
| SMTG_TYPE_ALIGN_CHECK (NoteOffEvent, 4, 1, 4, 4) SMTG_TYPE_ALIGN_CHECK(DataEvent
| SMTG_TYPE_ALIGN_CHECK (PolyPressureEvent, 4, 1, 4, 4) SMTG_TYPE_ALIGN_CHECK(ChordEvent
| SMTG_TYPE_ALIGN_CHECK (ScaleEvent, 8, 1, 4, 4) SMTG_TYPE_ALIGN_CHECK(LegacyMIDICCOutEvent
| SMTG_TYPE_ALIGN_CHECK (Event, 8, 1, 8, 8) SMTG_TYPE_ALIGN_CHECK(NoteExpressionValueDescription
| SMTG_TYPE_ALIGN_CHECK (NoteExpressionValueEvent, 8, 1, 4, 8) SMTG_TYPE_ALIGN_CHECK(NoteExpressionTextEvent
| SMTG_TYPE_ALIGN_CHECK (NoteExpressionTypeInfo, 8, 1, 8, 8) SMTG_TYPE_ALIGN_CHECK(KeyswitchInfo
| SMTG_TYPE_ALIGN_CHECK (FrameRate, 4, 1, 4, 4) SMTG_TYPE_ALIGN_CHECK(Chord
| SMTG_TYPE_ALIGN_CHECK (ProcessContext, 8, 1, 8, 8) SMTG_TYPE_ALIGN_CHECK(RepresentationInfo
| SMTG_TYPE_ALIGN_CHECK (UnitInfo, 4, 1, 4, 4) SMTG_TYPE_ALIGN_CHECK(ProgramListInfo
void | printStructSizes ()
void * | aligned_alloc (size_t numBytes, uint32_t alignment)
void | aligned_free (void *addr, uint32_t alignment)
Sample32 ** | getChannelBuffers (AudioBusBuffers &buffer)
bool | operator== (const DataExchangeHandler::Config &c1, const DataExchangeHandler::Config &c2)
bool | operator!= (const DataExchangeBlock &lhs, const DataExchangeBlock &rhs)
bool | operator== (const DataExchangeBlock &lhs, const DataExchangeBlock &rhs)
const Steinberg::Vst::TChar * | toTChar (const std::u16string &str)
std::u16string | toString (NumberT value)
FUnknown * | createTestFactoryInstance (void *)
const FUID & | getTestFactoryUID ()
void | registerTest (FIDString name, const char *desc, const TestFunc &func)
void | registerTest (FIDString name, const char *desc, TestFunc &&func)
void | registerTest (FIDString name, const char *desc, const TestFuncWithContext &func)
void | registerTest (FIDString name, const char *desc, TestFuncWithContext &&func)
void | registerTest (FIDString name, ITest *test)
IMessage * | allocateMessage (IHostApplication *host)
| Helper to allocate a message. More...

## Variables
| kHeader
| kComponentState
| kControllerState
| kProgramData
| kMetaInfo
| kChunkList
| kNumPresetChunks
| IParamValueQueue
IParamValueQueue::iid constexpr int32 | kQueueReservedPoints
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 | kSpeakerACN16 = (Speaker)1 << 50
| Ambisonic ACN 16. More...
const Speaker | kSpeakerACN17 = (Speaker)1 << 51
| Ambisonic ACN 17. More...
const Speaker | kSpeakerACN18 = (Speaker)1 << 52
| Ambisonic ACN 18. More...
const Speaker | kSpeakerACN19 = (Speaker)1 << 53
| Ambisonic ACN 19. More...
const Speaker | kSpeakerACN20 = (Speaker)1 << 54
| Ambisonic ACN 20. More...
const Speaker | kSpeakerACN21 = (Speaker)1 << 55
| Ambisonic ACN 21. More...
const Speaker | kSpeakerACN22 = (Speaker)1 << 56
| Ambisonic ACN 22. More...
const Speaker | kSpeakerACN23 = (Speaker)1 << 57
| Ambisonic ACN 23. More...
const Speaker | kSpeakerACN24 = (Speaker)1 << 58
| Ambisonic ACN 24. More...
const Speaker | kSpeakerTsl = (Speaker)1 << 24
| Top Side Left (Tsl) More...
const Speaker | kSpeakerTsr = (Speaker)1 << 25
| Top Side Right (Tsr) More...
const Speaker | kSpeakerLcs = (Speaker)1 << 26
| Left of Center Surround (Lcs) - Back Left Center. More...
const Speaker | kSpeakerRcs = (Speaker)1 << 27
| Right of Center Surround (Rcs) - Back Right Center. More...
const Speaker | kSpeakerBfl = (Speaker)1 << 28
| Bottom Front Left (Bfl) More...
const Speaker | kSpeakerBfc = (Speaker)1 << 29
| Bottom Front Center (Bfc) More...
const Speaker | kSpeakerBfr = (Speaker)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...
const Speaker | kSpeakerLw = (Speaker)1 << 59
| Left Wide (Lw) More...
const Speaker | kSpeakerRw = (Speaker)1 << 60
| Right Wide (Rw) More...

## Detailed Description

All VST specific interfaces are located in Vst namespace.

## Typedef Documentation

## ◆ DataExchangeQueueID

typedef uint32 DataExchangeQueueID

## ◆ DataExchangeBlockID

typedef uint32 DataExchangeBlockID

## ◆ DataExchangeUserContextID

typedef uint32 DataExchangeUserContextID

## ◆ KnobMode

using KnobMode = int32

Knob Mode Type.

## ◆ NoteExpressionTypeID

typedef uint32 NoteExpressionTypeID

Note Expression Types.

## ◆ NoteExpressionValue

typedef double NoteExpressionValue

Note Expression Value.

## ◆ KeyswitchTypeID

typedef uint32 KeyswitchTypeID

## ◆ PhysicalUITypeID

typedef uint32 PhysicalUITypeID

Physical UI Type.

## ◆ PrefetchableSupport

typedef uint32 PrefetchableSupport

Prefetchable Support Type.

## ◆ TChar

typedef char16 TChar

UTF-16 character.

## ◆ String128

typedef TChar String128[128]

128 character UTF-16 string

## ◆ CString

typedef const char8* CString

C-String.

## ◆ MediaType

typedef int32 MediaType

media type (audio/event)

## ◆ BusDirection

typedef int32 BusDirection

bus direction (in/out)

## ◆ BusType

typedef int32 BusType

bus type (main/aux)

## ◆ IoMode

typedef int32 IoMode

I/O mode (see vst3IoMode)

## ◆ UnitID

typedef int32 UnitID

unit identifier

## ◆ ParamValue

typedef double ParamValue

parameter value type: normalized value => [0.0, 1.0]

## ◆ ParamID

typedef uint32 ParamID

parameter identifier: value in range [0, 0x7FFFFFFF].

The range [0x80000000, 0xFFFFFFFF], is reserved for host application.

## ◆ ProgramListID

typedef int32 ProgramListID

program list identifier

## ◆ CtrlNumber

typedef int16 CtrlNumber

MIDI controller number (see ControllerNumbers for allowed values)

## ◆ TQuarterNotes

typedef double TQuarterNotes

time expressed in quarter notes

## ◆ TSamples

typedef int64 TSamples

time expressed in audio samples

## ◆ ColorSpec

typedef uint32 ColorSpec

color defining by 4 component ARGB value (Alpha/Red/Green/Blue)

## ◆ Sample32

typedef float Sample32

32-bit precision audio sample

## ◆ Sample64

typedef double Sample64

64-bit precision audio sample

## ◆ SampleRate

typedef double SampleRate

sample rate

## ◆ SpeakerArrangement

typedef uint64 SpeakerArrangement

Bitset of speakers.

## ◆ Speaker

typedef uint64 Speaker

Bit for one speaker.

## Enumeration Type Documentation

## ◆ ComponentFlags

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.

## ◆ SymbolicSampleSizes

enum SymbolicSampleSizes

Symbolic sample size.

See also
  ProcessSetup, ProcessData

Enumerator
kSample32 | 32-bit precision
kSample64 | 64-bit precision

## ◆ ProcessModes

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

## ◆ MediaTypes

enum MediaTypes

Bus media types.

Enumerator
kAudio | audio
kEvent | events
kNumMediaTypes |

## ◆ BusDirections

enum BusDirections

Bus directions.

Enumerator
kInput | input bus
kOutput | output bus

## ◆ BusTypes

enum BusTypes

Bus types.

Enumerator
kMain | main bus
kAux | auxiliary bus (sidechain)

## ◆ IoModes

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

## ◆ RestartFlags

enum RestartFlags : int32

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 (title, shortTitle and units), default values, stepCount 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 asks 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]
kParamIDMappingChanged | Mapping of ParamID has changed The Plug-in informs the host that its parameters ID has changed. This has to be called by the edit controller in the method setComponentState or setState (during projects loading) when the plug-in detects that the given state was associated to an older version of the plug-in, or to a plug-in to replace (for ex. migrating VST2 => VST3), with a different set of parameter IDs, then the host could remap any used parameters like automation by asking the IRemapParamID interface (which extends IEditController). See IRemapParamID [SDK 3.7.11]

## ◆ KnobModes

enum KnobModes : KnobMode

Knob Mode.

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

## ◆ NoteIDUserRange

enum NoteIDUserRange

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

Guaranteed not used by the host.

Enumerator
kNoteIDUserRangeLowerBound |
kNoteIDUserRangeUpperBound |

## ◆ ControllerNumbers

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)

## ◆ NoteExpressionTypeIDs

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

## ◆ KeyswitchTypeIDs

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

## ◆ PhysicalUITypeIDs

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

## ◆ ePrefetchableSupport

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

## ◆ allocateMessage()

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

Helper to allocate a message.

## Variable Documentation

## ◆ kDefaultFactoryFlags

const int32 kDefaultFactoryFlags = PFactoryInfo::kUnicode

Standard value for PFactoryInfo::flags.

Empty

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