2 * Audio module (plugin) metadata - header file
4 * Copyright (C) 2007-2008 Krzysztof Foltman
5 * Copyright (C) 2008 Thor Harald Johansen <thj@thj.no>
7 * This program is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Lesser General Public
9 * License as published by the Free Software Foundation; either
10 * version 2 of the License, or (at your option) any later version.
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Lesser General Public License for more details.
17 * You should have received a copy of the GNU Lesser General
18 * Public License along with this program; if not, write to the
19 * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20 * Boston, MA 02111-1307, USA.
23 #ifndef __CALF_METADATA_H
24 #define __CALF_METADATA_H
28 #define MONO_VU_METER_PARAMS param_meter_in, param_meter_out, param_clip_in, param_clip_out
29 #define STEREO_VU_METER_PARAMS param_meter_inL, param_meter_inR, param_meter_outL, param_meter_outR, param_clip_inL, param_clip_inR, param_clip_outL, param_clip_outR
31 namespace calf_plugins
{
33 struct flanger_metadata
: public plugin_metadata
<flanger_metadata
>
36 enum { par_delay
, par_depth
, par_rate
, par_fb
, par_stereo
, par_reset
, par_amount
, par_dryamount
, param_count
};
37 enum { in_count
= 2, out_count
= 2, ins_optional
= 0, outs_optional
= 0, support_midi
= false, require_midi
= false, rt_capable
= true };
38 PLUGIN_NAME_ID_LABEL("flanger", "flanger", "Flanger")
41 struct phaser_metadata
: public plugin_metadata
<phaser_metadata
>
43 enum { par_freq
, par_depth
, par_rate
, par_fb
, par_stages
, par_stereo
, par_reset
, par_amount
, par_dryamount
, param_count
};
44 enum { in_count
= 2, out_count
= 2, ins_optional
= 0, outs_optional
= 0, support_midi
= false, require_midi
= false, rt_capable
= true };
45 PLUGIN_NAME_ID_LABEL("phaser", "phaser", "Phaser")
48 struct filter_metadata
: public plugin_metadata
<filter_metadata
>
50 enum { par_cutoff
, par_resonance
, par_mode
, par_inertia
, param_count
};
51 enum { in_count
= 2, out_count
= 2, ins_optional
= 0, outs_optional
= 0, rt_capable
= true, require_midi
= false, support_midi
= false };
52 PLUGIN_NAME_ID_LABEL("filter", "filter", "Filter")
53 /// do not export mode and inertia as CVs, as those are settings and not parameters
54 bool is_cv(int param_no
) const { return param_no
!= par_mode
&& param_no
!= par_inertia
; }
57 /// Filterclavier - metadata
58 struct filterclavier_metadata
: public plugin_metadata
<filterclavier_metadata
>
60 enum { par_transpose
, par_detune
, par_max_resonance
, par_mode
, par_inertia
, param_count
};
61 enum { in_count
= 2, out_count
= 2, ins_optional
= 0, outs_optional
= 0, rt_capable
= true, require_midi
= true, support_midi
= true };
62 PLUGIN_NAME_ID_LABEL("filterclavier", "filterclavier", "Filterclavier")
63 /// do not export mode and inertia as CVs, as those are settings and not parameters
64 bool is_cv(int param_no
) const { return param_no
!= par_mode
&& param_no
!= par_inertia
; }
67 /// Envelope Filter - metadata
68 struct envelopefilter_metadata
: public plugin_metadata
<envelopefilter_metadata
>
70 enum { in_count
= 4, out_count
= 2, ins_optional
= 2, outs_optional
= 0, support_midi
= false, require_midi
= false, rt_capable
= true };
71 enum { param_bypass
, param_level_in
, param_level_out
,
72 STEREO_VU_METER_PARAMS
,
73 param_mix
, param_q
, param_mode
,
74 param_attack
, param_release
,
75 param_upper
, param_lower
, param_gain
,
76 param_sidechain
, param_response
,
78 PLUGIN_NAME_ID_LABEL("envelopefilter", "envelopefilter", "Envelope Filter")
81 struct reverb_metadata
: public plugin_metadata
<reverb_metadata
>
83 enum { par_clip
, par_meter_wet
, par_meter_out
, par_decay
, par_hfdamp
, par_roomsize
, par_diffusion
, par_amount
, par_dry
, par_predelay
, par_basscut
, par_treblecut
, param_count
};
84 enum { in_count
= 2, out_count
= 2, ins_optional
= 0, outs_optional
= 0, support_midi
= false, require_midi
= false, rt_capable
= true };
85 PLUGIN_NAME_ID_LABEL("reverb", "reverb", "Reverb")
88 struct vintage_delay_metadata
: public plugin_metadata
<vintage_delay_metadata
>
90 enum { param_bypass
, param_level_in
, param_level_out
,
91 STEREO_VU_METER_PARAMS
,
92 par_bpm
, par_bpm_host
, par_divide
,
93 par_time_l
, par_time_r
, par_feedback
,
94 par_amount
, par_mixmode
, par_medium
, par_dryamount
,
95 par_width
, par_sync
, par_timing
, par_frag
, par_ms
,
96 par_psubdiv
, par_pbeats
,
98 enum { in_count
= 2, out_count
= 2, ins_optional
= 0, outs_optional
= 0, rt_capable
= true, support_midi
= false, require_midi
= false };
99 PLUGIN_NAME_ID_LABEL("vintagedelay", "vintagedelay", "Vintage Delay")
102 struct comp_delay_metadata
: public plugin_metadata
<comp_delay_metadata
>
104 enum { par_distance_mm
, par_distance_cm
, par_distance_m
, par_dry
, par_wet
, param_temp
, param_bypass
, param_count
};
105 enum { in_count
= 2, out_count
= 2, ins_optional
= 1, outs_optional
= 1, rt_capable
= true, support_midi
= false, require_midi
= false };
106 PLUGIN_NAME_ID_LABEL("compdelay", "compdelay", "Compensation Delay Line")
109 struct haas_enhancer_metadata
: public plugin_metadata
<haas_enhancer_metadata
>
112 param_bypass
, param_level_in
, param_level_out
,
114 STEREO_VU_METER_PARAMS
,
115 param_meter_sideL
, param_meter_sideR
,
116 par_m_source
, par_m_phase
,
117 par_s_delay0
, par_s_balance0
, par_s_gain0
, par_s_phase0
,
118 par_s_delay1
, par_s_balance1
, par_s_gain1
, par_s_phase1
,
121 enum { in_count
= 2, out_count
= 2, ins_optional
= 0, outs_optional
= 0, rt_capable
= true, support_midi
= false, require_midi
= false };
122 PLUGIN_NAME_ID_LABEL("haasenhancer", "haasenhancer", "Haas Stereo Enhancer")
125 struct reverse_delay_metadata
: public plugin_metadata
<reverse_delay_metadata
>
127 enum { par_bpm
, par_bpm_host
, par_divide
, par_time_l
, par_time_r
, par_feedback
, par_amount
, par_width
, par_sync
, par_sync_led_l
, par_sync_led_r
, par_reset
, par_window
, param_count
};
128 enum { in_count
= 2, out_count
= 2, ins_optional
= 0, outs_optional
= 0, rt_capable
= true, support_midi
= false, require_midi
= false };
129 PLUGIN_NAME_ID_LABEL("reversedelay", "reversedelay", "Reverse Delay")
132 struct rotary_speaker_metadata
: public plugin_metadata
<rotary_speaker_metadata
>
135 enum { par_speed
, par_spacing
, par_shift
, par_moddepth
, par_treblespeed
, par_bassspeed
, par_micdistance
, par_reflection
, par_am_depth
, par_test
, par_meter_l
, par_meter_h
, param_count
};
136 enum { in_count
= 2, out_count
= 2, ins_optional
= 0, outs_optional
= 0, support_midi
= true, require_midi
= false, rt_capable
= true };
137 PLUGIN_NAME_ID_LABEL("rotary_speaker", "rotaryspeaker", "Rotary Speaker")
140 /// A multitap stereo chorus thing - metadata
141 struct multichorus_metadata
: public plugin_metadata
<multichorus_metadata
>
144 enum { par_delay
, par_depth
, par_rate
, par_stereo
, par_voices
, par_vphase
, par_amount
, par_dryamount
, par_freq
, par_freq2
, par_q
, par_overlap
, param_count
};
145 enum { in_count
= 2, out_count
= 2, ins_optional
= 0, outs_optional
= 0, rt_capable
= true, support_midi
= false, require_midi
= false };
146 PLUGIN_NAME_ID_LABEL("multichorus", "multichorus", "Multi Chorus")
155 /// Monosynth - metadata
156 struct monosynth_metadata
: public plugin_metadata
<monosynth_metadata
>
158 enum { wave_saw
, wave_sqr
, wave_pulse
, wave_sine
, wave_triangle
, wave_varistep
, wave_skewsaw
, wave_skewsqr
, wave_test1
, wave_test2
, wave_test3
, wave_test4
, wave_test5
, wave_test6
, wave_test7
, wave_test8
, wave_count
};
159 enum { flt_lp12
, flt_lp24
, flt_2lp12
, flt_hp12
, flt_lpbr
, flt_hpbr
, flt_bp6
, flt_2bp6
};
160 enum { par_wave1
, par_wave2
, par_pw1
, par_pw2
, par_detune
, par_osc2xpose
, par_oscmode
, par_oscmix
, par_filtertype
, par_cutoff
, par_resonance
, par_cutoffsep
, par_env1tocutoff
, par_env1tores
, par_env1toamp
,
161 par_env1attack
, par_env1decay
, par_env1sustain
, par_env1fade
, par_env1release
,
162 par_keyfollow
, par_legato
, par_portamento
, par_vel2filter
, par_vel2amp
, par_master
, par_pwhlrange
,
163 par_lforate
, par_lfodelay
, par_lfofilter
, par_lfopitch
, par_lfopw
, par_mwhl_lfo
, par_scaledetune
,
164 par_env2tocutoff
, par_env2tores
, par_env2toamp
,
165 par_env2attack
, par_env2decay
, par_env2sustain
, par_env2fade
, par_env2release
,
166 par_stretch1
, par_window1
,
167 par_lfo1trig
, par_lfo2trig
,
168 par_lfo2rate
, par_lfo2delay
,
169 par_o2unison
, par_o2unisonfrq
,
172 enum { in_count
= 0, out_count
= 2, ins_optional
= 0, outs_optional
= 0, support_midi
= true, require_midi
= true, rt_capable
= true };
173 enum { step_size
= 64, step_shift
= 6 };
174 enum { mod_matrix_slots
= 10 };
198 moddest_o2unisondetune
,
201 PLUGIN_NAME_ID_LABEL("monosynth", "monosynth", "Monosynth")
203 mod_matrix_metadata mm_metadata
;
205 monosynth_metadata();
206 /// Lookup of table edit interface
207 virtual const table_metadata_iface
*get_table_metadata_iface(const char *key
) const { if (!strcmp(key
, "mod_matrix")) return &mm_metadata
; else return NULL
; }
208 void get_configure_vars(std::vector
<std::string
> &names
) const;
211 /// Thor's compressor - metadata
212 /// Added some meters and stripped the weighting part
213 struct compressor_metadata
: public plugin_metadata
<compressor_metadata
>
215 enum { in_count
= 2, out_count
= 2, ins_optional
= 0, outs_optional
= 0, support_midi
= false, require_midi
= false, rt_capable
= true };
216 enum { param_bypass
, param_level_in
, MONO_VU_METER_PARAMS
,
217 param_threshold
, param_ratio
, param_attack
, param_release
, param_makeup
, param_knee
, param_detection
, param_stereo_link
, param_compression
, param_mix
,
219 PLUGIN_NAME_ID_LABEL("compressor", "compressor", "Compressor")
222 /// Damien's compressor - metadata
223 /// Added some meters and stripped the weighting part
224 struct monocompressor_metadata
: public plugin_metadata
<monocompressor_metadata
>
226 enum { in_count
= 1, out_count
= 1, ins_optional
= 0, outs_optional
= 0, support_midi
= false, require_midi
= false, rt_capable
= true };
227 enum { param_bypass
, param_level_in
, MONO_VU_METER_PARAMS
,
228 param_threshold
, param_ratio
, param_attack
, param_release
, param_makeup
, param_knee
, param_compression
, param_mix
,
230 PLUGIN_NAME_ID_LABEL("monocompressor", "monocompressor", "Mono Compressor")
233 /// Markus's sidechain compressor - metadata
234 struct sidechaincompressor_metadata
: public plugin_metadata
<sidechaincompressor_metadata
>
236 enum { in_count
= 4, out_count
= 2, ins_optional
= 2, outs_optional
= 0, support_midi
= false, require_midi
= false, rt_capable
= true };
237 enum { param_bypass
, param_level_in
, MONO_VU_METER_PARAMS
,
238 param_threshold
, param_ratio
, param_attack
, param_release
, param_makeup
, param_knee
, param_detection
, param_stereo_link
, param_compression
,
239 param_sc_mode
, param_f1_freq
, param_f2_freq
, param_f1_level
, param_f2_level
,
240 param_sc_listen
, param_f1_active
, param_f2_active
, param_sc_route
, param_sc_level
, param_mix
, param_count
};
241 PLUGIN_NAME_ID_LABEL("sidechaincompressor", "sidechaincompressor", "Sidechain Compressor")
244 /// Markus's multibandcompressor - metadata
245 struct multibandcompressor_metadata
: public plugin_metadata
<multibandcompressor_metadata
>
247 enum { in_count
= 2, out_count
= 2, ins_optional
= 0, outs_optional
= 0, support_midi
= false, require_midi
= false, rt_capable
= true };
248 enum { param_bypass
, param_level_in
, param_level_out
,
249 STEREO_VU_METER_PARAMS
,
250 param_freq0
, param_freq1
, param_freq2
,
252 param_threshold0
, param_ratio0
, param_attack0
, param_release0
, param_makeup0
, param_knee0
,
253 param_detection0
, param_compression0
, param_output0
, param_bypass0
, param_solo0
,
254 param_threshold1
, param_ratio1
, param_attack1
, param_release1
, param_makeup1
, param_knee1
,
255 param_detection1
, param_compression1
, param_output1
, param_bypass1
, param_solo1
,
256 param_threshold2
, param_ratio2
, param_attack2
, param_release2
, param_makeup2
, param_knee2
,
257 param_detection2
, param_compression2
, param_output2
, param_bypass2
, param_solo2
,
258 param_threshold3
, param_ratio3
, param_attack3
, param_release3
, param_makeup3
, param_knee3
,
259 param_detection3
, param_compression3
, param_output3
, param_bypass3
, param_solo3
,
262 PLUGIN_NAME_ID_LABEL("multibandcompressor", "multibandcompressor", "Multiband Compressor")
265 /// Markus's deesser - metadata
266 struct deesser_metadata
: public plugin_metadata
<deesser_metadata
>
268 enum { in_count
= 2, out_count
= 2, ins_optional
= 0, outs_optional
= 0, support_midi
= false, require_midi
= false, rt_capable
= true };
269 enum { param_bypass
, param_detected
, param_compression
, param_detected_led
, param_clip_out
,
270 param_detection
, param_mode
,
271 param_threshold
, param_ratio
, param_laxity
, param_makeup
,
272 param_f1_freq
, param_f2_freq
, param_f1_level
, param_f2_level
, param_f2_q
,
273 param_sc_listen
, param_count
};
274 PLUGIN_NAME_ID_LABEL("deesser", "deesser", "Deesser")
277 /// Damiens' Gate - metadata
278 /// Added some meters and stripped the weighting part
279 struct gate_metadata
: public plugin_metadata
<gate_metadata
>
281 enum { in_count
= 2, out_count
= 2, ins_optional
= 0, outs_optional
= 0, support_midi
= false, require_midi
= false, rt_capable
= true };
282 enum { param_bypass
, param_level_in
, MONO_VU_METER_PARAMS
,
283 param_range
, param_threshold
, param_ratio
, param_attack
, param_release
, param_makeup
, param_knee
, param_detection
, param_stereo_link
, param_gating
,
285 PLUGIN_NAME_ID_LABEL("gate", "gate", "Gate")
288 /// Markus's sidechain gate - metadata
289 struct sidechaingate_metadata
: public plugin_metadata
<sidechaingate_metadata
>
291 enum { in_count
= 4, out_count
= 2, ins_optional
= 2, outs_optional
= 0, support_midi
= false, require_midi
= false, rt_capable
= true };
292 enum { param_bypass
, param_level_in
, MONO_VU_METER_PARAMS
,
293 param_range
, param_threshold
, param_ratio
, param_attack
, param_release
, param_makeup
, param_knee
, param_detection
, param_stereo_link
, param_gating
,
294 param_sc_mode
, param_f1_freq
, param_f2_freq
, param_f1_level
, param_f2_level
,
295 param_sc_listen
, param_f1_active
, param_f2_active
, param_sc_route
, param_sc_level
, param_count
};
296 PLUGIN_NAME_ID_LABEL("sidechaingate", "sidechaingate", "Sidechain Gate")
299 /// Markus's multiband gate - metadata
300 struct multibandgate_metadata
: public plugin_metadata
<multibandgate_metadata
>
302 enum { in_count
= 2, out_count
= 2, ins_optional
= 0, outs_optional
= 0, support_midi
= false, require_midi
= false, rt_capable
= true };
303 enum { param_bypass
, param_level_in
, param_level_out
,
304 STEREO_VU_METER_PARAMS
,
305 param_freq0
, param_freq1
, param_freq2
,
307 param_range0
, param_threshold0
, param_ratio0
, param_attack0
, param_release0
, param_makeup0
, param_knee0
,
308 param_detection0
, param_gating0
, param_output0
, param_bypass0
, param_solo0
,
309 param_range1
, param_threshold1
, param_ratio1
, param_attack1
, param_release1
, param_makeup1
, param_knee1
,
310 param_detection1
, param_gating1
, param_output1
, param_bypass1
, param_solo1
,
311 param_range2
, param_threshold2
, param_ratio2
, param_attack2
, param_release2
, param_makeup2
, param_knee2
,
312 param_detection2
, param_gating2
, param_output2
, param_bypass2
, param_solo2
,
313 param_range3
, param_threshold3
, param_ratio3
, param_attack3
, param_release3
, param_makeup3
, param_knee3
,
314 param_detection3
, param_gating3
, param_output3
, param_bypass3
, param_solo3
,
317 PLUGIN_NAME_ID_LABEL("multibandgate", "multibandgate", "Multiband Gate")
320 /// Markus's limiter - metadata
321 struct limiter_metadata
: public plugin_metadata
<limiter_metadata
>
323 enum { in_count
= 2, out_count
= 2, ins_optional
= 0, outs_optional
= 0, support_midi
= false, require_midi
= false, rt_capable
= true };
324 enum { param_bypass
, param_level_in
, param_level_out
,
325 STEREO_VU_METER_PARAMS
,
326 param_limit
, param_attack
, param_release
,
328 param_asc
, param_asc_led
, param_asc_coeff
,
331 PLUGIN_NAME_ID_LABEL("limiter", "limiter", "Limiter")
334 /// Markus's and Chrischis multibandlimiter - metadata
335 struct multibandlimiter_metadata
: public plugin_metadata
<multibandlimiter_metadata
>
337 enum { in_count
= 2, out_count
= 2, ins_optional
= 0, outs_optional
= 0, support_midi
= false, require_midi
= false, rt_capable
= true };
338 enum { param_bypass
, param_level_in
, param_level_out
,
339 STEREO_VU_METER_PARAMS
,
340 param_freq0
, param_freq1
, param_freq2
,
342 param_limit
, param_attack
, param_release
, param_minrel
,
343 param_att0
, param_att1
, param_att2
, param_att3
,
344 param_weight0
, param_weight1
, param_weight2
, param_weight3
,
345 param_release0
, param_release1
, param_release2
, param_release3
,
346 param_solo0
, param_solo1
, param_solo2
, param_solo3
,
347 param_effrelease0
, param_effrelease1
, param_effrelease2
, param_effrelease3
,
348 param_asc
, param_asc_led
, param_asc_coeff
,
351 PLUGIN_NAME_ID_LABEL("multibandlimiter", "multibandlimiter", "Multiband Limiter")
354 /// Markus's and Chrischis sidechainlimiter - metadata
355 struct sidechainlimiter_metadata
: public plugin_metadata
<sidechainlimiter_metadata
>
357 enum { in_count
= 4, out_count
= 2, ins_optional
= 2, outs_optional
= 0, support_midi
= false, require_midi
= false, rt_capable
= true };
358 enum { param_bypass
, param_level_in
, param_level_out
,
359 STEREO_VU_METER_PARAMS
,
360 param_meter_scL
, param_meter_scR
,
361 param_freq0
, param_freq1
, param_freq2
,
363 param_limit
, param_attack
, param_release
, param_minrel
,
364 param_att0
, param_att1
, param_att2
, param_att3
, param_att_sc
,
365 param_weight0
, param_weight1
, param_weight2
, param_weight3
, param_weight_sc
,
366 param_release0
, param_release1
, param_release2
, param_release3
, param_release_sc
,
367 param_solo0
, param_solo1
, param_solo2
, param_solo3
, param_solo_sc
,
368 param_effrelease0
, param_effrelease1
, param_effrelease2
, param_effrelease3
, param_effrelease_sc
,
369 param_asc
, param_asc_led
, param_asc_coeff
,
370 param_oversampling
, param_level_sc
,
372 PLUGIN_NAME_ID_LABEL("sidechainlimiter", "sidechainlimiter", "Sidechain Limiter")
375 /// Damien's RIAA and CD Emphasis - metadata
376 struct emphasis_metadata
: public plugin_metadata
<emphasis_metadata
>
378 enum { in_count
= 2, out_count
= 2, ins_optional
= 0, outs_optional
= 0, support_midi
= false, require_midi
= false, rt_capable
= true };
379 enum { param_bypass
, param_level_in
, param_level_out
, STEREO_VU_METER_PARAMS
, param_mode
, param_type
,
381 PLUGIN_NAME_ID_LABEL("emphasis", "emphasis", "Emphasis")
384 /// Markus's 5-band EQ - metadata
385 struct equalizer5band_metadata
: public plugin_metadata
<equalizer5band_metadata
>
387 enum { in_count
= 2, out_count
= 2, ins_optional
= 0, outs_optional
= 0, support_midi
= false, require_midi
= false, rt_capable
= true };
388 enum { param_bypass
, param_level_in
, param_level_out
,
389 STEREO_VU_METER_PARAMS
,
390 param_ls_active
, param_ls_level
, param_ls_freq
, param_ls_q
,
391 param_hs_active
, param_hs_level
, param_hs_freq
, param_hs_q
,
392 param_p1_active
, param_p1_level
, param_p1_freq
, param_p1_q
,
393 param_p2_active
, param_p2_level
, param_p2_freq
, param_p2_q
,
394 param_p3_active
, param_p3_level
, param_p3_freq
, param_p3_q
,
395 param_individuals
, param_zoom
, param_analyzer_active
, param_analyzer_mode
,
397 // dummy parameter numbers, shouldn't be used EVER, they're only there to avoid pushing LP/HP filters to a separate class
398 // and potentially making inlining and optimization harder for the compiler
399 enum { param_lp_active
= 0xDEADBEEF, param_hp_active
, param_hp_mode
, param_lp_mode
, param_hp_freq
, param_lp_freq
, param_hp_q
, param_lp_q
};
400 enum { PeakBands
= 3, first_graph_param
= param_ls_active
, last_graph_param
= param_p3_q
};
401 PLUGIN_NAME_ID_LABEL("equalizer5band", "eq5", "Equalizer 5 Band")
404 /// Markus's 8-band EQ - metadata
405 struct equalizer8band_metadata
: public plugin_metadata
<equalizer8band_metadata
>
407 enum { in_count
= 2, out_count
= 2, ins_optional
= 0, outs_optional
= 0, support_midi
= false, require_midi
= false, rt_capable
= true };
408 enum { param_bypass
, param_level_in
, param_level_out
,
409 STEREO_VU_METER_PARAMS
,
410 param_hp_active
, param_hp_freq
, param_hp_mode
, param_hp_q
,
411 param_lp_active
, param_lp_freq
, param_lp_mode
, param_lp_q
,
412 param_ls_active
, param_ls_level
, param_ls_freq
, param_ls_q
,
413 param_hs_active
, param_hs_level
, param_hs_freq
, param_hs_q
,
414 param_p1_active
, param_p1_level
, param_p1_freq
, param_p1_q
,
415 param_p2_active
, param_p2_level
, param_p2_freq
, param_p2_q
,
416 param_p3_active
, param_p3_level
, param_p3_freq
, param_p3_q
,
417 param_p4_active
, param_p4_level
, param_p4_freq
, param_p4_q
,
418 param_individuals
, param_zoom
, param_analyzer_active
, param_analyzer_mode
,
420 enum { PeakBands
= 4, first_graph_param
= param_hp_active
, last_graph_param
= param_p4_q
};
421 PLUGIN_NAME_ID_LABEL("equalizer8band", "eq8", "Equalizer 8 Band")
423 /// Markus's 12-band EQ - metadata
424 struct equalizer12band_metadata
: public plugin_metadata
<equalizer12band_metadata
>
426 enum { in_count
= 2, out_count
= 2, ins_optional
= 0, outs_optional
= 0, support_midi
= false, require_midi
= false, rt_capable
= true };
427 enum { param_bypass
, param_level_in
, param_level_out
,
428 STEREO_VU_METER_PARAMS
,
429 param_hp_active
, param_hp_freq
, param_hp_mode
, param_hp_q
,
430 param_lp_active
, param_lp_freq
, param_lp_mode
, param_lp_q
,
431 param_ls_active
, param_ls_level
, param_ls_freq
, param_ls_q
,
432 param_hs_active
, param_hs_level
, param_hs_freq
, param_hs_q
,
433 param_p1_active
, param_p1_level
, param_p1_freq
, param_p1_q
,
434 param_p2_active
, param_p2_level
, param_p2_freq
, param_p2_q
,
435 param_p3_active
, param_p3_level
, param_p3_freq
, param_p3_q
,
436 param_p4_active
, param_p4_level
, param_p4_freq
, param_p4_q
,
437 param_p5_active
, param_p5_level
, param_p5_freq
, param_p5_q
,
438 param_p6_active
, param_p6_level
, param_p6_freq
, param_p6_q
,
439 param_p7_active
, param_p7_level
, param_p7_freq
, param_p7_q
,
440 param_p8_active
, param_p8_level
, param_p8_freq
, param_p8_q
,
441 param_individuals
, param_zoom
, param_analyzer_active
, param_analyzer_mode
,
443 enum { PeakBands
= 8, first_graph_param
= param_hp_active
, last_graph_param
= param_p8_q
};
444 PLUGIN_NAME_ID_LABEL("equalizer12band", "eq12", "Equalizer 12 Band")
446 /// 30-band EQ - metadata
447 struct equalizer30band_metadata
: public plugin_metadata
<equalizer30band_metadata
>
449 enum { in_count
= 2, out_count
= 2, ins_optional
= 0, outs_optional
= 0, support_midi
= false, require_midi
= false, rt_capable
= true };
451 param_level_in
, param_level_in_vuL
, param_level_in_vuR
, param_level_in_clipL
, param_level_in_clipR
,
452 param_bypass
, param_filters
,
453 param_gainscale1
, param_gainscale2
,
454 param_level_out
, param_level_out_vuL
, param_level_out_vuR
, param_level_out_clipL
, param_level_out_clipR
,
457 param_gain10
, param_gain_scale10
,
458 param_gain11
, param_freq11
, param_gain_scale11
,
459 param_gain12
, param_freq12
, param_gain_scale12
,
460 param_gain13
, param_freq13
, param_gain_scale13
,
461 param_gain14
, param_freq14
, param_gain_scale14
,
462 param_gain15
, param_freq15
, param_gain_scale15
,
463 param_gain16
, param_freq16
, param_gain_scale16
,
464 param_gain17
, param_freq17
, param_gain_scale17
,
465 param_gain18
, param_freq18
, param_gain_scale18
,
466 param_gain19
, param_freq19
, param_gain_scale19
,
467 param_gain110
, param_freq110
, param_gain_scale110
,
468 param_gain111
, param_freq111
, param_gain_scale111
,
469 param_gain112
, param_freq112
, param_gain_scale112
,
470 param_gain113
, param_freq113
, param_gain_scale113
,
471 param_gain114
, param_freq114
, param_gain_scale114
,
472 param_gain115
, param_freq115
, param_gain_scale115
,
473 param_gain116
, param_freq116
, param_gain_scale116
,
474 param_gain117
, param_freq117
, param_gain_scale117
,
475 param_gain118
, param_freq118
, param_gain_scale118
,
476 param_gain119
, param_freq119
, param_gain_scale119
,
477 param_gain120
, param_freq120
, param_gain_scale120
,
478 param_gain121
, param_freq121
, param_gain_scale121
,
479 param_gain122
, param_freq122
, param_gain_scale122
,
480 param_gain123
, param_freq123
, param_gain_scale123
,
481 param_gain124
, param_freq124
, param_gain_scale124
,
482 param_gain125
, param_freq125
, param_gain_scale125
,
483 param_gain126
, param_freq126
, param_gain_scale126
,
484 param_gain127
, param_freq127
, param_gain_scale127
,
485 param_gain128
, param_freq128
, param_gain_scale128
,
486 param_gain129
, param_freq129
, param_gain_scale129
,
487 param_gain130
, param_freq130
, param_gain_scale130
,
490 param_gain20
, param_gain_scale20
,
491 param_gain21
, param_freq21
, param_gain_scale21
,
492 param_gain22
, param_freq22
, param_gain_scale22
,
493 param_gain23
, param_freq23
, param_gain_scale23
,
494 param_gain24
, param_freq24
, param_gain_scale24
,
495 param_gain25
, param_freq25
, param_gain_scale25
,
496 param_gain26
, param_freq26
, param_gain_scale26
,
497 param_gain27
, param_freq27
, param_gain_scale27
,
498 param_gain28
, param_freq28
, param_gain_scale28
,
499 param_gain29
, param_freq29
, param_gain_scale29
,
500 param_gain210
, param_freq210
, param_gain_scale210
,
501 param_gain211
, param_freq211
, param_gain_scale211
,
502 param_gain212
, param_freq212
, param_gain_scale212
,
503 param_gain213
, param_freq213
, param_gain_scale213
,
504 param_gain214
, param_freq214
, param_gain_scale214
,
505 param_gain215
, param_freq215
, param_gain_scale215
,
506 param_gain216
, param_freq216
, param_gain_scale216
,
507 param_gain217
, param_freq217
, param_gain_scale217
,
508 param_gain218
, param_freq218
, param_gain_scale218
,
509 param_gain219
, param_freq219
, param_gain_scale219
,
510 param_gain220
, param_freq220
, param_gain_scale220
,
511 param_gain221
, param_freq221
, param_gain_scale221
,
512 param_gain222
, param_freq222
, param_gain_scale222
,
513 param_gain223
, param_freq223
, param_gain_scale223
,
514 param_gain224
, param_freq224
, param_gain_scale224
,
515 param_gain225
, param_freq225
, param_gain_scale225
,
516 param_gain226
, param_freq226
, param_gain_scale226
,
517 param_gain227
, param_freq227
, param_gain_scale227
,
518 param_gain228
, param_freq228
, param_gain_scale228
,
519 param_gain229
, param_freq229
, param_gain_scale229
,
520 param_gain230
, param_freq230
, param_gain_scale230
,
523 enum { band_params
= 3 };
524 enum { gain_step
= 6 };
526 PLUGIN_NAME_ID_LABEL("equalizer30band", "eq30", "Equalizer 30 Band")
529 struct xover2_metadata
: public plugin_metadata
<xover2_metadata
>
531 enum { in_count
= 2, out_count
= 4, ins_optional
= 0, outs_optional
= 0, support_midi
= false, require_midi
= false, rt_capable
= true };
532 enum { param_level
, param_meter_0
, param_meter_1
, param_mode
,
534 param_level1
, param_active1
, param_phase1
, param_delay1
, param_meter_01
, param_meter_11
,
535 param_level2
, param_active2
, param_phase2
, param_delay2
, param_meter_02
, param_meter_12
,
537 enum { channels
= 2, bands
= 2 };
538 PLUGIN_NAME_ID_LABEL("xover2band", "xover2", "X-Over 2 Band")
540 struct xover3_metadata
: public plugin_metadata
<xover3_metadata
>
542 enum { in_count
= 2, out_count
= 6, ins_optional
= 0, outs_optional
= 0, support_midi
= false, require_midi
= false, rt_capable
= true };
543 enum { param_level
, param_meter_0
, param_meter_1
, param_mode
,
544 param_freq0
, param_freq1
,
545 param_level1
, param_active1
, param_phase1
, param_delay1
, param_meter_01
, param_meter_11
,
546 param_level2
, param_active2
, param_phase2
, param_delay2
, param_meter_02
, param_meter_12
,
547 param_level3
, param_active3
, param_phase3
, param_delay3
, param_meter_03
, param_meter_13
,
549 enum { channels
= 2, bands
= 3 };
550 PLUGIN_NAME_ID_LABEL("xover3band", "xover3", "X-Over 3 Band")
552 struct xover4_metadata
: public plugin_metadata
<xover4_metadata
>
554 enum { in_count
= 2, out_count
= 8, ins_optional
= 0, outs_optional
= 0, support_midi
= false, require_midi
= false, rt_capable
= true };
555 enum { param_level
, param_meter_0
, param_meter_1
, param_mode
,
556 param_freq0
, param_freq1
, param_freq2
,
557 param_level1
, param_active1
, param_phase1
, param_delay1
, param_meter_01
, param_meter_11
,
558 param_level2
, param_active2
, param_phase2
, param_delay2
, param_meter_02
, param_meter_12
,
559 param_level3
, param_active3
, param_phase3
, param_delay3
, param_meter_03
, param_meter_13
,
560 param_level4
, param_active4
, param_phase4
, param_delay4
, param_meter_04
, param_meter_14
,
562 enum { channels
= 2, bands
= 4 };
563 PLUGIN_NAME_ID_LABEL("xover4band", "xover4", "X-Over 4 Band")
566 /// Markus and Chrischis Vocoder - metadata
567 struct vocoder_metadata
: public plugin_metadata
<vocoder_metadata
>
569 enum { in_count
= 4, out_count
= 2, ins_optional
= 0, outs_optional
= 0, support_midi
= false, require_midi
= false, rt_capable
= true };
570 enum { param_bypass
, param_link
, param_detectors
,
571 param_carrier_in
, param_carrier_inL
, param_carrier_inR
, param_carrier_clip_inL
, param_carrier_clip_inR
,
572 param_mod_in
, param_mod_inL
, param_mod_inR
, param_mod_clip_inL
, param_mod_clip_inR
,
573 param_out
, param_outL
, param_outR
, param_clip_outL
, param_clip_outR
,
574 param_carrier
, param_mod
, param_proc
, param_order
, param_bands
, param_hiq
,
575 param_attack
, param_release
, param_analyzer
,
576 param_volume0
, param_pan0
, param_noise0
, param_mod0
, param_solo0
, param_level0
,
577 param_volume1
, param_pan1
, param_noise1
, param_mod1
, param_solo1
, param_level1
,
578 param_volume2
, param_pan2
, param_noise2
, param_mod2
, param_solo2
, param_level2
,
579 param_volume3
, param_pan3
, param_noise3
, param_mod3
, param_solo3
, param_level3
,
580 param_volume4
, param_pan4
, param_noise4
, param_mod4
, param_solo4
, param_level4
,
581 param_volume5
, param_pan5
, param_noise5
, param_mod5
, param_solo5
, param_level5
,
582 param_volume6
, param_pan6
, param_noise6
, param_mod6
, param_solo6
, param_level6
,
583 param_volume7
, param_pan7
, param_noise7
, param_mod7
, param_solo7
, param_level7
,
584 param_volume8
, param_pan8
, param_noise8
, param_mod8
, param_solo8
, param_level8
,
585 param_volume9
, param_pan9
, param_noise9
, param_mod9
, param_solo9
, param_level9
,
586 param_volume10
, param_pan10
, param_noise10
, param_mod10
, param_solo10
, param_level10
,
587 param_volume11
, param_pan11
, param_noise11
, param_mod11
, param_solo11
, param_level11
,
588 param_volume12
, param_pan12
, param_noise12
, param_mod12
, param_solo12
, param_level12
,
589 param_volume13
, param_pan13
, param_noise13
, param_mod13
, param_solo13
, param_level13
,
590 param_volume14
, param_pan14
, param_noise14
, param_mod14
, param_solo14
, param_level14
,
591 param_volume15
, param_pan15
, param_noise15
, param_mod15
, param_solo15
, param_level15
,
592 param_volume16
, param_pan16
, param_noise16
, param_mod16
, param_solo16
, param_level16
,
593 param_volume17
, param_pan17
, param_noise17
, param_mod17
, param_solo17
, param_level17
,
594 param_volume18
, param_pan18
, param_noise18
, param_mod18
, param_solo18
, param_level18
,
595 param_volume19
, param_pan19
, param_noise19
, param_mod19
, param_solo19
, param_level19
,
596 param_volume20
, param_pan20
, param_noise20
, param_mod20
, param_solo20
, param_level20
,
597 param_volume21
, param_pan21
, param_noise21
, param_mod21
, param_solo21
, param_level21
,
598 param_volume22
, param_pan22
, param_noise22
, param_mod22
, param_solo22
, param_level22
,
599 param_volume23
, param_pan23
, param_noise23
, param_mod23
, param_solo23
, param_level23
,
600 param_volume24
, param_pan24
, param_noise24
, param_mod24
, param_solo24
, param_level24
,
601 param_volume25
, param_pan25
, param_noise25
, param_mod25
, param_solo25
, param_level25
,
602 param_volume26
, param_pan26
, param_noise26
, param_mod26
, param_solo26
, param_level26
,
603 param_volume27
, param_pan27
, param_noise27
, param_mod27
, param_solo27
, param_level27
,
604 param_volume28
, param_pan28
, param_noise28
, param_mod28
, param_solo28
, param_level28
,
605 param_volume29
, param_pan29
, param_noise29
, param_mod29
, param_solo29
, param_level29
,
606 param_volume30
, param_pan30
, param_noise30
, param_mod30
, param_solo30
, param_level30
,
607 param_volume31
, param_pan31
, param_noise31
, param_mod31
, param_solo31
, param_level31
,
609 enum { band_params
= 6 };
610 PLUGIN_NAME_ID_LABEL("vocoder", "vocoder", "Vocoder")
613 /// Markus's Pulsator - metadata
614 struct pulsator_metadata
: public plugin_metadata
<pulsator_metadata
>
616 enum { in_count
= 2, out_count
= 2, ins_optional
= 0, outs_optional
= 0, support_midi
= false, require_midi
= false, rt_capable
= true };
617 enum { param_bypass
, param_level_in
, param_level_out
, STEREO_VU_METER_PARAMS
,
618 param_mode
, param_freq
, param_amount
, param_offset
, param_mono
, param_reset
, param_count
};
619 PLUGIN_NAME_ID_LABEL("pulsator", "pulsator", "Pulsator")
622 /// Markus's Ring Modulator - metadata
623 struct ringmodulator_metadata
: public plugin_metadata
<ringmodulator_metadata
>
625 enum { in_count
= 2, out_count
= 2, ins_optional
= 0, outs_optional
= 0, support_midi
= false, require_midi
= false, rt_capable
= true };
626 enum { param_bypass
, param_level_in
, param_level_out
, STEREO_VU_METER_PARAMS
,
627 param_mod_mode
, param_mod_freq
, param_mod_amount
, param_mod_phase
, param_mod_detune
, param_mod_listen
,
629 param_lfo1_mode
, param_lfo1_freq
, param_lfo1_reset
,
630 param_lfo1_mod_freq_lo
, param_lfo1_mod_freq_hi
, param_lfo1_mod_freq_active
,
631 param_lfo1_mod_detune_lo
, param_lfo1_mod_detune_hi
, param_lfo1_mod_detune_active
,
634 param_lfo2_mode
, param_lfo2_freq
, param_lfo2_reset
,
635 param_lfo2_lfo1_freq_lo
, param_lfo2_lfo1_freq_hi
, param_lfo2_lfo1_freq_active
,
636 param_lfo2_mod_amount_lo
, param_lfo2_mod_amount_hi
, param_lfo2_mod_amount_active
,
640 PLUGIN_NAME_ID_LABEL("ringmodulator", "ringmodulator", "Ring Modulator")
643 /// Markus's Saturator - metadata
644 struct saturator_metadata
: public plugin_metadata
<saturator_metadata
>
646 enum { in_count
= 2, out_count
= 2, ins_optional
= 1, outs_optional
= 1, support_midi
= false, require_midi
= false, rt_capable
= true };
647 enum { param_bypass
, param_level_in
, param_level_out
,
648 STEREO_VU_METER_PARAMS
,
649 param_mix
, param_drive
, param_blend
,
650 param_lp_pre_freq
, param_hp_pre_freq
, param_lp_post_freq
, param_hp_post_freq
,
651 param_p_freq
, param_p_level
, param_p_q
, param_count
};
652 PLUGIN_NAME_ID_LABEL("saturator", "saturator", "Saturator")
654 /// Markus's Exciter - metadata
655 struct exciter_metadata
: public plugin_metadata
<exciter_metadata
>
657 enum { in_count
= 2, out_count
= 2, ins_optional
= 1, outs_optional
= 1, support_midi
= false, require_midi
= false, rt_capable
= true };
658 enum { param_bypass
, param_level_in
, param_level_out
, param_amount
, MONO_VU_METER_PARAMS
, param_drive
, param_blend
, param_meter_drive
,
659 param_freq
, param_listen
, param_ceil_active
, param_ceil
, param_count
};
660 PLUGIN_NAME_ID_LABEL("exciter", "exciter", "Exciter")
662 /// Markus's Bass Enhancer - metadata
663 struct bassenhancer_metadata
: public plugin_metadata
<bassenhancer_metadata
>
665 enum { in_count
= 2, out_count
= 2, ins_optional
= 1, outs_optional
= 1, support_midi
= false, require_midi
= false, rt_capable
= true };
666 enum { param_bypass
, param_level_in
, param_level_out
, param_amount
, MONO_VU_METER_PARAMS
, param_drive
, param_blend
, param_meter_drive
,
667 param_freq
, param_listen
, param_floor_active
, param_floor
, param_count
};
668 PLUGIN_NAME_ID_LABEL("bassenhancer", "bassenhancer", "Bass Enhancer")
670 /// Markus's and Chrischi's Crusher Module - metadata
671 struct crusher_metadata
: public plugin_metadata
<crusher_metadata
>
673 enum { in_count
= 2, out_count
= 2, ins_optional
= 1, outs_optional
= 1, support_midi
= false, require_midi
= false, rt_capable
= true };
674 enum { param_bypass
, param_level_in
, param_level_out
,
675 STEREO_VU_METER_PARAMS
,
676 param_bits
, param_morph
, param_mode
, param_dc
, param_aa
,
677 param_samples
, param_lfo
, param_lforange
, param_lforate
,
679 PLUGIN_NAME_ID_LABEL("crusher", "crusher", "Crusher")
681 /// Markus's Stereo Module - metadata
682 struct stereo_metadata
: public plugin_metadata
<stereo_metadata
>
684 enum { in_count
= 2, out_count
= 2, ins_optional
= 1, outs_optional
= 1, support_midi
= false, require_midi
= false, rt_capable
= true };
685 enum { param_bypass
, param_level_in
, param_level_out
,
686 STEREO_VU_METER_PARAMS
, param_balance_in
, param_balance_out
, param_softclip
,
687 param_mute_l
, param_mute_r
, param_phase_l
, param_phase_r
,
688 param_mode
, param_slev
, param_sbal
, param_mlev
, param_mpan
,
689 param_stereo_base
, param_delay
,
690 param_meter_phase
, param_sc_level
, param_stereo_phase
,
692 PLUGIN_NAME_ID_LABEL("stereo", "stereo", "Stereo Tools")
694 /// Markus's Mono Module - metadata
695 struct mono_metadata
: public plugin_metadata
<mono_metadata
>
697 enum { in_count
= 1, out_count
= 2, ins_optional
= 0, outs_optional
= 0, support_midi
= false, require_midi
= false, rt_capable
= true };
698 enum { param_bypass
, param_level_in
, param_level_out
,
699 param_meter_in
, param_meter_outL
, param_meter_outR
, param_clip_in
,param_clip_outL
, param_clip_outR
,
700 param_balance_out
, param_softclip
,
701 param_mute_l
, param_mute_r
, param_phase_l
, param_phase_r
,
702 param_delay
, param_stereo_base
, param_stereo_phase
, param_sc_level
,
704 PLUGIN_NAME_ID_LABEL("mono", "mono", "Mono Input")
706 /// Markus's and Chrischi's Analyzer
707 struct analyzer_metadata
: public plugin_metadata
<analyzer_metadata
>
709 enum { in_count
= 2, out_count
= 2, ins_optional
= 1, outs_optional
= 1, support_midi
= false, require_midi
= false, rt_capable
= true };
710 enum { param_meter_L
, param_meter_R
, param_clip_L
, param_clip_R
,
711 param_analyzer_level
, param_analyzer_mode
,
712 param_analyzer_scale
, param_analyzer_post
,
713 param_analyzer_view
, param_analyzer_smoothing
,
714 param_analyzer_windowing
,
715 param_analyzer_accuracy
, param_analyzer_speed
,
716 param_analyzer_display
, param_analyzer_hold
, param_analyzer_freeze
,
717 param_gonio_mode
, param_gonio_use_fade
, param_gonio_fade
, param_gonio_accuracy
, param_gonio_display
,
719 PLUGIN_NAME_ID_LABEL("analyzer", "analyzer", "Analyzer")
721 /// Markus's and Chrischi's Transient Designer
722 struct transientdesigner_metadata
: public plugin_metadata
<transientdesigner_metadata
>
724 enum { in_count
= 2, out_count
= 2, ins_optional
= 1, outs_optional
= 1, support_midi
= false, require_midi
= false, rt_capable
= true };
725 enum { param_bypass
, param_level_in
, param_level_out
,
726 STEREO_VU_METER_PARAMS
, param_mix
,
727 param_attack_time
, param_attack_boost
,
728 param_sustain_threshold
, param_release_time
, param_release_boost
,
729 param_display
, param_display_threshold
, param_lookahead
,
730 param_view
, param_hipass
, param_lopass
, param_hp_mode
, param_lp_mode
, param_listen
,
732 PLUGIN_NAME_ID_LABEL("transientdesigner", "transientdesigner", "Transient Designer")
734 /// Chrischi's and Markus's Tape Simulator
735 struct tapesimulator_metadata
: public plugin_metadata
<tapesimulator_metadata
>
737 enum { in_count
= 2, out_count
= 2, ins_optional
= 1, outs_optional
= 1, support_midi
= false, require_midi
= false, rt_capable
= true };
738 enum { param_bypass
, param_level_in
, param_level_out
,
739 STEREO_VU_METER_PARAMS
, param_mix
, param_lp
,
740 param_speed
, param_noise
, param_mechanical
, param_magnetical
, param_post
,
742 PLUGIN_NAME_ID_LABEL("tapesimulator", "tapesimulator", "Tape Simulator")
744 /// Organ - enums for parameter IDs etc. (this mess is caused by organ split between plugin and generic class - which was
745 /// a bad design decision and should be sorted out some day) XXXKF @todo
749 par_drawbar1
, par_drawbar2
, par_drawbar3
, par_drawbar4
, par_drawbar5
, par_drawbar6
, par_drawbar7
, par_drawbar8
, par_drawbar9
,
750 par_frequency1
, par_frequency2
, par_frequency3
, par_frequency4
, par_frequency5
, par_frequency6
, par_frequency7
, par_frequency8
, par_frequency9
,
751 par_waveform1
, par_waveform2
, par_waveform3
, par_waveform4
, par_waveform5
, par_waveform6
, par_waveform7
, par_waveform8
, par_waveform9
,
752 par_detune1
, par_detune2
, par_detune3
, par_detune4
, par_detune5
, par_detune6
, par_detune7
, par_detune8
, par_detune9
,
753 par_phase1
, par_phase2
, par_phase3
, par_phase4
, par_phase5
, par_phase6
, par_phase7
, par_phase8
, par_phase9
,
754 par_pan1
, par_pan2
, par_pan3
, par_pan4
, par_pan5
, par_pan6
, par_pan7
, par_pan8
, par_pan9
,
755 par_routing1
, par_routing2
, par_routing3
, par_routing4
, par_routing5
, par_routing6
, par_routing7
, par_routing8
, par_routing9
,
757 par_percdecay
, par_perclevel
, par_percwave
, par_percharm
, par_percvel2amp
,
758 par_percfmdecay
, par_percfmdepth
, par_percfmwave
, par_percfmharm
, par_percvel2fm
,
759 par_perctrigger
, par_percstereo
,
763 par_f1cutoff
, par_f1res
, par_f1env1
, par_f1env2
, par_f1env3
, par_f1keyf
,
764 par_f2cutoff
, par_f2res
, par_f2env1
, par_f2env2
, par_f2env3
, par_f2keyf
,
765 par_eg1attack
, par_eg1decay
, par_eg1sustain
, par_eg1release
, par_eg1velscl
, par_eg1ampctl
,
766 par_eg2attack
, par_eg2decay
, par_eg2sustain
, par_eg2release
, par_eg2velscl
, par_eg2ampctl
,
767 par_eg3attack
, par_eg3decay
, par_eg3sustain
, par_eg3release
, par_eg3velscl
, par_eg3ampctl
,
768 par_lforate
, par_lfoamt
, par_lfowet
, par_lfophase
, par_lfomode
, par_lfotype
,
769 par_transpose
, par_detune
,
779 enum organ_waveform
{
781 wave_sinepl1
, wave_sinepl2
, wave_sinepl3
,
782 wave_ssaw
, wave_ssqr
, wave_spls
, wave_saw
, wave_sqr
, wave_pulse
, wave_sinepl05
, wave_sqr05
, wave_halfsin
, wave_clvg
, wave_bell
, wave_bell2
,
783 wave_w1
, wave_w2
, wave_w3
, wave_w4
, wave_w5
, wave_w6
, wave_w7
, wave_w8
, wave_w9
,
784 wave_dsaw
, wave_dsqr
, wave_dpls
,
786 wave_strings
= wave_count_small
,
795 wave_count_big
= wave_count
- wave_count_small
832 struct organ_metadata
: public organ_enums
, public plugin_metadata
<organ_metadata
>
834 enum { in_count
= 0, out_count
= 2, ins_optional
= 0, outs_optional
= 0, support_midi
= true, require_midi
= true, rt_capable
= true };
835 PLUGIN_NAME_ID_LABEL("organ", "organ", "Organ")
838 plugin_command_info
*get_commands() const;
839 void get_configure_vars(std::vector
<std::string
> &names
) const;
842 /// FluidSynth - metadata
843 struct fluidsynth_metadata
: public plugin_metadata
<fluidsynth_metadata
>
845 enum { par_master
, par_interpolation
, par_reverb
, par_chorus
, param_count
};
846 enum { in_count
= 0, out_count
= 2, ins_optional
= 0, outs_optional
= 0, support_midi
= true, require_midi
= true, rt_capable
= false };
847 PLUGIN_NAME_ID_LABEL("fluidsynth", "fluidsynth", "Fluidsynth")
850 void get_configure_vars(std::vector
<std::string
> &names
) const;
853 /// Wavetable - metadata
854 struct wavetable_metadata
: public plugin_metadata
<wavetable_metadata
>
915 par_o1wave
, par_o1offset
, par_o1transpose
, par_o1detune
, par_o1level
,
916 par_o2wave
, par_o2offset
, par_o2transpose
, par_o2detune
, par_o2level
,
917 par_eg1attack
, par_eg1decay
, par_eg1sustain
, par_eg1fade
, par_eg1release
, par_eg1velscl
,
918 par_eg2attack
, par_eg2decay
, par_eg2sustain
, par_eg2fade
, par_eg2release
, par_eg2velscl
,
919 par_eg3attack
, par_eg3decay
, par_eg3sustain
, par_eg3fade
, par_eg3release
, par_eg3velscl
,
925 enum { in_count
= 0, out_count
= 2, ins_optional
= 0, outs_optional
= 0, support_midi
= true, require_midi
= true, rt_capable
= true };
926 enum { mod_matrix_slots
= 10 };
927 enum { step_size
= 64 };
928 PLUGIN_NAME_ID_LABEL("wavetable", "wavetable", "Wavetable")
929 mod_matrix_metadata mm_metadata
;
931 wavetable_metadata();
932 /// Lookup of table edit interface
933 virtual const table_metadata_iface
*get_table_metadata_iface(const char *key
) const { if (!strcmp(key
, "mod_matrix")) return &mm_metadata
; else return NULL
; }
934 void get_configure_vars(std::vector
<std::string
> &names
) const;
937 struct pitch_metadata
: public plugin_metadata
<pitch_metadata
>
939 enum { in_count
= 2, out_count
= 2, ins_optional
= 1, outs_optional
= 1, support_midi
= false, require_midi
= false, rt_capable
= true };
943 par_tune
, par_note
, par_cents
, par_clarity
, par_freq
,
946 PLUGIN_NAME_ID_LABEL("pitch", "pitch", "Pitch Tools")
949 struct widgets_metadata
: public plugin_metadata
<widgets_metadata
>
951 enum { in_count
= 2, out_count
= 2, ins_optional
= 1, outs_optional
= 1, support_midi
= false, require_midi
= false, rt_capable
= true };
961 PLUGIN_NAME_ID_LABEL("widgets", "widgets", "Widget Test")