VST2SDK
A recreation of the popular Steinberg VST 2.x SDK.
Loading...
Searching...
No Matches
vst.h File Reference
#include <cinttypes>

Go to the source code of this file.

Data Structures

struct  vst_rect_t
 Window/Editor Rectangle. More...
 
struct  vst_parameter_properties_t
 Information about a parameter. More...
 
struct  vst_speaker_properties_t
 Speaker properties. More...
 
struct  vst_speaker_arrangement_t
 Speaker arrangement definition. More...
 
struct  vst_stream_properties_t
 
struct  vst_event_t
 A generic event. More...
 
union  vst_event_midi_t
 A MIDI event. More...
 
union  vst_event_midi_sysex_t
 A MIDI SysEx event. More...
 
struct  vst_events_t
 A collection of events. More...
 
struct  vst_host_supports_t
 Plug-in to Host support checks. More...
 
struct  vst_effect_supports_t
 Host to Plug-in support checks. More...
 
struct  vst_effect_t
 Plug-in Effect definition. More...
 

Macros

#define VST2SDK_VST_H
 
#define VST_FUNCTION_INTERFACE   __cdecl
 Standard calling convention across plug-ins and hosts.
 
#define VST_MAX_CHANNELS   32
 Maximum number of channels/streams/inputs/outputs supported by VST 2.x Couldn't find any audio editing software which would attempt to add more channels.
 
#define VST_FOURCC(a, b, c, d)   ((((uint32_t)a) << 24) | (((uint32_t)b) << 16) | (((uint32_t)c) << 8) | (((uint32_t)d) << 0))
 Convert four numbers into a FourCC.
 
#define VST_MAGICNUMBER   VST_FOURCC('V', 's', 't', 'P')
 Magic Number identifying a VST 2.x plug-in structure.
 
#define VST_DEFAULT_SAMPLE_RATE   44100.0f
 Default VST 2.x Sample Rate All VST 2.x hosts expect you to initialize your plug-in to these default values.
 
#define VST_DEFAULT_BLOCK_SIZE   1024
 Default VST 2.x Block Size All VST 2.x hosts expect you to initialize your plug-in to these default values.
 
#define VST_ENTRYPOINT    vst_effect_t* VSTPluginMain(vst_host_callback_t callback)
 VST 2.x Entry Point for all platforms.
 
#define VST_ENTRYPOINT_WINDOWS    vst_effect_t* MAIN(vst_host_callback_t callback) { return VSTPluginMain(callback); }
 [DEPRECATED] VST 1.x Entry Point for Windows
 
#define VST_ENTRYPOINT_MACOS    vst_effect_t* main_macho(vst_host_callback_t callback) { return VSTPluginMain(callback); }
 [DEPRECATED] VST 1.x Entry Point for MacOS
 
#define VST_ENTRYPOINT_MACOS_POWERPC    vst_effect_t* main(vst_host_callback_t callback) { return VSTPluginMain(callback); }
 [DEPRECATED] VST 2.3 Entry Point for PowerPC
 

Typedefs

typedef intptr_t(VST_FUNCTION_INTERFACEvst_host_callback_t) (struct vst_effect_t *plugin, int32_t opcode, int32_t p_int1, int64_t p_int2, const char *p_str, float p_float)
 Plug-in to Host callback.
 
typedef intptr_t(VST_FUNCTION_INTERFACEvst_effect_control_t) (struct vst_effect_t *self, int32_t opcode, int32_t p_int1, intptr_t p_int2, void *p_ptr, float p_float)
 Control the VST through an opcode and up to four parameters.
 
typedef void(VST_FUNCTION_INTERFACEvst_effect_process_t) (struct vst_effect_t *self, const float *const *inputs, float **outputs, int32_t samples)
 Process the given number of samples in inputs and outputs.
 
typedef void(VST_FUNCTION_INTERFACEvst_effect_set_parameter_t) (struct vst_effect_t *self, uint32_t index, float value)
 Updates the value for the parameter at the given index, or does nothing if out of bounds.
 
typedef float(VST_FUNCTION_INTERFACEvst_effect_get_parameter_t) (struct vst_effect_t *self, uint32_t index)
 Retrieve the current value of the parameter at the given index, or do nothing if out of bounds.
 
typedef void(VST_FUNCTION_INTERFACEvst_effect_process_float_t) (struct vst_effect_t *self, const float *const *inputs, float **outputs, int32_t samples)
 Process the given number of single samples in inputs and outputs.
 
typedef void(VST_FUNCTION_INTERFACEvst_effect_process_double_t) (struct vst_effect_t *self, const double *const *inputs, double **outputs, int32_t samples)
 Process the given number of double samples in inputs and outputs.
 

Enumerations

enum  VST_STATUS {
  VST_STATUS_0 = 0 , VST_STATUS_FALSE = 0 , VST_STATUS_ERROR = 0 , VST_STATUS_UNKNOWN = 0 ,
  VST_STATUS_1 = 1 , VST_STATUS_TRUE = 1 , VST_STATUS_SUCCESS = 1 , VST_STATUS_YES = 1 ,
  VST_STATUS_m1 = -1 , VST_STATUS_NO = -1 , _VST_STATUS_PAD = (-1l)
}
 Known Status Codes. More...
 
enum  VST_BUFFER_SIZE {
  VST_BUFFER_SIZE_PARAM_LABEL = 8 , VST_BUFFER_SIZE_PARAM_NAME = 8 , VST_BUFFER_SIZE_PARAM_VALUE = 8 , VST_BUFFER_SIZE_STREAM_LABEL = 8 ,
  VST_BUFFER_SIZE_CATEGORY_LABEL = 24 , VST_BUFFER_SIZE_PROGRAM_NAME = 24 , VST_BUFFER_SIZE_EFFECT_NAME = 32 , VST_BUFFER_SIZE_PARAM_LONG_NAME = 64 ,
  VST_BUFFER_SIZE_PRODUCT_NAME = 64 , VST_BUFFER_SIZE_SPEAKER_NAME = 64 , VST_BUFFER_SIZE_STREAM_NAME = 64 , VST_BUFFER_SIZE_VENDOR_NAME = 64
}
 Known Buffer Sizes. More...
 
enum  VST_VERSION {
  VST_VERSION_1 = 0 , VST_VERSION_1_0_0_0 = 1000 , VST_VERSION_1_1_0_0 = 1100 , VST_VERSION_2 = 2 ,
  VST_VERSION_2_0_0_0 = 2000 , VST_VERSION_2_1_0_0 = 2100 , VST_VERSION_2_2_0_0 = 2200 , VST_VERSION_2_3_0_0 = 2300 ,
  VST_VERSION_2_4_0_0 = 2400 , _VST_VERSION_PAD = (-1l)
}
 Valid VST 1.x and 2.x versions The format is either a single digit or four digits in Base10 format. More...
 
enum  VST_VKEY {
  VST_VKEY_00 = 0 , VST_VKEY_01 = 1 , VST_VKEY_BACKSPACE = 1 , VST_VKEY_02 = 2 ,
  VST_VKEY_TAB = 2 , VST_VKEY_03 = 3 , VST_VKEY_04 = 4 , VST_VKEY_RETURN = 4 ,
  VST_VKEY_05 = 5 , VST_VKEY_PAUSE = 5 , VST_VKEY_06 = 6 , VST_VKEY_ESCAPE = 6 ,
  VST_VKEY_07 = 7 , VST_VKEY_SPACE = 7 , VST_VKEY_08 = 8 , VST_VKEY_09 = 9 ,
  VST_VKEY_END = 9 , VST_VKEY_10 = 10 , VST_VKEY_HOME = 10 , VST_VKEY_11 = 11 ,
  VST_VKEY_ARROW_LEFT = 11 , VST_VKEY_12 = 12 , VST_VKEY_ARROW_UP = 12 , VST_VKEY_13 = 13 ,
  VST_VKEY_ARROW_RIGHT = 13 , VST_VKEY_14 = 14 , VST_VKEY_ARROW_DOWN = 14 , VST_VKEY_15 = 15 ,
  VST_VKEY_PAGE_UP = 15 , VST_VKEY_16 = 16 , VST_VKEY_PAGE_DOWN = 16 , VST_VKEY_17 = 17 ,
  VST_VKEY_18 = 18 , VST_VKEY_PRINT = 18 , VST_VKEY_19 = 19 , VST_VKEY_NUMPAD_ENTER = 19 ,
  VST_VKEY_20 = 20 , VST_VKEY_21 = 21 , VST_VKEY_INSERT = 21 , VST_VKEY_22 = 22 ,
  VST_VKEY_DELETE = 22 , VST_VKEY_23 = 23 , VST_VKEY_24 = 24 , VST_VKEY_NUMPAD_0 = 24 ,
  VST_VKEY_25 = 25 , VST_VKEY_NUMPAD_1 = 25 , VST_VKEY_26 = 26 , VST_VKEY_NUMPAD_2 = 26 ,
  VST_VKEY_27 = 27 , VST_VKEY_NUMPAD_3 = 27 , VST_VKEY_28 = 28 , VST_VKEY_NUMPAD_4 = 28 ,
  VST_VKEY_29 = 29 , VST_VKEY_NUMPAD_5 = 29 , VST_VKEY_30 = 30 , VST_VKEY_NUMPAD_6 = 30 ,
  VST_VKEY_31 = 31 , VST_VKEY_NUMPAD_7 = 31 , VST_VKEY_32 = 32 , VST_VKEY_NUMPAD_8 = 32 ,
  VST_VKEY_33 = 33 , VST_VKEY_NUMPAD_9 = 33 , VST_VKEY_34 = 34 , VST_VKEY_NUMPAD_MULTIPLY = 34 ,
  VST_VKEY_35 = 35 , VST_VKEY_NUMPAD_ADD = 35 , VST_VKEY_36 = 36 , VST_VKEY_NUMPAD_COMMA_OR_DOT = 36 ,
  VST_VKEY_37 = 37 , VST_VKEY_NUMPAD_SUBTRACT = 37 , VST_VKEY_38 = 38 , VST_VKEY_39 = 39 ,
  VST_VKEY_NUMPAD_DIVIDE = 39 , VST_VKEY_40 = 40 , VST_VKEY_F1 = 40 , VST_VKEY_41 = 41 ,
  VST_VKEY_F2 = 41 , VST_VKEY_42 = 42 , VST_VKEY_F3 = 42 , VST_VKEY_43 = 43 ,
  VST_VKEY_F4 = 43 , VST_VKEY_44 = 44 , VST_VKEY_F5 = 44 , VST_VKEY_45 = 45 ,
  VST_VKEY_F6 = 45 , VST_VKEY_46 = 46 , VST_VKEY_F7 = 46 , VST_VKEY_47 = 47 ,
  VST_VKEY_F8 = 47 , VST_VKEY_48 = 48 , VST_VKEY_F9 = 48 , VST_VKEY_49 = 49 ,
  VST_VKEY_F10 = 49 , VST_VKEY_50 = 50 , VST_VKEY_F11 = 50 , VST_VKEY_51 = 51 ,
  VST_VKEY_F12 = 51 , VST_VKEY_52 = 52 , VST_VKEY_NUMLOCK = 52 , VST_VKEY_53 = 53 ,
  VST_VKEY_SCROLLLOCK = 53 , VST_VKEY_54 = 54 , VST_VKEY_SHIFT = 54 , VST_VKEY_55 = 55 ,
  VST_VKEY_CONTROL = 55 , VST_VKEY_56 = 56 , VST_VKEY_ALT = 56 , VST_VKEY_57 = 57 ,
  VST_VKEY_58 = 58 , VST_VKEY_59 = 59 , VST_VKEY_60 = 60 , VST_VKEY_61 = 61 ,
  VST_VKEY_62 = 62 , VST_VKEY_63 = 63 , VST_VKEY_64 = 64 , VST_VKEY_65 = 65 ,
  VST_VKEY_66 = 66 , VST_VKEY_67 = 67 , VST_VKEY_68 = 68 , VST_VKEY_69 = 69
}
 Virtual Key codes. More...
 
enum  VST_VKEY_MODIFIER {
  VST_VKEY_MODIFIER_1ls0 = 1 << 0 , VST_VKEY_MODIFIER_SHIFT = 1 << 0 , VST_VKEY_MODIFIER_1ls1 = 1 << 1 , VST_VKEY_MODIFIER_ALT = 1 << 1 ,
  VST_VKEY_MODIFIER_1ls2 = 1 << 2 , VST_VKEY_MODIFIER_SYSTEM = 1 << 2 , VST_VKEY_MODIFIER_1ls3 = 1 << 3 , VST_VKEY_MODIFIER_CONTROL = 1 << 3
}
 
enum  VST_PARAMETER_FLAG {
  VST_PARAMETER_FLAG_1ls0 = 1 << 0 , VST_PARAMETER_FLAG_SWITCH = 1 , VST_PARAMETER_FLAG_1ls1 = 1 << 1 , VST_PARAMETER_FLAG_INTEGER_LIMITS = 1 << 1 ,
  VST_PARAMETER_FLAG_1ls2 = 1 << 2 , VST_PARAMETER_FLAG_STEP_FLOAT = 1 << 2 , VST_PARAMETER_FLAG_1ls3 = 1 << 3 , VST_PARAMETER_FLAG_STEP_INT = 1 << 3 ,
  VST_PARAMETER_FLAG_1ls4 = 1 << 4 , VST_PARAMETER_FLAG_INDEX = 1 << 4 , VST_PARAMETER_FLAG_1ls5 = 1 << 5 , VST_PARAMETER_FLAG_CATEGORY = 1 << 5 ,
  VST_PARAMETER_FLAG_1ls6 = 1 << 6 , VST_PARAMETER_FLAG_RAMPING = 1 << 6 , _VST_PARAMETER_FLAG_PAD = (-1l)
}
 Flags for parameters. More...
 
enum  VST_SPEAKER_TYPE {
  VST_SPEAKER_TYPE_MONO = 0 , VST_SPEAKER_TYPE_LEFT = 1 , VST_SPEAKER_TYPE_RIGHT = 2 , VST_SPEAKER_TYPE_CENTER = 3 ,
  VST_SPEAKER_TYPE_LFE = 4 , VST_SPEAKER_TYPE_LEFT_REAR = 5 , VST_SPEAKER_TYPE_RIGHT_REAR = 6 , VST_SPEAKER_TYPE_LEFT_SIDE = 10 ,
  VST_SPEAKER_TYPE_RIGHT_SIDE = 11 , VST_SPEAKER_TYPE_USER_32 = -32 , VST_SPEAKER_TYPE_USER_31 , VST_SPEAKER_TYPE_USER_30 ,
  VST_SPEAKER_TYPE_USER_29 , VST_SPEAKER_TYPE_USER_28 , VST_SPEAKER_TYPE_USER_27 , VST_SPEAKER_TYPE_USER_26 ,
  VST_SPEAKER_TYPE_USER_25 , VST_SPEAKER_TYPE_USER_24 , VST_SPEAKER_TYPE_USER_23 , VST_SPEAKER_TYPE_USER_22 ,
  VST_SPEAKER_TYPE_USER_21 , VST_SPEAKER_TYPE_USER_20 , VST_SPEAKER_TYPE_USER_19 , VST_SPEAKER_TYPE_USER_18 ,
  VST_SPEAKER_TYPE_USER_17 , VST_SPEAKER_TYPE_USER_16 , VST_SPEAKER_TYPE_USER_15 , VST_SPEAKER_TYPE_USER_14 ,
  VST_SPEAKER_TYPE_USER_13 , VST_SPEAKER_TYPE_USER_12 , VST_SPEAKER_TYPE_USER_11 , VST_SPEAKER_TYPE_USER_10 ,
  VST_SPEAKER_TYPE_USER_09 , VST_SPEAKER_TYPE_USER_08 , VST_SPEAKER_TYPE_USER_07 , VST_SPEAKER_TYPE_USER_06 ,
  VST_SPEAKER_TYPE_USER_05 , VST_SPEAKER_TYPE_USER_04 , VST_SPEAKER_TYPE_USER_03 , VST_SPEAKER_TYPE_USER_02 ,
  VST_SPEAKER_TYPE_USER_01 , _VST_SPEAKER_TYPE_PAD = (-1l)
}
 Default speaker types. More...
 
enum  VST_SPEAKER_ARRANGEMENT_TYPE {
  VST_SPEAKER_ARRANGEMENT_TYPE_CUSTOM = -2 , VST_SPEAKER_ARRANGEMENT_TYPE_UNKNOWN = -1 , VST_SPEAKER_ARRANGEMENT_TYPE_MONO = 0x00 , VST_SPEAKER_ARRANGEMENT_TYPE_STEREO = 0x01 ,
  VST_SPEAKER_ARRANGEMENT_TYPE_4_0 = 0x0B , VST_SPEAKER_ARRANGEMENT_TYPE_5_0 = 0x0E , VST_SPEAKER_ARRANGEMENT_TYPE_5_1 = 0x0F , VST_SPEAKER_ARRANGEMENT_TYPE_7_1 = 0x17 ,
  _VST_SPEAKER_ARRANGEMENT_TYPE_PAD = (-1l)
}
 Known default speaker arrangements. More...
 
enum  VST_STREAM_FLAG {
  VST_STREAM_FLAG_1ls0 = 1 << 0 , VST_STREAM_FLAG_1ls1 = 1 << 1 , VST_STREAM_FLAG_STEREO = 1 << 1 , VST_STREAM_FLAG_1ls2 = 1 << 2 ,
  VST_STREAM_FLAG_USE_TYPE = 1 << 2
}
 
enum  VST_EVENT_TYPE {
  VST_EVENT_TYPE_00 = 0 , VST_EVENT_TYPE_INVALID = 0 , VST_EVENT_TYPE_01 = 1 , VST_EVENT_TYPE_MIDI = 1 ,
  VST_EVENT_TYPE_02 = 2 , VST_EVENT_TYPE_03 = 3 , VST_EVENT_TYPE_04 = 4 , VST_EVENT_TYPE_05 = 5 ,
  VST_EVENT_TYPE_MIDI_SYSEX = 6
}
 Available event types. More...
 
enum  VST_HOST_ACTIVE_THREAD {
  VST_HOST_ACTIVE_THREAD_UNKNOWN = 0 , VST_HOST_ACTIVE_THREAD_INTERFACE = 1 , VST_HOST_ACTIVE_THREAD_AUDIO = 2 , VST_HOST_ACTIVE_THREAD_EVENT = 3 ,
  VST_HOST_ACTIVE_THREAD_USER = 4 , VST_HOST_ACTIVE_THREAD_MAX , _VST_HOST_ACTIVE_THREAD_PAD = (-1l)
}
 
enum  VST_HOST_OPCODE {
  VST_HOST_OPCODE_00 = 0x00 , VST_HOST_OPCODE_AUTOMATE = 0x00 , VST_HOST_OPCODE_PARAM_UPDATE = 0x00 , VST_HOST_OPCODE_01 = 0x01 ,
  VST_HOST_OPCODE_VST_VERSION = 0x01 , VST_HOST_OPCODE_02 = 0x02 , VST_HOST_OPCODE_CURRENT_EFFECT_ID = 0x02 , VST_HOST_OPCODE_03 = 0x03 ,
  VST_HOST_OPCODE_KEEPALIVE_OR_IDLE = 0x03 , VST_HOST_OPCODE_04 = 0x04 , VST_HOST_OPCODE_05 = 0x05 , VST_HOST_OPCODE_06 = 0x06 ,
  VST_HOST_OPCODE_07 = 0x07 , VST_HOST_OPCODE_08 = 0x08 , VST_HOST_OPCODE_09 = 0x09 , VST_HOST_OPCODE_EVENT = 0x09 ,
  VST_HOST_OPCODE_0A = 0x0A , VST_HOST_OPCODE_0B = 0x0B , VST_HOST_OPCODE_0C = 0x0C , VST_HOST_OPCODE_0D = 0x0D ,
  VST_HOST_OPCODE_IO_MODIFIED = 0x0D , VST_HOST_OPCODE_0E = 0x0E , VST_HOST_OPCODE_0F = 0x0F , VST_HOST_OPCODE_EDITOR_RESIZE = 0x0F ,
  VST_HOST_OPCODE_10 = 0x10 , VST_HOST_OPCODE_GET_SAMPLE_RATE = 0x10 , VST_HOST_OPCODE_11 = 0x11 , VST_HOST_OPCODE_GET_BLOCK_SIZE = 0x11 ,
  VST_HOST_OPCODE_12 = 0x12 , VST_HOST_OPCODE_INPUT_LATENCY = 0x12 , VST_HOST_OPCODE_13 = 0x13 , VST_HOST_OPCODE_OUTPUT_LATENCY = 0x13 ,
  VST_HOST_OPCODE_14 = 0x14 , VST_HOST_OPCODE_INPUT_GET_ATTACHED_EFFECT = 0x14 , VST_HOST_OPCODE_INPUT_STREAM_GET_ATTACHED_EFFECT = 0x14 , VST_HOST_OPCODE_15 = 0x15 ,
  VST_HOST_OPCODE_OUTPUT_GET_ATTACHED_EFFECT = 0x15 , VST_HOST_OPCODE_OUTPUT_STREAM_GET_ATTACHED_EFFECT = 0x15 , VST_HOST_OPCODE_16 = 0x16 , VST_HOST_OPCODE_17 = 0x17 ,
  VST_HOST_OPCODE_GET_ACTIVE_THREAD = 0x17 , VST_HOST_OPCODE_18 = 0x18 , VST_HOST_OPCODE_19 = 0x19 , VST_HOST_OPCODE_1A = 0x1A ,
  VST_HOST_OPCODE_1B = 0x1B , VST_HOST_OPCODE_1C = 0x1C , VST_HOST_OPCODE_1D = 0x1D , VST_HOST_OPCODE_1E = 0x1E ,
  VST_HOST_OPCODE_1F = 0x1F , VST_HOST_OPCODE_GET_OUTPUT_SPEAKER_ARRANGEMENT = 0x1F , VST_HOST_OPCODE_OUTPUT_GET_SPEAKER_ARRANGEMENT = 0x1F , VST_HOST_OPCODE_20 = 0x20 ,
  VST_HOST_OPCODE_VENDOR_NAME = 0x20 , VST_HOST_OPCODE_21 = 0x21 , VST_HOST_OPCODE_PRODUCT_NAME = 0x21 , VST_HOST_OPCODE_22 = 0x22 ,
  VST_HOST_OPCODE_VENDOR_VERSION = 0x22 , VST_HOST_OPCODE_23 = 0x23 , VST_HOST_OPCODE_CUSTOM = 0x23 , VST_HOST_OPCODE_24 = 0x24 ,
  VST_HOST_OPCODE_25 = 0x25 , VST_HOST_OPCODE_SUPPORTS = 0x25 , VST_HOST_OPCODE_26 = 0x26 , VST_HOST_OPCODE_LANGUAGE = 0x26 ,
  VST_HOST_OPCODE_27 = 0x27 , VST_HOST_OPCODE_28 = 0x28 , VST_HOST_OPCODE_29 = 0x29 , VST_HOST_OPCODE_GET_EFFECT_DIRECTORY = 0x29 ,
  VST_HOST_OPCODE_2A = 0x2A , VST_HOST_OPCODE_EDITOR_UPDATE = 0x2A , VST_HOST_OPCODE_REFRESH = 0x2A , VST_HOST_OPCODE_2B = 0x2B ,
  VST_HOST_OPCODE_PARAM_START_EDIT = 0x2B , VST_HOST_OPCODE_PARAM_LOCK = 0x2B , VST_HOST_OPCODE_2C = 0x2C , VST_HOST_OPCODE_PARAM_STOP_EDIT = 0x2C ,
  VST_HOST_OPCODE_PARAM_UNLOCK = 0x2C , VST_HOST_OPCODE_2D = 0x2D , VST_HOST_OPCODE_2E = 0x2E , VST_HOST_OPCODE_2F = 0x2F ,
  VST_HOST_OPCODE_30 = 0x30 , VST_HOST_OPCODE_31 = 0x31 , VST_HOST_OPCODE_GET_INPUT_SPEAKER_ARRANGEMENT = 0x31 , VST_HOST_OPCODE_INPUT_GET_SPEAKER_ARRANGEMENT = 0x31 ,
  VST_HOST_OPCODE_MAX , _VST_HOST_OPCODE_PAD = (-1l)
}
 Plug-in to Host Op-Codes These Op-Codes are emitted by the plug-in and the host may handle them or return 0 (false). More...
 
