Audio Effects Framework
AudioEffectBiquad.h
Go to the documentation of this file.
1 //
2 // Created by Jason Smith on 2/20/20.
3 // Copyright © 2020 Jason Smith. All rights reserved.
4 //
5 
6 #ifndef AUDIOFXFRAMEWORK_AudioEffectBiquad_H
7 #define AUDIOFXFRAMEWORK_AudioEffectBiquad_H
8 
9 
10 #include "AudioEffect.h"
11 #include "RingBuffer.h"
12 
16 {
17 public:
18 
21  {
30  };
31 
33  CAudioEffectBiquad(float fSampleRateInHz, int iNumChannels, FilterType_t filterType = kLowpass, EffectParam_t params[] = NULL, float values[] = NULL, int iNumParams = 0, float fMaxDelayInSec = 5.f);
35 
45  Error_t init(float fSampleRateInHz, int iNumChannels, FilterType_t filterType = kLowpass, EffectParam_t params[] = NULL, float values[] = NULL, int iNumParams = 0, float fMaxDelayInSec = 5.f);
46 
50  Error_t reset();
51 
57  Error_t setParam(EffectParam_t eParam, float fValue);
58 
63  float getParam(EffectParam_t eParam);
64 
69  Error_t setFilterType(FilterType_t eValue);
70 
75 
82  Error_t process(float **ppfInputBuffer, float **ppfOutputBuffer, int iNumberOfFrames);
83 
84 private:
85 
86  Error_t setFilterConstants();
87 
88  float m_fCenterFrequencyInHz;
89  float m_fQ;
90  float m_fGain;
91 
92  FilterType_t m_eFilterType;
93  float m_fa0;
94  float m_fa1;
95  float m_fa2;
96  float m_fb0;
97  float m_fb1;
98  float m_fb2;
99 
100  float * m_fxn1;
101  float * m_fxn2;
102  float * m_fyn1;
103  float * m_fyn2;
104 
105  CRingBuffer<float> **m_ppCRingBuffer;
106  float m_fMaxDelayInSamples;
107  float m_fDelayInSamples;
108 
109 };
110 
111 
112 #endif //AUDIOFXFRAMEWORK_AudioEffectBiquad_H
CAudioEffectBiquad::FilterType_t
FilterType_t
Definition: AudioEffectBiquad.h:21
CAudioEffect
audio effect base class
Definition: AudioEffect.h:19
CAudioEffectBiquad::kLowshelf
@ kLowshelf
Definition: AudioEffectBiquad.h:28
CAudioEffectBiquad::getFilterType
FilterType_t getFilterType()
Definition: AudioEffectBiquad.cpp:191
CAudioEffectBiquad::kNotch
@ kNotch
Definition: AudioEffectBiquad.h:27
CAudioEffectBiquad::setFilterType
Error_t setFilterType(FilterType_t eValue)
Definition: AudioEffectBiquad.cpp:181
CAudioEffectBiquad::kHighshelf
@ kHighshelf
Definition: AudioEffectBiquad.h:29
CRingBuffer< float >
CAudioEffect::EffectParam_t
EffectParam_t
Definition: AudioEffect.h:26
CAudioEffectBiquad::getParam
float getParam(EffectParam_t eParam)
Definition: AudioEffectBiquad.cpp:157
CAudioEffectBiquad::kPeak
@ kPeak
Definition: AudioEffectBiquad.h:26
CAudioEffectBiquad::setParam
Error_t setParam(EffectParam_t eParam, float fValue)
Definition: AudioEffectBiquad.cpp:127
CAudioEffectBiquad::kAllpass
@ kAllpass
Definition: AudioEffectBiquad.h:25
CAudioEffectBiquad::kBandpass
@ kBandpass
Definition: AudioEffectBiquad.h:24
CAudioEffectBiquad
audio effect class for biquad filter
Definition: AudioEffectBiquad.h:16
CAudioEffectBiquad::kLowpass
@ kLowpass
Definition: AudioEffectBiquad.h:22
CAudioEffectBiquad::CAudioEffectBiquad
CAudioEffectBiquad()
Definition: AudioEffectBiquad.cpp:9
CAudioEffectBiquad::init
Error_t init(float fSampleRateInHz, int iNumChannels, FilterType_t filterType=kLowpass, EffectParam_t params[]=NULL, float values[]=NULL, int iNumParams=0, float fMaxDelayInSec=5.f)
Definition: AudioEffectBiquad.cpp:51
RingBuffer.h
CAudioEffectBiquad::process
Error_t process(float **ppfInputBuffer, float **ppfOutputBuffer, int iNumberOfFrames)
Definition: AudioEffectBiquad.cpp:196
CAudioEffectBiquad::kHighpass
@ kHighpass
Definition: AudioEffectBiquad.h:23
CAudioEffectBiquad::~CAudioEffectBiquad
~CAudioEffectBiquad()
Definition: AudioEffectBiquad.cpp:46
CAudioEffectBiquad::reset
Error_t reset()
Definition: AudioEffectBiquad.cpp:110
AudioEffect.h