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