From caa51752abe3d2e850d91a87f2ddc3bac9f9705e Mon Sep 17 00:00:00 2001 From: Christian Colglazier Date: Wed, 26 Jan 2022 19:45:05 -0500 Subject: [PATCH] Filter per audio input --- src/droplets/ladder_filter_droplet.cpp | 13 +++++++++---- src/droplets/ladder_filter_droplet.h | 2 +- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/droplets/ladder_filter_droplet.cpp b/src/droplets/ladder_filter_droplet.cpp index fa3a0b0..c75a297 100644 --- a/src/droplets/ladder_filter_droplet.cpp +++ b/src/droplets/ladder_filter_droplet.cpp @@ -5,7 +5,10 @@ LadderFilterDroplet::LadderFilterDroplet(DaisyPatch* m_patch, float sample_rate) : Droplet(m_patch, m_state) { - filter.Init(sample_rate); + + for (int i = 0; i < 4; i++) { + filter[i].Init(sample_rate); + } SetControls(); } @@ -17,11 +20,13 @@ void LadderFilterDroplet::Process(AudioHandle::InputBuffer in, size_t size) { freq = freq_ctrl.Process(); res = res_ctrl.Process(); - filter.SetFreq(freq); - filter.SetRes(res); + for (size_t i = 0; i < size; i++) { for (size_t chn = GetChannelMin(); chn < GetChannelMax(); chn++) { - out[chn][i] = filter.Process(in[chn][i]) * (1.0f+res*4); + filter[chn].SetFreq(freq); + filter[chn].SetRes(res); + out[chn][i] = filter[chn].Process(in[chn][i]) * (1.0f+res*4); + //out[chn][i] = in[chn][i] * res; } } } diff --git a/src/droplets/ladder_filter_droplet.h b/src/droplets/ladder_filter_droplet.h index 03f5b61..816e6b5 100644 --- a/src/droplets/ladder_filter_droplet.h +++ b/src/droplets/ladder_filter_droplet.h @@ -11,7 +11,7 @@ class LadderFilterDroplet: public Droplet { private: - MoogLadder filter; + MoogLadder filter[4]; Parameter freq_ctrl, res_ctrl; float freq, res; public: