BogaudioModules

BogaudioModules for VCV Rack
Log | Files | Refs | README | LICENSE

commit aa49a377cf1cdc285d0ce6e0ecdfbb5d121dba6d
parent 9c09034057fb5c80cd51f95b88471595f9294cc5
Author: Matt Demanett <matt@demanett.net>
Date:   Wed,  1 Jan 2025 10:33:58 -0800

Fix trigger bug present since Rack 2.0; bug manifested when sending poly gates to SWITCH. #243

Diffstat:
Msrc/rack_overrides.cpp | 26++------------------------
Msrc/rack_overrides.hpp | 13++-----------
2 files changed, 4 insertions(+), 35 deletions(-)

diff --git a/src/rack_overrides.cpp b/src/rack_overrides.cpp @@ -3,32 +3,10 @@ using namespace bogaudio; bool Trigger::process(float in) { - if (state) { - if (in <= _lowThreshold) { - state = false; - } - } - else { - if (in >= _highThreshold) { - state = true; - return true; - } - } - return false; + return rack::dsp::SchmittTrigger::process(in, _lowThreshold, _highThreshold); } bool NegativeTrigger::process(float in) { - if (state) { - if (in >= _lowThreshold) { - state = false; - } - } - else { - if (in <= _highThreshold) { - state = true; - return true; - } - } - return false; + return Trigger::process(-in); } diff --git a/src/rack_overrides.hpp b/src/rack_overrides.hpp @@ -21,17 +21,8 @@ struct Trigger : rack::dsp::SchmittTrigger { bool process(float in); }; -struct NegativeTrigger : rack::dsp::SchmittTrigger { - float _highThreshold; - float _lowThreshold; - - NegativeTrigger(float highThreshold = -1.0f, float lowThreshold = -0.1f) - : _highThreshold(highThreshold) - , _lowThreshold(lowThreshold) - { - assert(_highThreshold < _lowThreshold); - reset(); - } +struct NegativeTrigger : Trigger { + NegativeTrigger(float highThreshold = -1.0f, float lowThreshold = -0.1f) : Trigger(-highThreshold, -lowThreshold) {} bool process(float in); };