enum  VST_EFFECT_CATEGORY {
  VST_EFFECT_CATEGORY_UNCATEGORIZED = 0x00 , VST_EFFECT_CATEGORY_01 = 0x01 , VST_EFFECT_CATEGORY_EFFECT = 0x01 , VST_EFFECT_CATEGORY_02 = 0x02 ,
  VST_EFFECT_CATEGORY_INSTRUMENT = 0x02 , VST_EFFECT_CATEGORY_03 = 0x03 , VST_EFFECT_CATEGORY_METERING = 0x03 , VST_EFFECT_CATEGORY_04 = 0x04 ,
  VST_EFFECT_CATEGORY_MASTERING = 0x04 , VST_EFFECT_CATEGORY_05 = 0x05 , VST_EFFECT_CATEGORY_SPATIAL = 0x05 , VST_EFFECT_CATEGORY_06 = 0x06 ,
  VST_EFFECT_CATEGORY_DELAY_OR_ECHO = 0x06 , VST_EFFECT_CATEGORY_07 = 0x07 , VST_EFFECT_CATEGORY_EXTERNAL = 0x07 , VST_EFFECT_CATEGORY_08 = 0x08 ,
  VST_EFFECT_CATEGORY_RESTORATION = 0x08 , VST_EFFECT_CATEGORY_09 = 0x09 , VST_EFFECT_CATEGORY_OFFLINE = 0x09 , VST_EFFECT_CATEGORY_0A = 0x0A ,
  VST_EFFECT_CATEGORY_CONTAINER = 0x0A , VST_EFFECT_CATEGORY_0B = 0x0B , VST_EFFECT_CATEGORY_WAVEGENERATOR = 0x0B , VST_EFFECT_CATEGORY_MAX ,
  _VST_EFFECT_CATEGORY_PAD = (-1l)
}
 Plug-in Categories Pre-defined category grouping that also affect host behavior when handling the plug-in. More...
 
enum  VST_EFFECT_FLAG {
  VST_EFFECT_FLAG_1ls0 = 1 << 0 , VST_EFFECT_FLAG_EDITOR = 1 << 0 , VST_EFFECT_FLAG_1ls4 = 1 << 4 , VST_EFFECT_FLAG_SUPPORTS_FLOAT = 1 << 4 ,
  VST_EFFECT_FLAG_1ls5 = 1 << 5 , VST_EFFECT_FLAG_CHUNKS = 1 << 5 , VST_EFFECT_FLAG_1ls8 = 1 << 8 , VST_EFFECT_FLAG_INSTRUMENT = 1 << 8 ,
  VST_EFFECT_FLAG_1ls9 = 1 << 9 , VST_EFFECT_FLAG_SILENT_TAIL = 1 << 9 , VST_EFFECT_FLAG_1ls12 = 1 << 12 , VST_EFFECT_FLAG_SUPPORTS_DOUBLE = 1 << 12
}
 Effect Flags. More...
 
enum  VST_EFFECT_OPCODE {
  VST_EFFECT_OPCODE_00 = 0x00 , VST_EFFECT_OPCODE_CREATE = 0x00 , VST_EFFECT_OPCODE_INITIALIZE = 0x00 , VST_EFFECT_OPCODE_01 = 0x01 ,
  VST_EFFECT_OPCODE_DESTROY = 0x01 , VST_EFFECT_OPCODE_02 = 0x02 , VST_EFFECT_OPCODE_SET_PROGRAM = 0x02 , VST_EFFECT_OPCODE_PROGRAM_SET = 0x02 ,
  VST_EFFECT_OPCODE_03 = 0x03 , VST_EFFECT_OPCODE_GET_PROGRAM = 0x03 , VST_EFFECT_OPCODE_PROGRAM_GET = 0x03 , VST_EFFECT_OPCODE_04 = 0x04 ,
  VST_EFFECT_OPCODE_SET_PROGRAM_NAME = 0x04 , VST_EFFECT_OPCODE_PROGRAM_SET_NAME = 0x04 , VST_EFFECT_OPCODE_05 = 0x05 , VST_EFFECT_OPCODE_GET_PROGRAM_NAME = 0x05 ,
  VST_EFFECT_OPCODE_PROGRAM_GET_NAME = 0x05 , VST_EFFECT_OPCODE_06 = 0x06 , VST_EFFECT_OPCODE_PARAM_GETLABEL = 0x06 , VST_EFFECT_OPCODE_PARAM_GET_LABEL = 0x06 ,
  VST_EFFECT_OPCODE_PARAM_LABEL = 0x06 , VST_EFFECT_OPCODE_07 = 0x07 , VST_EFFECT_OPCODE_PARAM_GETVALUE = 0x07 , VST_EFFECT_OPCODE_PARAM_GET_VALUE = 0x07 ,
  VST_EFFECT_OPCODE_PARAM_VALUE = 0x07 , VST_EFFECT_OPCODE_PARAM_VALUE_TO_STRING = 0x07 , VST_EFFECT_OPCODE_08 = 0x08 , VST_EFFECT_OPCODE_PARAM_GETNAME = 0x08 ,
  VST_EFFECT_OPCODE_PARAM_GET_NAME = 0x08 , VST_EFFECT_OPCODE_PARAM_NAME = 0x08 , VST_EFFECT_OPCODE_09 = 0x09 , VST_EFFECT_OPCODE_0A = 0x0A ,
  VST_EFFECT_OPCODE_SETSAMPLERATE = 0x0A , VST_EFFECT_OPCODE_SET_SAMPLE_RATE = 0x0A , VST_EFFECT_OPCODE_0B = 0x0B , VST_EFFECT_OPCODE_SETBLOCKSIZE = 0x0B ,
  VST_EFFECT_OPCODE_SET_BLOCK_SIZE = 0x0B , VST_EFFECT_OPCODE_0C = 0x0C , VST_EFFECT_OPCODE_PAUSE_UNPAUSE = 0x0C , VST_EFFECT_OPCODE_SUSPEND_RESUME = 0x0C ,
  VST_EFFECT_OPCODE_SUSPEND = 0x0C , VST_EFFECT_OPCODE_0D = 0x0D , VST_EFFECT_OPCODE_WINDOW_GETRECT = 0x0D , VST_EFFECT_OPCODE_EDITOR_RECT = 0x0D ,
  VST_EFFECT_OPCODE_EDITOR_GET_RECT = 0x0D , VST_EFFECT_OPCODE_0E = 0x0E , VST_EFFECT_OPCODE_WINDOW_CREATE = 0x0E , VST_EFFECT_OPCODE_EDITOR_OPEN = 0x0E ,
  VST_EFFECT_OPCODE_0F = 0x0F , VST_EFFECT_OPCODE_WINDOW_DESTROY = 0x0F , VST_EFFECT_OPCODE_EDITOR_CLOSE = 0x0F , VST_EFFECT_OPCODE_10 = 0x10 ,
  VST_EFFECT_OPCODE_WINDOW_DRAW = 0x10 , VST_EFFECT_OPCODE_EDITOR_DRAW = 0x10 , VST_EFFECT_OPCODE_11 = 0x11 , VST_EFFECT_OPCODE_WINDOW_MOUSE = 0x11 ,
  VST_EFFECT_OPCODE_EDITOR_MOUSE = 0x11 , VST_EFFECT_OPCODE_12 = 0x12 , VST_EFFECT_OPCODE_WINDOW_KEYBOARD = 0x12 , VST_EFFECT_OPCODE_EDITOR_KEYBOARD = 0x12 ,
  VST_EFFECT_OPCODE_13 = 0x13 , VST_EFFECT_OPCODE_EDITOR_KEEP_ALIVE = 0x13 , VST_EFFECT_OPCODE_14 = 0x14 , VST_EFFECT_OPCODE_15 = 0x15 ,
  VST_EFFECT_OPCODE_16 = 0x16 , VST_EFFECT_OPCODE_FOURCC = 0x16 , VST_EFFECT_OPCODE_17 = 0x17 , VST_EFFECT_OPCODE_GET_CHUNK_DATA = 0x17 ,
  VST_EFFECT_OPCODE_18 = 0x18 , VST_EFFECT_OPCODE_SET_CHUNK_DATA = 0x18 , VST_EFFECT_OPCODE_19 = 0x19 , VST_EFFECT_OPCODE_EVENT = 0x19 ,
  VST_EFFECT_OPCODE_1A = 0x1A , VST_EFFECT_OPCODE_PARAM_ISAUTOMATABLE = 0x1A , VST_EFFECT_OPCODE_PARAM_IS_AUTOMATABLE = 0x1A , VST_EFFECT_OPCODE_PARAM_AUTOMATABLE = 0x1A ,
  VST_EFFECT_OPCODE_1B = 0x1B , VST_EFFECT_OPCODE_PARAM_SET_VALUE = 0x1B , VST_EFFECT_OPCODE_PARAM_VALUE_FROM_STRING = 0x1B , VST_EFFECT_OPCODE_1C = 0x1C ,
  VST_EFFECT_OPCODE_1D = 0x1D , VST_EFFECT_OPCODE_1E = 0x1E , VST_EFFECT_OPCODE_1F = 0x1F , VST_EFFECT_OPCODE_20 = 0x20 ,
  VST_EFFECT_OPCODE_21 = 0x21 , VST_EFFECT_OPCODE_INPUT_GET_PROPERTIES = 0x21 , VST_EFFECT_OPCODE_INPUT_STREAM_GET_PROPERTIES = 0x21 , VST_EFFECT_OPCODE_22 = 0x22 ,
  VST_EFFECT_OPCODE_OUTPUT_GET_PROPERTIES = 0x22 , VST_EFFECT_OPCODE_OUTPUT_STREAM_GET_PROPERTIES = 0x22 , VST_EFFECT_OPCODE_23 = 0x23 , VST_EFFECT_OPCODE_EFFECT_CATEGORY = 0x23 ,
  VST_EFFECT_OPCODE_CATEGORY = 0x23 , VST_EFFECT_OPCODE_24 = 0x24 , VST_EFFECT_OPCODE_25 = 0x25 , VST_EFFECT_OPCODE_26 = 0x26 ,
  VST_EFFECT_OPCODE_27 = 0x27 , VST_EFFECT_OPCODE_28 = 0x28 , VST_EFFECT_OPCODE_29 = 0x29 , VST_EFFECT_OPCODE_2A = 0x2A ,
  VST_EFFECT_OPCODE_SET_SPEAKER_ARRANGEMENT = 0x2A , VST_EFFECT_OPCODE_2B = 0x2B , VST_EFFECT_OPCODE_2C = 0x2C , VST_EFFECT_OPCODE_BYPASS = 0x2C ,
  VST_EFFECT_OPCODE_2D = 0x2D , VST_EFFECT_OPCODE_GETNAME = 0x2D , VST_EFFECT_OPCODE_EFFECT_NAME = 0x2D , VST_EFFECT_OPCODE_NAME = 0x2D ,
  VST_EFFECT_OPCODE_2E = 0x2E , VST_EFFECT_OPCODE_TRANSLATE_ERROR = 0x2E , VST_EFFECT_OPCODE_2F = 0x2F , VST_EFFECT_OPCODE_GETVENDOR = 0x2F ,
  VST_EFFECT_OPCODE_VENDOR_NAME = 0x2F , VST_EFFECT_OPCODE_30 = 0x30 , VST_EFFECT_OPCODE_GETNAME2 = 0x30 , VST_EFFECT_OPCODE_PRODUCT_NAME = 0x30 ,
  VST_EFFECT_OPCODE_31 = 0x31 , VST_EFFECT_OPCODE_GETVENDORVERSION = 0x31 , VST_EFFECT_OPCODE_VENDOR_VERSION = 0x31 , VST_EFFECT_OPCODE_32 = 0x32 ,
  VST_EFFECT_OPCODE_CUSTOM = 0x32 , VST_EFFECT_OPCODE_33 = 0x33 , VST_EFFECT_OPCODE_SUPPORTS = 0x33 , VST_EFFECT_OPCODE_34 = 0x34 ,
  VST_EFFECT_OPCODE_GETTAILSAMPLES = 0x34 , VST_EFFECT_OPCODE_TAIL_SAMPLES = 0x34 , VST_EFFECT_OPCODE_35 = 0x35 , VST_EFFECT_OPCODE_IDLE = 0x35 ,
  VST_EFFECT_OPCODE_36 = 0x36 , VST_EFFECT_OPCODE_37 = 0x37 , VST_EFFECT_OPCODE_38 = 0x38 , VST_EFFECT_OPCODE_GET_PARAMETER_PROPERTIES = 0x38 ,
  VST_EFFECT_OPCODE_PARAM_PROPERTIES = 0x38 , VST_EFFECT_OPCODE_39 = 0x39 , VST_EFFECT_OPCODE_3A = 0x3A , VST_EFFECT_OPCODE_VST_VERSION = 0x3A ,
  VST_EFFECT_OPCODE_3B = 0x3B , VST_EFFECT_OPCODE_EDITOR_VKEY_DOWN = 0x3B , VST_EFFECT_OPCODE_3C = 0x3C , VST_EFFECT_OPCODE_EDITOR_VKEY_UP = 0x3C ,
  VST_EFFECT_OPCODE_3D = 0x3D , VST_EFFECT_OPCODE_3E = 0x3E , VST_EFFECT_OPCODE_3F = 0x3F , VST_EFFECT_OPCODE_40 = 0x40 ,
  VST_EFFECT_OPCODE_41 = 0x41 , VST_EFFECT_OPCODE_42 = 0x42 , VST_EFFECT_OPCODE_43 = 0x43 , VST_EFFECT_OPCODE_PROGRAM_SET_BEGIN = 0x43 ,
  VST_EFFECT_OPCODE_44 = 0x44 , VST_EFFECT_OPCODE_PROGRAM_SET_END = 0x44 , VST_EFFECT_OPCODE_45 = 0x45 , VST_EFFECT_OPCODE_GET_SPEAKER_ARRANGEMENT = 0x45 ,
  VST_EFFECT_OPCODE_46 = 0x46 , VST_EFFECT_OPCODE_CONTAINER_NEXT_EFFECT_ID = 0x46 , VST_EFFECT_OPCODE_47 = 0x47 , VST_EFFECT_OPCODE_PROCESS_BEGIN = 0x47 ,
  VST_EFFECT_OPCODE_48 = 0x48 , VST_EFFECT_OPCODE_PROCESS_END = 0x48 , VST_EFFECT_OPCODE_49 = 0x49 , VST_EFFECT_OPCODE_4A = 0x4A ,
  VST_EFFECT_OPCODE_4B = 0x4B , VST_EFFECT_OPCODE_BANK_LOAD = 0x4B , VST_EFFECT_OPCODE_4C = 0x4C , VST_EFFECT_OPCODE_PROGRAM_LOAD = 0x4C ,
  VST_EFFECT_OPCODE_4D = 0x4D , VST_EFFECT_OPCODE_4E = 0x4E , VST_EFFECT_OPCODE_4F = 0x4F , VST_EFFECT_OPCODE_MAX ,
  _VST_EFFECT_OPCODE_PAD = (-1l)
}
 Host to Plug-in Op-Codes These Op-Codes are emitted by the host and we must either handle them or return 0 (false). More...
 

Macro Definition Documentation

◆ VST2SDK_VST_H

#define VST2SDK_VST_H

Definition at line 27 of file vst.h.

◆ VST_DEFAULT_BLOCK_SIZE

#define VST_DEFAULT_BLOCK_SIZE   1024

Default VST 2.x Block Size All VST 2.x hosts expect you to initialize your plug-in to these default values.

See also
VST_EFFECT_OPCODE_SET_BLOCK_SIZE

Definition at line 1611 of file vst.h.

◆ VST_DEFAULT_SAMPLE_RATE

#define VST_DEFAULT_SAMPLE_RATE   44100.0f

Default VST 2.x Sample Rate All VST 2.x hosts expect you to initialize your plug-in to these default values.

See also
VST_EFFECT_OPCODE_SET_SAMPLE_RATE

Definition at line 1604 of file vst.h.

◆ VST_ENTRYPOINT

#define VST_ENTRYPOINT    vst_effect_t* VSTPluginMain(vst_host_callback_t callback)

VST 2.x Entry Point for all platforms.

Must be present in VST 2.x plug-ins but must not be present in VST 1.x plug-ins.

Returns
A new instance of the VST 2.x effect.

Definition at line 3127 of file vst.h.

3136 { return VSTPluginMain(callback); }
3137
3144#define VST_ENTRYPOINT_MACOS \
3145 vst_effect_t* main_macho(vst_host_callback_t callback) { return VSTPluginMain(callback); }
3146
3153#define VST_ENTRYPOINT_MACOS_POWERPC \
3154 vst_effect_t* main(vst_host_callback_t callback) { return VSTPluginMain(callback); }
3155
3156#ifdef __cplusplus
3157}
3158#endif
3159#pragma pack(pop)
3160#endif

◆ VST_ENTRYPOINT_MACOS

#define VST_ENTRYPOINT_MACOS    vst_effect_t* main_macho(vst_host_callback_t callback) { return VSTPluginMain(callback); }

[DEPRECATED] VST 1.x Entry Point for MacOS

Do not implement in VST 2.1 or later plug-ins!

Returns
A new instance of the VST 1.x effect.

Definition at line 3145 of file vst.h.

3146 { return VSTPluginMain(callback); }

◆ VST_ENTRYPOINT_MACOS_POWERPC

#define VST_ENTRYPOINT_MACOS_POWERPC    vst_effect_t* main(vst_host_callback_t callback) { return VSTPluginMain(callback); }

[DEPRECATED] VST 2.3 Entry Point for PowerPC

Present in some VST 2.3 and earlier compatible plug-ins that support MacOS.

Returns
A new instance of the VST 2.x effect.

Definition at line 3154 of file vst.h.

3155 { return VSTPluginMain(callback); }

◆ VST_ENTRYPOINT_WINDOWS

#define VST_ENTRYPOINT_WINDOWS    vst_effect_t* MAIN(vst_host_callback_t callback) { return VSTPluginMain(callback); }

[DEPRECATED] VST 1.x Entry Point for Windows

Do not implement in VST 2.1 or later plug-ins!

Returns
A new instance of the VST 1.x effect.

Definition at line 3136 of file vst.h.

3137 { return VSTPluginMain(callback); }

◆ VST_FOURCC

#define VST_FOURCC (   a,
  b,
  c,
 
)    ((((uint32_t)a) << 24) | (((uint32_t)b) << 16) | (((uint32_t)c) << 8) | (((uint32_t)d) << 0))

Convert four numbers into a FourCC.

Definition at line 60 of file vst.h.

◆ VST_FUNCTION_INTERFACE

#define VST_FUNCTION_INTERFACE   __cdecl

Standard calling convention across plug-ins and hosts.

On some older Windows platforms this is not __cdecl but something similar to __stdcall. We don't really care about those old platforms anyway so __cdecl it is.

Definition at line 49 of file vst.h.

◆ VST_MAGICNUMBER

#define VST_MAGICNUMBER   VST_FOURCC('V', 's', 't', 'P')

Magic Number identifying a VST 2.x plug-in structure.

See also
vst_effect_t.magic_numer

Definition at line 1597 of file vst.h.

◆ VST_MAX_CHANNELS

#define VST_MAX_CHANNELS   32

Maximum number of channels/streams/inputs/outputs supported by VST 2.x Couldn't find any audio editing software which would attempt to add more channels.

Todo:
Is 32 channels really the maximum?

Definition at line 56 of file vst.h.

Typedef Documentation

◆ vst_effect_control_t

typedef intptr_t(VST_FUNCTION_INTERFACE * vst_effect_control_t) (struct vst_effect_t *self, int32_t opcode, int32_t p_int1, intptr_t p_int2, void *p_ptr, float p_float)

Control the VST through an opcode and up to four parameters.

See also
VST_EFFECT_OPCODE
Parameters
selfPointer to the effect itself.
opcodeThe opcode to run, see VST_EFFECT_OPCODE.
p_int1Parameter, see VST_EFFECT_OPCODE.
p_int2Parameter, see VST_EFFECT_OPCODE.
p_ptrParameter, see VST_EFFECT_OPCODE.
p_floatParameter, see VST_EFFECT_OPCODE.

Definition at line 2899 of file vst.h.

◆ vst_effect_get_parameter_t

typedef float(VST_FUNCTION_INTERFACE * vst_effect_get_parameter_t) (struct vst_effect_t *self, uint32_t index)

Retrieve the current value of the parameter at the given index, or do nothing if out of bounds.

Parameters
selfPointer to the effect itself.
indexParameter index.
Returns
Current value of the parameter.

Definition at line 2926 of file vst.h.

◆ vst_effect_process_double_t

typedef void(VST_FUNCTION_INTERFACE * vst_effect_process_double_t) (struct vst_effect_t *self, const double *const *inputs, double **outputs, int32_t samples)

Process the given number of double samples in inputs and outputs.

Process input and overwrite the output in place. Host provides output buffers.

Note
(VST 2.4+) Available from VST 2.4 and later.
Parameters
selfPointer to the effect itself.
inputsPointer to an array of 'const double[samples]' with size numInputs.
outputsPointer to an array of 'double[samples]' with size numOutputs.
samplesNumber of samples per channel in inputs.

Definition at line 2952 of file vst.h.

◆ vst_effect_process_float_t

typedef void(VST_FUNCTION_INTERFACE * vst_effect_process_float_t) (struct vst_effect_t *self, const float *const *inputs, float **outputs, int32_t samples)

Process the given number of single samples in inputs and outputs.

Process input and overwrite the output in place. Host provides output buffers.

@important Not thread-safe on MacOS for some reason or another.

Parameters
selfPointer to the effect itself.
inputsPointer to an array of 'const float[samples]' with size numInputs.
outputsPointer to an array of 'float[samples]' with size numOutputs.
samplesNumber of samples per channel in inputs.

Definition at line 2939 of file vst.h.

