Audio Effects Framework
AudioEffectDelay.h
Go to the documentation of this file.
1 //
2 // Created by Rishikesh Daoo on 2/15/20.
3 // Copyright © 2020 Rishikesh Daoo. All rights reserved.
4 //
5 
6 #ifndef AUDIOFXFRAMEWORK_AUDIOEFFECTDELAY_H
7 #define AUDIOFXFRAMEWORK_AUDIOEFFECTDELAY_H
8 
9 
10 #include "AudioEffect.h"
11 #include "RingBuffer.h"
12 #include "Lfo.h"
13 
14 #include <stdio.h>
15 #include <iostream>
16 
20 {
21 public:
22 
25  {
26 // kNone = 0,
28  kChorus = 18,
29  kFlanger = 21,
30  kTremolo = 8,
31  kVibrato = 2
32  };
33 
35  CAudioEffectDelay(float fSampleRateInHz, int iNumChannels, DelayType_t subType = kBasicDelay, float iMaxDelayInSec = 1.f, EffectParam_t params[] = NULL, float values[] = NULL, int iNumParams = 0);
37 
47  Error_t init(float fSampleRateInHz, int iNumChannels, DelayType_t subType = kBasicDelay, float iMaxDelayInSec = 1.f, EffectParam_t params[] = NULL, float values[] = NULL, int iNumParams = 0);
48 
52  Error_t reset();
53 
59  Error_t setParam(EffectParam_t eParam, float fValue);
60 
65  float getParam(EffectParam_t eParam);
66 
71  Error_t setDelayType(DelayType_t eValue);
72 
77 
84  Error_t process(float **ppfInputBuffer, float **ppfOutputBuffer, int iNumberOfFrames);
85 
86 private:
87 
88  CRingBuffer<float> **m_ppCRingBuffer;
89  DelayType_t m_eDelayType;
90 
91  float m_fDryWetMix;
92  float m_fDelayInSamples;
93  float m_fMaxDelayInSamples;
94  float m_fModWidthInSamples;
95  float m_fFeedback;
96  float m_fTremoloAmount;
97 
98  CLfo *m_pCLfo;
99 };
100 
101 
102 #endif //AUDIOFXFRAMEWORK_AUDIOEFFECTDELAY_H
CLfo
Definition: Lfo.h:12
CAudioEffect
audio effect base class
Definition: AudioEffect.h:19
CAudioEffectDelay::setDelayType
Error_t setDelayType(DelayType_t eValue)
Definition: AudioEffectDelay.cpp:269
CAudioEffectDelay::kBasicDelay
@ kBasicDelay
Definition: AudioEffectDelay.h:27
CRingBuffer< float >
CAudioEffectDelay::~CAudioEffectDelay
~CAudioEffectDelay()
Definition: AudioEffectDelay.cpp:46
CAudioEffectDelay::kVibrato
@ kVibrato
Definition: AudioEffectDelay.h:31
CAudioEffectDelay
audio effect class for delay related effects
Definition: AudioEffectDelay.h:20
CAudioEffect::EffectParam_t
EffectParam_t
Definition: AudioEffect.h:26
Lfo.h
CAudioEffectDelay::kChorus
@ kChorus
Definition: AudioEffectDelay.h:28
CAudioEffectDelay::kFlanger
@ kFlanger
Definition: AudioEffectDelay.h:29
CAudioEffectDelay::reset
Error_t reset()
Definition: AudioEffectDelay.cpp:178
CAudioEffectDelay::getDelayType
DelayType_t getDelayType()
Definition: AudioEffectDelay.cpp:279
CAudioEffectDelay::init
Error_t init(float fSampleRateInHz, int iNumChannels, DelayType_t subType=kBasicDelay, float iMaxDelayInSec=1.f, EffectParam_t params[]=NULL, float values[]=NULL, int iNumParams=0)
Definition: AudioEffectDelay.cpp:51
CAudioEffectDelay::setParam
Error_t setParam(EffectParam_t eParam, float fValue)
Definition: AudioEffectDelay.cpp:197
CAudioEffectDelay::DelayType_t
DelayType_t
Definition: AudioEffectDelay.h:25
CAudioEffectDelay::CAudioEffectDelay
CAudioEffectDelay()
Definition: AudioEffectDelay.cpp:13
CAudioEffectDelay::getParam
float getParam(EffectParam_t eParam)
Definition: AudioEffectDelay.cpp:238
CAudioEffectDelay::process
Error_t process(float **ppfInputBuffer, float **ppfOutputBuffer, int iNumberOfFrames)
Definition: AudioEffectDelay.cpp:287
RingBuffer.h
CAudioEffectDelay::kTremolo
@ kTremolo
Definition: AudioEffectDelay.h:30
AudioEffect.h