From 6c125294e8b99fff776960e60c9488c483392e30 Mon Sep 17 00:00:00 2001 From: Christian Colglazier Date: Tue, 25 Jan 2022 19:41:53 -0500 Subject: [PATCH] Improved ladder filter controls --- src/droplets/ladder_filter_droplet.cpp | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/src/droplets/ladder_filter_droplet.cpp b/src/droplets/ladder_filter_droplet.cpp index 8eed93c..a076a2d 100644 --- a/src/droplets/ladder_filter_droplet.cpp +++ b/src/droplets/ladder_filter_droplet.cpp @@ -21,7 +21,7 @@ void LadderFilterDroplet::Process(AudioHandle::InputBuffer in, 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]); + out[chn][i] = filter.Process(in[chn][i]) * (1.0f+res*2); } } } @@ -33,15 +33,14 @@ void LadderFilterDroplet::Draw() { void LadderFilterDroplet::UpdateStateCallback() {} void LadderFilterDroplet::SetControls() { + AnalogControl filter_knob, res_knob; if (GetState() == DropletState::kRight) { - freq_ctrl.Init(Patch()->controls[Patch()->CTRL_3], - 0.0, 10000.0f, Parameter::LINEAR); - res_ctrl.Init(Patch()->controls[Patch()->CTRL_4], - 0.0, 0.75f, Parameter::LINEAR); + filter_knob = Patch()->controls[Patch()->CTRL_3]; + res_knob = Patch()->controls[Patch()->CTRL_4]; } else { - freq_ctrl.Init(Patch()->controls[Patch()->CTRL_1], - 0.0, 10000.0f, Parameter::LINEAR); - res_ctrl.Init(Patch()->controls[Patch()->CTRL_2], - 0.0, 0.75f, Parameter::LINEAR); + filter_knob = Patch()->controls[Patch()->CTRL_1]; + res_knob = Patch()->controls[Patch()->CTRL_2]; } + freq_ctrl.Init(filter_knob, 5.0f, 10000.0f, Parameter::LOGARITHMIC); + res_ctrl.Init(res_knob, 0.0f, 0.95f, Parameter::LINEAR); }