◆ vst_effect_process_t

typedef void(VST_FUNCTION_INTERFACE * vst_effect_process_t) (struct vst_effect_t *self, const float *const *inputs, float **outputs, int32_t samples)

Process the given number of samples in inputs and outputs.

Used to handle input data and provides output data. We seem to be the ones that provide the output buffer?

Parameters
selfPointer to the effect itself.
inputsPointer to an array of 'const float[samples]' with size vst_effect_t::num_inputs.
outputsPointer to an array of 'float[samples]' with size vst_effect_t::num_outputs.
samplesNumber of samples per channel in inputs and outputs.

Definition at line 2910 of file vst.h.

◆ vst_effect_set_parameter_t

typedef void(VST_FUNCTION_INTERFACE * vst_effect_set_parameter_t) (struct vst_effect_t *self, uint32_t index, float value)

Updates the value for the parameter at the given index, or does nothing if out of bounds.

Parameters
selfPointer to the effect itself.
indexParameter index.
valueNew value for the parameter.

Definition at line 2918 of file vst.h.

◆ vst_host_callback_t

typedef intptr_t(VST_FUNCTION_INTERFACE * vst_host_callback_t) (struct vst_effect_t *plugin, int32_t opcode, int32_t p_int1, int64_t p_int2, const char *p_str, float p_float)

Plug-in to Host callback.

The plug-in may call this to attempt to change things on the host side. The host side is free to ignore all requests, annoyingly enough.

Parameters
opcodeSee VST_HOST_OPCODE
p_strZero terminated string or null on call.
Returns
?

Definition at line 1587 of file vst.h.

Enumeration Type Documentation

◆ VST_BUFFER_SIZE

Known Buffer Sizes.

Enumerator
VST_BUFFER_SIZE_PARAM_LABEL 
VST_BUFFER_SIZE_PARAM_NAME 
VST_BUFFER_SIZE_PARAM_VALUE 
VST_BUFFER_SIZE_STREAM_LABEL 
VST_BUFFER_SIZE_CATEGORY_LABEL 
VST_BUFFER_SIZE_PROGRAM_NAME 
VST_BUFFER_SIZE_EFFECT_NAME 
VST_BUFFER_SIZE_PARAM_LONG_NAME 
VST_BUFFER_SIZE_PRODUCT_NAME 
VST_BUFFER_SIZE_SPEAKER_NAME 
VST_BUFFER_SIZE_STREAM_NAME 
VST_BUFFER_SIZE_VENDOR_NAME 

Definition at line 108 of file vst.h.

108 {
121};
@ VST_BUFFER_SIZE_SPEAKER_NAME
Definition vst.h:118
@ VST_BUFFER_SIZE_STREAM_NAME
Definition vst.h:119
@ VST_BUFFER_SIZE_PARAM_VALUE
Definition vst.h:111
@ VST_BUFFER_SIZE_STREAM_LABEL
Definition vst.h:112
@ VST_BUFFER_SIZE_PARAM_LABEL
Definition vst.h:109
@ VST_BUFFER_SIZE_VENDOR_NAME
Definition vst.h:120
@ VST_BUFFER_SIZE_PARAM_NAME
Definition vst.h:110
@ VST_BUFFER_SIZE_PROGRAM_NAME
Definition vst.h:114
@ VST_BUFFER_SIZE_CATEGORY_LABEL
Definition vst.h:113
@ VST_BUFFER_SIZE_EFFECT_NAME
Definition vst.h:115
@ VST_BUFFER_SIZE_PARAM_LONG_NAME
Definition vst.h:116
@ VST_BUFFER_SIZE_PRODUCT_NAME
Definition vst.h:117

◆ VST_EFFECT_CATEGORY

Plug-in Categories Pre-defined category grouping that also affect host behavior when handling the plug-in.

This is not just a UI/UX thing, it actually affects what plug-ins can do, so place your plug-in into the correct category.

Enumerator
VST_EFFECT_CATEGORY_UNCATEGORIZED 
VST_EFFECT_CATEGORY_01 

Generic Effects Examples: Distortion, Pitch Shift, ...

Supports: Delay (Optional), Tail Samples, MIDI

VST_EFFECT_CATEGORY_EFFECT 
See also
VST_EFFECT_CATEGORY_01
VST_EFFECT_CATEGORY_02 

Instruments Examples: Instruments, Synths, Samplers, ...

Supports: Delay (Optional), Tail Samples, MIDI

VST_EFFECT_CATEGORY_INSTRUMENT 
See also
VST_EFFECT_CATEGORY_02
VST_EFFECT_CATEGORY_03 

Metering Examples: Loudness Meters, Volume Analysis, ...

Supports: Tail Samples, MIDI

Note
Delay causes crashes in some hosts. Fun.
VST_EFFECT_CATEGORY_METERING 
See also
VST_EFFECT_CATEGORY_03
VST_EFFECT_CATEGORY_04 

Mastering Examples: Compressors, Limiters, ...

Supports: Delay, Tail Samples (optional), MIDI

VST_EFFECT_CATEGORY_MASTERING 
See also
VST_EFFECT_CATEGORY_04
VST_EFFECT_CATEGORY_05 

Spatializers Examples: Channel Panning, Expanders, ...

Supports: Tail Samples (optional), MIDI

VST_EFFECT_CATEGORY_SPATIAL 
See also
VST_EFFECT_CATEGORY_05
VST_EFFECT_CATEGORY_06 

Delay/Echo Examples: Echo, Reverb, Room Simulation, Delay, ...

Supports: Delay, Tail Samples, MIDI

VST_EFFECT_CATEGORY_DELAY_OR_ECHO 
See also
VST_EFFECT_CATEGORY_06
VST_EFFECT_CATEGORY_07 

External Processing.

This VST effect is an interface to an external device and requires special handling.

Todo:
What does this actually support? Is it even still supported?
VST_EFFECT_CATEGORY_EXTERNAL 
See also
VST_EFFECT_CATEGORY_07
VST_EFFECT_CATEGORY_08 

Restoration Examples: Noise Filtering, Upsamplers, ...

Supports: Delay, Tail Samples, MIDI

Note
Some DAWs allocate additional processing time to these.
VST_EFFECT_CATEGORY_RESTORATION 
See also
VST_EFFECT_CATEGORY_08
VST_EFFECT_CATEGORY_09 

Offline Processing Examples: Nothing Supports: Nothing.

VST_EFFECT_CATEGORY_OFFLINE 
See also
VST_EFFECT_CATEGORY_09
VST_EFFECT_CATEGORY_0A 

Container Plug-in This plug-in contains multiple effects in one and requires special handling on both sides.

Host handling:

uint32_t current_select_id;
// ... in intptr_t vst_host_callback(vst_effect_t* plugin, VST_HOST_OPCODE opcode, ...)
char* text = (char*)p_ptr;
// The plug-in may ask the host if it even supports containers at all and changes behavior if we don't.
if (text && strcmp(text, vst_host_supports.shellCategory) == 0) {
}
}
return current_selected_id;
// ...
// ... in whatever you use to load plug-ins ...
current_select_id;
vst_effect_t* plugin = plugin_main(&vst_host_callback);
int32_t plugin_category = plugin->control(plugin, VST_EFFECT_OPCODE_CATEGORY, 0, 0, 0, 0)
if (plugin_category == VST_EFFECT_CATEGORY_CONTAINER) {
char effect_name[VST_BUFFER_SIZE_EFFECT_NAME] effect_name;
int32_t effect_id;
// Iterate over all contained effects.
while ((effect_id = plugin->control(plugin, VST_EFFECT_OPCODE_CONTAINER_NEXT_EFFECT_ID, 0, 0, effect_name, 0)) != 0) {
// Contained effects must be named as far as I can tell.
if (effect_name[0] != 0) {
// Do some logic that does the necessary things to list these in the host.
}
}
} else {
// Do things to list only this plugin in the host.
}
// ...
Plug-in Effect definition.
Definition vst.h:2956
vst_effect_control_t control
Control Function.
Definition vst.h:2969
const char * shellCategory
Does the host support container plug-ins?
Definition vst.h:1497
@ VST_HOST_OPCODE_CURRENT_EFFECT_ID
Definition vst.h:1075
@ VST_HOST_OPCODE_SUPPORTS
Definition vst.h:1325
@ VST_STATUS_TRUE
Definition vst.h:87
@ VST_EFFECT_CATEGORY_CONTAINER
Definition vst.h:1783
@ VST_EFFECT_OPCODE_CATEGORY
Definition vst.h:2316
@ VST_EFFECT_OPCODE_CONTAINER_NEXT_EFFECT_ID
Definition vst.h:2674

Plug-in handling:

// ... in vst_effect for the container
size_t current_effect_idx;
int32_t effect_list[] = {
// ... list of effect ids.
}
// ... in control(...)
// Make sure current_effect_idx doesn't exceed the maximum.
if (current_effect_idx > ARRAYSIZEOF(effect_list)) {
current_effect_idx;
return 0;
}
// Some code that turns effect indices into names to store into p_ptr.
return effect_list[current_effect_idx++]; // Return the effect id.
// ...
// Ensure the host VST 2.x compatible.
int32_t vst_version = callback(nullptr, VST_HOST_OPCODE_VST_VERSION, 0, 0, 0, 0);
if (vst_version == 0) {
return 0; // It's not so we exit early.
}
// Check if the host wants
int32_t effect_id = callback(nullptr, VST_HOST_OPCODE_CURRENT_EFFECT_ID, 0, 0, 0);
if (effect_id == 0) {
// ... logic specific to making the container.
return new vst_container_effect();
} else {
// ... logic specific to make sub effects
return new vst_sub_effect();
}
}
// ...
@ VST_HOST_OPCODE_VST_VERSION
Definition vst.h:1065
#define VST_ENTRYPOINT
VST 2.x Entry Point for all platforms.
Definition vst.h:3127
VST_EFFECT_CATEGORY_CONTAINER 
See also
VST_EFFECT_CATEGORY_0A
VST_EFFECT_CATEGORY_0B 

Waveform Generators Examples: Sine Wave Generator, ... Supports: Delay, Tail Samples.

I don't know why this exists, there's only one plug-in that has it and all it does is generate a 400hz sine wave.

See also
VST_EFFECT_CATEGORY_INSTRUMENT
VST_EFFECT_CATEGORY_WAVEGENERATOR 
See also
VST_EFFECT_CATEGORY_0B

Definition at line 1618 of file vst.h.

1618 {
1620
1629
1638
1648
1657
1666
1675
1684
1694
1701 VST_EFFECT_CATEGORY_OFFLINE = 0x09, // Offline Processing VST? Seems to receive all audio data prior to playback.
1702
1784
1796
1798 VST_EFFECT_CATEGORY_MAX, // Not part of specification, marks maximum category.
1799
1801 _VST_EFFECT_CATEGORY_PAD = (-1l)
1802};
@ VST_EFFECT_CATEGORY_0A
Container Plug-in This plug-in contains multiple effects in one and requires special handling on both...
Definition vst.h:1781
@ VST_EFFECT_CATEGORY_EFFECT
Definition vst.h:1628
@ VST_EFFECT_CATEGORY_02
Instruments Examples: Instruments, Synths, Samplers, ...
Definition vst.h:1635
@ VST_EFFECT_CATEGORY_METERING
Definition vst.h:1647
@ VST_EFFECT_CATEGORY_01
Generic Effects Examples: Distortion, Pitch Shift, ...
Definition vst.h:1626
@ VST_EFFECT_CATEGORY_08
Restoration Examples: Noise Filtering, Upsamplers, ...
Definition vst.h:1691
@ VST_EFFECT_CATEGORY_WAVEGENERATOR
Definition vst.h:1795
@ VST_EFFECT_CATEGORY_09
Offline Processing Examples: Nothing Supports: Nothing.
Definition vst.h:1699
@ VST_EFFECT_CATEGORY_SPATIAL
Definition vst.h:1665
@ VST_EFFECT_CATEGORY_07
External Processing.
Definition vst.h:1681
@ VST_EFFECT_CATEGORY_06
Delay/Echo Examples: Echo, Reverb, Room Simulation, Delay, ...
Definition vst.h:1672
@ VST_EFFECT_CATEGORY_EXTERNAL
Definition vst.h:1683
@ VST_EFFECT_CATEGORY_OFFLINE
Definition vst.h:1701
@ VST_EFFECT_CATEGORY_0B
Waveform Generators Examples: Sine Wave Generator, ... Supports: Delay, Tail Samples.
Definition vst.h:1793
@ VST_EFFECT_CATEGORY_05
Spatializers Examples: Channel Panning, Expanders, ...
Definition vst.h:1663
@ VST_EFFECT_CATEGORY_MASTERING
Definition vst.h:1656
@ VST_EFFECT_CATEGORY_RESTORATION
Definition vst.h:1693
@ VST_EFFECT_CATEGORY_UNCATEGORIZED
Definition vst.h:1619
@ VST_EFFECT_CATEGORY_03
Metering Examples: Loudness Meters, Volume Analysis, ...
Definition vst.h:1645
@ VST_EFFECT_CATEGORY_INSTRUMENT
Definition vst.h:1637
@ VST_EFFECT_CATEGORY_DELAY_OR_ECHO
Definition vst.h:1674
@ VST_EFFECT_CATEGORY_04
Mastering Examples: Compressors, Limiters, ...
Definition vst.h:1654

◆ VST_EFFECT_FLAG

Effect Flags.

Enumerator
VST_EFFECT_FLAG_1ls0 

Effect provides a custom editor.

The host will not provide a generic editor interface and expects VST_EFFECT_OPCODE_EDITOR_OPEN and VST_EFFECT_OPCODE_EDITOR_CLOSE to work as expected. We are in charge of notifying the host about various things like which parameter is in focus and stuff.

See also
VST_EFFECT_OPCODE_EDITOR_GET_RECT
VST_EFFECT_OPCODE_EDITOR_OPEN
VST_EFFECT_OPCODE_EDITOR_CLOSE
VST_EFFECT_OPCODE_EDITOR_DRAW
VST_EFFECT_OPCODE_EDITOR_MOUSE
VST_EFFECT_OPCODE_EDITOR_KEYBOARD
VST_EFFECT_OPCODE_EDITOR_KEEP_ALIVE
VST_EFFECT_OPCODE_EDITOR_VKEY_DOWN
VST_EFFECT_OPCODE_EDITOR_VKEY_UP
VST_HOST_OPCODE_EDITOR_UPDATE
VST_HOST_OPCODE_PARAM_START_EDIT
VST_HOST_OPCODE_PARAM_STOP_EDIT
VST_HOST_OPCODE_PARAM_UPDATE
VST_EFFECT_FLAG_EDITOR 
See also
VST_EFFECT_FLAG_1ls0
VST_EFFECT_FLAG_1ls4 

Effect uses process_float.

See also
vst_effect_t.process_float
vst_effect_process_float_t
Deprecated:
(VST 2.4) Must be set in VST 2.4 and later or the host should fail to load the plug-in.
VST_EFFECT_FLAG_SUPPORTS_FLOAT 
See also
VST_EFFECT_FLAG_1ls4
VST_EFFECT_FLAG_1ls5 

Effect supports saving/loading programs/banks from unformatted chunk data.

When not set some sort of format is expected that I've yet to decipher.

See also
VST_EFFECT_OPCODE_GET_CHUNK_DATA
VST_EFFECT_OPCODE_SET_CHUNK_DATA
VST_EFFECT_FLAG_CHUNKS 
See also
VST_EFFECT_FLAG_1ls5
VST_EFFECT_FLAG_1ls8 

Effect is an Instrument/Generator.

This must be set in addition to VST_EFFECT_CATEGORY_INSTRUMENT otherwise instruments don't work right.

Note
(VST 2.x) Flag is new to VST 2.x and later.
VST_EFFECT_FLAG_INSTRUMENT 
See also
VST_EFFECT_FLAG_1ls8
VST_EFFECT_FLAG_1ls9 

Effect does not produce tail samples when the input is silent.

Not to be confused with choosing to tell the host there is no tail.

See also
VST_EFFECT_OPCODE_GET_TAIL_SAMPLES
Note
(VST 2.x) Flag is new to VST 2.x and later.
VST_EFFECT_FLAG_SILENT_TAIL 
See also
VST_EFFECT_FLAG_1ls9
VST_EFFECT_FLAG_1ls12 

Effect supports process_double.

The host can freely choose between process_float and process_double as required.

Note
(VST 2.4) Available in VST 2.4 and later only.
See also
vst_effect_t.process_double
vst_effect_process_double_t
VST_EFFECT_FLAG_SUPPORTS_DOUBLE 
See also
VST_EFFECT_FLAG_1ls12

Definition at line 1806 of file vst.h.

1806 {
1826 VST_EFFECT_FLAG_1ls0 = 1 << 0,
1828 VST_EFFECT_FLAG_EDITOR = 1 << 0,
1829
1830 //1 << 1,
1831 //1 << 2, // Only seen when the plug-in responds to VST_EFFECT_OPCODE_09. Seems to be ignored by hosts entirely.
1832 //1 << 3, // Only seen when the plug-in behaves differently in mono mode. Seems to be ignored by hosts entirely.
1833
1840 VST_EFFECT_FLAG_1ls4 = 1 << 4,
1843
1850 VST_EFFECT_FLAG_1ls5 = 1 << 5,
1852 VST_EFFECT_FLAG_CHUNKS = 1 << 5,
1853
1854 //1 << 6,
1855 //1 << 7,
1856
1862 VST_EFFECT_FLAG_1ls8 = 1 << 8,
1865
1872 VST_EFFECT_FLAG_1ls9 = 1 << 9,
1875
1876 //1 << 10,
1877 //1 << 11,
1878
1886 VST_EFFECT_FLAG_1ls12 = 1 << 12,
1889};
@ VST_EFFECT_FLAG_SILENT_TAIL
Definition vst.h:1874
@ VST_EFFECT_FLAG_1ls9
Effect does not produce tail samples when the input is silent.
Definition vst.h:1872
@ VST_EFFECT_FLAG_CHUNKS
Definition vst.h:1852
@ VST_EFFECT_FLAG_1ls4
Effect uses process_float.
Definition vst.h:1840
@ VST_EFFECT_FLAG_1ls5
Effect supports saving/loading programs/banks from unformatted chunk data.
Definition vst.h:1850
@ VST_EFFECT_FLAG_EDITOR
Definition vst.h:1828
@ VST_EFFECT_FLAG_SUPPORTS_FLOAT
Definition vst.h:1842
@ VST_EFFECT_FLAG_1ls0
Effect provides a custom editor.
Definition vst.h:1826
@ VST_EFFECT_FLAG_INSTRUMENT
Definition vst.h:1864
@ VST_EFFECT_FLAG_1ls12
Effect supports process_double.
Definition vst.h:1886
@ VST_EFFECT_FLAG_1ls8
Effect is an Instrument/Generator.
Definition vst.h:1862
@ VST_EFFECT_FLAG_SUPPORTS_DOUBLE
Definition vst.h:1888

◆ VST_EFFECT_OPCODE

Host to Plug-in Op-Codes These Op-Codes are emitted by the host and we must either handle them or return 0 (false).

Enumerator
VST_EFFECT_OPCODE_00 

Create/Initialize the effect (if it has not been created already).

Returns
Always 0.
VST_EFFECT_OPCODE_CREATE 
See also
VST_EFFECT_OPCODE_00
VST_EFFECT_OPCODE_INITIALIZE 
See also
VST_EFFECT_OPCODE_00
VST_EFFECT_OPCODE_01 

Destroy the effect (if there is any) and free its memory.

This should destroy the actual object created by VST_ENTRYPOINT.

Returns
Always 0.
VST_EFFECT_OPCODE_DESTROY 
See also
VST_EFFECT_OPCODE_01
VST_EFFECT_OPCODE_02 

Set which program number is currently select.

Parameters
p_int2The program number to set. Can be negative for some reason.
VST_EFFECT_OPCODE_SET_PROGRAM 
See also
VST_EFFECT_OPCODE_02
VST_EFFECT_OPCODE_PROGRAM_SET 
See also
VST_EFFECT_OPCODE_02
VST_EFFECT_OPCODE_03 

Get currently selected program number.

Returns
The currently set program number. Can be negative for some reason.
VST_EFFECT_OPCODE_GET_PROGRAM 
See also
VST_EFFECT_OPCODE_03
VST_EFFECT_OPCODE_PROGRAM_GET 
See also
VST_EFFECT_OPCODE_03
VST_EFFECT_OPCODE_04 

Set the name of the currently selected program.

Parameters
p_ptrconst char[VST_BUFFER_SIZE_PROGRAM_NAME] Zero terminated string.
VST_EFFECT_OPCODE_SET_PROGRAM_NAME 
See also
VST_EFFECT_OPCODE_04
VST_EFFECT_OPCODE_PROGRAM_SET_NAME 
See also
VST_EFFECT_OPCODE_04
VST_EFFECT_OPCODE_05 

Get the name of the currently selected program.

Parameters
p_ptrchar[VST_BUFFER_SIZE_PROGRAM_NAME] Zero terminated string.
VST_EFFECT_OPCODE_GET_PROGRAM_NAME 
See also
VST_EFFECT_OPCODE_05
VST_EFFECT_OPCODE_PROGRAM_GET_NAME 
See also
VST_EFFECT_OPCODE_05
VST_EFFECT_OPCODE_06 

Get the value? label for the parameter.

Parameters
p_int1Parameter index.
p_ptr'char[VST_BUFFER_SIZE_PARAM_LABEL]' Zero terminated string.
Returns
0 on success, 1 on failure.
VST_EFFECT_OPCODE_PARAM_GETLABEL 
See also
VST_EFFECT_OPCODE_06
VST_EFFECT_OPCODE_PARAM_GET_LABEL 
See also
VST_EFFECT_OPCODE_06
VST_EFFECT_OPCODE_PARAM_LABEL 
See also
VST_EFFECT_OPCODE_06
VST_EFFECT_OPCODE_07 

Get the string representing the value for the parameter.

Parameters
p_int1Parameter index.
p_ptr'char[VST_BUFFER_SIZE_PARAM_VALUE]' Zero terminated string.
Returns
0 on success, 1 on failure.
VST_EFFECT_OPCODE_PARAM_GETVALUE 
See also
VST_EFFECT_OPCODE_07
VST_EFFECT_OPCODE_PARAM_GET_VALUE 
See also
VST_EFFECT_OPCODE_07
VST_EFFECT_OPCODE_PARAM_VALUE 
See also
VST_EFFECT_OPCODE_07
VST_EFFECT_OPCODE_PARAM_VALUE_TO_STRING 
See also
VST_EFFECT_OPCODE_07
VST_EFFECT_OPCODE_08 

Get the name for the parameter.

Parameters
p_int1Parameter index.
p_ptr'char[VST_BUFFER_SIZE_PARAM_NAME]' Zero terminated string.
Returns
0 on success, 1 on failure.
VST_EFFECT_OPCODE_PARAM_GETNAME 
See also
VST_EFFECT_OPCODE_08
VST_EFFECT_OPCODE_PARAM_GET_NAME 
See also
VST_EFFECT_OPCODE_08
VST_EFFECT_OPCODE_PARAM_NAME 
See also
VST_EFFECT_OPCODE_08
VST_EFFECT_OPCODE_09 
Deprecated:
: (VST 2.3+) Not used in VST 2.3 or later.
Todo:
VST_EFFECT_OPCODE_0A 

