Managing plugin parameters in AudioPluginInstance

Fair enough :slight_smile:

I have some related questions. I’m using RenderMan to load the Serum VST and then export audio via python/command line. I’ve used the code in this thread to try to enumerate all VST parameters which I can set. I’ve also tried the XML code here How to get a grouped representation xml with an audio processor value tree state All options show a list of a parameters that’s shorter than I expect. The XML doesn’t look good on the forum so I’m uploading a simple numeric list instead

for (int i = 0; i < plugin->getNumParameters(); i++) {
    std::cout << i << ": " << plugin.get()->getParameterName(i) << std::endl;
}

:

Serum Parameters

0: MasterVol: 0.7
1: A Vol: 0.75
2: A Pan: 0.100877
3: A Octave: 0.425781
4: A Semi: 0.5
5: A Fine: 0.5
6: A Unison: 0
7: A UniDet: 0.5
8: A UniBlend: 0.75
9: A Warp: 0.618421
10: A CoarsePit: 0.5
11: A WTPos: 0
12: A RandPhase: 1
13: A Phase: 0.5
14: B Vol: 0.679825
15: B Pan: 0.5
16: B Octave: 0.28125
17: B Semi: 0.5
18: B Fine: 0.5
19: B Unison: 0.4
20: B UniDet: 0.245614
21: B UniBlend: 0.75
22: B Warp: 0
23: B CoarsePit: 0.5
24: B WTPos: 0
25: B RandPhase: 1
26: B Phase: 0.5
27: Noise Level: 0
28: Noise Pitch: 0.5
29: Noise Fine: 0.5
30: Noise Pan: 0.5
31: Noise RandPhase: 0
32: Noise Phase: 0
33: Sub Osc Level: 0.653509
34: Sub Osc Pan: 0.5
35: Env1 Atk: 0.11
36: Env1 Hold: 0
37: Env1 Dec: 0.570271
38: Env1 Sus: 0.44412
39: Env1 Rel: 0.342128
40: OscA>Fil: 1
41: OscB>Fil: 1
42: OscN>Fil: 0
43: OscS>Fil: 0
44: Fil Type: 0.0337079
45: Fil Cutoff: 0.337719
46: Fil Reso: 0.1
47: Fil Driv: 0
48: Fil Var: 0
49: Fil Mix: 1
50: Fil Stereo: 0.5
51: Env2 Atk: 0.11
52: Env2 Hld: 0
53: Env2 Dec: 0.530929
54: Env2 Sus: 0.0789474
55: Env2 Rel: 0.329035
56: Env3 Atk: 0.11
57: Env3 Hld: 0
58: Env3 Dec: 0.197368
59: Env3 Sus: 0
60: Env3 Rel: 0.215
61: LFO1 Rate: 0.5
62: LFO2 Rate: 0.5
63: LFO3 Rate: 0.5
64: LFO4 Rate: 0.5
65: PortTime: 0
66: PortCurve: 0.5
67: Chaos1 BPM: 0
68: Chaos2 BPM: 0
69: Chaos1 Rate: 0.251189
70: Chaos2 Rate: 0.251189
71: A curve1: 0.4995
72: D curve1: 0.666
73: R curve1: 0.666
74: A curve2: 0.4995
75: D curve2: 0.791
76: R curve2: 0.666
77: A curve3: 0.4995
78: D curve3: 0.666
79: R curve3: 0.666
80: Mast.Tun: 0.5
81: Verb Wet: 0.2
82: VerbSize: 0.35
83: Decay: 0.35
84: VerbLoCt: 0
85: Spin Rate: 0.25
86: VerbHiCt: 0.35
87: Spin Depth: 0.2
88: EQ FrqL: 0.333
89: EQ FrqH: 0.666
90: EQ Q L: 0.6
91: EQ Q H: 0.6
92: EQ VolL: 0.5
93: EQ VolH: 0.5
94: EQ TypL: 0
95: EQ TypH: 0
96: Dist_Wet: 0.666667
97: Dist_Drv: 0.894737
98: Dist_L/B/H: 0
99: Dist_Mode: 0
100: Dist_Freq: 0.5
101: Dist_BW: 0.5
102: Dist_PrePost: 0
103: Flg_Wet: 1
104: Flg_BPM_Sync: 0
105: Flg_Rate: 0.25
106: Flg_Dep: 1
107: Flg_Feed: 0.5
108: Flg_Stereo: 0.5
109: Phs_Wet: 1
110: Phs_BPM_Sync: 0
111: Phs_Rate: 0.25
112: Phs_Dpth: 0.5
113: Phs_Frq: 0.5
114: Phs_Feed: 0.8
115: Phs_Stereo: 0.5
116: Cho_Wet: 0.337719
117: Cho_BPM_Sync: 0
118: Cho_Rate: 0.179825
119: Cho_Dly: 0.214912
120: Cho_Dly2: 0
121: Cho_Dep: 1
122: Cho_Feed: 0.1
123: Cho_Filt: 0.5
124: Dly_Wet: 0.3
125: Dly_Freq: 0.5
126: Dly_BW: 0.8
127: Dly_BPM_Sync: 1
128: Dly_Link: 0
129: Dly_TimL: 0.625
130: Dly_TimR: 0.625
131: Dly_Mode: 0
132: Dly_Feed: 0.4
133: Dly_Off L: 0.5
134: Dly_Off R: 0.5
135: Cmp_Thr: 0.5
136: Cmp_Rat: 0.75
137: Cmp_Att: 0.3
138: Cmp_Rel: 0.3
139: CmpGain: 0
140: CmpMBnd: 0
141: FX Fil Wet: 1
142: FX Fil Type: 0
143: FX Fil Freq: 0.5
144: FX Fil Reso: 0
145: FX Fil Drive: 0
146: FX Fil Var: 0
147: Hyp_Wet: 0.5
148: Hyp_Rate: 0.4
149: Hyp_Detune: 0.25
150: Hyp_Unison: 0.571429
151: Hyp_Retrig: 0
152: HypDim_Size: 0.5
153: HypDim_Mix: 0
154: Dist Enable: 1
155: Flg Enable: 0
156: Phs Enable: 0
157: Cho Enable: 1
158: Dly Enable: 0
159: Comp Enable: 0
160: Rev Enable: 0
161: EQ Enable: 0
162: FX Fil Enable: 0
163: Hyp Enable: 0
164: OscAPitchTrack: 1
165: OscBPitchTrack: 1
166: Bend U: 0.541667
167: Bend D: 0.458333
168: WarpOscA: 0.782609
169: WarpOscB: 0
170: SubOscShape: 0
171: SubOscOctave: 0.25
172: A Uni LR: 1
173: B Uni LR: 1
174: A Uni Warp: 0.5
175: B Uni Warp: 0.5
176: A Uni WTPos: 0.5
177: B Uni WTPos: 0.5
178: A Uni Stack: 0
179: B Uni Stack: 0
180: Mod 1 amt: 0.594298
181: Mod 1 out: 0
182: Mod 2 amt: 0.671053
183: Mod 2 out: 0.495
184: Mod 3 amt: 0.619141
185: Mod 3 out: 0.895
186: Mod 4 amt: 0.5
187: Mod 4 out: 1
188: Mod 5 amt: 0.5
189: Mod 5 out: 1
190: Mod 6 amt: 0.5
191: Mod 6 out: 1
192: Mod 7 amt: 0.5
193: Mod 8 out: 1
194: Mod 8 amt: 0.5
195: Mod 8 out: 1
196: Mod 9 amt: 0.5
197: Mod 9 out: 1
198: Mod10 amt: 0.5
199: Mod10 out: 1
200: Mod11 amt: 0.5
201: Mod11 out: 1
202: Mod12 amt: 0.5
203: Mod12 out: 1
204: Mod13 amt: 0.5
205: Mod13 out: 1
206: Mod14 amt: 0.5
207: Mod14 out: 1
208: Mod15 amt: 0.5
209: Mod15 out: 1
210: Mod16 amt: 0.5
211: Mod16 out: 1
212: Osc A On: 1
213: Osc B On: 1
214: Osc N On: 1
215: Osc S On: 1
216: Filter On: 1
217: Mod Wheel: 0
218: Macro 1: 0
219: Macro 2: 0
220: Macro 3: 0
221: Macro 4: 0
222: Amp.: 0.5
223: LFO1 smooth: 0
224: LFO2 smooth: 0
225: LFO3 smooth: 0
226: LFO4 smooth: 0
227: Pitch Bend: 0.5
228: Mod17 amt: 0.5
229: Mod17 out: 1
230: Mod18 amt: 0.5
231: Mod18 out: 1
232: Mod19 amt: 0.5
233: Mod19 out: 1
234: Mod20 amt: 0.5
235: Mod20 out: 1
236: Mod21 amt: 0.5
237: Mod21 out: 1
238: Mod22 amt: 0.5
239: Mod22 out: 1
240: Mod23 amt: 0.5
241: Mod23 out: 1
242: Mod24 amt: 0.5
243: Mod24 out: 1
244: Mod25 amt: 0.5
245: Mod25 out: 1
246: Mod26 amt: 0.5
247: Mod26 out: 1
248: Mod27 amt: 0.5
249: Mod27 out: 1
250: Mod28 amt: 0.5
251: Mod28 out: 1
252: Mod29 amt: 0.5
253: Mod29 out: 1
254: Mod30 amt: 0.5
255: Mod30 out: 1
256: Mod31 amt: 0.5
257: Mod31 out: 1
258: Mod32 amt: 0.5
259: Mod32 out: 1
260: LFO5 Rate: 0.5
261: LFO6 Rate: 0.5
262: LFO7 Rate: 0.5
263: LFO8 Rate: 0.5
264: LFO5 smooth: 0
265: LFO6 smooth: 0
266: LFO7 smooth: 0
267: LFO8 smooth: 0
268: FX Fil Pan: 0.5
269: Comp_Wet: 1
270: CompMB L: 0.5
271: CompMB M: 0.5
272: CompMB H: 0.5

Note that for the XML’s “Mod 1 amt”, if you go to the MATRIX panel of Serum, the AMOUNT parameter in the third column is non-default. For the XML’s “Mod 1 out”, which is non default, the corresponding thing in Serum is the OUTPUT column all the way on the right. Great, but how do I access parameters for things like SOURCE and DESTINATION? I’ve read the XML closely and don’t see them. Also, the Oscillators section has a dropdown menu for selecting the filepath of a wavetable. Could it be possible to get/set those with JUCE? What more can I debug? Thank you!

Probably not a parameter(saved in data chunk) hence only accessible through the UI

Hi guys!
I’m pretty noob in VST programs and plugin stuff,
I’m working on a deep learning project and want to generate real dataset based on TAL NoiseMaker plugin.
I tried to follow this thread, but I got confused a bit.

Is there a simple API in Python to generate audio from XML preset file? I need thousands of those.

Thanks,
Or Rimoch