37 template <
typename NumericType>
53 template <
typename SampleType>
60 using NumericType =
typename SampleTypeHelpers::ElementType<SampleType>::Type;
102 void reset (SampleType resetToValue);
109 template <
typename ProcessContext>
110 void process (
const ProcessContext& context) noexcept
112 if (context.isBypassed)
113 processInternal<ProcessContext, true> (context);
115 processInternal<ProcessContext, false> (context);
125 SampleType JUCE_VECTOR_CALLTYPE
processSample (SampleType sample) noexcept;
138 template <
typename ProcessContext,
bool isBypassed>
139 void processInternal (
const ProcessContext& context) noexcept;
143 SampleType* state =
nullptr;
146 JUCE_LEAK_DETECTOR (
Filter)
156 template <
typename NumericType>
187 static Ptr makeFirstOrderLowPass (
double sampleRate,
NumericType frequency);
190 static Ptr makeFirstOrderHighPass (
double sampleRate,
NumericType frequency);
193 static Ptr makeFirstOrderAllPass (
double sampleRate,
NumericType frequency);
197 static Ptr makeLowPass (
double sampleRate,
NumericType frequency);
204 static Ptr makeHighPass (
double sampleRate,
NumericType frequency);
211 static Ptr makeBandPass (
double sampleRate,
NumericType frequency);
225 static Ptr makeAllPass (
double sampleRate,
NumericType frequency);
237 static Ptr makeLowShelf (
double sampleRate,
NumericType cutOffFrequency,
246 static Ptr makeHighShelf (
double sampleRate,
NumericType cutOffFrequency,
256 static Ptr makePeakFilter (
double sampleRate,
NumericType centreFrequency,
261 size_t getFilterOrder() const noexcept;
266 double getMagnitudeForFrequency (
double frequency,
double sampleRate) const noexcept;
271 void getMagnitudeForFrequencyArray (const
double* frequencies,
double* magnitudes,
272 size_t numSamples,
double sampleRate) const noexcept;
277 double getPhaseForFrequency (
double frequency,
double sampleRate) const noexcept;
282 void getPhaseForFrequencyArray (
double* frequencies,
double* phases,
283 size_t numSamples,
double sampleRate) const noexcept;
306 #include "juce_IIRFilter_Impl.h"
Array< NumericType > coefficients
CoefficientsPtr coefficients
void process(const ProcessContext &context) noexcept
typename Coefficients< NumericType >::Ptr CoefficientsPtr
const NumericType * getRawCoefficients() const noexcept
typename SampleTypeHelpers::ElementType< SampleType >::Type NumericType
void prepare(const ProcessSpec &) noexcept
void snapToZero() noexcept
SampleType JUCE_VECTOR_CALLTYPE processSample(SampleType sample) noexcept