Set the new sample rate for the plugin to use.

Parameters
p_floatNew sample rate as a float (double on 64-bit because register upgrades).
VST_EFFECT_OPCODE_SETSAMPLERATE 
See also
VST_EFFECT_OPCODE_0A
VST_EFFECT_OPCODE_SET_SAMPLE_RATE 
See also
VST_EFFECT_OPCODE_0A
VST_EFFECT_OPCODE_0B 

Sets the block size, which is the maximum number of samples passed into the effect via process calls.

Parameters
p_int2The maximum number of samples to be passed in.
VST_EFFECT_OPCODE_SETBLOCKSIZE 
See also
VST_EFFECT_OPCODE_0B
VST_EFFECT_OPCODE_SET_BLOCK_SIZE 
See also
VST_EFFECT_OPCODE_0B
VST_EFFECT_OPCODE_0C 

Effect processing should be suspended/paused or resumed/unpaused.

Unclear if this is should result in a flush of buffers. In VST 2.3+ this is quite clear as we get process begin/end.

Parameters
p_int2VST_STATUS_FALSE if the effect should suspend processing, VST_STATUS_TRUE if it should resume.
VST_EFFECT_OPCODE_PAUSE_UNPAUSE 
See also
VST_EFFECT_OPCODE_0C
VST_EFFECT_OPCODE_SUSPEND_RESUME 
See also
VST_EFFECT_OPCODE_0C
VST_EFFECT_OPCODE_SUSPEND 
See also
VST_EFFECT_OPCODE_0C
VST_EFFECT_OPCODE_0D 

Retrieve the client rect size of the plugins window.

If no window has been created, returns the default rect.

Parameters
p_ptrPointer of type 'struct vst_rect_t*'.
Returns
On success, returns 1 and updates p_ptr to the rect. On failure, returns 0.
VST_EFFECT_OPCODE_WINDOW_GETRECT 
See also
VST_EFFECT_OPCODE_0D
VST_EFFECT_OPCODE_EDITOR_RECT 
See also
VST_EFFECT_OPCODE_0D
VST_EFFECT_OPCODE_EDITOR_GET_RECT 
See also
VST_EFFECT_OPCODE_0D
VST_EFFECT_OPCODE_0E 

Create the window for the plugin.

Parameters
p_ptrHWND of the parent window.
Returns
0 on failure, or HWND on success.
VST_EFFECT_OPCODE_WINDOW_CREATE 
See also
VST_EFFECT_OPCODE_0E
VST_EFFECT_OPCODE_EDITOR_OPEN 
See also
VST_EFFECT_OPCODE_0E
VST_EFFECT_OPCODE_0F 

Destroy the plugins window.

Returns
Always 0.
VST_EFFECT_OPCODE_WINDOW_DESTROY 
See also
VST_EFFECT_OPCODE_0F
VST_EFFECT_OPCODE_EDITOR_CLOSE 
See also
VST_EFFECT_OPCODE_0F
VST_EFFECT_OPCODE_10 

Window Draw Event?

Ocasionally called simultaneously as WM_DRAW on windows.

Note
Present in some VST 2.1 or earlier plugins.
Appears to be Mac OS exclusive.
Deprecated:
(VST 2.4+) Likely deprecated in VST 2.4 and later.
VST_EFFECT_OPCODE_WINDOW_DRAW 
See also
VST_EFFECT_OPCODE_10
VST_EFFECT_OPCODE_EDITOR_DRAW 
See also
VST_EFFECT_OPCODE_10
VST_EFFECT_OPCODE_11 

Window Mouse Event?

Called at the same time mouse events happen.

Note
Present in some VST 2.1 or earlier plugins.
Appears to be Mac OS exclusive.
Deprecated:
(VST 2.4+) Likely deprecated in VST 2.4 and later.
VST_EFFECT_OPCODE_WINDOW_MOUSE 
See also
VST_EFFECT_OPCODE_11
VST_EFFECT_OPCODE_EDITOR_MOUSE 
See also
VST_EFFECT_OPCODE_11
VST_EFFECT_OPCODE_12 

Window Keyboard Event?

Called at the same time keyboard events happen.

Note
Present in some VST 2.1 or earlier plugins.
Appears to be Mac OS exclusive.
Deprecated:
(VST 2.4+) Likely deprecated in VST 2.4 and later.
VST_EFFECT_OPCODE_WINDOW_KEYBOARD 
See also
VST_EFFECT_OPCODE_12
VST_EFFECT_OPCODE_EDITOR_KEYBOARD 
See also
VST_EFFECT_OPCODE_12
VST_EFFECT_OPCODE_13 

Window/Editor Idle/Keep-Alive Callback?

Does not receive any parameters. Randomly called when nothing happens? Idle/Keep-Alive callback?

VST_EFFECT_OPCODE_EDITOR_KEEP_ALIVE 
See also
VST_EFFECT_OPCODE_13
VST_EFFECT_OPCODE_14 

Window Focus Event?

Sometimes called when the editor window goes back into focus.

Note
Present in some VST 2.1 or earlier plugins.
Appears to be Mac OS exclusive.
Deprecated:
(VST 2.4+) Likely deprecated in VST 2.4 and later.
VST_EFFECT_OPCODE_15 

Window Unfocus Event?

Sometimes called when the editor window goes out of focus.

Note
Present in some VST 2.1 or earlier plugins.
Appears to be Mac OS exclusive.
Deprecated:
(VST 2.4+) Likely deprecated in VST 2.4 and later.
VST_EFFECT_OPCODE_16 
Note
Present in some VST 2.1 or earlier plugins. @important Almost all plug-ins return the VST_FOURCC 'NvEf' (0x4E764566) here.
Deprecated:
(VST 2.4+) Likely deprecated in VST 2.4 and later.
VST_EFFECT_OPCODE_FOURCC 
See also
VST_EFFECT_OPCODE_16
VST_EFFECT_OPCODE_17 

Get Chunk Data.

Save current program or bank state to a buffer. Behavior is different based on the VST_EFFECT_FLAG_CHUNKS flag.

See also
VST_EFFECT_FLAG_CHUNKS
Parameters
p_int10 means Bank, 1 means Program, nothing else used?
p_ptrvoid** Pointer to a potential pointer containing your own chunk data.
Returns
Size of the Chunk Data in bytes.
VST_EFFECT_OPCODE_GET_CHUNK_DATA 
See also
VST_EFFECT_OPCODE_17
VST_EFFECT_OPCODE_18 

Set Chunk Data.

Restore current program or bank state from a buffer. Behavior is different based on the VST_EFFECT_FLAG_CHUNKS flag.

See also
VST_EFFECT_FLAG_CHUNKS
Parameters
p_int10 means Bank, 1 means Program, nothing else used?
p_int2Size of the Chunk Data in bytes.
p_ptrvoid* Pointer to a buffer containing chunk data.
VST_EFFECT_OPCODE_SET_CHUNK_DATA 
See also
VST_EFFECT_OPCODE_18
VST_EFFECT_OPCODE_19 

Send events from host to plug-in.

The plug-in must support receiving events (see vst_effect_supports_t::receiveVstEvents) while the host may optionally signal to the plugin that it wants to send events to the host (see vst_host_supports_t::sendVstEvents).

See also
vst_event_t
vst_events_t
vst_host_supports_t.sendVstEvents
vst_effect_supports_t.receiveVstEvents
vst_host_supports_t.sendVstMidiEvents
vst_effect_supports_t.receiveVstMidiEvents
VST_HOST_OPCODE_EVENT
Note
(VST 2.0+) Available from VST 2.0 onwards.
Parameters
p_ptrA valid pointer to a vst_events_t structure.
VST_EFFECT_OPCODE_EVENT 
See also
VST_EFFECT_OPCODE_19
VST_EFFECT_OPCODE_1A 

Can the parameter be automated?

Note
(VST 2.0+) Available from VST 2.0 onwards.
Parameters
p_int1Index of the parameter.
Returns
1 if the parameter can be automated, otherwise 0.
VST_EFFECT_OPCODE_PARAM_ISAUTOMATABLE 
See also
VST_EFFECT_OPCODE_1A
VST_EFFECT_OPCODE_PARAM_IS_AUTOMATABLE 
See also
VST_EFFECT_OPCODE_1A
VST_EFFECT_OPCODE_PARAM_AUTOMATABLE 
See also
VST_EFFECT_OPCODE_1A
VST_EFFECT_OPCODE_1B 

Set Parameter value from string representation.

Note
(VST 2.0+) Available from VST 2.0 onwards.
Parameters
p_int1Index of the parameter.
p_ptrconst char* Zero terminated string representation of the value to set.
Returns
1 if it worked, otherwise 0.
VST_EFFECT_OPCODE_PARAM_SET_VALUE 
See also
VST_EFFECT_OPCODE_1B
VST_EFFECT_OPCODE_PARAM_VALUE_FROM_STRING 
See also
VST_EFFECT_OPCODE_1B
VST_EFFECT_OPCODE_1C 
Note
(VST 2.0+) Available from VST 2.0 onwards.
Todo:
VST_EFFECT_OPCODE_1D 
Note
(VST 2.0+) Available from VST 2.0 onwards.
See also
VST_EFFECT_OPCODE_05
Todo:
VST_EFFECT_OPCODE_1E 
Note
(VST 2.0+) Available from VST 2.0 onwards.
Todo:
VST_EFFECT_OPCODE_1F 

Input connected.

Note
(VST 2.0+) Available from VST 2.0 onwards.
Todo:
VST_EFFECT_OPCODE_20 

Input disconnected.

Note
(VST 2.0+) Available from VST 2.0 onwards.
Todo:
VST_EFFECT_OPCODE_21 

Retrieve properties for the given input index.

Note
(VST 2.0+) Available from VST 2.0 onwards.
Parameters
p_int1Index of the input to get the properties for.
p_ptrPointer to vst_stream_properties_t for the selected input provided by the host.
Returns
VST_STATUS_TRUE if p_ptr is updated, VST_STATUS_FALSE otherwise.
VST_EFFECT_OPCODE_INPUT_GET_PROPERTIES 
See also
VST_EFFECT_OPCODE_21
VST_EFFECT_OPCODE_INPUT_STREAM_GET_PROPERTIES 
See also
VST_EFFECT_OPCODE_21
VST_EFFECT_OPCODE_22 

Retrieve properties for the given output index.

Note
(VST 2.0+) Available from VST 2.0 onwards.
Parameters
p_int1Index of the output to get the properties for.
p_ptrPointer to vst_stream_properties_t for the selected output provided by the host.
Returns
VST_STATUS_TRUE if p_ptr is updated, VST_STATUS_FALSE otherwise.
VST_EFFECT_OPCODE_OUTPUT_GET_PROPERTIES 
See also
VST_EFFECT_OPCODE_22
VST_EFFECT_OPCODE_OUTPUT_STREAM_GET_PROPERTIES 
See also
VST_EFFECT_OPCODE_22
VST_EFFECT_OPCODE_23 

Retrieve category of this effect.

Note
(VST 2.0+) Available from VST 2.0 onwards.
Returns
The category that this effect is in, see VST_EFFECT_CATEGORY.
VST_EFFECT_OPCODE_EFFECT_CATEGORY 
See also
VST_EFFECT_OPCODE_23
VST_EFFECT_OPCODE_CATEGORY 
See also
VST_EFFECT_OPCODE_23
VST_EFFECT_OPCODE_24 
Note
(VST 2.0+) Available from VST 2.0 onwards.
Todo:
VST_EFFECT_OPCODE_25 
Note
(VST 2.0+) Available from VST 2.0 onwards.
Todo:
VST_EFFECT_OPCODE_26 

Seen in plug-ins with VST_EFFECT_CATEGORY_OFFLINE.

Note
(VST 2.0+) Available from VST 2.0 onwards.
Todo:
VST_EFFECT_OPCODE_27 

Seen in plug-ins with VST_EFFECT_CATEGORY_OFFLINE.

Note
(VST 2.0+) Available from VST 2.0 onwards.
Todo:
VST_EFFECT_OPCODE_28 

Seen in plug-ins with VST_EFFECT_CATEGORY_OFFLINE.

Note
(VST 2.0+) Available from VST 2.0 onwards.
Todo:
VST_EFFECT_OPCODE_29 

Seen in plug-ins with VST_EFFECT_CATEGORY_OFFLINE.

Note
(VST 2.0+) Available from VST 2.0 onwards.
Todo:
VST_EFFECT_OPCODE_2A 

Host wants to change the speaker arrangement.

See also
vst_effect_t.num_inputs
vst_effect_t.num_outputs
VST_EFFECT_OPCODE_GET_SPEAKER_ARRANGEMENT
Note
(VST 2.0+) Available from VST 2.0 onwards.
Parameters
p_int2Pointer to a vst_speaker_arrangement_t structure.
p_ptrPointer to a vst_speaker_arrangement_t structure.
Returns
VST_STATUS_TRUE if we accept the new arrangement, VST_STATUS_FALSE if we don't in which case the host is required to ask for the speaker arrangement via VST_EFFECT_OPCODE_GET_SPEAKER_ARRANGEMENT and may retry this op-code with different values.
VST_EFFECT_OPCODE_SET_SPEAKER_ARRANGEMENT 
See also
VST_EFFECT_OPCODE_2A
VST_EFFECT_OPCODE_2B 
Todo:
VST_EFFECT_OPCODE_2C 

Enable/Disable bypassing the effect.

See VST_EFFECT_OPCODE_SUPPORTS with vst_effect_supports_t::bypass for more information.

Note
(VST 2.0+) Available from VST 2.0 onwards.
Parameters
p_int2Zero if bypassing the effect is disabled, otherwise 1.
VST_EFFECT_OPCODE_BYPASS 
See also
VST_EFFECT_OPCODE_2C
VST_EFFECT_OPCODE_2D 

Retrieve the effect name into the ptr buffer.

Note
(VST 2.0+) Available from VST 2.0 onwards.
Bug:
Various hosts only provide a buffer that is 32 bytes long.
Parameters
p_ptrA zero terminated char buffer of size VST_BUFFER_SIZE_EFFECT_NAME.
Returns
Always 0, even on failure.
VST_EFFECT_OPCODE_GETNAME 
See also
VST_EFFECT_OPCODE_2D
VST_EFFECT_OPCODE_EFFECT_NAME 
See also
VST_EFFECT_OPCODE_2D
VST_EFFECT_OPCODE_NAME 
See also
VST_EFFECT_OPCODE_2D
VST_EFFECT_OPCODE_2E 

Translate an error code to a string.

Bug:
Some hosts provide unexpected data in p_ptr.
Note
(VST 2.0+) Available from VST 2.0 onwards.
Deprecated:
(VST 2.4+) Fairly sure this is deprecated in VST 2.4 and later.
Parameters
p_ptrA zero terminated char buffer with undefined size.
Returns
VST_STATUS_TRUE if we could translate the error, VST_STATUS_FALSE if not.
VST_EFFECT_OPCODE_TRANSLATE_ERROR 
See also
VST_EFFECT_OPCODE_2E
VST_EFFECT_OPCODE_2F 

Retrieve the vendor name into the ptr buffer.

Note
(VST 2.0+) Available from VST 2.0 onwards.
Parameters
p_ptrA zero terminated char buffer of size VST_BUFFER_SIZE_VENDOR_NAME.
VST_EFFECT_OPCODE_GETVENDOR 
See also
VST_EFFECT_OPCODE_2F
VST_EFFECT_OPCODE_VENDOR_NAME 
See also
VST_EFFECT_OPCODE_2F
VST_EFFECT_OPCODE_30 

Retrieve the product name into the ptr buffer.

Note
(VST 2.0+) Available from VST 2.0 onwards.
Parameters
p_ptrA zero terminated char buffer of size VST_BUFFER_SIZE_PRODUCT_NAME.
VST_EFFECT_OPCODE_GETNAME2 
See also
VST_EFFECT_OPCODE_30
VST_EFFECT_OPCODE_PRODUCT_NAME 
See also
VST_EFFECT_OPCODE_30
VST_EFFECT_OPCODE_31 

Retrieve the vendor version in return value.

Note
(VST 2.0+) Available from VST 2.0 onwards.
Returns
Version.
VST_EFFECT_OPCODE_GETVENDORVERSION 
See also
VST_EFFECT_OPCODE_31
VST_EFFECT_OPCODE_VENDOR_VERSION 
See also
VST_EFFECT_OPCODE_31
VST_EFFECT_OPCODE_32 

User-defined Op-Code for VST extensions.

Note
(VST 2.0+) Available from VST 2.0 onwards. All parameters are undefined by the standard and left up to the host/plug-in. Use VST_EFFECT_OPCODE_SUPPORTS and VST_EFFECT_OPCODE_VENDOR_NAME + VST_EFFECT_OPCODE_VENDOR_VERSION to check if the plug-in is compatible with your expected format.
VST_EFFECT_OPCODE_CUSTOM 
See also
VST_EFFECT_OPCODE_32
VST_EFFECT_OPCODE_33 

Test for support of a specific named feature.

Note
(VST 2.0+) Available from VST 2.0 onwards.
Parameters
p_ptrA zero terminated char buffer of undefined size containing the feature name.
Returns
VST_STATUS_YES if the feature is supported, VST_STATUS_NO if the feature is not supported, VST_STATUS_UNKNOWN in all other cases.
VST_EFFECT_OPCODE_SUPPORTS 
See also
VST_EFFECT_OPCODE_33
VST_EFFECT_OPCODE_34 

Number of samples that are at the tail at the end of playback.

Note
(VST 2.0+) Available from VST 2.0 onwards.
Returns
VST_STATUS_UNKNOWN for automatic tail size, VST_STATUS_TRUE for no tail, any other number above 1 for the number of samples the tail has.
VST_EFFECT_OPCODE_GETTAILSAMPLES 
See also
VST_EFFECT_OPCODE_34
VST_EFFECT_OPCODE_TAIL_SAMPLES 
See also
VST_EFFECT_OPCODE_34
VST_EFFECT_OPCODE_35 

Notify effect that it is idle?

Note
(VST 2.0+) Available from VST 2.0 onwards.
Deprecated:
(VST 2.4+) As of VST 2.4 the default behavior is VST_EFFECT_OPCODE_PROCESS_BEGIN and VST_EFFECT_OPCODE_PROCESS_END which allows cleaner control flows.
See also
vst_host_supports.startStopProcess
VST_EFFECT_OPCODE_IDLE 
See also
VST_EFFECT_OPCODE_35
VST_EFFECT_OPCODE_36 
Note
(VST 2.0+) Available from VST 2.0 onwards.
Deprecated:
(VST 2.4) Invalid in all VST 2.4 and later hosts.
Todo:
VST_EFFECT_OPCODE_37 
Note
(VST 2.0+) Available from VST 2.0 onwards.
Deprecated:
(VST 2.4) Invalid in all VST 2.4 and later hosts.
Todo:
VST_EFFECT_OPCODE_38 

Parameter Properties.

Note
(VST 2.0+) Available from VST 2.0 onwards.
Parameters
p_int1Parameter index to get properties for.
p_ptrPointer to vst_parameter_properties_t for the given parameter.
Returns
VST_STATUS_YES if supported, otherwise VST_STATUS_NO.
VST_EFFECT_OPCODE_GET_PARAMETER_PROPERTIES 
See also
VST_EFFECT_OPCODE_38
VST_EFFECT_OPCODE_PARAM_PROPERTIES 
See also
VST_EFFECT_OPCODE_38
VST_EFFECT_OPCODE_39 
Note
(VST 2.0+) Available from VST 2.0 onwards.
Deprecated:
(VST 2.4) Invalid in all VST 2.4 and later hosts.
Todo:
VST_EFFECT_OPCODE_3A 

Retrieve the VST Version supported.

Note
(VST 2.0+) Available from VST 2.0 onwards.
See also
VST_VERSION
Returns
One of the valid enums in VST_VERSION
VST_EFFECT_OPCODE_VST_VERSION 
See also
VST_EFFECT_OPCODE_3A
VST_EFFECT_OPCODE_3B 

Editor Virtual Key Down Input.

Note
(VST 2.1+) Available from VST 2.1 onwards.
Parameters
p_int1ASCII character that represents the virtual key code.
p_int2See VST_VKEY for the full list.
p_floatA bitfield with any of VST_VKEY_MODIFIER.
Returns
VST_STATUS_TRUE if we used the input, otherwise VST_STATUS_FALSE
VST_EFFECT_OPCODE_EDITOR_VKEY_DOWN 
See also
VST_EFFECT_OPCODE_3B
VST_EFFECT_OPCODE_3C 

Editor Virtual Key Up Event.

Note
(VST 2.1+) Available from VST 2.1 onwards.
Parameters
p_int1ASCII character that represents the virtual key code.
p_int2See VST_VKEY for the full list.
p_floatA bitfield with any of VST_VKEY_MODIFIER.
Returns
VST_STATUS_TRUE if we used the input, otherwise VST_STATUS_FALSE
VST_EFFECT_OPCODE_EDITOR_VKEY_UP 
See also
VST_EFFECT_OPCODE_3C
VST_EFFECT_OPCODE_3D 
Note
(VST 2.1+) Available from VST 2.1 onwards.
Parameters
p_int2A value between 0 and 2.
Todo:
VST_EFFECT_OPCODE_3E 

Midi related.

Note
(VST 2.1+) Available from VST 2.1 onwards.
Todo:
VST_EFFECT_OPCODE_3F 

Midi related.

Note
(VST 2.1+) Available from VST 2.1 onwards.
Todo:
VST_EFFECT_OPCODE_40 

Midi related.

Note
(VST 2.1+) Available from VST 2.1 onwards.
Todo:
VST_EFFECT_OPCODE_41 

Midi related.

Note
(VST 2.1+) Available from VST 2.1 onwards.
Todo:
VST_EFFECT_OPCODE_42 

Midi related.

Note
(VST 2.1+) Available from VST 2.1 onwards.
Todo:
VST_EFFECT_OPCODE_43 

Host is starting to set up a program.

Emitted prior to the host loading a program.

Note
(VST 2.1+) Available from VST 2.1 onwards.
Returns
VST_STATUS_TRUE if we understood the notification, or VST_STATUS_FALSE if not.
VST_EFFECT_OPCODE_PROGRAM_SET_BEGIN 
See also
VST_EFFECT_OPCODE_43
VST_EFFECT_OPCODE_44 

Host is done setting up a program.

Emitted after the host finished loading a program.

Note
(VST 2.1+) Available from VST 2.1 onwards.
Returns
VST_STATUS_TRUE if we understood the notification, or VST_STATUS_FALSE if not.
VST_EFFECT_OPCODE_PROGRAM_SET_END 
See also
VST_EFFECT_OPCODE_44
VST_EFFECT_OPCODE_45 

Host wants to know the current speaker arrangement.

