1 /* -*- Mode: C ; c-basic-offset: 2 -*- */
2 /*****************************************************************************
4 * Copyright (C) 2006,2007,2008,2009 Nedko Arnaudov <nedko@arnaudov.name>
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; version 2 of the License
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
19 *****************************************************************************/
28 #include "lv2dynparam/lv2dynparam.h"
29 #include "lv2dynparam/plugin.h"
30 #include "zynadd_internal.h"
32 #define LOG_LEVEL LOG_LEVEL_ERROR
35 #define LV2DYNPARAM_PARAMETER_STEREO 0
36 #define LV2DYNPARAM_PARAMETER_RANDOM_GROUPING 1
37 #define LV2DYNPARAM_PARAMETER_VOLUME 2
38 #define LV2DYNPARAM_PARAMETER_VELOCITY_SENSING 3
39 #define LV2DYNPARAM_PARAMETER_RANDOM_PANORAMA 4
40 #define LV2DYNPARAM_PARAMETER_PANORAMA 5
41 #define LV2DYNPARAM_PARAMETER_PUNCH_STRENGTH 6
42 #define LV2DYNPARAM_PARAMETER_PUNCH_TIME 7
43 #define LV2DYNPARAM_PARAMETER_PUNCH_STRETCH 8
44 #define LV2DYNPARAM_PARAMETER_PUNCH_VELOCITY_SENSING 9
46 #define LV2DYNPARAM_PARAMETER_AMP_ENV_ATTACK 10
47 #define LV2DYNPARAM_PARAMETER_AMP_ENV_DECAY 11
48 #define LV2DYNPARAM_PARAMETER_AMP_ENV_SUSTAIN 12
49 #define LV2DYNPARAM_PARAMETER_AMP_ENV_RELEASE 13
50 #define LV2DYNPARAM_PARAMETER_AMP_ENV_STRETCH 14
51 #define LV2DYNPARAM_PARAMETER_AMP_ENV_FORCED_RELEASE 15
52 #define LV2DYNPARAM_PARAMETER_AMP_ENV_LINEAR 16
54 #define LV2DYNPARAM_PARAMETER_AMP_LFO_SHAPE 17
55 #define LV2DYNPARAM_PARAMETER_AMP_LFO_FREQUENCY 18
56 #define LV2DYNPARAM_PARAMETER_AMP_LFO_DEPTH 19
57 #define LV2DYNPARAM_PARAMETER_AMP_LFO_RANDOM_START_PHASE 20
58 #define LV2DYNPARAM_PARAMETER_AMP_LFO_START_PHASE 21
59 #define LV2DYNPARAM_PARAMETER_AMP_LFO_DELAY 22
60 #define LV2DYNPARAM_PARAMETER_AMP_LFO_STRETCH 23
61 #define LV2DYNPARAM_PARAMETER_AMP_LFO_RANDOM_DEPTH 24
62 #define LV2DYNPARAM_PARAMETER_AMP_LFO_DEPTH_RANDOMNESS 25
63 #define LV2DYNPARAM_PARAMETER_AMP_LFO_RANDOM_FREQUENCY 26
64 #define LV2DYNPARAM_PARAMETER_AMP_LFO_FREQUENCY_RANDOMNESS 27
66 #define LV2DYNPARAM_PARAMETER_FILTER_ENV_ATTACK_VALUE 28
67 #define LV2DYNPARAM_PARAMETER_FILTER_ENV_ATTACK_DURATION 29
68 #define LV2DYNPARAM_PARAMETER_FILTER_ENV_DECAY_VALUE 30
69 #define LV2DYNPARAM_PARAMETER_FILTER_ENV_DECAY_DURATION 31
70 #define LV2DYNPARAM_PARAMETER_FILTER_ENV_RELEASE_VALUE 32
71 #define LV2DYNPARAM_PARAMETER_FILTER_ENV_RELEASE_DURATION 33
72 #define LV2DYNPARAM_PARAMETER_FILTER_ENV_STRETCH 34
73 #define LV2DYNPARAM_PARAMETER_FILTER_ENV_FORCED_RELEASE 35
75 #define LV2DYNPARAM_PARAMETER_FILTER_LFO_SHAPE 36
76 #define LV2DYNPARAM_PARAMETER_FILTER_LFO_FREQUENCY 37
77 #define LV2DYNPARAM_PARAMETER_FILTER_LFO_DEPTH 38
78 #define LV2DYNPARAM_PARAMETER_FILTER_LFO_RANDOM_START_PHASE 39
79 #define LV2DYNPARAM_PARAMETER_FILTER_LFO_START_PHASE 40
80 #define LV2DYNPARAM_PARAMETER_FILTER_LFO_DELAY 41
81 #define LV2DYNPARAM_PARAMETER_FILTER_LFO_STRETCH 42
82 #define LV2DYNPARAM_PARAMETER_FILTER_LFO_RANDOM_DEPTH 43
83 #define LV2DYNPARAM_PARAMETER_FILTER_LFO_DEPTH_RANDOMNESS 44
84 #define LV2DYNPARAM_PARAMETER_FILTER_LFO_RANDOM_FREQUENCY 45
85 #define LV2DYNPARAM_PARAMETER_FILTER_LFO_FREQUENCY_RANDOMNESS 46
87 #define LV2DYNPARAM_PARAMETER_FREQUENCY_ENV_ATTACK_VALUE 47
88 #define LV2DYNPARAM_PARAMETER_FREQUENCY_ENV_ATTACK_DURATION 48
89 #define LV2DYNPARAM_PARAMETER_FREQUENCY_ENV_RELEASE_DURATION 49
90 #define LV2DYNPARAM_PARAMETER_FREQUENCY_ENV_RELEASE_VALUE 50
91 #define LV2DYNPARAM_PARAMETER_FREQUENCY_ENV_STRETCH 51
92 #define LV2DYNPARAM_PARAMETER_FREQUENCY_ENV_FORCED_RELEASE 52
94 #define LV2DYNPARAM_PARAMETER_FREQUENCY_LFO_SHAPE 53
95 #define LV2DYNPARAM_PARAMETER_FREQUENCY_LFO_FREQUENCY 54
96 #define LV2DYNPARAM_PARAMETER_FREQUENCY_LFO_DEPTH 55
97 #define LV2DYNPARAM_PARAMETER_FREQUENCY_LFO_RANDOM_START_PHASE 56
98 #define LV2DYNPARAM_PARAMETER_FREQUENCY_LFO_START_PHASE 57
99 #define LV2DYNPARAM_PARAMETER_FREQUENCY_LFO_DELAY 58
100 #define LV2DYNPARAM_PARAMETER_FREQUENCY_LFO_STRETCH 59
101 #define LV2DYNPARAM_PARAMETER_FREQUENCY_LFO_RANDOM_DEPTH 60
102 #define LV2DYNPARAM_PARAMETER_FREQUENCY_LFO_DEPTH_RANDOMNESS 61
103 #define LV2DYNPARAM_PARAMETER_FREQUENCY_LFO_RANDOM_FREQUENCY 62
104 #define LV2DYNPARAM_PARAMETER_FREQUENCY_LFO_FREQUENCY_RANDOMNESS 63
106 #define LV2DYNPARAM_PARAMETER_GLOBAL_FILTER_TYPE 64
107 #define LV2DYNPARAM_PARAMETER_GLOBAL_FILTER_VELOCITY_SENSING_AMOUNT 65
108 #define LV2DYNPARAM_PARAMETER_GLOBAL_FILTER_VELOCITY_SENSING_FUNCTION 66
110 #define LV2DYNPARAM_PARAMETER_GLOBAL_ANALOG_FILTER_TYPE 67
111 #define LV2DYNPARAM_PARAMETER_GLOBAL_ANALOG_FILTER_FREQUENCY 68
112 #define LV2DYNPARAM_PARAMETER_GLOBAL_ANALOG_FILTER_Q_FACTOR 69
113 #define LV2DYNPARAM_PARAMETER_GLOBAL_ANALOG_FILTER_FREQUENCY_TRACKING 70
114 #define LV2DYNPARAM_PARAMETER_GLOBAL_ANALOG_FILTER_GAIN 71
115 #define LV2DYNPARAM_PARAMETER_GLOBAL_ANALOG_FILTER_STAGES 72
117 #define LV2DYNPARAM_PARAMETER_PORTAMENTO_ENABLED 73
118 #define LV2DYNPARAM_PARAMETER_PORTAMENTO_TIME 74
119 #define LV2DYNPARAM_PARAMETER_PORTAMENTO_TIME_STRETCH 75
120 #define LV2DYNPARAM_PARAMETER_PORTAMENTO_PITCH_THRESHOLD 76
121 #define LV2DYNPARAM_PARAMETER_PORTAMENTO_PITCH_THRESHOLD_ABOVE 77
123 #define LV2DYNPARAM_PARAMETER_PITCH_BEND_RANGE 78
124 #define LV2DYNPARAM_PARAMETER_PITCH_BEND 79
126 #define LV2DYNPARAM_PARAMETER_GLOBAL_SV_FILTER_TYPE 80
127 #define LV2DYNPARAM_PARAMETER_GLOBAL_SV_FILTER_FREQUENCY 81
128 #define LV2DYNPARAM_PARAMETER_GLOBAL_SV_FILTER_Q_FACTOR 82
129 #define LV2DYNPARAM_PARAMETER_GLOBAL_SV_FILTER_FREQUENCY_TRACKING 83
130 #define LV2DYNPARAM_PARAMETER_GLOBAL_SV_FILTER_GAIN 84
131 #define LV2DYNPARAM_PARAMETER_GLOBAL_SV_FILTER_STAGES 85
133 #define LV2DYNPARAM_PARAMETERS_COUNT 86
135 #define LV2DYNPARAM_GROUP_AMP 0
136 #define LV2DYNPARAM_GROUP_FILTER 1
137 #define LV2DYNPARAM_GROUP_FREQUENCY 2
138 #define LV2DYNPARAM_GROUP_PORTAMENTO 3
139 #define LV2DYNPARAM_GROUP_PITCH_BEND 4
140 #define LV2DYNPARAM_GROUP_VOICES 5
142 #define LV2DYNPARAM_GROUP_AMP_PANORAMA 6
143 #define LV2DYNPARAM_GROUP_AMP_PUNCH 7
144 #define LV2DYNPARAM_GROUP_AMP_ENV 8
145 #define LV2DYNPARAM_GROUP_AMP_LFO 9
146 #define LV2DYNPARAM_GROUP_AMP_LFO_START_PHASE 10
147 #define LV2DYNPARAM_GROUP_AMP_LFO_DEPTH_RANDOMNESS 11
148 #define LV2DYNPARAM_GROUP_AMP_LFO_FREQUENCY_RANDOMNESS 12
150 #define LV2DYNPARAM_GROUP_FILTER_FILTERS 13
151 #define LV2DYNPARAM_GROUP_FILTER_ANALOG 14
152 #define LV2DYNPARAM_GROUP_FILTER_FORMANT 15
153 #define LV2DYNPARAM_GROUP_FILTER_SV 16
154 #define LV2DYNPARAM_GROUP_FILTER_ENV 17
155 #define LV2DYNPARAM_GROUP_FILTER_LFO 18
156 #define LV2DYNPARAM_GROUP_FILTER_LFO_START_PHASE 19
157 #define LV2DYNPARAM_GROUP_FILTER_LFO_DEPTH_RANDOMNESS 20
158 #define LV2DYNPARAM_GROUP_FILTER_LFO_FREQUENCY_RANDOMNESS 21
160 #define LV2DYNPARAM_GROUP_FREQUENCY_ENV 22
161 #define LV2DYNPARAM_GROUP_FREQUENCY_LFO 23
162 #define LV2DYNPARAM_GROUP_FREQUENCY_LFO_START_PHASE 24
163 #define LV2DYNPARAM_GROUP_FREQUENCY_LFO_DEPTH_RANDOMNESS 25
164 #define LV2DYNPARAM_GROUP_FREQUENCY_LFO_FREQUENCY_RANDOMNESS 26
166 #define LV2DYNPARAM_GROUPS_COUNT 27
168 struct group_descriptor g_top_forest_map_groups
[LV2DYNPARAM_GROUPS_COUNT
];
169 struct parameter_descriptor g_top_forest_map_parameters
[LV2DYNPARAM_PARAMETERS_COUNT
];
170 struct zyn_forest_map g_top_forest_map
;
171 int g_top_forest_map_voices_group_index
;
172 #define map_ptr (&g_top_forest_map)
174 void zynadd_init_top_forest_map() __attribute__((constructor
));
175 void zynadd_init_top_forest_map()
177 LV2DYNPARAM_FOREST_MAP_BEGIN(LV2DYNPARAM_GROUPS_COUNT
, LV2DYNPARAM_PARAMETERS_COUNT
, g_top_forest_map_groups
, g_top_forest_map_parameters
);
179 LOG_DEBUG("zynadd_init_top_forest_map() called");
181 LV2DYNPARAM_GROUP_INIT(ROOT
, AMP
, "Amplitude", NULL
);
183 LV2DYNPARAM_PARAMETER_INIT_BOOL(AMP
, STEREO
, AMP_GLOBALS
, STEREO
, "Stereo", ALWAYS
, NULL
);
184 LV2DYNPARAM_PARAMETER_INIT_BOOL(AMP
, RANDOM_GROUPING
, AMP_GLOBALS
, RANDOM_GROUPING
, "Random Grouping", ALWAYS
, NULL
);
185 LV2DYNPARAM_PARAMETER_INIT_FLOAT(AMP
, VOLUME
, AMP_GLOBALS
, VOLUME
, "Master Volume", 0, 100, ALWAYS
, NULL
);
186 LV2DYNPARAM_PARAMETER_INIT_FLOAT(AMP
, VELOCITY_SENSING
, AMP_GLOBALS
, VELOCITY_SENSING
, "Velocity sensing", 0, 100, ALWAYS
, NULL
);
188 LV2DYNPARAM_GROUP_INIT(AMP
, AMP_PANORAMA
, "Random:Panorama", HINT_TOGGLE_FLOAT
, NULL
, NULL
);
190 LV2DYNPARAM_PARAMETER_INIT_BOOL_SEMI(AMP_PANORAMA
, RANDOM_PANORAMA
, AMP_GLOBALS
, RANDOM_PANORAMA
, "Random", HIDE
, PANORAMA
, NULL
);
191 LV2DYNPARAM_PARAMETER_INIT_FLOAT(AMP_PANORAMA
, PANORAMA
, AMP_GLOBALS
, PANORAMA
, "Panorama", -1, 1, SEMI
, NULL
);
194 LV2DYNPARAM_GROUP_INIT(AMP
, AMP_PUNCH
, "Punch", NULL
);
196 LV2DYNPARAM_PARAMETER_INIT_FLOAT(AMP_PUNCH
, PUNCH_STRENGTH
, AMP_GLOBALS
, PUNCH_STRENGTH
, "Strength", 0, 100, ALWAYS
, NULL
);
197 LV2DYNPARAM_PARAMETER_INIT_FLOAT(AMP_PUNCH
, PUNCH_TIME
, AMP_GLOBALS
, PUNCH_TIME
, "Time", 0, 100, ALWAYS
, NULL
);
198 LV2DYNPARAM_PARAMETER_INIT_FLOAT(AMP_PUNCH
, PUNCH_STRETCH
, AMP_GLOBALS
, PUNCH_STRETCH
, "Stretch", 0, 100, ALWAYS
, NULL
);
199 LV2DYNPARAM_PARAMETER_INIT_FLOAT(AMP_PUNCH
, PUNCH_VELOCITY_SENSING
, AMP_GLOBALS
, PUNCH_VELOCITY_SENSING
, "Velocity sensing", 0, 100, ALWAYS
, NULL
);
202 LV2DYNPARAM_GROUP_INIT(AMP
, AMP_ENV
, "Envelope", NULL
);
204 LV2DYNPARAM_PARAMETER_INIT_FLOAT(AMP_ENV
, AMP_ENV_ATTACK
, AMP_ENV
, ENV_ATTACK_DURATION
, "Attack", 0, 100, ALWAYS
, NULL
);
205 LV2DYNPARAM_PARAMETER_INIT_FLOAT(AMP_ENV
, AMP_ENV_DECAY
, AMP_ENV
, ENV_DECAY_DURATION
, "Decay", 0, 100, ALWAYS
, NULL
);
206 LV2DYNPARAM_PARAMETER_INIT_FLOAT(AMP_ENV
, AMP_ENV_SUSTAIN
, AMP_ENV
, ENV_SUSTAIN_VALUE
, "Sustain", 0, 100, ALWAYS
, NULL
);
207 LV2DYNPARAM_PARAMETER_INIT_FLOAT(AMP_ENV
, AMP_ENV_RELEASE
, AMP_ENV
, ENV_RELEASE_DURATION
, "Release", 0, 100, ALWAYS
, NULL
);
208 LV2DYNPARAM_PARAMETER_INIT_FLOAT(AMP_ENV
, AMP_ENV_STRETCH
, AMP_ENV
, ENV_STRETCH
, "Stretch", 0, 200, ALWAYS
, NULL
);
209 LV2DYNPARAM_PARAMETER_INIT_BOOL(AMP_ENV
, AMP_ENV_FORCED_RELEASE
, AMP_ENV
, ENV_FORCED_RELEASE
, "Forced release", ALWAYS
, NULL
);
210 LV2DYNPARAM_PARAMETER_INIT_BOOL(AMP_ENV
, AMP_ENV_LINEAR
, AMP_ENV
, ENV_LINEAR
, "Linear", ALWAYS
, NULL
);
213 LV2DYNPARAM_GROUP_INIT(AMP
, AMP_LFO
, "LFO", NULL
);
215 LV2DYNPARAM_PARAMETER_INIT_ENUM(AMP_LFO
, AMP_LFO_SHAPE
, AMP_LFO
, LFO_SHAPE
, "Shape", g_shape_names
, ZYN_LFO_SHAPES_COUNT
, ALWAYS
, NULL
);
216 LV2DYNPARAM_PARAMETER_INIT_FLOAT(AMP_LFO
, AMP_LFO_FREQUENCY
, AMP_LFO
, LFO_FREQUENCY
, "Frequency", 0, 1, ALWAYS
, NULL
);
217 LV2DYNPARAM_PARAMETER_INIT_FLOAT(AMP_LFO
, AMP_LFO_DEPTH
, AMP_LFO
, LFO_DEPTH
, "Depth", 0, 100, ALWAYS
, NULL
);
219 LV2DYNPARAM_GROUP_INIT(AMP_LFO
, AMP_LFO_START_PHASE
, "Random:Start phase", HINT_TOGGLE_FLOAT
, NULL
, NULL
);
221 LV2DYNPARAM_PARAMETER_INIT_BOOL_SEMI(AMP_LFO_START_PHASE
, AMP_LFO_RANDOM_START_PHASE
, AMP_LFO
, LFO_RANDOM_START_PHASE
, "Random", HIDE
, AMP_LFO_START_PHASE
, NULL
);
222 LV2DYNPARAM_PARAMETER_INIT_FLOAT(AMP_LFO_START_PHASE
, AMP_LFO_START_PHASE
, AMP_LFO
, LFO_START_PHASE
, "Start phase", 0, 1, SEMI
, NULL
);
225 LV2DYNPARAM_PARAMETER_INIT_FLOAT(AMP_LFO
, AMP_LFO_DELAY
, AMP_LFO
, LFO_DELAY
, "Delay", 0, 4, ALWAYS
, NULL
);
226 LV2DYNPARAM_PARAMETER_INIT_FLOAT(AMP_LFO
, AMP_LFO_STRETCH
, AMP_LFO
, LFO_STRETCH
, "Stretch", -1, 1, ALWAYS
, NULL
);
228 LV2DYNPARAM_GROUP_INIT(AMP_LFO
, AMP_LFO_DEPTH_RANDOMNESS
, "Random depth:Randomness", HINT_TOGGLE_FLOAT
, NULL
, NULL
);
230 LV2DYNPARAM_PARAMETER_INIT_BOOL_SEMI(AMP_LFO_DEPTH_RANDOMNESS
, AMP_LFO_RANDOM_DEPTH
, AMP_LFO
, LFO_RANDOM_DEPTH
, "Random depth", SHOW
, AMP_LFO_DEPTH_RANDOMNESS
, NULL
);
231 LV2DYNPARAM_PARAMETER_INIT_FLOAT(AMP_LFO_DEPTH_RANDOMNESS
, AMP_LFO_DEPTH_RANDOMNESS
, AMP_LFO
, LFO_DEPTH_RANDOMNESS
, "Randomness", 0, 100, SEMI
, NULL
);
234 LV2DYNPARAM_GROUP_INIT(AMP_LFO
, AMP_LFO_FREQUENCY_RANDOMNESS
, "Random frequency:Randomness", HINT_TOGGLE_FLOAT
, NULL
, NULL
);
236 LV2DYNPARAM_PARAMETER_INIT_BOOL_SEMI(AMP_LFO_FREQUENCY_RANDOMNESS
, AMP_LFO_RANDOM_FREQUENCY
, AMP_LFO
, LFO_RANDOM_FREQUENCY
, "Random frequency", SHOW
, AMP_LFO_FREQUENCY_RANDOMNESS
, NULL
);
237 LV2DYNPARAM_PARAMETER_INIT_FLOAT(AMP_LFO_FREQUENCY_RANDOMNESS
, AMP_LFO_FREQUENCY_RANDOMNESS
, AMP_LFO
, LFO_FREQUENCY_RANDOMNESS
, "Randomness", 0, 100, SEMI
, NULL
);
242 LV2DYNPARAM_GROUP_INIT(ROOT
, FILTER
, "Filter", NULL
);
244 LV2DYNPARAM_PARAMETER_INIT_FLOAT(FILTER
, GLOBAL_FILTER_VELOCITY_SENSING_AMOUNT
, FILTER_GLOBALS
, VELOCITY_SENSING_AMOUNT
, "Velocity sensing amount", 0, 1, ALWAYS
, NULL
);
245 LV2DYNPARAM_PARAMETER_INIT_FLOAT(FILTER
, GLOBAL_FILTER_VELOCITY_SENSING_FUNCTION
, FILTER_GLOBALS
, VELOCITY_SENSING_FUNCTION
, "Velocity sensing function", -1, 1, ALWAYS
, NULL
);
247 LV2DYNPARAM_GROUP_INIT(FILTER
, FILTER_FILTERS
, "Filter parameters", HINT_ONE_SUBGROUP
, NULL
, NULL
);
249 LV2DYNPARAM_PARAMETER_INIT_ENUM(FILTER_FILTERS
, GLOBAL_FILTER_TYPE
, FILTER_GLOBALS
, FILTER_CATEGORY
, "Filter category", g_filter_type_names
, ZYN_FILTER_TYPES_COUNT
, ALWAYS
, NULL
);
251 LV2DYNPARAM_GROUP_INIT(FILTER_FILTERS
, FILTER_ANALOG
, "Analog", NULL
);
253 LV2DYNPARAM_PARAMETER_INIT_ENUM(FILTER_ANALOG
, GLOBAL_ANALOG_FILTER_TYPE
, FILTER_ANALOG
, FILTER_TYPE
, "Filter type", g_analog_filter_type_names
, ZYN_FILTER_ANALOG_TYPES_COUNT
, ALWAYS
, NULL
);
255 LV2DYNPARAM_PARAMETER_INIT_INT(FILTER_ANALOG
, GLOBAL_ANALOG_FILTER_STAGES
, FILTER_ANALOG
, STAGES
, "Stages", 1, 5, ALWAYS
, NULL
);
257 LV2DYNPARAM_PARAMETER_INIT_FLOAT(FILTER_ANALOG
, GLOBAL_ANALOG_FILTER_FREQUENCY
, FILTER_ANALOG
, FREQUNECY
, "Frequency", 0, 1, ALWAYS
, NULL
);
258 LV2DYNPARAM_PARAMETER_INIT_FLOAT(FILTER_ANALOG
, GLOBAL_ANALOG_FILTER_Q_FACTOR
, FILTER_ANALOG
, Q_FACTOR
, "Q (resonance)", 0, 1, ALWAYS
, NULL
);
259 LV2DYNPARAM_PARAMETER_INIT_FLOAT(FILTER_ANALOG
, GLOBAL_ANALOG_FILTER_FREQUENCY_TRACKING
, FILTER_ANALOG
, FREQUENCY_TRACKING
, "Frequency tracking", -1, 1, ALWAYS
, NULL
);
260 LV2DYNPARAM_PARAMETER_INIT_FLOAT(FILTER_ANALOG
, GLOBAL_ANALOG_FILTER_GAIN
, FILTER_ANALOG
, VOLUME
, "Gain", -30, 30, ALWAYS
, NULL
);
263 LV2DYNPARAM_GROUP_INIT(FILTER_FILTERS
, FILTER_FORMANT
, "Formant", NULL
);
267 LV2DYNPARAM_GROUP_INIT(FILTER_FILTERS
, FILTER_SV
, "State variable", NULL
);
269 LV2DYNPARAM_PARAMETER_INIT_ENUM(FILTER_SV
, GLOBAL_SV_FILTER_TYPE
, FILTER_SV
, FILTER_TYPE
, "Filter type", g_sv_filter_type_names
, ZYN_FILTER_SV_TYPES_COUNT
, ALWAYS
, NULL
);
271 LV2DYNPARAM_PARAMETER_INIT_INT(FILTER_SV
, GLOBAL_SV_FILTER_STAGES
, FILTER_SV
, STAGES
, "Stages", 1, 5, ALWAYS
, NULL
);
273 LV2DYNPARAM_PARAMETER_INIT_FLOAT(FILTER_SV
, GLOBAL_SV_FILTER_FREQUENCY
, FILTER_SV
, FREQUNECY
, "Frequency", -5, 5, ALWAYS
, NULL
);
274 LV2DYNPARAM_PARAMETER_INIT_FLOAT(FILTER_SV
, GLOBAL_SV_FILTER_Q_FACTOR
, FILTER_SV
, Q_FACTOR
, "Q (resonance)", 0, 1, ALWAYS
, NULL
);
275 LV2DYNPARAM_PARAMETER_INIT_FLOAT(FILTER_SV
, GLOBAL_SV_FILTER_FREQUENCY_TRACKING
, FILTER_SV
, FREQUENCY_TRACKING
, "Frequency tracking", -1, 1, ALWAYS
, NULL
);
276 LV2DYNPARAM_PARAMETER_INIT_FLOAT(FILTER_SV
, GLOBAL_SV_FILTER_GAIN
, FILTER_SV
, VOLUME
, "Gain", -30, 30, ALWAYS
, NULL
);
280 LV2DYNPARAM_GROUP_INIT(FILTER
, FILTER_ENV
, "Envelope", NULL
);
282 LV2DYNPARAM_PARAMETER_INIT_FLOAT(FILTER_ENV
, FILTER_ENV_ATTACK_VALUE
, FILTER_ENV
, ENV_ATTACK_VALUE
, "Attack value", 0, 100, ALWAYS
, NULL
);
283 LV2DYNPARAM_PARAMETER_INIT_FLOAT(FILTER_ENV
, FILTER_ENV_ATTACK_DURATION
, FILTER_ENV
, ENV_ATTACK_DURATION
, "Attack duration", 0, 100, ALWAYS
, NULL
);
284 LV2DYNPARAM_PARAMETER_INIT_FLOAT(FILTER_ENV
, FILTER_ENV_DECAY_VALUE
, FILTER_ENV
, ENV_DECAY_VALUE
, "Decay value", 0, 100, ALWAYS
, NULL
);
285 LV2DYNPARAM_PARAMETER_INIT_FLOAT(FILTER_ENV
, FILTER_ENV_DECAY_DURATION
, FILTER_ENV
, ENV_DECAY_DURATION
, "Decay duration", 0, 100, ALWAYS
, NULL
);
286 LV2DYNPARAM_PARAMETER_INIT_FLOAT(FILTER_ENV
, FILTER_ENV_RELEASE_VALUE
, FILTER_ENV
, ENV_RELEASE_VALUE
, "Release value", 0, 100, ALWAYS
, NULL
);
287 LV2DYNPARAM_PARAMETER_INIT_FLOAT(FILTER_ENV
, FILTER_ENV_RELEASE_DURATION
, FILTER_ENV
, ENV_RELEASE_DURATION
, "Release duration", 0, 100, ALWAYS
, NULL
);
288 LV2DYNPARAM_PARAMETER_INIT_FLOAT(FILTER_ENV
, FILTER_ENV_STRETCH
, FILTER_ENV
, ENV_STRETCH
, "Stretch", 0, 200, ALWAYS
, NULL
);
289 LV2DYNPARAM_PARAMETER_INIT_BOOL(FILTER_ENV
, FILTER_ENV_FORCED_RELEASE
, FILTER_ENV
, ENV_FORCED_RELEASE
, "Forced release", ALWAYS
, NULL
);
292 LV2DYNPARAM_GROUP_INIT(FILTER
, FILTER_LFO
, "LFO", NULL
);
294 LV2DYNPARAM_PARAMETER_INIT_ENUM(FILTER_LFO
, FILTER_LFO_SHAPE
, FILTER_LFO
, LFO_SHAPE
, "Shape", g_shape_names
, ZYN_LFO_SHAPES_COUNT
, ALWAYS
, NULL
);
295 LV2DYNPARAM_PARAMETER_INIT_FLOAT(FILTER_LFO
, FILTER_LFO_FREQUENCY
, FILTER_LFO
, LFO_FREQUENCY
, "Frequency", 0, 1, ALWAYS
, NULL
);
296 LV2DYNPARAM_PARAMETER_INIT_FLOAT(FILTER_LFO
, FILTER_LFO_DEPTH
, FILTER_LFO
, LFO_DEPTH
, "Depth", 0, 100, ALWAYS
, NULL
);
298 LV2DYNPARAM_GROUP_INIT(FILTER_LFO
, FILTER_LFO_START_PHASE
, "Random:Start phase", HINT_TOGGLE_FLOAT
, NULL
, NULL
);
300 LV2DYNPARAM_PARAMETER_INIT_BOOL_SEMI(FILTER_LFO_START_PHASE
, FILTER_LFO_RANDOM_START_PHASE
, FILTER_LFO
, LFO_RANDOM_START_PHASE
, "Random", HIDE
, FILTER_LFO_START_PHASE
, NULL
);
301 LV2DYNPARAM_PARAMETER_INIT_FLOAT(FILTER_LFO_START_PHASE
, FILTER_LFO_START_PHASE
, FILTER_LFO
, LFO_START_PHASE
, "Start phase", 0, 1, SEMI
, NULL
);
304 LV2DYNPARAM_PARAMETER_INIT_FLOAT(FILTER_LFO
, FILTER_LFO_DELAY
, FILTER_LFO
, LFO_DELAY
, "Delay", 0, 4, ALWAYS
, NULL
);
305 LV2DYNPARAM_PARAMETER_INIT_FLOAT(FILTER_LFO
, FILTER_LFO_STRETCH
, FILTER_LFO
, LFO_STRETCH
, "Stretch", -1, 1, ALWAYS
, NULL
);
307 LV2DYNPARAM_GROUP_INIT(FILTER_LFO
, FILTER_LFO_DEPTH_RANDOMNESS
, "Random depth:Randomness", HINT_TOGGLE_FLOAT
, NULL
, NULL
);
309 LV2DYNPARAM_PARAMETER_INIT_BOOL_SEMI(FILTER_LFO_DEPTH_RANDOMNESS
, FILTER_LFO_RANDOM_DEPTH
, FILTER_LFO
, LFO_RANDOM_DEPTH
, "Random depth", SHOW
, FILTER_LFO_DEPTH_RANDOMNESS
, NULL
);
310 LV2DYNPARAM_PARAMETER_INIT_FLOAT(FILTER_LFO_DEPTH_RANDOMNESS
, FILTER_LFO_DEPTH_RANDOMNESS
, FILTER_LFO
, LFO_DEPTH_RANDOMNESS
, "Randomness", 0, 100, SEMI
, NULL
);
313 LV2DYNPARAM_GROUP_INIT(FILTER_LFO
, FILTER_LFO_FREQUENCY_RANDOMNESS
, "Random frequency:Randomness", HINT_TOGGLE_FLOAT
, NULL
, NULL
);
315 LV2DYNPARAM_PARAMETER_INIT_BOOL_SEMI(FILTER_LFO_FREQUENCY_RANDOMNESS
, FILTER_LFO_RANDOM_FREQUENCY
, FILTER_LFO
, LFO_RANDOM_FREQUENCY
, "Random frequency", SHOW
, FILTER_LFO_FREQUENCY_RANDOMNESS
, NULL
);
316 LV2DYNPARAM_PARAMETER_INIT_FLOAT(FILTER_LFO_FREQUENCY_RANDOMNESS
, FILTER_LFO_FREQUENCY_RANDOMNESS
, FILTER_LFO
, LFO_FREQUENCY_RANDOMNESS
, "Randomness", 0, 100, SEMI
, NULL
);
321 LV2DYNPARAM_GROUP_INIT(ROOT
, FREQUENCY
, "Frequency", NULL
);
323 LV2DYNPARAM_GROUP_INIT(FREQUENCY
, FREQUENCY_ENV
, "Envelope", NULL
);
325 LV2DYNPARAM_PARAMETER_INIT_FLOAT(FREQUENCY_ENV
, FREQUENCY_ENV_ATTACK_VALUE
, FREQUENCY_ENV
, ENV_ATTACK_VALUE
, "Attack value", 0, 100, ALWAYS
, NULL
);
326 LV2DYNPARAM_PARAMETER_INIT_FLOAT(FREQUENCY_ENV
, FREQUENCY_ENV_ATTACK_DURATION
, FREQUENCY_ENV
, ENV_ATTACK_DURATION
, "Attack duration", 0, 100, ALWAYS
, NULL
);
327 LV2DYNPARAM_PARAMETER_INIT_FLOAT(FREQUENCY_ENV
, FREQUENCY_ENV_RELEASE_VALUE
, FREQUENCY_ENV
, ENV_RELEASE_VALUE
, "Release value", 0, 100, ALWAYS
, NULL
);
328 LV2DYNPARAM_PARAMETER_INIT_FLOAT(FREQUENCY_ENV
, FREQUENCY_ENV_RELEASE_DURATION
, FREQUENCY_ENV
, ENV_RELEASE_DURATION
, "Release duration", 0, 100, ALWAYS
, NULL
);
329 LV2DYNPARAM_PARAMETER_INIT_FLOAT(FREQUENCY_ENV
, FREQUENCY_ENV_STRETCH
, FREQUENCY_ENV
, ENV_STRETCH
, "Stretch", 0, 200, ALWAYS
, NULL
);
330 LV2DYNPARAM_PARAMETER_INIT_BOOL(FREQUENCY_ENV
, FREQUENCY_ENV_FORCED_RELEASE
, FREQUENCY_ENV
, ENV_FORCED_RELEASE
, "Forced release", ALWAYS
, NULL
);
333 LV2DYNPARAM_GROUP_INIT(FREQUENCY
, FREQUENCY_LFO
, "LFO", NULL
);
335 LV2DYNPARAM_PARAMETER_INIT_ENUM(FREQUENCY_LFO
, FREQUENCY_LFO_SHAPE
, FREQUENCY_LFO
, LFO_SHAPE
, "Shape", g_shape_names
, ZYN_LFO_SHAPES_COUNT
, ALWAYS
, NULL
);
336 LV2DYNPARAM_PARAMETER_INIT_FLOAT(FREQUENCY_LFO
, FREQUENCY_LFO_FREQUENCY
, FREQUENCY_LFO
, LFO_FREQUENCY
, "Frequency", 0, 1, ALWAYS
, NULL
);
337 LV2DYNPARAM_PARAMETER_INIT_FLOAT(FREQUENCY_LFO
, FREQUENCY_LFO_DEPTH
, FREQUENCY_LFO
, LFO_DEPTH
, "Depth", 0, 100, ALWAYS
, NULL
);
339 LV2DYNPARAM_GROUP_INIT(FREQUENCY_LFO
, FREQUENCY_LFO_START_PHASE
, "Random:Start phase", HINT_TOGGLE_FLOAT
, NULL
, NULL
);
341 LV2DYNPARAM_PARAMETER_INIT_BOOL_SEMI(FREQUENCY_LFO_START_PHASE
, FREQUENCY_LFO_RANDOM_START_PHASE
, FREQUENCY_LFO
, LFO_RANDOM_START_PHASE
, "Random", HIDE
, FREQUENCY_LFO_START_PHASE
, NULL
);
342 LV2DYNPARAM_PARAMETER_INIT_FLOAT(FREQUENCY_LFO_START_PHASE
, FREQUENCY_LFO_START_PHASE
, FREQUENCY_LFO
, LFO_START_PHASE
, "Start phase", 0, 1, SEMI
, NULL
);
345 LV2DYNPARAM_PARAMETER_INIT_FLOAT(FREQUENCY_LFO
, FREQUENCY_LFO_DELAY
, FREQUENCY_LFO
, LFO_DELAY
, "Delay", 0, 4, ALWAYS
, NULL
);
346 LV2DYNPARAM_PARAMETER_INIT_FLOAT(FREQUENCY_LFO
, FREQUENCY_LFO_STRETCH
, FREQUENCY_LFO
, LFO_STRETCH
, "Stretch", -1, 1, ALWAYS
, NULL
);
348 LV2DYNPARAM_GROUP_INIT(FREQUENCY_LFO
, FREQUENCY_LFO_DEPTH_RANDOMNESS
, "Random depth:Randomness", HINT_TOGGLE_FLOAT
, NULL
, NULL
);
350 LV2DYNPARAM_PARAMETER_INIT_BOOL_SEMI(FREQUENCY_LFO_DEPTH_RANDOMNESS
, FREQUENCY_LFO_RANDOM_DEPTH
, FREQUENCY_LFO
, LFO_RANDOM_DEPTH
, "Random depth", SHOW
, FREQUENCY_LFO_DEPTH_RANDOMNESS
, NULL
);
351 LV2DYNPARAM_PARAMETER_INIT_FLOAT(FREQUENCY_LFO_DEPTH_RANDOMNESS
, FREQUENCY_LFO_DEPTH_RANDOMNESS
, FREQUENCY_LFO
, LFO_DEPTH_RANDOMNESS
, "Randomness", 0, 100, SEMI
, NULL
);
354 LV2DYNPARAM_GROUP_INIT(FREQUENCY_LFO
, FREQUENCY_LFO_FREQUENCY_RANDOMNESS
, "Random frequency:Randomness", HINT_TOGGLE_FLOAT
, NULL
, NULL
);
356 LV2DYNPARAM_PARAMETER_INIT_BOOL_SEMI(FREQUENCY_LFO_FREQUENCY_RANDOMNESS
, FREQUENCY_LFO_RANDOM_FREQUENCY
, FREQUENCY_LFO
, LFO_RANDOM_FREQUENCY
, "Random frequency", SHOW
, FREQUENCY_LFO_FREQUENCY_RANDOMNESS
, NULL
);
357 LV2DYNPARAM_PARAMETER_INIT_FLOAT(FREQUENCY_LFO_FREQUENCY_RANDOMNESS
, FREQUENCY_LFO_FREQUENCY_RANDOMNESS
, FREQUENCY_LFO
, LFO_FREQUENCY_RANDOMNESS
, "Randomness", 0, 100, SEMI
, NULL
);
362 LV2DYNPARAM_GROUP_INIT(ROOT
, PORTAMENTO
, "Portamento", NULL
);
364 LV2DYNPARAM_PARAMETER_INIT_BOOL(PORTAMENTO
, PORTAMENTO_ENABLED
, PORTAMENTO
, PORTAMENTO_ENABLED
, "Enabled", ALWAYS
, NULL
);
365 LV2DYNPARAM_PARAMETER_INIT_FLOAT(PORTAMENTO
, PORTAMENTO_TIME
, PORTAMENTO
, PORTAMENTO_TIME
, "Time", 0, 1, ALWAYS
, NULL
);
366 LV2DYNPARAM_PARAMETER_INIT_FLOAT(PORTAMENTO
, PORTAMENTO_TIME_STRETCH
, PORTAMENTO
, PORTAMENTO_TIME_STRETCH
, "Time stretch", -1, 1, ALWAYS
, NULL
);
367 LV2DYNPARAM_PARAMETER_INIT_INT(PORTAMENTO
, PORTAMENTO_PITCH_THRESHOLD
, PORTAMENTO
, PORTAMENTO_PITCH_THRESHOLD
, "Threshold", 0, 127, ALWAYS
, NULL
);
368 LV2DYNPARAM_PARAMETER_INIT_BOOL(PORTAMENTO
, PORTAMENTO_PITCH_THRESHOLD_ABOVE
, PORTAMENTO
, PORTAMENTO_PITCH_THRESHOLD_ABOVE
, "Threshold above", ALWAYS
, NULL
);
371 LV2DYNPARAM_GROUP_INIT(ROOT
, PITCH_BEND
, "Pitch bend", NULL
);
373 LV2DYNPARAM_PARAMETER_INIT_FLOAT(PITCH_BEND
, PITCH_BEND_RANGE
, AMP_GLOBALS
, PITCH_BEND_RANGE
, "Range", -6400.0, 6400.0, ALWAYS
, NULL
);
374 LV2DYNPARAM_PARAMETER_INIT_FLOAT(PITCH_BEND
, PITCH_BEND
, AMP_GLOBALS
, PITCH_BEND
, "Bend", -1.0, 1.0, ALWAYS
, NULL
);
377 g_top_forest_map_voices_group_index
= group_index
;
378 LV2DYNPARAM_GROUP_INIT(ROOT
, VOICES
, "Voices", NULL
);
382 LV2DYNPARAM_FOREST_MAP_END
;
386 zynadd_top_forest_map_get_voices_group()
388 return g_top_forest_map_voices_group_index
;