Browse Source

SHASR: Refactor algorithm to not read output values.

tags/v2.6.0
Andrew Belt 1 year ago
parent
commit
e7567e5f27
1 changed files with 12 additions and 5 deletions
  1. +12
    -5
      src/SHASR.cpp

+ 12
- 5
src/SHASR.cpp View File

@@ -59,33 +59,40 @@ struct SHASR : Module {
bool push = pushTrigger.process(params[PUSH_PARAM].getValue());
bool clear = clearTrigger.process(params[CLEAR_PARAM].getValue());
bool lastTrig = false;
float lastValue = 0.f;

for (int i = 0; i < 8; i++) {
// Check trigger if connected
if (inputs[TRIG_INPUTS + i].isConnected()) {
lastTrig = triggers[i].process(inputs[TRIG_INPUTS + i].getVoltage(), 0.1f, 1.f);
}
// Override first trigger if pushed
if (i == 0 && push) {
lastTrig = true;
}

// Get sample value if triggered
float sample = 0.f;
if (lastTrig) {
float sample = 0.f;
if (i == 0) {
if (randomize) {
sample = random::get<float>() * randomGain + randomOffset;
}
}
else {
sample = outputs[SH_OUTPUTS + i - 1].getVoltage();
sample = lastValue;
}
}

lastValue = values[i];

if (lastTrig) {
values[i] = inputs[IN_INPUTS + i].getNormalVoltage(sample);
}
if (clear) {
values[i] = 0.f;
}
}

// Set outputs
for (int i = 0; i < 8; i++) {
outputs[SH_OUTPUTS + i].setVoltage(values[i]);
}



Loading…
Cancel
Save