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.

89 lines
1.3KB

  1. #pragma once
  2. #include "bogaudio.hpp"
  3. #include "dsp/signal.hpp"
  4. using namespace bogaudio::dsp;
  5. extern Model* modelMute8;
  6. namespace bogaudio {
  7. struct Mute8 : Module {
  8. enum ParamsIds {
  9. MUTE1_PARAM,
  10. MUTE2_PARAM,
  11. MUTE3_PARAM,
  12. MUTE4_PARAM,
  13. MUTE5_PARAM,
  14. MUTE6_PARAM,
  15. MUTE7_PARAM,
  16. MUTE8_PARAM,
  17. NUM_PARAMS
  18. };
  19. enum InputsIds {
  20. INPUT1_INPUT,
  21. INPUT2_INPUT,
  22. INPUT3_INPUT,
  23. INPUT4_INPUT,
  24. INPUT5_INPUT,
  25. INPUT6_INPUT,
  26. INPUT7_INPUT,
  27. INPUT8_INPUT,
  28. MUTE1_INPUT,
  29. MUTE2_INPUT,
  30. MUTE3_INPUT,
  31. MUTE4_INPUT,
  32. MUTE5_INPUT,
  33. MUTE6_INPUT,
  34. MUTE7_INPUT,
  35. MUTE8_INPUT,
  36. NUM_INPUTS
  37. };
  38. enum OutputsIds {
  39. OUTPUT1_OUTPUT,
  40. OUTPUT2_OUTPUT,
  41. OUTPUT3_OUTPUT,
  42. OUTPUT4_OUTPUT,
  43. OUTPUT5_OUTPUT,
  44. OUTPUT6_OUTPUT,
  45. OUTPUT7_OUTPUT,
  46. OUTPUT8_OUTPUT,
  47. NUM_OUTPUTS
  48. };
  49. enum LightsIds {
  50. MUTE1_LIGHT,
  51. MUTE2_LIGHT,
  52. MUTE3_LIGHT,
  53. MUTE4_LIGHT,
  54. MUTE5_LIGHT,
  55. MUTE6_LIGHT,
  56. MUTE7_LIGHT,
  57. MUTE8_LIGHT,
  58. NUM_LIGHTS
  59. };
  60. static const float maxDecibels;
  61. static const float minDecibels;
  62. static const float slewTimeMS;
  63. Amplifier _amplifiers[8];
  64. SlewLimiter _slewLimiters[8];
  65. Trigger _triggers[8];
  66. Mute8() : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS) {
  67. onReset();
  68. onSampleRateChange();
  69. }
  70. void onReset() override;
  71. void onSampleRateChange() override;
  72. void step() override;
  73. void stepChannel(int i);
  74. };
  75. } // namespace bogaudio