LMMS
Loading...
Searching...
No Matches
Steinberg::Vst Namespace Reference

Namespaces

namespace  PlugType
namespace  ChannelContext
namespace  ViewType
namespace  FunctionNameType
namespace  LayerType
namespace  CurveType
namespace  Attributes
namespace  AttributesFunction
namespace  AttributesStyle
namespace  AttributesFlags
namespace  SpeakerArr

Classes

class  IAttributeList
class  IStreamAttributes
struct  ProcessSetup
struct  AudioBusBuffers
struct  ProcessData
class  IAudioProcessor
class  IAudioPresentationLatency
class  IProcessContextRequirements
class  IAutomationState
struct  BusInfo
struct  RoutingInfo
class  IComponent
class  IComponentHandler3
class  IContextMenuTarget
struct  IContextMenuItem
class  IContextMenu
struct  ParameterInfo
class  IComponentHandler
class  IComponentHandler2
class  IComponentHandlerBusActivation
class  IProgress
class  IEditController
class  IEditController2
class  IMidiMapping
class  IEditControllerHostEditing
struct  NoteOnEvent
struct  NoteOffEvent
struct  DataEvent
struct  PolyPressureEvent
struct  ChordEvent
struct  ScaleEvent
struct  LegacyMIDICCOutEvent
struct  Event
class  IEventList
class  IHostApplication
class  IVst3ToVst2Wrapper
class  IVst3ToAUWrapper
class  IVst3ToAAXWrapper
class  IVst3WrapperMPESupport
class  IInterAppAudioHost
class  IInterAppAudioConnectionNotification
class  IInterAppAudioPresetManager
class  IMessage
class  IConnectionPoint
class  IMidiLearn
struct  NoteExpressionValueDescription
struct  NoteExpressionValueEvent
struct  NoteExpressionTextEvent
struct  NoteExpressionTypeInfo
class  INoteExpressionController
struct  KeyswitchInfo
class  IKeyswitchController
class  IParamValueQueue
class  IParameterChanges
class  IParameterFunctionName
struct  PhysicalUIMap
struct  PhysicalUIMapList
class  INoteExpressionPhysicalUIMapping
class  IPlugInterfaceSupport
class  IParameterFinder
class  IPrefetchableSupport
struct  FrameRate
struct  Chord
struct  ProcessContext
struct  RepresentationInfo
class  IXmlRepresentationController
class  ITestPlugProvider
class  ITestPlugProvider2
struct  UnitInfo
struct  ProgramListInfo
class  IUnitHandler
class  IUnitHandler2
class  IUnitInfo
class  IProgramListData
class  IUnitData
class  HostAttribute
class  HostApplication
class  HostAttributeList
class  HostMessage
class  PlugInterfaceSupport
class  Bus
class  EventBus
class  AudioBus
class  BusList
class  Component
class  ComponentBase
class  EditController
class  EditorView
class  Unit
class  ProgramList
class  ProgramListWithPitchNames
class  EditControllerEx1
class  Parameter
class  RangeParameter
class  StringListParameter
class  ParameterContainer
class  PresetFile
class  FileStream
class  ReadOnlyBStream
class  BufferStream

Typedefs

typedef int32 KnobMode
typedef uint32 NoteExpressionTypeID
typedef double NoteExpressionValue
typedef uint32 KeyswitchTypeID
typedef uint32 PhysicalUITypeID
typedef uint32 PrefetchableSupport
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
typedef uint32 ParamID
 parameter identifier
typedef int32 ProgramListID
 program list identifier
typedef int16 CtrlNumber
 MIDI controller number (see ControllerNumbers for allowed values).
typedef double TQuarterNotes
 time expressed in quarter notes
typedef int64 TSamples
 time expressed in audio samples
typedef uint32 ColorSpec
 color defining by 4 component ARGB value (Alpha/Red/Green/Blue)
typedef float Sample32
 32-bit precision audio sample
typedef double Sample64
 64-bit precision audio sample
typedef double SampleRate
 sample rate
typedef uint64 SpeakerArrangement
 Bitset of speakers.
typedef uint64 Speaker
 Bit for one speaker.
using ChunkID = char[4]

Enumerations

