I wrote a low pass filter class, but it keeps reporting errors, “juce::dsp::IIR::Filter< float>” No member “setCoefficients”.
#include <juce_dsp/juce_dsp.h>
class LowPassFilter
{
public:
LowPassFilter()
{
// Set default parameters
updateFilter();
}
void setCutoffFrequency(float newCutoffFrequency)
{
cutoffFrequency = newCutoffFrequency;
updateFilter();
}
float processSample(float inputValue)
{
return filter.processSample(inputValue);
}
private:
void updateFilter()
{
auto sampleRate = 44100.0; // Set your sample rate here
auto cutoffNormalized = cutoffFrequency / sampleRate;
juce::dsp::ProcessSpec spec{ sampleRate, 512, 2 }; // Adjust buffer size as needed
filter.prepare(spec);
filter.reset();
juce::dsp::IIR::Coefficients::Ptr coefficients = juce::dsp::IIR::Coefficients::makeLowPass(sampleRate, cutoffNormalized);
filter.setCoefficients(*coefficients);
}
float cutoffFrequency = 1000.0; // Default cutoff frequency
juce::dsp::IIR::Filter<float> filter;
};