1 /*
2 * Copyright (C) 2002 - David W. Durham
3 *
4 * This file is part of ReZound, an audio editing application.
5 *
6 * ReZound is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published
8 * by the Free Software Foundation; either version 2 of the License,
9 * or (at your option) any later version.
10 *
11 * ReZound is distributed in the hope that it will be useful, but
12 * WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
19 */
20
21 #include "EffectActionDialogs.h"
22
23 #include "../backend/ActionParamMappers.h"
24
25
26 // --- volume ---------------------------------
27
CNormalVolumeChangeDialog(FXWindow * mainWindow)28 CNormalVolumeChangeDialog::CNormalVolumeChangeDialog(FXWindow *mainWindow) :
29 CActionParamDialog(mainWindow)
30 {
31 void *p=newHorzPanel(NULL);
32 addSlider(p,
33 N_("Volume Change"),
34 "dB",
35 new CActionParamMapper_linear_bipolar(3.0,3,100),
36 dB_to_scalar,
37 true
38 );
39 }
40
41
42
CNormalGainDialog(FXWindow * mainWindow)43 CNormalGainDialog::CNormalGainDialog(FXWindow *mainWindow) :
44 CActionParamDialog(mainWindow)
45 {
46 void *p=newHorzPanel(NULL);
47 addSlider(p,
48 N_("Gain"),
49 "x",
50 new CActionParamMapper_recipsym(2.0,2,2,100),
51 NULL,
52 true
53 );
54
55 // ??? add a check box for negation of gain
56 }
57
CAdvancedGainDialog(FXWindow * mainWindow)58 CAdvancedGainDialog::CAdvancedGainDialog(FXWindow *mainWindow) :
59 CActionParamDialog(mainWindow)
60 {
61 void *p=newHorzPanel(NULL);
62 addGraphWithWaveform(p,
63 N_("Gain Curve"),
64 N_("Gain"),
65 "x",
66 new CActionParamMapper_linear(1.0,2,-10,10),
67 NULL
68 );
69 }
70
71
72
73 // --- rate -----------------------------------
74
CNormalRateChangeDialog(FXWindow * mainWindow)75 CNormalRateChangeDialog::CNormalRateChangeDialog(FXWindow *mainWindow) :
76 CActionParamDialog(mainWindow)
77 {
78 void *p=newHorzPanel(NULL);
79 addSlider(p,
80 N_("Rate Change"),
81 "x",
82 new CActionParamMapper_recipsym(2.0,2,1,100),
83 NULL,
84 true
85 );
86 }
87
CAdvancedRateChangeDialog(FXWindow * mainWindow)88 CAdvancedRateChangeDialog::CAdvancedRateChangeDialog(FXWindow *mainWindow) :
89 CActionParamDialog(mainWindow)
90 {
91 void *p=newHorzPanel(NULL);
92 addGraphWithWaveform(p,
93 N_("Rate Curve"),
94 N_("Rate"),
95 "x",
96 new CActionParamMapper_linear(1.0,2,1,100),
97 NULL
98 );
99 }
100
101
102
103
104
105 // --- flange ------------------------------
106
CFlangeDialog(FXWindow * mainWindow)107 CFlangeDialog::CFlangeDialog(FXWindow *mainWindow) :
108 CActionParamDialog(mainWindow)
109 {
110 void *p=newHorzPanel(NULL);
111 addSlider(p,
112 N_("Delay"),
113 "ms",
114 new CActionParamMapper_linear(2.0,2,2,100),
115 NULL,
116 false
117 );
118
119 addSlider(p,
120 N_("Wet Gain"),
121 "x",
122 new CActionParamMapper_linear(1.0,2,-20,20),
123 NULL,
124 false
125 );
126
127 addSlider(p,
128 N_("Dry Gain"),
129 "x",
130 new CActionParamMapper_linear(1.0,2,-20,10),
131 NULL,
132 false
133 );
134
135 addLFO(p,
136 N_("Flange LFO"),
137 "ms",
138 N_("LFO Depth"),
139 20,
140 "Hz",
141 20,
142 true
143 );
144
145 addSlider(p,
146 N_("Feedback"),
147 "x",
148 new CActionParamMapper_linear_range(0.0,-0.95,0.95),
149 NULL,
150 true
151 );
152 }
153
154
155
156
157
158 // --- delay -------------------------------
159
CSimpleDelayDialog(FXWindow * mainWindow)160 CSimpleDelayDialog::CSimpleDelayDialog(FXWindow *mainWindow) :
161 CActionParamDialog(mainWindow)
162 {
163 void *p=newHorzPanel(NULL);
164 addSlider(p,
165 N_("Delay"),
166 "ms",
167 new CActionParamMapper_linear(250.0,1000,1,10000),
168 NULL,
169 false
170 );
171
172 addSlider(p,
173 N_("Gain"),
174 "x",
175 new CActionParamMapper_linear(0.75,2,-20,20),
176 NULL,
177 false
178 );
179
180 addSlider(p,
181 N_("Feedback"),
182 "x",
183 new CActionParamMapper_linear(0.35,1,-5,5),
184 NULL,
185 false
186 );
187 }
188
189
190
191
192
193 // --- quantize ----------------------------
194
CQuantizeDialog(FXWindow * mainWindow)195 CQuantizeDialog::CQuantizeDialog(FXWindow *mainWindow) :
196 CActionParamDialog(mainWindow)
197 {
198 void *p=newHorzPanel(NULL);
199 addSlider(p,
200 N_("Input Gain"),
201 "x",
202 new CActionParamMapper_recipsym(1.0,2,2,100),
203 NULL,
204 true
205 );
206
207 CActionParamMapper_linear_min_to_scalar *m=new CActionParamMapper_linear_min_to_scalar(8.0,1.0,32,4,1000000);
208 m->floorTheValue(true);
209 addSlider(p,
210 N_("Quantum Count"),
211 "",
212 m,
213 NULL,
214 false
215 );
216 setTipText("Quantum Count",_("The Number of Possible Sample Values Above Zero"));
217
218 addSlider(p,
219 N_("Output Gain"),
220 "x",
221 new CActionParamMapper_recipsym(1.0,2,2,100),
222 NULL,
223 true
224 );
225
226 }
227
228
229
230
231
232 // --- distortion --------------------------
233
CDistortionDialog(FXWindow * mainWindow)234 CDistortionDialog::CDistortionDialog(FXWindow *mainWindow) :
235 CActionParamDialog(mainWindow)
236 {
237 void *p=newHorzPanel(NULL);
238 addGraph(p,
239 N_("Curve"),
240 N_("Input"),
241 "dBFS",
242 new CActionParamMapper_dBFS(-6.0),
243 N_("Output"),
244 "dBFS",
245 new CActionParamMapper_dBFS(-6.0),
246 NULL
247 );
248 }
249
250
251
252
253
254 // --- varied repeat -----------------------
255
CVariedRepeatDialog(FXWindow * mainWindow)256 CVariedRepeatDialog::CVariedRepeatDialog(FXWindow *mainWindow) :
257 CActionParamDialog(mainWindow)
258 {
259 void *p=newHorzPanel(NULL);
260 addLFO(p,
261 N_("LFO"),
262 "",
263 "", // no amp units (so it won't show
264 0,
265 "Hz",
266 200,
267 true
268 );
269
270 addSlider(p,
271 N_("Time"),
272 "s",
273 new CActionParamMapper_linear(4.0,10,1,100),
274 NULL,
275 false
276 );
277
278 // ??? need a checkbox that enables a gain parameter to make it mix ontop of the current audio instead of inserting into it
279 }
280
281