Parcourir la source

cmDspPgmKr.h/c, cmDspPgm.c : Added cmDspSysPgm_Tksb().

master
Kevin Larke il y a 9 ans
Parent
révision
be2528d393
3 fichiers modifiés avec 899 ajouts et 7 suppressions
  1. 61
    1
      dsp/cmDspPgm.c
  2. 837
    5
      dsp/cmDspPgmKr.c
  3. 1
    1
      dsp/cmDspPgmKr.h

+ 61
- 1
dsp/cmDspPgm.c Voir le fichier

@@ -2744,14 +2744,74 @@ cmDspRC_t _cmDspSysPgm_Goertzel( cmDspSysH_t h, void** userPtrPtr )
2744 2744
   return rc;
2745 2745
 }
2746 2746
 
2747
+cmDspRC_t _cmDspSysPgm_TakeSeqBldr( cmDspSysH_t h, void** userPtrPtr )
2748
+{  
2749
+  cmDspRC_t       rc         = kOkDspRC;
2750
+  const cmChar_t* tksbFn     = "/home/kevin/src/cmkc/src/kc/data/takeSeqBldr0.js";
2751
+  const cmChar_t* deviceName = "Fastlane";
2752
+  const cmChar_t* portName   = "Fastlane MIDI A";
2753
+
2754
+  //const cmChar_t* deviceName = "DKV-M4";
2755
+  //const cmChar_t* portName   = "DKV-M4 MIDI 1";
2756
+
2757
+  const cmChar_t* fn  = cmFsMakeFn(cmFsUserDir(),tksbFn,NULL,NULL );
2758
+
2759
+  cmDspInst_t* tsb   = cmDspSysAllocInst( h,"TakeSeqBldr", NULL, 1, tksbFn );
2760
+  cmDspInst_t* tsr   = cmDspSysAllocInst( h,"TakeSeqRend", NULL, 0 );
2761
+  cmDspInst_t* nano  = cmDspSysAllocInst( h,"NanoMap",     NULL, 0 );
2762
+  cmDspInst_t* mop   = cmDspSysAllocInst( h,"MidiOut",     NULL, 2, deviceName, portName);
2763
+
2764
+  cmDspSysNewPage(h,"Controls");
2765
+
2766
+  //cmDspInst_t* fnp   =  cmDspSysAllocInst(h,"Fname",       NULL,  3, false,"JS Files (*.js)\tJS Files (*.{js})",fn);
2767
+
2768
+  cmDspInst_t* start = cmDspSysAllocInst( h,"Button", "start",    2, kButtonDuiId, 0.0 );
2769
+  cmDspInst_t* stop  = cmDspSysAllocInst( h,"Button", "stop",     2, kButtonDuiId, 0.0 );
2770
+  cmDspInst_t* cont  = cmDspSysAllocInst( h,"Button", "continue", 2, kButtonDuiId, 0.0 );
2771
+
2772
+  cmDspInst_t* prt  = cmDspSysAllocInst(  h, "Printer",  NULL, 1, ">" );
2773
+    
2774
+  // check for allocation errors
2775
+  if((rc = cmDspSysLastRC(h)) != kOkDspRC )
2776
+    goto errLabel;
2777
+
2778
+  cmDspSysInstallCb(   h, tsb,    "bldr",  tsr,    "bldr", NULL);    
2779
+  cmDspSysInstallCb(   h, tsb, "refresh",  tsr, "refresh", NULL );
2780
+  cmDspSysInstallCb(   h, tsb,     "sel",  tsr,     "sel", NULL );
2781
+
2782
+  cmDspSysInstallCb(   h, start,   "sym",   tsr,    "cmd", NULL);
2783
+  cmDspSysInstallCb(   h, stop,    "sym",   tsr,    "cmd", NULL);
2784
+  cmDspSysInstallCb(   h, cont,    "sym",   tsr,    "cmd", NULL);
2785
+
2786
+  cmDspSysInstallCb(   h, tsr,  "d1",     nano, "d1",     NULL);
2787
+  cmDspSysInstallCb(   h, tsr,  "d0",     nano, "d0",     NULL);
2788
+  cmDspSysInstallCb(   h, tsr,  "status", nano, "status", NULL);
2789
+
2790
+  cmDspSysInstallCb(   h, nano, "d1",     mop,  "d1",     NULL);
2791
+  cmDspSysInstallCb(   h, nano, "d0",     mop,  "d0",     NULL);
2792
+  cmDspSysInstallCb(   h, nano, "status", mop,  "status", NULL);
2793
+
2794
+  //cmDspSysInstallCb(   h, tsb, "sel", prt, "in", NULL );
2795
+  cmDspSysInstallCb(   h, tsb, "refresh", prt, "in", NULL);
2796
+ errLabel:
2797
+
2798
+  cmFsFreeFn(fn);
2799
+
2800
+  return rc;
2801
+}
2802
+
2803
+
2804
+
2805
+
2747 2806
 
2748 2807
 _cmDspSysPgm_t _cmDspSysPgmArray[] = 
2749 2808
 {
2809
+  { "tksb",          _cmDspSysPgm_Tksb,         NULL, NULL },
2750 2810
   { "time_line",     _cmDspSysPgm_TimeLine,     NULL, NULL },
2811
+  { "seq-bldr",      _cmDspSysPgm_TakeSeqBldr,  NULL, NULL },
2751 2812
   { "multi-out",     _cmDspSysPgm_MultiOut,     NULL, NULL },
2752 2813
   { "multi-in",      _cmDspSysPgm_MultiIn,     NULL, NULL },
2753 2814
   { "goertzel",      _cmDspSysPgm_Goertzel,     NULL, NULL },
2754
-  { "kr_live",       _cmDspSysPgm_KrLive,       NULL, NULL },
2755 2815
   { "main",          _cmDspSysPgm_Main,         NULL, NULL },
2756 2816
   { "array",         _cmDspSysPgm_Array,        NULL, NULL },
2757 2817
   { "line",          _cmDspSysPgm_Line,         NULL, NULL },

+ 837
- 5
dsp/cmDspPgmKr.c Voir le fichier

@@ -483,7 +483,6 @@ cmDspRC_t _cmDspSysPgm_TimeLine(cmDspSysH_t h, void** userPtrPtr )
483 483
 
484 484
   cmDspInst_t* tlp  = cmDspSysAllocInst(h,"TimeLine",    "tl",  2, r.tlFn, r.tlPrefixPath );
485 485
   cmDspInst_t* scp  = cmDspSysAllocInst(h,"Score",       "sc",  1, r.scFn );
486
-  /*cmDspInst_t* tksb =*/ cmDspSysAllocInst(h,"TakeSeqBldr", "tk",  1, r.tksbFn );
487 486
   cmDspInst_t* php  = cmDspSysAllocInst(h,"Phasor",      NULL,  1, cmDspSysSampleRate(h) );
488 487
   cmDspInst_t* wtp  = cmDspSysAllocInst(h,"WaveTable",   NULL,  4, wtSmpCnt, wtInitMode, NULL, wtLoopCnt );
489 488
   cmDspInst_t* pts  = cmDspSysAllocInst(h,"PortToSym",   NULL,  2, "on", "off" );
@@ -1199,11 +1198,844 @@ cmDspRC_t _cmDspSysPgm_TimeLine(cmDspSysH_t h, void** userPtrPtr )
1199 1198
 }
1200 1199
 
1201 1200
 
