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.

120 lines
1.7KB

  1. #pragma once
  2. #include "bogaudio.hpp"
  3. #include "dsp/signal.hpp"
  4. using namespace bogaudio::dsp;
  5. extern Model* modelMatrix88;
  6. namespace bogaudio {
  7. struct Matrix88 : Module {
  8. enum ParamsIds {
  9. MIX11_PARAM,
  10. MIX21_PARAM,
  11. MIX31_PARAM,
  12. MIX41_PARAM,
  13. MIX51_PARAM,
  14. MIX61_PARAM,
  15. MIX71_PARAM,
  16. MIX81_PARAM,
  17. MIX12_PARAM,
  18. MIX22_PARAM,
  19. MIX32_PARAM,
  20. MIX42_PARAM,
  21. MIX52_PARAM,
  22. MIX62_PARAM,
  23. MIX72_PARAM,
  24. MIX82_PARAM,
  25. MIX13_PARAM,
  26. MIX23_PARAM,
  27. MIX33_PARAM,
  28. MIX43_PARAM,
  29. MIX53_PARAM,
  30. MIX63_PARAM,
  31. MIX73_PARAM,
  32. MIX83_PARAM,
  33. MIX14_PARAM,
  34. MIX24_PARAM,
  35. MIX34_PARAM,
  36. MIX44_PARAM,
  37. MIX54_PARAM,
  38. MIX64_PARAM,
  39. MIX74_PARAM,
  40. MIX84_PARAM,
  41. MIX15_PARAM,
  42. MIX25_PARAM,
  43. MIX35_PARAM,
  44. MIX45_PARAM,
  45. MIX55_PARAM,
  46. MIX65_PARAM,
  47. MIX75_PARAM,
  48. MIX85_PARAM,
  49. MIX16_PARAM,
  50. MIX26_PARAM,
  51. MIX36_PARAM,
  52. MIX46_PARAM,
  53. MIX56_PARAM,
  54. MIX66_PARAM,
  55. MIX76_PARAM,
  56. MIX86_PARAM,
  57. MIX17_PARAM,
  58. MIX27_PARAM,
  59. MIX37_PARAM,
  60. MIX47_PARAM,
  61. MIX57_PARAM,
  62. MIX67_PARAM,
  63. MIX77_PARAM,
  64. MIX87_PARAM,
  65. MIX18_PARAM,
  66. MIX28_PARAM,
  67. MIX38_PARAM,
  68. MIX48_PARAM,
  69. MIX58_PARAM,
  70. MIX68_PARAM,
  71. MIX78_PARAM,
  72. MIX88_PARAM,
  73. LEVEL_PARAM,
  74. NUM_PARAMS
  75. };
  76. enum InputsIds {
  77. IN1_INPUT,
  78. IN2_INPUT,
  79. IN3_INPUT,
  80. IN4_INPUT,
  81. IN5_INPUT,
  82. IN6_INPUT,
  83. IN7_INPUT,
  84. IN8_INPUT,
  85. NUM_INPUTS
  86. };
  87. enum OutputsIds {
  88. OUT1_OUTPUT,
  89. OUT2_OUTPUT,
  90. OUT3_OUTPUT,
  91. OUT4_OUTPUT,
  92. OUT5_OUTPUT,
  93. OUT6_OUTPUT,
  94. OUT7_OUTPUT,
  95. OUT8_OUTPUT,
  96. NUM_OUTPUTS
  97. };
  98. enum LightsIds {
  99. NUM_LIGHTS
  100. };
  101. float _inputs[8] {};
  102. Saturator _saturators[8];
  103. Matrix88() : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS) {
  104. }
  105. void step() override;
  106. };
  107. } // namespace bogaudio