You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
5
+
*
6
+
* 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
7
+
*
8
+
* 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
9
+
*
10
+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
11
+
*/
5
12
6
-
// See README.md for all information.
13
+
/*
14
+
* This was created from released VST2.x plugins, and is technically under the 2-clause BSD license. Depending on which country you are in, Steinberg can do fuck all about this. Notable countries for this are most members of the United States of America, the entirety of Europe, Japan, and Russia.
15
+
*
16
+
* Consult a lawyer if you don't know if clean room reverse engineering is allowed in your country.
17
+
*
18
+
* See README.md for all information.
19
+
*/
7
20
8
21
// Known additional information:
9
22
// - Function call standard seems to be stdcall.
@@ -94,7 +107,7 @@ enum VST_CATEGORY {
94
107
95
108
enum VST_EFFECT_OPCODE {
96
109
/* Create/Initialize the effect (if it has not been created already).
97
-
*
110
+
*
98
111
* @return Always 0.
99
112
*/
100
113
VST_EFFECT_OPCODE_00 = 0x00,
@@ -104,7 +117,7 @@ enum VST_EFFECT_OPCODE {
104
117
/* Destroy the effect (if there is any) and free its memory.
105
118
*
106
119
* This should destroy the actual object created by VST_ENTRYPOINT.
107
-
*
120
+
*
108
121
* @return Always 0.
109
122
*/
110
123
VST_EFFECT_OPCODE_01 = 0x01,
@@ -135,7 +148,7 @@ enum VST_EFFECT_OPCODE {
135
148
VST_EFFECT_OPCODE_05 = 0x05,
136
149
137
150
/* Get the value? label for the parameter.
138
-
*
151
+
*
139
152
* @param p_int1 Parameter index.
140
153
* @param p_ptr 'char[8]'
141
154
* @return 0 on success, 1 on failure.
@@ -144,7 +157,7 @@ enum VST_EFFECT_OPCODE {
144
157
VST_EFFECT_OPCODE_PARAM_GETLABEL = 0x06,
145
158
146
159
/* Get the string value for the parameter.
147
-
*
160
+
*
148
161
* @param p_int1 Parameter index.
149
162
* @param p_ptr 'char[8]'
150
163
* @return 0 on success, 1 on failure.
@@ -153,7 +166,7 @@ enum VST_EFFECT_OPCODE {
153
166
VST_EFFECT_OPCODE_PARAM_GETVALUE = 0x07,
154
167
155
168
/* Get the name for the parameter.
156
-
*
169
+
*
157
170
* @param p_int1 Parameter index.
158
171
* @param p_ptr 'char[8]'
159
172
* @return 0 on success, 1 on failure.
@@ -168,7 +181,7 @@ enum VST_EFFECT_OPCODE {
168
181
VST_EFFECT_OPCODE_09 = 0x09,
169
182
170
183
/* Set the new sample rate for the plugin to use.
171
-
*
184
+
*
172
185
* @param p_float New sample rate as a float (double on 64-bit because register upgrades).
173
186
*/
174
187
VST_EFFECT_OPCODE_0A = 0x0A,
@@ -186,7 +199,7 @@ enum VST_EFFECT_OPCODE {
186
199
/* Effect processing should be suspended/paused.
187
200
*
188
201
* Unclear if this is should result in a flush of buffers.
189
-
*
202
+
*
190
203
* @param p_int2 0 if the effect should suspend processing, 1 if it should resume.
191
204
*/
192
205
VST_EFFECT_OPCODE_0C = 0x0C,
@@ -202,15 +215,15 @@ enum VST_EFFECT_OPCODE {
202
215
VST_EFFECT_OPCODE_WINDOW_GETRECT = 0x0D,
203
216
204
217
/* Create the window for the plugin.
205
-
*
218
+
*
206
219
* @param p_ptr HWND of the parent window.
207
220
* @return 0 on failure, or HWND on success.
208
221
*/
209
222
VST_EFFECT_OPCODE_0E = 0x0E,
210
223
VST_EFFECT_OPCODE_WINDOW_CREATE = 0x0E,
211
224
212
225
/* Destroy the plugins window.
213
-
*
226
+
*
214
227
* @return Always 0.
215
228
*/
216
229
VST_EFFECT_OPCODE_0F = 0x0F,
@@ -383,7 +396,7 @@ enum VST_EFFECT_OPCODE {
383
396
*/
384
397
VST_EFFECT_OPCODE_29 = 0x29,
385
398
386
-
/* Set the speaker arrangement
399
+
/* Set the speaker arrangement
387
400
*
388
401
* @param p_int2 (vst_speaker_arrangement*) Pointer to a pointer to the speaker arrangement for the input.
389
402
* @param p_ptr (vst_speaker_arrangement*) Pointer to a pointer to the speaker arrangement for the output.
@@ -446,21 +459,21 @@ enum VST_EFFECT_OPCODE {
446
459
VST_EFFECT_OPCODE_VENDOR_VERSION = 0x31,
447
460
448
461
/* User defined OP Code, for custom interaction.
449
-
*
462
+
*
450
463
*/
451
464
VST_EFFECT_OPCODE_32 = 0x32,
452
465
VST_EFFECT_OPCODE_CUSTOM = 0x32,
453
466
454
467
/* Test for support of a specific named feature.
455
-
*
468
+
*
456
469
* @param p_ptr Pointer to a zero-terminated buffer containing the feature name.
457
470
* @return Non-zero if the feature is supported, otherwise 0.
458
471
*/
459
472
VST_EFFECT_OPCODE_33 = 0x33,
460
473
VST_EFFECT_OPCODE_SUPPORTS = 0x33,
461
474
462
475
/* Number of samples that are at the tail at the end of playback.
463
-
*
476
+
*
464
477
* @return 0 or 1 for no tail, > 1 for number of samples to tail.
465
478
*/
466
479
VST_EFFECT_OPCODE_34 = 0x34,
@@ -586,14 +599,14 @@ enum VST_EFFECT_OPCODE {
586
599
587
600
/* Begin processing of audio.
588
601
*
589
-
*
590
-
*
602
+
*
603
+
*
591
604
*/
592
605
VST_EFFECT_OPCODE_PROCESS_BEGIN = 0x47,
593
606
594
607
/* End processing of audio.
595
608
*
596
-
*
609
+
*
597
610
*
598
611
*/
599
612
VST_EFFECT_OPCODE_PROCESS_END = 0x48,
@@ -705,7 +718,7 @@ enum VST_HOST_OPCODE {
705
718
VST_HOST_OPCODE_2B = 0x2B,
706
719
707
720
/* Parameter lost focus.
708
-
*
721
+
*
709
722
* @param int1 Parameter index.
710
723
*/
711
724
VST_HOST_OPCODE_2C = 0x2C,
@@ -808,7 +821,7 @@ struct vst_effect {
808
821
// 64-bit adds 4-byte padding here to align pointers.
809
822
810
823
/* Control the VST through an opcode and up to four parameters.
811
-
*
824
+
*
812
825
* @param this Pointer to the effect itself.
813
826
* @param opcode The opcode to run, see VST_EFFECT_OPCODES.
814
827
* @param p_int1 Parameter, see VST_EFFECT_OPCODES.
@@ -817,30 +830,30 @@ struct vst_effect {
817
830
* @param p_float Parameter, see VST_EFFECT_OPCODES.
0 commit comments