summaryrefslogtreecommitdiff
path: root/plugins/ZaMultiComp/ZaMultiCompPlugin.hpp
diff options
context:
space:
mode:
authorDamien Zammit <damien@zamaudio.com>2016-08-03 20:20:32 +1000
committerDamien Zammit <damien@zamaudio.com>2016-08-03 20:20:32 +1000
commita0a21f08c7b1b5718358a5776151b834483deb57 (patch)
tree58bbbd9870f9df9f3272cc58e15f003b7dc539e2 /plugins/ZaMultiComp/ZaMultiCompPlugin.hpp
parent404058e2bdcf41165d00e61fa3f78a273920b81b (diff)
Multibands: Major upgrade to DSP for crossover filters, flat response
Signed-off-by: Damien Zammit <damien@zamaudio.com>
Diffstat (limited to 'plugins/ZaMultiComp/ZaMultiCompPlugin.hpp')
-rw-r--r--plugins/ZaMultiComp/ZaMultiCompPlugin.hpp28
1 files changed, 13 insertions, 15 deletions
diff --git a/plugins/ZaMultiComp/ZaMultiCompPlugin.hpp b/plugins/ZaMultiComp/ZaMultiCompPlugin.hpp
index dce9953..99cec2a 100644
--- a/plugins/ZaMultiComp/ZaMultiCompPlugin.hpp
+++ b/plugins/ZaMultiComp/ZaMultiCompPlugin.hpp
@@ -168,6 +168,18 @@ protected:
void activate() override;
void run(const float** inputs, float** outputs, uint32_t frames) override;
+ struct linear_svf {
+ double k;
+ double g;
+
+ double s[2];
+ };
+
+ struct linear_svf simper[2][MAX_FILT];
+ void linear_svf_set_xover(struct linear_svf *self, float sample_rate, float cutoff, float resonance);
+ void linear_svf_reset(struct linear_svf *self);
+ float run_linear_svf_xover(struct linear_svf *self, float in, float mixlow, float mixhigh);
+
void pushsample(float samples[], float sample, int k);
float averageabs(float samples[]);
// -------------------------------------------------------------------
@@ -182,21 +194,7 @@ private:
float outlevelold[3][MAX_SAMPLES];
float oldxover1, oldxover2;
bool reset;
- // Crossover filter coefficients
- float c1[MAX_FILT];
- float c2[MAX_FILT];
- float c3[MAX_FILT];
- float c4[MAX_FILT];
- float gl[MAX_FILT];
- float gh[MAX_FILT];
-
- //Crossover filter states
- float z1[MAX_FILT];
- float z2[MAX_FILT];
- float z3[MAX_FILT];
- float z4[MAX_FILT];
- float z5[MAX_FILT];
- float z6[MAX_FILT];
+
};
// -----------------------------------------------------------------------