BogaudioModules

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

commit 2e6f0b3ce4a15af359031b4242a696da10cda068
parent 50db8a221902514e4834a2a596e0ed02bf1aa616
Author: Matt Demanett <matt@demanett.net>
Date:   Tue, 16 Jun 2020 23:07:55 -0400

(L)VCF, PEQ: minor fixes to frequency CV handling; increase frequency slew rate slightly.

Diffstat:
Msrc/LVCF.cpp | 8++++----
Msrc/LVCF.hpp | 2+-
Msrc/VCF.cpp | 8++++----
Msrc/VCF.hpp | 2+-
Msrc/parametric_eq.cpp | 2+-
5 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/src/LVCF.cpp b/src/LVCF.cpp @@ -27,9 +27,9 @@ void LVCF::Engine::setParams( ); } -void LVCF::Engine::sampleRateChange(int modulationSteps) { +void LVCF::Engine::sampleRateChange() { _sampleRate = APP->engine->getSampleRate(); - _frequencySL.setParams(_sampleRate, 100.0f / (float)modulationSteps, frequencyToSemitone(maxFrequency - minFrequency)); + _frequencySL.setParams(_sampleRate, 0.5f, frequencyToSemitone(maxFrequency - minFrequency)); _finalHP.setParams(_sampleRate, MultimodeFilter::BUTTERWORTH_TYPE, 2, MultimodeFilter::HIGHPASS_MODE, 80.0f, MultimodeFilter::minQbw, MultimodeFilter::LINEAR_BANDWIDTH_MODE, MultimodeFilter::MINIMUM_DELAY_MODE); } @@ -80,7 +80,7 @@ void LVCF::dataFromJson(json_t* root) { void LVCF::sampleRateChange() { for (int c = 0; c < _channels; ++c) { - _engines[c]->sampleRateChange(_modulationSteps); + _engines[c]->sampleRateChange(); } } @@ -119,12 +119,12 @@ void LVCF::modulateChannel(int c) { float q = _q; float f = clamp(params[FREQUENCY_PARAM].getValue(), 0.0f, 1.0f); - f *= f; if (inputs[FREQUENCY_CV_INPUT].isConnected()) { float fcv = clamp(inputs[FREQUENCY_CV_INPUT].getPolyVoltage(c) / 5.0f, -1.0f, 1.0f); fcv *= clamp(params[FREQUENCY_CV_PARAM].getValue(), -1.0f, 1.0f); f = std::max(0.0f, f + fcv); } + f *= f; f *= maxFrequency; f = clamp(f, minFrequency, maxFrequency); diff --git a/src/LVCF.hpp b/src/LVCF.hpp @@ -54,7 +54,7 @@ struct LVCF : BGModule { float qbw, MultimodeFilter::BandwidthMode bwm ); - void sampleRateChange(int modulationSteps = 100); + void sampleRateChange(); void reset(); float next(float sample); }; diff --git a/src/VCF.cpp b/src/VCF.cpp @@ -49,9 +49,9 @@ void VCF::Engine::setParams( } } -void VCF::Engine::sampleRateChange(int modulationSteps) { +void VCF::Engine::sampleRateChange() { _sampleRate = APP->engine->getSampleRate(); - _frequencySL.setParams(_sampleRate, 100.0f / (float)modulationSteps, frequencyToSemitone(maxFrequency - minFrequency)); + _frequencySL.setParams(_sampleRate, 0.5f, frequencyToSemitone(maxFrequency - minFrequency)); _finalHP.setParams(_sampleRate, MultimodeFilter::BUTTERWORTH_TYPE, 2, MultimodeFilter::HIGHPASS_MODE, 80.0f, MultimodeFilter::minQbw, MultimodeFilter::LINEAR_BANDWIDTH_MODE, MultimodeFilter::MINIMUM_DELAY_MODE); for (int i = 0; i < nFilters; ++i) { _gainSLs[i].setParams(_sampleRate, 50.0f, 1.0f); @@ -105,7 +105,7 @@ void VCF::dataFromJson(json_t* root) { void VCF::sampleRateChange() { for (int c = 0; c < _channels; ++c) { - _engines[c]->sampleRateChange(_modulationSteps); + _engines[c]->sampleRateChange(); } } @@ -151,12 +151,12 @@ void VCF::modulateChannel(int c) { } float f = clamp(params[FREQUENCY_PARAM].getValue(), 0.0f, 1.0f); - f *= f; if (inputs[FREQUENCY_CV_INPUT].isConnected()) { float fcv = clamp(inputs[FREQUENCY_CV_INPUT].getPolyVoltage(c) / 5.0f, -1.0f, 1.0f); fcv *= clamp(params[FREQUENCY_CV_PARAM].getValue(), -1.0f, 1.0f); f = std::max(0.0f, f + fcv); } + f *= f; f *= maxFrequency; if (inputs[PITCH_INPUT].isConnected() || inputs[FM_INPUT].isConnected()) { float fm = inputs[FM_INPUT].getPolyVoltage(c); diff --git a/src/VCF.hpp b/src/VCF.hpp @@ -59,7 +59,7 @@ struct VCF : BGModule { MultimodeFilter::BandwidthMode bwm ); void reset(); - void sampleRateChange(int modulationSteps = 100); + void sampleRateChange(); float next(float sample); }; diff --git a/src/parametric_eq.cpp b/src/parametric_eq.cpp @@ -9,7 +9,7 @@ constexpr float PEQChannel::minFrequency; void PEQChannel::setSampleRate(float sampleRate) { _sampleRate = sampleRate; _levelSL.setParams(sampleRate, 0.05f, maxDecibels - minDecibels); - _frequencySL.setParams(sampleRate, 1.0f, frequencyToSemitone(maxFrequency - minFrequency)); + _frequencySL.setParams(sampleRate, 0.5f, frequencyToSemitone(maxFrequency - minFrequency)); _bandwidthSL.setParams(sampleRate, 0.05f, MultimodeFilter::maxQbw - MultimodeFilter::minQbw); _rms.setSampleRate(sampleRate); }