From f2bbf4f746aba77f90e7cbf38097c1dc24eb7db9 Mon Sep 17 00:00:00 2001 From: Andrew Belt Date: Fri, 26 Nov 2021 07:27:23 -0500 Subject: [PATCH] Switch back to run trigger input and pulse output instead of gates. --- src/SEQ3.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/SEQ3.cpp b/src/SEQ3.cpp index f9988ff..95d9a65 100644 --- a/src/SEQ3.cpp +++ b/src/SEQ3.cpp @@ -50,9 +50,11 @@ struct SEQ3 : Module { dsp::BooleanTrigger resetButtonTrigger; dsp::BooleanTrigger gateTriggers[8]; + dsp::SchmittTrigger runTrigger; dsp::SchmittTrigger clockTrigger; dsp::SchmittTrigger resetTrigger; + dsp::PulseGenerator runPulse; dsp::PulseGenerator clockPulse; dsp::PulseGenerator resetPulse; @@ -149,10 +151,11 @@ struct SEQ3 : Module { // Use bitwise OR "|" to always evaluate both expressions if (runButtonTrigger.process(params[RUN_PARAM].getValue())) { running ^= true; + runPulse.trigger(1e-3f); } - // Run input overrides button - if (inputs[RUN_INPUT].isConnected()) { - running = (inputs[RUN_INPUT].getVoltage() >= 2.f); + if (runTrigger.process(inputs[RUN_INPUT].getVoltage(), 0.1f, 2.f)) { + running ^= true; + runPulse.trigger(1e-3f); } // Reset @@ -227,7 +230,7 @@ struct SEQ3 : Module { outputs[STEPS_OUTPUT].setVoltage((numSteps - 1) * 1.f); outputs[CLOCK_OUTPUT].setVoltage(clockGate ? 10.f : 0.f); - outputs[RUN_OUTPUT].setVoltage(running ? 10.f : 0.f); + outputs[RUN_OUTPUT].setVoltage(runPulse.process(args.sampleTime) ? 10.f : 0.f); outputs[RESET_OUTPUT].setVoltage(resetGate ? 10.f : 0.f); lights[CLOCK_LIGHT].setSmoothBrightness(clockGate, args.sampleTime);