You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

42 lines
1.2KB

  1. #include "turing-vactrol-module.hh"
  2. namespace rack_plugin_Skylights {
  3. void turing_vactrol_module::step() {
  4. uint16_t seq = (uint16_t)ceil((inputs[I_EXPANDER].value / 10.0) * 65535.0);
  5. lights[L_GATE1].value = (seq & 1) > 0 ? 1.0 : 0.0;
  6. lights[L_GATE2].value = (seq & 2) > 0 ? 1.0 : 0.0;
  7. lights[L_GATE3].value = (seq & 4) > 0 ? 1.0 : 0.0;
  8. lights[L_GATE4].value = (seq & 8) > 0 ? 1.0 : 0.0;
  9. lights[L_GATE5].value = (seq & 16) > 0 ? 1.0 : 0.0;
  10. lights[L_GATE6].value = (seq & 32) > 0 ? 1.0 : 0.0;
  11. lights[L_GATE7].value = (seq & 64) > 0 ? 1.0 : 0.0;
  12. lights[L_GATE8].value = (seq & 128) > 0 ? 1.0 : 0.0;
  13. outputs[O_LEFT].value = 0.0;
  14. outputs[O_RIGHT].value = 0.0;
  15. size_t o = 0;
  16. for (size_t i = 0;
  17. i < 4;
  18. i++)
  19. {
  20. if (seq & (1 << o++)) {
  21. outputs[O_LEFT].value += params[P_VOL1 + i].value * inputs[I_INPUT1 + i].value;
  22. }
  23. if (seq & (1 << o++)) {
  24. outputs[O_RIGHT].value += params[P_VOL1 + i].value * inputs[I_INPUT1 + i].value;
  25. }
  26. }
  27. }
  28. turing_vactrol_module::turing_vactrol_module() : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS) {
  29. }
  30. turing_vactrol_module::~turing_vactrol_module() {
  31. }
  32. } // namespace rack_plugin_Skylights