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.

77 lines
2.7KB

  1. #include <stdint.h>
  2. #include "../deps/SynthDevKit/src/CV.hpp"
  3. #include "DrumKit.hpp"
  4. #include "DrumModule.hpp"
  5. #include "closedhh.h"
  6. namespace rack_plugin_DrumKit {
  7. struct ClosedHHModule : DrumModule {
  8. void setupSamples( ) override;
  9. };
  10. void ClosedHHModule::setupSamples( ) {
  11. samples[0] = { (float *)closedhh1, closedhh1_len };
  12. samples[1] = { (float *)closedhh2, closedhh2_len };
  13. samples[2] = { (float *)closedhh3, closedhh3_len };
  14. samples[3] = { (float *)closedhh4, closedhh4_len };
  15. samples[4] = { (float *)closedhh5, closedhh5_len };
  16. samples[5] = { (float *)closedhh6, closedhh6_len };
  17. samples[6] = { (float *)closedhh7, closedhh7_len };
  18. samples[7] = { (float *)closedhh8, closedhh8_len };
  19. samples[8] = { (float *)closedhh9, closedhh9_len };
  20. samples[9] = { (float *)closedhh10, closedhh10_len };
  21. samples[10] = { (float *)closedhh11, closedhh11_len };
  22. samples[11] = { (float *)closedhh12, closedhh12_len };
  23. samples[12] = { (float *)closedhh13, closedhh13_len };
  24. samples[13] = { (float *)closedhh14, closedhh14_len };
  25. samples[14] = { (float *)closedhh15, closedhh15_len };
  26. numSamples = 15;
  27. }
  28. struct ClosedHHWidget : ModuleWidget {
  29. ClosedHHWidget(ClosedHHModule *module);
  30. };
  31. ClosedHHWidget::ClosedHHWidget(ClosedHHModule *module) : ModuleWidget(module) {
  32. box.size = Vec(3 * RACK_GRID_WIDTH, RACK_GRID_HEIGHT);
  33. {
  34. SVGPanel *panel = new SVGPanel( );
  35. panel->box.size = box.size;
  36. panel->setBackground(SVG::load(assetPlugin(plugin, "res/ClosedHH.svg")));
  37. addChild(panel);
  38. }
  39. addChild(Widget::create<ScrewSilver>(Vec(RACK_GRID_WIDTH, 0)));
  40. addChild(Widget::create<ScrewSilver>(
  41. Vec(RACK_GRID_WIDTH, RACK_GRID_HEIGHT - RACK_GRID_WIDTH)));
  42. addInput(Port::create<PJ301MPort>(Vec(10, 45), Port::INPUT, module,
  43. ClosedHHModule::CLOCK1_INPUT));
  44. addParam(ParamWidget::create<RoundBlackSnapKnob>(
  45. Vec(8, 92), module, ClosedHHModule::DRUM1_PARAM, 1.0, 15.0, 8.0));
  46. addOutput(Port::create<PJ301MPort>(Vec(10, 149), Port::OUTPUT, module,
  47. ClosedHHModule::AUDIO1_OUTPUT));
  48. addInput(Port::create<PJ301MPort>(Vec(10, 205), Port::INPUT, module,
  49. ClosedHHModule::CLOCK2_INPUT));
  50. addParam(ParamWidget::create<RoundBlackSnapKnob>(
  51. Vec(8, 252), module, ClosedHHModule::DRUM2_PARAM, 1.0, 15.0, 8.0));
  52. addOutput(Port::create<PJ301MPort>(Vec(10, 308), Port::OUTPUT, module,
  53. ClosedHHModule::AUDIO2_OUTPUT));
  54. }
  55. } // namespace rack_plugin_DrumKit
  56. using namespace rack_plugin_DrumKit;
  57. RACK_PLUGIN_MODEL_INIT(DrumKit, ClosedHH) {
  58. Model *modelClosedHH = Model::create<ClosedHHModule, ClosedHHWidget>("DrumKit", "Closed HiHat", "Closed HiHat", DRUM_TAG);
  59. return modelClosedHH;
  60. }