commit ab33edb8398ce0b286ed709cf8dd820729378ee2
parent 89e04b9ae354b665cf6831f03c92597b5d9e61aa
Author: Matt Demanett <matt@demanett.net>
Date: Mon, 12 Apr 2021 00:13:23 -0400
PEQ14/6: fix active check to account for expanders. #175
Diffstat:
4 files changed, 18 insertions(+), 12 deletions(-)
diff --git a/src/PEQ14.cpp b/src/PEQ14.cpp
@@ -26,7 +26,8 @@ bool PEQ14::active() {
outputs[OUT11_OUTPUT].isConnected() ||
outputs[OUT12_OUTPUT].isConnected() ||
outputs[OUT13_OUTPUT].isConnected() ||
- outputs[OUT14_OUTPUT].isConnected();
+ outputs[OUT14_OUTPUT].isConnected() ||
+ expanderConnected();
}
int PEQ14::channels() {
diff --git a/src/PEQ14XF.cpp b/src/PEQ14XF.cpp
@@ -50,11 +50,13 @@ void PEQ14XF::processChannel(const ProcessArgs& args, int c) {
if (_baseMessage && _baseMessage->valid) {
Engine& e = *_engines[c];
for (int i = 0; i < 14; ++i) {
- float out = e.efs[i].next(_baseMessage->outs[c][i]);
- out = scaleEF(out, _baseMessage->frequencies[c][i], _baseMessage->bandwidths[c]);
- out = e.gain.next(out);
- out = _saturator.next(out);
- outputs[EF1_OUTPUT + i].setVoltage(out, c);
+ if (outputs[EF1_OUTPUT + i].isConnected()) {
+ float out = e.efs[i].next(_baseMessage->outs[c][i]);
+ out = scaleEF(out, _baseMessage->frequencies[c][i], _baseMessage->bandwidths[c]);
+ out = e.gain.next(out);
+ out = _saturator.next(out);
+ outputs[EF1_OUTPUT + i].setVoltage(out, c);
+ }
}
}
else {
diff --git a/src/PEQ6.cpp b/src/PEQ6.cpp
@@ -16,7 +16,8 @@ bool PEQ6::active() {
outputs[OUT3_OUTPUT].isConnected() ||
outputs[OUT4_OUTPUT].isConnected() ||
outputs[OUT5_OUTPUT].isConnected() ||
- outputs[OUT6_OUTPUT].isConnected();
+ outputs[OUT6_OUTPUT].isConnected() ||
+ expanderConnected();
}
int PEQ6::channels() {
diff --git a/src/PEQ6XF.cpp b/src/PEQ6XF.cpp
@@ -40,11 +40,13 @@ void PEQ6XF::processChannel(const ProcessArgs& args, int c) {
if (_baseMessage) {
Engine& e = *_engines[c];
for (int i = 0; i < 6; ++i) {
- float out = e.efs[i].next(_baseMessage->outs[c][i]);
- out = scaleEF(out, _baseMessage->frequencies[c][i], _baseMessage->bandwidths[c]);
- out = _gain.next(out);
- out = _saturator.next(out);
- outputs[EF1_OUTPUT + i].setVoltage(out, c);
+ if (outputs[EF1_OUTPUT + i].isConnected()) {
+ float out = e.efs[i].next(_baseMessage->outs[c][i]);
+ out = scaleEF(out, _baseMessage->frequencies[c][i], _baseMessage->bandwidths[c]);
+ out = _gain.next(out);
+ out = _saturator.next(out);
+ outputs[EF1_OUTPUT + i].setVoltage(out, c);
+ }
}
}
else {