Matrix88.hpp (7431B)
1 #pragma once 2 3 #include "Matrix88_shared.hpp" 4 5 namespace bogaudio { 6 7 typedef ChainableExpandableModule<Matrix88ExpanderMessage, Matrix88Element, 1, KnobMatrixModule> Matrix88Base; 8 9 struct Matrix88 : Matrix88Base { 10 enum ParamsIds { 11 MIX11_PARAM, 12 MIX21_PARAM, 13 MIX31_PARAM, 14 MIX41_PARAM, 15 MIX51_PARAM, 16 MIX61_PARAM, 17 MIX71_PARAM, 18 MIX81_PARAM, 19 MIX12_PARAM, 20 MIX22_PARAM, 21 MIX32_PARAM, 22 MIX42_PARAM, 23 MIX52_PARAM, 24 MIX62_PARAM, 25 MIX72_PARAM, 26 MIX82_PARAM, 27 MIX13_PARAM, 28 MIX23_PARAM, 29 MIX33_PARAM, 30 MIX43_PARAM, 31 MIX53_PARAM, 32 MIX63_PARAM, 33 MIX73_PARAM, 34 MIX83_PARAM, 35 MIX14_PARAM, 36 MIX24_PARAM, 37 MIX34_PARAM, 38 MIX44_PARAM, 39 MIX54_PARAM, 40 MIX64_PARAM, 41 MIX74_PARAM, 42 MIX84_PARAM, 43 MIX15_PARAM, 44 MIX25_PARAM, 45 MIX35_PARAM, 46 MIX45_PARAM, 47 MIX55_PARAM, 48 MIX65_PARAM, 49 MIX75_PARAM, 50 MIX85_PARAM, 51 MIX16_PARAM, 52 MIX26_PARAM, 53 MIX36_PARAM, 54 MIX46_PARAM, 55 MIX56_PARAM, 56 MIX66_PARAM, 57 MIX76_PARAM, 58 MIX86_PARAM, 59 MIX17_PARAM, 60 MIX27_PARAM, 61 MIX37_PARAM, 62 MIX47_PARAM, 63 MIX57_PARAM, 64 MIX67_PARAM, 65 MIX77_PARAM, 66 MIX87_PARAM, 67 MIX18_PARAM, 68 MIX28_PARAM, 69 MIX38_PARAM, 70 MIX48_PARAM, 71 MIX58_PARAM, 72 MIX68_PARAM, 73 MIX78_PARAM, 74 MIX88_PARAM, 75 NUM_PARAMS 76 }; 77 78 enum InputsIds { 79 IN1_INPUT, 80 IN2_INPUT, 81 IN3_INPUT, 82 IN4_INPUT, 83 IN5_INPUT, 84 IN6_INPUT, 85 IN7_INPUT, 86 IN8_INPUT, 87 NUM_INPUTS 88 }; 89 90 enum OutputsIds { 91 OUT1_OUTPUT, 92 OUT2_OUTPUT, 93 OUT3_OUTPUT, 94 OUT4_OUTPUT, 95 OUT5_OUTPUT, 96 OUT6_OUTPUT, 97 OUT7_OUTPUT, 98 OUT8_OUTPUT, 99 NUM_OUTPUTS 100 }; 101 102 Matrix88() { 103 config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS); 104 configMatrixModule(8, 8, MIX11_PARAM, IN1_INPUT, OUT1_OUTPUT); 105 configParam(MIX11_PARAM, -1.0f, 1.0f, 0.0f, "Mix 1A", "%", 0.0f, 100.0f); 106 configParam(MIX21_PARAM, -1.0f, 1.0f, 0.0f, "Mix 2A", "%", 0.0f, 100.0f); 107 configParam(MIX31_PARAM, -1.0f, 1.0f, 0.0f, "Mix 3A", "%", 0.0f, 100.0f); 108 configParam(MIX41_PARAM, -1.0f, 1.0f, 0.0f, "Mix 4A", "%", 0.0f, 100.0f); 109 configParam(MIX51_PARAM, -1.0f, 1.0f, 0.0f, "Mix 5A", "%", 0.0f, 100.0f); 110 configParam(MIX61_PARAM, -1.0f, 1.0f, 0.0f, "Mix 6A", "%", 0.0f, 100.0f); 111 configParam(MIX71_PARAM, -1.0f, 1.0f, 0.0f, "Mix 7A", "%", 0.0f, 100.0f); 112 configParam(MIX81_PARAM, -1.0f, 1.0f, 0.0f, "Mix 8A", "%", 0.0f, 100.0f); 113 configParam(MIX12_PARAM, -1.0f, 1.0f, 0.0f, "Mix 1B", "%", 0.0f, 100.0f); 114 configParam(MIX22_PARAM, -1.0f, 1.0f, 0.0f, "Mix 2B", "%", 0.0f, 100.0f); 115 configParam(MIX32_PARAM, -1.0f, 1.0f, 0.0f, "Mix 3B", "%", 0.0f, 100.0f); 116 configParam(MIX42_PARAM, -1.0f, 1.0f, 0.0f, "Mix 4B", "%", 0.0f, 100.0f); 117 configParam(MIX52_PARAM, -1.0f, 1.0f, 0.0f, "Mix 5B", "%", 0.0f, 100.0f); 118 configParam(MIX62_PARAM, -1.0f, 1.0f, 0.0f, "Mix 6B", "%", 0.0f, 100.0f); 119 configParam(MIX72_PARAM, -1.0f, 1.0f, 0.0f, "Mix 7B", "%", 0.0f, 100.0f); 120 configParam(MIX82_PARAM, -1.0f, 1.0f, 0.0f, "Mix 8B", "%", 0.0f, 100.0f); 121 configParam(MIX13_PARAM, -1.0f, 1.0f, 0.0f, "Mix 1C", "%", 0.0f, 100.0f); 122 configParam(MIX23_PARAM, -1.0f, 1.0f, 0.0f, "Mix 2C", "%", 0.0f, 100.0f); 123 configParam(MIX33_PARAM, -1.0f, 1.0f, 0.0f, "Mix 3C", "%", 0.0f, 100.0f); 124 configParam(MIX43_PARAM, -1.0f, 1.0f, 0.0f, "Mix 4C", "%", 0.0f, 100.0f); 125 configParam(MIX53_PARAM, -1.0f, 1.0f, 0.0f, "Mix 5C", "%", 0.0f, 100.0f); 126 configParam(MIX63_PARAM, -1.0f, 1.0f, 0.0f, "Mix 6C", "%", 0.0f, 100.0f); 127 configParam(MIX73_PARAM, -1.0f, 1.0f, 0.0f, "Mix 7C", "%", 0.0f, 100.0f); 128 configParam(MIX83_PARAM, -1.0f, 1.0f, 0.0f, "Mix 8C", "%", 0.0f, 100.0f); 129 configParam(MIX14_PARAM, -1.0f, 1.0f, 0.0f, "Mix 1D", "%", 0.0f, 100.0f); 130 configParam(MIX24_PARAM, -1.0f, 1.0f, 0.0f, "Mix 2D", "%", 0.0f, 100.0f); 131 configParam(MIX34_PARAM, -1.0f, 1.0f, 0.0f, "Mix 3D", "%", 0.0f, 100.0f); 132 configParam(MIX44_PARAM, -1.0f, 1.0f, 0.0f, "Mix 4D", "%", 0.0f, 100.0f); 133 configParam(MIX54_PARAM, -1.0f, 1.0f, 0.0f, "Mix 5D", "%", 0.0f, 100.0f); 134 configParam(MIX64_PARAM, -1.0f, 1.0f, 0.0f, "Mix 6D", "%", 0.0f, 100.0f); 135 configParam(MIX74_PARAM, -1.0f, 1.0f, 0.0f, "Mix 7D", "%", 0.0f, 100.0f); 136 configParam(MIX84_PARAM, -1.0f, 1.0f, 0.0f, "Mix 8D", "%", 0.0f, 100.0f); 137 configParam(MIX15_PARAM, -1.0f, 1.0f, 0.0f, "Mix 1E", "%", 0.0f, 100.0f); 138 configParam(MIX25_PARAM, -1.0f, 1.0f, 0.0f, "Mix 2E", "%", 0.0f, 100.0f); 139 configParam(MIX35_PARAM, -1.0f, 1.0f, 0.0f, "Mix 3E", "%", 0.0f, 100.0f); 140 configParam(MIX45_PARAM, -1.0f, 1.0f, 0.0f, "Mix 4E", "%", 0.0f, 100.0f); 141 configParam(MIX55_PARAM, -1.0f, 1.0f, 0.0f, "Mix 5E", "%", 0.0f, 100.0f); 142 configParam(MIX65_PARAM, -1.0f, 1.0f, 0.0f, "Mix 6E", "%", 0.0f, 100.0f); 143 configParam(MIX75_PARAM, -1.0f, 1.0f, 0.0f, "Mix 7E", "%", 0.0f, 100.0f); 144 configParam(MIX85_PARAM, -1.0f, 1.0f, 0.0f, "Mix 8E", "%", 0.0f, 100.0f); 145 configParam(MIX16_PARAM, -1.0f, 1.0f, 0.0f, "Mix 1F", "%", 0.0f, 100.0f); 146 configParam(MIX26_PARAM, -1.0f, 1.0f, 0.0f, "Mix 2F", "%", 0.0f, 100.0f); 147 configParam(MIX36_PARAM, -1.0f, 1.0f, 0.0f, "Mix 3F", "%", 0.0f, 100.0f); 148 configParam(MIX46_PARAM, -1.0f, 1.0f, 0.0f, "Mix 4F", "%", 0.0f, 100.0f); 149 configParam(MIX56_PARAM, -1.0f, 1.0f, 0.0f, "Mix 5F", "%", 0.0f, 100.0f); 150 configParam(MIX66_PARAM, -1.0f, 1.0f, 0.0f, "Mix 6F", "%", 0.0f, 100.0f); 151 configParam(MIX76_PARAM, -1.0f, 1.0f, 0.0f, "Mix 7F", "%", 0.0f, 100.0f); 152 configParam(MIX86_PARAM, -1.0f, 1.0f, 0.0f, "Mix 8F", "%", 0.0f, 100.0f); 153 configParam(MIX17_PARAM, -1.0f, 1.0f, 0.0f, "Mix 1G", "%", 0.0f, 100.0f); 154 configParam(MIX27_PARAM, -1.0f, 1.0f, 0.0f, "Mix 2G", "%", 0.0f, 100.0f); 155 configParam(MIX37_PARAM, -1.0f, 1.0f, 0.0f, "Mix 3G", "%", 0.0f, 100.0f); 156 configParam(MIX47_PARAM, -1.0f, 1.0f, 0.0f, "Mix 4G", "%", 0.0f, 100.0f); 157 configParam(MIX57_PARAM, -1.0f, 1.0f, 0.0f, "Mix 5G", "%", 0.0f, 100.0f); 158 configParam(MIX67_PARAM, -1.0f, 1.0f, 0.0f, "Mix 6G", "%", 0.0f, 100.0f); 159 configParam(MIX77_PARAM, -1.0f, 1.0f, 0.0f, "Mix 7G", "%", 0.0f, 100.0f); 160 configParam(MIX87_PARAM, -1.0f, 1.0f, 0.0f, "Mix 8G", "%", 0.0f, 100.0f); 161 configParam(MIX18_PARAM, -1.0f, 1.0f, 0.0f, "Mix 1H", "%", 0.0f, 100.0f); 162 configParam(MIX28_PARAM, -1.0f, 1.0f, 0.0f, "Mix 2H", "%", 0.0f, 100.0f); 163 configParam(MIX38_PARAM, -1.0f, 1.0f, 0.0f, "Mix 3H", "%", 0.0f, 100.0f); 164 configParam(MIX48_PARAM, -1.0f, 1.0f, 0.0f, "Mix 4H", "%", 0.0f, 100.0f); 165 configParam(MIX58_PARAM, -1.0f, 1.0f, 0.0f, "Mix 5H", "%", 0.0f, 100.0f); 166 configParam(MIX68_PARAM, -1.0f, 1.0f, 0.0f, "Mix 6H", "%", 0.0f, 100.0f); 167 configParam(MIX78_PARAM, -1.0f, 1.0f, 0.0f, "Mix 7H", "%", 0.0f, 100.0f); 168 configParam(MIX88_PARAM, -1.0f, 1.0f, 0.0f, "Mix 8H", "%", 0.0f, 100.0f); 169 170 configInput(IN1_INPUT, "Signal 1"); 171 configInput(IN2_INPUT, "Signal 2"); 172 configInput(IN3_INPUT, "Signal 3"); 173 configInput(IN4_INPUT, "Signal 4"); 174 configInput(IN5_INPUT, "Signal 5"); 175 configInput(IN6_INPUT, "Signal 6"); 176 configInput(IN7_INPUT, "Signal 7"); 177 configInput(IN8_INPUT, "Signal 8"); 178 179 configOutput(OUT1_OUTPUT, "Signal A"); 180 configOutput(OUT2_OUTPUT, "Signal B"); 181 configOutput(OUT3_OUTPUT, "Signal C"); 182 configOutput(OUT4_OUTPUT, "Signal D"); 183 configOutput(OUT5_OUTPUT, "Signal E"); 184 configOutput(OUT6_OUTPUT, "Signal F"); 185 configOutput(OUT7_OUTPUT, "Signal G"); 186 configOutput(OUT8_OUTPUT, "Signal H"); 187 188 setLocalElements({new Matrix88Element(NULL, NULL, NULL)}); 189 registerBase(); 190 setExpanderModelPredicate([](Model* m) { return m == modelMatrix88Cv || m == modelMatrix88M; }); 191 } 192 193 void elementsChanged() override; 194 void processAlways(const ProcessArgs& args) override; 195 }; 196 197 } // namespace bogaudio