#ifndef __SAP_H__ #define __SAP_H__ // Schroeder All-Pass (delay w/feedback) #include #include "stereodelayline.h" template class StereoSAP { private: const size_t size; StereoDelayLine dl; public: float gain = 0.7; StereoSAP(size_t size = CAPACITY) : size(size) {} inline frame tick(frame in) { frame fb = in + dl.tap(0) * gain; frame out = dl.tick(fb) + fb * -gain; return out; } }; #endif