|
|
|
@@ -600,10 +600,12 @@ enum VST_HOST_OPCODE {
|
|
|
|
|
VST_HOST_OPCODE_0D = 0x0D,
|
|
|
|
|
|
|
|
|
|
/** Notify the host that numInputs/numOutputs/delay/numParams has changed.
|
|
|
|
|
* Only supported if the host replies @ref VST_STATUS_TRUE to @ref VST_HOST_OPCODE_SUPPORTS query for @ref vst_host_supports.acceptIOChanges.
|
|
|
|
|
* Only supported if the host replies @ref VST_STATUS_TRUE to @ref VST_HOST_OPCODE_SUPPORTS query for
|
|
|
|
|
* @ref vst_host_supports_t.acceptIOChanges.
|
|
|
|
|
*
|
|
|
|
|
* @note In VST 2.3 and earlier calling this outside of @ref VST_EFFECT_OPCODE_IDLE may result in a crash.
|
|
|
|
|
* @note In VST 2.3 and later this may only be called while between @ref VST_EFFECT_OPCODE_PROCESS_END and @ref VST_EFFECT_OPCODE_BEGIN.
|
|
|
|
|
* @note In VST 2.3 and later this may only be called while between @ref VST_EFFECT_OPCODE_PROCESS_END and
|
|
|
|
|
* @ref VST_EFFECT_OPCODE_PROCESS_BEGIN.
|
|
|
|
|
*
|
|
|
|
|
* @return @ref VST_STATUS_TRUE if supported and handled otherwise @ref VST_STATUS_FALSE.
|
|
|
|
|
*/
|
|
|
|
@@ -649,7 +651,7 @@ enum VST_HOST_OPCODE {
|
|
|
|
|
|
|
|
|
|
/** Retrieve the vendor name into the ptr buffer.
|
|
|
|
|
*
|
|
|
|
|
* @param p_ptr `char[VST_BUFFER_SIZE_VENDOR]` Zero terminated string.
|
|
|
|
|
* @param p_ptr A zero terminated char buffer of size @ref VST_BUFFER_SIZE_VENDOR_NAME.
|
|
|
|
|
*/
|
|
|
|
|
VST_HOST_OPCODE_21 = 0x21,
|
|
|
|
|
/** @sa VST_HOST_OPCODE_21 */
|
|
|
|
@@ -657,7 +659,7 @@ enum VST_HOST_OPCODE {
|
|
|
|
|
|
|
|
|
|
/** Retrieve the product name into the ptr buffer.
|
|
|
|
|
*
|
|
|
|
|
* @param p_ptr `char[VST_BUFFER_SIZE_PRODUCT]` Zero terminated string.
|
|
|
|
|
* @param p_ptr A zero terminated char buffer of size @ref VST_BUFFER_SIZE_PRODUCT_NAME.
|
|
|
|
|
*/
|
|
|
|
|
VST_HOST_OPCODE_22 = 0x22,
|
|
|
|
|
/** @sa VST_HOST_OPCODE_22 */
|
|
|
|
@@ -683,7 +685,7 @@ enum VST_HOST_OPCODE {
|
|
|
|
|
/** Check if the host supports a certain feature.
|
|
|
|
|
*
|
|
|
|
|
* @param p_ptr `char[...]` Zero terminated string for which feature we want to support.
|
|
|
|
|
* @return VST_STATUS_TRUE if the feature is supported otherwise VST_STATUS_FALSE.
|
|
|
|
|
* @return @ref VST_STATUS_TRUE if the feature is supported otherwise @ref VST_STATUS_FALSE.
|
|
|
|
|
*/
|
|
|
|
|
VST_HOST_OPCODE_26 = 0x26,
|
|
|
|
|
/** @sa VST_HOST_OPCODE_26 */
|
|
|
|
@@ -748,12 +750,12 @@ struct vst_host_supports_t {
|
|
|
|
|
const char* acceptIOChanges;
|
|
|
|
|
|
|
|
|
|
/** Is the host using process begin/end instead of idle?
|
|
|
|
|
* The host may opt to emit @ref VST_HOST_OPCODE_IDLE or @ref VST_HOST_OPCODE_PROCESS_BEGIN and
|
|
|
|
|
* @ref VST_HOST_OPCODE_PROCESS_END when running in VST 2.3 compatibility mode.
|
|
|
|
|
* The host may opt to emit @ref VST_EFFECT_OPCODE_IDLE or @ref VST_EFFECT_OPCODE_PROCESS_BEGIN and
|
|
|
|
|
* @ref VST_EFFECT_OPCODE_PROCESS_END when running in VST 2.3 compatibility mode.
|
|
|
|
|
*
|
|
|
|
|
* @sa VST_HOST_OPCODE_PROCESS_BEGIN
|
|
|
|
|
* @sa VST_HOST_OPCODE_PROCESS_END
|
|
|
|
|
* @sa VST_HOST_OPCODE_IDLE
|
|
|
|
|
* @sa VST_EFFECT_OPCODE_PROCESS_BEGIN
|
|
|
|
|
* @sa VST_EFFECT_OPCODE_PROCESS_END
|
|
|
|
|
* @sa VST_EFFECT_OPCODE_IDLE
|
|
|
|
|
* @deprecated (VST 2.4) This behavior is the default in VST 2.4 and later.
|
|
|
|
|
* @return @ref VST_STATUS_TRUE if it supports it.
|
|
|
|
|
*/
|
|
|
|
@@ -1076,7 +1078,7 @@ enum VST_EFFECT_FLAG {
|
|
|
|
|
/** Effect is an Instrument/Generator
|
|
|
|
|
*
|
|
|
|
|
* This must be set in addition to @ref VST_EFFECT_CATEGORY_INSTRUMENT otherwise instruments don't work right.
|
|
|
|
|
* @important (VST 2.x) Flag is new to VST 2.x and later.
|
|
|
|
|
* @note (VST 2.x) Flag is new to VST 2.x and later.
|
|
|
|
|
*/
|
|
|
|
|
VST_EFFECT_FLAG_1ls8 = 1 << 8,
|
|
|
|
|
/** @sa VST_EFFECT_FLAG_1ls8 */
|
|
|
|
@@ -1086,7 +1088,7 @@ enum VST_EFFECT_FLAG {
|
|
|
|
|
*
|
|
|
|
|
* Not to be confused with choosing to tell the host there is no tail.
|
|
|
|
|
* @sa VST_EFFECT_OPCODE_GET_TAIL_SAMPLES
|
|
|
|
|
* @important (VST 2.x) Flag is new to VST 2.x and later.
|
|
|
|
|
* @note (VST 2.x) Flag is new to VST 2.x and later.
|
|
|
|
|
*/
|
|
|
|
|
VST_EFFECT_FLAG_1ls9 = 1 << 9,
|
|
|
|
|
/** @sa VST_EFFECT_FLAG_1ls9 */
|
|
|
|
@@ -1098,7 +1100,7 @@ enum VST_EFFECT_FLAG {
|
|
|
|
|
/** Effect supports process_double.
|
|
|
|
|
* The host can freely choose between process_float and process_double as required.
|
|
|
|
|
*
|
|
|
|
|
* @important (VST 2.4) Available in VST 2.4 and later only.
|
|
|
|
|
* @note (VST 2.4) Available in VST 2.4 and later only.
|
|
|
|
|
* @sa vst_effect_t.process_double
|
|
|
|
|
* @sa vst_effect_process_double_t
|
|
|
|
|
*/
|
|
|
|
@@ -1297,7 +1299,9 @@ enum VST_EFFECT_OPCODE {
|
|
|
|
|
* Ocasionally called simultaneously as WM_DRAW on windows.
|
|
|
|
|
*
|
|
|
|
|
* @note Present in some VST 2.1 or earlier plugins.
|
|
|
|
|
* @important Appears to be Mac OS exclusive.
|
|
|
|
|
*
|
|
|
|
|
* @note Appears to be Mac OS exclusive.
|
|
|
|
|
*
|
|
|
|
|
* @deprecated (VST 2.4+) Likely deprecated in VST 2.4 and later.
|
|
|
|
|
*/
|
|
|
|
|
VST_EFFECT_OPCODE_10 = 0x10,
|
|
|
|
@@ -1311,7 +1315,9 @@ enum VST_EFFECT_OPCODE {
|
|
|
|
|
* Called at the same time mouse events happen.
|
|
|
|
|
*
|
|
|
|
|
* @note Present in some VST 2.1 or earlier plugins.
|
|
|
|
|
* @important Appears to be Mac OS exclusive.
|
|
|
|
|
*
|
|
|
|
|
* @note Appears to be Mac OS exclusive.
|
|
|
|
|
*
|
|
|
|
|
* @deprecated (VST 2.4+) Likely deprecated in VST 2.4 and later.
|
|
|
|
|
*/
|
|
|
|
|
VST_EFFECT_OPCODE_11 = 0x11,
|
|
|
|
@@ -1325,7 +1331,9 @@ enum VST_EFFECT_OPCODE {
|
|
|
|
|
* Called at the same time keyboard events happen.
|
|
|
|
|
*
|
|
|
|
|
* @note Present in some VST 2.1 or earlier plugins.
|
|
|
|
|
* @important Appears to be Mac OS exclusive.
|
|
|
|
|
*
|
|
|
|
|
* @note Appears to be Mac OS exclusive.
|
|
|
|
|
*
|
|
|
|
|
* @deprecated (VST 2.4+) Likely deprecated in VST 2.4 and later.
|
|
|
|
|
*/
|
|
|
|
|
VST_EFFECT_OPCODE_12 = 0x12,
|
|
|
|
@@ -1347,7 +1355,7 @@ enum VST_EFFECT_OPCODE {
|
|
|
|
|
* Sometimes called when the editor window goes back into focus.
|
|
|
|
|
*
|
|
|
|
|
* @note Present in some VST 2.1 or earlier plugins.
|
|
|
|
|
* @important Appears to be Mac OS exclusive.
|
|
|
|
|
* @note Appears to be Mac OS exclusive.
|
|
|
|
|
* @deprecated (VST 2.4+) Likely deprecated in VST 2.4 and later.
|
|
|
|
|
*/
|
|
|
|
|
VST_EFFECT_OPCODE_14 = 0x14,
|
|
|
|
@@ -1357,7 +1365,7 @@ enum VST_EFFECT_OPCODE {
|
|
|
|
|
* Sometimes called when the editor window goes out of focus.
|
|
|
|
|
*
|
|
|
|
|
* @note Present in some VST 2.1 or earlier plugins.
|
|
|
|
|
* @important Appears to be Mac OS exclusive.
|
|
|
|
|
* @note Appears to be Mac OS exclusive.
|
|
|
|
|
* @deprecated (VST 2.4+) Likely deprecated in VST 2.4 and later.
|
|
|
|
|
*/
|
|
|
|
|
VST_EFFECT_OPCODE_15 = 0x15,
|
|
|
|
@@ -1407,13 +1415,13 @@ enum VST_EFFECT_OPCODE {
|
|
|
|
|
/**
|
|
|
|
|
*
|
|
|
|
|
* Appears to be related to midi and audio events.
|
|
|
|
|
* @important (VST 2.0+) Available from VST 2.0 onwards.
|
|
|
|
|
* @note (VST 2.0+) Available from VST 2.0 onwards.
|
|
|
|
|
*/
|
|
|
|
|
VST_EFFECT_OPCODE_19 = 0x19,
|
|
|
|
|
|
|
|
|
|
/** Can the parameter be automated?
|
|
|
|
|
*
|
|
|
|
|
* @important (VST 2.0+) Available from VST 2.0 onwards.
|
|
|
|
|
* @note (VST 2.0+) Available from VST 2.0 onwards.
|
|
|
|
|
* @param p_int1 Index of the parameter.
|
|
|
|
|
* @return 1 if the parameter can be automated, otherwise 0.
|
|
|
|
|
*/
|
|
|
|
@@ -1427,7 +1435,7 @@ enum VST_EFFECT_OPCODE {
|
|
|
|
|
|
|
|
|
|
/** Set Parameter value from string representation.
|
|
|
|
|
*
|
|
|
|
|
* @important (VST 2.0+) Available from VST 2.0 onwards.
|
|
|
|
|
* @note (VST 2.0+) Available from VST 2.0 onwards.
|
|
|
|
|
* @param p_int1 Index of the parameter.
|
|
|
|
|
* @param p_ptr `const char*` Zero terminated string representation of the value to set.
|
|
|
|
|
* @return 1 if it worked, otherwise 0.
|
|
|
|
@@ -1441,13 +1449,13 @@ enum VST_EFFECT_OPCODE {
|
|
|
|
|
/**
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
* @important (VST 2.0+) Available from VST 2.0 onwards.
|
|
|
|
|
* @note (VST 2.0+) Available from VST 2.0 onwards.
|
|
|
|
|
*/
|
|
|
|
|
VST_EFFECT_OPCODE_1C = 0x1C,
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
*
|
|
|
|
|
* @important (VST 2.0+) Available from VST 2.0 onwards.
|
|
|
|
|
* @note (VST 2.0+) Available from VST 2.0 onwards.
|
|
|
|
|
* @sa VST_EFFECT_OPCODE_05
|
|
|
|
|
*/
|
|
|
|
|
VST_EFFECT_OPCODE_1D = 0x1D,
|
|
|
|
@@ -1455,27 +1463,27 @@ enum VST_EFFECT_OPCODE {
|
|
|
|
|
/**
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
* @important (VST 2.0+) Available from VST 2.0 onwards.
|
|
|
|
|
* @note (VST 2.0+) Available from VST 2.0 onwards.
|
|
|
|
|
*/
|
|
|
|
|
VST_EFFECT_OPCODE_1E = 0x1E,
|
|
|
|
|
|
|
|
|
|
/** Input connected.
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
* @important (VST 2.0+) Available from VST 2.0 onwards.
|
|
|
|
|
* @note (VST 2.0+) Available from VST 2.0 onwards.
|
|
|
|
|
*/
|
|
|
|
|
VST_EFFECT_OPCODE_1F = 0x1F,
|
|
|
|
|
|
|
|
|
|
/** Input disconnected.
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
* @important (VST 2.0+) Available from VST 2.0 onwards.
|
|
|
|
|
* @note (VST 2.0+) Available from VST 2.0 onwards.
|
|
|
|
|
*/
|
|
|
|
|
VST_EFFECT_OPCODE_20 = 0x20,
|
|
|
|
|
|
|
|
|
|
/** Retrieve properties for the given input index.
|
|
|
|
|
*
|
|
|
|
|
* @important (VST 2.0+) Available from VST 2.0 onwards.
|
|
|
|
|
* @note (VST 2.0+) Available from VST 2.0 onwards.
|
|
|
|
|
* @param p_int1 Index of the input to get the properties for.
|
|
|
|
|
* @param p_ptr Pointer to @ref vst_stream_properties_t for the selected input provided by the host.
|
|
|
|
|
* @return @ref VST_STATUS_TRUE if p_ptr is updated, @ref VST_STATUS_FALSE otherwise.
|
|
|
|
@@ -1486,7 +1494,7 @@ enum VST_EFFECT_OPCODE {
|
|
|
|
|
|
|
|
|
|
/** Retrieve properties for the given output index.
|
|
|
|
|
*
|
|
|
|
|
* @important (VST 2.0+) Available from VST 2.0 onwards.
|
|
|
|
|
* @note (VST 2.0+) Available from VST 2.0 onwards.
|
|
|
|
|
* @param p_int1 Index of the output to get the properties for.
|
|
|
|
|
* @param p_ptr Pointer to @ref vst_stream_properties_t for the selected output provided by the host.
|
|
|
|
|
* @return @ref VST_STATUS_TRUE if p_ptr is updated, @ref VST_STATUS_FALSE otherwise.
|
|
|
|
@@ -1497,8 +1505,8 @@ enum VST_EFFECT_OPCODE {
|
|
|
|
|
|
|
|
|
|
/** Retrieve category of this effect.
|
|
|
|
|
*
|
|
|
|
|
* @important (VST 2.0+) Available from VST 2.0 onwards.
|
|
|
|
|
* @return The category that this effect is in, see @ref VST_CATEGORY.
|
|
|
|
|
* @note (VST 2.0+) Available from VST 2.0 onwards.
|
|
|
|
|
* @return The category that this effect is in, see @ref VST_EFFECT_CATEGORY.
|
|
|
|
|
*/
|
|
|
|
|
VST_EFFECT_OPCODE_23 = 0x23,
|
|
|
|
|
/** @sa VST_EFFECT_OPCODE_23 */
|
|
|
|
@@ -1509,48 +1517,48 @@ enum VST_EFFECT_OPCODE {
|
|
|
|
|
/**
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
* @important (VST 2.0+) Available from VST 2.0 onwards.
|
|
|
|
|
* @note (VST 2.0+) Available from VST 2.0 onwards.
|
|
|
|
|
*/
|
|
|
|
|
VST_EFFECT_OPCODE_24 = 0x24,
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
* @important (VST 2.0+) Available from VST 2.0 onwards.
|
|
|
|
|
* @note (VST 2.0+) Available from VST 2.0 onwards.
|
|
|
|
|
*/
|
|
|
|
|
VST_EFFECT_OPCODE_25 = 0x25,
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
*
|
|
|
|
|
* Seen in plug-ins with VST_CATEGORY_OFFLINE.
|
|
|
|
|
* @important (VST 2.0+) Available from VST 2.0 onwards.
|
|
|
|
|
* Seen in plug-ins with @ref VST_EFFECT_CATEGORY_OFFLINE.
|
|
|
|
|
* @note (VST 2.0+) Available from VST 2.0 onwards.
|
|
|
|
|
*/
|
|
|
|
|
VST_EFFECT_OPCODE_26 = 0x26,
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
*
|
|
|
|
|
* Seen in plug-ins with VST_CATEGORY_OFFLINE.
|
|
|
|
|
* @important (VST 2.0+) Available from VST 2.0 onwards.
|
|
|
|
|
* Seen in plug-ins with @ref VST_EFFECT_CATEGORY_OFFLINE.
|
|
|
|
|
* @note (VST 2.0+) Available from VST 2.0 onwards.
|
|
|
|
|
*/
|
|
|
|
|
VST_EFFECT_OPCODE_27 = 0x27,
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
*
|
|
|
|
|
* Seen in plug-ins with VST_CATEGORY_OFFLINE.
|
|
|
|
|
* @important (VST 2.0+) Available from VST 2.0 onwards.
|
|
|
|
|
* Seen in plug-ins with @ref VST_EFFECT_CATEGORY_OFFLINE.
|
|
|
|
|
* @note (VST 2.0+) Available from VST 2.0 onwards.
|
|
|
|
|
*/
|
|
|
|
|
VST_EFFECT_OPCODE_28 = 0x28,
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
*
|
|
|
|
|
* Seen in plug-ins with VST_CATEGORY_OFFLINE.
|
|
|
|
|
* @important (VST 2.0+) Available from VST 2.0 onwards.
|
|
|
|
|
* Seen in plug-ins with @ref VST_EFFECT_CATEGORY_OFFLINE.
|
|
|
|
|
* @note (VST 2.0+) Available from VST 2.0 onwards.
|
|
|
|
|
*/
|
|
|
|
|
VST_EFFECT_OPCODE_29 = 0x29,
|
|
|
|
|
|
|
|
|
|
/** Host wants to change the speaker arrangement.
|
|
|
|
|
*
|
|
|
|
|
* @important (VST 2.0+) Available from VST 2.0 onwards.
|
|
|
|
|
* @note (VST 2.0+) Available from VST 2.0 onwards.
|
|
|
|
|
* @param p_int2 Pointer to a @ref vst_speaker_arrangement_t for the input.
|
|
|
|
|
* @param p_ptr Pointer to a @ref vst_speaker_arrangement_t for the output.
|
|
|
|
|
* @return @ref VST_STATUS_TRUE if we accept the new arrangement, @ref VST_STATUS_FALSE if we don't in which case
|
|
|
|
@@ -1572,9 +1580,9 @@ enum VST_EFFECT_OPCODE {
|
|
|
|
|
|
|
|
|
|
/** Enable/Disable bypassing the effect.
|
|
|
|
|
*
|
|
|
|
|
* See @ref VST_EFFECT_OPCODE_SUPPORTS with @ref vst_effect_supports.bypass for more information.
|
|
|
|
|
* See @ref VST_EFFECT_OPCODE_SUPPORTS with @ref vst_effect_supports_t.bypass for more information.
|
|
|
|
|
*
|
|
|
|
|
* @important (VST 2.0+) Available from VST 2.0 onwards.
|
|
|
|
|
* @note (VST 2.0+) Available from VST 2.0 onwards.
|
|
|
|
|
* @param p_int2 Zero if bypassing the effect is disabled, otherwise 1.
|
|
|
|
|
*/
|
|
|
|
|
VST_EFFECT_OPCODE_2C = 0x2C,
|
|
|
|
@@ -1583,7 +1591,7 @@ enum VST_EFFECT_OPCODE {
|
|
|
|
|
|
|
|
|
|
/** Retrieve the effect name into the ptr buffer.
|
|
|
|
|
*
|
|
|
|
|
* @important (VST 2.0+) Available from VST 2.0 onwards.
|
|
|
|
|
* @note (VST 2.0+) Available from VST 2.0 onwards.
|
|
|
|
|
* @bug Various hosts only provide a buffer that is 32 bytes long.
|
|
|
|
|
* @param p_ptr A zero terminated char buffer of size @ref VST_BUFFER_SIZE_EFFECT_NAME.
|
|
|
|
|
* @return Always 0, even on failure.
|
|
|
|
@@ -1599,10 +1607,10 @@ enum VST_EFFECT_OPCODE {
|
|
|
|
|
/** Translate an error code to a string.
|
|
|
|
|
*
|
|
|
|
|
* @bug Some hosts provide unexpected data in p_ptr.
|
|
|
|
|
* @important (VST 2.0+) Available from VST 2.0 onwards.
|
|
|
|
|
* @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.
|
|
|
|
|
* @param p_ptr A zero terminated char buffer with undefined size.
|
|
|
|
|
* @return VST_STATUS_TRUE if we could translate the error, VST_STATUS_FALSE if not.
|
|
|
|
|
* @return @ref VST_STATUS_TRUE if we could translate the error, @ref VST_STATUS_FALSE if not.
|
|
|
|
|
*/
|
|
|
|
|
VST_EFFECT_OPCODE_2E = 0x2E,
|
|
|
|
|
/** @sa VST_EFFECT_OPCODE_2E */
|
|
|
|
@@ -1610,8 +1618,8 @@ enum VST_EFFECT_OPCODE {
|
|
|
|
|
|
|
|
|
|
/** Retrieve the vendor name into the ptr buffer.
|
|
|
|
|
*
|
|
|
|
|
* @important (VST 2.0+) Available from VST 2.0 onwards.
|
|
|
|
|
* @param p_ptr A zero terminated char buffer of @ref VST_BUFFER_SIZE_VENDOR size.
|
|
|
|
|
* @note (VST 2.0+) Available from VST 2.0 onwards.
|
|
|
|
|
* @param p_ptr A zero terminated char buffer of size @ref VST_BUFFER_SIZE_VENDOR_NAME.
|
|
|
|
|
*/
|
|
|
|
|
VST_EFFECT_OPCODE_2F = 0x2F,
|
|
|
|
|
/** @sa VST_EFFECT_OPCODE_2F */
|
|
|
|
@@ -1621,8 +1629,8 @@ enum VST_EFFECT_OPCODE {
|
|
|
|
|
|
|
|
|
|
/** Retrieve the product name into the ptr buffer.
|
|
|
|
|
*
|
|
|
|
|
* @important (VST 2.0+) Available from VST 2.0 onwards.
|
|
|
|
|
* @param p_ptr A zero terminated char buffer of @ref VST_BUFFER_SIZE_PRODUCT size.
|
|
|
|
|
* @note (VST 2.0+) Available from VST 2.0 onwards.
|
|
|
|
|
* @param p_ptr A zero terminated char buffer of size @ref VST_BUFFER_SIZE_PRODUCT_NAME.
|
|
|
|
|
*/
|
|
|
|
|
VST_EFFECT_OPCODE_30 = 0x30,
|
|
|
|
|
/** @sa VST_EFFECT_OPCODE_30 */
|
|
|
|
@@ -1632,7 +1640,7 @@ enum VST_EFFECT_OPCODE {
|
|
|
|
|
|
|
|
|
|
/** Retrieve the vendor version in return value.
|
|
|
|
|
*
|
|
|
|
|
* @important (VST 2.0+) Available from VST 2.0 onwards.
|
|
|
|
|
* @note (VST 2.0+) Available from VST 2.0 onwards.
|
|
|
|
|
* @return Version.
|
|
|
|
|
*/
|
|
|
|
|
VST_EFFECT_OPCODE_31 = 0x31,
|
|
|
|
@@ -1643,7 +1651,7 @@ enum VST_EFFECT_OPCODE {
|
|
|
|
|
|
|
|
|
|
/** User-defined Op-Code for VST extensions.
|
|
|
|
|
*
|
|
|
|
|
* @important (VST 2.0+) Available from VST 2.0 onwards.
|
|
|
|
|
* @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 @ref VST_EFFECT_OPCODE_SUPPORTS
|
|
|
|
|
* and @ref VST_EFFECT_OPCODE_VENDOR_NAME + @ref VST_EFFECT_OPCODE_VENDOR_VERSION to check if the plug-in is
|
|
|
|
|
* compatible with your expected format.
|
|
|
|
@@ -1654,7 +1662,7 @@ enum VST_EFFECT_OPCODE {
|
|
|
|
|
|
|
|
|
|
/** Test for support of a specific named feature.
|
|
|
|
|
*
|
|
|
|
|
* @important (VST 2.0+) Available from VST 2.0 onwards.
|
|
|
|
|
* @note (VST 2.0+) Available from VST 2.0 onwards.
|
|
|
|
|
* @param p_ptr A zero terminated char buffer of undefined size containing the feature name.
|
|
|
|
|
* @return @ref VST_STATUS_YES if the feature is supported, @ref VST_STATUS_NO if the feature is not supported,
|
|
|
|
|
* @ref VST_STATUS_UNKNOWN in all other cases.
|
|
|
|
@@ -1665,7 +1673,7 @@ enum VST_EFFECT_OPCODE {
|
|
|
|
|
|
|
|
|
|
/** Number of samples that are at the tail at the end of playback.
|
|
|
|
|
*
|
|
|
|
|
* @important (VST 2.0+) Available from VST 2.0 onwards.
|
|
|
|
|
* @note (VST 2.0+) Available from VST 2.0 onwards.
|
|
|
|
|
* @return @ref VST_STATUS_UNKNOWN for automatic tail size, @ref VST_STATUS_TRUE for no tail, any other number above
|
|
|
|
|
* 1 for the number of samples the tail has.
|
|
|
|
|
*/
|
|
|
|
@@ -1677,7 +1685,7 @@ enum VST_EFFECT_OPCODE {
|
|
|
|
|
|
|
|
|
|
/** Notify effect that it is idle?
|
|
|
|
|
*
|
|
|
|
|
* @important (VST 2.0+) Available from VST 2.0 onwards.
|
|
|
|
|
* @note (VST 2.0+) Available from VST 2.0 onwards.
|
|
|
|
|
* @deprecated (VST 2.4+) As of VST 2.4 the default behavior is @ref VST_EFFECT_OPCODE_PROCESS_BEGIN and
|
|
|
|
|
* @ref VST_EFFECT_OPCODE_PROCESS_END which allows cleaner control flows.
|
|
|
|
|
* @sa vst_host_supports.startStopProcess
|
|
|
|
@@ -1689,7 +1697,7 @@ enum VST_EFFECT_OPCODE {
|
|
|
|
|
/**
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
* @important (VST 2.0+) Available from VST 2.0 onwards.
|
|
|
|
|
* @note (VST 2.0+) Available from VST 2.0 onwards.
|
|
|
|
|
* @deprecated (VST 2.4) Invalid in all VST 2.4 and later hosts.
|
|
|
|
|
*/
|
|
|
|
|
VST_EFFECT_OPCODE_36 = 0x36,
|
|
|
|
@@ -1697,16 +1705,16 @@ enum VST_EFFECT_OPCODE {
|
|
|
|
|
/**
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
* @important (VST 2.0+) Available from VST 2.0 onwards.
|
|
|
|
|
* @note (VST 2.0+) Available from VST 2.0 onwards.
|
|
|
|
|
* @deprecated (VST 2.4) Invalid in all VST 2.4 and later hosts.
|
|
|
|
|
*/
|
|
|
|
|
VST_EFFECT_OPCODE_37 = 0x37,
|
|
|
|
|
|
|
|
|
|
/** Parameter Properties
|
|
|
|
|
*
|
|
|
|
|
* @important (VST 2.0+) Available from VST 2.0 onwards.
|
|
|
|
|
* @note (VST 2.0+) Available from VST 2.0 onwards.
|
|
|
|
|
* @param p_int1 Parameter index to get properties for.
|
|
|
|
|
* @param p_ptr Pointer to @ref vst_parameter_properties for the given parameter.
|
|
|
|
|
* @param p_ptr Pointer to @ref vst_parameter_properties_t for the given parameter.
|
|
|
|
|
* @return @ref VST_STATUS_YES if supported, otherwise @ref VST_STATUS_NO.
|
|
|
|
|
*/
|
|
|
|
|
VST_EFFECT_OPCODE_38 = 0x38,
|
|
|
|
@@ -1717,14 +1725,14 @@ enum VST_EFFECT_OPCODE {
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
*
|
|
|
|
|
* @important (VST 2.0+) Available from VST 2.0 onwards.
|
|
|
|
|
* @note (VST 2.0+) Available from VST 2.0 onwards.
|
|
|
|
|
* @deprecated (VST 2.4) Invalid in all VST 2.4 and later hosts.
|
|
|
|
|
*/
|
|
|
|
|
VST_EFFECT_OPCODE_39 = 0x39,
|
|
|
|
|
|
|
|
|
|
/** Retrieve the VST Version supported.
|
|
|
|
|
*
|
|
|
|
|
* @important (VST 2.0+) Available from VST 2.0 onwards.
|
|
|
|
|
* @note (VST 2.0+) Available from VST 2.0 onwards.
|
|
|
|
|
* @sa VST_VERSION
|
|
|
|
|
* @return One of the valid enums in @ref VST_VERSION
|
|
|
|
|
*/
|
|
|
|
@@ -1738,7 +1746,7 @@ enum VST_EFFECT_OPCODE {
|
|
|
|
|
|
|
|
|
|
/** Editor Virtual Key Down Input
|
|
|
|
|
*
|
|
|
|
|
* @important (VST 2.1+) Available from VST 2.1 onwards.
|
|
|
|
|
* @note (VST 2.1+) Available from VST 2.1 onwards.
|
|
|
|
|
* @param p_int1 ASCII character that represents the virtual key code.
|
|
|
|
|
* @param p_int2 Virtual Key Code
|
|
|
|
|
* @param p_float Modifiers being held down (bitfield)
|
|
|
|
@@ -1750,7 +1758,7 @@ enum VST_EFFECT_OPCODE {
|
|
|
|
|
|
|
|
|
|
/** Editor Virtual Key Up Event
|
|
|
|
|
*
|
|
|
|
|
* @important (VST 2.1+) Available from VST 2.1 onwards.
|
|
|
|
|
* @note (VST 2.1+) Available from VST 2.1 onwards.
|
|
|
|
|
* @param p_int1 ASCII character that represents the virtual key code.
|
|
|
|
|
* @param p_int2 Virtual Key Code
|
|
|
|
|
* @param p_float Modifiers being held down (bitfield)
|
|
|
|
@@ -1762,7 +1770,7 @@ enum VST_EFFECT_OPCODE {
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
*
|
|
|
|
|
* @important (VST 2.1+) Available from VST 2.1 onwards.
|
|
|
|
|
* @note (VST 2.1+) Available from VST 2.1 onwards.
|
|
|
|
|
* @param p_int2 A value between 0 and 2.
|
|
|
|
|
*/
|
|
|
|
|
VST_EFFECT_OPCODE_3D = 0x3D,
|
|
|
|
@@ -1770,42 +1778,42 @@ enum VST_EFFECT_OPCODE {
|
|
|
|
|
/**
|
|
|
|
|
*
|
|
|
|
|
* Midi related
|
|
|
|
|
* @important (VST 2.1+) Available from VST 2.1 onwards.
|
|
|
|
|
* @note (VST 2.1+) Available from VST 2.1 onwards.
|
|
|
|
|
*/
|
|
|
|
|
VST_EFFECT_OPCODE_3E = 0x3E,
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
*
|
|
|
|
|
* Midi related
|
|
|
|
|
* @important (VST 2.1+) Available from VST 2.1 onwards.
|
|
|
|
|
* @note (VST 2.1+) Available from VST 2.1 onwards.
|
|
|
|
|
*/
|
|
|
|
|
VST_EFFECT_OPCODE_3F = 0x3F,
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
*
|
|
|
|
|
* Midi related
|
|
|
|
|
* @important (VST 2.1+) Available from VST 2.1 onwards.
|
|
|
|
|
* @note (VST 2.1+) Available from VST 2.1 onwards.
|
|
|
|
|
*/
|
|
|
|
|
VST_EFFECT_OPCODE_40 = 0x40,
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
*
|
|
|
|
|
* Midi related
|
|
|
|
|
* @important (VST 2.1+) Available from VST 2.1 onwards.
|
|
|
|
|
* @note (VST 2.1+) Available from VST 2.1 onwards.
|
|
|
|
|
*/
|
|
|
|
|
VST_EFFECT_OPCODE_41 = 0x41,
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
*
|
|
|
|
|
* Midi related
|
|
|
|
|
* @important (VST 2.1+) Available from VST 2.1 onwards.
|
|
|
|
|
* @note (VST 2.1+) Available from VST 2.1 onwards.
|
|
|
|
|
*/
|
|
|
|
|
VST_EFFECT_OPCODE_42 = 0x42,
|
|
|
|
|
|
|
|
|
|
/** Host is starting to set up a program.
|
|
|
|
|
* Emitted prior to the host loading a program.
|
|
|
|
|
*
|
|
|
|
|
* @important (VST 2.1+) Available from VST 2.1 onwards.
|
|
|
|
|
* @note (VST 2.1+) Available from VST 2.1 onwards.
|
|
|
|
|
* @return @ref VST_STATUS_TRUE if we understood the notification, or @ref VST_STATUS_FALSE if not.
|
|
|
|
|
*/
|
|
|
|
|
VST_EFFECT_OPCODE_43 = 0x43,
|
|
|
|
@@ -1815,10 +1823,10 @@ enum VST_EFFECT_OPCODE {
|
|
|
|
|
/** Host is done setting up a program.
|
|
|
|
|
* Emitted after the host finished loading a program.
|
|
|
|
|
*
|
|
|
|
|
* @important (VST 2.1+) Available from VST 2.1 onwards.
|
|
|
|
|
* @note (VST 2.1+) Available from VST 2.1 onwards.
|
|
|
|
|
* @return @ref VST_STATUS_TRUE if we understood the notification, or @ref VST_STATUS_FALSE if not.
|
|
|
|
|
*/
|
|
|
|
|
VST_EFFECT_OPCODE_43 = 0x44,
|
|
|
|
|
VST_EFFECT_OPCODE_44 = 0x44,
|
|
|
|
|
/** @sa VST_EFFECT_OPCODE_44 */
|
|
|
|
|
VST_EFFECT_OPCODE_PROGRAM_SET_END = 0x44,
|
|
|
|
|
|
|
|
|
@@ -1828,7 +1836,7 @@ enum VST_EFFECT_OPCODE {
|
|
|
|
|
|
|
|
|
|
/** Host wants to know the current speaker arrangement.
|
|
|
|
|
*
|
|
|
|
|
* @important (VST 2.3+) Available from VST 2.3 onwards.
|
|
|
|
|
* @note (VST 2.3+) Available from VST 2.3 onwards.
|
|
|
|
|
* @param p_int2 Pointer to @ref vst_speaker_arrangement_t for the input.
|
|
|
|
|
* @param p_ptr Pointer to @ref vst_speaker_arrangement_t for the output.
|
|
|
|
|
* @return @ref VST_STATUS_TRUE if we were successful, otherwise @ref VST_STATUS_FALSE.
|
|
|
|
@@ -1842,7 +1850,7 @@ enum VST_EFFECT_OPCODE {
|
|
|
|
|
*
|
|
|
|
|
* Used in combination with @ref VST_EFFECT_CATEGORY_CONTAINER.
|
|
|
|
|
*
|
|
|
|
|
* @important (VST 2.3+) Available from VST 2.3 onwards.
|
|
|
|
|
* @note (VST 2.3+) Available from VST 2.3 onwards.
|
|
|
|
|
* @param p_ptr Pointer to a char buffer of size @ref VST_BUFFER_SIZE_EFFECT_NAME to store the name of the next effect.
|
|
|
|
|
* @return Next effects unique_id
|
|
|
|
|
*/
|
|
|
|
@@ -1853,7 +1861,7 @@ enum VST_EFFECT_OPCODE {
|
|
|
|
|
/** Begin processing of audio.
|
|
|
|
|
*
|
|
|
|
|
* Host is requesting that we prepare for a new section of audio separate from the previous section.
|
|
|
|
|
* @important (VST 2.3+) Available from VST 2.3 onwards.
|
|
|
|
|
* @note (VST 2.3+) Available from VST 2.3 onwards.
|
|
|
|
|
*/
|
|
|
|
|
VST_EFFECT_OPCODE_47 = 0x47,
|
|
|
|
|
/** @sa VST_EFFECT_OPCODE_47 */
|
|
|
|
@@ -1862,7 +1870,7 @@ enum VST_EFFECT_OPCODE {
|
|
|
|
|
/** End processing of audio.
|
|
|
|
|
*
|
|
|
|
|
* Host is requesting that we stop processing audio and go into idle instead.
|
|
|
|
|
* @important (VST 2.3+) Available from VST 2.3 onwards.
|
|
|
|
|
* @note (VST 2.3+) Available from VST 2.3 onwards.
|
|
|
|
|
*/
|
|
|
|
|
VST_EFFECT_OPCODE_48 = 0x48,
|
|
|
|
|
/** @sa VST_EFFECT_OPCODE_48 */
|
|
|
|
@@ -1871,13 +1879,13 @@ enum VST_EFFECT_OPCODE {
|
|
|
|
|
/**
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
* @important (VST 2.3+) Available from VST 2.3 onwards.
|
|
|
|
|
* @note (VST 2.3+) Available from VST 2.3 onwards.
|
|
|
|
|
*/
|
|
|
|
|
VST_EFFECT_OPCODE_49 = 0x49,
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
*
|
|
|
|
|
* @important (VST 2.3+) Available from VST 2.3 onwards.
|
|
|
|
|
* @note (VST 2.3+) Available from VST 2.3 onwards.
|
|
|
|
|
* @sa VST_EFFECT_CATEGORY_SPATIAL
|
|
|
|
|
* @param p_int2 Unknown meaning.
|
|
|
|
|
* @param p_float Unknown meaning, usually 1.0
|
|
|
|
@@ -1887,7 +1895,7 @@ enum VST_EFFECT_OPCODE {
|
|
|
|
|
/** Host wants to know if we can load the provided bank data.
|
|
|
|
|
* Should be emitted prior to @ref VST_EFFECT_OPCODE_SET_CHUNK_DATA by the host.
|
|
|
|
|
*
|
|
|
|
|
* @important (VST 2.3+) Available from VST 2.3 onwards.
|
|
|
|
|
* @note (VST 2.3+) Available from VST 2.3 onwards.
|
|
|
|
|
* @param p_ptr Unknown structured data.
|
|
|
|
|
* @return @ref VST_STATUS_NO if we can't load the data, @ref VST_STATUS_YES if we can load the data,
|
|
|
|
|
* @ref VST_STATUS_UNKNOWN if this isn't supported.
|
|
|
|
@@ -1899,7 +1907,7 @@ enum VST_EFFECT_OPCODE {
|
|
|
|
|
/** Host wants to know if we can load the provided program data.
|
|
|
|
|
* Should be emitted prior to @ref VST_EFFECT_OPCODE_PROGRAM_SET_BEGIN by the host.
|
|
|
|
|
*
|
|
|
|
|
* @important (VST 2.3+) Available from VST 2.3 onwards.
|
|
|
|
|
* @note (VST 2.3+) Available from VST 2.3 onwards.
|
|
|
|
|
* @param p_ptr Unknown structured data.
|
|
|
|
|
* @return @ref VST_STATUS_NO if we can't load the data, @ref VST_STATUS_YES if we can load the data,
|
|
|
|
|
* @ref VST_STATUS_UNKNOWN if this isn't supported.
|
|
|
|
@@ -1915,21 +1923,21 @@ enum VST_EFFECT_OPCODE {
|
|
|
|
|
/**
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
* @important (VST 2.4+) Available from VST 2.4 onwards.
|
|
|
|
|
* @note (VST 2.4+) Available from VST 2.4 onwards.
|
|
|
|
|
*/
|
|
|
|
|
VST_EFFECT_OPCODE_4D = 0x4D,
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
* @important (VST 2.4+) Available from VST 2.4 onwards.
|
|
|
|
|
* @note (VST 2.4+) Available from VST 2.4 onwards.
|
|
|
|
|
*/
|
|
|
|
|
VST_EFFECT_OPCODE_4E = 0x4E,
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
* @important (VST 2.4+) Available from VST 2.4 onwards.
|
|
|
|
|
* @note (VST 2.4+) Available from VST 2.4 onwards.
|
|
|
|
|
*/
|
|
|
|
|
VST_EFFECT_OPCODE_4F = 0x4F,
|
|
|
|
|
|
|
|
|
@@ -2042,11 +2050,11 @@ typedef void (VST_FUNCTION_INTERFACE* vst_effect_process_t) (struct vst_effect_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.
|
|
|
|
|
/** Retrieve the current value of the parameter at the given index, or do nothing if out of bounds.
|
|
|
|
|
*
|
|
|
|
|
* @param self Pointer to the effect itself.
|
|
|
|
|
* @param index Parameter index.
|
|
|
|
|
* @param value New value for the parameter.
|
|
|
|
|
* @return Current value of the parameter.
|
|
|
|
|
*/
|
|
|
|
|
typedef float(VST_FUNCTION_INTERFACE* vst_effect_get_parameter_t)(struct vst_effect_t* self, uint32_t index);
|
|
|
|
|
|
|
|
|
@@ -2054,7 +2062,7 @@ typedef float(VST_FUNCTION_INTERFACE* vst_effect_get_parameter_t)(struct vst_eff
|
|
|
|
|
*
|
|
|
|
|
* Process input and overwrite the output in place. Host provides output buffers.
|
|
|
|
|
*
|
|
|
|
|
* @note Not thread-safe on MacOS for some reason or another.
|
|
|
|
|
* @important Not thread-safe on MacOS for some reason or another.
|
|
|
|
|
*
|
|
|
|
|
* @param self Pointer to the effect itself.
|
|
|
|
|
* @param inputs Pointer to an array of 'const float[samples]' with size numInputs.
|
|
|
|
@@ -2067,7 +2075,7 @@ typedef void(VST_FUNCTION_INTERFACE* vst_effect_process_float_t)(struct vst_effe
|
|
|
|
|
*
|
|
|
|
|
* Process input and overwrite the output in place. Host provides output buffers.
|
|
|
|
|
*
|
|
|
|
|
* @note Not present and not called prior to VST 2.4.
|
|
|
|
|
* @note (VST 2.4+) Available from VST 2.4 and later.
|
|
|
|
|
*
|
|
|
|
|
* @param self Pointer to the effect itself.
|
|
|
|
|
* @param inputs Pointer to an array of 'const double[samples]' with size numInputs.
|
|
|
|
@@ -2095,6 +2103,8 @@ struct vst_effect_t {
|
|
|
|
|
|
|
|
|
|
/** Process Function
|
|
|
|
|
* @sa vst_effect_process_t
|
|
|
|
|
* @deprecated (VST 2.4+) Deprecated and practically unsupported in all VST 2.4 compatible hosts and may treat it
|
|
|
|
|
* as just another @ref vst_effect_t.process_float.
|
|
|
|
|
*/
|
|
|
|
|
vst_effect_process_t process;
|
|
|
|
|
|
|
|
|
@@ -2217,6 +2227,7 @@ struct vst_effect_t {
|
|
|
|
|
|
|
|
|
|
/** Process function for in-place single (32-bit float) processiong.
|
|
|
|
|
* @sa vst_effect_process_single_t
|
|
|
|
|
* @note (VST 2.0+) Available from VST 2.0 and later.
|
|
|
|
|
*/
|
|
|
|
|
vst_effect_process_float_t process_float;
|
|
|
|
|
|
|
|
|
@@ -2226,6 +2237,7 @@ struct vst_effect_t {
|
|
|
|
|
|
|
|
|
|
/** Process function for in-place double (64-bit float) processiong.
|
|
|
|
|
* @sa vst_effect_process_double_t
|
|
|
|
|
* @note (VST 2.4+) Available from VST 2.4 and later.
|
|
|
|
|
*/
|
|
|
|
|
vst_effect_process_double_t process_double;
|
|
|
|
|
|
|
|
|
|