Audio Effects Framework
AudioEffectCompressor.h
Go to the documentation of this file.
1 //
2 // Created by Rishikesh Daoo on 2/24/20.
3 // Copyright © 2020 Rishikesh Daoo. All rights reserved.
4 //
5 
6 #ifndef AUDIOFXFRAMEWORK_AUDIOEFFECTCOMPRESSOREXPANDER_H
7 #define AUDIOFXFRAMEWORK_AUDIOEFFECTCOMPRESSOREXPANDER_H
8 
9 #include <AudioEffect.h>
10 #include "RingBuffer.h"
11 
15 {
16 public:
17 
20  {
21  kNone = 0,
23  kExpander = 2
24  };
25 
27  CAudioEffectCompressorExpander(Effect_t effectType, float fSampleRateInHz, int iNumChannels, EffectSubtype_t subType = kCompressor, int iLookaheadBufferSize = 150, EffectParam_t params[] = NULL, float values[] = NULL, int iNumParams = 0);
29 
41  Error_t init(Effect_t effectType, float fSampleRateInHz, int iNumChannels, EffectSubtype_t subType = kCompressor, int iLookaheadBufferSize = 150, EffectParam_t params[] = NULL, float values[] = NULL, int iNumParams = 0);
42 
46  Error_t reset();
47 
53  Error_t setParam(EffectParam_t eParam, float fValue);
54 
59  float getParam(EffectParam_t eParam);
60 
65  Error_t setEffectSubtype(EffectSubtype_t eValue);
66 
71 
78  Error_t process(float **ppfInputBuffer, float **ppfOutputBuffer, int iNumberOfFrames);
79 
80 private:
81 
82  EffectSubtype_t m_eCompressorType;
83 
84  int m_iLookaheadBufferSize;
85 
86  float m_fAveragingTime;
87  float m_fAttackTime;
88  float m_fReleaseTime;
89 
90  float m_fThreshold;
91  float m_fSlope;
92 
93  float* m_pfRmsSignal;
94  float* m_pf_gain;
95 
96  CRingBuffer<float> **m_ppfDelayBuffer;
97 };
98 
99 #endif //AUDIOFXFRAMEWORK_AUDIOEFFECTCOMPRESSOREXPANDER_H
100 
101 
102 
CAudioEffectCompressorExpander::kNone
@ kNone
none
Definition: AudioEffectCompressor.h:21
CAudioEffectCompressorExpander::CAudioEffectCompressorExpander
CAudioEffectCompressorExpander()
Definition: AudioEffectCompressor.cpp:10
CAudioEffectCompressorExpander::getParam
float getParam(EffectParam_t eParam)
Definition: AudioEffectCompressor.cpp:154
CAudioEffect
audio effect base class
Definition: AudioEffect.h:19
CAudioEffectCompressorExpander::EffectSubtype_t
EffectSubtype_t
Definition: AudioEffectCompressor.h:20
CAudioEffectCompressorExpander::kCompressor
@ kCompressor
compressor
Definition: AudioEffectCompressor.h:22
CAudioEffectCompressorExpander::setEffectSubtype
Error_t setEffectSubtype(EffectSubtype_t eValue)
Definition: AudioEffectCompressor.cpp:172
CRingBuffer< float >
CAudioEffectCompressorExpander::kExpander
@ kExpander
expander
Definition: AudioEffectCompressor.h:23
CAudioEffectCompressorExpander::reset
Error_t reset()
Definition: AudioEffectCompressor.cpp:110
CAudioEffectCompressorExpander::getEffectSubtype
EffectSubtype_t getEffectSubtype()
Definition: AudioEffectCompressor.cpp:182
CAudioEffect::EffectParam_t
EffectParam_t
Definition: AudioEffect.h:26
CAudioEffectCompressorExpander::init
Error_t init(Effect_t effectType, float fSampleRateInHz, int iNumChannels, EffectSubtype_t subType=kCompressor, int iLookaheadBufferSize=150, EffectParam_t params[]=NULL, float values[]=NULL, int iNumParams=0)
Definition: AudioEffectCompressor.cpp:38
CAudioEffectCompressorExpander::setParam
Error_t setParam(EffectParam_t eParam, float fValue)
Definition: AudioEffectCompressor.cpp:127
CAudioEffectCompressorExpander::~CAudioEffectCompressorExpander
~CAudioEffectCompressorExpander()
Definition: AudioEffectCompressor.cpp:34
CAudioEffectCompressorExpander
audio effect class for compression and expander
Definition: AudioEffectCompressor.h:15
CAudioEffectCompressorExpander::process
Error_t process(float **ppfInputBuffer, float **ppfOutputBuffer, int iNumberOfFrames)
Definition: AudioEffectCompressor.cpp:187
RingBuffer.h
AudioEffect.h