Mult.cpp (2254B)
1 2 #include "Mult.hpp" 3 4 void Mult::processAll(const ProcessArgs& args) { 5 int n = inputs[INA_INPUT].getChannels(); 6 float* out = inputs[INA_INPUT].getVoltages(); 7 outputs[OUTA1_OUTPUT].setChannels(n); 8 outputs[OUTA1_OUTPUT].writeVoltages(out); 9 outputs[OUTA2_OUTPUT].setChannels(n); 10 outputs[OUTA2_OUTPUT].writeVoltages(out); 11 outputs[OUTA3_OUTPUT].setChannels(n); 12 outputs[OUTA3_OUTPUT].writeVoltages(out); 13 14 if (inputs[INB_INPUT].isConnected()) { 15 n = inputs[INB_INPUT].getChannels(); 16 out = inputs[INB_INPUT].getVoltages(); 17 } 18 outputs[OUTB1_OUTPUT].setChannels(n); 19 outputs[OUTB1_OUTPUT].writeVoltages(out); 20 outputs[OUTB2_OUTPUT].setChannels(n); 21 outputs[OUTB2_OUTPUT].writeVoltages(out); 22 outputs[OUTB3_OUTPUT].setChannels(n); 23 outputs[OUTB3_OUTPUT].writeVoltages(out); 24 } 25 26 struct MultWidget : BGModuleWidget { 27 static constexpr int hp = 3; 28 29 MultWidget(Mult* module) { 30 setModule(module); 31 box.size = Vec(RACK_GRID_WIDTH * hp, RACK_GRID_HEIGHT); 32 setPanel(box.size, "Mult"); 33 createScrews(); 34 35 // generated by svg_widgets.rb 36 auto inaInputPosition = Vec(10.5, 21.0); 37 auto inbInputPosition = Vec(10.5, 181.0); 38 39 auto outa1OutputPosition = Vec(10.5, 62.0); 40 auto outa2OutputPosition = Vec(10.5, 92.0); 41 auto outa3OutputPosition = Vec(10.5, 122.0); 42 auto outb1OutputPosition = Vec(10.5, 222.0); 43 auto outb2OutputPosition = Vec(10.5, 252.0); 44 auto outb3OutputPosition = Vec(10.5, 282.0); 45 // end generated by svg_widgets.rb 46 47 addInput(createInput<Port24>(inaInputPosition, module, Mult::INA_INPUT)); 48 addInput(createInput<Port24>(inbInputPosition, module, Mult::INB_INPUT)); 49 50 addOutput(createOutput<Port24>(outa1OutputPosition, module, Mult::OUTA1_OUTPUT)); 51 addOutput(createOutput<Port24>(outa2OutputPosition, module, Mult::OUTA2_OUTPUT)); 52 addOutput(createOutput<Port24>(outa3OutputPosition, module, Mult::OUTA3_OUTPUT)); 53 addOutput(createOutput<Port24>(outb1OutputPosition, module, Mult::OUTB1_OUTPUT)); 54 addOutput(createOutput<Port24>(outb2OutputPosition, module, Mult::OUTB2_OUTPUT)); 55 addOutput(createOutput<Port24>(outb3OutputPosition, module, Mult::OUTB3_OUTPUT)); 56 } 57 }; 58 59 Model* modelMult = bogaudio::createModel<Mult, MultWidget>("Bogaudio-Mult", "MULT", "1:6 or dual 1:3 multiple/splitter", "Multiple", "Polyphonic");