BogaudioModules

BogaudioModules for VCV Rack
Log | Files | Refs | README | LICENSE

Matrix44Cvm.cpp (5441B)


      1 
      2 #include "Matrix44Cvm.hpp"
      3 #include "mixer.hpp"
      4 
      5 void Matrix44Cvm::processAlways(const ProcessArgs& args) {
      6 	int position = 0;
      7 	int baseID = 0;
      8 	if (baseConnected()) {
      9 		Matrix44ExpanderMessage* bm = fromBase();
     10 		baseID = bm->baseID;
     11 		position = bm->position;
     12 	}
     13 	setBaseIDAndPosition(baseID, position);
     14 
     15 	if (expanderConnected()) {
     16 		Matrix44ExpanderMessage* te = toExpander();
     17 		te->baseID = _baseID;
     18 		te->position = _position > 0 ? _position + 1 : 0;
     19 	}
     20 }
     21 
     22 struct Matrix44CvmWidget : MutesMatrixExpanderModuleWidget {
     23 	static constexpr int hp = 10;
     24 
     25 	Matrix44CvmWidget(Matrix44Cvm* module) {
     26 		setModule(module);
     27 		box.size = Vec(RACK_GRID_WIDTH * hp, RACK_GRID_HEIGHT);
     28 		setPanel(box.size, "Matrix44Cvm");
     29 		createScrews();
     30 
     31 		// generated by svg_widgets.rb
     32 		auto mute11ParamPosition = Vec(16.75, 61.75);
     33 		auto mute21ParamPosition = Vec(16.75, 94.25);
     34 		auto mute31ParamPosition = Vec(16.75, 126.75);
     35 		auto mute41ParamPosition = Vec(16.75, 159.25);
     36 		auto mute12ParamPosition = Vec(49.25, 61.75);
     37 		auto mute22ParamPosition = Vec(49.25, 94.25);
     38 		auto mute32ParamPosition = Vec(49.25, 126.75);
     39 		auto mute42ParamPosition = Vec(49.25, 159.25);
     40 		auto mute13ParamPosition = Vec(81.75, 61.75);
     41 		auto mute23ParamPosition = Vec(81.75, 94.25);
     42 		auto mute33ParamPosition = Vec(81.75, 126.75);
     43 		auto mute43ParamPosition = Vec(81.75, 159.25);
     44 		auto mute14ParamPosition = Vec(114.25, 61.75);
     45 		auto mute24ParamPosition = Vec(114.25, 94.25);
     46 		auto mute34ParamPosition = Vec(114.25, 126.75);
     47 		auto mute44ParamPosition = Vec(114.25, 159.25);
     48 
     49 		auto cv11InputPosition = Vec(14.25, 217.25);
     50 		auto cv21InputPosition = Vec(14.25, 249.75);
     51 		auto cv31InputPosition = Vec(14.25, 282.25);
     52 		auto cv41InputPosition = Vec(14.25, 314.75);
     53 		auto cv12InputPosition = Vec(46.75, 217.25);
     54 		auto cv22InputPosition = Vec(46.75, 249.75);
     55 		auto cv32InputPosition = Vec(46.75, 282.25);
     56 		auto cv42InputPosition = Vec(46.75, 314.75);
     57 		auto cv13InputPosition = Vec(79.25, 217.25);
     58 		auto cv23InputPosition = Vec(79.25, 249.75);
     59 		auto cv33InputPosition = Vec(79.25, 282.25);
     60 		auto cv43InputPosition = Vec(79.25, 314.75);
     61 		auto cv14InputPosition = Vec(111.75, 217.25);
     62 		auto cv24InputPosition = Vec(111.75, 249.75);
     63 		auto cv34InputPosition = Vec(111.75, 282.25);
     64 		auto cv44InputPosition = Vec(111.75, 314.75);
     65 		// end generated by svg_widgets.rb
     66 
     67 		addParam(createParam<SoloMuteButton>(mute11ParamPosition, module, Matrix44Cvm::MUTE11_PARAM));
     68 		addParam(createParam<SoloMuteButton>(mute21ParamPosition, module, Matrix44Cvm::MUTE21_PARAM));
     69 		addParam(createParam<SoloMuteButton>(mute31ParamPosition, module, Matrix44Cvm::MUTE31_PARAM));
     70 		addParam(createParam<SoloMuteButton>(mute41ParamPosition, module, Matrix44Cvm::MUTE41_PARAM));
     71 		addParam(createParam<SoloMuteButton>(mute12ParamPosition, module, Matrix44Cvm::MUTE12_PARAM));
     72 		addParam(createParam<SoloMuteButton>(mute22ParamPosition, module, Matrix44Cvm::MUTE22_PARAM));
     73 		addParam(createParam<SoloMuteButton>(mute32ParamPosition, module, Matrix44Cvm::MUTE32_PARAM));
     74 		addParam(createParam<SoloMuteButton>(mute42ParamPosition, module, Matrix44Cvm::MUTE42_PARAM));
     75 		addParam(createParam<SoloMuteButton>(mute13ParamPosition, module, Matrix44Cvm::MUTE13_PARAM));
     76 		addParam(createParam<SoloMuteButton>(mute23ParamPosition, module, Matrix44Cvm::MUTE23_PARAM));
     77 		addParam(createParam<SoloMuteButton>(mute33ParamPosition, module, Matrix44Cvm::MUTE33_PARAM));
     78 		addParam(createParam<SoloMuteButton>(mute43ParamPosition, module, Matrix44Cvm::MUTE43_PARAM));
     79 		addParam(createParam<SoloMuteButton>(mute14ParamPosition, module, Matrix44Cvm::MUTE14_PARAM));
     80 		addParam(createParam<SoloMuteButton>(mute24ParamPosition, module, Matrix44Cvm::MUTE24_PARAM));
     81 		addParam(createParam<SoloMuteButton>(mute34ParamPosition, module, Matrix44Cvm::MUTE34_PARAM));
     82 		addParam(createParam<SoloMuteButton>(mute44ParamPosition, module, Matrix44Cvm::MUTE44_PARAM));
     83 
     84 		addInput(createInput<Port24>(cv11InputPosition, module, Matrix44Cvm::CV11_INPUT));
     85 		addInput(createInput<Port24>(cv21InputPosition, module, Matrix44Cvm::CV21_INPUT));
     86 		addInput(createInput<Port24>(cv31InputPosition, module, Matrix44Cvm::CV31_INPUT));
     87 		addInput(createInput<Port24>(cv41InputPosition, module, Matrix44Cvm::CV41_INPUT));
     88 		addInput(createInput<Port24>(cv12InputPosition, module, Matrix44Cvm::CV12_INPUT));
     89 		addInput(createInput<Port24>(cv22InputPosition, module, Matrix44Cvm::CV22_INPUT));
     90 		addInput(createInput<Port24>(cv32InputPosition, module, Matrix44Cvm::CV32_INPUT));
     91 		addInput(createInput<Port24>(cv42InputPosition, module, Matrix44Cvm::CV42_INPUT));
     92 		addInput(createInput<Port24>(cv13InputPosition, module, Matrix44Cvm::CV13_INPUT));
     93 		addInput(createInput<Port24>(cv23InputPosition, module, Matrix44Cvm::CV23_INPUT));
     94 		addInput(createInput<Port24>(cv33InputPosition, module, Matrix44Cvm::CV33_INPUT));
     95 		addInput(createInput<Port24>(cv43InputPosition, module, Matrix44Cvm::CV43_INPUT));
     96 		addInput(createInput<Port24>(cv14InputPosition, module, Matrix44Cvm::CV14_INPUT));
     97 		addInput(createInput<Port24>(cv24InputPosition, module, Matrix44Cvm::CV24_INPUT));
     98 		addInput(createInput<Port24>(cv34InputPosition, module, Matrix44Cvm::CV34_INPUT));
     99 		addInput(createInput<Port24>(cv44InputPosition, module, Matrix44Cvm::CV44_INPUT));
    100 	}
    101 };
    102 
    103 Model* modelMatrix44Cvm = createModel<Matrix44Cvm, Matrix44CvmWidget>("Bogaudio-Matrix44Cvm", "MX44CVM", "CV and mutes expander for MATRIX44", "Mixer", "Expander", "Polyphonic");