Note
(VST 2.3+) Available from VST 2.3 onwards.
Parameters
p_int2Pointer to a vst_speaker_arrangement_t pointer.
p_ptrPointer to a vst_speaker_arrangement_t pointer.
Returns
VST_STATUS_TRUE if we were successful, otherwise VST_STATUS_FALSE.
VST_EFFECT_OPCODE_GET_SPEAKER_ARRANGEMENT 
See also
VST_EFFECT_OPCODE_45
VST_EFFECT_OPCODE_46 

Get the next effect contained in this effect.

This returns the next effect based on an effect internal counter, the host does not provide any index.

Used in combination with VST_EFFECT_CATEGORY_CONTAINER.

Note
(VST 2.3+) Available from VST 2.3 onwards.
Parameters
p_ptrPointer to a char buffer of size VST_BUFFER_SIZE_EFFECT_NAME to store the name of the next effect.
Returns
Next effects unique_id
VST_EFFECT_OPCODE_CONTAINER_NEXT_EFFECT_ID 
See also
VST_EFFECT_OPCODE_46
VST_EFFECT_OPCODE_47 

Begin processing of audio.

Host is requesting that we prepare for a new section of audio separate from the previous section.

Note
(VST 2.3+) Available from VST 2.3 onwards.
VST_EFFECT_OPCODE_PROCESS_BEGIN 
See also
VST_EFFECT_OPCODE_47
VST_EFFECT_OPCODE_48 

End processing of audio.

Host is requesting that we stop processing audio and go into idle instead.

Note
(VST 2.3+) Available from VST 2.3 onwards.
VST_EFFECT_OPCODE_PROCESS_END 
See also
VST_EFFECT_OPCODE_48
VST_EFFECT_OPCODE_49 
Note
(VST 2.3+) Available from VST 2.3 onwards.
Todo:
VST_EFFECT_OPCODE_4A 
Note
(VST 2.3+) Available from VST 2.3 onwards.
See also
VST_EFFECT_CATEGORY_SPATIAL
Parameters
p_int2Unknown meaning.
p_floatUnknown meaning, usually 1.0
Todo:
VST_EFFECT_OPCODE_4B 

Host wants to know if we can load the provided bank data.

Should be emitted prior to VST_EFFECT_OPCODE_SET_CHUNK_DATA by the host.

Note
(VST 2.3+) Available from VST 2.3 onwards.
Parameters
p_ptrUnknown structured data.
Returns
VST_STATUS_NO if we can't load the data, VST_STATUS_YES if we can load the data, VST_STATUS_UNKNOWN if this isn't supported.
Todo:
VST_EFFECT_OPCODE_BANK_LOAD 
See also
VST_EFFECT_OPCODE_4B
VST_EFFECT_OPCODE_4C 

Host wants to know if we can load the provided program data.

Should be emitted prior to VST_EFFECT_OPCODE_PROGRAM_SET_BEGIN by the host.

Note
(VST 2.3+) Available from VST 2.3 onwards.
Parameters
p_ptrUnknown structured data.
Returns
VST_STATUS_NO if we can't load the data, VST_STATUS_YES if we can load the data, VST_STATUS_UNKNOWN if this isn't supported.
Todo:
VST_EFFECT_OPCODE_PROGRAM_LOAD 
See also
VST_EFFECT_OPCODE_4C
VST_EFFECT_OPCODE_4D 
Note
(VST 2.4+) Available from VST 2.4 onwards.
Todo:
VST_EFFECT_OPCODE_4E 
Note
(VST 2.4+) Available from VST 2.4 onwards.
Todo:
VST_EFFECT_OPCODE_4F 
Note
(VST 2.4+) Available from VST 2.4 onwards.
Todo:

Definition at line 1894 of file vst.h.

1894 {
1899 VST_EFFECT_OPCODE_00 = 0x00,
1904
1911 VST_EFFECT_OPCODE_01 = 0x01,
1914
1919 VST_EFFECT_OPCODE_02 = 0x02,
1924
1929 VST_EFFECT_OPCODE_03 = 0x03,
1934
1939 VST_EFFECT_OPCODE_04 = 0x04,
1944
1949 VST_EFFECT_OPCODE_05 = 0x05,
1954
1961 VST_EFFECT_OPCODE_06 = 0x06,
1968
1975 VST_EFFECT_OPCODE_07 = 0x07,
1984
1991 VST_EFFECT_OPCODE_08 = 0x08,
1998
2004 VST_EFFECT_OPCODE_09 = 0x09,
2005
2010 VST_EFFECT_OPCODE_0A = 0x0A,
2015
2020 VST_EFFECT_OPCODE_0B = 0x0B,
2025
2034 VST_EFFECT_OPCODE_0C = 0x0C,
2041
2048 VST_EFFECT_OPCODE_0D = 0x0D,
2055
2061 VST_EFFECT_OPCODE_0E = 0x0E,
2066
2071 VST_EFFECT_OPCODE_0F = 0x0F,
2076
2087 VST_EFFECT_OPCODE_10 = 0x10,
2092
2103 VST_EFFECT_OPCODE_11 = 0x11,
2108
2119 VST_EFFECT_OPCODE_12 = 0x12,
2124
2129 VST_EFFECT_OPCODE_13 = 0x13,
2132
2141 VST_EFFECT_OPCODE_14 = 0x14,
2142
2151 VST_EFFECT_OPCODE_15 = 0x15,
2152
2159 VST_EFFECT_OPCODE_16 = 0x16,
2162
2173 VST_EFFECT_OPCODE_17 = 0x17,
2176
2187 VST_EFFECT_OPCODE_18 = 0x18,
2190
2191 //--------------------------------------------------------------------------------
2192 // VST 2.x starts here.
2193 //--------------------------------------------------------------------------------
2194
2210 VST_EFFECT_OPCODE_19 = 0x19,
2213
2220 VST_EFFECT_OPCODE_1A = 0x1A,
2227
2235 VST_EFFECT_OPCODE_1B = 0x1B,
2240
2247 VST_EFFECT_OPCODE_1C = 0x1C,
2248
2255 VST_EFFECT_OPCODE_1D = 0x1D,
2256
2263 VST_EFFECT_OPCODE_1E = 0x1E,
2264
2271 VST_EFFECT_OPCODE_1F = 0x1F,
2272
2279 VST_EFFECT_OPCODE_20 = 0x20,
2280
2288 VST_EFFECT_OPCODE_21 = 0x21,
2293
2301 VST_EFFECT_OPCODE_22 = 0x22,
2306
2312 VST_EFFECT_OPCODE_23 = 0x23,
2317
2324 VST_EFFECT_OPCODE_24 = 0x24,
2325
2332 VST_EFFECT_OPCODE_25 = 0x25,
2333
2340 VST_EFFECT_OPCODE_26 = 0x26,
2341
2348 VST_EFFECT_OPCODE_27 = 0x27,
2349
2356 VST_EFFECT_OPCODE_28 = 0x28,
2357
2364 VST_EFFECT_OPCODE_29 = 0x29,
2365
2378 VST_EFFECT_OPCODE_2A = 0x2A,
2381
2385 VST_EFFECT_OPCODE_2B = 0x2B,
2386
2394 VST_EFFECT_OPCODE_2C = 0x2C,
2397
2405 VST_EFFECT_OPCODE_2D = 0x2D,
2412
2421 VST_EFFECT_OPCODE_2E = 0x2E,
2424
2430 VST_EFFECT_OPCODE_2F = 0x2F,
2435
2441 VST_EFFECT_OPCODE_30 = 0x30,
2446
2452 VST_EFFECT_OPCODE_31 = 0x31,
2457
2465 VST_EFFECT_OPCODE_32 = 0x32,
2468
2476 VST_EFFECT_OPCODE_33 = 0x33,
2479
2486 VST_EFFECT_OPCODE_34 = 0x34,
2491
2499 VST_EFFECT_OPCODE_35 = 0x35,
2502
2510 VST_EFFECT_OPCODE_36 = 0x36,
2511
2519 VST_EFFECT_OPCODE_37 = 0x37,
2520
2528 VST_EFFECT_OPCODE_38 = 0x38,
2533
2540 VST_EFFECT_OPCODE_39 = 0x39,
2541
2548 VST_EFFECT_OPCODE_3A = 0x3A,
2551
2552 //--------------------------------------------------------------------------------
2553 // VST 2.1
2554 //--------------------------------------------------------------------------------
2555
2564 VST_EFFECT_OPCODE_3B = 0x3B,
2567
2576 VST_EFFECT_OPCODE_3C = 0x3C,
2579
2586 VST_EFFECT_OPCODE_3D = 0x3D,
2587
2594 VST_EFFECT_OPCODE_3E = 0x3E,
2595
2602 VST_EFFECT_OPCODE_3F = 0x3F,
2603
2610 VST_EFFECT_OPCODE_40 = 0x40,
2611
2618 VST_EFFECT_OPCODE_41 = 0x41,
2619
2626 VST_EFFECT_OPCODE_42 = 0x42,
2627
2634 VST_EFFECT_OPCODE_43 = 0x43,
2637
2644 VST_EFFECT_OPCODE_44 = 0x44,
2647
2648 //--------------------------------------------------------------------------------
2649 // VST 2.3
2650 //--------------------------------------------------------------------------------
2651
2659 VST_EFFECT_OPCODE_45 = 0x45,
2662
2672 VST_EFFECT_OPCODE_46 = 0x46,
2675
2681 VST_EFFECT_OPCODE_47 = 0x47,
2684
2690 VST_EFFECT_OPCODE_48 = 0x48,
2693
2700 VST_EFFECT_OPCODE_49 = 0x49,
2701
2710 VST_EFFECT_OPCODE_4A = 0x4A,
2711
2721 VST_EFFECT_OPCODE_4B = 0x4B,
2724
2734 VST_EFFECT_OPCODE_4C = 0x4C,
2737
2738 //--------------------------------------------------------------------------------
2739 // VST 2.4
2740 //--------------------------------------------------------------------------------
2741
2748 VST_EFFECT_OPCODE_4D = 0x4D,
2749
2756 VST_EFFECT_OPCODE_4E = 0x4E,
2757
2764 VST_EFFECT_OPCODE_4F = 0x4F,
2765
2767 VST_EFFECT_OPCODE_MAX,
2768
2770 _VST_EFFECT_OPCODE_PAD = (-1l)
2771};
@ VST_EFFECT_OPCODE_WINDOW_MOUSE
Definition vst.h:2105
@ VST_EFFECT_OPCODE_2A
Host wants to change the speaker arrangement.
Definition vst.h:2378
@ VST_EFFECT_OPCODE_GETVENDORVERSION
Definition vst.h:2454
@ VST_EFFECT_OPCODE_20
Input disconnected.
Definition vst.h:2279
@ VST_EFFECT_OPCODE_14
Window Focus Event?
Definition vst.h:2141
@ VST_EFFECT_OPCODE_PARAM_VALUE_TO_STRING
Definition vst.h:1983
@ VST_EFFECT_OPCODE_PARAM_GETLABEL
Definition vst.h:1963
@ VST_EFFECT_OPCODE_4E
Definition vst.h:2756
@ VST_EFFECT_OPCODE_43
Host is starting to set up a program.
Definition vst.h:2634
@ VST_EFFECT_OPCODE_3E
Midi related.
Definition vst.h:2594
@ VST_EFFECT_OPCODE_32
User-defined Op-Code for VST extensions.
Definition vst.h:2465
@ VST_EFFECT_OPCODE_03
Get currently selected program number.
Definition vst.h:1929
@ VST_EFFECT_OPCODE_SET_CHUNK_DATA
Definition vst.h:2189
@ VST_EFFECT_OPCODE_21
Retrieve properties for the given input index.
Definition vst.h:2288
@ VST_EFFECT_OPCODE_PRODUCT_NAME
Definition vst.h:2445
@ VST_EFFECT_OPCODE_4B
Host wants to know if we can load the provided bank data.
Definition vst.h:2721
@ VST_EFFECT_OPCODE_PARAM_NAME
Definition vst.h:1997
@ VST_EFFECT_OPCODE_1C
Definition vst.h:2247
@ VST_EFFECT_OPCODE_41
Midi related.
Definition vst.h:2618
@ VST_EFFECT_OPCODE_SET_SAMPLE_RATE
Definition vst.h:2014
@ VST_EFFECT_OPCODE_CREATE
Definition vst.h:1901
@ VST_EFFECT_OPCODE_EDITOR_GET_RECT
Definition vst.h:2054
@ VST_EFFECT_OPCODE_SET_SPEAKER_ARRANGEMENT
Definition vst.h:2380
@ VST_EFFECT_OPCODE_PARAM_GETVALUE
Definition vst.h:1977
@ VST_EFFECT_OPCODE_PROGRAM_SET_NAME
Definition vst.h:1943
@ VST_EFFECT_OPCODE_06
Get the value? label for the parameter.
Definition vst.h:1961
@ VST_EFFECT_OPCODE_0A
Set the new sample rate for the plugin to use.
Definition vst.h:2010
@ VST_EFFECT_OPCODE_10
Window Draw Event?
Definition vst.h:2087
@ VST_EFFECT_OPCODE_2F
Retrieve the vendor name into the ptr buffer.
Definition vst.h:2430
@ VST_EFFECT_OPCODE_PROGRAM_GET
Definition vst.h:1933
@ VST_EFFECT_OPCODE_28
Seen in plug-ins with VST_EFFECT_CATEGORY_OFFLINE.
Definition vst.h:2356
@ VST_EFFECT_OPCODE_4D
Definition vst.h:2748
@ VST_EFFECT_OPCODE_01
Destroy the effect (if there is any) and free its memory.
Definition vst.h:1911
@ VST_EFFECT_OPCODE_3C
Editor Virtual Key Up Event.
Definition vst.h:2576
@ VST_EFFECT_OPCODE_1B
Set Parameter value from string representation.
Definition vst.h:2235
@ VST_EFFECT_OPCODE_SET_BLOCK_SIZE
Definition vst.h:2024
@ VST_EFFECT_OPCODE_IDLE
Definition vst.h:2501
@ VST_EFFECT_OPCODE_33
Test for support of a specific named feature.
Definition vst.h:2476
@ VST_EFFECT_OPCODE_04
Set the name of the currently selected program.
Definition vst.h:1939
@ VST_EFFECT_OPCODE_09
Definition vst.h:2004
@ VST_EFFECT_OPCODE_PARAM_GET_NAME
Definition vst.h:1995
@ VST_EFFECT_OPCODE_OUTPUT_STREAM_GET_PROPERTIES
Definition vst.h:2305
@ VST_EFFECT_OPCODE_INPUT_STREAM_GET_PROPERTIES
Definition vst.h:2292
@ VST_EFFECT_OPCODE_BANK_LOAD
Definition vst.h:2723
@ VST_EFFECT_OPCODE_EDITOR_MOUSE
Definition vst.h:2107
@ VST_EFFECT_OPCODE_WINDOW_CREATE
Definition vst.h:2063
@ VST_EFFECT_OPCODE_0B
Sets the block size, which is the maximum number of samples passed into the effect via process calls.
Definition vst.h:2020
@ VST_EFFECT_OPCODE_PARAM_GET_VALUE
Definition vst.h:1979
@ VST_EFFECT_OPCODE_39
Definition vst.h:2540
@ VST_EFFECT_OPCODE_05
Get the name of the currently selected program.
Definition vst.h:1949
@ VST_EFFECT_OPCODE_1A
Can the parameter be automated?
Definition vst.h:2220
@ VST_EFFECT_OPCODE_19
Send events from host to plug-in.
Definition vst.h:2210
@ VST_EFFECT_OPCODE_PROGRAM_SET_END
Definition vst.h:2646
@ VST_EFFECT_OPCODE_GET_PROGRAM
Definition vst.h:1931
@ VST_EFFECT_OPCODE_12
Window Keyboard Event?
Definition vst.h:2119
@ VST_EFFECT_OPCODE_42
Midi related.
Definition vst.h:2626
@ VST_EFFECT_OPCODE_EFFECT_CATEGORY
Definition vst.h:2314
@ VST_EFFECT_OPCODE_PARAM_IS_AUTOMATABLE
Definition vst.h:2224
@ VST_EFFECT_OPCODE_WINDOW_DRAW
Definition vst.h:2089
@ VST_EFFECT_OPCODE_DESTROY
Definition vst.h:1913
@ VST_EFFECT_OPCODE_SETBLOCKSIZE
Definition vst.h:2022
@ VST_EFFECT_OPCODE_02
Set which program number is currently select.
Definition vst.h:1919
@ VST_EFFECT_OPCODE_48
End processing of audio.
Definition vst.h:2690
@ VST_EFFECT_OPCODE_GETNAME2
Definition vst.h:2443
@ VST_EFFECT_OPCODE_CUSTOM
Definition vst.h:2467
@ VST_EFFECT_OPCODE_2E
Translate an error code to a string.
Definition vst.h:2421
@ VST_EFFECT_OPCODE_3D
Definition vst.h:2586
@ VST_EFFECT_OPCODE_EDITOR_KEEP_ALIVE
Definition vst.h:2131
@ VST_EFFECT_OPCODE_PARAM_PROPERTIES
Definition vst.h:2532
@ VST_EFFECT_OPCODE_TAIL_SAMPLES
Definition vst.h:2490
@ VST_EFFECT_OPCODE_30
Retrieve the product name into the ptr buffer.
Definition vst.h:2441
@ VST_EFFECT_OPCODE_PARAM_VALUE
Definition vst.h:1981
@ VST_EFFECT_OPCODE_35
Notify effect that it is idle?
Definition vst.h:2499
@ VST_EFFECT_OPCODE_PROGRAM_GET_NAME
Definition vst.h:1953
@ VST_EFFECT_OPCODE_0D
Retrieve the client rect size of the plugins window.
Definition vst.h:2048
@ VST_EFFECT_OPCODE_1E
Definition vst.h:2263
@ VST_EFFECT_OPCODE_PROGRAM_LOAD
Definition vst.h:2736
@ VST_EFFECT_OPCODE_23
Retrieve category of this effect.
Definition vst.h:2312
@ VST_EFFECT_OPCODE_VST_VERSION
Definition vst.h:2550
@ VST_EFFECT_OPCODE_36
Definition vst.h:2510
@ VST_EFFECT_OPCODE_EDITOR_OPEN
Definition vst.h:2065
@ VST_EFFECT_OPCODE_EDITOR_VKEY_DOWN
Definition vst.h:2566
@ VST_EFFECT_OPCODE_00
Create/Initialize the effect (if it has not been created already).
Definition vst.h:1899
@ VST_EFFECT_OPCODE_2B
Definition vst.h:2385
@ VST_EFFECT_OPCODE_SUSPEND_RESUME
Definition vst.h:2038
@ VST_EFFECT_OPCODE_24
Definition vst.h:2324
@ VST_EFFECT_OPCODE_PARAM_LABEL
Definition vst.h:1967
@ VST_EFFECT_OPCODE_40
Midi related.
Definition vst.h:2610
@ VST_EFFECT_OPCODE_22
Retrieve properties for the given output index.
Definition vst.h:2301
@ VST_EFFECT_OPCODE_4F
Definition vst.h:2764
@ VST_EFFECT_OPCODE_47
Begin processing of audio.
Definition vst.h:2681
@ VST_EFFECT_OPCODE_38
Parameter Properties.
Definition vst.h:2528
@ VST_EFFECT_OPCODE_GET_SPEAKER_ARRANGEMENT
Definition vst.h:2661
@ VST_EFFECT_OPCODE_0E
Create the window for the plugin.
Definition vst.h:2061
@ VST_EFFECT_OPCODE_3B
Editor Virtual Key Down Input.
Definition vst.h:2564
@ VST_EFFECT_OPCODE_BYPASS
Definition vst.h:2396
@ VST_EFFECT_OPCODE_EDITOR_KEYBOARD
Definition vst.h:2123
@ VST_EFFECT_OPCODE_INPUT_GET_PROPERTIES
Definition vst.h:2290
@ VST_EFFECT_OPCODE_VENDOR_NAME
Definition vst.h:2434
@ VST_EFFECT_OPCODE_PARAM_ISAUTOMATABLE
Definition vst.h:2222
@ VST_EFFECT_OPCODE_WINDOW_KEYBOARD
Definition vst.h:2121
@ VST_EFFECT_OPCODE_GET_PROGRAM_NAME
Definition vst.h:1951
@ VST_EFFECT_OPCODE_17
Get Chunk Data.
Definition vst.h:2173
@ VST_EFFECT_OPCODE_31
Retrieve the vendor version in return value.
Definition vst.h:2452
@ VST_EFFECT_OPCODE_2D
Retrieve the effect name into the ptr buffer.
Definition vst.h:2405
@ VST_EFFECT_OPCODE_07
Get the string representing the value for the parameter.
Definition vst.h:1975
@ VST_EFFECT_OPCODE_EVENT
Definition vst.h:2212
@ VST_EFFECT_OPCODE_PROCESS_END
Definition vst.h:2692
@ VST_EFFECT_OPCODE_SET_PROGRAM
Definition vst.h:1921
@ VST_EFFECT_OPCODE_27
Seen in plug-ins with VST_EFFECT_CATEGORY_OFFLINE.
Definition vst.h:2348
@ VST_EFFECT_OPCODE_EDITOR_DRAW
Definition vst.h:2091
@ VST_EFFECT_OPCODE_15
Window Unfocus Event?
Definition vst.h:2151
@ VST_EFFECT_OPCODE_49
Definition vst.h:2700
@ VST_EFFECT_OPCODE_NAME
Definition vst.h:2411
@ VST_EFFECT_OPCODE_EDITOR_CLOSE
Definition vst.h:2075
@ VST_EFFECT_OPCODE_29
Seen in plug-ins with VST_EFFECT_CATEGORY_OFFLINE.
Definition vst.h:2364
@ VST_EFFECT_OPCODE_3A
Retrieve the VST Version supported.
Definition vst.h:2548
@ VST_EFFECT_OPCODE_11
Window Mouse Event?
Definition vst.h:2103
@ VST_EFFECT_OPCODE_PARAM_GET_LABEL
Definition vst.h:1965
@ VST_EFFECT_OPCODE_SETSAMPLERATE
Definition vst.h:2012
@ VST_EFFECT_OPCODE_0F
Destroy the plugins window.
Definition vst.h:2071
@ VST_EFFECT_OPCODE_GET_CHUNK_DATA
Definition vst.h:2175
@ VST_EFFECT_OPCODE_INITIALIZE
Definition vst.h:1903
@ VST_EFFECT_OPCODE_GETTAILSAMPLES
Definition vst.h:2488
@ VST_EFFECT_OPCODE_18
Set Chunk Data.
Definition vst.h:2187
@ VST_EFFECT_OPCODE_EFFECT_NAME
Definition vst.h:2409
@ VST_EFFECT_OPCODE_GET_PARAMETER_PROPERTIES
Definition vst.h:2530
@ VST_EFFECT_OPCODE_PARAM_AUTOMATABLE
Definition vst.h:2226
@ VST_EFFECT_OPCODE_PARAM_GETNAME
Definition vst.h:1993
@ VST_EFFECT_OPCODE_4A
Definition vst.h:2710
@ VST_EFFECT_OPCODE_08
Get the name for the parameter.
Definition vst.h:1991
@ VST_EFFECT_OPCODE_13
Window/Editor Idle/Keep-Alive Callback?
Definition vst.h:2129
@ VST_EFFECT_OPCODE_45
Host wants to know the current speaker arrangement.
Definition vst.h:2659
@ VST_EFFECT_OPCODE_WINDOW_GETRECT
Definition vst.h:2050
@ VST_EFFECT_OPCODE_OUTPUT_GET_PROPERTIES
Definition vst.h:2303
@ VST_EFFECT_OPCODE_PARAM_VALUE_FROM_STRING
Definition vst.h:2239
@ VST_EFFECT_OPCODE_GETVENDOR
Definition vst.h:2432
@ VST_EFFECT_OPCODE_PROCESS_BEGIN
Definition vst.h:2683
@ VST_EFFECT_OPCODE_1D
Definition vst.h:2255
@ VST_EFFECT_OPCODE_PAUSE_UNPAUSE
Definition vst.h:2036
@ VST_EFFECT_OPCODE_4C
Host wants to know if we can load the provided program data.
Definition vst.h:2734
@ VST_EFFECT_OPCODE_26
Seen in plug-ins with VST_EFFECT_CATEGORY_OFFLINE.
Definition vst.h:2340
@ VST_EFFECT_OPCODE_GETNAME
Definition vst.h:2407
@ VST_EFFECT_OPCODE_VENDOR_VERSION
Definition vst.h:2456
@ VST_EFFECT_OPCODE_46
Get the next effect contained in this effect.
Definition vst.h:2672
@ VST_EFFECT_OPCODE_SET_PROGRAM_NAME
Definition vst.h:1941
@ VST_EFFECT_OPCODE_FOURCC
Definition vst.h:2161
@ VST_EFFECT_OPCODE_37
Definition vst.h:2519
@ VST_EFFECT_OPCODE_44
Host is done setting up a program.
Definition vst.h:2644
@ VST_EFFECT_OPCODE_3F
Midi related.
Definition vst.h:2602
@ VST_EFFECT_OPCODE_WINDOW_DESTROY
Definition vst.h:2073
@ VST_EFFECT_OPCODE_EDITOR_VKEY_UP
Definition vst.h:2578
@ VST_EFFECT_OPCODE_1F
Input connected.
Definition vst.h:2271
@ VST_EFFECT_OPCODE_34
Number of samples that are at the tail at the end of playback.
Definition vst.h:2486
@ VST_EFFECT_OPCODE_2C
Enable/Disable bypassing the effect.
Definition vst.h:2394
@ VST_EFFECT_OPCODE_PROGRAM_SET
Definition vst.h:1923
@ VST_EFFECT_OPCODE_SUPPORTS
Definition vst.h:2478
@ VST_EFFECT_OPCODE_PROGRAM_SET_BEGIN
Definition vst.h:2636
@ VST_EFFECT_OPCODE_16
Definition vst.h:2159
@ VST_EFFECT_OPCODE_TRANSLATE_ERROR
Definition vst.h:2423
@ VST_EFFECT_OPCODE_EDITOR_RECT
Definition vst.h:2052
@ VST_EFFECT_OPCODE_25
Definition vst.h:2332
@ VST_EFFECT_OPCODE_PARAM_SET_VALUE
Definition vst.h:2237
@ VST_EFFECT_OPCODE_SUSPEND
Definition vst.h:2040
@ VST_EFFECT_OPCODE_0C
Effect processing should be suspended/paused or resumed/unpaused.
Definition vst.h:2034

