|
@@ -36,7 +36,7 @@
|
36
|
36
|
|
37
|
37
|
#include "cmDspPgmKrChain.h"
|
38
|
38
|
|
39
|
|
-#define KR2
|
|
39
|
+#undef KR2
|
40
|
40
|
|
41
|
41
|
|
42
|
42
|
cmDspRC_t krLoadRsrc(cmDspSysH_t h, cmErr_t* err, krRsrc_t* r)
|
|
@@ -113,6 +113,9 @@ void _cmDspSys_TlXformChain( cmDspSysH_t h, cmDspTlXform_t* c, unsigned preGrpS
|
113
|
113
|
cmDspInst_t* cost_rt = cmDspSysAllocInst(h, "Router", NULL, 2, measRtrChCnt, measRtrChCnt-1 );
|
114
|
114
|
|
115
|
115
|
// Scale/ranges applied to incoming measurements.
|
|
116
|
+ cmDspInst_t* cel_sr = cmDspSysAllocInst(h, "ScaleRange", NULL, 4, 0.0, 1.0, 0.0, 100.0 );
|
|
117
|
+ cmDspInst_t* exp_sr = cmDspSysAllocInst(h, "ScaleRange", NULL, 4, 0.0, 1.0,-10.0, 10.0 );
|
|
118
|
+ cmDspInst_t* mix_sr = cmDspSysAllocInst(h, "ScaleRange", NULL, 4, 0.0, 1.0, 0.01, 1.0 );
|
116
|
119
|
cmDspInst_t* thr_sr = cmDspSysAllocInst(h, "ScaleRange", NULL, 4, 0.0, 1.0, 0.01, 100.0 );
|
117
|
120
|
cmDspInst_t* upr_sr = cmDspSysAllocInst(h, "ScaleRange", NULL, 4, 0.0, 1.0, -1.0, 5.0 );
|
118
|
121
|
cmDspInst_t* lwr_sr = cmDspSysAllocInst(h, "ScaleRange", NULL, 4, 0.0, 1.0, -5.0, 5.0 );
|
|
@@ -122,19 +125,19 @@ void _cmDspSys_TlXformChain( cmDspSysH_t h, cmDspTlXform_t* c, unsigned preGrpS
|
122
|
125
|
|
123
|
126
|
// Parameter-> kr routers (routers used to cross-fade between the two kr units)
|
124
|
127
|
unsigned paramRtChCnt = 2;
|
125
|
|
- cmDspInst_t* mod_rt = cmDspSysAllocInst(h, "Router", lbl("mod_rt"), 2, paramRtChCnt, paramRtChCnt-1 );
|
126
|
128
|
cmDspInst_t* wnd_rt = cmDspSysAllocInst(h, "Router", NULL, 2, paramRtChCnt, paramRtChCnt-1 );
|
127
|
129
|
cmDspInst_t* hop_rt = cmDspSysAllocInst(h, "Router", NULL, 2, paramRtChCnt, paramRtChCnt-1 );
|
|
130
|
+ cmDspInst_t* cel_rt = cmDspSysAllocInst(h, "Router", NULL, 2, paramRtChCnt, paramRtChCnt-1 );
|
|
131
|
+ cmDspInst_t* exp_rt = cmDspSysAllocInst(h, "Router", NULL, 2, paramRtChCnt, paramRtChCnt-1 );
|
|
132
|
+ cmDspInst_t* mix_rt = cmDspSysAllocInst(h, "Router", NULL, 2, paramRtChCnt, paramRtChCnt-1 );
|
128
|
133
|
cmDspInst_t* thr_rt = cmDspSysAllocInst(h, "Router", NULL, 2, paramRtChCnt, paramRtChCnt-1 );
|
129
|
134
|
cmDspInst_t* upr_rt = cmDspSysAllocInst(h, "Router", NULL, 2, paramRtChCnt, paramRtChCnt-1 );
|
130
|
135
|
cmDspInst_t* lwr_rt = cmDspSysAllocInst(h, "Router", NULL, 2, paramRtChCnt, paramRtChCnt-1 );
|
131
|
|
- cmDspInst_t* inv_rt = cmDspSysAllocInst(h, "Router", NULL, 2, paramRtChCnt, paramRtChCnt-1 );
|
132
|
|
- cmDspInst_t* off_rt = cmDspSysAllocInst(h, "Router", NULL, 2, paramRtChCnt, paramRtChCnt-1 );
|
133
|
136
|
cmDspInst_t* wet_rt = cmDspSysAllocInst(h, "Router", NULL, 2, paramRtChCnt, paramRtChCnt-1 );
|
134
|
137
|
|
135
|
138
|
// Audio processors
|
136
|
|
- cmDspInst_t* kr0 = cmDspSysAllocInst(h, "Kr", NULL, 2, krWndSmpCnt, krHopFact );
|
137
|
|
- cmDspInst_t* kr1 = cmDspSysAllocInst(h, "Kr", NULL, 2, krWndSmpCnt, krHopFact );
|
|
139
|
+ cmDspInst_t* kr0 = cmDspSysAllocInst(h, "Kr2", NULL, 2, krWndSmpCnt, krHopFact );
|
|
140
|
+ cmDspInst_t* kr1 = cmDspSysAllocInst(h, "Kr2", NULL, 2, krWndSmpCnt, krHopFact );
|
138
|
141
|
cmDspInst_t* xfad = cmDspSysAllocInst(h, "Xfader", NULL, 3, xfadeChCnt, xfadeMs, xfadeInitFl );
|
139
|
142
|
cmDspInst_t* mix = cmDspSysAllocInst(h, "AMix", NULL, 3, xfadeChCnt, mixGain, mixGain );
|
140
|
143
|
cmDspInst_t* cmp = cmDspSysAllocInst(h, "Compressor", NULL, 8, cmpBypassFl, cmpThreshDb, cmpRatio_num, cmpAtkMs, cmpRlsMs, cmpMakeup, cmpWndMs, cmpWndMaxMs );
|
|
@@ -193,6 +196,12 @@ void _cmDspSys_TlXformChain( cmDspSysH_t h, cmDspTlXform_t* c, unsigned preGrpS
|
193
|
196
|
cmDspSysInstallCb(h, cost_sr, "val_out", cost_rt, "f-in", NULL );
|
194
|
197
|
|
195
|
198
|
cmDspSysNewColumn(h,0);
|
|
199
|
+ cmDspInst_t* min_cel_ctl = cmDspSysAllocScalarP( h,preGrpSymId, NULL, lbl("Min Ceil"), 0.0,100.0, 0.1, 10.0);
|
|
200
|
+ cmDspInst_t* max_cel_ctl = cmDspSysAllocScalarP( h,preGrpSymId, NULL, lbl("Max Ceil"), 0.0,100.0, 0.1, 50.0);
|
|
201
|
+ cmDspInst_t* min_exp_ctl = cmDspSysAllocScalarP( h,preGrpSymId, NULL, lbl("Min Exp"), -10.0, 10.0, 0.01, 1.0);
|
|
202
|
+ cmDspInst_t* max_exp_ctl = cmDspSysAllocScalarP( h,preGrpSymId, NULL, lbl("Max Exp"), -10.0, 10.0, 0.01, 4.0);
|
|
203
|
+ cmDspInst_t* min_mix_ctl = cmDspSysAllocScalarP( h,preGrpSymId, NULL, lbl("Min Mix"), 0.0, 1.0, 0.01, 0.0);
|
|
204
|
+ cmDspInst_t* max_mix_ctl = cmDspSysAllocScalarP( h,preGrpSymId, NULL, lbl("Max Mix"), 0.0, 1.0, 0.01, 1.0);
|
196
|
205
|
cmDspInst_t* min_thr_ctl = cmDspSysAllocScalarP( h,preGrpSymId, NULL, lbl("Min Thresh"), 0.0,100.0, 1.0, 30.0);
|
197
|
206
|
cmDspInst_t* max_thr_ctl = cmDspSysAllocScalarP( h,preGrpSymId, NULL, lbl("Max Thresh"), 0.0,100.0, 1.0, 80.0);
|
198
|
207
|
cmDspInst_t* min_upr_ctl = cmDspSysAllocScalarP( h,preGrpSymId, NULL, lbl("Min Upr"), -1.0, 1.0, 0.001, -0.5);
|
|
@@ -207,22 +216,16 @@ void _cmDspSys_TlXformChain( cmDspSysH_t h, cmDspTlXform_t* c, unsigned preGrpS
|
207
|
216
|
|
208
|
217
|
// Parameter number controls
|
209
|
218
|
cmDspSysNewColumn(h,0);
|
210
|
|
- cmDspInst_t* mod_ctl = cmDspSysAllocScalarP( h,preGrpSymId,NULL, lbl("Mode"), 0.0, 4.0, 1.0, 1.0);
|
211
|
219
|
cmDspInst_t* wnd_ctl = cmDspSysAllocMsgListP(h,preGrpSymId,NULL, lbl("WndSmpCnt"), NULL, "wndSmpCnt", 2);
|
212
|
220
|
cmDspInst_t* hop_ctl = cmDspSysAllocMsgListP(h,preGrpSymId,NULL, lbl("HopFact"), NULL, "hopFact", 2);
|
|
221
|
+ cmDspInst_t* cel_ctl = cmDspSysAllocScalarP( h,preGrpSymId,NULL, lbl("Ceiling"), 0.0, 100.0, 0.1, 30.0 );
|
|
222
|
+ cmDspInst_t* exp_ctl = cmDspSysAllocScalarP( h,preGrpSymId,NULL, lbl("Expo"), -10.0, 10.0, 0.01, 2.0 );
|
|
223
|
+ cmDspInst_t* mix_ctl = cmDspSysAllocScalarP( h,preGrpSymId,NULL, lbl("Mix"), 0.0, 1.0, 0.01, 0.0 );
|
213
|
224
|
cmDspInst_t* thr_ctl = cmDspSysAllocScalarP( h,preGrpSymId,NULL, lbl("Threshold"), 0.0, 100.0, 1.0, 60.0 );
|
214
|
225
|
cmDspInst_t* upr_ctl = cmDspSysAllocScalarP( h,preGrpSymId,NULL, lbl("Upr slope"), 0.0, 10.0, 0.01, 0.0 );
|
215
|
226
|
cmDspInst_t* lwr_ctl = cmDspSysAllocScalarP( h,preGrpSymId,NULL, lbl("Lwr slope"), 0.3, 10.0, 0.01, 2.0 );
|
216
|
|
- cmDspInst_t* off_ctl = cmDspSysAllocScalarP( h,preGrpSymId,NULL, lbl("Offset"), 0.0, 100.0, 0.01, 20.0 );
|
217
|
|
- cmDspInst_t* inv_ctl = cmDspSysAllocScalarP( h,preGrpSymId,NULL, lbl("Invert"), 0.0, 1.0, 1.0, 0.0 );
|
218
|
227
|
cmDspInst_t* wet_ctl = cmDspSysAllocScalarP( h,preGrpSymId,NULL, lbl("Wet Dry"), 0.0, 1.0, 0.001, 1.0 );
|
219
|
228
|
|
220
|
|
-
|
221
|
|
- cmDspSysInstallCb(h, mod_ctl, "val", mod_rt, "f-in", NULL );
|
222
|
|
- cmDspSysInstallCb(h, achan, "ch", mod_rt, "sel", NULL ); // ach->rt sel
|
223
|
|
- cmDspSysInstallCb(h, mod_rt, "f-out-0", kr0, "mode", NULL ); // mode->kr
|
224
|
|
- cmDspSysInstallCb(h, mod_rt, "f-out-1", kr1, "mode", NULL ); // mode->kr
|
225
|
|
-
|
226
|
229
|
cmDspSysInstallCb(h, wnd_ctl, "out", wnd_rt, "f-in", NULL );
|
227
|
230
|
cmDspSysInstallCb(h, achan, "ch", wnd_rt, "sel", NULL ); // ach->rt sel
|
228
|
231
|
cmDspSysInstallCb(h, wnd_rt, "f-out-0", kr0, "wndn", NULL ); // wndn->kr
|
|
@@ -233,6 +236,43 @@ void _cmDspSys_TlXformChain( cmDspSysH_t h, cmDspTlXform_t* c, unsigned preGrpS
|
233
|
236
|
cmDspSysInstallCb(h, hop_rt, "f-out-0", kr0, "hopf", NULL ); // hopf->kr
|
234
|
237
|
cmDspSysInstallCb(h, hop_rt, "f-out-1", kr1, "hopf", NULL ); // hopf->kr
|
235
|
238
|
|
|
239
|
+
|
|
240
|
+ cmDspSysInstallCb(h, min_cel_ctl, "val", cel_sr, "min_out", NULL );
|
|
241
|
+ cmDspSysInstallCb(h, max_cel_ctl, "val", cel_sr, "max_out", NULL );
|
|
242
|
+ cmDspSysInstallCb(h, even_rt, "f-out-0", cel_sr, "val_in", NULL );
|
|
243
|
+ cmDspSysInstallCb(h, dynm_rt, "f-out-0", cel_sr, "val_in", NULL );
|
|
244
|
+ cmDspSysInstallCb(h, tmpo_rt, "f-out-0", cel_sr, "val_in", NULL );
|
|
245
|
+ cmDspSysInstallCb(h, cost_rt, "f-out-0", cel_sr, "val_in", NULL );
|
|
246
|
+ cmDspSysInstallCb(h, cel_sr, "val_out", cel_ctl,"val", NULL );
|
|
247
|
+ cmDspSysInstallCb(h, cel_ctl, "val", cel_rt, "f-in", NULL );
|
|
248
|
+ cmDspSysInstallCb(h, achan, "ch", cel_rt, "sel", NULL ); // ach->rt sel
|
|
249
|
+ cmDspSysInstallCb(h, cel_rt, "f-out-0", kr0, "ceil", NULL ); // cel->kr
|
|
250
|
+ cmDspSysInstallCb(h, cel_rt, "f-out-1", kr1, "ceil", NULL ); // cel->kr
|
|
251
|
+
|
|
252
|
+ cmDspSysInstallCb(h, min_exp_ctl, "val", exp_sr, "min_out", NULL );
|
|
253
|
+ cmDspSysInstallCb(h, max_exp_ctl, "val", exp_sr, "max_out", NULL );
|
|
254
|
+ cmDspSysInstallCb(h, even_rt, "f-out-0", exp_sr, "val_in", NULL );
|
|
255
|
+ cmDspSysInstallCb(h, dynm_rt, "f-out-0", exp_sr, "val_in", NULL );
|
|
256
|
+ cmDspSysInstallCb(h, tmpo_rt, "f-out-0", exp_sr, "val_in", NULL );
|
|
257
|
+ cmDspSysInstallCb(h, cost_rt, "f-out-0", exp_sr, "val_in", NULL );
|
|
258
|
+ cmDspSysInstallCb(h, exp_sr, "val_out", exp_ctl,"val", NULL );
|
|
259
|
+ cmDspSysInstallCb(h, exp_ctl, "val", exp_rt, "f-in", NULL );
|
|
260
|
+ cmDspSysInstallCb(h, achan, "ch", exp_rt, "sel", NULL ); // ach->rt sel
|
|
261
|
+ cmDspSysInstallCb(h, exp_rt, "f-out-0", kr0, "expo", NULL ); // exp->kr
|
|
262
|
+ cmDspSysInstallCb(h, exp_rt, "f-out-1", kr1, "expo", NULL ); // exp->kr
|
|
263
|
+
|
|
264
|
+ cmDspSysInstallCb(h, min_mix_ctl, "val", mix_sr, "min_out", NULL );
|
|
265
|
+ cmDspSysInstallCb(h, max_mix_ctl, "val", mix_sr, "max_out", NULL );
|
|
266
|
+ cmDspSysInstallCb(h, even_rt, "f-out-0", mix_sr, "val_in", NULL );
|
|
267
|
+ cmDspSysInstallCb(h, dynm_rt, "f-out-0", mix_sr, "val_in", NULL );
|
|
268
|
+ cmDspSysInstallCb(h, tmpo_rt, "f-out-0", mix_sr, "val_in", NULL );
|
|
269
|
+ cmDspSysInstallCb(h, cost_rt, "f-out-0", mix_sr, "val_in", NULL );
|
|
270
|
+ cmDspSysInstallCb(h, mix_sr, "val_out", mix_ctl,"val", NULL );
|
|
271
|
+ cmDspSysInstallCb(h, mix_ctl, "val", mix_rt, "f-in", NULL );
|
|
272
|
+ cmDspSysInstallCb(h, achan, "ch", mix_rt, "sel", NULL ); // ach->rt sel
|
|
273
|
+ cmDspSysInstallCb(h, mix_rt, "f-out-0", kr0, "mix", NULL ); // mix->kr
|
|
274
|
+ cmDspSysInstallCb(h, mix_rt, "f-out-1", kr1, "mix", NULL ); // mix->kr
|
|
275
|
+
|
236
|
276
|
cmDspSysInstallCb(h, min_thr_ctl, "val", thr_sr, "min_out", NULL );
|
237
|
277
|
cmDspSysInstallCb(h, max_thr_ctl, "val", thr_sr, "max_out", NULL );
|
238
|
278
|
cmDspSysInstallCb(h, even_rt, "f-out-0", thr_sr, "val_in", NULL );
|
|
@@ -268,31 +308,13 @@ void _cmDspSys_TlXformChain( cmDspSysH_t h, cmDspTlXform_t* c, unsigned preGrpS
|
268
|
308
|
cmDspSysInstallCb(h, achan, "ch", lwr_rt, "sel", NULL ); // ach->rt sel
|
269
|
309
|
cmDspSysInstallCb(h, lwr_rt, "f-out-0", kr0, "lwrs", NULL ); // lwr->kr
|
270
|
310
|
cmDspSysInstallCb(h, lwr_rt, "f-out-1", kr1, "lwrs", NULL ); // lwr->kr
|
271
|
|
-
|
272
|
|
- cmDspSysInstallCb(h, min_off_ctl, "val", off_sr, "min_out", NULL );
|
273
|
|
- cmDspSysInstallCb(h, max_off_ctl, "val", off_sr, "max_out", NULL );
|
274
|
|
- cmDspSysInstallCb(h, even_rt, "f-out-3", off_sr, "val_in", NULL );
|
275
|
|
- cmDspSysInstallCb(h, dynm_rt, "f-out-3", off_sr, "val_in", NULL );
|
276
|
|
- cmDspSysInstallCb(h, tmpo_rt, "f-out-3", off_sr, "val_in", NULL );
|
277
|
|
- cmDspSysInstallCb(h, cost_rt, "f-out-3", off_sr, "val_in", NULL );
|
278
|
|
- cmDspSysInstallCb(h, off_sr, "val_out", off_ctl,"val", NULL );
|
279
|
|
- cmDspSysInstallCb(h, off_ctl, "val", off_rt, "f-in", NULL );
|
280
|
|
- cmDspSysInstallCb(h, achan, "ch", off_rt, "sel", NULL ); // ach->rt sel
|
281
|
|
- cmDspSysInstallCb(h, off_rt, "f-out-0", kr0, "offs", NULL ); // off->kr
|
282
|
|
- cmDspSysInstallCb(h, off_rt, "f-out-1", kr1, "offs", NULL ); // off->kr
|
283
|
|
-
|
284
|
|
- cmDspSysInstallCb(h, inv_ctl, "val", inv_rt, "f-in", NULL );
|
285
|
|
- cmDspSysInstallCb(h, achan, "ch", inv_rt, "sel", NULL ); // ach->rt sel
|
286
|
|
- cmDspSysInstallCb(h, inv_rt, "f-out-0", kr0, "invt", NULL ); // inv->kr
|
287
|
|
- cmDspSysInstallCb(h, inv_rt, "f-out-1", kr1, "invt", NULL ); // inv->kr
|
288
|
|
-
|
|
311
|
+
|
289
|
312
|
cmDspSysInstallCb(h, min_wet_ctl, "val", wet_sr, "min_out", NULL );
|
290
|
313
|
cmDspSysInstallCb(h, max_wet_ctl, "val", wet_sr, "max_out", NULL );
|
291
|
314
|
cmDspSysInstallCb(h, even_rt, "f-out-4", wet_sr, "val_in", NULL );
|
292
|
315
|
cmDspSysInstallCb(h, dynm_rt, "f-out-4", wet_sr, "val_in", NULL );
|
293
|
316
|
cmDspSysInstallCb(h, tmpo_rt, "f-out-4", wet_sr, "val_in", NULL );
|
294
|
317
|
cmDspSysInstallCb(h, cost_rt, "f-out-4", wet_sr, "val_in", NULL );
|
295
|
|
-
|
296
|
318
|
cmDspSysInstallCb(h, wet_sr, "val_out", wet_ctl,"val", NULL );
|
297
|
319
|
cmDspSysInstallCb(h, wet_ctl, "val", wet_rt, "f-in", NULL );
|
298
|
320
|
cmDspSysInstallCb(h, achan, "ch", wet_rt, "sel", NULL ); // ach->rt sel
|
|
@@ -346,12 +368,19 @@ void _cmDspSys_TlXformChain( cmDspSysH_t h, cmDspTlXform_t* c, unsigned preGrpS
|
346
|
368
|
|
347
|
369
|
|
348
|
370
|
cmDspSysInstallCb(h, modp, mlbl("hop"), hop_ctl, "sel", NULL );
|
349
|
|
- cmDspSysInstallCb(h, modp, mlbl("mod"), mod_ctl, "val", NULL );
|
|
371
|
+ cmDspSysInstallCb(h, modp, mlbl("ceil"), cel_ctl, "val", NULL );
|
|
372
|
+ cmDspSysInstallCb(h, modp, mlbl("expo"), exp_ctl, "val", NULL );
|
|
373
|
+ cmDspSysInstallCb(h, modp, mlbl("mix"), mix_ctl, "val", NULL );
|
350
|
374
|
cmDspSysInstallCb(h, modp, mlbl("thr"), thr_ctl, "val", NULL );
|
351
|
375
|
cmDspSysInstallCb(h, modp, mlbl("upr"), upr_ctl, "val", NULL );
|
352
|
376
|
cmDspSysInstallCb(h, modp, mlbl("lwr"), lwr_ctl, "val", NULL );
|
353
|
|
- cmDspSysInstallCb(h, modp, mlbl("off"), off_ctl, "val", NULL );
|
354
|
377
|
cmDspSysInstallCb(h, modp, mlbl("wet"), wet_ctl, "val", NULL );
|
|
378
|
+ cmDspSysInstallCb(h, modp, mlbl("minc"), min_cel_ctl, "val", NULL );
|
|
379
|
+ cmDspSysInstallCb(h, modp, mlbl("maxc"), max_cel_ctl, "val", NULL );
|
|
380
|
+ cmDspSysInstallCb(h, modp, mlbl("mine"), min_exp_ctl, "val", NULL );
|
|
381
|
+ cmDspSysInstallCb(h, modp, mlbl("maxe"), max_exp_ctl, "val", NULL );
|
|
382
|
+ cmDspSysInstallCb(h, modp, mlbl("minm"), min_mix_ctl, "val", NULL );
|
|
383
|
+ cmDspSysInstallCb(h, modp, mlbl("maxm"), max_mix_ctl, "val", NULL );
|
355
|
384
|
cmDspSysInstallCb(h, modp, mlbl("mint"), min_thr_ctl, "val", NULL );
|
356
|
385
|
cmDspSysInstallCb(h, modp, mlbl("maxt"), max_thr_ctl, "val", NULL );
|
357
|
386
|
cmDspSysInstallCb(h, modp, mlbl("minu"), min_upr_ctl, "val", NULL );
|