BogaudioModules

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

commit 288e35c34cae9cc7b4b1e6ec7c4ed2414d54e6df
parent 6b0c8f426663c16391f3d4688895ffe9cf118771
Author: Matt Demanett <matt@demanett.net>
Date:   Wed, 18 Mar 2020 19:06:12 -0400

Maybe fix linker issue on Win7 build. #104

Diffstat:
Msrc/FFB.cpp | 2+-
Msrc/LVCF.cpp | 2+-
Msrc/LVCF.hpp | 2+-
Msrc/VCF.cpp | 2+-
Msrc/VCF.hpp | 2+-
Msrc/dsp/filter.hpp | 26++++++++++++++++++--------
6 files changed, 23 insertions(+), 13 deletions(-)

diff --git a/src/FFB.cpp b/src/FFB.cpp @@ -14,7 +14,7 @@ void FFB::Engine::sampleRateChange() { 4.0f, MultimodeFilter::BANDPASS_MODE, cutoff, - 0.22f / MultimodeFilter::maxBWPitch, + 0.22f / BOGAUDIO_DSP_MULTIMODEFILTER_MAXBWPITCH, MultimodeFilter::PITCH_BANDWIDTH_MODE ); }; diff --git a/src/LVCF.cpp b/src/LVCF.cpp @@ -29,7 +29,7 @@ void LVCF::Engine::setParams( void LVCF::Engine::sampleRateChange(int modulationSteps) { _sampleRate = APP->engine->getSampleRate(); _frequencySL.setParams(_sampleRate, 100.0f / (float)modulationSteps, frequencyToSemitone(maxFrequency - minFrequency)); - _finalHP.setParams(_sampleRate, MultimodeFilter::BUTTERWORTH_TYPE, 2, MultimodeFilter::HIGHPASS_MODE, 80.0f, MultimodeFilter::minQbw); + _finalHP.setParams(_sampleRate, MultimodeFilter::BUTTERWORTH_TYPE, 2, MultimodeFilter::HIGHPASS_MODE, 80.0f, BOGAUDIO_DSP_MULTIMODEFILTER_MINQBW); } void LVCF::Engine::reset() { diff --git a/src/LVCF.hpp b/src/LVCF.hpp @@ -60,7 +60,7 @@ struct LVCF : BGModule { }; static constexpr float maxFrequency = 20000.0f; - static constexpr float minFrequency = MultimodeFilter::minFrequency; + static constexpr float minFrequency = BOGAUDIO_DSP_MULTIMODEFILTER_MINFREQUENCY; MultimodeFilter::Mode _mode = MultimodeFilter::UNKNOWN_MODE; int _polesSetting = 4; int _poles = 0; diff --git a/src/VCF.cpp b/src/VCF.cpp @@ -51,7 +51,7 @@ void VCF::Engine::setParams( void VCF::Engine::sampleRateChange(int modulationSteps) { _sampleRate = APP->engine->getSampleRate(); _frequencySL.setParams(_sampleRate, 100.0f / (float)modulationSteps, frequencyToSemitone(maxFrequency - minFrequency)); - _finalHP.setParams(_sampleRate, MultimodeFilter::BUTTERWORTH_TYPE, 2, MultimodeFilter::HIGHPASS_MODE, 80.0f, MultimodeFilter::minQbw); + _finalHP.setParams(_sampleRate, MultimodeFilter::BUTTERWORTH_TYPE, 2, MultimodeFilter::HIGHPASS_MODE, 80.0f, BOGAUDIO_DSP_MULTIMODEFILTER_MINQBW); for (int i = 0; i < nFilters; ++i) { _gainSLs[i].setParams(_sampleRate, 50.0f, 1.0f); } diff --git a/src/VCF.hpp b/src/VCF.hpp @@ -64,7 +64,7 @@ struct VCF : BGModule { }; static constexpr float maxFrequency = 20000.0f; - static constexpr float minFrequency = MultimodeFilter::minFrequency; + static constexpr float minFrequency = BOGAUDIO_DSP_MULTIMODEFILTER_MINFREQUENCY; MultimodeFilter::Mode _mode = MultimodeFilter::UNKNOWN_MODE; MultimodeFilter::BandwidthMode _bandwidthMode = MultimodeFilter::PITCH_BANDWIDTH_MODE; Engine* _engines[maxChannels] {}; diff --git a/src/dsp/filter.hpp b/src/dsp/filter.hpp @@ -132,6 +132,16 @@ struct MultipoleFilter : Filter { float next(float sample) override; }; +// hacky workaround for certain linkers here; see https://github.com/bogaudio/BogaudioModules/issues/104 +#define BOGAUDIO_DSP_MULTIMODEFILTER_MINFREQUENCY 1.0f +#define BOGAUDIO_DSP_MULTIMODEFILTER_MAXFREQUENCY 21000.0f +#define BOGAUDIO_DSP_MULTIMODEFILTER_MINQBW 0.0f +#define BOGAUDIO_DSP_MULTIMODEFILTER_MAXQBW 1.0f +#define BOGAUDIO_DSP_MULTIMODEFILTER_MINBWLINEAR 10.0f +#define BOGAUDIO_DSP_MULTIMODEFILTER_MAXBWLINEAR 5000.0f +#define BOGAUDIO_DSP_MULTIMODEFILTER_MINBWPITCH (1.0f / (1.0f * 12.0f * 100.0f / 25.0f)) +#define BOGAUDIO_DSP_MULTIMODEFILTER_MAXBWPITCH 2.0f + struct MultimodeFilter : Filter { typedef double T; typedef std::complex<T> TC; @@ -179,14 +189,14 @@ struct MultimodeFilter : Filter { static constexpr int minPoles = 1; static constexpr int maxPoles = 16; static constexpr int modPoles = 1; - static constexpr float minFrequency = 1.0f; - static constexpr float maxFrequency = 21000.0f; - static constexpr float minQbw = 0.0f; - static constexpr float maxQbw = 1.0f; - static constexpr float minBWLinear = 10.0f; - static constexpr float maxBWLinear = 5000.0f; - static constexpr float minBWPitch = 1.0f / (1.0f * 12.0f * 100.0f / 25.0f); - static constexpr float maxBWPitch = 2.0f; + const float minFrequency = BOGAUDIO_DSP_MULTIMODEFILTER_MINFREQUENCY; + const float maxFrequency = BOGAUDIO_DSP_MULTIMODEFILTER_MAXFREQUENCY; + const float minQbw = BOGAUDIO_DSP_MULTIMODEFILTER_MINQBW; + const float maxQbw = BOGAUDIO_DSP_MULTIMODEFILTER_MAXQBW; + const float minBWLinear = BOGAUDIO_DSP_MULTIMODEFILTER_MINBWLINEAR; + const float maxBWLinear = BOGAUDIO_DSP_MULTIMODEFILTER_MAXBWLINEAR; + const float minBWPitch = BOGAUDIO_DSP_MULTIMODEFILTER_MINBWPITCH; + const float maxBWPitch = BOGAUDIO_DSP_MULTIMODEFILTER_MAXBWPITCH; float _sampleRate = 44100.0f; float _half2PiST = 0.0f;