|
- #include "1x8CV.hpp"
-
- namespace rack_plugin_SynthKit {
-
- M1x8CVModule::M1x8CVModule()
- : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS) {
- for (int i = 0; i < 8; i++) {
- cv[i] = new SynthDevKit::CV(1.7f);
- }
- }
-
- void M1x8CVModule::step() {
- float in = inputs[TOP_INPUT].value;
-
- // this logic can be greatly simplified with a loop
- cv[0]->update(inputs[FIRST_CV].value);
- cv[1]->update(inputs[SECOND_CV].value);
- cv[2]->update(inputs[THIRD_CV].value);
- cv[3]->update(inputs[FOURTH_CV].value);
- cv[4]->update(inputs[FIFTH_CV].value);
- cv[5]->update(inputs[SIXTH_CV].value);
- cv[6]->update(inputs[SEVENTH_CV].value);
- cv[7]->update(inputs[EIGHTH_CV].value);
-
- if (cv[0]->isHigh()) {
- outputs[FIRST_OUTPUT].value = in;
- lights[FIRST_LED].value = 1;
- } else {
- outputs[FIRST_OUTPUT].value = 0;
- lights[FIRST_LED].value = 0;
- }
-
- if (cv[1]->isHigh()) {
- outputs[SECOND_OUTPUT].value = in;
- lights[SECOND_LED].value = 1;
- } else {
- outputs[SECOND_OUTPUT].value = 0;
- lights[SECOND_LED].value = 0;
- }
-
- if (cv[2]->isHigh()) {
- outputs[THIRD_OUTPUT].value = in;
- lights[THIRD_LED].value = 1;
- } else {
- outputs[THIRD_OUTPUT].value = 0;
- lights[THIRD_LED].value = 0;
- }
-
- if (cv[3]->isHigh()) {
- outputs[FOURTH_OUTPUT].value = in;
- lights[FOURTH_LED].value = 1;
- } else {
- outputs[FOURTH_OUTPUT].value = 0;
- lights[FOURTH_LED].value = 0;
- }
-
- if (cv[4]->isHigh()) {
- outputs[FIFTH_OUTPUT].value = in;
- lights[FIFTH_LED].value = 1;
- } else {
- outputs[FIFTH_OUTPUT].value = 0;
- lights[FIFTH_LED].value = 0;
- }
-
- if (cv[5]->isHigh()) {
- outputs[SIXTH_OUTPUT].value = in;
- lights[SIXTH_LED].value = 1;
- } else {
- outputs[SIXTH_OUTPUT].value = 0;
- lights[SIXTH_LED].value = 0;
- }
-
- if (cv[6]->isHigh()) {
- outputs[SEVENTH_OUTPUT].value = in;
- lights[SEVENTH_LED].value = 1;
- } else {
- outputs[SEVENTH_OUTPUT].value = 0;
- lights[SEVENTH_LED].value = 0;
- }
-
- if (cv[7]->isHigh()) {
- outputs[EIGHTH_OUTPUT].value = in;
- lights[EIGHTH_LED].value = 1;
- } else {
- outputs[EIGHTH_OUTPUT].value = 0;
- lights[EIGHTH_LED].value = 0;
- }
- }
-
- } // namespace rack_plugin_SynthKit
|