3#include "AudioTools/CoreAudio/AudioEffects/AudioEffect.h"
4#include "AudioTools/CoreAudio/AudioStreams.h"
5#include "AudioToolsConfig.h"
8#include "freertos/FreeRTOS.h"
32template <
class StkCls,
class T>
39 this->p_instrument = &instrument;
42 void setInput(StkCls& instrument) { this->p_instrument = &instrument; }
66 if (p_instrument !=
nullptr) {
67 result = p_instrument->tick() * max_value;
73 p_instrument->noteOn(frequency, amplitude);
78 this->amplitude = amplitude;
79 if (this->amplitude > 1.0) this->amplitude = 1.0;
80 if (this->amplitude < 0.0) this->amplitude = 0.0;
84 StkCls* p_instrument =
nullptr;
86 float amplitude = 0.9;
93template <
class StkCls>
99 generator.setInput(instrument);
102 void setInput(StkCls& instrument) {
103 generator.setInput(instrument);
106 void setInput(StkCls* instrument) {
107 generator.setInput(*instrument);
133 STKEffect(stk::Effect& stkEffect) { p_effect = &stkEffect; }
137 float value =
static_cast<float>(in) / 32767.0;
138 return p_effect->tick(value) * 32767.0;
142 stk::Effect* p_effect =
nullptr;
153 STKChorus(
float baseDelay = 6000) : stk::Chorus(baseDelay) {}
160 float value =
static_cast<float>(in) / 32767.0;
161 return stk::Chorus::tick(value) * 32767.0;
173 STKEcho(
unsigned long maximumDelay = (
unsigned long)Stk::sampleRate())
174 : stk::Echo(maximumDelay) {}
181 float value =
static_cast<float>(in) / 32767.0;
182 return stk::Echo::tick(value) * 32767.0;
199 float value =
static_cast<float>(in) / 32767.0;
200 return stk::FreeVerb::tick(value) * 32767.0;
218 float value =
static_cast<float>(in) / 32767.0;
219 return stk::JCRev::tick(value) * 32767.0;
236 float value =
static_cast<float>(in) / 32767.0;
237 return stk::NRev::tick(value) * 32767.0;
254 float value =
static_cast<float>(in) / 32767.0;
255 return stk::PRCRev::tick(value) * 32767.0;
268 : stk::LentPitShift(periodRatio, tMax) {}
274 float value =
static_cast<float>(in) / 32767.0;
275 return stk::LentPitShift::tick(value) * 32767.0;
294 float value =
static_cast<float>(in) / 32767.0;
295 return stk::PitShift::tick(value) * 32767.0;