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.

93 lines
4.1KB

  1. #include "../controller/Seq8.hpp"
  2. #include "../../deps/rack-components/jacks.hpp"
  3. #include "../../deps/rack-components/screws.hpp"
  4. #include "knobs.hpp"
  5. namespace rack_plugin_SynthKit {
  6. struct Seq8Widget : ModuleWidget {
  7. Seq8Widget(Seq8Module *module);
  8. };
  9. Seq8Widget::Seq8Widget(Seq8Module *module) : ModuleWidget(module) {
  10. box.size = Vec(5 * RACK_GRID_WIDTH, RACK_GRID_HEIGHT);
  11. {
  12. SVGPanel *panel = new SVGPanel();
  13. panel->box.size = box.size;
  14. panel->setBackground(SVG::load(assetPlugin(plugin, "res/Seq8.svg")));
  15. addChild(panel);
  16. }
  17. addChild(Widget::create<JLHHexScrew>(Vec(1, 1)));
  18. addChild(Widget::create<JLHHexScrew>(Vec(61, 1)));
  19. addChild(Widget::create<JLHHexScrew>(Vec(1, 366)));
  20. addChild(Widget::create<JLHHexScrew>(Vec(61, 366)));
  21. addInput(Port::create<RCJackSmallLight>(Vec(25.23, 73), Port::INPUT, module,
  22. Seq8Module::CLOCK_INPUT));
  23. addOutput(Port::create<RCJackSmallDark>(Vec(25.23, 305), Port::OUTPUT, module,
  24. Seq8Module::GATE_OUTPUT));
  25. addParam(ParamWidget::create<Knob19Snap>(
  26. Vec(15, 118), module, Seq8Module::OCTAVE1_PARAM, 0.0, 8.0, 4.0));
  27. addParam(ParamWidget::create<Knob19Snap>(
  28. Vec(15, 139), module, Seq8Module::OCTAVE2_PARAM, 0.0, 8.0, 4.0));
  29. addParam(ParamWidget::create<Knob19Snap>(
  30. Vec(15, 160), module, Seq8Module::OCTAVE3_PARAM, 0.0, 8.0, 4.0));
  31. addParam(ParamWidget::create<Knob19Snap>(
  32. Vec(15, 181), module, Seq8Module::OCTAVE4_PARAM, 0.0, 8.0, 4.0));
  33. addParam(ParamWidget::create<Knob19Snap>(
  34. Vec(15, 202), module, Seq8Module::OCTAVE5_PARAM, 0.0, 8.0, 4.0));
  35. addParam(ParamWidget::create<Knob19Snap>(
  36. Vec(15, 223), module, Seq8Module::OCTAVE6_PARAM, 0.0, 8.0, 4.0));
  37. addParam(ParamWidget::create<Knob19Snap>(
  38. Vec(15, 244), module, Seq8Module::OCTAVE7_PARAM, 0.0, 8.0, 4.0));
  39. addParam(ParamWidget::create<Knob19Snap>(
  40. Vec(15, 265), module, Seq8Module::OCTAVE8_PARAM, 0.0, 8.0, 4.0));
  41. addParam(ParamWidget::create<Knob19Snap>(
  42. Vec(41, 118), module, Seq8Module::SEQ1_PARAM, 0.0, 11.0, 5.0));
  43. addParam(ParamWidget::create<Knob19Snap>(
  44. Vec(41, 139), module, Seq8Module::SEQ2_PARAM, 0.0, 11.0, 5.0));
  45. addParam(ParamWidget::create<Knob19Snap>(
  46. Vec(41, 160), module, Seq8Module::SEQ3_PARAM, 0.0, 11.0, 5.0));
  47. addParam(ParamWidget::create<Knob19Snap>(
  48. Vec(41, 181), module, Seq8Module::SEQ4_PARAM, 0.0, 11.0, 5.0));
  49. addParam(ParamWidget::create<Knob19Snap>(
  50. Vec(41, 202), module, Seq8Module::SEQ5_PARAM, 0.0, 11.0, 5.0));
  51. addParam(ParamWidget::create<Knob19Snap>(
  52. Vec(41, 223), module, Seq8Module::SEQ6_PARAM, 0.0, 11.0, 5.0));
  53. addParam(ParamWidget::create<Knob19Snap>(
  54. Vec(41, 244), module, Seq8Module::SEQ7_PARAM, 0.0, 11.0, 5.0));
  55. addParam(ParamWidget::create<Knob19Snap>(
  56. Vec(41, 265), module, Seq8Module::SEQ8_PARAM, 0.0, 11.0, 5.0));
  57. addChild(ModuleLightWidget::create<SmallLight<GreenLight>>(
  58. Vec(66.5, 124.28), module, Seq8Module::FIRST_LED));
  59. addChild(ModuleLightWidget::create<SmallLight<GreenLight>>(
  60. Vec(66.5, 145.28), module, Seq8Module::SECOND_LED));
  61. addChild(ModuleLightWidget::create<SmallLight<GreenLight>>(
  62. Vec(66.5, 166.28), module, Seq8Module::THIRD_LED));
  63. addChild(ModuleLightWidget::create<SmallLight<GreenLight>>(
  64. Vec(66.5, 187.28), module, Seq8Module::FOURTH_LED));
  65. addChild(ModuleLightWidget::create<SmallLight<GreenLight>>(
  66. Vec(66.5, 208.28), module, Seq8Module::FIFTH_LED));
  67. addChild(ModuleLightWidget::create<SmallLight<GreenLight>>(
  68. Vec(66.5, 229.28), module, Seq8Module::SIXTH_LED));
  69. addChild(ModuleLightWidget::create<SmallLight<GreenLight>>(
  70. Vec(66.5, 250.28), module, Seq8Module::SEVENTH_LED));
  71. addChild(ModuleLightWidget::create<SmallLight<GreenLight>>(
  72. Vec(66.5, 271.28), module, Seq8Module::EIGHTH_LED));
  73. }
  74. } // namespace rack_plugin_SynthKit
  75. using namespace rack_plugin_SynthKit;
  76. RACK_PLUGIN_MODEL_INIT(SynthKit, Seq8) {
  77. Model *modelSeq8 = Model::create<Seq8Module, Seq8Widget>(
  78. "SynthKit", "8-Step Sequencer", "8-Step Sequencer", SEQUENCER_TAG);
  79. return modelSeq8;
  80. }