3#include "AudioToolsConfig.h"
4#include "AudioTools/CoreAudio/AudioEffects/AudioEffect.h"
5#include "AudioTools/CoreAudio/AudioStreams.h"
8# include "freertos/FreeRTOS.h"
28template <
class StkCls,
class T>
35 this->p_instrument = &instrument;
38 void setInput(StkCls &instrument){
39 this->p_instrument = &instrument;
64 if (p_instrument!=
nullptr) {
65 result = p_instrument->tick()*max_value;
71 StkCls *p_instrument=
nullptr;
80template <
class StkCls>
88 generator.setInput(instrument);
91 void setInput(StkCls &instrument){
92 generator.setInput(instrument);
95 void setInput(StkCls *instrument){
96 generator.setInput(*instrument);
123 STKEffect(stk::Effect &stkEffect) { p_effect = &stkEffect; }
127 float value =
static_cast<float>(in) / 32767.0;
128 return p_effect->tick(value) * 32767.0;
132 stk::Effect *p_effect =
nullptr;
143 STKChorus(
float baseDelay = 6000) : stk::Chorus(baseDelay) {}
152 float value =
static_cast<float>(in) / 32767.0;
153 return stk::Chorus::tick(value) * 32767.0;
165 STKEcho(
unsigned long maximumDelay = (
unsigned long)Stk::sampleRate())
166 : stk::Echo(maximumDelay) {}
175 float value =
static_cast<float>(in) / 32767.0;
176 return stk::Echo::tick(value) * 32767.0;
195 float value =
static_cast<float>(in) / 32767.0;
196 return stk::FreeVerb::tick(value) * 32767.0;
216 float value =
static_cast<float>(in) / 32767.0;
217 return stk::JCRev::tick(value) * 32767.0;
236 float value =
static_cast<float>(in) / 32767.0;
237 return stk::NRev::tick(value) * 32767.0;
256 float value =
static_cast<float>(in) / 32767.0;
257 return stk::PRCRev::tick(value) * 32767.0;
270 : stk::LentPitShift(periodRatio, tMax) {}
278 float value =
static_cast<float>(in) / 32767.0;
279 return stk::LentPitShift::tick(value) * 32767.0;
300 float value =
static_cast<float>(in) / 32767.0;
301 return stk::PitShift::tick(value) * 32767.0;