enum  ComponentFlags { kDistributable = 1 << 0 , kSimpleModeSupported = 1 << 1 }
enum  SymbolicSampleSizes { kSample32 , kSample64 }
enum  ProcessModes { kRealtime , kPrefetch , kOffline }
enum  MediaTypes { kAudio = 0 , kEvent , kNumMediaTypes }
enum  BusDirections { kInput = 0 , kOutput }
enum  BusTypes { kMain = 0 , kAux }
enum  IoModes { kSimple = 0 , kAdvanced , kOfflineProcessing }
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
}
enum  KnobModes { kCircularMode = 0 , kRelativCircularMode , kLinearMode }
enum  NoteIDUserRange { kNoteIDUserRangeLowerBound = -10000 , kNoteIDUserRangeUpperBound = -1000 }
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
}
enum  NoteExpressionTypeIDs : uint32 {
  kVolumeTypeID = 0 , kPanTypeID , kTuningTypeID , kVibratoTypeID ,
  kExpressionTypeID , kBrightnessTypeID , kTextTypeID , kPhonemeTypeID ,
  kCustomStart = 100000 , kCustomEnd = 200000 , kInvalidTypeID = 0xFFFFFFFF
}
enum  KeyswitchTypeIDs : uint32 { kNoteOnKeyswitchTypeID = 0 , kOnTheFlyKeyswitchTypeID , kOnReleaseKeyswitchTypeID , kKeyRangeTypeID }
enum  PhysicalUITypeIDs {
  kPUIXMovement = 0 , kPUIYMovement , kPUIPressure , kPUITypeCount ,
  kInvalidPUITypeID = 0xFFFFFFFF
}
enum  ePrefetchableSupport { kIsNeverPrefetchable = 0 , kIsYetPrefetchable , kIsNotYetPrefetchable , kNumPrefetchableSupport }
enum  ChunkType {
  kHeader , kComponentState , kControllerState , kProgramData ,
  kMetaInfo , kChunkList , kNumPresetChunks
}

Functions

IMessageallocateMessage (IHostApplication *host)
tresult getSpeakerChannelIndex (SpeakerArrangement arrangement, uint64 speaker, int32 &channel)
const ChunkIDgetChunkID (ChunkType type)
bool verify (tresult result)
bool copyStream (IBStream *inStream, IBStream *outStream)
bool isEqualID (const ChunkID id1, const ChunkID id2)

Variables

static const uint32 kNoTail = 0
static const uint32 kInfiniteTail = kMaxInt32u
const int32 kDefaultFactoryFlags = PFactoryInfo::kUnicode
static const UnitID kRootUnitId = 0
 identifier for the top level unit (root)
static const UnitID kNoParentUnitId = -1
 used for the root unit which does not have a parent.
static const ProgramListID kNoProgramListId = -1
 no programs are used in the unit.
static const int32 kAllProgramInvalid = -1
 all program information is invalid
const Speaker kSpeakerL = 1 << 0
 Left (L).
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 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).
static const ParamID kNoParamId = 0xffffffff
 default for uninitialized parameter ID
static const ChunkID commonChunks [kNumPresetChunks]
static const int32 kFormatVersion = 1
static const int32 kClassIDSize = 32
static const int32 kHeaderSize = sizeof (ChunkID) + sizeof (int32) + kClassIDSize + sizeof (TSize)
static const int32 kListOffsetPos = kHeaderSize - sizeof (TSize)

Detailed Description

All VST specific interfaces are located in Vst namespace

Typedef Documentation

◆ BusDirection

bus direction (in/out)

◆ BusType

bus type (main/aux)

◆ ChunkID

using Steinberg::Vst::ChunkID = char[4]

◆ ColorSpec

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

◆ CString

C-String.

◆ CtrlNumber

MIDI controller number (see ControllerNumbers for allowed values).

◆ IoMode

I/O mode (see vst3IoMode).

◆ KeyswitchTypeID

◆ KnobMode

Knob Mode Type

◆ MediaType

media type (audio/event)

◆ NoteExpressionTypeID

Note Expression Types

◆ NoteExpressionValue

Note Expression Value

◆ ParamID

parameter identifier

