2323
2424#include " engine.h"
2525#include " ParallelThread.h"
26+ #include " Parameter.h"
2627#define CLAPPLUG
2728#include " NeuralRack.c"
2829
2930class NeuralRack
3031{
3132public:
3233 Widget_t* TopWin;
33- std::atomic<bool > paramChanged;
34- std::atomic<bool > controllerChanged;
34+ Params param;
3535
36- NeuralRack () : engine() {
36+ NeuralRack () : engine(), param() {
3737 workToDo.store (false , std::memory_order_release);
3838 s_time = 0.0 ;
3939 ui = (X11_UI*)malloc (sizeof (X11_UI));
@@ -47,8 +47,7 @@ class NeuralRack
4747 title = " NeuralRack" ;
4848 firstLoop = true ;
4949 p = 0 ;
50- paramChanged.store (false , std::memory_order_release);
51- controllerChanged.store (false , std::memory_order_release);
50+ registerParameters ();
5251 for (int i = 0 ;i<CONTROLS;i++)
5352 ui->widget [i] = NULL ;
5453 }
@@ -59,6 +58,33 @@ class NeuralRack
5958 free (ui);
6059 }
6160
61+ void registerParameters () {
62+ param.registerParam (" Buffered Mode" , " Global" , 0 ,2 ,0 ,1 , (void *)&engine.buffered , true , Is_FLOAT);
63+ param.registerParam (" Enable" , " Global" , 0 ,1 ,0 ,1 , (void *)&engine.bypass , true , IS_UINT);
64+
65+ param.registerParam (" Gate Enable" , " NoiseGate" ,0 ,1 ,0 ,1 , (void *)&engine.ngOnOff , true , IS_UINT);
66+ param.registerParam (" Gate Thresh" , " NoiseGate" , 0.01 , 0.31 , 0.017 , 0.001 , (void *)&engine.ngate ->threshold , false , Is_FLOAT);
67+
68+ param.registerParam (" Norm Slot A" , " Pedal" , 0 ,1 ,0 ,1 , (void *)&engine.normSlotA , true , IS_INT);
69+ param.registerParam (" Input Gain A" , " Pedal" , -20 ,20 ,0 ,0.1 , (void *)&engine.inputGain , false , Is_FLOAT);
70+ param.registerParam (" Output Gain A" , " Pedal" , -20 ,20 ,0 ,0.1 , (void *)&engine.outputGain , false , Is_FLOAT);
71+
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+
76+ param.registerParam (" EQ Enable" , " EQ" , 0 ,1 ,0 ,1 , (void *)&engine.eqOnOff , true , IS_UINT);
77+ param.registerParam (" EQ Band 1" , " EQ" , -20 ,20 ,0 ,0.1 , (void *)&engine.peq ->fVslider1 , false , Is_FLOAT);
78+ param.registerParam (" EQ Band 2" , " EQ" , -20 ,20 ,0 ,0.1 , (void *)&engine.peq ->fVslider0 , false , Is_FLOAT);
79+ param.registerParam (" EQ Band 3" , " EQ" , -20 ,20 ,0 ,0.1 , (void *)&engine.peq ->fVslider2 , false , Is_FLOAT);
80+ param.registerParam (" EQ Band 4" , " EQ" , -20 ,20 ,0 ,0.1 , (void *)&engine.peq ->fVslider3 , false , Is_FLOAT);
81+ param.registerParam (" EQ Band 5" , " EQ" , -20 ,20 ,0 ,0.1 , (void *)&engine.peq ->fVslider4 , false , Is_FLOAT);
82+ param.registerParam (" EQ Band 6" , " EQ" , -20 ,20 ,0 ,0.1 , (void *)&engine.peq ->fVslider5 , false , Is_FLOAT);
83+
84+ param.registerParam (" IR Out Gain L" , " IR" , -20 ,20 ,0 ,0.1 , (void *)&engine.IRoutputGain , false , Is_FLOAT);
85+ param.registerParam (" IR Out Gain R" , " IR" , -20 ,20 ,0 ,0.1 , (void *)&engine.IRoutputGain1 , false , Is_FLOAT);
86+ }
87+
6288 void startGui (Window window) {
6389 main_init (&ui->main );
6490 set_custom_theme (ui);
@@ -157,9 +183,9 @@ class NeuralRack
157183 checkParentWindowSize (TopWin->width , TopWin->height );
158184 firstLoop = false ;
159185 }
160- if (paramChanged.load (std::memory_order_acquire)) {
186+ if (param. paramChanged .load (std::memory_order_acquire)) {
161187 getEngineValues ();
162- paramChanged.store (false , std::memory_order_release);
188+ param. paramChanged .store (false , std::memory_order_release);
163189 }
164190 run_embedded (&ui->main );
165191 }
@@ -298,7 +324,7 @@ class NeuralRack
298324 engine.normSlotB = static_cast <int32_t >(value);
299325 break ;
300326 case 14 :
301- engine.bypass = static_cast <int32_t >(value);
327+ engine.bypass = static_cast <uint32_t >(value);
302328 break ;
303329 case 15 :
304330 {
@@ -366,7 +392,7 @@ class NeuralRack
366392 break ;
367393 }
368394 // inform the process thread that a controller value was changed by the GUI thread
369- controllerChanged.store (true , std::memory_order_release);
395+ param. controllerChanged .store (true , std::memory_order_release);
370396 }
371397
372398 // send a file name from GUI to the engine
0 commit comments