#include "mental.hpp" namespace rack_plugin_mental { struct MentalMults : Module { enum ParamIds { NUM_PARAMS }; enum InputIds { INPUT_1, INPUT_2, NUM_INPUTS }; enum OutputIds { OUTPUT_1, OUTPUT_2, OUTPUT_3, OUTPUT_4, OUTPUT_5, OUTPUT_2_1, OUTPUT_2_2, OUTPUT_2_3, OUTPUT_2_4, OUTPUT_2_5, NUM_OUTPUTS }; MentalMults() : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS) {} void step() override; }; void MentalMults::step() { float signal_in_1 = inputs[INPUT_1].value; outputs[OUTPUT_1].value = signal_in_1; outputs[OUTPUT_2].value = signal_in_1; outputs[OUTPUT_3].value = signal_in_1; outputs[OUTPUT_4].value = signal_in_1; outputs[OUTPUT_5].value = signal_in_1; float signal_in_2 = inputs[INPUT_2].value; outputs[OUTPUT_2_1].value = signal_in_2; outputs[OUTPUT_2_2].value = signal_in_2; outputs[OUTPUT_2_3].value = signal_in_2; outputs[OUTPUT_2_4].value = signal_in_2; outputs[OUTPUT_2_5].value = signal_in_2; } ///////////////////////////////////////////////////////////////////////////////////////// struct MentalMultsWidget : ModuleWidget { MentalMultsWidget(MentalMults *module); }; MentalMultsWidget::MentalMultsWidget(MentalMults *module) : ModuleWidget(module) { setPanel(SVG::load(assetPlugin(plugin, "res/MentalMults.svg"))); addInput(Port::create(Vec(3, 22), Port::INPUT, module, MentalMults::INPUT_1)); addInput(Port::create(Vec(3, 190), Port::INPUT, module, MentalMults::INPUT_2)); addOutput(Port::create(Vec(3, 58), Port::OUTPUT, module, MentalMults::OUTPUT_1)); addOutput(Port::create(Vec(3, 83), Port::OUTPUT, module, MentalMults::OUTPUT_2)); addOutput(Port::create(Vec(3, 108), Port::OUTPUT, module, MentalMults::OUTPUT_3)); addOutput(Port::create(Vec(3, 133), Port::OUTPUT, module, MentalMults::OUTPUT_4)); addOutput(Port::create(Vec(3, 158), Port::OUTPUT, module, MentalMults::OUTPUT_5)); addOutput(Port::create(Vec(3, 230), Port::OUTPUT, module, MentalMults::OUTPUT_2_1)); addOutput(Port::create(Vec(3, 255), Port::OUTPUT, module, MentalMults::OUTPUT_2_2)); addOutput(Port::create(Vec(3, 280), Port::OUTPUT, module, MentalMults::OUTPUT_2_3)); addOutput(Port::create(Vec(3, 305), Port::OUTPUT, module, MentalMults::OUTPUT_2_4)); addOutput(Port::create(Vec(3, 330), Port::OUTPUT, module, MentalMults::OUTPUT_2_5)); } } // namespace rack_plugin_mental using namespace rack_plugin_mental; RACK_PLUGIN_MODEL_INIT(mental, MentalMults) { Model *modelMentalMults = Model::create("mental", "MentalMults", "Mults", DUAL_TAG, MULTIPLE_TAG); return modelMentalMults; }