◆ VST_EVENT_TYPE

Available event types.

Seems like we can implement our own events for smooth automation and similar.

Enumerator
VST_EVENT_TYPE_00 

Invalid event.

Crashes the host or plug-in if used.

VST_EVENT_TYPE_INVALID 
See also
VST_EVENT_TYPE_00
VST_EVENT_TYPE_01 

MIDI Event.

Allows casting vst_event_t to vst_event_midi_t.

VST_EVENT_TYPE_MIDI 
See also
VST_EVENT_TYPE_01
VST_EVENT_TYPE_02 
VST_EVENT_TYPE_03 
VST_EVENT_TYPE_04 
Todo:
Seems to be related to parameter automation in some hosts. Structure varies by host, only the first section (vst_event_t) is identical.
VST_EVENT_TYPE_05 
Todo:
Seems to be related to switch parameter automation in some hosts. Structure varies by host, only the first section (vst_event_t) is identical.
VST_EVENT_TYPE_MIDI_SYSEX 

MIDI SysEx Event.

Allows casting vst_event_t to vst_event_midi_sysex_t. See: https://blog.landr.com/midi-sysex/

Definition at line 809 of file vst.h.

809 {
817
825
828
832
836
843};
@ VST_EVENT_TYPE_INVALID
Definition vst.h:816
@ VST_EVENT_TYPE_05
Definition vst.h:835
@ VST_EVENT_TYPE_02
Definition vst.h:826
@ VST_EVENT_TYPE_04
Definition vst.h:831
@ VST_EVENT_TYPE_01
MIDI Event.
Definition vst.h:822
@ VST_EVENT_TYPE_00
Invalid event.
Definition vst.h:814
@ VST_EVENT_TYPE_03
Definition vst.h:827
@ VST_EVENT_TYPE_MIDI_SYSEX
MIDI SysEx Event.
Definition vst.h:842
@ VST_EVENT_TYPE_MIDI
Definition vst.h:824

◆ VST_HOST_ACTIVE_THREAD

See also
VST_HOST_OPCODE_ACTIVE_THREAD
Enumerator
VST_HOST_ACTIVE_THREAD_UNKNOWN 

The active thread has no special usage assigned.

VST_HOST_ACTIVE_THREAD_INTERFACE 

The active thread is used for user interface work.

VST_HOST_ACTIVE_THREAD_AUDIO 

The active thread is used for audio processing.

VST_HOST_ACTIVE_THREAD_EVENT 

The active thread is related to events and event handling.

See also
VST_HOST_OPCODE_EVENT
VST_EFFECT_OPCODE_EVENT
VST_HOST_ACTIVE_THREAD_USER 

The active thread was created by an effect.

Definition at line 1010 of file vst.h.

1010 {
1014
1018
1022
1029
1033
1035 VST_HOST_ACTIVE_THREAD_MAX,
1037 _VST_HOST_ACTIVE_THREAD_PAD = (-1l)
1038};
@ VST_HOST_ACTIVE_THREAD_UNKNOWN
The active thread has no special usage assigned.
Definition vst.h:1013
@ VST_HOST_ACTIVE_THREAD_INTERFACE
The active thread is used for user interface work.
Definition vst.h:1017
@ VST_HOST_ACTIVE_THREAD_EVENT
The active thread is related to events and event handling.
Definition vst.h:1028
@ VST_HOST_ACTIVE_THREAD_AUDIO
The active thread is used for audio processing.
Definition vst.h:1021
@ VST_HOST_ACTIVE_THREAD_USER
The active thread was created by an effect.
Definition vst.h:1032

◆ VST_HOST_OPCODE

Plug-in to Host Op-Codes These Op-Codes are emitted by the plug-in and the host may handle them or return 0 (false).

We have no guarantees about anything actually happening.

Enumerator
VST_HOST_OPCODE_00 

Update automation for a given Parameter.

Must be used to notify the host that the parameter was changed by the user if a custom editor is used.

Parameters
p_int1Parameter Index
p_floatParameter Value
Returns
Expected to return... something.
VST_HOST_OPCODE_AUTOMATE 
See also
VST_HOST_OPCODE_00
VST_HOST_OPCODE_PARAM_UPDATE 
See also
VST_HOST_OPCODE_00
VST_HOST_OPCODE_01 

Retrieve the Hosts VST Version.

Returns
See VST_VERSION enumeration.
VST_HOST_OPCODE_VST_VERSION 
See also
VST_HOST_OPCODE_01
VST_HOST_OPCODE_02 

Get the currently selected effect id in container plug-ins.

Used in combination with VST_EFFECT_CATEGORY_CONTAINER.

Returns
The currently selected unique effect id in this container.
VST_HOST_OPCODE_CURRENT_EFFECT_ID 
See also
VST_HOST_OPCODE_02
VST_HOST_OPCODE_03 

Some sort of idle keep-alive?

Seems to be called only in editor windows when a modal popup is present.

VST_HOST_OPCODE_KEEPALIVE_OR_IDLE 
See also
VST_HOST_OPCODE_03
VST_HOST_OPCODE_04 
Todo:
VST_HOST_OPCODE_05 
Todo:
VST_HOST_OPCODE_06 
Todo:
VST_HOST_OPCODE_07 
Todo:
VST_HOST_OPCODE_08 
Todo:
VST_HOST_OPCODE_09 

Send events from plug-in to host.

The host must support receiving events (see vst_host_supports_t::receiveVstEvents) while the plug-in may optionally signal to the host that it wants to send events to the host (see vst_effect_supports_t::sendVstEvents).

See also
vst_event_t
vst_events_t
vst_effect_supports_t.sendVstEvents
vst_host_supports_t.receiveVstEvents
vst_effect_supports_t.sendVstMidiEvents
vst_host_supports_t.receiveVstMidiEvents
VST_EFFECT_OPCODE_EVENT
Note
(VST 2.0+) Available from VST 2.0 onwards.
Parameters
p_ptrA valid pointer to a vst_events_t structure.
VST_HOST_OPCODE_EVENT 
See also
VST_HOST_OPCODE_09
VST_HOST_OPCODE_0A 
Todo:
VST_HOST_OPCODE_0B 
Todo:
VST_HOST_OPCODE_0C 
Todo:
VST_HOST_OPCODE_0D 

Notify the host that numInputs/numOutputs/delay/numParams has changed.

Only supported if the host replies VST_STATUS_TRUE to VST_HOST_OPCODE_SUPPORTS query for vst_host_supports_t::acceptIOChanges.

Note
In VST 2.3 and earlier calling this outside of VST_EFFECT_OPCODE_IDLE may result in a crash.
In VST 2.3 and later this may only be called while between VST_EFFECT_OPCODE_PROCESS_END and VST_EFFECT_OPCODE_PROCESS_BEGIN.
Returns
VST_STATUS_TRUE if supported and handled otherwise VST_STATUS_FALSE.
VST_HOST_OPCODE_IO_MODIFIED 
See also
VST_HOST_OPCODE_0D
VST_HOST_OPCODE_0E 
Todo:
VST_HOST_OPCODE_0F 

Request that the host changes the size of the containing window.

Note
(VST 2.x) Available from VST 2.0 onwards.
See also
vst_host_supports_t.sizeWindow
Parameters
p_int1Width (in pixels) that we'd like to have.
p_int2Height (in pixels) that we'd like to have.
p_ptrMust be zero'd.
p_floatMust be zero'd.
Returns
VST_STATUS_TRUE if change was accepted, anything else if not. Do not rely on the return code being 0.
VST_HOST_OPCODE_EDITOR_RESIZE 
See also
VST_HOST_OPCODE_0F
VST_HOST_OPCODE_10 

Get the current sample rate the effect should be running at.

Note
(VST 2.x) Available from VST 2.0 onwards.
See also
VST_EFFECT_OPCODE_SET_SAMPLE_RATE
Returns
The current sample rate in Hertz.
VST_HOST_OPCODE_GET_SAMPLE_RATE 
See also
VST_HOST_OPCODE_10
VST_HOST_OPCODE_11 

Get the current block size for the effect.

Note
(VST 2.x) Available from VST 2.0 onwards.
See also
VST_EFFECT_OPCODE_SET_BLOCK_SIZE
Returns
The current block size in samples.
VST_HOST_OPCODE_GET_BLOCK_SIZE 
See also
VST_HOST_OPCODE_11
VST_HOST_OPCODE_12 

Current input latency.

Appears to only work with ASIO input/output devices.

Note
(VST 2.0+) Available from VST 2.0 onwards.
Returns
Current input audio latency in samples.
VST_HOST_OPCODE_INPUT_LATENCY 
See also
VST_HOST_OPCODE_12
VST_HOST_OPCODE_13 

Current output latency.

Appears to only work with ASIO input/output devices.

Note
(VST 2.0+) Available from VST 2.0 onwards.
Returns
Current output audio latency in samples.
VST_HOST_OPCODE_OUTPUT_LATENCY 
See also
VST_HOST_OPCODE_13
VST_HOST_OPCODE_14 

Get which effect is attached to the indexed input stream.

Note
(VST 2.0+) Available from VST 2.0 onwards.
Deprecated:
(VST 2.4+) Non-functional from VST 2.4 onwards and unimplemented in many earlier hosts.
Parameters
p_int1Which input stream should be queried?
Returns
Pointer to a valid vst_effect_t structure or 0.
VST_HOST_OPCODE_INPUT_GET_ATTACHED_EFFECT 
See also
VST_HOST_OPCODE_14
VST_HOST_OPCODE_INPUT_STREAM_GET_ATTACHED_EFFECT 
See also
VST_HOST_OPCODE_14
VST_HOST_OPCODE_15 

Get which effect is attached to the indexed output stream.

Note
(VST 2.0+) Available from VST 2.0 onwards.
Deprecated:
(VST 2.4+) Non-functional from VST 2.4 onwards and unimplemented in many earlier hosts.
Parameters
p_int1Which output stream should be queried?
Returns
Pointer to a valid vst_effect_t structure or 0.
VST_HOST_OPCODE_OUTPUT_GET_ATTACHED_EFFECT 
See also
VST_HOST_OPCODE_15
VST_HOST_OPCODE_OUTPUT_STREAM_GET_ATTACHED_EFFECT 
See also
VST_HOST_OPCODE_15
VST_HOST_OPCODE_16 
Todo:
VST_HOST_OPCODE_17 

Which thread is the host currently processing this call from? Useful for memory and thread safety since we can guarantee code paths don't intersect between threads in compatible hosts.

Not so useful in incompatible hosts.

Note
(VST 2.0+) Available from VST 2.0 onwards.
Returns
Any of VST_HOST_ACTIVE_THREAD or 0 if unsupported.
VST_HOST_OPCODE_GET_ACTIVE_THREAD 
See also
VST_HOST_OPCODE_17
VST_HOST_OPCODE_18 
Todo:
VST_HOST_OPCODE_19 
Todo:
VST_HOST_OPCODE_1A 
Todo:
VST_HOST_OPCODE_1B 
Todo:
VST_HOST_OPCODE_1C 
Todo:
VST_HOST_OPCODE_1D 
Todo:
VST_HOST_OPCODE_1E 
Todo:
VST_HOST_OPCODE_1F 

Retrieve the hosts output speaker arrangement.

Seems to always reply with the data provided in VST_EFFECT_OPCODE_GET_SPEAKER_ARRANGEMENT p_ptr.

Note
(VST 2.3+) Available from VST 2.3 onwards.
Deprecated:
(VST 2.4+) Deprecated from VST 2.4 onwards.
See also
vst_speaker_arrangement_t
VST_EFFECT_OPCODE_SET_SPEAKER_ARRANGEMENT
VST_EFFECT_OPCODE_GET_SPEAKER_ARRANGEMENT
VST_HOST_OPCODE_GET_INPUT_SPEAKER_ARRANGEMENT
Returns
Seems to be a valid pointer to vst_speaker_arrangement_t if supported.
VST_HOST_OPCODE_GET_OUTPUT_SPEAKER_ARRANGEMENT 
See also
VST_HOST_OPCODE_1F
VST_HOST_OPCODE_OUTPUT_GET_SPEAKER_ARRANGEMENT 
See also
VST_HOST_OPCODE_1F
VST_HOST_OPCODE_20 

Retrieve the vendor name into the ptr buffer.

Parameters
p_ptrA zero terminated char buffer of size VST_BUFFER_SIZE_VENDOR_NAME.
VST_HOST_OPCODE_VENDOR_NAME 
See also
VST_HOST_OPCODE_20
VST_HOST_OPCODE_21 

Retrieve the product name into the ptr buffer.

Parameters
p_ptrA zero terminated char buffer of size VST_BUFFER_SIZE_PRODUCT_NAME.
VST_HOST_OPCODE_PRODUCT_NAME 
See also
VST_HOST_OPCODE_21
VST_HOST_OPCODE_22 

Retrieve the vendor version in return value.

Returns
Version.
VST_HOST_OPCODE_VENDOR_VERSION 
See also
VST_HOST_OPCODE_22
VST_HOST_OPCODE_23 

User defined OP Code, for custom interaction.

VST_HOST_OPCODE_CUSTOM 
See also
VST_HOST_OPCODE_23
VST_HOST_OPCODE_24 
Todo:
VST_HOST_OPCODE_25 

Check if the host supports a certain feature.

Parameters
p_ptrchar[...] Zero terminated string for which feature we want to support.
Returns
VST_STATUS_TRUE if the feature is supported otherwise VST_STATUS_FALSE.
VST_HOST_OPCODE_SUPPORTS 
See also
VST_HOST_OPCODE_25
VST_HOST_OPCODE_26 

What language is the host in?

Returns
1 if english, 2 if german. more possible?
VST_HOST_OPCODE_LANGUAGE 
See also
VST_HOST_OPCODE_26
VST_HOST_OPCODE_27 

Crash the host if p_ptr isn't nullptr.

Todo:
VST_HOST_OPCODE_28 

Crash the host if p_ptr isn't nullptr.

Todo:
VST_HOST_OPCODE_29 

Retrieve the directory of the effect that emitted this.

The returned value seems to be unchanged for container plug-ins.

Note
(VST 2.0+) Available from VST 2.0 onwards.
Returns
(Windows) A zero-terminated char buffer of unknown size.
(MacOS) A valid FSSpec structure.
VST_HOST_OPCODE_GET_EFFECT_DIRECTORY 
See also
VST_HOST_OPCODE_29
VST_HOST_OPCODE_2A 

Refresh everything related to the effect that called this.

This includes things like parameters, programs, banks, windows, files, meters, streams, sample rate, block size, and a lot more. Anything that has to do with the effect should be refreshed when the effect calls this.

Note
(VST 2.0+) Available from VST 2.0 onwards.
VST_HOST_OPCODE_EDITOR_UPDATE 
See also
VST_HOST_OPCODE_2A
VST_HOST_OPCODE_REFRESH 
See also
VST_HOST_OPCODE_2A
VST_HOST_OPCODE_2B 

Notify host that a parameter is being edited.

"Locks" the parameter from being edited in compatible hosts.

Note
(VST 2.1+) Available from VST 2.1 onwards.
Parameters
p_int1Parameter index.
VST_HOST_OPCODE_PARAM_START_EDIT 
See also
VST_HOST_OPCODE_2B
VST_HOST_OPCODE_PARAM_LOCK 
See also
VST_HOST_OPCODE_2B
VST_HOST_OPCODE_2C 

Notify host that parameter is no longer being edited.

"Unlocks" the parameter for further editing in compatible hosts. Remember to call the VST_HOST_OPCODE_PARAM_UPDATE op-code afterwards so that the host knows it needs to update its automation data.

Note
(VST 2.1+) Available from VST 2.1 onwards.
See also
VST_HOST_OPCODE_PARAM_UPDATE
Parameters
p_int1Parameter index.
VST_HOST_OPCODE_PARAM_STOP_EDIT 
See also
VST_HOST_OPCODE_2C
VST_HOST_OPCODE_PARAM_UNLOCK 
See also
VST_HOST_OPCODE_2C
VST_HOST_OPCODE_2D 

Crash the host depending on what p_ptr is pointing at.

Todo:
VST_HOST_OPCODE_2E 

Crash the host depending on what p_ptr is pointing at.

Todo:
VST_HOST_OPCODE_2F 

Crash the host depending on what p_ptr is pointing at.

Todo:
VST_HOST_OPCODE_30 

When queried by the plug-in shortly after VST_EFFECT_OPCODE_PROGRAM_LOAD it often crashes compatible hosts with a memory access exception.

This exception can be controlled with p_ptr but it's unclear what that is pointing at so far. In the event that it doesn't crash the memory address we pointed at changes to a path.

Todo:
Figure out what p_ptr is.
Note
(VST 2.2+) Available from VST 2.2 onwards.
Deprecated:
(VST 2.4+) Deprecated from VST 2.4 onwards.
Parameters
p_ptrA pointer to something
Todo:
VST_HOST_OPCODE_31 

Retrieve the hosts input speaker arrangement.

Seems to always reply with the data provided in VST_EFFECT_OPCODE_GET_SPEAKER_ARRANGEMENT p_int2.

Note
(VST 2.3+) Available from VST 2.3 onwards.
Deprecated:
(VST 2.4+) Deprecated from VST 2.4 onwards.
See also
vst_speaker_arrangement_t
VST_EFFECT_OPCODE_SET_SPEAKER_ARRANGEMENT
VST_EFFECT_OPCODE_GET_SPEAKER_ARRANGEMENT
VST_HOST_OPCODE_GET_OUTPUT_SPEAKER_ARRANGEMENT
Returns
Seems to be a valid pointer to vst_speaker_arrangement_t if supported.
VST_HOST_OPCODE_GET_INPUT_SPEAKER_ARRANGEMENT 
See also
VST_HOST_OPCODE_31
VST_HOST_OPCODE_INPUT_GET_SPEAKER_ARRANGEMENT 
See also
VST_HOST_OPCODE_31

Definition at line 1044 of file vst.h.

