BogaudioModules

BogaudioModules for VCV Rack
Log | Files | Refs | README | LICENSE

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:
Msrc/PEQ14.cpp | 3++-
Msrc/PEQ14XF.cpp | 12+++++++-----
Msrc/PEQ6.cpp | 3++-
Msrc/PEQ6XF.cpp | 12+++++++-----
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 {