| @@ -2,26 +2,29 @@ | |||||
| #include "dsp/digital.hpp" | #include "dsp/digital.hpp" | ||||
| #define NUM_CHANNELS 10 | |||||
| struct Mutes : Module { | struct Mutes : Module { | ||||
| enum ParamIds { | enum ParamIds { | ||||
| MUTE_PARAM, | MUTE_PARAM, | ||||
| NUM_PARAMS = MUTE_PARAM + 10 | |||||
| NUM_PARAMS = MUTE_PARAM + NUM_CHANNELS | |||||
| }; | }; | ||||
| enum InputIds { | enum InputIds { | ||||
| IN_INPUT, | IN_INPUT, | ||||
| NUM_INPUTS = IN_INPUT + 10 | |||||
| NUM_INPUTS = IN_INPUT + NUM_CHANNELS | |||||
| }; | }; | ||||
| enum OutputIds { | enum OutputIds { | ||||
| OUT_OUTPUT, | OUT_OUTPUT, | ||||
| NUM_OUTPUTS = OUT_OUTPUT + 10 | |||||
| NUM_OUTPUTS = OUT_OUTPUT + NUM_CHANNELS | |||||
| }; | }; | ||||
| enum LightIds { | enum LightIds { | ||||
| MUTE_LIGHT, | MUTE_LIGHT, | ||||
| NUM_LIGHTS = MUTE_LIGHT + 10 | |||||
| NUM_LIGHTS = MUTE_LIGHT + NUM_CHANNELS | |||||
| }; | }; | ||||
| bool state[10]; | |||||
| SchmittTrigger muteTrigger[10]; | |||||
| bool state[NUM_CHANNELS]; | |||||
| SchmittTrigger muteTrigger[NUM_CHANNELS]; | |||||
| Mutes() : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS) { | Mutes() : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS) { | ||||
| reset(); | reset(); | ||||
| @@ -29,12 +32,12 @@ struct Mutes : Module { | |||||
| void step() override; | void step() override; | ||||
| void reset() override { | void reset() override { | ||||
| for (int i = 0; i < 10; i++) { | |||||
| for (int i = 0; i < NUM_CHANNELS; i++) { | |||||
| state[i] = true; | state[i] = true; | ||||
| } | } | ||||
| } | } | ||||
| void randomize() override { | void randomize() override { | ||||
| for (int i = 0; i < 10; i++) { | |||||
| for (int i = 0; i < NUM_CHANNELS; i++) { | |||||
| state[i] = (randomf() < 0.5); | state[i] = (randomf() < 0.5); | ||||
| } | } | ||||
| } | } | ||||
| @@ -43,7 +46,7 @@ struct Mutes : Module { | |||||
| json_t *rootJ = json_object(); | json_t *rootJ = json_object(); | ||||
| // states | // states | ||||
| json_t *statesJ = json_array(); | json_t *statesJ = json_array(); | ||||
| for (int i = 0; i < 8; i++) { | |||||
| for (int i = 0; i < NUM_CHANNELS; i++) { | |||||
| json_t *stateJ = json_boolean(state[i]); | json_t *stateJ = json_boolean(state[i]); | ||||
| json_array_append_new(statesJ, stateJ); | json_array_append_new(statesJ, stateJ); | ||||
| } | } | ||||
| @@ -54,7 +57,7 @@ struct Mutes : Module { | |||||
| // states | // states | ||||
| json_t *statesJ = json_object_get(rootJ, "states"); | json_t *statesJ = json_object_get(rootJ, "states"); | ||||
| if (statesJ) { | if (statesJ) { | ||||
| for (int i = 0; i < 8; i++) { | |||||
| for (int i = 0; i < NUM_CHANNELS; i++) { | |||||
| json_t *stateJ = json_array_get(statesJ, i); | json_t *stateJ = json_array_get(statesJ, i); | ||||
| if (stateJ) | if (stateJ) | ||||
| state[i] = json_boolean_value(stateJ); | state[i] = json_boolean_value(stateJ); | ||||
| @@ -64,7 +67,7 @@ struct Mutes : Module { | |||||
| }; | }; | ||||
| void Mutes::step() { | void Mutes::step() { | ||||
| for (int i = 0; i < 10; i++) { | |||||
| for (int i = 0; i < NUM_CHANNELS; i++) { | |||||
| if (muteTrigger[i].process(params[MUTE_PARAM + i].value)) | if (muteTrigger[i].process(params[MUTE_PARAM + i].value)) | ||||
| state[i] ^= true; | state[i] ^= true; | ||||
| float in = inputs[IN_INPUT + i].value; | float in = inputs[IN_INPUT + i].value; | ||||