VST 3 Interfaces  VST 3.7
SDK for developing VST plug-in
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Macros Groups Pages
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
 
struct  IDataExchangeHandlerHost
 
struct  HostDataExchangeHandler
 
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  DataExchangeHandler
 
class  DataExchangeReceiverHandler
 
class  ProcessContextRequirements
 
class  ProcessDataSlicer
 
struct  RTTransferT
 
class  SystemTime
 
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  DataExchangeBlock
 
class  IDataExchangeHandler
 Host Data Exchange handler interface: Vst::IDataExchangeHandler. More...
 
class  IDataExchangeReceiver
 Data Exchange Receiver interface: Vst::IDataExchangeReceiver. 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...
 
class  IComponentHandlerSystemTime
 Extended plug-in interface IComponentHandler for an edit controller. 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...
 
class  IRemapParamID
 Extended IEditController interface for a component. 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 uint32 DataExchangeQueueID
 
typedef uint32 DataExchangeBlockID
 
typedef uint32 DataExchangeUserContextID
 
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 char8CString
 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.
 

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, kParamIDMappingChanged = 1 << 11
}
 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

IMessageallocateMessage (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.

Typedef Documentation

Enumeration Type Documentation

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.

Symbolic sample size.

See Also
ProcessSetup, ProcessData
Enumerator
kSample32 

32-bit precision

kSample64 

64-bit precision

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

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

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.

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

Guaranteed not used by the host.

Enumerator
kNoteIDUserRangeLowerBound 
kNoteIDUserRangeUpperBound 

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

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 ©2024 Steinberg Media Technologies GmbH. All Rights Reserved. This documentation is under this license.