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.

54 lines
795B

  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. NUM_PARAMS
  12. };
  13. enum InputIds {
  14. TRIGGER1_INPUT,
  15. IN1_INPUT,
  16. TRIGGER2_INPUT,
  17. IN2_INPUT,
  18. NUM_INPUTS
  19. };
  20. enum OutputIds {
  21. OUT1_OUTPUT,
  22. OUT2_OUTPUT,
  23. NUM_OUTPUTS
  24. };
  25. SchmittTrigger _trigger1, _trigger2;
  26. float _value1, _value2;
  27. WhiteNoiseGenerator _noise;
  28. SampleHold() : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS) {
  29. onReset();
  30. }
  31. void onReset() override;
  32. void step() override;
  33. void step(
  34. Param& triggerParam,
  35. Input& triggerInput,
  36. Input& in,
  37. Output& out,
  38. SchmittTrigger& trigger,
  39. float& value
  40. );
  41. };
  42. } // namespace bogaudio