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

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

Loading...
Searching...
No Matches
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 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 uint32 | KeyswitchTypeID
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: normalized value => [0.0, 1.0]
typedef uint32 | ParamID
| parameter identifier: value in range [0, 0x7FFFFFFF].
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.
typedef uint32 | DataExchangeQueueID
typedef uint32 | DataExchangeBlockID
typedef uint32 | DataExchangeUserContextID
using | KnobMode = int32
| Knob Mode Type.
typedef uint32 | NoteExpressionTypeID
| Note Expression Types.
typedef double | NoteExpressionValue
| Note Expression Value.
typedef uint32 | PhysicalUITypeID
| Physical UI Type.
typedef uint32 | PrefetchableSupport
| Prefetchable Support Type.

## 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 : 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
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)
const Speaker | kSpeakerLw = (Speaker)1 << 59
| Left Wide (Lw)
const Speaker | kSpeakerRw = (Speaker)1 << 60
| Right Wide (Rw)

## Detailed Description

All VST specific interfaces are located in Vst namespace.

## 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

## ◆ 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 * 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.