I’ve made a plugin called Oversample that allows you to quickly set a parameter of a VST effect device to a specific value (used for turning “Oversample”, “High Quality”, etc., on and off).
This plugin therefore needs to enumerate all devices and their parameters in a song. When enumerating the parameters of VST2 devices, I get the full list of parameters, but when doing the same for VST3 devices, some parameters are missing. For the plugin Fabfilter Pro-C 2, the parameters start to differ at index 41. See the table below:
Index VST3 Parameter VST2 Parameter
1 Style Style
2 Threshold Threshold
3 Ratio Ratio
4 Knee Knee
5 Range Range
6 Attack Attack
7 Release Release
8 Auto Release Auto Release
9 Lookahead Lookahead
10 Hold Hold
11 Wet Gain Wet Gain
12 Wet Pan Wet Pan
13 Dry Gain Dry Gain
14 Dry Pan Dry Pan
15 Auto Gain Auto Gain
16 Side Chain Expert Mode Side Chain Expert Mode
17 Side Chain Input Side Chain Input
18 Side Chain Level Side Chain Level
19 Stereo Link Stereo Link
20 Stereo Link Mode Stereo Link Mode
21 Side Chain Low Enabled Side Chain Low Enabled
22 Side Chain Low Frequency Side Chain Low Frequency
23 Side Chain Low Slope Side Chain Low Slope
24 Side Chain Mid Auto Side Chain Mid Auto
25 Side Chain Mid Enabled Side Chain Mid Enabled
26 Side Chain Mid Frequency Side Chain Mid Frequency
27 Side Chain Mid Gain Side Chain Mid Gain
28 Side Chain Mid Q Side Chain Mid Q
29 Side Chain Mid Shape Side Chain Mid Shape
30 Side Chain High Enabled Side Chain High Enabled
31 Side Chain High Frequency Side Chain High Frequency
32 Side Chain High Slope Side Chain High Slope
33 Audition Side Chain Audition Side Chain
34 Audition Triggering Audition Triggering
35 Mix Mix
36 Input Level Input Level
37 Input Pan Input Pan
38 Output Level Output Level
39 Output Pan Output Pan
40 Bypass Bypass
41 Midi State Oversampling
42 Lookahead Enabled
43 Midi State
44 Meter Scale
45 Display Enabled
46 Knee Display Enabled
The (essential part of the) loop enumerating the parameters looks like this:
local parameters = {}
for p = 1, table.getn(device.parameters) do
local parameter = device:parameter(p)
parameters[p] = parameter.name
end
Does anyone have an idea why the parameter list is different between VST2 and VST3 versions of the same plugin?