◆ ParamValue

parameter value type

◆ PhysicalUITypeID

Physical UI Type

◆ PrefetchableSupport

Prefetchable Support Type

◆ ProgramListID

program list identifier

◆ Sample32

typedef float Steinberg::Vst::Sample32

32-bit precision audio sample

◆ Sample64

typedef double Steinberg::Vst::Sample64

64-bit precision audio sample

◆ SampleRate

sample rate

◆ Speaker

Bit for one speaker.

◆ SpeakerArrangement

Bitset of speakers.

◆ String128

typedef TChar Steinberg::Vst::String128[128]

128 character UTF-16 string

◆ TChar

UTF-16 character.

◆ TQuarterNotes

time expressed in quarter notes

◆ TSamples

time expressed in audio samples

◆ UnitID

unit identifier

Enumeration Type Documentation

◆ BusDirections

Bus directions

Enumerator
kInput 

input bus

kOutput 

output bus

◆ BusTypes

Bus types

Enumerator
kMain 

main bus

kAux 

auxiliary bus (sidechain)

◆ ChunkType

Enumerator
kHeader 
kComponentState 
kControllerState 
kProgramData 
kMetaInfo 
kChunkList 
kNumPresetChunks 

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

◆ 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

kCtrlQuarterFrame 

LegacyMIDICCOutEvent.value2 for pressure).

