Browse Source

Update SchmittTrigger calls

tags/v0.6.0
Andrew Belt 7 years ago
parent
commit
9a6f3d9b77
4 changed files with 7 additions and 13 deletions
  1. +1
    -3
      src/ADSR.cpp
  2. +3
    -4
      src/LFO.cpp
  3. +1
    -2
      src/Scope.cpp
  4. +2
    -4
      src/SequentialSwitch.cpp

+ 1
- 3
src/ADSR.cpp View File

@@ -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;
};



+ 3
- 4
src/LFO.cpp View File

@@ -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;
}
}


+ 1
- 2
src/Scope.cpp View File

@@ -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;
}



+ 2
- 4
src/SequentialSwitch.cpp View File

@@ -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;


Loading…
Cancel
Save