1201
+cmDspRC_t _cmDspSysPgm_Tksb(cmDspSysH_t h, void** userPtrPtr )
1202
+{
1203
+  cmDspRC_t       rc         = kOkDspRC;
1204
+  cmCtx_t*        cmCtx      = cmDspSysPgmCtx(h);
1205
+  cmErr_t         err;
1206
+  krRsrc_t        r;
1207
+  bool     fragFl       = false;
1208
+  bool     useWtFl      = false;
1209
+  bool     useChain1Fl  = true;
1210
+  bool     useInputEqFl = false;
1211
+  bool     useInCompFl  = true;
1212
+
1213
+  ///unsigned wtLoopCnt    = 1;    // 1=play once (-1=loop forever)
1214
+  ///unsigned wtInitMode   = 0;    // initial wt mode is 'silence'
1215
+  ///unsigned wtSmpCnt     = floor(cmDspSysSampleRate(h)); // wt length == srate
1216
+
1217
+  unsigned        sfBufCnt    = 7;     // length of the MIDI event buffer
1218
+  unsigned        sfMaxWndCnt = 10;    // length of the score event buffer
1219
+  unsigned        sfMinVel    = 5;     // ignore MIDI events below this velocity
1220
+  bool            sfEnaMeasFl = false;
1221
+  double          recdPlayInitAllocSecs    = 10.0;
1222
+  double          recdPlayMaxLaSecs        = 2.0;
1223
+  double          recdPlayCurLaSecs        = 0.1;
1224
+  double          recdPlayFadeRateDbPerSec = 4.0;
1225
+
1226
+
1227
+  bool            eqBypassFl  = false;
1228
+
1229
+  unsigned        eqLpSymId   = cmSymTblRegisterStaticSymbol(cmDspSysSymbolTable(h),"LP");
1230
+  double          eqLpF0hz    = 200.0;
1231
+  double          eqLpQ       = 0.5;
1232
+  double          eqLpGain    = 0.9;
1233
+
1234
+  unsigned        eqBpSymId   = cmSymTblRegisterStaticSymbol(cmDspSysSymbolTable(h),"BP");
1235
+  double          eqBpF0hz    = 350.0;
1236
+  double          eqBpQ       = 0.6;
1237
+  double          eqBpGain    = 1.0;
1238
+
1239
+  unsigned        eqHpSymId = cmSymTblRegisterStaticSymbol(cmDspSysSymbolTable(h),"HP");
1240
+  double          eqHpF0hz    = 600.0;
1241
+  double          eqHpQ       = 0.5;
1242
+  double          eqHpGain    = 0.9;
1243
+
1244
+  bool            apfBypassFl  = false;
1245
+  unsigned        apfModeSymId  = cmSymTblRegisterStaticSymbol(cmDspSysSymbolTable(h),"AP");
1246
+  double          apfF0hz       = 100.0;
1247
+  double          apfQ          = 1.0;
1248
+  double          apfGain       = 1.0;
1249
+
1250
+
1251
+  // input compressor default parameters
1252
+  bool            cmpBypassFl  = false;
1253
+  double          cmpInGain    = 3.0;
1254
+  double          cmpThreshDb  = -40.0;
1255
+  double          cmpRatio_num = 5.0;
1256
+  double          cmpAtkMs     = 20.0;
1257
+  double          cmpRlsMs     = 100.0;
1258
+  double          cmpMakeup    = 1.0;
1259
+  double          cmpWndMaxMs  = 1000.0;
1260
+  double          cmpWndMs     = 200.0;
1261
+ 
1262
+  memset(&r,0,sizeof(r));
1263
+  cmErrSetup(&err,&cmCtx->rpt,"Kr Timeline");
1264
+
1265
+  if( krLoadRsrc(h,&err,&r) != kOkDspRC )
1266
+    return rc;
1267
+
1268
+  cmDspInst_t* ai0p = cmDspSysAllocInst(h,"AudioIn",     NULL,  1, 0);
1269
+  cmDspInst_t* ai1p = cmDspSysAllocInst(h,"AudioIn",     NULL,  1, 1);
1270
+  cmDspInst_t* ai2p = cmDspSysAllocInst(h,"AudioIn",     NULL,  1, 2);
1271
+  cmDspInst_t* ai3p = cmDspSysAllocInst(h,"AudioIn",     NULL,  1, 3);
1272
+
1273
+  cmDspInst_t* eqLpf_0 =  useInputEqFl ? cmDspSysAllocInst(h,"BiQuadEq",NULL, 5, eqBypassFl, eqLpSymId,eqLpF0hz, eqLpQ, eqLpGain  ) : NULL; 
1274
+  cmDspInst_t* eqLpf_1 =  useInputEqFl ? cmDspSysAllocInst(h,"BiQuadEq",NULL, 5, eqBypassFl, eqLpSymId,eqLpF0hz, eqLpQ, eqLpGain  ) : NULL; 
1275
+  cmDspInst_t* eqLpf_2 =  useInputEqFl ? cmDspSysAllocInst(h,"BiQuadEq",NULL, 5, eqBypassFl, eqLpSymId,eqLpF0hz, eqLpQ, eqLpGain  ) : NULL; 
1276
+  cmDspInst_t* eqLpf_3 =  useInputEqFl ? cmDspSysAllocInst(h,"BiQuadEq",NULL, 5, eqBypassFl, eqLpSymId,eqLpF0hz, eqLpQ, eqLpGain  ) : NULL; 
1277
+
1278
+  cmDspInst_t* eqBpf_0 =  useInputEqFl ? cmDspSysAllocInst(h,"BiQuadEq",NULL, 5, eqBypassFl, eqBpSymId,eqBpF0hz, eqBpQ, eqBpGain  ) : NULL; 
1279
+  cmDspInst_t* eqBpf_1 =  useInputEqFl ? cmDspSysAllocInst(h,"BiQuadEq",NULL, 5, eqBypassFl, eqBpSymId,eqBpF0hz, eqBpQ, eqBpGain  ) : NULL; 
1280
+  cmDspInst_t* eqBpf_2 =  useInputEqFl ? cmDspSysAllocInst(h,"BiQuadEq",NULL, 5, eqBypassFl, eqBpSymId,eqBpF0hz, eqBpQ, eqBpGain  ) : NULL; 
1281
+  cmDspInst_t* eqBpf_3 =  useInputEqFl ? cmDspSysAllocInst(h,"BiQuadEq",NULL, 5, eqBypassFl, eqBpSymId,eqBpF0hz, eqBpQ, eqBpGain  ) : NULL; 
1282
+
1283
+  cmDspInst_t* eqHpf_0 =  useInputEqFl ? cmDspSysAllocInst(h,"BiQuadEq",NULL, 5, eqBypassFl, eqHpSymId,eqHpF0hz, eqHpQ, eqHpGain  ) : NULL; 
1284
+  cmDspInst_t* eqHpf_1 =  useInputEqFl ? cmDspSysAllocInst(h,"BiQuadEq",NULL, 5, eqBypassFl, eqHpSymId,eqHpF0hz, eqHpQ, eqHpGain  ) : NULL; 
1285
+  cmDspInst_t* eqHpf_2 =  useInputEqFl ? cmDspSysAllocInst(h,"BiQuadEq",NULL, 5, eqBypassFl, eqHpSymId,eqHpF0hz, eqHpQ, eqHpGain  ) : NULL; 
1286
+  cmDspInst_t* eqHpf_3 =  useInputEqFl ? cmDspSysAllocInst(h,"BiQuadEq",NULL, 5, eqBypassFl, eqHpSymId,eqHpF0hz, eqHpQ, eqHpGain  ) : NULL; 
1287
+
1288
+  double eqMixGain = 1.0/3.0;
1289
+  cmDspInst_t* eqMx_0 = useInputEqFl ? cmDspSysAllocInst( h, "AMix",      NULL, 4, 3, eqMixGain, eqMixGain, eqMixGain) : NULL;
1290
+  cmDspInst_t* eqMx_1 = useInputEqFl ? cmDspSysAllocInst( h, "AMix",      NULL, 4, 3, eqMixGain, eqMixGain, eqMixGain) : NULL;
1291
+  cmDspInst_t* eqMx_2 = useInputEqFl ? cmDspSysAllocInst( h, "AMix",      NULL, 4, 3, eqMixGain, eqMixGain, eqMixGain) : NULL;
1292
+  cmDspInst_t* eqMx_3 = useInputEqFl ? cmDspSysAllocInst( h, "AMix",      NULL, 4, 3, eqMixGain, eqMixGain, eqMixGain) : NULL;
1293
+
1294
+
1295
+  cmDspInst_t* mx0p = cmDspSysAllocInst( h, "AMix",      NULL, 3, 2, 0.5, 0.5);
1296
+  cmDspInst_t* mx1p = cmDspSysAllocInst( h, "AMix",      NULL, 3, 2, 0.5, 0.5);
1297
+
1298
+  cmDspInst_t* ci0p = NULL;
1299
+  cmDspInst_t* ci1p = NULL;
1300
+
1301
+  if( useInCompFl )
1302
+  {
1303
+    ci0p = cmDspSysAllocInst(h,"Compressor",  NULL,  8, cmpBypassFl, cmpThreshDb, cmpRatio_num, cmpAtkMs, cmpRlsMs, cmpMakeup, cmpWndMs, cmpWndMaxMs ); 
1304
+    ci1p = cmDspSysAllocInst(h,"Compressor",  NULL,  8, cmpBypassFl, cmpThreshDb, cmpRatio_num, cmpAtkMs, cmpRlsMs, cmpMakeup, cmpWndMs, cmpWndMaxMs ); 
1305
+  }
1306
+
1307
+  ///cmDspInst_t* tlp  = cmDspSysAllocInst(h,"TimeLine",    "tl",  2, r.tlFn, r.tlPrefixPath );
1308
+  ///cmDspInst_t* scp  = cmDspSysAllocInst(h,"Score",       "sc",  1, r.scFn );
1309
+  ///cmDspInst_t* php  = cmDspSysAllocInst(h,"Phasor",      NULL,  1, cmDspSysSampleRate(h) );
1310
+  ///cmDspInst_t* wtp  = cmDspSysAllocInst(h,"WaveTable",   NULL,  4, wtSmpCnt, wtInitMode, NULL, wtLoopCnt );
1311
+
1312
+  cmDspInst_t* bldr   = cmDspSysAllocInst( h,"TakeSeqBldr", NULL, 1, r.tksbFn );
1313
+  cmDspInst_t* rndr   = cmDspSysAllocInst( h,"TakeSeqRend", NULL, 0 );
1314
+
1315
+  cmDspInst_t* pts  = cmDspSysAllocInst(h,"PortToSym",   NULL,  2, "on", "off" );
1316
+  //cmDspInst_t* mip  = cmDspSysAllocInst(h,"MidiIn",      NULL,  0 );
1317
+
1318
+  //cmDspInst_t* mfp  = cmDspSysAllocInst(h,"MidiFilePlay",NULL,  0 );
1319
+  cmDspInst_t* nmp  = cmDspSysAllocInst(h,"NanoMap",     NULL,  0 );
1320
+  cmDspInst_t* mop  = cmDspSysAllocInst(h,"MidiOut",     NULL,  2, r.midiDevice,r.midiOutPort);
1321
+  cmDspInst_t* mo2p = cmDspSysAllocInst(h,"MidiOut",     NULL,  2, r.midiDevice,r.midiOutPort2);
1322
+  cmDspInst_t* sfp  = cmDspSysAllocInst(h,"ScFol",       NULL,  1, r.scFn, sfBufCnt, sfMaxWndCnt, sfMinVel, sfEnaMeasFl );
1323
+  cmDspInst_t* amp  = cmDspSysAllocInst(h,"ActiveMeas",  NULL,  1, 100 );
1324
+  cmDspInst_t* rpp  = cmDspSysAllocInst(h,"RecdPlay",    NULL,  6, 2, r.scFn, recdPlayInitAllocSecs, recdPlayMaxLaSecs, recdPlayCurLaSecs, recdPlayFadeRateDbPerSec);
1325
+  cmDspInst_t* modp = cmDspSysAllocInst(h,"ScMod",       NULL,  2, r.modFn, "m1" );
1326
+  cmDspInst_t* modr = cmDspSysAllocInst(h,"ScMod",       NULL,  2, r.modFn, "m1" );
1327
+ 
1328
+  unsigned   preGrpSymId     = cmDspSysPresetRegisterGroup(h,"tl");
1329
+  unsigned   cmpPreGrpSymId  = cmDspSysPresetRegisterGroup(h,"tl_cmp"); 
1330
+
1331
+  cmDspTlXform_t c0,c1,c2,c3;
1332
+
1333
+  cmDspSysNewPage(h,"Controls-0");
1334
+  _cmDspSys_TlXformChain(h, &c0, preGrpSymId, cmpPreGrpSymId, modp, 0, 0 );
1335
+
1336
+  if( useChain1Fl )
1337
+  {
1338
+    cmDspSysNewPage(h,"Controls-1");
1339
+    _cmDspSys_TlXformChain(h, &c1, preGrpSymId, cmpPreGrpSymId, modp, 1, 1 );
1340
+  }
1341
+
1342
+  cmDspInst_t* mix0 = NULL;
1343
+  cmDspInst_t* mix1 = NULL;
1344
+
1345
+  if( fragFl )
1346
+  {
1347
+    cmDspSysNewPage(h,"Ctl-R/P-0");
1348
+    _cmDspSys_TlXformChain(h, &c2, preGrpSymId, cmpPreGrpSymId, modr, 2, 0 );
1349
+
1350
+    cmDspSysNewPage(h,"Ctl-R/P-1");
1351
+    _cmDspSys_TlXformChain(h, &c3, preGrpSymId, cmpPreGrpSymId, modr, 3, 1 );
1352
+
1353
+    mix0 = cmDspSysAllocInst(h,"AMix",        NULL,   3, 2, 1.0, 1.0 );
1354
+    mix1 = cmDspSysAllocInst(h,"AMix",        NULL,   3, 2, 1.0, 1.0 );
1355
+  }
1356
+
1357
+  if( useInCompFl )
1358
+  {
1359
+    cmDspSysNewPage(h,"InComp");
1360
+
1361
+    cmDspInst_t* cmp0_byp   = cmDspSysAllocCheckP(  h, cmpPreGrpSymId, NULL, ("0-Bypass"), 0.0 );
1362
+    cmDspInst_t* cmp0_igain = cmDspSysAllocScalarP( h, cmpPreGrpSymId, NULL, ("0-In Gain"),  0.0,   10.0, 0.1, cmpInGain);
1363
+    cmDspInst_t* cmp0_thr   = cmDspSysAllocScalarP( h, cmpPreGrpSymId, NULL, ("0-ThreshDb"), -100.0, 0.0, 0.1, cmpThreshDb);
1364
+    cmDspInst_t* cmp0_rat   = cmDspSysAllocScalarP( h, cmpPreGrpSymId, NULL, ("0-Ratio"),    0.1, 100, 0.1, cmpRatio_num);
1365
+    cmDspInst_t* cmp0_atk   = cmDspSysAllocScalarP( h, cmpPreGrpSymId, NULL, ("0-Atk Ms"),   0.0, 1000.0, 0.1, cmpAtkMs);
1366
+    cmDspInst_t* cmp0_rls   = cmDspSysAllocScalarP( h, cmpPreGrpSymId, NULL, ("0-Rls Ms"),   0.0, 1000.0, 0.1, cmpRlsMs);
1367
+    cmDspInst_t* cmp0_mkup  = cmDspSysAllocScalarP( h, cmpPreGrpSymId, NULL, ("0-Makeup"),   0.0, 10.0,   0.01, cmpMakeup);
1368
+    cmDspInst_t* cmp0_wnd   = cmDspSysAllocScalarP( h, cmpPreGrpSymId, NULL, ("0-Wnd Ms"),   1.0, cmpWndMaxMs, 1.0, cmpWndMs );
1369
+    cmDspInst_t* cmp0_mtr   = cmDspSysAllocInst(h,"Meter",("0-Env"), 3, 0.0, 0.0, 1.0);
1370
+
1371
+    cmDspSysInstallCb(h, cmp0_byp,  "out", ci0p, "bypass", NULL );
1372
+    cmDspSysInstallCb(h, cmp0_igain,"val", ci0p, "igain", NULL );
1373
+    cmDspSysInstallCb(h, cmp0_thr,  "val", ci0p, "thr", NULL );
1374
+    cmDspSysInstallCb(h, cmp0_rat,  "val", ci0p, "ratio", NULL );
1375
+    cmDspSysInstallCb(h, cmp0_atk,  "val", ci0p, "atk", NULL );
1376
+    cmDspSysInstallCb(h, cmp0_rls,  "val", ci0p, "rls", NULL );
1377
+    cmDspSysInstallCb(h, cmp0_mkup, "val", ci0p, "ogain", NULL );
1378
+    cmDspSysInstallCb(h, cmp0_wnd,  "val", ci0p, "wnd", NULL );
1379
+    cmDspSysInstallCb(h, ci0p,      "env", cmp0_mtr, "in", NULL );
1380
+
1381
+    cmDspSysNewColumn(h,0);
1382
+    cmDspInst_t* cmp1_byp   = cmDspSysAllocCheckP(  h, cmpPreGrpSymId, NULL, ("1-Bypass"), 0.0 );
1383
+    cmDspInst_t* cmp1_igain = cmDspSysAllocScalarP( h, cmpPreGrpSymId, NULL, ("1-In Gain"),  0.0,   10.0, 0.1, cmpInGain);
1384
+    cmDspInst_t* cmp1_thr   = cmDspSysAllocScalarP( h, cmpPreGrpSymId, NULL, ("1-ThreshDb"), -100.0, 0.0, 0.1, cmpThreshDb);
1385
+    cmDspInst_t* cmp1_rat   = cmDspSysAllocScalarP( h, cmpPreGrpSymId, NULL, ("1-Ratio"),    0.1, 100, 0.1, cmpRatio_num);
1386
+    cmDspInst_t* cmp1_atk   = cmDspSysAllocScalarP( h, cmpPreGrpSymId, NULL, ("1-Atk Ms"),   0.0, 1000.0, 0.1, cmpAtkMs);
1387
+    cmDspInst_t* cmp1_rls   = cmDspSysAllocScalarP( h, cmpPreGrpSymId, NULL, ("1-Rls Ms"),   0.0, 1000.0, 0.1, cmpRlsMs);
1388
+    cmDspInst_t* cmp1_mkup  = cmDspSysAllocScalarP( h, cmpPreGrpSymId, NULL, ("1-Makeup"),   0.0, 10.0,   0.01, cmpMakeup);
1389
+    cmDspInst_t* cmp1_wnd   = cmDspSysAllocScalarP( h, cmpPreGrpSymId, NULL, ("1-Wnd Ms"),   1.0, cmpWndMaxMs, 1.0, cmpWndMs );
1390
+    cmDspInst_t* cmp1_mtr   = cmDspSysAllocInst(h,"Meter",("1-Env"), 3, 0.0, 0.0, 1.0);
1391
+
1392
+    cmDspSysInstallCb(h, cmp1_byp,  "out", ci1p, "bypass", NULL );
1393
+    cmDspSysInstallCb(h, cmp1_igain,"val", ci1p, "igain", NULL );
1394
+    cmDspSysInstallCb(h, cmp1_thr,  "val", ci1p, "thr", NULL );
1395
+    cmDspSysInstallCb(h, cmp1_rat,  "val", ci1p, "ratio", NULL );
1396
+    cmDspSysInstallCb(h, cmp1_atk,  "val", ci1p, "atk", NULL );
1397
+    cmDspSysInstallCb(h, cmp1_rls,  "val", ci1p, "rls", NULL );
1398
+    cmDspSysInstallCb(h, cmp1_mkup, "val", ci1p, "ogain", NULL );
1399
+    cmDspSysInstallCb(h, cmp1_wnd,  "val", ci1p, "wnd", NULL );
1400
+    cmDspSysInstallCb(h, ci1p,      "env", cmp1_mtr, "in", NULL );
1401
+
1402
+  }
1403
+
1404
+  cmDspInst_t* apf0 =  cmDspSysAllocInst(h,"BiQuadEq",NULL, 5, apfBypassFl, apfModeSymId, apfF0hz+0, apfQ, apfGain  ); 
1405
+  cmDspInst_t* apf1 =  cmDspSysAllocInst(h,"BiQuadEq",NULL, 5, apfBypassFl, apfModeSymId, apfF0hz+100.0, apfQ, apfGain  ); 
1406
+  cmDspInst_t* apf2 =  cmDspSysAllocInst(h,"BiQuadEq",NULL, 5, apfBypassFl, apfModeSymId, apfF0hz+200.0, apfQ, apfGain  ); 
1407
+  cmDspInst_t* apf3 =  cmDspSysAllocInst(h,"BiQuadEq",NULL, 5, apfBypassFl, apfModeSymId, apfF0hz+300.0, apfQ, apfGain  ); 
1408
+
1409
+  cmDspInst_t* ao0p = cmDspSysAllocInst(h,"AudioOut",    NULL,   1, 0 );
1410
+  cmDspInst_t* ao1p = cmDspSysAllocInst(h,"AudioOut",    NULL,   1, 1 );
1411
+  cmDspInst_t* ao2p = cmDspSysAllocInst(h,"AudioOut",    NULL,   1, 2 );
1412
+  cmDspInst_t* ao3p = cmDspSysAllocInst(h,"AudioOut",    NULL,   1, 3 );
1413
+
1414
+  cmDspSysNewPage(h,"Main");
1415
+  cmDspInst_t* liveb= cmDspSysAllocInst(h,"Button", "live",    2, kCheckDuiId,  0.0 );
1416
+  cmDspInst_t* simb = cmDspSysAllocInst(h,"Button", "simulate",2, kCheckDuiId,  0.0 );
1417
+  cmDspInst_t* ainb = cmDspSysAllocInst(h,"Button", "audio in",2, kCheckDuiId,  0.0 );
1418
+  cmDspInst_t* measb= cmDspSysAllocInst(h,"Button", "meas",    2, kCheckDuiId,  0.0 );
1419
+  cmDspInst_t* onb  = cmDspSysAllocInst(h,"Button", "start",   2, kButtonDuiId, 1.0 );
1420
+  cmDspInst_t* offb = cmDspSysAllocInst(h,"Button", "stop",    2, kButtonDuiId, 1.0 );
1421
+  //cmDspInst_t* prtb = cmDspSysAllocInst(h,"Button", "print",   2, kButtonDuiId, 1.0 );
1422
+  //cmDspInst_t* qtb  = cmDspSysAllocInst(h,"Button", "quiet",   2, kButtonDuiId, 1.0 );
1423
+  cmDspInst_t* mutm = cmDspSysAllocInst(h,"Checkbox","main",   1, "main","on","off",1.0,0.0,1.0 );
1424
+  cmDspInst_t* mutr = cmDspSysAllocInst(h,"Checkbox","frag",   1, "frag","on","off",1.0,0.0,1.0 );
1425
+  cmDspInst_t* prp  = cmDspSysAllocInst(h,"Printer", NULL,   1, ">" );
1426
+  cmDspInst_t* prd  = cmDspSysAllocInst(h,"Printer", NULL,   1, "DYN:" );
1427
+  cmDspInst_t* pre  = cmDspSysAllocInst(h,"Printer", NULL,   1, "EVEN:" );
1428
+  cmDspInst_t* prt  = cmDspSysAllocInst(h,"Printer", NULL,   1, "TEMPO:");
1429
+  cmDspInst_t* prc  = cmDspSysAllocInst(h,"Printer", NULL,   1, "COST:");
1430
+  //cmDspInst_t* prv  = cmDspSysAllocInst(h,"Printer", NULL,   1, "Value:");
1431
+
1432
+  // Record <-> Live switches
1433
+  cmDspInst_t* tlRt  = cmDspSysAllocInst(h,"Router", NULL, 2, 2, 0);  // time line swich
1434
+  cmDspInst_t* wtRt  = cmDspSysAllocInst(h,"Router", NULL, 2, 2, 0);
1435
+  cmDspInst_t* mfpRt = cmDspSysAllocInst(h,"Router", NULL, 2, 2, 0);
1436
+  cmDspInst_t* amRt  = cmDspSysAllocInst(h,"Router", NULL, 2, 2, 0);
1437
+  cmDspInst_t* au0Sw = cmDspSysAllocInst(h,"1ofN",   NULL, 2, 2, 0);
1438
+  cmDspInst_t* au1Sw = cmDspSysAllocInst(h,"1ofN",   NULL, 2, 2, 0);
1439
+
1440
+  cmDspInst_t* siRt  = cmDspSysAllocInst(h,"Router", NULL, 2, 2, 0);  
1441
+  cmDspInst_t* muRt  = cmDspSysAllocInst(h,"Router", NULL, 2, 2, 0);  
1442
+  cmDspInst_t* d0Rt  = cmDspSysAllocInst(h,"Router", NULL, 2, 2, 0);
1443
+  cmDspInst_t* d1Rt  = cmDspSysAllocInst(h,"Router", NULL, 2, 2, 0);
1444
+  cmDspInst_t* stRt  = cmDspSysAllocInst(h,"Router", NULL, 2, 2, 0);
1445
+
1446
+  cmDspSysNewColumn(h,0);
1447
+  cmDspInst_t* igain0 = cmDspSysAllocInst(h,"Scalar", "In Gain-0",    5, kNumberDuiId, 0.0,   100.0,0.01,   1.0 );  
1448
+  cmDspInst_t* igain1 = cmDspSysAllocInst(h,"Scalar", "In Gain-1",    5, kNumberDuiId, 0.0,   100.0,0.01,   1.0 );  
1449
+  cmDspInst_t* igain2 = cmDspSysAllocInst(h,"Scalar", "In Gain-2",    5, kNumberDuiId, 0.0,   100.0,0.01,   1.0 );  
1450
+  cmDspInst_t* igain3 = cmDspSysAllocInst(h,"Scalar", "In Gain-3",    5, kNumberDuiId, 0.0,   100.0,0.01,   1.0 );  
1451
+
1452
+  cmDspInst_t* lasecs = cmDspSysAllocInst(h,"Scalar", "LA Secs",      5, kNumberDuiId, 0.0,   recdPlayMaxLaSecs,0.01,   recdPlayCurLaSecs );  
1453
+  cmDspInst_t* dbpsec = cmDspSysAllocInst(h,"Scalar", "Fade dBpSec",  5, kNumberDuiId, 0.0,   24.0, 0.01, recdPlayFadeRateDbPerSec);
1454
+  cmDspInst_t* apfByp = cmDspSysAllocCheck(  h, "APF-Bypass", 0.0 );
1455
+
1456
+
1457
+
1458
+  cmDspSysNewColumn(h,0);
1459
+  cmDspInst_t* ogain0 = cmDspSysAllocInst(h,"Scalar", "Out Gain-0",   5, kNumberDuiId, 0.0,   10.0,0.01,   1.0 );  
1460
+  cmDspInst_t* ogain1 = cmDspSysAllocInst(h,"Scalar", "Out Gain-1",   5, kNumberDuiId, 0.0,   10.0,0.01,   1.0 );  
1461
+  cmDspInst_t* ogain2 = cmDspSysAllocInst(h,"Scalar", "Out Gain-2",   5, kNumberDuiId, 0.0,   10.0,0.01,   1.0 );  
1462
+  cmDspInst_t* ogain3 = cmDspSysAllocInst(h,"Scalar", "Out Gain-3",   5, kNumberDuiId, 0.0,   10.0,0.01,   1.0 );  
1463
+
1464
+  //cmDspInst_t* scLoc = cmDspSysAllocInst(h,"Scalar", "Sc Loc",   5, kNumberDuiId, 0.0,   3000.0, 1.0,   0.0 );  
1465
+
1466
+  // Audio file recording
1467
+  cmDspInst_t* recdGain= cmDspSysAllocInst(h,"Scalar", "Recd Gain",  5, kNumberDuiId, 0.0,   100.0,0.01, 1.5 );  
1468
+  cmDspInst_t* recdChk = cmDspSysAllocInst(h,"Button", "Record",     2, kCheckDuiId, 0.0 );
1469
+  cmDspInst_t* recdPtS = cmDspSysAllocInst(h,"GateToSym", NULL,      2, cmSymTblRegisterStaticSymbol(cmDspSysSymbolTable(h),"open"),cmSymTblRegisterStaticSymbol(cmDspSysSymbolTable(h),"close"));
1470
+  cmDspInst_t* afop    = cmDspSysAllocInst(h,"AudioFileOut",NULL,    2, r.recordDir,2);
1471
+  cmDspInst_t* mi0p    = cmDspSysAllocInst(h,"AMeter","In 0",  0);
1472
+  cmDspInst_t* mi1p    = cmDspSysAllocInst(h,"AMeter","In 1",  0);
1473
+  cmDspInst_t* mi2p    = cmDspSysAllocInst(h,"AMeter","In 2",  0);
1474
+  cmDspInst_t* mi3p    = cmDspSysAllocInst(h,"AMeter","In 3",  0);
1475
+
1476
+
1477
+  //--------------- Preset controls
1478
+  cmDspSysNewColumn(h,0);
1479
+  cmDspInst_t* preset    = cmDspSysAllocInst(   h, "Preset", NULL, 1, preGrpSymId );
1480
+  cmDspInst_t* presetLbl = cmDspSysAllocInst(   h, "Text",   "Preset",      1, "" );
1481
+  cmDspInst_t* storeBtn  = cmDspSysAllocButton( h, "store",  0);
1482
+  cmDspInst_t* recallBtn = cmDspSysAllocButton( h, "recall", 0);
1483
+  cmDspSysInstallCb(   h, presetLbl, "val", preset, "label",NULL);
1484
+  cmDspSysInstallCb(   h, storeBtn,  "sym", preset, "cmd", NULL );
1485
+  cmDspSysInstallCb(   h, recallBtn, "sym", preset, "cmd", NULL );
1486
+
1487
+  //cmDspInst_t* prePath    = cmDspSysAllocInst(   h, "Fname",  "prePath",   3, true,NULL,r.tlPrefixPath);
1488
+  
1489
+
1490
+  cmDspSysNewColumn(h,0);
1491
+
1492
+  //--------------- Recorded performance evaluation and Active Measurement related controls
1493
+  cmDspInst_t* clrBtn  = cmDspSysAllocButton( h, "clear",  0);
1494
+  cmDspInst_t* prtBtn  = cmDspSysAllocButton( h, "dump",  0);
1495
+  cmDspInst_t* mlst    = cmDspSysAllocInst(   h, "MsgList",   NULL, 3, "meas", r.measFn, 2);
1496
+  cmDspInst_t* amCmd   = cmDspSysAllocInst(   h, "PortToSym", NULL, 2, "add", "rewind" );  
1497
+
1498
+
1499
+
1500
+  if( useInputEqFl ) cmDspSysNewPage(h,"In EQ");
1501
+  cmDspInst_t* eqLpByp0  = useInputEqFl ? cmDspSysAllocCheck( h,"Eq-LPF-Bypass-0", 0.0 ) : NULL;
1502
+  cmDspInst_t* eqLpMode0 = useInputEqFl ? cmDspSysAllocInst(  h,"MsgList","Eq-LPF-Mode-0",  3, "biQuadEqMode", NULL, 1) : NULL;
1503
+  cmDspInst_t* eqLpFc0   = useInputEqFl ? cmDspSysAllocInst(  h,"Scalar", "Eq-LPF-Hz-0",    5, kNumberDuiId, 0.0, 20000.0, 0.5,  eqLpF0hz ) : NULL;  
1504
+  cmDspInst_t* eqLpQ0    = useInputEqFl ? cmDspSysAllocInst(  h,"Scalar", "Eq-LPF-Q-0",     5, kNumberDuiId, 0.0,  100.0,  0.01,  eqLpQ ) : NULL;  
1505
+  cmDspInst_t* eqLpGain0 = useInputEqFl ? cmDspSysAllocInst(  h,"Scalar", "Eq-LPF-Gain-0",  5, kNumberDuiId, -100.0, 100.0, 0.5,  eqLpGain ) : NULL;  
1506
+
1507
+  cmDspInst_t* eqBpByp0  = useInputEqFl ? cmDspSysAllocCheck( h,"Eq-BPF-Bypass-0", 0.0 ) : NULL;
1508
+  cmDspInst_t* eqBpMode0 = useInputEqFl ? cmDspSysAllocInst(  h,"MsgList","Eq-BPF-Mode-0",  3, "biQuadEqMode", NULL, 3) : NULL;
1509
+  cmDspInst_t* eqBpFc0   = useInputEqFl ? cmDspSysAllocInst(  h,"Scalar", "Eq-BPF-Hz-0",    5, kNumberDuiId, 0.0, 20000.0, 0.5,  eqBpF0hz ) : NULL;  
1510
+  cmDspInst_t* eqBpQ0    = useInputEqFl ? cmDspSysAllocInst(  h,"Scalar", "Eq-BPF-Q-0",     5, kNumberDuiId, 0.0,  100.0,  0.01,  eqBpQ ) : NULL;  
1511
+  cmDspInst_t* eqBpGain0 = useInputEqFl ? cmDspSysAllocInst(  h,"Scalar", "Eq-BPF-Gain-0",  5, kNumberDuiId, -100.0, 100.0, 0.5,  eqBpGain ) : NULL;  
1512
+
1513
+  cmDspInst_t* eqHpByp0  = useInputEqFl ? cmDspSysAllocCheck( h,"Eq-HPF-Bypass-0", 0.0 ) : NULL;
1514
+  cmDspInst_t* eqHpMode0 = useInputEqFl ? cmDspSysAllocInst(  h,"MsgList","Eq-HPF-Mode-0",  3, "biQuadEqMode", NULL, 2) : NULL;
1515
+  cmDspInst_t* eqHpFc0   = useInputEqFl ? cmDspSysAllocInst(  h,"Scalar", "Eq-HPF-Hz-0",    5, kNumberDuiId, 0.0, 20000.0, 0.5,  eqHpF0hz ) : NULL;  
1516
+  cmDspInst_t* eqHpQ0    = useInputEqFl ? cmDspSysAllocInst(  h,"Scalar", "Eq-HPF-Q-0",     5, kNumberDuiId, 0.0,  100.0,  0.01,  eqHpQ ) : NULL;  
1517
+  cmDspInst_t* eqHpGain0 = useInputEqFl ? cmDspSysAllocInst(  h,"Scalar", "Eq-HPF-Gain-0",  5, kNumberDuiId, -100.0, 100.0, 0.5,  eqHpGain ) : NULL;  
1518
+
1519
+  if( useInputEqFl ) cmDspSysNewColumn(h,0);
1520
+  cmDspInst_t* eqLpByp1  = useInputEqFl ? cmDspSysAllocCheck( h,"Eq-LPF-Bypass-1", 0.0 ) : NULL;
1521
+  cmDspInst_t* eqLpMode1 = useInputEqFl ? cmDspSysAllocInst(  h,"MsgList","Eq-LPF-Mode-1",  3, "biQuadEqMode", NULL, 1) : NULL;
1522
+  cmDspInst_t* eqLpFc1   = useInputEqFl ? cmDspSysAllocInst(  h,"Scalar", "Eq-LPF-Hz-1",    5, kNumberDuiId, 0.0, 20000.0, 0.5,  eqLpF0hz ) : NULL;  
1523
+  cmDspInst_t* eqLpQ1    = useInputEqFl ? cmDspSysAllocInst(  h,"Scalar", "Eq-LPF-Q-1",     5, kNumberDuiId, 0.0,  100.0,  0.01,  eqLpQ ) : NULL;  
1524
+  cmDspInst_t* eqLpGain1 = useInputEqFl ? cmDspSysAllocInst(  h,"Scalar", "Eq-LPF-Gain-1",  5, kNumberDuiId, -100.0, 100.0, 0.5,  eqLpGain ) : NULL;  
1525
+
1526
+  cmDspInst_t* eqBpByp1  = useInputEqFl ? cmDspSysAllocCheck( h,"Eq-BPF-Bypass-1", 0.0 ) : NULL;
1527
+  cmDspInst_t* eqBpMode1 = useInputEqFl ? cmDspSysAllocInst(  h,"MsgList","Eq-BPF-Mode-1",  3, "biQuadEqMode", NULL, 3) : NULL;
1528
+  cmDspInst_t* eqBpFc1   = useInputEqFl ? cmDspSysAllocInst(  h,"Scalar", "Eq-BPF-Hz-1",    5, kNumberDuiId, 0.0, 20000.0, 0.5,  eqBpF0hz ) : NULL;  
1529
+  cmDspInst_t* eqBpQ1    = useInputEqFl ? cmDspSysAllocInst(  h,"Scalar", "Eq-BPF-Q-1",     5, kNumberDuiId, 0.0,  100.0,  0.01,  eqBpQ ) : NULL;  
1530
+  cmDspInst_t* eqBpGain1 = useInputEqFl ? cmDspSysAllocInst(  h,"Scalar", "Eq-BPF-Gain-1",  5, kNumberDuiId, -100.0, 100.0, 0.5,  eqBpGain ) : NULL;  
1531
+
1532
+  cmDspInst_t* eqHpByp1  = useInputEqFl ? cmDspSysAllocCheck( h,"Eq-HPF-Bypass-1", 0.0 ) : NULL;
1533
+  cmDspInst_t* eqHpMode1 = useInputEqFl ? cmDspSysAllocInst(  h,"MsgList","Eq-HPF-Mode-1",  3, "biQuadEqMode", NULL, 2) : NULL;
1534
+  cmDspInst_t* eqHpFc1   = useInputEqFl ? cmDspSysAllocInst(  h,"Scalar", "Eq-HPF-Hz-1",    5, kNumberDuiId, 0.0, 20000.0, 0.5,  eqHpF0hz ) : NULL;  
1535
+  cmDspInst_t* eqHpQ1    = useInputEqFl ? cmDspSysAllocInst(  h,"Scalar", "Eq-HPF-Q-1",     5, kNumberDuiId, 0.0,  100.0,  0.01,  eqHpQ ) : NULL;  
1536
+  cmDspInst_t* eqHpGain1 = useInputEqFl ? cmDspSysAllocInst(  h,"Scalar", "Eq-HPF-Gain-1",  5, kNumberDuiId, -100.0, 100.0, 0.5,  eqHpGain ) : NULL;  
1537
+
1538
+
1539
+  if( useInputEqFl ) cmDspSysNewColumn(h,0);
1540
+  cmDspInst_t* eqLpByp2  = useInputEqFl ? cmDspSysAllocCheck( h,"Eq-LPF-Bypass-2", 0.0 ) : NULL;
1541
+  cmDspInst_t* eqLpMode2 = useInputEqFl ? cmDspSysAllocInst(  h,"MsgList","Eq-LPF-Mode-2",  3, "biQuadEqMode", NULL, 1) : NULL;
1542
+  cmDspInst_t* eqLpFc2   = useInputEqFl ? cmDspSysAllocInst(  h,"Scalar", "Eq-LPF-Hz-2",    5, kNumberDuiId, 0.0, 20000.0, 0.5,  eqLpF0hz ) : NULL;  
1543
+  cmDspInst_t* eqLpQ2    = useInputEqFl ? cmDspSysAllocInst(  h,"Scalar", "Eq-LPF-Q-2",     5, kNumberDuiId, 0.0,  100.0,  0.01,  eqLpQ ) : NULL;  
1544
+  cmDspInst_t* eqLpGain2 = useInputEqFl ? cmDspSysAllocInst(  h,"Scalar", "Eq-LPF-Gain-2",  5, kNumberDuiId, -100.0, 100.0, 0.5,  eqLpGain ) : NULL;  
1545
+
1546
+  cmDspInst_t* eqBpByp2  = useInputEqFl ? cmDspSysAllocCheck( h,"Eq-BPF-Bypass-2", 0.0 ) : NULL;
1547
+  cmDspInst_t* eqBpMode2 = useInputEqFl ? cmDspSysAllocInst(  h,"MsgList","Eq-BPF-Mode-2",  3, "biQuadEqMode", NULL, 3) : NULL;
1548
+  cmDspInst_t* eqBpFc2   = useInputEqFl ? cmDspSysAllocInst(  h,"Scalar", "Eq-BPF-Hz-2",    5, kNumberDuiId, 0.0, 20000.0, 0.5,  eqBpF0hz ) : NULL;  
1549
+  cmDspInst_t* eqBpQ2    = useInputEqFl ? cmDspSysAllocInst(  h,"Scalar", "Eq-BPF-Q-2",     5, kNumberDuiId, 0.0,  100.0,  0.01,  eqBpQ ) : NULL;  
1550
+  cmDspInst_t* eqBpGain2 = useInputEqFl ? cmDspSysAllocInst(  h,"Scalar", "Eq-BPF-Gain-2",  5, kNumberDuiId, -100.0, 100.0, 0.5,  eqBpGain ) : NULL;  
1551
+
1552
+  cmDspInst_t* eqHpByp2  = useInputEqFl ? cmDspSysAllocCheck( h,"Eq-HPF-Bypass-2", 0.0 ) : NULL;
1553
+  cmDspInst_t* eqHpMode2 = useInputEqFl ? cmDspSysAllocInst(  h,"MsgList","Eq-HPF-Mode-2",  3, "biQuadEqMode", NULL, 2) : NULL;
1554
+  cmDspInst_t* eqHpFc2   = useInputEqFl ? cmDspSysAllocInst(  h,"Scalar", "Eq-HPF-Hz-2",    5, kNumberDuiId, 0.0, 20000.0, 0.5,  eqHpF0hz ) : NULL;  
1555
+  cmDspInst_t* eqHpQ2    = useInputEqFl ? cmDspSysAllocInst(  h,"Scalar", "Eq-HPF-Q-2",     5, kNumberDuiId, 0.0,  100.0,  0.01,  eqHpQ ) : NULL;  
1556
+  cmDspInst_t* eqHpGain2 = useInputEqFl ? cmDspSysAllocInst(  h,"Scalar", "Eq-HPF-Gain-2",  5, kNumberDuiId, -100.0, 100.0, 0.5,  eqHpGain ) : NULL;  
1557
+
1558
+  if( useInputEqFl ) cmDspSysNewColumn(h,0);
1559
+  cmDspInst_t* eqLpByp3  = useInputEqFl ? cmDspSysAllocCheck( h,"Eq-LPF-Bypass-3", 0.0 ) : NULL;
1560
+  cmDspInst_t* eqLpMode3 = useInputEqFl ? cmDspSysAllocInst(  h,"MsgList","Eq-LPF-Mode-3", 3, "biQuadEqMode", NULL, 1) : NULL;
1561
+  cmDspInst_t* eqLpFc3   = useInputEqFl ? cmDspSysAllocInst(  h,"Scalar", "Eq-LPF-Hz-3",    5, kNumberDuiId, 0.0, 20000.0, 0.5,  eqLpF0hz ) : NULL;  
1562
+  cmDspInst_t* eqLpQ3    = useInputEqFl ? cmDspSysAllocInst(  h,"Scalar", "Eq-LPF-Q-3",     5, kNumberDuiId, 0.0,  100.0,  0.01,  eqLpQ ) : NULL;  
1563
+  cmDspInst_t* eqLpGain3 = useInputEqFl ? cmDspSysAllocInst(  h,"Scalar", "Eq-LPF-Gain-3",  5, kNumberDuiId, -300.0, 100.0, 0.5,  eqLpGain ) : NULL;  
1564
+
1565
+  cmDspInst_t* eqBpByp3  = useInputEqFl ? cmDspSysAllocCheck( h,"Eq-BPF-Bypass-3", 0.0 ) : NULL;
1566
+  cmDspInst_t* eqBpMode3 = useInputEqFl ? cmDspSysAllocInst(  h,"MsgList","Eq-BPF-Mode-3", 3, "biQuadEqMode", NULL, 3) : NULL;
1567
+  cmDspInst_t* eqBpFc3   = useInputEqFl ? cmDspSysAllocInst(  h,"Scalar", "Eq-BPF-Hz-3",    5, kNumberDuiId, 0.0, 20000.0, 0.5,  eqBpF0hz ) : NULL;  
1568
+  cmDspInst_t* eqBpQ3    = useInputEqFl ? cmDspSysAllocInst(  h,"Scalar", "Eq-BPF-Q-3",     5, kNumberDuiId, 0.0,  100.0,  0.01,  eqBpQ ) : NULL;  
1569
+  cmDspInst_t* eqBpGain3 = useInputEqFl ? cmDspSysAllocInst(  h,"Scalar", "Eq-BPF-Gain-3",  5, kNumberDuiId, -300.0, 100.0, 0.5,  eqBpGain ) : NULL;  
1570
+
1571
+  cmDspInst_t* eqHpByp3  = useInputEqFl ? cmDspSysAllocCheck( h,"Eq-HPF-Bypass-3", 0.0 ) : NULL;
1572
+  cmDspInst_t* eqHpMode3 = useInputEqFl ? cmDspSysAllocInst(  h,"MsgList","Eq-HPF-Mode-3", 3, "biQuadEqMode", NULL, 2) : NULL;
1573
+  cmDspInst_t* eqHpFc3   = useInputEqFl ? cmDspSysAllocInst(  h,"Scalar", "Eq-HPF-Hz-3",    5, kNumberDuiId, 0.0, 20000.0, 0.5,  eqHpF0hz ) : NULL;  
1574
+  cmDspInst_t* eqHpQ3    = useInputEqFl ? cmDspSysAllocInst(  h,"Scalar", "Eq-HPF-Q-3",     5, kNumberDuiId, 0.0,  100.0,  0.01,  eqHpQ ) : NULL;  
1575
+  cmDspInst_t* eqHpGain3 = useInputEqFl ? cmDspSysAllocInst(  h,"Scalar", "Eq-HPF-Gain-3",  5, kNumberDuiId, -100.0, 100.0, 0.5,  eqHpGain ) : NULL;  
1576
+
1577
+  if((rc = cmDspSysLastRC(h)) != kOkDspRC )
1578
+    return rc;
1579
+
1580
+  // Output Audio file recording.
1581
+  cmDspSysInstallCb(h, recdGain,"val", afop,    "gain0", NULL );
1582
+  cmDspSysInstallCb(h, recdGain,"val", afop,    "gain1", NULL );
1583
+  cmDspSysInstallCb(h, recdChk, "out", recdPtS, "on",    NULL );
1584
+  cmDspSysInstallCb(h, recdChk, "out", recdPtS, "off",   NULL );
1585
+  cmDspSysInstallCb(h, recdPtS, "out", afop,    "sel",   NULL );
1586
+
1587
+
1588
+  // Audio connections
1589
+  /// cmDspSysConnectAudio(h, php,  "out",   wtp,  "phs" );     // phs -> wt
1590
+
1591
+  cmDspSysConnectAudio( h, ai0p, "out", mi0p, "in");
1592
+  cmDspSysConnectAudio( h, ai1p, "out", mi1p, "in");
1593
+  cmDspSysConnectAudio( h, ai2p, "out", mi2p, "in");
1594
+  cmDspSysConnectAudio( h, ai3p, "out", mi3p, "in");
1595
+
1596
+  if( useInputEqFl )
1597
+  {
1598
+    cmDspSysConnectAudio(h, ai0p,    "out", eqLpf_0, "in" );     // ain->eq
1599
+    cmDspSysConnectAudio(h, ai0p,    "out", eqBpf_0, "in" );
1600
+    cmDspSysConnectAudio(h, ai0p,    "out", eqHpf_0, "in" );
1601
+    cmDspSysConnectAudio(h, eqLpf_0, "out", eqMx_0,  "in-0");  // eq -> eqmix
1602
+    cmDspSysConnectAudio(h, eqBpf_0, "out", eqMx_0,  "in-1");
1603
+    cmDspSysConnectAudio(h, eqHpf_0, "out", eqMx_0,  "in-2");
1604
+
1605
+    cmDspSysConnectAudio(h, ai1p,    "out", eqLpf_1, "in" );     // ain->eq
1606
+    cmDspSysConnectAudio(h, ai1p,    "out", eqBpf_1, "in" );
1607
+    cmDspSysConnectAudio(h, ai1p,    "out", eqHpf_1, "in" );
1608
+    cmDspSysConnectAudio(h, eqLpf_1, "out", eqMx_1,  "in-0");  // eq -> eqmix
1609
+    cmDspSysConnectAudio(h, eqBpf_1, "out", eqMx_1,  "in-1");
1610
+    cmDspSysConnectAudio(h, eqHpf_1, "out", eqMx_1,  "in-2");
1611
+
1612
+    cmDspSysConnectAudio(h, ai2p,    "out", eqLpf_2, "in" );     // ain->eq
1613
+    cmDspSysConnectAudio(h, ai2p,    "out", eqBpf_2, "in" );
1614
+    cmDspSysConnectAudio(h, ai2p,    "out", eqHpf_2, "in" );
1615
+    cmDspSysConnectAudio(h, eqLpf_2, "out", eqMx_2,  "in-0");  // eq -> eqmix
1616
+    cmDspSysConnectAudio(h, eqBpf_2, "out", eqMx_2,  "in-1");
1617
+    cmDspSysConnectAudio(h, eqHpf_2, "out", eqMx_2,  "in-2");
1618
+
1619
+    cmDspSysConnectAudio(h, ai3p,    "out", eqLpf_3, "in" );     // ain->eq
1620
+    cmDspSysConnectAudio(h, ai3p,    "out", eqBpf_3, "in" );
1621
+    cmDspSysConnectAudio(h, ai3p,    "out", eqHpf_3, "in" );
1622
+    cmDspSysConnectAudio(h, eqLpf_3, "out", eqMx_3,  "in-0");  // eq -> eqmix
1623
+    cmDspSysConnectAudio(h, eqBpf_3, "out", eqMx_3,  "in-1");
1624
+    cmDspSysConnectAudio(h, eqHpf_3, "out", eqMx_3,  "in-2");
1625
+  }
1626
+
1627
+  cmDspSysConnectAudio(h, useInputEqFl ? eqMx_0 : ai0p, "out", mx0p, "in-0" );  // eqmix -> input mix
1628
+  cmDspSysConnectAudio(h, useInputEqFl ? eqMx_1 : ai1p, "out", mx1p, "in-0" );
1629
+  cmDspSysConnectAudio(h, useInputEqFl ? eqMx_2 : ai2p, "out", mx0p, "in-1" );
1630
+  cmDspSysConnectAudio(h, useInputEqFl ? eqMx_3 : ai3p, "out", mx1p, "in-1" );
1631
+
1632
+  if( useWtFl )
1633
+  {
1634
+    /// cmDspSysConnectAudio(h, wtp,    "out",   au0Sw, "a-in-0" ); // wt  -> sw
1635
+    cmDspSysConnectAudio(h, mx0p,   "out",   au0Sw, "a-in-1" );      // ain -> sw
1636
+    //cmDspSysConnectAudio(h, ci0p,   "out",   au0Sw, "a-in-1" );
1637
+    cmDspSysConnectAudio(h, au0Sw,  "a-out", rpp,   "in-0");    // sw  -> rcdply
1638
+    cmDspSysConnectAudio(h, au0Sw,  "a-out", c0.kr0,"in"  );    // sw  -> kr
1639
+    //cmDspSysConnectAudio(h, au0Sw,  "a-out", c0.kr1,"in"  );    // sw  -> kr
1640
+    //cmDspSysConnectAudio(h, au0Sw,  "a-out",  mi0p,  "in" );    // sw  -> meter  
1641
+  }
1642
+  else
1643
+  {
1644
+    cmDspSysConnectAudio(h, mx0p,  "out", rpp,   "in-0");    // sw  -> rcdply
1645
+
1646
+
1647
+    if( useInCompFl )
1648
+    {
1649
+      cmDspSysConnectAudio(h, mx0p,   "out",   ci0p,   "in" ); // ain -> in compress
1650
+      cmDspSysConnectAudio(h, ci0p,   "out",   c0.kr0, "in" );
1651
+    }
1652
+    else
1653
+    {
1654
+      cmDspSysConnectAudio(h, mx0p,   "out",   c0.kr0, "in" ); // ain -> sw
1655
+    }
1656
+
1657
+    //cmDspSysConnectAudio(h, mx0p,   "out",   mi0p,  "in" );     
1658
+  }
1659
+
1660
+  if( fragFl )
1661
+  {
1662
+    cmDspSysConnectAudio(h, c0.cmp, "out",   mix0,  "in-0" );   // cmp -> mix 0
1663
+    cmDspSysConnectAudio(h, rpp,    "out-0", c2.kr0,"in" );
1664
+    //cmDspSysConnectAudio(h, rpp,    "out-0", c2.kr1,"in" );
1665
+    cmDspSysConnectAudio(h, c2.cmp, "out",   mix0,  "in-1");    // rpp -> mix 1
1666
+    cmDspSysConnectAudio(h, mix0,   "out",   apf0,  "in" );     // mix -> aout
1667
+    cmDspSysConnectAudio(h, apf0,  "out",   ao0p,  "in" );
1668
+
1669
+  }
1670
+  else
1671
+  {
1672
+    cmDspSysConnectAudio(h, c0.cmp, "out", apf0, "in" );
1673
+    cmDspSysConnectAudio(h, c0.cmp, "out", apf2, "in" );
1674
+    cmDspSysConnectAudio(h, apf0,  "out", ao0p,  "in" );
1675
+    cmDspSysConnectAudio(h, apf2,  "out", ao2p,  "in" );
1676
+
1677
+    //cmDspSysConnectAudio(h, wtp, "out", apf0, "in" );
1678
+  }
1679
+
1680
+
1681
+  if( useChain1Fl )
1682
+  {
1683
+    if( useWtFl )
1684
+    {
1685
+      /// cmDspSysConnectAudio(h, wtp,    "out",   au1Sw, "a-in-0" ); // wt  -> sw
1686
+      cmDspSysConnectAudio(h, mx1p,   "out",   au1Sw, "a-in-1" ); // ain -> sw
1687
+      //cmDspSysConnectAudio(h, ci1p,   "out",   au1Sw, "a-in-1" ); 
1688
+      cmDspSysConnectAudio(h, au1Sw,  "a-out", rpp,   "in-1");    // sw  -> rcdply
1689
+      cmDspSysConnectAudio(h, au1Sw,  "a-out", c1.kr0,"in"  );    // sw  -> kr
1690
+      //cmDspSysConnectAudio(h, au1Sw,  "a-out", c1.kr1,"in"  );    // sw  -> kr
1691
+      //cmDspSysConnectAudio(h, au1Sw,  "a-out",  mi1p,  "in" );    // sw  -> meter 
1692
+    }
1693
+    else
1694
+    {
1695
+      cmDspSysConnectAudio(h, mx1p,  "out", rpp,   "in-1");    // sw  -> rcdply
1696
+
1697
+      if( useInCompFl )
1698
+      {
1699
+        cmDspSysConnectAudio(h, mx1p,   "out",   ci1p,   "in" ); // ain -> in compress
1700
+        cmDspSysConnectAudio(h, ci1p,   "out",   c1.kr0, "in" );
1701
+      }
1702
+      else
1703
+      {
1704
+        cmDspSysConnectAudio(h, mx1p,   "out",   c1.kr0, "in" ); // ain -> sw
1705
+      }
1706
+
1707
+      //cmDspSysConnectAudio(h, mx1p,   "out",   mi1p,  "in" );
1708
+    }
1709
+
1710
+    if( fragFl )
1711
+    {
1712
+      cmDspSysConnectAudio(h, c1.cmp, "out",   mix1,  "in-0" );   // cmp -> mix 0
1713
+      cmDspSysConnectAudio(h, rpp,    "out-1", c3.kr0, "in" );
1714
+      //cmDspSysConnectAudio(h, rpp,    "out-1", c3.kr1, "in" );
1715
+      cmDspSysConnectAudio(h, c3.cmp, "out",   mix1,   "in-1");    // rpp -> mix 1
1716
+      cmDspSysConnectAudio(h, mix1,   "out",   apf1,   "in" );     // mix -> aout
1717
+      cmDspSysConnectAudio(h, apf1,  "out",   ao1p,   "in" );
1718
+
1719
+    }
1720
+    else
1721
+    {
1722
+      cmDspSysConnectAudio(h, c1.cmp, "out",   apf1,  "in" );   // cmp -> mix 0
1723
+      cmDspSysConnectAudio(h, c1.cmp, "out",   apf3,  "in" );   // cmp -> mix 0
1724
+      cmDspSysConnectAudio(h, apf1,  "out",   ao1p,   "in" );
1725
+      cmDspSysConnectAudio(h, apf3,  "out",   ao3p,   "in" );
1726
+      
1727
+      //cmDspSysConnectAudio(h, wtp, "out", apf1, "in" );
1728
+
1729
+    }
1730
+  }
1731
+
1732
+  cmDspSysConnectAudio(h, c0.cmp, "out", afop, "in0" );    // comp -> audio_file_out
1733
+  cmDspSysConnectAudio(h, c1.cmp, "out", afop, "in1" );
1734
+
1735
+  //cmDspSysConnectAudio(h, ai0p, "out", afop, "in0" );    // comp -> audio_file_out
1736
+  //cmDspSysConnectAudio(h, ai1p, "out", afop, "in1" );
1737
+
1738
+  //cmDspSysConnectAudio(h, ai0p, "out", ao2p, "in" );     // direct through from input to 
1739
+  //cmDspSysConnectAudio(h, ai1p, "out", ao3p, "in" );     //    output chs 2&3
1740
+
1741
+
1742
+
1743
+
1744
+  cmDspSysInstallCb( h, clrBtn, "sym",    amp, "cmd",   NULL ); // clear active meas.
1745
+  cmDspSysInstallCb( h, prtBtn, "sym",    amp, "cmd",   NULL ); // print active meas
1746
+  ///cmDspSysInstallCb( h, prtBtn, "sym",    scp, "cmd",   NULL ); 
1747
+  cmDspSysInstallCb( h, amCmd, "add",     amp, "cmd",   NULL ); // add active meas
1748
+  cmDspSysInstallCb( h, amCmd, "rewind",  amp, "cmd",   NULL ); // rewind active meas
1749
+  cmDspSysInstallCb( h, mlst,   "loc",    amp, "loc",   NULL ); // recorded meas's list to active meas unit
1750
+  cmDspSysInstallCb( h, mlst,   "typeId", amp, "type",  NULL ); //
1751
+  cmDspSysInstallCb( h, mlst,   "val",    amp, "val",   NULL ); //
1752
+  cmDspSysInstallCb( h, mlst,   "cost",   amp, "cst",   NULL ); // 
1753
+  cmDspSysInstallCb( h, mlst,   "typeId", amCmd, "add", NULL ); //
1754
+  cmDspSysInstallCb( h, sfp,    "out",    amRt, "f-in", NULL ); // sfp-active meas router (rtr is switched by live btn)
1755
+  cmDspSysInstallCb( h, amRt,   "f-out-0",amp, "sfloc", NULL ); 
1202 1756
 
1757
+  cmDspSysInstallCb( h, sfp, "vloc", amp,   "loc",  NULL ); // live meas's to active meas unit
1758
+  cmDspSysInstallCb( h, sfp, "vval", amp,   "val",  NULL ); //
1759
+  cmDspSysInstallCb( h, sfp, "vcost",amp,   "cst",  NULL ); //
1760
+  cmDspSysInstallCb( h, sfp, "vtyp", amp,   "type", NULL ); //
1761
+  cmDspSysInstallCb( h, sfp, "vtyp", amCmd, "add",  NULL);  //
1203 1762
 
1204
-cmDspRC_t _cmDspSysPgm_KrLive(cmDspSysH_t h, void** userPtrPtr )
1205
-{
1206
-  cmDspRC_t       rc         = kOkDspRC;
1207
-  return rc;
1763
+  // ***** delete this to prevent the score follower from driving the active-measure unit in 'live' mode
1764
+  cmDspSysInstallCb( h, amRt,   "f-out-1",amp, "sfloc", NULL );
1765
+  // *****
1766
+
1767
+  // active measure loc to xfad channel trigger
1768
+  cmDspSysInstallCb( h, amp,    "scloc",  c0.achan,   "trig", NULL );  // See Also: modp.sw ->achan.trig
1769
+
1770
+  if( useChain1Fl )
1771
+  {
1772
+    cmDspSysInstallCb( h, amp,    "scloc",  c1.achan,   "trig", NULL );
1773
+  }
1774
+
1775
+  if( fragFl )
1776
+  {
1777
+    cmDspSysInstallCb( h, amp,    "scloc",  c2.achan,   "trig", NULL ); 
1778
+    cmDspSysInstallCb( h, amp,    "scloc",  c3.achan,   "trig", NULL );
1779
+  }
1780
+
1781
+  cmDspSysInstallCb( h, amp,    "even",   pre,        "in",   NULL );  // active meas output to printers
1782
+  cmDspSysInstallCb( h, amp,    "dyn",    prd,        "in",   NULL );
1783
+  cmDspSysInstallCb( h, amp,    "tempo",  prt,        "in",   NULL );
1784
+  cmDspSysInstallCb( h, amp,    "cost",   prc,        "in",   NULL );
1785
+
1786
+  // wave-table to time-line cursor
1787
+  ///cmDspSysInstallCb(   h, wtp, "fidx",tlp,  "curs", NULL); 
1788
+
1789
+  ///cmDspSysInstallCb(h, prePath, "out", tlp, "path", NULL );
1790
+
1791
+  // 'live' button -> live router selector switch 
1792
+  cmDspSysInstallCb(h, liveb, "out",  wtRt, "sel", NULL );
1793
+  cmDspSysInstallCb(h, liveb, "out",  tlRt, "sel", NULL );
1794
+  cmDspSysInstallCb(h, liveb, "out",  mfpRt,"sel", NULL );
1795
+  cmDspSysInstallCb(h, liveb, "out",  amRt, "sel", NULL );
1796
+  cmDspSysInstallCb(h, liveb, "out",  au0Sw, "chidx", NULL );
1797
+  cmDspSysInstallCb(h, liveb, "out",  au1Sw, "chidx", NULL );
1798
+  cmDspSysInstallCb(h, liveb, "out",  measb, "in",     NULL );
1799
+  cmDspSysInstallCb(h, measb, "out",  sfp,   "measfl", NULL );
1800
+
1801
+  // 'simulate' button -> simulate router selector switch
1802
+  cmDspSysInstallCb(h, simb,  "out",  ainb,  "in", NULL );
1803
+  cmDspSysInstallCb(h, ainb,  "out",  au0Sw, "chidx", NULL );
1804
+  cmDspSysInstallCb(h, ainb,  "out",  au1Sw, "chidx", NULL );
1805
+  cmDspSysInstallCb(h, simb,  "out",  siRt,  "sel", NULL );
1806
+  cmDspSysInstallCb(h, simb,  "out",  muRt,  "sel", NULL );
1807
+  cmDspSysInstallCb(h, simb,  "out",  d1Rt,  "sel", NULL );
1808
+  cmDspSysInstallCb(h, simb,  "out",  d0Rt,  "sel", NULL );
1809
+  cmDspSysInstallCb(h, simb,  "out",  stRt,  "sel", NULL );
1810
+  
1811
+  
1812
+  // bldr -> rndr 
1813
+  cmDspSysInstallCb(   h, bldr,    "bldr",  rndr,    "bldr", NULL);    
1814
+  cmDspSysInstallCb(   h, bldr, "refresh",  rndr, "refresh", NULL );
1815
+  cmDspSysInstallCb(   h, bldr,     "sel",  rndr,     "sel", NULL );
1816
+
1817
+  // start connections
1818
+  cmDspSysInstallCb(h, onb,  "sym",    tlRt, "s-in",  NULL );
1819
+  /// cmDspSysInstallCb(h, tlRt, "s-out-0",tlp,  "reset", NULL );
1820
+  cmDspSysInstallCb(h, onb, "sym",     rndr, "cmd", NULL );
1821
+
1822
+  ///cmDspSysInstallCb(h, onb,  "sym",    scp,  "send",  NULL );
1823
+  cmDspSysInstallCb(h, onb,  "sym",    bldr,  "send",  NULL );
1824
+
1825
+  cmDspSysInstallCb(h, onb,  "sym",    mfpRt,"s-in",  NULL );
1826
+  /// cmDspSysInstallCb(h, mfpRt,"s-out-0",mfp,  "sel",   NULL );
1827
+
1828
+  cmDspSysInstallCb(h, onb, "sym",     pts,   "on",    NULL );
1829
+  cmDspSysInstallCb(h, pts, "on",      wtRt,  "s-in",  NULL );
1830
+  /// cmDspSysInstallCb(h, wtRt,"s-out-0", wtp,   "cmd",   NULL );
1831
+  cmDspSysInstallCb(h, pts, "on",      modp,  "cmd",   NULL );
1832
+  cmDspSysInstallCb(h, pts, "on",      modr,  "cmd",   NULL );
1833
+  cmDspSysInstallCb(h, pts, "on",      rpp,   "cmd",   NULL );
1834
+  cmDspSysInstallCb(h, onb, "sym",     amCmd, "rewind",NULL );
1835
+  cmDspSysInstallCb(h, onb, "out",     c0.achan,"reset",  NULL );
1836
+  if( useChain1Fl )
1837
+  {
1838
+    cmDspSysInstallCb(h, onb, "out",     c1.achan,"reset",  NULL );
1839
+  }
1840
+
1841
+  // stop connections
1842
+  /// cmDspSysInstallCb(h, wtp,  "done",offb,"in",  NULL ); // 'done' from WT simulates pressing Stop btn.
1843
+  ///cmDspSysInstallCb(h, tlp,  "mfn", pts, "off", NULL ); // Prevents WT start on new audio file from TL.
1844
+  ///cmDspSysInstallCb(h, offb, "sym", mfp, "sel", NULL ); 
1845
+  cmDspSysInstallCb(h, offb, "sym", pts, "off", NULL );
1846
+  ///cmDspSysInstallCb(h, pts,  "off", wtp, "cmd", NULL );
1847
+  cmDspSysInstallCb(h, pts,  "off", modp,"cmd", NULL );
1848
+  cmDspSysInstallCb(h, pts,  "off", modr,"cmd", NULL );
1849
+  cmDspSysInstallCb(h, offb, "sym", mop, "reset", NULL );
1850
+  cmDspSysInstallCb(h, offb, "sym", mo2p, "reset", NULL );
1851
+  cmDspSysInstallCb(h, pts, "off",  rndr, "cmd", NULL );
1852
+
1853
+  /*
1854
+  // time-line to wave-table selection 
1855
+  cmDspSysInstallCb(h, tlp, "absi", wtp, "beg", NULL );  
1856
+  cmDspSysInstallCb(h, tlp, "aesi", wtp, "end", NULL );
1857
+  cmDspSysInstallCb(h, tlp, "afn",  wtp, "fn",  NULL );
1858
+
1859
+  // time-line to MIDI file player selection
1860
+  cmDspSysInstallCb(h, tlp, "mbsi", mfp, "bsi",   NULL );
1861
+  cmDspSysInstallCb(h, tlp, "mesi", mfp, "esi",   NULL );
1862
+  cmDspSysInstallCb(h, tlp, "mfn",  mfp, "fn",    NULL );
1863
+  */
1864
+  
1865
+  // score to score follower - to set initial search location
1866
+  cmDspSysInstallCb(h, bldr, "sel",    sfp, "index",  NULL );
1867
+  cmDspSysInstallCb(h, bldr, "sel",    modp,"reset", NULL );
1868
+  cmDspSysInstallCb(h, bldr, "sel",    modr,"reset", NULL );
1869
+  cmDspSysInstallCb(h, bldr, "sel",    rpp, "initIdx", NULL );
1870
+  cmDspSysInstallCb(h, bldr, "sel",    prp, "in", NULL );
1871
+
1872
+  // NOTE: THIS IS A DUPLICATE OF THE scp.sel CONNECTIONS
1873
+  /*
1874
+  cmDspSysInstallCb(h, scLoc, "val",    sfp, "index",  NULL );
1875
+  cmDspSysInstallCb(h, scLoc, "val",    modp,"reset", NULL );
1876
+  cmDspSysInstallCb(h, scLoc, "val",    modr,"reset", NULL );
1877
+  cmDspSysInstallCb(h, scLoc, "val",    rpp, "initIdx", NULL );
1878
+  cmDspSysInstallCb(h, scLoc, "val",    prp, "in", NULL );
1879
+  */
1880
+
1881
+  //cmDspSysInstallCb(h, reload,"out",  modp, "reload", NULL );
1882
+
1883
+
1884
+  // MIDI file player to score follower
1885
+  ///cmDspSysInstallCb(h, mfp,  "smpidx",  siRt, "f-in",NULL );
1886
+  cmDspSysInstallCb(h, rndr, "smpidx",  siRt, "f-in", NULL );
1887
+  cmDspSysInstallCb(h, siRt, "f-out-1", sfp,  "smpidx",NULL ); 
1888
+  // leave siRt.f-out-1 unconnected because it should be ignored in 'simulate mode'
1889
+
1890
+  ///cmDspSysInstallCb(h, mfp,  "mu",      muRt, "f-in",  NULL );
1891
+  /// ???? does rndr need to generate muid ??????
1892
+  cmDspSysInstallCb(h, muRt, "f-out-1", sfp,  "muid",    NULL );
1893
+  // leave muRt.f-out-1 unconnected because it should be ignored in 'simulate mode'
1894
+
1895
+  cmDspSysInstallCb(h, rndr,  "d1",      d1Rt, "f-in",  NULL );
1896
+  cmDspSysInstallCb(h, d1Rt, "f-out-1", sfp,  "d1",    NULL );
1897
+  cmDspSysInstallCb(h, d1Rt, "f-out-1", nmp,  "d1",    NULL );
1898
+  cmDspSysInstallCb(h, nmp,   "d1",     mop,  "d1",    NULL );
1899
+  cmDspSysInstallCb(h, nmp,   "d1",     mo2p,  "d1",    NULL );
1900
+
1901
+  cmDspSysInstallCb(h, rndr,  "d0",      d0Rt,  "f-in", NULL );
1902
+  cmDspSysInstallCb(h, d0Rt, "f-out-1", sfp,   "d0",   NULL );
1903
+  cmDspSysInstallCb(h, d0Rt, "f-out-1", nmp,  "d0",   NULL );
1904
+  cmDspSysInstallCb(h, nmp,  "d0",      mop,  "d0",   NULL );
1905
+  cmDspSysInstallCb(h, nmp,  "d0",      mo2p,  "d0",   NULL );
1906
+
1907
+  cmDspSysInstallCb(h, rndr, "status",   stRt, "f-in",  NULL );
1908
+  cmDspSysInstallCb(h, stRt, "f-out-1", sfp,  "status",NULL );
1909
+  cmDspSysInstallCb(h, stRt, "f-out-1", nmp,  "status",NULL );
1910
+  cmDspSysInstallCb(h, nmp,  "status",  mop,  "status",NULL );
1911
+  cmDspSysInstallCb(h, nmp,  "status",  mo2p,  "status",NULL );
1208 1912
 
1913
+
1914
+  // MIDI input port
1915
+  //cmDspSysInstallCb(h, mip, "smpidx", sfp, "smpidx", NULL );
1916
+  //cmDspSysInstallCb(h, mip, "d1",     sfp, "d1",     NULL );
1917
+  //cmDspSysInstallCb(h, mip, "d0",     sfp, "d0",     NULL );
1918
+  //cmDspSysInstallCb(h, mip, "status", sfp, "status", NULL );
1919
+
1920
+  // score follower to recd_play,modulator and printers
1921
+  //cmDspSysInstallCb(h, sfp, "out",     rpp,     "index", NULL );
1922
+  cmDspSysInstallCb(h, sfp, "out",     modp,    "index", NULL );
1923
+  //cmDspSysInstallCb(h, sfp, "out",     modr,    "index", NULL );
1924
+  cmDspSysInstallCb(h, sfp, "recent",  prp,     "in",  NULL );  // report 'recent' but only act on 'max' loc index
1925
+
1926
+  //cmDspSysInstallCb(h, prtb, "sym", sfp, "cmd", NULL );
1927
+  //cmDspSysInstallCb(h, qtb,  "sym", sfp, "cmd", NULL );
1928
+
1929
+
1930
+  cmDspSysInstallCb(   h, lasecs, "val", rpp, "curla", NULL ); // recd/play control
1931
+  cmDspSysInstallCb(   h, dbpsec, "val", rpp, "frate", NULL );
1932
+
1933
+  cmDspSysInstallCb(h, igain0, "val", ai0p, "gain", NULL );   // input gain control
1934
+  cmDspSysInstallCb(h, igain1, "val", ai1p, "gain", NULL );
1935
+  cmDspSysInstallCb(h, igain2, "val", ai2p, "gain", NULL );   // input gain control
1936
+  cmDspSysInstallCb(h, igain3, "val", ai3p, "gain", NULL );
1937
+
1938
+  if( fragFl )
1939
+  {
1940
+    cmDspSysInstallCb(h, mutm,   "out", mix0, "gain-0", NULL );
1941
+    cmDspSysInstallCb(h, mutm,   "out", mix1, "gain-0", NULL );
1942
+    cmDspSysInstallCb(h, mutr,   "out", mix0, "gain-1", NULL );
1943
+    cmDspSysInstallCb(h, mutr,   "out", mix1, "gain-1", NULL );
1944
+  }
1945
+
1946
+  cmDspSysInstallCb(h, apfByp, "out", apf0, "bypass", NULL );   // APF bypass
1947
+  cmDspSysInstallCb(h, apfByp, "out", apf1, "bypass", NULL );   // 
1948
+  cmDspSysInstallCb(h, apfByp, "out", apf2, "bypass", NULL );   // 
1949
+  cmDspSysInstallCb(h, apfByp, "out", apf3, "bypass", NULL );   // 
1950
+
1951
+
1952
+  cmDspSysInstallCb(h, ogain0, "val", ao0p, "gain", NULL );   // output gain control
1953
+  cmDspSysInstallCb(h, ogain1, "val", ao1p, "gain", NULL );
1954
+  cmDspSysInstallCb(h, ogain2, "val", ao2p, "gain", NULL );
1955
+  cmDspSysInstallCb(h, ogain3, "val", ao3p, "gain", NULL );
1956
+
1957
+
1958
+
1959
+
1960
+  if( useInputEqFl )
1961
+  {
1962
+    cmDspSysInstallCb(h, eqLpByp0,  "out", eqLpf_0, "bypass", NULL);
1963
+    cmDspSysInstallCb(h, eqLpMode0, "mode",eqLpf_0, "mode",   NULL );
1964
+    cmDspSysInstallCb(h, eqLpFc0,   "val", eqLpf_0, "f0",     NULL );
1965
+    cmDspSysInstallCb(h, eqLpQ0,    "val", eqLpf_0, "Q",      NULL );
1966
+    cmDspSysInstallCb(h, eqLpGain0, "val", eqLpf_0, "gain",   NULL );
1967
+
1968
+    cmDspSysInstallCb(h, eqBpByp0,  "out", eqBpf_0, "bypass", NULL);
1969
+    cmDspSysInstallCb(h, eqBpMode0, "mode",eqBpf_0, "mode",   NULL );
1970
+    cmDspSysInstallCb(h, eqBpFc0,   "val", eqBpf_0, "f0",     NULL );
1971
+    cmDspSysInstallCb(h, eqBpQ0,    "val", eqBpf_0, "Q",      NULL );
1972
+    cmDspSysInstallCb(h, eqBpGain0, "val", eqBpf_0, "gain",   NULL );
1973
+
1974
+    cmDspSysInstallCb(h, eqHpByp0,  "out", eqHpf_0, "bypass", NULL);
1975
+    cmDspSysInstallCb(h, eqHpMode0, "mode",eqHpf_0, "mode",   NULL );
1976
+    cmDspSysInstallCb(h, eqHpFc0,   "val", eqHpf_0, "f0",     NULL );
1977
+    cmDspSysInstallCb(h, eqHpQ0,    "val", eqHpf_0, "Q",      NULL );
1978
+    cmDspSysInstallCb(h, eqHpGain0, "val", eqHpf_0, "gain",   NULL );
1979
+
1980
+
1981
+    cmDspSysInstallCb(h, eqLpByp1,  "out", eqLpf_1, "bypass", NULL);
1982
+    cmDspSysInstallCb(h, eqLpMode1, "mode",eqLpf_1, "mode",   NULL );
1983
+    cmDspSysInstallCb(h, eqLpFc1,   "val", eqLpf_1, "f0",     NULL );
1984
+    cmDspSysInstallCb(h, eqLpQ1,    "val", eqLpf_1, "Q",      NULL );
1985
+    cmDspSysInstallCb(h, eqLpGain1, "val", eqLpf_1, "gain",   NULL );
1986
+
1987
+    cmDspSysInstallCb(h, eqBpByp1,  "out", eqBpf_1, "bypass", NULL);
1988
+    cmDspSysInstallCb(h, eqBpMode1, "mode",eqBpf_1, "mode",   NULL );
1989
+    cmDspSysInstallCb(h, eqBpFc1,   "val", eqBpf_1, "f0",     NULL );
1990
+    cmDspSysInstallCb(h, eqBpQ1,    "val", eqBpf_1, "Q",      NULL );
1991
+    cmDspSysInstallCb(h, eqBpGain1, "val", eqBpf_1, "gain",   NULL );
1992
+
1993
+    cmDspSysInstallCb(h, eqHpByp1,  "out", eqHpf_1, "bypass", NULL);
1994
+    cmDspSysInstallCb(h, eqHpMode1, "mode",eqHpf_1, "mode",   NULL );
1995
+    cmDspSysInstallCb(h, eqHpFc1,   "val", eqHpf_1, "f0",     NULL );
1996
+    cmDspSysInstallCb(h, eqHpQ1,    "val", eqHpf_1, "Q",      NULL );
1997
+    cmDspSysInstallCb(h, eqHpGain1, "val", eqHpf_1, "gain",   NULL );
1998
+
1999
+
2000
+    cmDspSysInstallCb(h, eqLpByp2,  "out", eqLpf_2, "bypass", NULL);
2001
+    cmDspSysInstallCb(h, eqLpMode2, "mode",eqLpf_2, "mode",   NULL );
2002
+    cmDspSysInstallCb(h, eqLpFc2,   "val", eqLpf_2, "f0",     NULL );
2003
+    cmDspSysInstallCb(h, eqLpQ2,    "val", eqLpf_2, "Q",      NULL );
2004
+    cmDspSysInstallCb(h, eqLpGain2, "val", eqLpf_2, "gain",   NULL );
2005
+
2006
+    cmDspSysInstallCb(h, eqBpByp2,  "out", eqBpf_2, "bypass", NULL);
2007
+    cmDspSysInstallCb(h, eqBpMode2, "mode",eqBpf_2, "mode",   NULL );
2008
+    cmDspSysInstallCb(h, eqBpFc2,   "val", eqBpf_2, "f0",     NULL );
2009
+    cmDspSysInstallCb(h, eqBpQ2,    "val", eqBpf_2, "Q",      NULL );
2010
+    cmDspSysInstallCb(h, eqBpGain2, "val", eqBpf_2, "gain",   NULL );
2011
+
2012
+    cmDspSysInstallCb(h, eqHpByp2,  "out", eqHpf_2, "bypass", NULL);
2013
+    cmDspSysInstallCb(h, eqHpMode2, "mode",eqHpf_2, "mode",   NULL );
2014
+    cmDspSysInstallCb(h, eqHpFc2,   "val", eqHpf_2, "f0",     NULL );
2015
+    cmDspSysInstallCb(h, eqHpQ2,    "val", eqHpf_2, "Q",      NULL );
2016
+    cmDspSysInstallCb(h, eqHpGain2, "val", eqHpf_2, "gain",   NULL );
2017
+
2018
+    cmDspSysInstallCb(h, eqLpByp3,  "out", eqLpf_3, "bypass", NULL);
2019
+    cmDspSysInstallCb(h, eqLpMode3, "mode",eqLpf_3, "mode",   NULL );
2020
+    cmDspSysInstallCb(h, eqLpFc3,   "val", eqLpf_3, "f0",     NULL );
2021
+    cmDspSysInstallCb(h, eqLpQ3,    "val", eqLpf_3, "Q",      NULL );
2022
+    cmDspSysInstallCb(h, eqLpGain3, "val", eqLpf_3, "gain",   NULL );
2023
+
2024
+    cmDspSysInstallCb(h, eqBpByp3,  "out", eqBpf_3, "bypass", NULL);
2025
+    cmDspSysInstallCb(h, eqBpMode3, "mode",eqBpf_3, "mode",   NULL );
2026
+    cmDspSysInstallCb(h, eqBpFc3,   "val", eqBpf_3, "f0",     NULL );
2027
+    cmDspSysInstallCb(h, eqBpQ3,    "val", eqBpf_3, "Q",      NULL );
2028
+    cmDspSysInstallCb(h, eqBpGain3, "val", eqBpf_3, "gain",   NULL );
2029
+
2030
+    cmDspSysInstallCb(h, eqHpByp3,  "out", eqHpf_3, "bypass", NULL);
2031
+    cmDspSysInstallCb(h, eqHpMode3, "mode",eqHpf_3, "mode",   NULL );
2032
+    cmDspSysInstallCb(h, eqHpFc3,   "val", eqHpf_3, "f0",     NULL );
2033
+    cmDspSysInstallCb(h, eqHpQ3,    "val", eqHpf_3, "Q",      NULL );
2034
+    cmDspSysInstallCb(h, eqHpGain3, "val", eqHpf_3, "gain",   NULL );
2035
+  }
2036
+
2037
+  return rc;
1209 2038
 }
2039
+
2040
+
2041
+

+ 1
- 1
dsp/cmDspPgmKr.h Voir le fichier

@@ -6,7 +6,7 @@ extern "C" {
6 6
 #endif
7 7
 
8 8
   cmDspRC_t _cmDspSysPgm_TimeLine( cmDspSysH_t h, void** userPtrPtr );
9
-  cmDspRC_t _cmDspSysPgm_KrLive( cmDspSysH_t h, void** userPtrPtr );
9
+  cmDspRC_t _cmDspSysPgm_Tksb(cmDspSysH_t h, void** userPtrPtr );
10 10
 
11 11
 #ifdef __cplusplus
12 12
   }

Chargement…
Annuler
Enregistrer