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.

55 lines
2.0KB

  1. #include "Erratic.hpp"
  2. #include "QuadMPEToCV.hpp"
  3. QuadMPEToCVWidget::QuadMPEToCVWidget(QuadMPEToCV *module):ModuleWidget(module) {
  4. // QuadMPEToCV *module = new QuadMPEToCV();
  5. // setModule(module);
  6. box.size = Vec(16 * RACK_GRID_WIDTH, RACK_GRID_HEIGHT);
  7. Vec pos = Vec();
  8. QuadMPEMidiWidget *quadmpemidiWidget ;
  9. {
  10. SVGPanel *panel = new SVGPanel();
  11. panel->box.size = box.size;
  12. panel->setBackground(SVG::load(assetPlugin(plugin, "res/QuadMPE.svg")));
  13. addChild(panel);
  14. }
  15. float margin = 5;
  16. float yPos = margin;
  17. addChild(Widget::create<ScrewSilver>(Vec(15, 0)));
  18. addChild(Widget::create<ScrewSilver>(Vec(box.size.x - 30, 0)));
  19. addChild(Widget::create<ScrewSilver>(Vec(15, 365)));
  20. addChild(Widget::create<ScrewSilver>(Vec(box.size.x - 30, 365)));
  21. quadmpemidiWidget = Widget::create<QuadMPEMidiWidget>(mm2px(Vec(5.41891, 11)));
  22. quadmpemidiWidget->initialize(module);
  23. quadmpemidiWidget->box.size = mm2px(Vec(60, 28));
  24. // box.size = mm2px(Vec(44, 28));
  25. quadmpemidiWidget->midiIO = &module->midiInput;
  26. addChild(quadmpemidiWidget);
  27. pos = quadmpemidiWidget->box.getBottomLeft();
  28. yPos = quadmpemidiWidget->box.pos.y + quadmpemidiWidget->box.size.y + 6*margin ;
  29. std::string labels[QuadMPEToCV::NUM_OUTPUTS] = {"1V/oct", "Gate", "Velocity", "Pressure", "Y axis"} ;
  30. for (int i = 0; i < 5 ; i++) {
  31. addOutput(Port::create<PJ3410Port>(Vec(2 * (40), yPos - 5), Port::OUTPUT, module, i * 4));
  32. addOutput(Port::create<PJ3410Port>(Vec(3 * (40), yPos - 5), Port::OUTPUT, module, i * 4 + 1));
  33. addOutput(Port::create<PJ3410Port>(Vec(4 * (40), yPos - 5), Port::OUTPUT, module, i * 4 + 2));
  34. addOutput(Port::create<PJ3410Port>(Vec(5 * (40), yPos - 5), Port::OUTPUT, module, i * 4 + 3));
  35. yPos += 40;
  36. }
  37. // Our Pedal output
  38. addOutput(Port::create<PJ3410Port>(Vec(2 * (40), yPos - 5), Port::OUTPUT, module, 20));
  39. };
  40. RACK_PLUGIN_MODEL_INIT(ErraticInstruments, QuadMPEToCV) {
  41. Model *modelQuadMPEToCV = Model::create<QuadMPEToCV, QuadMPEToCVWidget>("Erratic Instruments", "QuadMPEToCV", "Quad MPE To CV", MIDI_TAG, EXTERNAL_TAG);
  42. return modelQuadMPEToCV;
  43. }