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:
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;