#pragma once #include "bogaudio.hpp" #include "dsp/noise.hpp" using namespace bogaudio::dsp; extern Model* modelSampleHold; namespace bogaudio { struct SampleHold : Module { enum ParamIds { TRIGGER1_PARAM, TRIGGER2_PARAM, TRACK1_PARAM, TRACK2_PARAM, NUM_PARAMS }; enum InputsIds { TRIGGER1_INPUT, IN1_INPUT, TRIGGER2_INPUT, IN2_INPUT, NUM_INPUTS }; enum OutputIds { OUT1_OUTPUT, OUT2_OUTPUT, NUM_OUTPUTS }; enum LightsIds { TRACK1_LIGHT, TRACK2_LIGHT, NUM_LIGHTS }; Trigger _trigger1, _trigger2; float _value1, _value2; WhiteNoiseGenerator _noise; SampleHold() : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS) , _value1(0.0f) , _value2(0.0f) { onReset(); } void onReset() override; void step() override; }; } // namespace bogaudio