BogaudioModules

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

commit 2d23ec63d4043c1f883cdd690b4dfc436c5192d6
parent 9e186334a1ea8b3156d8d86632fe173112a295df
Author: Matt Demanett <matt@demanett.net>
Date:   Tue, 22 Sep 2020 23:44:52 -0400

RANALYZER: fix run v flush.

Diffstat:
Msrc/Ranalyzer.cpp | 18+++++++++---------
Msrc/Ranalyzer.hpp | 3++-
2 files changed, 11 insertions(+), 10 deletions(-)

diff --git a/src/Ranalyzer.cpp b/src/Ranalyzer.cpp @@ -158,10 +158,10 @@ void Ranalyzer::processAll(const ProcessArgs& args) { } bool triggered = _trigger.process(params[TRIGGER_PARAM].getValue()*5.0f + inputs[TRIGGER_INPUT].getVoltage()); - if (!_run && !_flush) { + if (!_run) { if (triggered || (!_initialDelay && _loop) || (maybeTriggerOnLoad && _triggerOnLoad)) { _run = true; - _bufferCount = _currentReturnSampleDelay = _returnSampleDelay; + _outBufferCount = _currentReturnSampleDelay = _returnSampleDelay; _chirp.reset(); _cycleN = _core.size(); _cycleI = 0; @@ -184,8 +184,8 @@ void Ranalyzer::processAll(const ProcessArgs& args) { } _inputBuffer.push(out); - if (_bufferCount > 0) { - --_bufferCount; + if (_outBufferCount > 0) { + --_outBufferCount; } else { _core.stepChannelSample(0, _inputBuffer.value(_currentReturnSampleDelay - 1)); @@ -196,14 +196,14 @@ void Ranalyzer::processAll(const ProcessArgs& args) { if (_cycleI >= _cycleN) { _run = false; _flush = true; - _bufferCount = _currentReturnSampleDelay; + _analysisBufferCount = _currentReturnSampleDelay; } } - else if (_flush) { - _core.stepChannelSample(0, _inputBuffer.value((_run ? _currentReturnSampleDelay : _bufferCount) - 1)); + if (_flush) { + _core.stepChannelSample(0, _inputBuffer.value((_run ? _currentReturnSampleDelay : _analysisBufferCount) - 1)); _core.stepChannelSample(1, inputs[RETURN_INPUT].getVoltage()); - --_bufferCount; - if (_bufferCount < 1) { + --_analysisBufferCount; + if (_analysisBufferCount < 1) { _flush = false; _eocPulseGen.trigger(0.001f); } diff --git a/src/Ranalyzer.hpp b/src/Ranalyzer.hpp @@ -98,7 +98,8 @@ struct Ranalyzer : AnalyzerBase { bool _flush = false; int _returnSampleDelay = 2; int _currentReturnSampleDelay = 0; - int _bufferCount = 0; + int _outBufferCount = 0; + int _analysisBufferCount = 0; HistoryBuffer<float> _inputBuffer; int _cycleI = 0; int _cycleN = 0;