Improved ladder filter controls

This commit is contained in:
Christian Colglazier 2022-01-25 19:41:53 -05:00
parent 149ae9a009
commit 6c125294e8

View File

@ -21,7 +21,7 @@ void LadderFilterDroplet::Process(AudioHandle::InputBuffer in,
filter.SetRes(res); filter.SetRes(res);
for (size_t i = 0; i < size; i++) { for (size_t i = 0; i < size; i++) {
for (size_t chn = GetChannelMin(); chn < GetChannelMax(); chn++) { 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::UpdateStateCallback() {}
void LadderFilterDroplet::SetControls() { void LadderFilterDroplet::SetControls() {
AnalogControl filter_knob, res_knob;
if (GetState() == DropletState::kRight) { if (GetState() == DropletState::kRight) {
freq_ctrl.Init(Patch()->controls[Patch()->CTRL_3], filter_knob = Patch()->controls[Patch()->CTRL_3];
0.0, 10000.0f, Parameter::LINEAR); res_knob = Patch()->controls[Patch()->CTRL_4];
res_ctrl.Init(Patch()->controls[Patch()->CTRL_4],
0.0, 0.75f, Parameter::LINEAR);
} else { } else {
freq_ctrl.Init(Patch()->controls[Patch()->CTRL_1], filter_knob = Patch()->controls[Patch()->CTRL_1];
0.0, 10000.0f, Parameter::LINEAR); res_knob = Patch()->controls[Patch()->CTRL_2];
res_ctrl.Init(Patch()->controls[Patch()->CTRL_2],
0.0, 0.75f, Parameter::LINEAR);
} }
freq_ctrl.Init(filter_knob, 5.0f, 10000.0f, Parameter::LOGARITHMIC);
res_ctrl.Init(res_knob, 0.0f, 0.95f, Parameter::LINEAR);
} }