diff --git a/src/ADSR.cpp b/src/ADSR.cpp index 89710f9..c30328b 100644 --- a/src/ADSR.cpp +++ b/src/ADSR.cpp @@ -35,9 +35,7 @@ struct ADSR : Module { float env = 0.0f; SchmittTrigger trigger; - ADSR() : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS) { - trigger.setThresholds(0.0f, 1.0f); - } + ADSR() : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS) {} void step() override; }; diff --git a/src/LFO.cpp b/src/LFO.cpp index c2227c7..e33030a 100644 --- a/src/LFO.cpp +++ b/src/LFO.cpp @@ -9,9 +9,8 @@ struct LowFrequencyOscillator { bool offset = false; bool invert = false; SchmittTrigger resetTrigger; - LowFrequencyOscillator() { - resetTrigger.setThresholds(0.0f, 0.01f); - } + + LowFrequencyOscillator() {} void setPitch(float pitch) { pitch = fminf(pitch, 8.0f); freq = powf(2.0f, pitch); @@ -21,7 +20,7 @@ struct LowFrequencyOscillator { pw = clamp(pw_, pwMin, 1.0f - pwMin); } void setReset(float reset) { - if (resetTrigger.process(reset)) { + if (resetTrigger.process(reset / 0.01f)) { phase = 0.0f; } } diff --git a/src/Scope.cpp b/src/Scope.cpp index 4c3dcca..36b7977 100644 --- a/src/Scope.cpp +++ b/src/Scope.cpp @@ -116,12 +116,11 @@ void Scope::step() { frameIndex++; // Must go below 0.1fV to trigger - resetTrigger.setThresholds(params[TRIG_PARAM].value - 0.1f, params[TRIG_PARAM].value); float gate = external ? inputs[TRIG_INPUT].value : inputs[X_INPUT].value; // Reset if triggered float holdTime = 0.1f; - if (resetTrigger.process(gate) || (frameIndex >= engineGetSampleRate() * holdTime)) { + if (resetTrigger.process(rescale(gate, params[TRIG_PARAM].value - 0.1f, params[TRIG_PARAM].value, 0.f, 1.f)) || (frameIndex >= engineGetSampleRate() * holdTime)) { bufferIndex = 0; frameIndex = 0; return; } diff --git a/src/SequentialSwitch.cpp b/src/SequentialSwitch.cpp index 3161da4..d9f0d9f 100644 --- a/src/SequentialSwitch.cpp +++ b/src/SequentialSwitch.cpp @@ -30,8 +30,6 @@ struct SequentialSwitch : Module { SlewLimiter channelFilter[4]; SequentialSwitch() : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS) { - clockTrigger.setThresholds(0.0f, 2.0f); - resetTrigger.setThresholds(0.0f, 2.0f); for (int i = 0; i < 4; i++) { channelFilter[i].rise = 0.01f; channelFilter[i].fall = 0.01f; @@ -40,10 +38,10 @@ struct SequentialSwitch : Module { void step() override { // Determine current channel - if (clockTrigger.process(inputs[CLOCK_INPUT].value)) { + if (clockTrigger.process(inputs[CLOCK_INPUT].value / 2.f)) { channel++; } - if (resetTrigger.process(inputs[RESET_INPUT].value)) { + if (resetTrigger.process(inputs[RESET_INPUT].value / 2.f)) { channel = 0; } int channels = 4 - (int) params[CHANNELS_PARAM].value;