1044 {
1053 VST_HOST_OPCODE_00 = 0x00,
1058
1063 VST_HOST_OPCODE_01 = 0x01,
1066
1073 VST_HOST_OPCODE_02 = 0x02,
1076
1081 VST_HOST_OPCODE_03 = 0x03,
1084
1086 VST_HOST_OPCODE_04 = 0x04,
1087
1088 /*-------------------------------------------------------------------------------- */
1089 /* VST 2.0 */
1090 /*--------------------------------------------------------------------------------*/
1091
1093 VST_HOST_OPCODE_05 = 0x05,
1094
1096 VST_HOST_OPCODE_06 = 0x06,
1097
1099 VST_HOST_OPCODE_07 = 0x07,
1100
1102 VST_HOST_OPCODE_08 = 0x08,
1103
1119 VST_HOST_OPCODE_09 = 0x09,
1121 VST_HOST_OPCODE_EVENT = 0x09,
1122
1124 VST_HOST_OPCODE_0A = 0x0A,
1125
1127 VST_HOST_OPCODE_0B = 0x0B,
1128
1130 VST_HOST_OPCODE_0C = 0x0C,
1131
1142 VST_HOST_OPCODE_0D = 0x0D,
1145
1147 VST_HOST_OPCODE_0E = 0x0E,
1148
1160 VST_HOST_OPCODE_0F = 0x0F,
1163
1171 VST_HOST_OPCODE_10 = 0x10,
1174
1182 VST_HOST_OPCODE_11 = 0x11,
1185
1192 VST_HOST_OPCODE_12 = 0x12,
1195
1202 VST_HOST_OPCODE_13 = 0x13,
1205
1213 VST_HOST_OPCODE_14 = 0x14,
1218
1226 VST_HOST_OPCODE_15 = 0x15,
1231
1233 VST_HOST_OPCODE_16 = 0x16,
1234
1242 VST_HOST_OPCODE_17 = 0x17,
1245
1247 VST_HOST_OPCODE_18 = 0x18,
1248
1250 VST_HOST_OPCODE_19 = 0x19,
1251
1253 VST_HOST_OPCODE_1A = 0x1A,
1254
1256 VST_HOST_OPCODE_1B = 0x1B,
1257
1259 VST_HOST_OPCODE_1C = 0x1C,
1260
1262 VST_HOST_OPCODE_1D = 0x1D,
1263
1265 VST_HOST_OPCODE_1E = 0x1E,
1266
1278 VST_HOST_OPCODE_1F = 0x1F,
1283
1288 VST_HOST_OPCODE_20 = 0x20,
1291
1296 VST_HOST_OPCODE_21 = 0x21,
1299
1304 VST_HOST_OPCODE_22 = 0x22,
1307
1311 VST_HOST_OPCODE_23 = 0x23,
1314
1316 VST_HOST_OPCODE_24 = 0x24,
1317
1323 VST_HOST_OPCODE_25 = 0x25,
1326
1331 VST_HOST_OPCODE_26 = 0x26,
1334
1338 VST_HOST_OPCODE_27 = 0x27,
1339
1343 VST_HOST_OPCODE_28 = 0x28,
1344
1352 VST_HOST_OPCODE_29 = 0x29,
1355
1362 VST_HOST_OPCODE_2A = 0x2A,
1367
1368 /*--------------------------------------------------------------------------------*/
1369 /* VST 2.1 */
1370 /*--------------------------------------------------------------------------------*/
1371
1378 VST_HOST_OPCODE_2B = 0x2B,
1383
1392 VST_HOST_OPCODE_2C = 0x2C,
1397
1401 VST_HOST_OPCODE_2D = 0x2D,
1402
1403 /*--------------------------------------------------------------------------------*/
1404 /* VST 2.2 */
1405 /*--------------------------------------------------------------------------------*/
1406
1410 VST_HOST_OPCODE_2E = 0x2E,
1411
1415 VST_HOST_OPCODE_2F = 0x2F,
1416
1428 VST_HOST_OPCODE_30 = 0x30,
1429
1430 /*--------------------------------------------------------------------------------*/
1431 /* VST 2.3 */
1432 /*--------------------------------------------------------------------------------*/
1433
1445 VST_HOST_OPCODE_31 = 0x31,
1450
1452 VST_HOST_OPCODE_MAX,
1453
1455 _VST_HOST_OPCODE_PAD = (-1l)
1456};
@ VST_HOST_OPCODE_LANGUAGE
Definition vst.h:1333
@ VST_HOST_OPCODE_EVENT
Definition vst.h:1121
@ VST_HOST_OPCODE_28
Crash the host if p_ptr isn't nullptr.
Definition vst.h:1343
@ VST_HOST_OPCODE_04
Definition vst.h:1086
@ VST_HOST_OPCODE_18
Definition vst.h:1247
@ VST_HOST_OPCODE_EDITOR_UPDATE
Definition vst.h:1364
@ VST_HOST_OPCODE_PARAM_START_EDIT
Definition vst.h:1380
@ VST_HOST_OPCODE_PARAM_STOP_EDIT
Definition vst.h:1394
@ VST_HOST_OPCODE_06
Definition vst.h:1096
@ VST_HOST_OPCODE_1A
Definition vst.h:1253
@ VST_HOST_OPCODE_OUTPUT_STREAM_GET_ATTACHED_EFFECT
Definition vst.h:1230
@ VST_HOST_OPCODE_EDITOR_RESIZE
Definition vst.h:1162
@ VST_HOST_OPCODE_0F
Request that the host changes the size of the containing window.
Definition vst.h:1160
@ VST_HOST_OPCODE_2F
Crash the host depending on what p_ptr is pointing at.
Definition vst.h:1415
@ VST_HOST_OPCODE_IO_MODIFIED
Definition vst.h:1144
@ VST_HOST_OPCODE_1B
Definition vst.h:1256
@ VST_HOST_OPCODE_GET_SAMPLE_RATE
Definition vst.h:1173
@ VST_HOST_OPCODE_12
Current input latency.
Definition vst.h:1192
@ VST_HOST_OPCODE_KEEPALIVE_OR_IDLE
Definition vst.h:1083
@ VST_HOST_OPCODE_07
Definition vst.h:1099
@ VST_HOST_OPCODE_OUTPUT_GET_SPEAKER_ARRANGEMENT
Definition vst.h:1282
@ VST_HOST_OPCODE_1C
Definition vst.h:1259
@ VST_HOST_OPCODE_08
Definition vst.h:1102
@ VST_HOST_OPCODE_27
Crash the host if p_ptr isn't nullptr.
Definition vst.h:1338
@ VST_HOST_OPCODE_20
Retrieve the vendor name into the ptr buffer.
Definition vst.h:1288
@ VST_HOST_OPCODE_INPUT_GET_SPEAKER_ARRANGEMENT
Definition vst.h:1449
@ VST_HOST_OPCODE_OUTPUT_LATENCY
Definition vst.h:1204
@ VST_HOST_OPCODE_2B
Notify host that a parameter is being edited.
Definition vst.h:1378
@ VST_HOST_OPCODE_16
Definition vst.h:1233
@ VST_HOST_OPCODE_25
Check if the host supports a certain feature.
Definition vst.h:1323
@ VST_HOST_OPCODE_1D
Definition vst.h:1262
@ VST_HOST_OPCODE_GET_BLOCK_SIZE
Definition vst.h:1184
@ VST_HOST_OPCODE_PARAM_LOCK
Definition vst.h:1382
@ VST_HOST_OPCODE_23
User defined OP Code, for custom interaction.
Definition vst.h:1311
@ VST_HOST_OPCODE_15
Get which effect is attached to the indexed output stream.
Definition vst.h:1226
@ VST_HOST_OPCODE_24
Definition vst.h:1316
@ VST_HOST_OPCODE_19
Definition vst.h:1250
@ VST_HOST_OPCODE_05
Definition vst.h:1093
@ VST_HOST_OPCODE_1E
Definition vst.h:1265
@ VST_HOST_OPCODE_31
Retrieve the hosts input speaker arrangement.
Definition vst.h:1445
@ VST_HOST_OPCODE_29
Retrieve the directory of the effect that emitted this.
Definition vst.h:1352
@ VST_HOST_OPCODE_01
Retrieve the Hosts VST Version.
Definition vst.h:1063
@ VST_HOST_OPCODE_AUTOMATE
Definition vst.h:1055
@ VST_HOST_OPCODE_INPUT_STREAM_GET_ATTACHED_EFFECT
Definition vst.h:1217
@ VST_HOST_OPCODE_0A
Definition vst.h:1124
@ VST_HOST_OPCODE_26
What language is the host in?
Definition vst.h:1331
@ VST_HOST_OPCODE_11
Get the current block size for the effect.
Definition vst.h:1182
@ VST_HOST_OPCODE_0C
Definition vst.h:1130
@ VST_HOST_OPCODE_10
Get the current sample rate the effect should be running at.
Definition vst.h:1171
@ VST_HOST_OPCODE_GET_ACTIVE_THREAD
Definition vst.h:1244
@ VST_HOST_OPCODE_2C
Notify host that parameter is no longer being edited.
Definition vst.h:1392
@ VST_HOST_OPCODE_13
Current output latency.
Definition vst.h:1202
@ VST_HOST_OPCODE_INPUT_LATENCY
Definition vst.h:1194
@ VST_HOST_OPCODE_0E
Definition vst.h:1147
@ VST_HOST_OPCODE_2D
Crash the host depending on what p_ptr is pointing at.
Definition vst.h:1401
@ VST_HOST_OPCODE_0D
Notify the host that numInputs/numOutputs/delay/numParams has changed.
Definition vst.h:1142
@ VST_HOST_OPCODE_00
Update automation for a given Parameter.
Definition vst.h:1053
@ VST_HOST_OPCODE_17
Which thread is the host currently processing this call from? Useful for memory and thread safety sin...
Definition vst.h:1242
@ VST_HOST_OPCODE_03
Some sort of idle keep-alive?
Definition vst.h:1081
@ VST_HOST_OPCODE_PRODUCT_NAME
Definition vst.h:1298
@ VST_HOST_OPCODE_2A
Refresh everything related to the effect that called this.
Definition vst.h:1362
@ VST_HOST_OPCODE_02
Get the currently selected effect id in container plug-ins.
Definition vst.h:1073
@ VST_HOST_OPCODE_GET_OUTPUT_SPEAKER_ARRANGEMENT
Definition vst.h:1280
@ VST_HOST_OPCODE_VENDOR_VERSION
Definition vst.h:1306
@ VST_HOST_OPCODE_14
Get which effect is attached to the indexed input stream.
Definition vst.h:1213
@ VST_HOST_OPCODE_VENDOR_NAME
Definition vst.h:1290
@ VST_HOST_OPCODE_2E
Crash the host depending on what p_ptr is pointing at.
Definition vst.h:1410
@ VST_HOST_OPCODE_22
Retrieve the vendor version in return value.
Definition vst.h:1304
@ VST_HOST_OPCODE_GET_INPUT_SPEAKER_ARRANGEMENT
Definition vst.h:1447
@ VST_HOST_OPCODE_21
Retrieve the product name into the ptr buffer.
Definition vst.h:1296
@ VST_HOST_OPCODE_GET_EFFECT_DIRECTORY
Definition vst.h:1354
@ VST_HOST_OPCODE_PARAM_UNLOCK
Definition vst.h:1396
@ VST_HOST_OPCODE_CUSTOM
Definition vst.h:1313
@ VST_HOST_OPCODE_PARAM_UPDATE
Definition vst.h:1057
@ VST_HOST_OPCODE_30
When queried by the plug-in shortly after VST_EFFECT_OPCODE_PROGRAM_LOAD it often crashes compatible ...
Definition vst.h:1428
@ VST_HOST_OPCODE_1F
Retrieve the hosts output speaker arrangement.
Definition vst.h:1278
@ VST_HOST_OPCODE_INPUT_GET_ATTACHED_EFFECT
Definition vst.h:1215
@ VST_HOST_OPCODE_0B
Definition vst.h:1127
@ VST_HOST_OPCODE_REFRESH
Definition vst.h:1366
@ VST_HOST_OPCODE_09
Send events from plug-in to host.
Definition vst.h:1119
@ VST_HOST_OPCODE_OUTPUT_GET_ATTACHED_EFFECT
Definition vst.h:1228

◆ VST_PARAMETER_FLAG

Flags for parameters.

See also
vst_parameter_properties_t
Enumerator
VST_PARAMETER_FLAG_1ls0 

Parameter is an on/off switch.

Note
Ignored if VST_EFFECT_FLAG_EDITOR is set.
VST_PARAMETER_FLAG_SWITCH 
See also
VST_PARAMETER_FLAG_1ls0
VST_PARAMETER_FLAG_1ls1 

Parameter limits are set as integers.

Note
Ignored if VST_EFFECT_FLAG_EDITOR is set.
VST_PARAMETER_FLAG_INTEGER_LIMITS 
See also
VST_PARAMETER_FLAG_1ls1
VST_PARAMETER_FLAG_1ls2 

Parameter uses float steps.

Note
Ignored if VST_EFFECT_FLAG_EDITOR is set.
VST_PARAMETER_FLAG_STEP_FLOAT 
See also
VST_PARAMETER_FLAG_1ls2
VST_PARAMETER_FLAG_1ls3 

Parameter uses integer steps.

Note
Ignored if VST_EFFECT_FLAG_EDITOR is set.
VST_PARAMETER_FLAG_STEP_INT 
See also
VST_PARAMETER_FLAG_1ls3
VST_PARAMETER_FLAG_1ls4 

Parameter has an display order index for the default editor.

Note
Ignored if VST_EFFECT_FLAG_EDITOR is set.
VST_PARAMETER_FLAG_INDEX 
See also
VST_PARAMETER_FLAG_1ls4
VST_PARAMETER_FLAG_1ls5 

Parameter has a category for the default editor.

Note
Ignored if VST_EFFECT_FLAG_EDITOR is set.
VST_PARAMETER_FLAG_CATEGORY 
See also
VST_PARAMETER_FLAG_1ls5
VST_PARAMETER_FLAG_1ls6 

Parameter can be gradually increased/decreased.

See also
VST_EFFECT_OPCODE_PARAM_IS_AUTOMATABLE
VST_PARAMETER_FLAG_RAMPING 
See also
VST_PARAMETER_FLAG_1ls6
_VST_PARAMETER_FLAG_PAD 

Definition at line 399 of file vst.h.

399 {
407
415
423
431
439
447
455
457};
@ VST_PARAMETER_FLAG_SWITCH
Definition vst.h:406
@ VST_PARAMETER_FLAG_1ls6
Parameter can be gradually increased/decreased.
Definition vst.h:452
@ VST_PARAMETER_FLAG_1ls5
Parameter has a category for the default editor.
Definition vst.h:444
@ VST_PARAMETER_FLAG_1ls4
Parameter has an display order index for the default editor.
Definition vst.h:436
@ VST_PARAMETER_FLAG_1ls2
Parameter uses float steps.
Definition vst.h:420
@ VST_PARAMETER_FLAG_INTEGER_LIMITS
Definition vst.h:414
@ VST_PARAMETER_FLAG_STEP_FLOAT
Definition vst.h:422
@ VST_PARAMETER_FLAG_INDEX
Definition vst.h:438
@ VST_PARAMETER_FLAG_CATEGORY
Definition vst.h:446
@ VST_PARAMETER_FLAG_RAMPING
Definition vst.h:454
@ VST_PARAMETER_FLAG_1ls3
Parameter uses integer steps.
Definition vst.h:428
@ VST_PARAMETER_FLAG_1ls0
Parameter is an on/off switch.
Definition vst.h:404
@ VST_PARAMETER_FLAG_STEP_INT
Definition vst.h:430
@ VST_PARAMETER_FLAG_1ls1
Parameter limits are set as integers.
Definition vst.h:412
@ _VST_PARAMETER_FLAG_PAD
Definition vst.h:456

◆ VST_SPEAKER_ARRANGEMENT_TYPE

Known default speaker arrangements.

Todo:
There's got to be a lot more right?
Enumerator
VST_SPEAKER_ARRANGEMENT_TYPE_CUSTOM 

Custom speaker arrangement.

Accidentally discovered through random testing.

VST_SPEAKER_ARRANGEMENT_TYPE_UNKNOWN 

Unknown/Empty speaker layout.

VST_SPEAKER_ARRANGEMENT_TYPE_MONO 

Mono.

VST_SPEAKER_ARRANGEMENT_TYPE_STEREO 

Stereo.

VST_SPEAKER_ARRANGEMENT_TYPE_4_0 

Quadraphonic.

VST_SPEAKER_ARRANGEMENT_TYPE_5_0 

5.0 (Old Surround)

L, R, C, RL, RR

VST_SPEAKER_ARRANGEMENT_TYPE_5_1 

5.1 (Old Surround)

L, R, C, LFE, RL, RR

VST_SPEAKER_ARRANGEMENT_TYPE_7_1 

7.1 (Full Surround)

L, R, C, LFE, SL, SR, RL, RR

_VST_SPEAKER_ARRANGEMENT_TYPE_PAD 

Definition at line 688 of file vst.h.

688 {
694
698
702
706
710
716
722
728
729 /* @private Pad to 32-bit. */
731};
@ VST_SPEAKER_ARRANGEMENT_TYPE_7_1
7.1 (Full Surround)
Definition vst.h:727
@ VST_SPEAKER_ARRANGEMENT_TYPE_UNKNOWN
Unknown/Empty speaker layout.
Definition vst.h:697
@ _VST_SPEAKER_ARRANGEMENT_TYPE_PAD
Definition vst.h:730
@ VST_SPEAKER_ARRANGEMENT_TYPE_5_1
5.1 (Old Surround)
Definition vst.h:721
@ VST_SPEAKER_ARRANGEMENT_TYPE_CUSTOM
Custom speaker arrangement.
Definition vst.h:693
@ VST_SPEAKER_ARRANGEMENT_TYPE_MONO
Mono.
Definition vst.h:701
@ VST_SPEAKER_ARRANGEMENT_TYPE_STEREO
Stereo.
Definition vst.h:705
@ VST_SPEAKER_ARRANGEMENT_TYPE_5_0
5.0 (Old Surround)
Definition vst.h:715
@ VST_SPEAKER_ARRANGEMENT_TYPE_4_0
Quadraphonic.
Definition vst.h:709

◆ VST_SPEAKER_TYPE

Default speaker types.

Todo:
Are there more?
Enumerator
VST_SPEAKER_TYPE_MONO 

Mono.

VST_SPEAKER_TYPE_LEFT 

(Front) Left

VST_SPEAKER_TYPE_RIGHT 

(Front) Right

VST_SPEAKER_TYPE_CENTER 

(Front) Center

VST_SPEAKER_TYPE_LFE 

LFE / Subwoofer.

VST_SPEAKER_TYPE_LEFT_REAR 

Rear/Surround Left.

VST_SPEAKER_TYPE_RIGHT_REAR 

Rear/Surround Right.

VST_SPEAKER_TYPE_LEFT_SIDE 

Side Left.

VST_SPEAKER_TYPE_RIGHT_SIDE 

Side Right.

VST_SPEAKER_TYPE_USER_32 
VST_SPEAKER_TYPE_USER_31 
VST_SPEAKER_TYPE_USER_30 
VST_SPEAKER_TYPE_USER_29 
VST_SPEAKER_TYPE_USER_28 
VST_SPEAKER_TYPE_USER_27 
VST_SPEAKER_TYPE_USER_26 
VST_SPEAKER_TYPE_USER_25 
VST_SPEAKER_TYPE_USER_24 
VST_SPEAKER_TYPE_USER_23 
VST_SPEAKER_TYPE_USER_22 
VST_SPEAKER_TYPE_USER_21 
VST_SPEAKER_TYPE_USER_20 
VST_SPEAKER_TYPE_USER_19 
VST_SPEAKER_TYPE_USER_18 
VST_SPEAKER_TYPE_USER_17 
VST_SPEAKER_TYPE_USER_16 
VST_SPEAKER_TYPE_USER_15 
VST_SPEAKER_TYPE_USER_14 
VST_SPEAKER_TYPE_USER_13 
VST_SPEAKER_TYPE_USER_12 
VST_SPEAKER_TYPE_USER_11 
VST_SPEAKER_TYPE_USER_10 
VST_SPEAKER_TYPE_USER_09 
VST_SPEAKER_TYPE_USER_08 
VST_SPEAKER_TYPE_USER_07 
VST_SPEAKER_TYPE_USER_06 
VST_SPEAKER_TYPE_USER_05 
VST_SPEAKER_TYPE_USER_04 
VST_SPEAKER_TYPE_USER_03 
VST_SPEAKER_TYPE_USER_02 
VST_SPEAKER_TYPE_USER_01 
_VST_SPEAKER_TYPE_PAD 

Definition at line 579 of file vst.h.

579 {
598
631
632
633 /* @private Pad to 32-bit. */
635};
@ VST_SPEAKER_TYPE_RIGHT_REAR
Rear/Surround Right.
Definition vst.h:593
@ _VST_SPEAKER_TYPE_PAD
Definition vst.h:634
@ VST_SPEAKER_TYPE_RIGHT
(Front) Right
Definition vst.h:585
@ VST_SPEAKER_TYPE_CENTER
(Front) Center
Definition vst.h:587
@ VST_SPEAKER_TYPE_LFE
LFE / Subwoofer.
Definition vst.h:589
@ VST_SPEAKER_TYPE_USER_09
Definition vst.h:622
@ VST_SPEAKER_TYPE_USER_25
Definition vst.h:606
@ VST_SPEAKER_TYPE_MONO
Mono.
Definition vst.h:581
@ VST_SPEAKER_TYPE_USER_04
Definition vst.h:627
@ VST_SPEAKER_TYPE_USER_11
Definition vst.h:620
@ VST_SPEAKER_TYPE_USER_10
Definition vst.h:621
@ VST_SPEAKER_TYPE_USER_12
Definition vst.h:619
@ VST_SPEAKER_TYPE_USER_30
Definition vst.h:601
@ VST_SPEAKER_TYPE_USER_32
Definition vst.h:599
@ VST_SPEAKER_TYPE_USER_20
Definition vst.h:611
@ VST_SPEAKER_TYPE_USER_15
Definition vst.h:616
@ VST_SPEAKER_TYPE_RIGHT_SIDE
Side Right.
Definition vst.h:597
@ VST_SPEAKER_TYPE_LEFT_SIDE
Side Left.
Definition vst.h:595
@ VST_SPEAKER_TYPE_USER_13
Definition vst.h:618
@ VST_SPEAKER_TYPE_USER_02
Definition vst.h:629
@ VST_SPEAKER_TYPE_USER_23
Definition vst.h:608
@ VST_SPEAKER_TYPE_USER_28
Definition vst.h:603
@ VST_SPEAKER_TYPE_USER_05
Definition vst.h:626
@ VST_SPEAKER_TYPE_USER_01
Definition vst.h:630
@ VST_SPEAKER_TYPE_LEFT
(Front) Left
Definition vst.h:583
@ VST_SPEAKER_TYPE_USER_07
Definition vst.h:624
@ VST_SPEAKER_TYPE_USER_27
Definition vst.h:604
@ VST_SPEAKER_TYPE_USER_18
Definition vst.h:613
@ VST_SPEAKER_TYPE_USER_29
Definition vst.h:602
@ VST_SPEAKER_TYPE_USER_21
Definition vst.h:610
@ VST_SPEAKER_TYPE_USER_06
Definition vst.h:625
@ VST_SPEAKER_TYPE_USER_26
Definition vst.h:605
@ VST_SPEAKER_TYPE_USER_19
Definition vst.h:612
@ VST_SPEAKER_TYPE_USER_31
Definition vst.h:600
@ VST_SPEAKER_TYPE_USER_24
Definition vst.h:607
@ VST_SPEAKER_TYPE_USER_22
Definition vst.h:609
@ VST_SPEAKER_TYPE_USER_17
Definition vst.h:614
@ VST_SPEAKER_TYPE_USER_08
Definition vst.h:623
@ VST_SPEAKER_TYPE_LEFT_REAR
Rear/Surround Left.
Definition vst.h:591
@ VST_SPEAKER_TYPE_USER_14
Definition vst.h:617
@ VST_SPEAKER_TYPE_USER_16
Definition vst.h:615
@ VST_SPEAKER_TYPE_USER_03
Definition vst.h:628

◆ VST_STATUS

enum VST_STATUS

Known Status Codes.

Enumerator
VST_STATUS_0 

Unknown / False We either don't know the answer or we can't handle the data/notification.

See also
VST_HOST_OPCODE
VST_EFFECT_OPCODE
VST_STATUS_FALSE 
See also
VST_STATUS_0
VST_STATUS_ERROR 
See also
VST_STATUS_0
VST_STATUS_UNKNOWN 
See also
VST_STATUS_0
VST_STATUS_1 

Yes / True We've handled the data/notification.

See also
VST_HOST_OPCODE
VST_EFFECT_OPCODE
VST_STATUS_TRUE 
See also
VST_STATUS_1
VST_STATUS_SUCCESS 
See also
VST_STATUS_1
VST_STATUS_YES 
See also
VST_STATUS_1
VST_STATUS_m1 

