From da4130b2f11a1bfb43c51bdf2daf0e9b7b0cc97a Mon Sep 17 00:00:00 2001 From: Damien Zammit Date: Thu, 18 Jul 2019 22:17:14 +1000 Subject: WIP NTM --- plugins/ZaMultiComp/ZaMultiCompPlugin.cpp | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/plugins/ZaMultiComp/ZaMultiCompPlugin.cpp b/plugins/ZaMultiComp/ZaMultiCompPlugin.cpp index be6d6bd..e7388d4 100644 --- a/plugins/ZaMultiComp/ZaMultiCompPlugin.cpp +++ b/plugins/ZaMultiComp/ZaMultiCompPlugin.cpp @@ -739,10 +739,10 @@ void ZaMultiCompPlugin::linear_svf_set_xover(struct linear_svf *self, float samp w = M_PI * cutoff / sample_rate; self->g = tan(w); - self->k = 1. / resonance; - self->m0 = hp ? 0. : 1.; + self->k = 1.4142135 * (1. - resonance * resonance); + self->m0 = self->g; self->m1 = 0.; - self->m2 = hp ? 1. : 0.; + self->m2 = hp ? 1. : self->k * self->k; } void ZaMultiCompPlugin::linear_svf_reset(struct linear_svf *self) @@ -775,20 +775,14 @@ void ZaMultiCompPlugin::calc_lr4(float f, int i) { float srate = getSampleRate(); - linear_svf_set_xover(&simper[0][i][0], srate, f, 0.7071068, false); - linear_svf_set_xover(&simper[1][i][0], srate, f, 0.7071068, true); - linear_svf_set_xover(&simper[0][i][1], srate, f, 0.7071068, false); - linear_svf_set_xover(&simper[1][i][1], srate, f, 0.7071068, true); + linear_svf_set_xover(&simper[0][i][0], srate, f, 0.5, false); + linear_svf_set_xover(&simper[1][i][0], srate, f, 0.5, true); } void ZaMultiCompPlugin::run_lr4(int i, float in, float *outlo, float *outhi) { - float lo, hi; - lo = run_linear_svf_xover(&simper[0][i][0], in); - *outlo = run_linear_svf_xover(&simper[0][i][1], lo); - - hi = run_linear_svf_xover(&simper[1][i][0], in); - *outhi = run_linear_svf_xover(&simper[1][i][1], hi); + *outlo = run_linear_svf_xover(&simper[0][i][0], in); + *outhi = run_linear_svf_xover(&simper[1][i][0], in); } void ZaMultiCompPlugin::run_comp(int k, float in, float *out) -- cgit v1.2.3