BogaudioModules

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

commit b6655c82ba3c3f747ad2d7f238ba4703629532f5
parent 3e8d3b97a9c6e59a642efbad6e02c081ca591f74
Author: Matt Demanett <matt@demanett.net>
Date:   Mon, 17 Feb 2020 22:35:43 -0500

Filters CV fixes.

Diffstat:
Mres-src/FFB-src.svg | 10+++++-----
Mres/FFB.svg | 0
Msrc/FFB.cpp | 4++--
Msrc/FFB.hpp | 2+-
Msrc/LVCF.cpp | 4++--
Msrc/VCF.cpp | 4++--
6 files changed, 12 insertions(+), 12 deletions(-)

diff --git a/res-src/FFB-src.svg b/res-src/FFB-src.svg @@ -55,14 +55,14 @@ </g> </symbol> - <symbol id="knobguide-centertick" viewBox="0 0 40px 40px"> + <symbol id="knobguide-maxtick" viewBox="0 0 40px 40px"> <g transform="translate(20 20)"> - <g transform="rotate(-90) translate(10 0)"> + <g transform="rotate(60) translate(10 0)"> <polyline points="0,0 4,0" stroke-width="1" stroke="#333" /> </g> - <path d="M 0 -12.5 A 12.5 12.5 0 0 1 12.5 0" stroke="#333" stroke-width="0.5" stroke-linecap="round" fill="none" transform="rotate(20)" /> + <path d="M 0 -12.5 A 12.5 12.5 0 0 1 12.5 0" stroke="#333" stroke-width="0.5" stroke-linecap="round" fill="none" transform="rotate(0)" /> <path d="M 0 -12.5 A 12.5 12.5 0 0 1 12.5 0" stroke="#333" stroke-width="0.5" stroke-linecap="round" fill="none" transform="rotate(43)" /> - <path d="M 0 -12.5 A 12.5 12.5 0 0 0 -12.5 0" stroke="#333" stroke-width="0.5" stroke-linecap="round" fill="none" transform="rotate(-20)" /> + <path d="M 0 -12.5 A 12.5 12.5 0 0 0 -12.5 0" stroke="#333" stroke-width="0.5" stroke-linecap="round" fill="none" transform="rotate(0)" /> <path d="M 0 -12.5 A 12.5 12.5 0 0 0 -12.5 0" stroke="#333" stroke-width="0.5" stroke-linecap="round" fill="none" transform="rotate(-43)" /> </g> </symbol> @@ -185,7 +185,7 @@ <g transform="translate(41 228)"> <text font-size="6pt" letter-spacing="2px" transform="translate(12.5 6)">CV</text> <use id="CV_PARAM" xlink:href="#knob-smallest" transform="translate(11 18.5)" /> - <use xlink:href="#knobguide-centertick" transform="translate(-1 6.5)" /> + <use xlink:href="#knobguide-maxtick" transform="translate(-1 6.5)" /> </g> <g transform="translate(80.5 228)"> <text font-size="6pt" letter-spacing="2px" transform="translate(12.5 6)">HP</text> diff --git a/res/FFB.svg b/res/FFB.svg Binary files differ. diff --git a/src/FFB.cpp b/src/FFB.cpp @@ -4,7 +4,7 @@ void FFB::Engine::sampleRateChange() { float sr = APP->engine->getSampleRate(); for (int i = 0; i < 14; i++) { - _slews[i].setParams(sr, 5.0f, 1.0f); + _slews[i].setParams(sr, 1.0f, 1.0f); } auto bp = [this, sr](int i, float cutoff) { @@ -69,7 +69,7 @@ void FFB::modulateChannel(int c) { float cv = 1.0f; if (inputs[CV_INPUT].isConnected()) { cv = clamp(inputs[CV_INPUT].getPolyVoltage(c) / 10.0f, 0.0f, 1.0f); - cv *= clamp(params[CV_PARAM].getValue(), -1.0f, 1.0f); + cv *= clamp(params[CV_PARAM].getValue(), 0.0f, 1.0f); } for (int i = 0; i < 14; ++i) { diff --git a/src/FFB.hpp b/src/FFB.hpp @@ -91,7 +91,7 @@ struct FFB : BGModule { configParam<AmpliferParamQuantity>(BAND_8_PARAM, 0.0f, 1.0f, 1.0f, "Band 8 level"); configParam<AmpliferParamQuantity>(BAND_12_PARAM, 0.0f, 1.0f, 1.0f, "Band 12 level"); configParam<AmpliferParamQuantity>(LOWPASS_PARAM, 0.0f, 1.0f, 1.0f, "Lowpass level"); - configParam(CV_PARAM, -1.0f, 1.0f, 0.0f, "Level CV", "%", 0.0f, 100.0f); + configParam(CV_PARAM, 0.0f, 1.0f, 1.0f, "Level CV", "%", 0.0f, 100.0f); configParam<AmpliferParamQuantity>(HIGHPASS_PARAM, 0.0f, 1.0f, 1.0f, "Highpass level"); } diff --git a/src/LVCF.cpp b/src/LVCF.cpp @@ -106,9 +106,9 @@ void LVCF::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) / 10.0f, -1.0f, 1.0f); + 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 += fcv; + f = std::max(0.0f, f + fcv); } f *= MultimodeFilter::maxFrequency; const float lowThreshold = 100.0f; diff --git a/src/VCF.cpp b/src/VCF.cpp @@ -151,9 +151,9 @@ 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) / 10.0f, -1.0f, 1.0f); + 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 += fcv; + f = std::max(0.0f, f + fcv); } f *= MultimodeFilter::maxFrequency; if (inputs[PITCH_INPUT].isConnected() || inputs[FM_INPUT].isConnected()) {