aeffectx (defined in aeffectx.h)

VST Events


VstEvent

struct VstEvent;

A generic timestamped event.

long type; Any of the following constants :
kVstMidiType midi event, can be cast as VstMidiEvent
kVstAudioType audio
kVstVideoType video
kVstParameterType parameter
kVstTriggerType trigger
kVstSysExType
midi system exclusive
long byteSize; of this event, excl. type and byteSize
long deltaFrames; sample frames related to the current block start sample position
long flags; generic flags, none defined yet (0)
char data[16]; size may vary but is usually 16

VstMidiEvent

struct VstMidiEvent;

To be casted from a VstEvent.

long type; kVstMidiType
long byteSize; 24
long deltaFrames; sample frames related to the current block start sample position
long flags; none defined yet
long noteLength; (in sample frames) of entire note, if available, else 0
long noteOffset; offset into note from note start if available, else 0
char midiData[4]; 1 thru 3 midi bytes; midiData[3] is reserved (zero)
char detune; -64 to +63 cents; for scales other than 'well-tempered' ('microtuning')
char noteOffVelocity;
char reserved1; zero
char reserved2; zero

VstEvents

struct VstEvents;

A block of events for the current audio block.

long numEvents;
long reserved; zero
VstEvent *events[2]; variable

VstPinProperties

struct VstPinProperties;

char label[64];

A string up to 63 chars.

long flags;

kVstPinIsActive
kVstPinIsStereo
kVstPinUseSpeaker

long arrangementType;

-

char shortLabel[8];

a string up to 6 chars, plus one delimiter.

char future[48];

-

VstPlugCategory

enum VstPlugCategory;

kPlugCategUnknown
kPlugCategEffect
kPlugCategSynth
kPlugCategAnalysis
kPlugCategMastering
kPlugCategSpacializer like surround panners
kPlugCategRoomFx like delays and reverbs.
kPlugSurroundFx Dedicated surround processor.
kPlugCategRestoration
PlugCategOfflineProcess
kPlugCategShell plugin which is only a container of plugins
kPlugCategGenerator

VstParameterProperties

struct VstParameterProperties;

float stepFloat;
float smallStepFloat;
float largeStepFloat;
char label[64]; A string up to 63 chars.
long flags; Parameter properties flags :
kVstParameterIsSwitch
kVstParameterUsesIntegerMinMax
kVstParameterUsesFloatStep
kVstParameterUsesIntStep
kVstParameterSupportsDisplayIndex
kVstParameterSupportsDisplayCategory
kVstParameterCanRamp
long minInteger;
long maxInteger;
long stepInteger;
long largeStepInteger;
char shortLabel[8]; Recommended: 6 chars + delimiter.
short displayIndex;
For remote controllers, the index where this parameter should be displayed (starting with 0).
Note that the kVstParameterSupportsDisplayIndex flag must be set.
short category;
Host can also possibly display the parameter group (category), such as
    ---------------------------
    Osc 1
    Wave  Detune  Octave  Mod
    ---------------------------
if the plug supports it (flag kVstParameterSupportsDisplayCategory).
 
0: no category, else group index + 1
short numParametersInCategory;

short reserved;

char categoryLabel[24];
for instance, "Osc 1"
char future[16];
Reserved for future use.

VstWindow :

struct VstWindow;

The structure passed to openWindow and closeWindow.

char title[128]; The window's title.
short xPos; The window's horizontal position.
short yPos; The window's vertical position.
short width; The window's width.
short height; The window's height.
long style;
0 : With title.
1 : Without title.
void *parent; The parent of this window.
void *userHandle; Reserved.
void *winHandle; Reserved.
char future[104]; Reserved for future use.

VstVariableIo

struct VstVariableIo;

float **inputs;
float **outputs;
long numSamplesInput;
long numSamplesOutput;
long *numSamplesInputProcessed;
long *numSamplesOutputProcessed;

