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.

58 lines
805B

  1. #pragma once
  2. #include "bogaudio.hpp"
  3. #include "dsp/noise.hpp"
  4. using namespace bogaudio::dsp;
  5. extern Model* modelSampleHold;
  6. namespace bogaudio {
  7. struct SampleHold : Module {
  8. enum ParamIds {
  9. TRIGGER1_PARAM,
  10. TRIGGER2_PARAM,
  11. TRACK1_PARAM,
  12. TRACK2_PARAM,
  13. NUM_PARAMS
  14. };
  15. enum InputsIds {
  16. TRIGGER1_INPUT,
  17. IN1_INPUT,
  18. TRIGGER2_INPUT,
  19. IN2_INPUT,
  20. NUM_INPUTS
  21. };
  22. enum OutputIds {
  23. OUT1_OUTPUT,
  24. OUT2_OUTPUT,
  25. NUM_OUTPUTS
  26. };
  27. enum LightsIds {
  28. TRACK1_LIGHT,
  29. TRACK2_LIGHT,
  30. NUM_LIGHTS
  31. };
  32. Trigger _trigger1, _trigger2;
  33. float _value1, _value2;
  34. WhiteNoiseGenerator _noise;
  35. SampleHold()
  36. : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS)
  37. , _value1(0.0f)
  38. , _value2(0.0f)
  39. {
  40. onReset();
  41. }
  42. void onReset() override;
  43. void step() override;
  44. };
  45. } // namespace bogaudio