summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDamien Zammit <damien@zamaudio.com>2019-07-18 22:17:14 +1000
committerDamien Zammit <damien@zamaudio.com>2019-07-18 22:17:14 +1000
commitda4130b2f11a1bfb43c51bdf2daf0e9b7b0cc97a (patch)
tree27050d3eeae727d0ded8efd13395365a6216f0a8
parentd77ee3f22922df9190d16fe1914c29edec563c88 (diff)
WIP NTM
-rw-r--r--plugins/ZaMultiComp/ZaMultiCompPlugin.cpp20
1 files 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)