Quarter Frame ((use LegacyMIDICCOutEvent.value only)

◆ 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 

◆ 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

◆ KeyswitchTypeIDs

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

◆ KnobModes

Knob Mode

Enumerator
kCircularMode 

Circular with jump to clicked position.

kRelativCircularMode 

Circular without jump to clicked position.

kLinearMode 

Linear: depending on vertical movement.

◆ MediaTypes

Bus media types

Enumerator
kAudio 

audio

kEvent 

events

kNumMediaTypes 

◆ NoteExpressionTypeIDs

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

◆ NoteIDUserRange

Reserved note identifier (noteId) range for a plug-in. Guaranteed not used by the host.

Enumerator
kNoteIDUserRangeLowerBound 
kNoteIDUserRangeUpperBound 

◆ 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

◆ 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

◆ RestartFlags

Flags used for IComponentHandler::restartComponent

Enumerator
kReloadComponent 

The Component should be reloaded The host has to unload completely the plug-in (controller/processor) and reload it. [SDK 3.0.0]

kIoChanged 

Input / Output Bus configuration has changed The plug-in informs the host that either the bus configuration or the bus count has changed. The host has to deactivate the plug-in, asks the plug-in for its wanted new bus configurations, adapts its processing graph and reactivate the plug-in. [SDK 3.0.0]

kParamValuesChanged 

Multiple parameter values have changed (as result of a program change for example) The host invalidates all caches of parameter values and asks the edit controller for the current values. [SDK 3.0.0]

kLatencyChanged 

Latency has changed The plug informs the host that its latency has changed, getLatencySamples should return the new latency after setActive (true) was called The host has to deactivate and reactivate the plug-in, then afterwards the host could ask for the current latency (getLatencySamples) see IAudioProcessor::getLatencySamples [SDK 3.0.0]

kParamTitlesChanged 

Parameter titles, default values or flags (ParameterFlags) have changed The host invalidates all caches of parameter infos and asks the edit controller for the current infos. [SDK 3.0.0]

kMidiCCAssignmentChanged 

MIDI Controllers and/or Program Changes Assignments have changed The plug-in informs the host that its MIDI-CC mapping has changed (for example after a MIDI learn or new loaded preset) or if the stepCount or UnitID of a ProgramChange parameter has changed. The host has to rebuild the MIDI-CC => parameter mapping (getMidiControllerAssignment) and reread program changes parameters (stepCount and associated unitID) [SDK 3.0.1]

kNoteExpressionChanged 

Note Expression has changed (info, count, PhysicalUIMapping, ...) Either the note expression type info, the count of note expressions or the physical UI mapping has changed. The host invalidates all caches of note expression infos and asks the edit controller for the current ones. See INoteExpressionController, NoteExpressionTypeInfo and INoteExpressionPhysicalUIMapping [SDK 3.5.0]

kIoTitlesChanged 

Input / Output bus titles have changed The host invalidates all caches of bus titles and asks the edit controller for the current titles. [SDK 3.5.0]

kPrefetchableSupportChanged 

Prefetch support has changed The plug-in informs the host that its PrefetchSupport has changed The host has to deactivate the plug-in, calls IPrefetchableSupport::getPrefetchableSupport and reactivate the plug-in see IPrefetchableSupport [SDK 3.6.1]

kRoutingInfoChanged 

RoutingInfo has changed The plug-in informs the host that its internal routing (relation of an event-input-channel to an audio-output-bus) has changed The host ask the plug-in for the new routing with IComponent::getRoutingInfo, vst3Routing see IComponent [SDK 3.6.6]

◆ SymbolicSampleSizes

Symbolic sample size.

See also
ProcessSetup, ProcessData
Enumerator
kSample32 

32-bit precision

kSample64 

64-bit precision

Function Documentation

◆ allocateMessage()

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

Helper to allocate a message

◆ copyStream()

bool Steinberg::Vst::copyStream ( IBStream * inStream,
IBStream * outStream )

◆ getChunkID()

const ChunkID & Steinberg::Vst::getChunkID ( ChunkType type)

◆ getSpeakerChannelIndex()

tresult Steinberg::Vst::getSpeakerChannelIndex ( SpeakerArrangement arrangement,
uint64 speaker,
int32 & channel )

Gets the channel index of a given speaker in a arrangement, returns kResultFalse if speaker not part of the arrangement else returns kResultTrue.

◆ isEqualID()

bool Steinberg::Vst::isEqualID ( const ChunkID id1,
const ChunkID id2 )
inline

◆ verify()

bool Steinberg::Vst::verify ( tresult result)
inline

Variable Documentation

◆ commonChunks

const ChunkID Steinberg::Vst::commonChunks[kNumPresetChunks]
static
Initial value:
= {
{'V', 'S', 'T', '3'},
{'C', 'o', 'm', 'p'},
{'C', 'o', 'n', 't'},
{'P', 'r', 'o', 'g'},
{'I', 'n', 'f', 'o'},
{'L', 'i', 's', 't'}
}

◆ kAllProgramInvalid

const int32 Steinberg::Vst::kAllProgramInvalid = -1
static

all program information is invalid

Special programIndex value for IUnitHandler::notifyProgramListChange

◆ kClassIDSize

const int32 Steinberg::Vst::kClassIDSize = 32
static

◆ kDefaultFactoryFlags

const int32 Steinberg::Vst::kDefaultFactoryFlags = PFactoryInfo::kUnicode

Standard value for PFactoryInfo::flags

◆ kFormatVersion

const int32 Steinberg::Vst::kFormatVersion = 1
static

◆ kHeaderSize

const int32 Steinberg::Vst::kHeaderSize = sizeof (ChunkID) + sizeof (int32) + kClassIDSize + sizeof (TSize)
static

◆ kInfiniteTail

const uint32 Steinberg::Vst::kInfiniteTail = kMaxInt32u
static

kInfiniteTail

to be returned by getTailSamples when infinite tail is wanted

See also
IAudioProcessor::getTailSamples

◆ kListOffsetPos

const int32 Steinberg::Vst::kListOffsetPos = kHeaderSize - sizeof (TSize)
static

◆ kNoParamId

const ParamID Steinberg::Vst::kNoParamId = 0xffffffff
static

default for uninitialized parameter ID

◆ kNoParentUnitId

const UnitID Steinberg::Vst::kNoParentUnitId = -1
static

used for the root unit which does not have a parent.

◆ kNoProgramListId

const ProgramListID Steinberg::Vst::kNoProgramListId = -1
static

no programs are used in the unit.

Special ProgramListIDs for UnitInfo

◆ kNoTail

const uint32 Steinberg::Vst::kNoTail = 0
static

kNoTail

to be returned by getTailSamples when no tail is wanted

See also
IAudioProcessor::getTailSamples

◆ kRootUnitId

const UnitID Steinberg::Vst::kRootUnitId = 0
static

identifier for the top level unit (root)

Special UnitIDs for UnitInfo