swift
biquadfilter.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (C) 2019 swift Project Community / Contributors
2 // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-swift-pilot-client-1
3 
5 
6 #ifndef SWIFT_SOUND_DSP_BIQUADFILTER_H
7 #define SWIFT_SOUND_DSP_BIQUADFILTER_H
8 
10 
11 namespace swift::sound::dsp
12 {
15  {
16  public:
18  BiQuadFilter() = default;
19 
21  float transform(float inSample);
22 
25  void setCoefficients(double aa0, double aa1, double aa2, double b0, double b1, double b2);
26  void setLowPassFilter(float sampleRate, float cutoffFrequency, float q);
27  void setPeakingEq(float sampleRate, float centreFrequency, float q, float dbGain);
28  void setHighPassFilter(float sampleRate, float cutoffFrequency, float q);
30 
33  static BiQuadFilter lowPassFilter(float sampleRate, float cutoffFrequency, float q);
34  static BiQuadFilter highPassFilter(float sampleRate, float cutoffFrequency, float q);
35  static BiQuadFilter peakingEQ(float sampleRate, float centreFrequency, float q, float dbGain);
37 
38  private:
39  double m_a0 = 0.0;
40  double m_a1 = 0.0;
41  double m_a2 = 0.0;
42  double m_a3 = 0.0;
43  double m_a4 = 0.0;
44 
45  // state
46  float m_x1 = 0.0;
47  float m_x2 = 0.0;
48  float m_y1 = 0.0;
49  float m_y2 = 0.0;
50  };
51 } // ns
52 
53 #endif // SWIFT_SOUND_DSP_BIQUADFILTER_H
Digital biquad filter.
Definition: biquadfilter.h:15
void setPeakingEq(float sampleRate, float centreFrequency, float q, float dbGain)
Set filter parameters.
static BiQuadFilter peakingEQ(float sampleRate, float centreFrequency, float q, float dbGain)
Get filters.
void setCoefficients(double aa0, double aa1, double aa2, double b0, double b1, double b2)
Set filter parameters.
static BiQuadFilter lowPassFilter(float sampleRate, float cutoffFrequency, float q)
Get filters.
float transform(float inSample)
Transform.
static BiQuadFilter highPassFilter(float sampleRate, float cutoffFrequency, float q)
Get filters.
void setLowPassFilter(float sampleRate, float cutoffFrequency, float q)
Set filter parameters.
void setHighPassFilter(float sampleRate, float cutoffFrequency, float q)
Set filter parameters.