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.

61 lines
952B

  1. #pragma once
  2. #include "bogaudio.hpp"
  3. #include "disable_output_limit.hpp"
  4. #include "dsp/signal.hpp"
  5. using namespace bogaudio::dsp;
  6. extern Model* modelVCM;
  7. namespace bogaudio {
  8. struct VCM : DisableOutputLimitModule {
  9. enum ParamsIds {
  10. LEVEL1_PARAM,
  11. LEVEL2_PARAM,
  12. LEVEL3_PARAM,
  13. LEVEL4_PARAM,
  14. MIX_PARAM,
  15. LINEAR_PARAM,
  16. NUM_PARAMS
  17. };
  18. enum InputsIds {
  19. IN1_INPUT,
  20. CV1_INPUT,
  21. IN2_INPUT,
  22. CV2_INPUT,
  23. IN3_INPUT,
  24. CV3_INPUT,
  25. IN4_INPUT,
  26. CV4_INPUT,
  27. MIX_CV_INPUT,
  28. NUM_INPUTS
  29. };
  30. enum OutputsIds {
  31. MIX_OUTPUT,
  32. NUM_OUTPUTS
  33. };
  34. enum LightsIds {
  35. LINEAR_LIGHT,
  36. NUM_LIGHTS
  37. };
  38. Amplifier _amplifier1;
  39. Amplifier _amplifier2;
  40. Amplifier _amplifier3;
  41. Amplifier _amplifier4;
  42. VCM() : DisableOutputLimitModule(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS) {
  43. onReset();
  44. }
  45. void step() override;
  46. float channelStep(Input& input, Param& knob, Input& cv, Amplifier& amplifier, bool linear);
  47. };
  48. } // namespace bogaudio