MostlyHarmless 0.0.1
 
Loading...
Searching...
No Matches
marvin_APF.h
Go to the documentation of this file.
1// ========================================================================================================
2// _______ _______ ______ ___ ___ _______ _______
3// | | | _ | __ \ | |_ _| | |
4// | | | < | |_| |_| |
5// |__|_|__|___|___|___|__|\_____/|_______|__|____|
6//
7// This file is part of the Marvin open source library and is licensed under the terms of the MIT License.
8//
9// ========================================================================================================
10
11#ifndef MARVIN_APF_H
12#define MARVIN_APF_H
14namespace marvin::dsp::filters {
18 template <FloatType SampleType>
19 class LatticeAPF final {
20 public:
21 ~LatticeAPF() noexcept = default;
26 void initialise(double sampleRate);
32 void setCoeff(SampleType newCoeff) noexcept;
37 void setDelay(SampleType newDelaySamples) noexcept;
43 [[nodiscard]] SampleType operator()(SampleType x) noexcept;
47 void reset() noexcept;
53 [[nodiscard]] SampleType tap(SampleType delaySamples) noexcept;
54
55 private:
56 DelayLine<SampleType, DelayLineInterpolationType::Linear> m_delay;
57 SampleType m_coeff{ 0.0 };
58 };
59
60} // namespace marvin::dsp::filters
61#endif
A fractional delay line implementation, with configurable interpolation types.
Definition marvin_DelayLine.h:31
A two multiply first order Schroeder allpass filter.
Definition marvin_APF.h:19
void setDelay(SampleType newDelaySamples) noexcept
~LatticeAPF() noexcept=default
void initialise(double sampleRate)
SampleType tap(SampleType delaySamples) noexcept
void setCoeff(SampleType newCoeff) noexcept
Digital filter functions and classes.
Definition marvin_SVF.h:15
DelayLineInterpolationType
Enum to configure the type of interpolation an instance of marvin::dsp::DelayLine should use.
Definition marvin_DelayLine.h:19
@ Linear
Definition marvin_DelayLine.h:21