30template <
typename SampleType>
37template <
typename SampleType>
40 filterType = newValue;
43template <
typename SampleType>
46 jassert (isPositiveAndBelow (newValue,
static_cast<SampleType
> (sampleRate * 0.5)));
48 cutoffFrequency = newValue;
53template <
typename SampleType>
66template <
typename SampleType>
69 reset (
static_cast<SampleType
> (0));
72template <
typename SampleType>
75 std::fill (s1.begin(), s1.end(), newValue);
79template <
typename SampleType>
82 auto& s = s1[(size_t) channel];
84 auto v = G * (inputValue - s);
90 case Type::lowpass:
return y;
91 case Type::highpass:
return inputValue - y;
92 case Type::allpass:
return 2 * y - inputValue;
100template <
typename SampleType>
104 util::snapToZero (s);
108template <
typename SampleType>
109void FirstOrderTPTFilter<SampleType>::update()
116template class FirstOrderTPTFilter<float>;
117template class FirstOrderTPTFilter<double>;
void prepare(const ProcessSpec &spec)
void snapToZero() noexcept
SampleType processSample(int channel, SampleType inputValue)
void setType(Type newType)
void setCutoffFrequency(SampleType newFrequencyHz)
static constexpr FloatType pi