No We're unable to handle the data/notification.

See also
VST_HOST_OPCODE
VST_EFFECT_OPCODE
VST_STATUS_NO 
See also
VST_STATUS_m1
_VST_STATUS_PAD 

Definition at line 64 of file vst.h.

64 {
71 VST_STATUS_0 = 0,
78
85 VST_STATUS_1 = 1,
92
99 VST_STATUS_m1 = -1,
101 VST_STATUS_NO = -1,
102
103 _VST_STATUS_PAD = (-1l)
104};
@ VST_STATUS_ERROR
Definition vst.h:75
@ VST_STATUS_0
Unknown / False We either don't know the answer or we can't handle the data/notification.
Definition vst.h:71
@ VST_STATUS_YES
Definition vst.h:91
@ VST_STATUS_m1
No We're unable to handle the data/notification.
Definition vst.h:99
@ VST_STATUS_1
Yes / True We've handled the data/notification.
Definition vst.h:85
@ _VST_STATUS_PAD
Definition vst.h:103
@ VST_STATUS_SUCCESS
Definition vst.h:89
@ VST_STATUS_FALSE
Definition vst.h:73
@ VST_STATUS_UNKNOWN
Definition vst.h:77
@ VST_STATUS_NO
Definition vst.h:101

◆ VST_STREAM_FLAG

Enumerator
VST_STREAM_FLAG_1ls0 

Ignored?

VST_STREAM_FLAG_1ls1 

Stream is in Stereo.

Can't be used with VST_STREAM_FLAG_USE_TYPE.

VST_STREAM_FLAG_STEREO 
VST_STREAM_FLAG_1ls2 

Stream is defined by VST_SPEAKER_ARRANGEMENT_TYPE.

Can't be used with VST_STREAM_FLAG_STEREO.

VST_STREAM_FLAG_USE_TYPE 

Definition at line 758 of file vst.h.

758 {
761 VST_STREAM_FLAG_1ls0 = 1 << 0,
762
767 VST_STREAM_FLAG_1ls1 = 1 << 1,
768 VST_STREAM_FLAG_STEREO = 1 << 1,
769
774 VST_STREAM_FLAG_1ls2 = 1 << 2,
776};
@ VST_STREAM_FLAG_STEREO
Definition vst.h:768
@ VST_STREAM_FLAG_1ls2
Stream is defined by VST_SPEAKER_ARRANGEMENT_TYPE.
Definition vst.h:774
@ VST_STREAM_FLAG_1ls0
Ignored?
Definition vst.h:761
@ VST_STREAM_FLAG_1ls1
Stream is in Stereo.
Definition vst.h:767
@ VST_STREAM_FLAG_USE_TYPE
Definition vst.h:775

◆ VST_VERSION

Valid VST 1.x and 2.x versions The format is either a single digit or four digits in Base10 format.

// Converts a Base10 VST version to a uint8_t[4] representation of the version.
uint32_t expand_vst_version(uint32_t v) {
if (v < 10) { //
return v << 24;
}
uint8_t major = v / 1000;
uint8_t minor = (v / 100) % 10;
uint8_t revision = (v / 10) % 10;
uint8_t patch = v % 10;
return (major << 24) | (minor << 16) | (revision << 8) | patch;
}
Enumerator
VST_VERSION_1 

Private SDK Version 1.0.

Many types likely won't quite match up with what we expect.

VST_VERSION_1_0_0_0 

SDK Version 1.0.

VST_VERSION_1_1_0_0 

SDK Version 1.1.

VST_VERSION_2 

Private SDK Version 2.0.

Many types likely won't quite match up with what we expect.

VST_VERSION_2_0_0_0 

SDK Version 2.0.

VST_VERSION_2_1_0_0 

SDK Version 2.1.

VST_VERSION_2_2_0_0 

SDK Version 2.2.

VST_VERSION_2_3_0_0 

SDK Version 2.3.

VST_VERSION_2_4_0_0 

SDK Version 2.4.

_VST_VERSION_PAD 

Definition at line 140 of file vst.h.

140 {
145 VST_VERSION_1 = 0,
147 VST_VERSION_1_0_0_0 = 1000,
149 VST_VERSION_1_1_0_0 = 1100,
154 VST_VERSION_2 = 2,
156 VST_VERSION_2_0_0_0 = 2000,
158 VST_VERSION_2_1_0_0 = 2100,
160 VST_VERSION_2_2_0_0 = 2200,
162 VST_VERSION_2_3_0_0 = 2300,
164 VST_VERSION_2_4_0_0 = 2400,
165
166 /* @private Pad to 32-bit. */
167 _VST_VERSION_PAD = (-1l)
168};
@ VST_VERSION_1_1_0_0
SDK Version 1.1.
Definition vst.h:149
@ VST_VERSION_2_1_0_0
SDK Version 2.1.
Definition vst.h:158
@ VST_VERSION_2_0_0_0
SDK Version 2.0.
Definition vst.h:156
@ _VST_VERSION_PAD
Definition vst.h:167
@ VST_VERSION_2
Private SDK Version 2.0.
Definition vst.h:154
@ VST_VERSION_2_2_0_0
SDK Version 2.2.
Definition vst.h:160
@ VST_VERSION_2_3_0_0
SDK Version 2.3.
Definition vst.h:162
@ VST_VERSION_2_4_0_0
SDK Version 2.4.
Definition vst.h:164
@ VST_VERSION_1_0_0_0
SDK Version 1.0.
Definition vst.h:147
@ VST_VERSION_1
Private SDK Version 1.0.
Definition vst.h:145

◆ VST_VKEY

enum VST_VKEY

Virtual Key codes.

Steinberg seems to like reinventing the wheel. What was the problem with just using the platform specific key codes?

Enumerator
VST_VKEY_00 
VST_VKEY_01 
VST_VKEY_BACKSPACE 
VST_VKEY_02 
VST_VKEY_TAB 
VST_VKEY_03 
VST_VKEY_04 
VST_VKEY_RETURN 
VST_VKEY_05 
VST_VKEY_PAUSE 
VST_VKEY_06 
VST_VKEY_ESCAPE 
VST_VKEY_07 
VST_VKEY_SPACE 
VST_VKEY_08 
VST_VKEY_09 
VST_VKEY_END 
VST_VKEY_10 
VST_VKEY_HOME 
VST_VKEY_11 
VST_VKEY_ARROW_LEFT 
VST_VKEY_12 
VST_VKEY_ARROW_UP 
VST_VKEY_13 
VST_VKEY_ARROW_RIGHT 
VST_VKEY_14 
VST_VKEY_ARROW_DOWN 
VST_VKEY_15 
VST_VKEY_PAGE_UP 
VST_VKEY_16 
VST_VKEY_PAGE_DOWN 
VST_VKEY_17 
VST_VKEY_18 
VST_VKEY_PRINT 
VST_VKEY_19 
VST_VKEY_NUMPAD_ENTER 
VST_VKEY_20 
VST_VKEY_21 
VST_VKEY_INSERT 
VST_VKEY_22 
VST_VKEY_DELETE 
VST_VKEY_23 
VST_VKEY_24 
VST_VKEY_NUMPAD_0 
VST_VKEY_25 
VST_VKEY_NUMPAD_1 
VST_VKEY_26 
VST_VKEY_NUMPAD_2 
VST_VKEY_27 
VST_VKEY_NUMPAD_3 
VST_VKEY_28 
VST_VKEY_NUMPAD_4 
VST_VKEY_29 
VST_VKEY_NUMPAD_5 
VST_VKEY_30 
VST_VKEY_NUMPAD_6 
VST_VKEY_31 
VST_VKEY_NUMPAD_7 
VST_VKEY_32 
VST_VKEY_NUMPAD_8 
VST_VKEY_33 
VST_VKEY_NUMPAD_9 
VST_VKEY_34 
VST_VKEY_NUMPAD_MULTIPLY 
VST_VKEY_35 
VST_VKEY_NUMPAD_ADD 
VST_VKEY_36 
VST_VKEY_NUMPAD_COMMA_OR_DOT 
VST_VKEY_37 
VST_VKEY_NUMPAD_SUBTRACT 
VST_VKEY_38 
VST_VKEY_39 
VST_VKEY_NUMPAD_DIVIDE 
VST_VKEY_40 
VST_VKEY_F1 
VST_VKEY_41 
VST_VKEY_F2 
VST_VKEY_42 
VST_VKEY_F3 
VST_VKEY_43 
VST_VKEY_F4 
VST_VKEY_44 
VST_VKEY_F5 
VST_VKEY_45 
VST_VKEY_F6 
VST_VKEY_46 
VST_VKEY_F7 
VST_VKEY_47 
VST_VKEY_F8 
VST_VKEY_48 
VST_VKEY_F9 
VST_VKEY_49 
VST_VKEY_F10 
VST_VKEY_50 
VST_VKEY_F11 
VST_VKEY_51 
VST_VKEY_F12 
VST_VKEY_52 
VST_VKEY_NUMLOCK 
VST_VKEY_53 
VST_VKEY_SCROLLLOCK 
VST_VKEY_54 
VST_VKEY_SHIFT 
VST_VKEY_55 
VST_VKEY_CONTROL 
VST_VKEY_56 
VST_VKEY_ALT 
VST_VKEY_57 
VST_VKEY_58 
VST_VKEY_59 
VST_VKEY_60 
VST_VKEY_61 
VST_VKEY_62 
VST_VKEY_63 
VST_VKEY_64 
VST_VKEY_65 
VST_VKEY_66 
VST_VKEY_67 
VST_VKEY_68 
VST_VKEY_69 

Definition at line 184 of file vst.h.

184 {
185 VST_VKEY_00 = 0,
186
187 VST_VKEY_01 = 1,
189
190 VST_VKEY_02 = 2,
191 VST_VKEY_TAB = 2,
192
193 VST_VKEY_03 = 3,
194
195 VST_VKEY_04 = 4,
196 VST_VKEY_RETURN = 4,
197
198 VST_VKEY_05 = 5,
199 VST_VKEY_PAUSE = 5,
200
201 VST_VKEY_06 = 6,
202 VST_VKEY_ESCAPE = 6,
203
204 VST_VKEY_07 = 7,
205 VST_VKEY_SPACE = 7,
206
207 VST_VKEY_08 = 8,
208
209 VST_VKEY_09 = 9,
210 VST_VKEY_END = 9,
211
212 VST_VKEY_10 = 10,
213 VST_VKEY_HOME = 10,
214
215 VST_VKEY_11 = 11,
217
218 VST_VKEY_12 = 12,
220
221 VST_VKEY_13 = 13,
223
224 VST_VKEY_14 = 14,
226
227 VST_VKEY_15 = 15,
228 VST_VKEY_PAGE_UP = 15,
229
230 VST_VKEY_16 = 16,
232
233 VST_VKEY_17 = 17,
234
235 VST_VKEY_18 = 18,
236 VST_VKEY_PRINT = 18,
237
238 VST_VKEY_19 = 19,
240
241 VST_VKEY_20 = 20,
242
243 VST_VKEY_21 = 21,
244 VST_VKEY_INSERT = 21,
245
246 VST_VKEY_22 = 22,
247 VST_VKEY_DELETE = 22,
248
249 VST_VKEY_23 = 23,
250
251 VST_VKEY_24 = 24,
253
254 VST_VKEY_25 = 25,
256
257 VST_VKEY_26 = 26,
259
260 VST_VKEY_27 = 27,
262
263 VST_VKEY_28 = 28,
265
266 VST_VKEY_29 = 29,
268
269 VST_VKEY_30 = 30,
271
272 VST_VKEY_31 = 31,
274
275 VST_VKEY_32 = 32,
277
278 VST_VKEY_33 = 33,
280
281 VST_VKEY_34 = 34,
283
284 VST_VKEY_35 = 35,
286
287 VST_VKEY_36 = 36,
289
290 VST_VKEY_37 = 37,
292
293 VST_VKEY_38 = 38,
294
295 VST_VKEY_39 = 39,
297
298 VST_VKEY_40 = 40,
299 VST_VKEY_F1 = 40,
300
301 VST_VKEY_41 = 41,
302 VST_VKEY_F2 = 41,
303
304 VST_VKEY_42 = 42,
305 VST_VKEY_F3 = 42,
306
307 VST_VKEY_43 = 43,
308 VST_VKEY_F4 = 43,
309
310 VST_VKEY_44 = 44,
311 VST_VKEY_F5 = 44,
312
313 VST_VKEY_45 = 45,
314 VST_VKEY_F6 = 45,
315
316 VST_VKEY_46 = 46,
317 VST_VKEY_F7 = 46,
318
319 VST_VKEY_47 = 47,
320 VST_VKEY_F8 = 47,
321
322 VST_VKEY_48 = 48,
323 VST_VKEY_F9 = 48,
324
325 VST_VKEY_49 = 49,
326 VST_VKEY_F10 = 49,
327
328 VST_VKEY_50 = 50,
329 VST_VKEY_F11 = 50,
330
331 VST_VKEY_51 = 51,
332 VST_VKEY_F12 = 51,
333
334 VST_VKEY_52 = 52,
335 VST_VKEY_NUMLOCK = 52,
336
337 VST_VKEY_53 = 53,
339
340 VST_VKEY_54 = 54,
341 VST_VKEY_SHIFT = 54,
342
343 VST_VKEY_55 = 55,
344 VST_VKEY_CONTROL = 55,
345
346 VST_VKEY_56 = 56,
347 VST_VKEY_ALT = 56,
348
349 VST_VKEY_57 = 57,
350 VST_VKEY_58 = 58,
351 VST_VKEY_59 = 59,
352 VST_VKEY_60 = 60,
353 VST_VKEY_61 = 61,
354 VST_VKEY_62 = 62,
355 VST_VKEY_63 = 63,
356 VST_VKEY_64 = 64,
357 VST_VKEY_65 = 65,
358 VST_VKEY_66 = 66,
359 VST_VKEY_67 = 67,
360 VST_VKEY_68 = 68,
361 VST_VKEY_69 = 69
362};
@ VST_VKEY_F5
Definition vst.h:311
@ VST_VKEY_47
Definition vst.h:319
@ VST_VKEY_ARROW_UP
Definition vst.h:219
@ VST_VKEY_26
Definition vst.h:257
@ VST_VKEY_07
Definition vst.h:204
@ VST_VKEY_NUMPAD_4
Definition vst.h:264
@ VST_VKEY_F1
Definition vst.h:299
@ VST_VKEY_11
Definition vst.h:215
@ VST_VKEY_18
Definition vst.h:235
@ VST_VKEY_27
Definition vst.h:260
@ VST_VKEY_63
Definition vst.h:355
@ VST_VKEY_NUMPAD_MULTIPLY
Definition vst.h:282
@ VST_VKEY_02
Definition vst.h:190
@ VST_VKEY_36
Definition vst.h:287
@ VST_VKEY_62
Definition vst.h:354
@ VST_VKEY_NUMPAD_COMMA_OR_DOT
Definition vst.h:288
@ VST_VKEY_F8
Definition vst.h:320
@ VST_VKEY_12
Definition vst.h:218
@ VST_VKEY_ESCAPE
Definition vst.h:202
@ VST_VKEY_32
Definition vst.h:275
@ VST_VKEY_03
Definition vst.h:193
@ VST_VKEY_06
Definition vst.h:201
@ VST_VKEY_41
Definition vst.h:301
@ VST_VKEY_PAUSE
Definition vst.h:199
@ VST_VKEY_21
Definition vst.h:243
@ VST_VKEY_NUMPAD_1
Definition vst.h:255
@ VST_VKEY_69
Definition vst.h:361
@ VST_VKEY_01
Definition vst.h:187
@ VST_VKEY_56
Definition vst.h:346
@ VST_VKEY_CONTROL
Definition vst.h:344
@ VST_VKEY_F6
Definition vst.h:314
@ VST_VKEY_53
Definition vst.h:337
@ VST_VKEY_NUMPAD_ADD
Definition vst.h:285
@ VST_VKEY_F10
Definition vst.h:326
@ VST_VKEY_16
Definition vst.h:230
@ VST_VKEY_F11
Definition vst.h:329
@ VST_VKEY_66
Definition vst.h:358
@ VST_VKEY_10
Definition vst.h:212
@ VST_VKEY_F3
Definition vst.h:305
@ VST_VKEY_51
Definition vst.h:331
@ VST_VKEY_NUMPAD_0
Definition vst.h:252
@ VST_VKEY_17
Definition vst.h:233
@ VST_VKEY_ALT
Definition vst.h:347
@ VST_VKEY_61
Definition vst.h:353
@ VST_VKEY_28
Definition vst.h:263
@ VST_VKEY_NUMPAD_3
Definition vst.h:261
@ VST_VKEY_60
Definition vst.h:352
@ VST_VKEY_33
Definition vst.h:278
@ VST_VKEY_39
Definition vst.h:295
@ VST_VKEY_58
Definition vst.h:350
@ VST_VKEY_14
Definition vst.h:224
@ VST_VKEY_57
Definition vst.h:349
@ VST_VKEY_F2
Definition vst.h:302
@ VST_VKEY_00
Definition vst.h:185
@ VST_VKEY_40
Definition vst.h:298
@ VST_VKEY_SPACE
Definition vst.h:205
@ VST_VKEY_INSERT
Definition vst.h:244
@ VST_VKEY_29
Definition vst.h:266
@ VST_VKEY_PAGE_UP
Definition vst.h:228
@ VST_VKEY_49
Definition vst.h:325
@ VST_VKEY_31
Definition vst.h:272
@ VST_VKEY_54
Definition vst.h:340
@ VST_VKEY_59
Definition vst.h:351
@ VST_VKEY_50
Definition vst.h:328
@ VST_VKEY_30
Definition vst.h:269
@ VST_VKEY_19
Definition vst.h:238
@ VST_VKEY_67
Definition vst.h:359
@ VST_VKEY_RETURN
Definition vst.h:196
@ VST_VKEY_52
Definition vst.h:334
@ VST_VKEY_NUMPAD_SUBTRACT
Definition vst.h:291
@ VST_VKEY_F7
Definition vst.h:317
@ VST_VKEY_68
Definition vst.h:360
@ VST_VKEY_15
Definition vst.h:227
@ VST_VKEY_13
Definition vst.h:221
@ VST_VKEY_NUMPAD_9
Definition vst.h:279
@ VST_VKEY_24
Definition vst.h:251
@ VST_VKEY_END
Definition vst.h:210
@ VST_VKEY_PAGE_DOWN
Definition vst.h:231
@ VST_VKEY_23
Definition vst.h:249
@ VST_VKEY_48
Definition vst.h:322
@ VST_VKEY_NUMPAD_7
Definition vst.h:273
@ VST_VKEY_09
Definition vst.h:209
@ VST_VKEY_SHIFT
Definition vst.h:341
@ VST_VKEY_BACKSPACE
Definition vst.h:188
@ VST_VKEY_F4
Definition vst.h:308
@ VST_VKEY_20
Definition vst.h:241
@ VST_VKEY_NUMPAD_DIVIDE
Definition vst.h:296
@ VST_VKEY_NUMPAD_8
Definition vst.h:276
@ VST_VKEY_HOME
Definition vst.h:213
@ VST_VKEY_TAB
Definition vst.h:191
@ VST_VKEY_04
Definition vst.h:195
@ VST_VKEY_ARROW_DOWN
Definition vst.h:225
@ VST_VKEY_DELETE
Definition vst.h:247
@ VST_VKEY_05
Definition vst.h:198
@ VST_VKEY_35
Definition vst.h:284
@ VST_VKEY_44
Definition vst.h:310
@ VST_VKEY_46
Definition vst.h:316
@ VST_VKEY_ARROW_RIGHT
Definition vst.h:222
@ VST_VKEY_38
Definition vst.h:293
@ VST_VKEY_45
Definition vst.h:313
@ VST_VKEY_F9
Definition vst.h:323
@ VST_VKEY_NUMLOCK
Definition vst.h:335
@ VST_VKEY_SCROLLLOCK
Definition vst.h:338
@ VST_VKEY_ARROW_LEFT
Definition vst.h:216
@ VST_VKEY_22
Definition vst.h:246
@ VST_VKEY_34
Definition vst.h:281
@ VST_VKEY_08
Definition vst.h:207
@ VST_VKEY_42
Definition vst.h:304
@ VST_VKEY_NUMPAD_6
Definition vst.h:270
@ VST_VKEY_43
Definition vst.h:307
@ VST_VKEY_NUMPAD_2
Definition vst.h:258
@ VST_VKEY_37
Definition vst.h:290
@ VST_VKEY_65
Definition vst.h:357
@ VST_VKEY_F12
Definition vst.h:332
@ VST_VKEY_NUMPAD_5
Definition vst.h:267
@ VST_VKEY_25
Definition vst.h:254
@ VST_VKEY_55
Definition vst.h:343
@ VST_VKEY_64
Definition vst.h:356
@ VST_VKEY_PRINT
Definition vst.h:236
@ VST_VKEY_NUMPAD_ENTER
Definition vst.h:239

◆ VST_VKEY_MODIFIER

Enumerator
VST_VKEY_MODIFIER_1ls0 

One of the shift keys is held down.

VST_VKEY_MODIFIER_SHIFT 
See also
VST_VKEY_MODIFIER_1ls0
VST_VKEY_MODIFIER_1ls1 

One of the alt keys is held down.

VST_VKEY_MODIFIER_ALT 
See also
VST_VKEY_MODIFIER_1ls1
VST_VKEY_MODIFIER_1ls2 

Control on MacOS, System (Windows Logo) on Windows.

Very funny Steinberg.

VST_VKEY_MODIFIER_SYSTEM 
See also
VST_VKEY_MODIFIER_1ls2
VST_VKEY_MODIFIER_1ls3 

Control on PC, System (Apple Logo) on Mac OS.

I have questions. They're all "Why?!".

VST_VKEY_MODIFIER_CONTROL 
See also
VST_VKEY_MODIFIER_1ls3

Definition at line 364 of file vst.h.

364 {
366 VST_VKEY_MODIFIER_1ls0 = 1 << 0,
369
371 VST_VKEY_MODIFIER_1ls1 = 1 << 1,
373 VST_VKEY_MODIFIER_ALT = 1 << 1,
374
379 VST_VKEY_MODIFIER_1ls2 = 1 << 2,
382
387 VST_VKEY_MODIFIER_1ls3 = 1 << 3,
390};
@ VST_VKEY_MODIFIER_1ls1
One of the alt keys is held down.
Definition vst.h:371
@ VST_VKEY_MODIFIER_1ls0
One of the shift keys is held down.
Definition vst.h:366
@ VST_VKEY_MODIFIER_SHIFT
Definition vst.h:368
@ VST_VKEY_MODIFIER_SYSTEM
Definition vst.h:381
@ VST_VKEY_MODIFIER_ALT
Definition vst.h:373
@ VST_VKEY_MODIFIER_CONTROL
Definition vst.h:389
@ VST_VKEY_MODIFIER_1ls2
Control on MacOS, System (Windows Logo) on Windows.
Definition vst.h:379
@ VST_VKEY_MODIFIER_1ls3
Control on PC, System (Apple Logo) on Mac OS.
Definition vst.h:387