Second-order high-shelf filter (BiQuad DF2). Boosts or cuts frequencies above the shelf frequency by the specified gain (in dB) while leaving lower frequencies unchanged. Commonly used in tone controls and equalization. Coefficients are derived from the Audio EQ Cookbook.
More...
#include <Filter.h>
|
| | HighShelfFilter ()=default |
| |
| | HighShelfFilter (float frequency, float sampleRate, float gain, float slope=1.0f) |
| |
| void | begin (float frequency, float sampleRate, float gain, float slope=1.0f) |
| |
| T | process (T value) override |
| | Processes the input value and returns the filtered output value.
|
| |
| void | reset () override |
| |
template<typename T = float>
class audio_tools::HighShelfFilter< T >
Second-order high-shelf filter (BiQuad DF2). Boosts or cuts frequencies above the shelf frequency by the specified gain (in dB) while leaving lower frequencies unchanged. Commonly used in tone controls and equalization. Coefficients are derived from the Audio EQ Cookbook.
- Parameters
-
| frequency | shelf transition frequency in Hz |
| sampleRate | sample rate in Hz |
| gain | boost/cut in dB (positive = boost, negative = cut) |
| slope | shelf slope (default 1.0; values < 1.0 give a gentler slope) |
- Author
- pschatzmann
- Copyright
- GNU General Public License v3.0
- Template Parameters
-
| T | sample type (use float or double). NOTE: q1_14_t (or any fixed-point type with only ~1 bit of headroom above +-1.0) does not work here – HighShelfFilterDF1 does NOT fix this the way it fixes the other filters. Its coefficients scale with the linear gain factor 10^(gain_dB/40) and, for a low shelf frequency relative to sampleRate, already exceed a q1_14_t-sized range at just +1dB of gain (measured, not a theoretical edge case). begin() logs an error (LOGE) via checkCoeffRange() when this happens. |
◆ HighShelfFilter() [1/2]
template<typename T = float>
◆ HighShelfFilter() [2/2]
template<typename T = float>
| HighShelfFilter |
( |
float |
frequency, |
|
|
float |
sampleRate, |
|
|
float |
gain, |
|
|
float |
slope = 1.0f |
|
) |
| |
|
inline |
◆ begin()
template<typename T = float>
| void begin |
( |
float |
frequency, |
|
|
float |
sampleRate, |
|
|
float |
gain, |
|
|
float |
slope = 1.0f |
|
) |
| |
|
inline |
◆ process()
template<typename T = float>
|
|
inlineoverridevirtualinherited |
Processes the input value and returns the filtered output value.
Implements Filter< T >.
◆ reset()
template<typename T = float>
|
|
inlineoverridevirtualinherited |
Clears the internal state (delay lines) without changing the coefficients. Call after reconfiguring filter parameters via begin() to avoid transients from stale state.
Reimplemented from Filter< T >.
◆ a_1
template<typename T = float>
◆ a_2
template<typename T = float>
◆ b_0
template<typename T = float>
◆ b_1
template<typename T = float>
◆ b_2
template<typename T = float>
◆ w_0
template<typename T = float>
◆ w_1
template<typename T = float>
The documentation for this class was generated from the following file:
- src/AudioTools/CoreAudio/AudioFilter/Filter.h