feat: remove filter from distortion (filter will be it's own plugin)

This commit is contained in:
Liam Kerr 2026-08-05 18:54:51 +01:00
parent 970cb6049d
commit 821f3d7d65
2 changed files with 4 additions and 40 deletions

View file

@ -1,7 +1,7 @@
#!/usr/bin/make -f #!/usr/bin/make -f
NAME = SquidgeDistortion NAME = SquidgeDistortion
FILES_DSP = SquidgeDistortion.cpp ../../core/Gain.cpp ../../core/Clipper.cpp ../../core/Mixer.cpp ../../core/Filter.cpp FILES_DSP = SquidgeDistortion.cpp ../../core/Gain.cpp ../../core/Clipper.cpp ../../core/Mixer.cpp
TARGETS = vst3 clap TARGETS = vst3 clap

View file

@ -5,7 +5,6 @@
#include <cmath> #include <cmath>
#include "../../core/Clipper.hpp" #include "../../core/Clipper.hpp"
#include "../../core/Filter.hpp"
#include "../../core/Gain.hpp" #include "../../core/Gain.hpp"
#include "../../core/Mixer.hpp" #include "../../core/Mixer.hpp"
@ -27,13 +26,11 @@ public:
enum Parameters { enum Parameters {
kParamGain, kParamGain,
kParamClipMode, kParamClipMode,
kParamFilter,
kParamFilterFeedback,
kParamMixVolume, kParamMixVolume,
kParameterCount // must be last kParameterCount // must be last
}; };
SquidgeDistortion() SquidgeDistortion()
: Plugin(kParameterCount, 0, 0), gain_(2.0f), mixer_(1.0f), filter_(440) { : Plugin(kParameterCount, 0, 0), gain_(2.0f), mixer_(1.0f) {
mixer_.setInputGain(kChannelDry, 0.0f); mixer_.setInputGain(kChannelDry, 0.0f);
mixer_.setInputGain(kChannelWet, 1.0f); mixer_.setInputGain(kChannelWet, 1.0f);
} }
@ -74,22 +71,6 @@ protected:
parameter.enumValues.values = parameter.enumValues.values =
const_cast<ParameterEnumerationValue *>(sClipModes); const_cast<ParameterEnumerationValue *>(sClipModes);
break; break;
case kParamFilter:
parameter.name = "Filter";
parameter.symbol = "filter";
parameter.ranges.min = 20.0f;
parameter.ranges.def = 1000.0f;
parameter.ranges.max = 10000.0f;
parameter.hints = kParameterIsAutomatable;
break;
case kParamFilterFeedback:
parameter.name = "Filter Feedback";
parameter.symbol = "filterfeedback";
parameter.ranges.min = 0.0f;
parameter.ranges.def = .1f;
parameter.ranges.max = 0.99f;
parameter.hints = kParameterIsAutomatable;
break;
case kParamMixVolume: case kParamMixVolume:
parameter.name = "Dry/Wet"; parameter.name = "Dry/Wet";
parameter.symbol = "drywetvolume"; parameter.symbol = "drywetvolume";
@ -107,10 +88,6 @@ protected:
return gain_.getGain(); return gain_.getGain();
case kParamClipMode: case kParamClipMode:
return (float)clipper_.getMode(); return (float)clipper_.getMode();
case kParamFilter:
return (float)filter_.getCutOff();
case kParamFilterFeedback:
return (float)filter_.getFeedback();
case kParamMixVolume: case kParamMixVolume:
return mixer_.getInputGain(kChannelWet); return mixer_.getInputGain(kChannelWet);
} }
@ -127,12 +104,6 @@ protected:
static_cast<float>(Clipper::kClipperModeCount - 1)); static_cast<float>(Clipper::kClipperModeCount - 1));
clipper_.setMode(static_cast<Clipper::ClipperMode>(std::lround(value))); clipper_.setMode(static_cast<Clipper::ClipperMode>(std::lround(value)));
break; break;
case kParamFilter:
filter_.setCutOff(value);
break;
case kParamFilterFeedback:
filter_.setFeedback(value);
break;
case kParamMixVolume: case kParamMixVolume:
mixer_.setInputGain(kChannelWet, value); mixer_.setInputGain(kChannelWet, value);
mixer_.setInputGain(kChannelDry, 1.0f - value); mixer_.setInputGain(kChannelDry, 1.0f - value);
@ -152,24 +123,17 @@ protected:
buffers_.clippedR, frames); buffers_.clippedR, frames);
clipper_.processStereo(buffers_.clippedL, buffers_.clippedR, clipper_.processStereo(buffers_.clippedL, buffers_.clippedR,
buffers_.clippedL, buffers_.clippedR, frames); buffers_.clippedL, buffers_.clippedR, frames);
filter_.processStereo(buffers_.clippedL, buffers_.clippedR, buffers_.lpL,
buffers_.lpR, frames);
const float *inputsL[2] = {inputs[0], buffers_.lpL}; const float *inputsL[2] = {inputs[0], buffers_.clippedL};
const float *inputsR[2] = {inputs[1], buffers_.lpR}; const float *inputsR[2] = {inputs[1], buffers_.clippedR};
mixer_.processStereo(inputsL, inputsR, outputs[0], outputs[1], frames); mixer_.processStereo(inputsL, inputsR, outputs[0], outputs[1], frames);
} }
void sampleRateChanged(double newSr) override {
filter_.setSampleRate(static_cast<float>(newSr));
}
private: private:
Gain gain_; Gain gain_;
Clipper clipper_; Clipper clipper_;
Mixer<2> mixer_; Mixer<2> mixer_;
Filter filter_;
AudioBuffers buffers_; AudioBuffers buffers_;
DISTRHO_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(SquidgeDistortion); DISTRHO_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(SquidgeDistortion);