@@ -59,20 +59,17 @@ class NeuralRack
5959 }
6060
6161 void registerParameters () {
62+ // name group min, max, def, step value isStepped type
6263 param.registerParam (" Buffered Mode" , " Global" , 0 ,2 ,0 ,1 , (void *)&engine.buffered , true , Is_FLOAT);
6364 param.registerParam (" Enable" , " Global" , 0 ,1 ,0 ,1 , (void *)&engine.bypass , true , IS_UINT);
6465
65- param.registerParam (" Gate Enable" , " NoiseGate" ,0 ,1 ,0 ,1 , (void *)&engine.ngOnOff , true , IS_UINT);
66+ param.registerParam (" Gate Enable" , " NoiseGate" , 0 ,1 ,0 ,1 , (void *)&engine.ngOnOff , true , IS_UINT);
6667 param.registerParam (" Gate Thresh" , " NoiseGate" , 0.01 , 0.31 , 0.017 , 0.001 , (void *)&engine.ngate ->threshold , false , Is_FLOAT);
6768
6869 param.registerParam (" Norm Slot A" , " Pedal" , 0 ,1 ,0 ,1 , (void *)&engine.normSlotA , true , IS_INT);
6970 param.registerParam (" Input Gain A" , " Pedal" , -20 ,20 ,0 ,0.1 , (void *)&engine.inputGain , false , Is_FLOAT);
7071 param.registerParam (" Output Gain A" , " Pedal" , -20 ,20 ,0 ,0.1 , (void *)&engine.outputGain , false , Is_FLOAT);
7172
72- param.registerParam (" Norm Slot B" , " Amp" , 0 ,1 ,0 ,1 , (void *)&engine.normSlotB , true , IS_INT);
73- param.registerParam (" Input Gain B" , " Amp" , -20 ,20 ,0 ,0.1 , (void *)&engine.inputGain1 , false , Is_FLOAT);
74- param.registerParam (" Output Gain B" , " Amp" , -20 ,20 ,0 ,0.1 , (void *)&engine.outputGain1 , false , Is_FLOAT);
75-
7673 param.registerParam (" EQ Enable" , " EQ" , 0 ,1 ,0 ,1 , (void *)&engine.eqOnOff , true , IS_UINT);
7774 param.registerParam (" EQ Band 1" , " EQ" , -20 ,20 ,0 ,0.1 , (void *)&engine.peq ->fVslider1 , false , Is_FLOAT);
7875 param.registerParam (" EQ Band 2" , " EQ" , -20 ,20 ,0 ,0.1 , (void *)&engine.peq ->fVslider0 , false , Is_FLOAT);
@@ -81,6 +78,10 @@ class NeuralRack
8178 param.registerParam (" EQ Band 5" , " EQ" , -20 ,20 ,0 ,0.1 , (void *)&engine.peq ->fVslider4 , false , Is_FLOAT);
8279 param.registerParam (" EQ Band 6" , " EQ" , -20 ,20 ,0 ,0.1 , (void *)&engine.peq ->fVslider5 , false , Is_FLOAT);
8380
81+ param.registerParam (" Norm Slot B" , " Amp" , 0 ,1 ,0 ,1 , (void *)&engine.normSlotB , true , IS_INT);
82+ param.registerParam (" Input Gain B" , " Amp" , -20 ,20 ,0 ,0.1 , (void *)&engine.inputGain1 , false , Is_FLOAT);
83+ param.registerParam (" Output Gain B" , " Amp" , -20 ,20 ,0 ,0.1 , (void *)&engine.outputGain1 , false , Is_FLOAT);
84+
8485 param.registerParam (" IR Out Gain L" , " IR" , -20 ,20 ,0 ,0.1 , (void *)&engine.IRoutputGain , false , Is_FLOAT);
8586 param.registerParam (" IR Out Gain R" , " IR" , -20 ,20 ,0 ,0.1 , (void *)&engine.IRoutputGain1 , false , Is_FLOAT);
8687 }
@@ -168,13 +169,11 @@ class NeuralRack
168169 widget_hide (TopWin);
169170 firstLoop = false ;
170171 }
171-
172- void quitMain () {
173- main_quit (&ui->main );
174- }
175172
176173 void quitGui () {
177174 fetch.stop ();
175+ cleanup ();
176+ main_quit (&ui->main );
178177 }
179178
180179 void runGui () {
@@ -237,6 +236,7 @@ class NeuralRack
237236 void initEngine (uint32_t rate, int32_t prio, int32_t policy) {
238237 engine.init (rate, prio, policy);
239238 initEQ ();
239+ engine.bypass = 1 ;
240240 s_time = (1.0 / (double )rate) * 1000 ;
241241 }
242242
@@ -282,19 +282,24 @@ class NeuralRack
282282 // 0 + 1 audio ports
283283 case 2 :
284284 engine.inputGain = value;
285+ param.setParamDirty (5 , true );
285286 break ;
286287 case 3 :
287288 engine.outputGain = value;
289+ param.setParamDirty (6 , true );
288290 break ;
289291 case 4 :
290292 engine.outputGain1 = value;
293+ param.setParamDirty (16 , true );
291294 break ;
292295 // 5 + 6 atom ports
293296 case 7 :
294297 engine.IRoutputGain = value;
298+ param.setParamDirty (17 , true );
295299 break ;
296300 case 8 :
297301 engine.IRoutputGain1 = value;
302+ param.setParamDirty (18 , true );
298303 break ;
299304 case 9 :
300305 {
@@ -316,15 +321,19 @@ class NeuralRack
316321 break ;
317322 case 11 :
318323 engine.inputGain1 = value;
324+ param.setParamDirty (15 , true );
319325 break ;
320326 case 12 :
321327 engine.normSlotA = static_cast <int32_t >(value);
328+ param.setParamDirty (4 , true );
322329 break ;
323330 case 13 :
324331 engine.normSlotB = static_cast <int32_t >(value);
332+ param.setParamDirty (14 , true );
325333 break ;
326334 case 14 :
327335 engine.bypass = static_cast <uint32_t >(value);
336+ param.setParamDirty (1 , true );
328337 break ;
329338 case 15 :
330339 {
@@ -359,34 +368,44 @@ class NeuralRack
359368 {
360369 engine.buffered = value;
361370 engine._notify_ui .store (true , std::memory_order_release);
371+ param.setParamDirty (0 , true );
362372 }
363373 break ;
364374 case 24 :
365375 engine.peq ->fVslider1 = value;
376+ param.setParamDirty (8 , true );
366377 break ;
367378 case 25 :
368379 engine.peq ->fVslider0 = value;
380+ param.setParamDirty (9 , true );
369381 break ;
370382 case 26 :
371383 engine.peq ->fVslider2 = value;
384+ param.setParamDirty (10 , true );
372385 break ;
373386 case 27 :
374387 engine.peq ->fVslider3 = value;
388+ param.setParamDirty (11 , true );
375389 break ;
376390 case 28 :
377391 engine.peq ->fVslider4 = value;
392+ param.setParamDirty (12 , true );
378393 break ;
379394 case 29 :
380395 engine.peq ->fVslider5 = value;
396+ param.setParamDirty (13 , true );
381397 break ;
382398 case 30 :
383399 engine.eqOnOff = static_cast <uint32_t >(value);
400+ param.setParamDirty (7 , true );
384401 break ;
385402 case 31 :
386403 engine.ngate ->threshold = value;
404+ param.setParamDirty (3 , true );
387405 break ;
388406 case 32 :
389407 engine.ngOnOff = static_cast <uint32_t >(value);
408+ param.setParamDirty (2 , true );
390409 break ;
391410 default :
392411 break ;
0 commit comments