VstPatchChunkInfo

struct VstPatchChunkInfo;

long version; Format Version (should be 1)
long pluginUniqueID; UniqueID of the plugin
long pluginVersion; Plugin Version
long numElements; Number of Programs (Bank) or Parameters (Program)
char future[48];

PanLaw Type

enum

kLinearPanLaw = 0  L = pan * M; R = (1 - pan) * M.
kEqualPowerPanLaw  L = pow (pan, 0.5) * M;
 R = pow ((1 - pan), 0.5) * M;

Surround Setup


VstSpeakerProperties

struct VstSpeakerProperties


units range except
float azimuth; rad -PI...PI 10.f for LFE channel
float elevation; rad -PI/2...PI/2 10.f for LFE channel
float radius; meter
0.f for LFE channel
float reserved; 0.
char name[64]; For new setups, new names should be given (L/R/C... won't do)
long type; speaker type
char future[28]; Reserved for future use.

Speaker Types

enum

kSpeakerUndefined
Undefinded
kSpeakerM
Mono (M)
kSpeakerL
 Left (L)
kSpeakerR
Right (R)
kSpeakerC
Center (C)
kSpeakerLfe
Subbass (Lfe)
kSpeakerLs
Left Surround (Ls)
kSpeakerRs
Right Surround (Rs)
kSpeakerLc
Left of Center (Lc)
kSpeakerRc
Right of Center (Rc)
kSpeakerS
Surround (S)
kSpeakerCs = kSpeakerS
Center of Surround (Cs) = Surround (S)
kSpeakerSl
Side Left (Sl)
kSpeakerSr
Side Right (Sr)
kSpeakerTm
Top Middle (Tm)
kSpeakerTfl
Top Front Left (Tfl)
kSpeakerTfc
Top Front Center (Tfc)
kSpeakerTfr
Top Front Right (Tfr)
kSpeakerTrl
Top Rear Left (Trl)
kSpeakerTrc
Top Rear Center (Trc)
kSpeakerTrr
Top Rear Right (Trr)
kSpeakerLfe2
Subbass 2 (Lfe2)

User-defined speaker types  (to be extended in the negative range)

Will be handled as their corresponding speaker types with abs values: e.g abs(kSpeakerU1) == kSpeakerL, abs(kSpeakerU2) == kSpeakerR.

enum

kSpeakerU32 = -32

kSpeakerU31

kSpeakerU30

kSpeakerU29

kSpeakerU28

kSpeakerU27

kSpeakerU26

kSpeakerU25

kSpeakerU24

kSpeakerU23

kSpeakerU22

kSpeakerU21

kSpeakerU20
 == kSpeakerLfe2
kSpeakerU19
 == kSpeakerTrr
kSpeakerU18
 == kSpeakerTrc
kSpeakerU17
 == kSpeakerTrl
kSpeakerU16
 == kSpeakerTfr
kSpeakerU15
 == kSpeakerTfc
kSpeakerU14
 == kSpeakerTfl
kSpeakerU13
 == kSpeakerTm
kSpeakerU12
 == kSpeakerSr
kSpeakerU11
 == kSpeakerSl
kSpeakerU10
 == kSpeakerCs
kSpeakerU9
 == kSpeakerS
kSpeakerU8
 == kSpeakerRc
kSpeakerU7
 == kSpeakerLc
kSpeakerU6
 == kSpeakerRs
kSpeakerU5
 == kSpeakerLs
kSpeakerU4
 == kSpeakerLfe
kSpeakerU3
 == kSpeakerC
kSpeakerU2
 == kSpeakerR
kSpeakerU1
 == kSpeakerL



VstSpeakerArrangement

struct VstSpeakerArrangement;

long type; (Was float lfeGain).
Speaker Arrangement type.
See below.
long numChannels; number of channel defined in the array speakers
VstSpeakerProperties speakers[8]; Variable. The size 8 is only the "by default" size, not at all the maximum one. numChannels tells what is this size.

Speaker Arrangement Types

enum

kSpeakerArrUserDefined = -2

kSpeakerArrEmpty = -1

kSpeakerArrMono  =  0
 M
kSpeakerArrStereo
 L R
kSpeakerArrStereoSurround
 Ls Rs
kSpeakerArrStereoCenter
 Lc Rc
kSpeakerArrStereoSide
 Sl Sr
kSpeakerArrStereoCLfe
 C Lfe
kSpeakerArr30Cine
 L R C
kSpeakerArr30Music
 L R S
kSpeakerArr31Cine
 L R C Lfe
kSpeakerArr31Music
 L R Lfe S
kSpeakerArr40Cine
 L R C   S (LCRS)
kSpeakerArr40Music
 L R Ls  Rs (Quadro)
kSpeakerArr41Cine
 L R C   Lfe S (LCRS+Lfe)
kSpeakerArr41Music
 L R Lfe Ls Rs (Quadro+Lfe)
kSpeakerArr50
 L R C Ls  Rs
kSpeakerArr51
 L R C Lfe Ls Rs
kSpeakerArr60Cine
 L R C   Ls  Rs Cs
kSpeakerArr60Music
 L R Ls  Rs  Sl Sr
kSpeakerArr61Cine
 L R C   Lfe Ls Rs Cs
kSpeakerArr61Music
 L R Lfe Ls  Rs Sl Sr
kSpeakerArr70Cine
 L R C Ls  Rs Lc Rc
kSpeakerArr70Music
 L R C Ls  Rs Sl Sr
kSpeakerArr71Cine
 L R C Lfe Ls Rs Lc Rc
kSpeakerArr71Music
 L R C Lfe Ls Rs Sl Sr
kSpeakerArr80Cine
 L R C Ls  Rs Lc Rc Cs
kSpeakerArr80Music
 L R C Ls  Rs Cs Sl Sr
kSpeakerArr81Cine
 L R C Lfe Ls Rs Lc Rc Cs
kSpeakerArr81Music
 L R C Lfe Ls Rs Cs Sl Sr
kSpeakerArr102
 L R C Lfe Ls Rs Tfl Tfc Tfr Trl Trr Lfe2
kNumSpeakerArr

 

See also :


Can Do (of Host, of Plug)


hostCanDos

const char *hostCanDos [];

'canDo' strings. note other 'canDos' can be evaluated by calling the according function, for instance if getSampleRate returns 0, you will certainly want to assume that this selector is not supported.

"sendVstEvents"
"sendVstMidiEvent"
"sendVstTimeInfo"
"receiveVstEvents"
"receiveVstMidiEvent"
"receiveVstTimeInfo"
"reportConnectionChanges"
"acceptIOChanges"
"sizeWindow"
"asyncProcessing"
"offline"
"supplyIdle"
"supportShell" 'shell' handling via uniqueID as suggested by Waves.
"editFile" (2.2)
"closeFileSelector" (2.2)
"startStopProcess" (2.3)


plugCanDos

const char *plugCanDos [];

"sendVstEvents"
"sendVstMidiEvent"
"sendVstTimeInfo"
"receiveVstEvents"
"receiveVstMidiEvent"
"receiveVstTimeInfo"
"offline"
"plugAsChannelInsert"
"plugAsSend"
"mixDryWet"
"noRealTime"
"multipass"
"metapass"
"1in1out"
"1in2out"
"2in1out"
"2in2out"
"2in4out"
"4in2out"
"4in4out"
"4in8out" 4:2 matrix to surround bus
"8in4out" surround bus to 4:2 matrix
"8in8out"
"midiProgramNames"(2.1)
"conformsToWindowRules"(2.1)
"bypass"(2.3)


Copyright ©2003 Steinberg Media Technologies GmbH. All Rights Reserved.