diff --git a/src/sfizz/gen/filters/sfz2chApf1p.cxx b/src/sfizz/gen/filters/sfz2chApf1p.cxx index a7e270fa..e67c3fc6 100644 --- a/src/sfizz/gen/filters/sfz2chApf1p.cxx +++ b/src/sfizz/gen/filters/sfz2chApf1p.cxx @@ -34,7 +34,6 @@ class faust2chApf1p : public sfzFilterDsp { double fConst0; double fConst1; double fConst2; - double fConst3; FAUSTFLOAT fCutoff; double fRec1[2]; double fRec0[2]; @@ -102,8 +101,7 @@ class faust2chApf1p : public sfzFilterDsp { fSamplingFreq = samplingFreq; fConst0 = std::min(192000.0, std::max(1.0, double(fSamplingFreq))); fConst1 = std::exp((0.0 - (1000.0 / fConst0))); - fConst2 = (1.0 - fConst1); - fConst3 = (6.2831853071795862 / fConst0); + fConst2 = (6.2831853071795862 / fConst0); } @@ -157,11 +155,12 @@ class faust2chApf1p : public sfzFilterDsp { FAUSTFLOAT* input1 = inputs[1]; FAUSTFLOAT* output0 = outputs[0]; FAUSTFLOAT* output1 = outputs[1]; - double fSlow0 = (fConst2 * ((fConst3 * double(fCutoff)) + -1.0)); + double fSlow0 = (fSmoothEnable?fConst1:0.0); + double fSlow1 = (((fConst2 * double(fCutoff)) + -1.0) * (1.0 - fSlow0)); for (int i = 0; (i < count); i = (i + 1)) { double fTemp0 = double(input0[i]); double fTemp1 = double(input1[i]); - fRec1[0] = (fSlow0 + (fConst1 * fRec1[1])); + fRec1[0] = ((fRec1[1] * fSlow0) + fSlow1); fRec0[0] = (fTemp0 - (fRec1[0] * fRec0[1])); output0[i] = FAUSTFLOAT((fRec0[1] + (fRec1[0] * fRec0[0]))); fRec2[0] = (fTemp1 - (fRec1[0] * fRec2[1])); diff --git a/src/sfizz/gen/filters/sfz2chBpf1p.cxx b/src/sfizz/gen/filters/sfz2chBpf1p.cxx index fbb2ccd5..bbcefe50 100644 --- a/src/sfizz/gen/filters/sfz2chBpf1p.cxx +++ b/src/sfizz/gen/filters/sfz2chBpf1p.cxx @@ -34,7 +34,6 @@ class faust2chBpf1p : public sfzFilterDsp { double fConst0; double fConst1; double fConst2; - double fConst3; FAUSTFLOAT fCutoff; double fRec2[2]; double fRec1[2]; @@ -104,8 +103,7 @@ class faust2chBpf1p : public sfzFilterDsp { fSamplingFreq = samplingFreq; fConst0 = std::min(192000.0, std::max(1.0, double(fSamplingFreq))); fConst1 = std::exp((0.0 - (1000.0 / fConst0))); - fConst2 = (1.0 - fConst1); - fConst3 = (1.0 / fConst0); + fConst2 = (1.0 / fConst0); } @@ -167,11 +165,12 @@ class faust2chBpf1p : public sfzFilterDsp { FAUSTFLOAT* input1 = inputs[1]; FAUSTFLOAT* output0 = outputs[0]; FAUSTFLOAT* output1 = outputs[1]; - double fSlow0 = (fConst2 * std::exp((fConst3 * (0.0 - (6.2831853071795862 * double(fCutoff)))))); + double fSlow0 = (fSmoothEnable?fConst1:0.0); + double fSlow1 = (std::exp((fConst2 * (0.0 - (6.2831853071795862 * double(fCutoff))))) * (1.0 - fSlow0)); for (int i = 0; (i < count); i = (i + 1)) { double fTemp0 = double(input0[i]); double fTemp1 = double(input1[i]); - fRec2[0] = (fSlow0 + (fConst1 * fRec2[1])); + fRec2[0] = ((fRec2[1] * fSlow0) + fSlow1); fRec1[0] = ((fRec2[0] * fRec1[1]) + fTemp0); double fTemp2 = (1.0 - fRec2[0]); fRec0[0] = ((fRec1[0] * fTemp2) + (fRec2[0] * fRec0[1])); diff --git a/src/sfizz/gen/filters/sfz2chBpf2p.cxx b/src/sfizz/gen/filters/sfz2chBpf2p.cxx index ab06a5cd..28610423 100644 --- a/src/sfizz/gen/filters/sfz2chBpf2p.cxx +++ b/src/sfizz/gen/filters/sfz2chBpf2p.cxx @@ -34,13 +34,11 @@ class faust2chBpf2p : public sfzFilterDsp { double fConst0; double fConst1; double fConst2; - double fConst3; FAUSTFLOAT fCutoff; FAUSTFLOAT fQ; double fRec1[2]; double fRec2[2]; double fRec0[3]; - double fConst4; double fRec3[2]; double fRec4[2]; double fRec5[2]; @@ -108,9 +106,7 @@ class faust2chBpf2p : public sfzFilterDsp { fSamplingFreq = samplingFreq; fConst0 = std::min(192000.0, std::max(1.0, double(fSamplingFreq))); fConst1 = std::exp((0.0 - (1000.0 / fConst0))); - fConst2 = (1.0 - fConst1); - fConst3 = (6.2831853071795862 / fConst0); - fConst4 = (0.5 * fConst2); + fConst2 = (6.2831853071795862 / fConst0); } @@ -181,25 +177,27 @@ class faust2chBpf2p : public sfzFilterDsp { FAUSTFLOAT* input1 = inputs[1]; FAUSTFLOAT* output0 = outputs[0]; FAUSTFLOAT* output1 = outputs[1]; - double fSlow0 = (fConst3 * std::max(0.0, double(fCutoff))); - double fSlow1 = std::sin(fSlow0); - double fSlow2 = std::max(0.001, std::pow(10.0, (0.050000000000000003 * double(fQ)))); - double fSlow3 = (0.5 * (fSlow1 / fSlow2)); - double fSlow4 = (fSlow3 + 1.0); - double fSlow5 = (fConst2 * ((0.0 - (2.0 * std::cos(fSlow0))) / fSlow4)); - double fSlow6 = (fConst2 * ((1.0 - fSlow3) / fSlow4)); - double fSlow7 = (fSlow1 / (fSlow4 * fSlow2)); - double fSlow8 = (fConst4 * fSlow7); - double fSlow9 = (fConst2 * (0.0 - (0.5 * fSlow7))); + double fSlow0 = (fSmoothEnable?fConst1:0.0); + double fSlow1 = (fConst2 * std::max(0.0, double(fCutoff))); + double fSlow2 = std::sin(fSlow1); + double fSlow3 = std::max(0.001, std::pow(10.0, (0.050000000000000003 * double(fQ)))); + double fSlow4 = (0.5 * (fSlow2 / fSlow3)); + double fSlow5 = (fSlow4 + 1.0); + double fSlow6 = (1.0 - fSlow0); + double fSlow7 = (((0.0 - (2.0 * std::cos(fSlow1))) / fSlow5) * fSlow6); + double fSlow8 = (((1.0 - fSlow4) / fSlow5) * fSlow6); + double fSlow9 = (0.5 * (fSlow2 / (fSlow5 * fSlow3))); + double fSlow10 = (fSlow9 * fSlow6); + double fSlow11 = ((0.0 - fSlow9) * fSlow6); for (int i = 0; (i < count); i = (i + 1)) { double fTemp0 = double(input0[i]); double fTemp1 = double(input1[i]); - fRec1[0] = (fSlow5 + (fConst1 * fRec1[1])); - fRec2[0] = (fSlow6 + (fConst1 * fRec2[1])); + fRec1[0] = ((fRec1[1] * fSlow0) + fSlow7); + fRec2[0] = ((fRec2[1] * fSlow0) + fSlow8); fRec0[0] = (fTemp0 - ((fRec1[0] * fRec0[1]) + (fRec2[0] * fRec0[2]))); - fRec3[0] = (fSlow8 + (fConst1 * fRec3[1])); - fRec4[0] = (fConst1 * fRec4[1]); - fRec5[0] = (fSlow9 + (fConst1 * fRec5[1])); + fRec3[0] = ((fRec3[1] * fSlow0) + fSlow10); + fRec4[0] = (fRec4[1] * fSlow0); + fRec5[0] = ((fRec5[1] * fSlow0) + fSlow11); output0[i] = FAUSTFLOAT((((fRec0[0] * fRec3[0]) + (fRec4[0] * fRec0[1])) + (fRec5[0] * fRec0[2]))); fRec6[0] = (fTemp1 - ((fRec1[0] * fRec6[1]) + (fRec2[0] * fRec6[2]))); output1[i] = FAUSTFLOAT((((fRec3[0] * fRec6[0]) + (fRec4[0] * fRec6[1])) + (fRec5[0] * fRec6[2]))); diff --git a/src/sfizz/gen/filters/sfz2chBpf2pSv.cxx b/src/sfizz/gen/filters/sfz2chBpf2pSv.cxx index 907b37b0..b16a4fa0 100644 --- a/src/sfizz/gen/filters/sfz2chBpf2pSv.cxx +++ b/src/sfizz/gen/filters/sfz2chBpf2pSv.cxx @@ -34,7 +34,6 @@ class faust2chBpf2pSv : public sfzFilterDsp { double fConst0; double fConst1; double fConst2; - double fConst3; FAUSTFLOAT fCutoff; double fRec3[2]; FAUSTFLOAT fQ; @@ -108,8 +107,7 @@ class faust2chBpf2pSv : public sfzFilterDsp { fSamplingFreq = samplingFreq; fConst0 = std::min(192000.0, std::max(1.0, double(fSamplingFreq))); fConst1 = std::exp((0.0 - (1000.0 / fConst0))); - fConst2 = (1.0 - fConst1); - fConst3 = (3.1415926535897931 / fConst0); + fConst2 = (3.1415926535897931 / fConst0); } @@ -184,18 +182,19 @@ class faust2chBpf2pSv : public sfzFilterDsp { FAUSTFLOAT* input1 = inputs[1]; FAUSTFLOAT* output0 = outputs[0]; FAUSTFLOAT* output1 = outputs[1]; - double fSlow0 = (fConst2 * std::tan((fConst3 * double(fCutoff)))); - double fSlow1 = std::pow(10.0, (0.050000000000000003 * double(fQ))); - double fSlow2 = (1.0 / fSlow1); - double fSlow3 = (fConst2 / fSlow1); + double fSlow0 = (fSmoothEnable?fConst1:0.0); + double fSlow1 = (1.0 - fSlow0); + double fSlow2 = (std::tan((fConst2 * double(fCutoff))) * fSlow1); + double fSlow3 = (1.0 / std::pow(10.0, (0.050000000000000003 * double(fQ)))); + double fSlow4 = (fSlow3 * fSlow1); for (int i = 0; (i < count); i = (i + 1)) { double fTemp0 = double(input0[i]); double fTemp1 = double(input1[i]); - fRec3[0] = (fSlow0 + (fConst1 * fRec3[1])); - double fTemp2 = (fSlow2 + fRec3[0]); - fRec4[0] = ((fConst1 * fRec4[1]) + (fConst2 / ((fRec3[0] * fTemp2) + 1.0))); + fRec3[0] = ((fRec3[1] * fSlow0) + fSlow2); + double fTemp2 = (fSlow3 + fRec3[0]); + fRec4[0] = ((fRec4[1] * fSlow0) + (fSlow1 / ((fRec3[0] * fTemp2) + 1.0))); double fTemp3 = (fRec3[0] * fRec4[0]); - fRec5[0] = ((fConst1 * fRec5[1]) + (fConst2 * fTemp2)); + fRec5[0] = ((fRec5[1] * fSlow0) + (fSlow1 * fTemp2)); double fTemp4 = (fTemp0 - (fRec1[1] + (fRec5[0] * fRec2[1]))); double fTemp5 = (fTemp3 * fTemp4); double fTemp6 = (fRec2[1] + fTemp5); @@ -203,7 +202,7 @@ class faust2chBpf2pSv : public sfzFilterDsp { fRec1[0] = (fRec1[1] + (2.0 * (fRec3[0] * fTemp6))); double fTemp7 = (fRec2[1] + (2.0 * fTemp5)); fRec2[0] = fTemp7; - fRec6[0] = (fSlow3 + (fConst1 * fRec6[1])); + fRec6[0] = ((fRec6[1] * fSlow0) + fSlow4); output0[i] = FAUSTFLOAT((fRec0 * fRec6[0])); double fTemp8 = (fTemp1 - (fRec8[1] + (fRec5[0] * fRec9[1]))); double fTemp9 = (fTemp3 * fTemp8); diff --git a/src/sfizz/gen/filters/sfz2chBpf4p.cxx b/src/sfizz/gen/filters/sfz2chBpf4p.cxx index ecf21b14..b1548f38 100644 --- a/src/sfizz/gen/filters/sfz2chBpf4p.cxx +++ b/src/sfizz/gen/filters/sfz2chBpf4p.cxx @@ -34,8 +34,6 @@ class faust2chBpf4p : public sfzFilterDsp { double fConst0; double fConst1; double fConst2; - double fConst3; - double fConst4; FAUSTFLOAT fCutoff; FAUSTFLOAT fQ; double fRec0[2]; @@ -110,9 +108,7 @@ class faust2chBpf4p : public sfzFilterDsp { fSamplingFreq = samplingFreq; fConst0 = std::min(192000.0, std::max(1.0, double(fSamplingFreq))); fConst1 = std::exp((0.0 - (1000.0 / fConst0))); - fConst2 = (1.0 - fConst1); - fConst3 = (0.5 * fConst2); - fConst4 = (6.2831853071795862 / fConst0); + fConst2 = (6.2831853071795862 / fConst0); } @@ -191,25 +187,27 @@ class faust2chBpf4p : public sfzFilterDsp { FAUSTFLOAT* input1 = inputs[1]; FAUSTFLOAT* output0 = outputs[0]; FAUSTFLOAT* output1 = outputs[1]; - double fSlow0 = (fConst4 * std::max(0.0, double(fCutoff))); - double fSlow1 = std::sin(fSlow0); - double fSlow2 = std::max(0.001, std::pow(10.0, (0.050000000000000003 * double(fQ)))); - double fSlow3 = (0.5 * (fSlow1 / fSlow2)); - double fSlow4 = (fSlow3 + 1.0); - double fSlow5 = (fSlow1 / (fSlow4 * fSlow2)); - double fSlow6 = (fConst3 * fSlow5); - double fSlow7 = (fConst2 * ((0.0 - (2.0 * std::cos(fSlow0))) / fSlow4)); - double fSlow8 = (fConst2 * ((1.0 - fSlow3) / fSlow4)); - double fSlow9 = (fConst2 * (0.0 - (0.5 * fSlow5))); + double fSlow0 = (fSmoothEnable?fConst1:0.0); + double fSlow1 = (fConst2 * std::max(0.0, double(fCutoff))); + double fSlow2 = std::sin(fSlow1); + double fSlow3 = std::max(0.001, std::pow(10.0, (0.050000000000000003 * double(fQ)))); + double fSlow4 = (0.5 * (fSlow2 / fSlow3)); + double fSlow5 = (fSlow4 + 1.0); + double fSlow6 = (0.5 * (fSlow2 / (fSlow5 * fSlow3))); + double fSlow7 = (1.0 - fSlow0); + double fSlow8 = (fSlow6 * fSlow7); + double fSlow9 = (((0.0 - (2.0 * std::cos(fSlow1))) / fSlow5) * fSlow7); + double fSlow10 = (((1.0 - fSlow4) / fSlow5) * fSlow7); + double fSlow11 = ((0.0 - fSlow6) * fSlow7); for (int i = 0; (i < count); i = (i + 1)) { double fTemp0 = double(input0[i]); double fTemp1 = double(input1[i]); - fRec0[0] = (fSlow6 + (fConst1 * fRec0[1])); - fRec3[0] = (fSlow7 + (fConst1 * fRec3[1])); - fRec4[0] = (fSlow8 + (fConst1 * fRec4[1])); + fRec0[0] = ((fRec0[1] * fSlow0) + fSlow8); + fRec3[0] = ((fRec3[1] * fSlow0) + fSlow9); + fRec4[0] = ((fRec4[1] * fSlow0) + fSlow10); fRec2[0] = (fTemp0 - ((fRec3[0] * fRec2[1]) + (fRec4[0] * fRec2[2]))); - fRec5[0] = (fConst1 * fRec5[1]); - fRec6[0] = (fSlow9 + (fConst1 * fRec6[1])); + fRec5[0] = (fRec5[1] * fSlow0); + fRec6[0] = ((fRec6[1] * fSlow0) + fSlow11); fRec1[0] = ((((fRec2[0] * fRec0[0]) + (fRec5[0] * fRec2[1])) + (fRec6[0] * fRec2[2])) - ((fRec3[0] * fRec1[1]) + (fRec4[0] * fRec1[2]))); output0[i] = FAUSTFLOAT((((fRec0[0] * fRec1[0]) + (fRec5[0] * fRec1[1])) + (fRec6[0] * fRec1[2]))); fRec8[0] = (fTemp1 - ((fRec3[0] * fRec8[1]) + (fRec4[0] * fRec8[2]))); diff --git a/src/sfizz/gen/filters/sfz2chBpf6p.cxx b/src/sfizz/gen/filters/sfz2chBpf6p.cxx index 10431475..f871c716 100644 --- a/src/sfizz/gen/filters/sfz2chBpf6p.cxx +++ b/src/sfizz/gen/filters/sfz2chBpf6p.cxx @@ -34,15 +34,13 @@ class faust2chBpf6p : public sfzFilterDsp { double fConst0; double fConst1; double fConst2; - double fConst3; - double fConst4; FAUSTFLOAT fCutoff; FAUSTFLOAT fQ; double fRec0[2]; - double fRec4[2]; + double fRec3[2]; double fRec5[2]; - double fRec3[3]; double fRec6[2]; + double fRec4[3]; double fRec7[2]; double fRec2[3]; double fRec1[3]; @@ -112,9 +110,7 @@ class faust2chBpf6p : public sfzFilterDsp { fSamplingFreq = samplingFreq; fConst0 = std::min(192000.0, std::max(1.0, double(fSamplingFreq))); fConst1 = std::exp((0.0 - (1000.0 / fConst0))); - fConst2 = (1.0 - fConst1); - fConst3 = (0.5 * fConst2); - fConst4 = (6.2831853071795862 / fConst0); + fConst2 = (6.2831853071795862 / fConst0); } @@ -130,19 +126,19 @@ class faust2chBpf6p : public sfzFilterDsp { } for (int l1 = 0; (l1 < 2); l1 = (l1 + 1)) { - fRec4[l1] = 0.0; + fRec3[l1] = 0.0; } for (int l2 = 0; (l2 < 2); l2 = (l2 + 1)) { fRec5[l2] = 0.0; } - for (int l3 = 0; (l3 < 3); l3 = (l3 + 1)) { - fRec3[l3] = 0.0; + for (int l3 = 0; (l3 < 2); l3 = (l3 + 1)) { + fRec6[l3] = 0.0; } - for (int l4 = 0; (l4 < 2); l4 = (l4 + 1)) { - fRec6[l4] = 0.0; + for (int l4 = 0; (l4 < 3); l4 = (l4 + 1)) { + fRec4[l4] = 0.0; } for (int l5 = 0; (l5 < 2); l5 = (l5 + 1)) { @@ -201,38 +197,40 @@ class faust2chBpf6p : public sfzFilterDsp { FAUSTFLOAT* input1 = inputs[1]; FAUSTFLOAT* output0 = outputs[0]; FAUSTFLOAT* output1 = outputs[1]; - double fSlow0 = (fConst4 * std::max(0.0, double(fCutoff))); - double fSlow1 = std::sin(fSlow0); - double fSlow2 = std::max(0.001, std::pow(10.0, (0.050000000000000003 * double(fQ)))); - double fSlow3 = (0.5 * (fSlow1 / fSlow2)); - double fSlow4 = (fSlow3 + 1.0); - double fSlow5 = (fSlow1 / (fSlow4 * fSlow2)); - double fSlow6 = (fConst3 * fSlow5); - double fSlow7 = (fConst2 * ((0.0 - (2.0 * std::cos(fSlow0))) / fSlow4)); - double fSlow8 = (fConst2 * ((1.0 - fSlow3) / fSlow4)); - double fSlow9 = (fConst2 * (0.0 - (0.5 * fSlow5))); + double fSlow0 = (fSmoothEnable?fConst1:0.0); + double fSlow1 = (fConst2 * std::max(0.0, double(fCutoff))); + double fSlow2 = std::sin(fSlow1); + double fSlow3 = std::max(0.001, std::pow(10.0, (0.050000000000000003 * double(fQ)))); + double fSlow4 = (0.5 * (fSlow2 / fSlow3)); + double fSlow5 = (fSlow4 + 1.0); + double fSlow6 = (0.5 * (fSlow2 / (fSlow5 * fSlow3))); + double fSlow7 = (1.0 - fSlow0); + double fSlow8 = (fSlow6 * fSlow7); + double fSlow9 = (((0.0 - (2.0 * std::cos(fSlow1))) / fSlow5) * fSlow7); + double fSlow10 = (((1.0 - fSlow4) / fSlow5) * fSlow7); + double fSlow11 = ((0.0 - fSlow6) * fSlow7); for (int i = 0; (i < count); i = (i + 1)) { double fTemp0 = double(input0[i]); double fTemp1 = double(input1[i]); - fRec0[0] = (fSlow6 + (fConst1 * fRec0[1])); - fRec4[0] = (fSlow7 + (fConst1 * fRec4[1])); - fRec5[0] = (fSlow8 + (fConst1 * fRec5[1])); - fRec3[0] = (fTemp0 - ((fRec4[0] * fRec3[1]) + (fRec5[0] * fRec3[2]))); - fRec6[0] = (fConst1 * fRec6[1]); - fRec7[0] = (fSlow9 + (fConst1 * fRec7[1])); - fRec2[0] = ((((fRec3[0] * fRec0[0]) + (fRec6[0] * fRec3[1])) + (fRec7[0] * fRec3[2])) - ((fRec4[0] * fRec2[1]) + (fRec5[0] * fRec2[2]))); - fRec1[0] = ((((fRec0[0] * fRec2[0]) + (fRec6[0] * fRec2[1])) + (fRec7[0] * fRec2[2])) - ((fRec4[0] * fRec1[1]) + (fRec5[0] * fRec1[2]))); - output0[i] = FAUSTFLOAT((((fRec0[0] * fRec1[0]) + (fRec6[0] * fRec1[1])) + (fRec7[0] * fRec1[2]))); - fRec10[0] = (fTemp1 - ((fRec4[0] * fRec10[1]) + (fRec5[0] * fRec10[2]))); - fRec9[0] = ((((fRec0[0] * fRec10[0]) + (fRec6[0] * fRec10[1])) + (fRec7[0] * fRec10[2])) - ((fRec4[0] * fRec9[1]) + (fRec5[0] * fRec9[2]))); - fRec8[0] = ((((fRec0[0] * fRec9[0]) + (fRec6[0] * fRec9[1])) + (fRec7[0] * fRec9[2])) - ((fRec4[0] * fRec8[1]) + (fRec5[0] * fRec8[2]))); - output1[i] = FAUSTFLOAT((((fRec0[0] * fRec8[0]) + (fRec6[0] * fRec8[1])) + (fRec7[0] * fRec8[2]))); + fRec0[0] = ((fRec0[1] * fSlow0) + fSlow8); + fRec3[0] = (fRec3[1] * fSlow0); + fRec5[0] = ((fRec5[1] * fSlow0) + fSlow9); + fRec6[0] = ((fRec6[1] * fSlow0) + fSlow10); + fRec4[0] = (fTemp0 - ((fRec5[0] * fRec4[1]) + (fRec6[0] * fRec4[2]))); + fRec7[0] = (fSlow11 + (fRec7[1] * fSlow0)); + fRec2[0] = (((fRec3[0] * fRec4[1]) + ((fRec4[0] * fRec0[0]) + (fRec7[0] * fRec4[2]))) - ((fRec5[0] * fRec2[1]) + (fRec6[0] * fRec2[2]))); + fRec1[0] = ((((fRec0[0] * fRec2[0]) + (fRec3[0] * fRec2[1])) + (fRec7[0] * fRec2[2])) - ((fRec5[0] * fRec1[1]) + (fRec6[0] * fRec1[2]))); + output0[i] = FAUSTFLOAT((((fRec0[0] * fRec1[0]) + (fRec3[0] * fRec1[1])) + (fRec7[0] * fRec1[2]))); + fRec10[0] = (fTemp1 - ((fRec5[0] * fRec10[1]) + (fRec6[0] * fRec10[2]))); + fRec9[0] = ((((fRec0[0] * fRec10[0]) + (fRec3[0] * fRec10[1])) + (fRec7[0] * fRec10[2])) - ((fRec5[0] * fRec9[1]) + (fRec6[0] * fRec9[2]))); + fRec8[0] = ((((fRec0[0] * fRec9[0]) + (fRec3[0] * fRec9[1])) + (fRec7[0] * fRec9[2])) - ((fRec5[0] * fRec8[1]) + (fRec6[0] * fRec8[2]))); + output1[i] = FAUSTFLOAT((((fRec0[0] * fRec8[0]) + (fRec3[0] * fRec8[1])) + (fRec7[0] * fRec8[2]))); fRec0[1] = fRec0[0]; - fRec4[1] = fRec4[0]; - fRec5[1] = fRec5[0]; - fRec3[2] = fRec3[1]; fRec3[1] = fRec3[0]; + fRec5[1] = fRec5[0]; fRec6[1] = fRec6[0]; + fRec4[2] = fRec4[1]; + fRec4[1] = fRec4[0]; fRec7[1] = fRec7[0]; fRec2[2] = fRec2[1]; fRec2[1] = fRec2[0]; diff --git a/src/sfizz/gen/filters/sfz2chBrf1p.cxx b/src/sfizz/gen/filters/sfz2chBrf1p.cxx index e539ed91..ad37272d 100644 --- a/src/sfizz/gen/filters/sfz2chBrf1p.cxx +++ b/src/sfizz/gen/filters/sfz2chBrf1p.cxx @@ -34,7 +34,6 @@ class faust2chBrf1p : public sfzFilterDsp { double fConst0; double fConst1; double fConst2; - double fConst3; FAUSTFLOAT fCutoff; double fRec2[2]; double fRec1[2]; @@ -104,8 +103,7 @@ class faust2chBrf1p : public sfzFilterDsp { fSamplingFreq = samplingFreq; fConst0 = std::min(192000.0, std::max(1.0, double(fSamplingFreq))); fConst1 = std::exp((0.0 - (1000.0 / fConst0))); - fConst2 = (1.0 - fConst1); - fConst3 = (6.2831853071795862 / fConst0); + fConst2 = (6.2831853071795862 / fConst0); } @@ -167,11 +165,12 @@ class faust2chBrf1p : public sfzFilterDsp { FAUSTFLOAT* input1 = inputs[1]; FAUSTFLOAT* output0 = outputs[0]; FAUSTFLOAT* output1 = outputs[1]; - double fSlow0 = (fConst2 * ((fConst3 * double(fCutoff)) + -1.0)); + double fSlow0 = (fSmoothEnable?fConst1:0.0); + double fSlow1 = (((fConst2 * double(fCutoff)) + -1.0) * (1.0 - fSlow0)); for (int i = 0; (i < count); i = (i + 1)) { double fTemp0 = double(input0[i]); double fTemp1 = double(input1[i]); - fRec2[0] = (fSlow0 + (fConst1 * fRec2[1])); + fRec2[0] = ((fRec2[1] * fSlow0) + fSlow1); fRec1[0] = (fTemp0 - (fRec2[0] * fRec1[1])); fRec0[0] = (fRec1[1] + (fRec2[0] * (fRec1[0] - fRec0[1]))); output0[i] = FAUSTFLOAT(((fRec0[1] + (fRec2[0] * fRec0[0])) + fTemp0)); diff --git a/src/sfizz/gen/filters/sfz2chBrf2p.cxx b/src/sfizz/gen/filters/sfz2chBrf2p.cxx index 70880f4e..eb209c91 100644 --- a/src/sfizz/gen/filters/sfz2chBrf2p.cxx +++ b/src/sfizz/gen/filters/sfz2chBrf2p.cxx @@ -34,7 +34,6 @@ class faust2chBrf2p : public sfzFilterDsp { double fConst0; double fConst1; double fConst2; - double fConst3; FAUSTFLOAT fCutoff; FAUSTFLOAT fQ; double fRec0[2]; @@ -105,8 +104,7 @@ class faust2chBrf2p : public sfzFilterDsp { fSamplingFreq = samplingFreq; fConst0 = std::min(192000.0, std::max(1.0, double(fSamplingFreq))); fConst1 = std::exp((0.0 - (1000.0 / fConst0))); - fConst2 = (1.0 - fConst1); - fConst3 = (6.2831853071795862 / fConst0); + fConst2 = (6.2831853071795862 / fConst0); } @@ -169,20 +167,22 @@ class faust2chBrf2p : public sfzFilterDsp { FAUSTFLOAT* input1 = inputs[1]; FAUSTFLOAT* output0 = outputs[0]; FAUSTFLOAT* output1 = outputs[1]; - double fSlow0 = (fConst3 * std::max(0.0, double(fCutoff))); - double fSlow1 = (0.5 * (std::sin(fSlow0) / std::max(0.001, std::pow(10.0, (0.050000000000000003 * double(fQ)))))); - double fSlow2 = (fSlow1 + 1.0); - double fSlow3 = (fConst2 * ((0.0 - (2.0 * std::cos(fSlow0))) / fSlow2)); - double fSlow4 = (fConst2 * ((1.0 - fSlow1) / fSlow2)); - double fSlow5 = (fConst2 / fSlow2); + double fSlow0 = (fSmoothEnable?fConst1:0.0); + double fSlow1 = (fConst2 * std::max(0.0, double(fCutoff))); + double fSlow2 = (0.5 * (std::sin(fSlow1) / std::max(0.001, std::pow(10.0, (0.050000000000000003 * double(fQ)))))); + double fSlow3 = (fSlow2 + 1.0); + double fSlow4 = (1.0 - fSlow0); + double fSlow5 = (((0.0 - (2.0 * std::cos(fSlow1))) / fSlow3) * fSlow4); + double fSlow6 = (((1.0 - fSlow2) / fSlow3) * fSlow4); + double fSlow7 = ((1.0 / fSlow3) * fSlow4); for (int i = 0; (i < count); i = (i + 1)) { double fTemp0 = double(input0[i]); double fTemp1 = double(input1[i]); - fRec0[0] = (fSlow3 + (fConst1 * fRec0[1])); + fRec0[0] = ((fRec0[1] * fSlow0) + fSlow5); double fTemp2 = (fRec0[0] * fRec1[1]); - fRec2[0] = (fSlow4 + (fConst1 * fRec2[1])); + fRec2[0] = ((fRec2[1] * fSlow0) + fSlow6); fRec1[0] = (fTemp0 - (fTemp2 + (fRec2[0] * fRec1[2]))); - fRec3[0] = (fSlow5 + (fConst1 * fRec3[1])); + fRec3[0] = ((fRec3[1] * fSlow0) + fSlow7); output0[i] = FAUSTFLOAT((fTemp2 + (fRec3[0] * (fRec1[0] + fRec1[2])))); double fTemp3 = (fRec0[0] * fRec4[1]); fRec4[0] = (fTemp1 - (fTemp3 + (fRec2[0] * fRec4[2]))); diff --git a/src/sfizz/gen/filters/sfz2chBrf2pSv.cxx b/src/sfizz/gen/filters/sfz2chBrf2pSv.cxx index 46a79131..146cffbe 100644 --- a/src/sfizz/gen/filters/sfz2chBrf2pSv.cxx +++ b/src/sfizz/gen/filters/sfz2chBrf2pSv.cxx @@ -34,7 +34,6 @@ class faust2chBrf2pSv : public sfzFilterDsp { double fConst0; double fConst1; double fConst2; - double fConst3; FAUSTFLOAT fCutoff; double fRec5[2]; FAUSTFLOAT fQ; @@ -107,8 +106,7 @@ class faust2chBrf2pSv : public sfzFilterDsp { fSamplingFreq = samplingFreq; fConst0 = std::min(192000.0, std::max(1.0, double(fSamplingFreq))); fConst1 = std::exp((0.0 - (1000.0 / fConst0))); - fConst2 = (1.0 - fConst1); - fConst3 = (3.1415926535897931 / fConst0); + fConst2 = (3.1415926535897931 / fConst0); } @@ -179,15 +177,17 @@ class faust2chBrf2pSv : public sfzFilterDsp { FAUSTFLOAT* input1 = inputs[1]; FAUSTFLOAT* output0 = outputs[0]; FAUSTFLOAT* output1 = outputs[1]; - double fSlow0 = (fConst2 * std::tan((fConst3 * double(fCutoff)))); - double fSlow1 = (1.0 / std::pow(10.0, (0.050000000000000003 * double(fQ)))); + double fSlow0 = (fSmoothEnable?fConst1:0.0); + double fSlow1 = (1.0 - fSlow0); + double fSlow2 = (std::tan((fConst2 * double(fCutoff))) * fSlow1); + double fSlow3 = (1.0 / std::pow(10.0, (0.050000000000000003 * double(fQ)))); for (int i = 0; (i < count); i = (i + 1)) { double fTemp0 = double(input0[i]); double fTemp1 = double(input1[i]); - fRec5[0] = (fSlow0 + (fConst1 * fRec5[1])); - double fTemp2 = (fSlow1 + fRec5[0]); - fRec4[0] = ((fConst1 * fRec4[1]) + (fConst2 / ((fRec5[0] * fTemp2) + 1.0))); - fRec6[0] = ((fConst1 * fRec6[1]) + (fConst2 * fTemp2)); + fRec5[0] = ((fRec5[1] * fSlow0) + fSlow2); + double fTemp2 = (fSlow3 + fRec5[0]); + fRec4[0] = ((fRec4[1] * fSlow0) + (fSlow1 / ((fRec5[0] * fTemp2) + 1.0))); + fRec6[0] = ((fRec6[1] * fSlow0) + (fSlow1 * fTemp2)); double fTemp3 = (fTemp0 - (fRec2[1] + (fRec6[0] * fRec3[1]))); double fRec0 = (fRec4[0] * fTemp3); double fTemp4 = (fRec5[0] * fRec4[0]); diff --git a/src/sfizz/gen/filters/sfz2chEq.cxx b/src/sfizz/gen/filters/sfz2chEq.cxx index 39fa87bf..ce80c458 100644 --- a/src/sfizz/gen/filters/sfz2chEq.cxx +++ b/src/sfizz/gen/filters/sfz2chEq.cxx @@ -35,9 +35,8 @@ class faust2chEq : public sfzFilterDsp { double fConst0; double fConst1; double fConst2; - double fConst3; FAUSTFLOAT fCutoff; - double fConst4; + double fConst3; FAUSTFLOAT fBandwidth; FAUSTFLOAT fPkShGain; double fRec1[2]; @@ -109,9 +108,8 @@ class faust2chEq : public sfzFilterDsp { fSamplingFreq = samplingFreq; fConst0 = std::min(192000.0, std::max(1.0, double(fSamplingFreq))); fConst1 = std::exp((0.0 - (1000.0 / fConst0))); - fConst2 = (1.0 - fConst1); - fConst3 = (6.2831853071795862 / fConst0); - fConst4 = (2.1775860903036022 / fConst0); + fConst2 = (6.2831853071795862 / fConst0); + fConst3 = (2.1775860903036022 / fConst0); } @@ -179,30 +177,32 @@ class faust2chEq : public sfzFilterDsp { FAUSTFLOAT* input1 = inputs[1]; FAUSTFLOAT* output0 = outputs[0]; FAUSTFLOAT* output1 = outputs[1]; - double fSlow0 = std::max(0.0, double(fCutoff)); - double fSlow1 = (fConst3 * fSlow0); - double fSlow2 = std::sin(fSlow1); - double fSlow3 = std::max(0.001, (0.5 / double(sinh(double((fConst4 * ((fSlow0 * double(fBandwidth)) / fSlow2))))))); - double fSlow4 = std::pow(10.0, (0.025000000000000001 * double(fPkShGain))); - double fSlow5 = (0.5 * (fSlow2 / (fSlow3 * fSlow4))); - double fSlow6 = (fSlow5 + 1.0); - double fSlow7 = (fConst2 * ((0.0 - (2.0 * std::cos(fSlow1))) / fSlow6)); - double fSlow8 = (fConst2 * ((1.0 - fSlow5) / fSlow6)); - double fSlow9 = (0.5 * ((fSlow2 * fSlow4) / fSlow3)); - double fSlow10 = (fConst2 * ((fSlow9 + 1.0) / fSlow6)); - double fSlow11 = (fConst2 * ((1.0 - fSlow9) / fSlow6)); + double fSlow0 = (fSmoothEnable?fConst1:0.0); + double fSlow1 = std::max(0.0, double(fCutoff)); + double fSlow2 = (fConst2 * fSlow1); + double fSlow3 = std::sin(fSlow2); + double fSlow4 = std::max(0.001, (0.5 / double(sinh(double((fConst3 * ((fSlow1 * double(fBandwidth)) / fSlow3))))))); + double fSlow5 = std::pow(10.0, (0.025000000000000001 * double(fPkShGain))); + double fSlow6 = (0.5 * (fSlow3 / (fSlow4 * fSlow5))); + double fSlow7 = (fSlow6 + 1.0); + double fSlow8 = (1.0 - fSlow0); + double fSlow9 = (((0.0 - (2.0 * std::cos(fSlow2))) / fSlow7) * fSlow8); + double fSlow10 = (((1.0 - fSlow6) / fSlow7) * fSlow8); + double fSlow11 = (0.5 * ((fSlow3 * fSlow5) / fSlow4)); + double fSlow12 = (((fSlow11 + 1.0) / fSlow7) * fSlow8); + double fSlow13 = (((1.0 - fSlow11) / fSlow7) * fSlow8); for (int i = 0; (i < count); i = (i + 1)) { double fTemp0 = double(input0[i]); double fTemp1 = double(input1[i]); - fRec1[0] = (fSlow7 + (fConst1 * fRec1[1])); + fRec1[0] = ((fRec1[1] * fSlow0) + fSlow9); double fTemp2 = (fRec1[0] * fRec0[1]); - fRec2[0] = (fSlow8 + (fConst1 * fRec2[1])); + fRec2[0] = ((fRec2[1] * fSlow0) + fSlow10); fRec0[0] = (fTemp0 - (fTemp2 + (fRec2[0] * fRec0[2]))); - fRec3[0] = (fSlow10 + (fConst1 * fRec3[1])); - fRec4[0] = (fSlow11 + (fConst1 * fRec4[1])); + fRec3[0] = ((fRec3[1] * fSlow0) + fSlow12); + fRec4[0] = ((fRec4[1] * fSlow0) + fSlow13); output0[i] = FAUSTFLOAT((((fRec0[0] * fRec3[0]) + fTemp2) + (fRec4[0] * fRec0[2]))); double fTemp3 = (fRec1[0] * fRec5[1]); - fRec5[0] = (fTemp1 - ((fRec2[0] * fRec5[2]) + fTemp3)); + fRec5[0] = (fTemp1 - (fTemp3 + (fRec2[0] * fRec5[2]))); output1[i] = FAUSTFLOAT(((fTemp3 + (fRec3[0] * fRec5[0])) + (fRec4[0] * fRec5[2]))); fRec1[1] = fRec1[0]; fRec2[1] = fRec2[0]; diff --git a/src/sfizz/gen/filters/sfz2chHpf1p.cxx b/src/sfizz/gen/filters/sfz2chHpf1p.cxx index d54e1970..d5e2d06b 100644 --- a/src/sfizz/gen/filters/sfz2chHpf1p.cxx +++ b/src/sfizz/gen/filters/sfz2chHpf1p.cxx @@ -34,7 +34,6 @@ class faust2chHpf1p : public sfzFilterDsp { double fConst0; double fConst1; double fConst2; - double fConst3; FAUSTFLOAT fCutoff; double fRec1[2]; double fRec0[2]; @@ -102,8 +101,7 @@ class faust2chHpf1p : public sfzFilterDsp { fSamplingFreq = samplingFreq; fConst0 = std::min(192000.0, std::max(1.0, double(fSamplingFreq))); fConst1 = std::exp((0.0 - (1000.0 / fConst0))); - fConst2 = (1.0 - fConst1); - fConst3 = (1.0 / fConst0); + fConst2 = (1.0 / fConst0); } @@ -157,11 +155,12 @@ class faust2chHpf1p : public sfzFilterDsp { FAUSTFLOAT* input1 = inputs[1]; FAUSTFLOAT* output0 = outputs[0]; FAUSTFLOAT* output1 = outputs[1]; - double fSlow0 = (fConst2 * std::exp((fConst3 * (0.0 - (6.2831853071795862 * double(fCutoff)))))); + double fSlow0 = (fSmoothEnable?fConst1:0.0); + double fSlow1 = (std::exp((fConst2 * (0.0 - (6.2831853071795862 * double(fCutoff))))) * (1.0 - fSlow0)); for (int i = 0; (i < count); i = (i + 1)) { double fTemp0 = double(input0[i]); double fTemp1 = double(input1[i]); - fRec1[0] = (fSlow0 + (fConst1 * fRec1[1])); + fRec1[0] = ((fRec1[1] * fSlow0) + fSlow1); fRec0[0] = ((fRec1[0] * fRec0[1]) + fTemp0); double fTemp2 = (fRec1[0] + 1.0); double fTemp3 = (0.0 - (0.5 * fTemp2)); diff --git a/src/sfizz/gen/filters/sfz2chHpf2p.cxx b/src/sfizz/gen/filters/sfz2chHpf2p.cxx index 10937788..4b7d152b 100644 --- a/src/sfizz/gen/filters/sfz2chHpf2p.cxx +++ b/src/sfizz/gen/filters/sfz2chHpf2p.cxx @@ -34,14 +34,12 @@ class faust2chHpf2p : public sfzFilterDsp { double fConst0; double fConst1; double fConst2; - double fConst3; FAUSTFLOAT fCutoff; FAUSTFLOAT fQ; double fRec0[2]; double fRec2[2]; double fRec3[2]; double fRec1[3]; - double fConst4; double fRec4[2]; double fRec5[3]; @@ -107,9 +105,7 @@ class faust2chHpf2p : public sfzFilterDsp { fSamplingFreq = samplingFreq; fConst0 = std::min(192000.0, std::max(1.0, double(fSamplingFreq))); fConst1 = std::exp((0.0 - (1000.0 / fConst0))); - fConst2 = (1.0 - fConst1); - fConst3 = (6.2831853071795862 / fConst0); - fConst4 = (0.5 * fConst2); + fConst2 = (6.2831853071795862 / fConst0); } @@ -176,22 +172,24 @@ class faust2chHpf2p : public sfzFilterDsp { FAUSTFLOAT* input1 = inputs[1]; FAUSTFLOAT* output0 = outputs[0]; FAUSTFLOAT* output1 = outputs[1]; - double fSlow0 = (fConst3 * std::max(0.0, double(fCutoff))); - double fSlow1 = std::cos(fSlow0); - double fSlow2 = (0.5 * (std::sin(fSlow0) / std::max(0.001, std::pow(10.0, (0.050000000000000003 * double(fQ)))))); - double fSlow3 = (fSlow2 + 1.0); - double fSlow4 = (fConst2 * ((-1.0 - fSlow1) / fSlow3)); - double fSlow5 = (fConst2 * ((0.0 - (2.0 * fSlow1)) / fSlow3)); - double fSlow6 = (fConst2 * ((1.0 - fSlow2) / fSlow3)); - double fSlow7 = (fConst4 * ((fSlow1 + 1.0) / fSlow3)); + double fSlow0 = (fSmoothEnable?fConst1:0.0); + double fSlow1 = (fConst2 * std::max(0.0, double(fCutoff))); + double fSlow2 = std::cos(fSlow1); + double fSlow3 = (0.5 * (std::sin(fSlow1) / std::max(0.001, std::pow(10.0, (0.050000000000000003 * double(fQ)))))); + double fSlow4 = (fSlow3 + 1.0); + double fSlow5 = (1.0 - fSlow0); + double fSlow6 = (((-1.0 - fSlow2) / fSlow4) * fSlow5); + double fSlow7 = (((0.0 - (2.0 * fSlow2)) / fSlow4) * fSlow5); + double fSlow8 = (((1.0 - fSlow3) / fSlow4) * fSlow5); + double fSlow9 = ((0.5 * ((fSlow2 + 1.0) / fSlow4)) * fSlow5); for (int i = 0; (i < count); i = (i + 1)) { double fTemp0 = double(input0[i]); double fTemp1 = double(input1[i]); - fRec0[0] = (fSlow4 + (fConst1 * fRec0[1])); - fRec2[0] = (fSlow5 + (fConst1 * fRec2[1])); - fRec3[0] = (fSlow6 + (fConst1 * fRec3[1])); + fRec0[0] = ((fRec0[1] * fSlow0) + fSlow6); + fRec2[0] = ((fRec2[1] * fSlow0) + fSlow7); + fRec3[0] = ((fRec3[1] * fSlow0) + fSlow8); fRec1[0] = (fTemp0 - ((fRec2[0] * fRec1[1]) + (fRec3[0] * fRec1[2]))); - fRec4[0] = (fSlow7 + (fConst1 * fRec4[1])); + fRec4[0] = ((fRec4[1] * fSlow0) + fSlow9); output0[i] = FAUSTFLOAT(((fRec0[0] * fRec1[1]) + (fRec4[0] * (fRec1[0] + fRec1[2])))); fRec5[0] = (fTemp1 - ((fRec2[0] * fRec5[1]) + (fRec3[0] * fRec5[2]))); output1[i] = FAUSTFLOAT(((fRec0[0] * fRec5[1]) + (fRec4[0] * (fRec5[0] + fRec5[2])))); diff --git a/src/sfizz/gen/filters/sfz2chHpf2pSv.cxx b/src/sfizz/gen/filters/sfz2chHpf2pSv.cxx index 87eae183..40e6632a 100644 --- a/src/sfizz/gen/filters/sfz2chHpf2pSv.cxx +++ b/src/sfizz/gen/filters/sfz2chHpf2pSv.cxx @@ -34,7 +34,6 @@ class faust2chHpf2pSv : public sfzFilterDsp { double fConst0; double fConst1; double fConst2; - double fConst3; FAUSTFLOAT fCutoff; double fRec4[2]; FAUSTFLOAT fQ; @@ -107,8 +106,7 @@ class faust2chHpf2pSv : public sfzFilterDsp { fSamplingFreq = samplingFreq; fConst0 = std::min(192000.0, std::max(1.0, double(fSamplingFreq))); fConst1 = std::exp((0.0 - (1000.0 / fConst0))); - fConst2 = (1.0 - fConst1); - fConst3 = (3.1415926535897931 / fConst0); + fConst2 = (3.1415926535897931 / fConst0); } @@ -179,15 +177,17 @@ class faust2chHpf2pSv : public sfzFilterDsp { FAUSTFLOAT* input1 = inputs[1]; FAUSTFLOAT* output0 = outputs[0]; FAUSTFLOAT* output1 = outputs[1]; - double fSlow0 = (fConst2 * std::tan((fConst3 * double(fCutoff)))); - double fSlow1 = (1.0 / std::pow(10.0, (0.050000000000000003 * double(fQ)))); + double fSlow0 = (fSmoothEnable?fConst1:0.0); + double fSlow1 = (1.0 - fSlow0); + double fSlow2 = (std::tan((fConst2 * double(fCutoff))) * fSlow1); + double fSlow3 = (1.0 / std::pow(10.0, (0.050000000000000003 * double(fQ)))); for (int i = 0; (i < count); i = (i + 1)) { double fTemp0 = double(input0[i]); double fTemp1 = double(input1[i]); - fRec4[0] = (fSlow0 + (fConst1 * fRec4[1])); - double fTemp2 = (fSlow1 + fRec4[0]); - fRec3[0] = ((fConst2 / ((fRec4[0] * fTemp2) + 1.0)) + (fConst1 * fRec3[1])); - fRec5[0] = ((fConst1 * fRec5[1]) + (fConst2 * fTemp2)); + fRec4[0] = ((fRec4[1] * fSlow0) + fSlow2); + double fTemp2 = (fSlow3 + fRec4[0]); + fRec3[0] = ((fRec3[1] * fSlow0) + (fSlow1 / ((fRec4[0] * fTemp2) + 1.0))); + fRec5[0] = ((fRec5[1] * fSlow0) + (fSlow1 * fTemp2)); double fTemp3 = (fTemp0 - (fRec1[1] + (fRec5[0] * fRec2[1]))); double fRec0 = (fRec3[0] * fTemp3); double fTemp4 = (fRec4[0] * fRec3[0]); diff --git a/src/sfizz/gen/filters/sfz2chHpf4p.cxx b/src/sfizz/gen/filters/sfz2chHpf4p.cxx index 44b31a45..21e30410 100644 --- a/src/sfizz/gen/filters/sfz2chHpf4p.cxx +++ b/src/sfizz/gen/filters/sfz2chHpf4p.cxx @@ -34,14 +34,12 @@ class faust2chHpf4p : public sfzFilterDsp { double fConst0; double fConst1; double fConst2; - double fConst3; FAUSTFLOAT fCutoff; FAUSTFLOAT fQ; double fRec0[2]; double fRec3[2]; double fRec4[2]; double fRec2[3]; - double fConst4; double fRec5[2]; double fRec1[3]; double fRec7[3]; @@ -109,9 +107,7 @@ class faust2chHpf4p : public sfzFilterDsp { fSamplingFreq = samplingFreq; fConst0 = std::min(192000.0, std::max(1.0, double(fSamplingFreq))); fConst1 = std::exp((0.0 - (1000.0 / fConst0))); - fConst2 = (1.0 - fConst1); - fConst3 = (6.2831853071795862 / fConst0); - fConst4 = (0.5 * fConst2); + fConst2 = (6.2831853071795862 / fConst0); } @@ -186,22 +182,24 @@ class faust2chHpf4p : public sfzFilterDsp { FAUSTFLOAT* input1 = inputs[1]; FAUSTFLOAT* output0 = outputs[0]; FAUSTFLOAT* output1 = outputs[1]; - double fSlow0 = (fConst3 * std::max(0.0, double(fCutoff))); - double fSlow1 = std::cos(fSlow0); - double fSlow2 = (0.5 * (std::sin(fSlow0) / std::max(0.001, std::pow(10.0, (0.050000000000000003 * double(fQ)))))); - double fSlow3 = (fSlow2 + 1.0); - double fSlow4 = (fConst2 * ((-1.0 - fSlow1) / fSlow3)); - double fSlow5 = (fConst2 * ((0.0 - (2.0 * fSlow1)) / fSlow3)); - double fSlow6 = (fConst2 * ((1.0 - fSlow2) / fSlow3)); - double fSlow7 = (fConst4 * ((fSlow1 + 1.0) / fSlow3)); + double fSlow0 = (fSmoothEnable?fConst1:0.0); + double fSlow1 = (fConst2 * std::max(0.0, double(fCutoff))); + double fSlow2 = std::cos(fSlow1); + double fSlow3 = (0.5 * (std::sin(fSlow1) / std::max(0.001, std::pow(10.0, (0.050000000000000003 * double(fQ)))))); + double fSlow4 = (fSlow3 + 1.0); + double fSlow5 = (1.0 - fSlow0); + double fSlow6 = (((-1.0 - fSlow2) / fSlow4) * fSlow5); + double fSlow7 = (((0.0 - (2.0 * fSlow2)) / fSlow4) * fSlow5); + double fSlow8 = (((1.0 - fSlow3) / fSlow4) * fSlow5); + double fSlow9 = ((0.5 * ((fSlow2 + 1.0) / fSlow4)) * fSlow5); for (int i = 0; (i < count); i = (i + 1)) { double fTemp0 = double(input0[i]); double fTemp1 = double(input1[i]); - fRec0[0] = (fSlow4 + (fConst1 * fRec0[1])); - fRec3[0] = (fSlow5 + (fConst1 * fRec3[1])); - fRec4[0] = (fSlow6 + (fConst1 * fRec4[1])); + fRec0[0] = ((fRec0[1] * fSlow0) + fSlow6); + fRec3[0] = ((fRec3[1] * fSlow0) + fSlow7); + fRec4[0] = ((fRec4[1] * fSlow0) + fSlow8); fRec2[0] = (fTemp0 - ((fRec3[0] * fRec2[1]) + (fRec4[0] * fRec2[2]))); - fRec5[0] = (fSlow7 + (fConst1 * fRec5[1])); + fRec5[0] = ((fRec5[1] * fSlow0) + fSlow9); fRec1[0] = (((fRec0[0] * fRec2[1]) + (fRec5[0] * (fRec2[0] + fRec2[2]))) - ((fRec3[0] * fRec1[1]) + (fRec4[0] * fRec1[2]))); output0[i] = FAUSTFLOAT(((fRec0[0] * fRec1[1]) + (fRec5[0] * (fRec1[0] + fRec1[2])))); fRec7[0] = (fTemp1 - ((fRec3[0] * fRec7[1]) + (fRec4[0] * fRec7[2]))); diff --git a/src/sfizz/gen/filters/sfz2chHpf6p.cxx b/src/sfizz/gen/filters/sfz2chHpf6p.cxx index 4717ab0e..36e9c9e5 100644 --- a/src/sfizz/gen/filters/sfz2chHpf6p.cxx +++ b/src/sfizz/gen/filters/sfz2chHpf6p.cxx @@ -34,14 +34,12 @@ class faust2chHpf6p : public sfzFilterDsp { double fConst0; double fConst1; double fConst2; - double fConst3; FAUSTFLOAT fCutoff; FAUSTFLOAT fQ; double fRec0[2]; double fRec4[2]; double fRec5[2]; double fRec3[3]; - double fConst4; double fRec6[2]; double fRec2[3]; double fRec1[3]; @@ -111,9 +109,7 @@ class faust2chHpf6p : public sfzFilterDsp { fSamplingFreq = samplingFreq; fConst0 = std::min(192000.0, std::max(1.0, double(fSamplingFreq))); fConst1 = std::exp((0.0 - (1000.0 / fConst0))); - fConst2 = (1.0 - fConst1); - fConst3 = (6.2831853071795862 / fConst0); - fConst4 = (0.5 * fConst2); + fConst2 = (6.2831853071795862 / fConst0); } @@ -196,22 +192,24 @@ class faust2chHpf6p : public sfzFilterDsp { FAUSTFLOAT* input1 = inputs[1]; FAUSTFLOAT* output0 = outputs[0]; FAUSTFLOAT* output1 = outputs[1]; - double fSlow0 = (fConst3 * std::max(0.0, double(fCutoff))); - double fSlow1 = std::cos(fSlow0); - double fSlow2 = (0.5 * (std::sin(fSlow0) / std::max(0.001, std::pow(10.0, (0.050000000000000003 * double(fQ)))))); - double fSlow3 = (fSlow2 + 1.0); - double fSlow4 = (fConst2 * ((-1.0 - fSlow1) / fSlow3)); - double fSlow5 = (fConst2 * ((0.0 - (2.0 * fSlow1)) / fSlow3)); - double fSlow6 = (fConst2 * ((1.0 - fSlow2) / fSlow3)); - double fSlow7 = (fConst4 * ((fSlow1 + 1.0) / fSlow3)); + double fSlow0 = (fSmoothEnable?fConst1:0.0); + double fSlow1 = (fConst2 * std::max(0.0, double(fCutoff))); + double fSlow2 = std::cos(fSlow1); + double fSlow3 = (0.5 * (std::sin(fSlow1) / std::max(0.001, std::pow(10.0, (0.050000000000000003 * double(fQ)))))); + double fSlow4 = (fSlow3 + 1.0); + double fSlow5 = (1.0 - fSlow0); + double fSlow6 = (((-1.0 - fSlow2) / fSlow4) * fSlow5); + double fSlow7 = (((0.0 - (2.0 * fSlow2)) / fSlow4) * fSlow5); + double fSlow8 = (((1.0 - fSlow3) / fSlow4) * fSlow5); + double fSlow9 = ((0.5 * ((fSlow2 + 1.0) / fSlow4)) * fSlow5); for (int i = 0; (i < count); i = (i + 1)) { double fTemp0 = double(input0[i]); double fTemp1 = double(input1[i]); - fRec0[0] = (fSlow4 + (fConst1 * fRec0[1])); - fRec4[0] = (fSlow5 + (fConst1 * fRec4[1])); - fRec5[0] = (fSlow6 + (fConst1 * fRec5[1])); + fRec0[0] = ((fRec0[1] * fSlow0) + fSlow6); + fRec4[0] = ((fRec4[1] * fSlow0) + fSlow7); + fRec5[0] = ((fRec5[1] * fSlow0) + fSlow8); fRec3[0] = (fTemp0 - ((fRec4[0] * fRec3[1]) + (fRec5[0] * fRec3[2]))); - fRec6[0] = (fSlow7 + (fConst1 * fRec6[1])); + fRec6[0] = ((fRec6[1] * fSlow0) + fSlow9); fRec2[0] = (((fRec0[0] * fRec3[1]) + (fRec6[0] * (fRec3[0] + fRec3[2]))) - ((fRec4[0] * fRec2[1]) + (fRec5[0] * fRec2[2]))); fRec1[0] = (((fRec0[0] * fRec2[1]) + (fRec6[0] * (fRec2[0] + fRec2[2]))) - ((fRec4[0] * fRec1[1]) + (fRec5[0] * fRec1[2]))); output0[i] = FAUSTFLOAT(((fRec0[0] * fRec1[1]) + (fRec6[0] * (fRec1[0] + fRec1[2])))); diff --git a/src/sfizz/gen/filters/sfz2chHsh.cxx b/src/sfizz/gen/filters/sfz2chHsh.cxx index 3e7db1f6..a7ffb205 100644 --- a/src/sfizz/gen/filters/sfz2chHsh.cxx +++ b/src/sfizz/gen/filters/sfz2chHsh.cxx @@ -33,10 +33,8 @@ class faust2chHsh : public sfzFilterDsp { int fSamplingFreq; double fConst0; double fConst1; - double fConst2; - double fConst3; FAUSTFLOAT fPkShGain; - double fConst4; + double fConst2; FAUSTFLOAT fCutoff; FAUSTFLOAT fQ; double fRec1[2]; @@ -109,9 +107,7 @@ class faust2chHsh : public sfzFilterDsp { fSamplingFreq = samplingFreq; fConst0 = std::min(192000.0, std::max(1.0, double(fSamplingFreq))); fConst1 = std::exp((0.0 - (1000.0 / fConst0))); - fConst2 = (1.0 - fConst1); - fConst3 = (2.0 * fConst2); - fConst4 = (6.2831853071795862 / fConst0); + fConst2 = (6.2831853071795862 / fConst0); } @@ -183,28 +179,30 @@ class faust2chHsh : public sfzFilterDsp { FAUSTFLOAT* input1 = inputs[1]; FAUSTFLOAT* output0 = outputs[0]; FAUSTFLOAT* output1 = outputs[1]; - double fSlow0 = std::pow(10.0, (0.025000000000000001 * double(fPkShGain))); - double fSlow1 = (fConst4 * std::max(0.0, double(fCutoff))); - double fSlow2 = std::cos(fSlow1); - double fSlow3 = ((fSlow0 + 1.0) * fSlow2); - double fSlow4 = ((std::sqrt(fSlow0) * std::sin(fSlow1)) / std::max(0.001, std::pow(10.0, (0.050000000000000003 * double(fQ))))); - double fSlow5 = ((fSlow0 + -1.0) * fSlow2); - double fSlow6 = ((fSlow0 + fSlow4) + (1.0 - fSlow5)); - double fSlow7 = (fConst3 * ((fSlow0 + (-1.0 - fSlow3)) / fSlow6)); - double fSlow8 = (fConst2 * ((fSlow0 + (1.0 - (fSlow5 + fSlow4))) / fSlow6)); - double fSlow9 = (fSlow5 + fSlow0); - double fSlow10 = (fConst2 * ((((fSlow9 + fSlow4) + 1.0) * fSlow0) / fSlow6)); - double fSlow11 = (fConst2 * (((0.0 - (2.0 * fSlow0)) * ((fSlow3 + fSlow0) + -1.0)) / fSlow6)); - double fSlow12 = (fConst2 * (((fSlow9 + (1.0 - fSlow4)) * fSlow0) / fSlow6)); + double fSlow0 = (fSmoothEnable?fConst1:0.0); + double fSlow1 = std::pow(10.0, (0.025000000000000001 * double(fPkShGain))); + double fSlow2 = (fConst2 * std::max(0.0, double(fCutoff))); + double fSlow3 = std::cos(fSlow2); + double fSlow4 = ((fSlow1 + 1.0) * fSlow3); + double fSlow5 = ((std::sqrt(fSlow1) * std::sin(fSlow2)) / std::max(0.001, std::pow(10.0, (0.050000000000000003 * double(fQ))))); + double fSlow6 = ((fSlow1 + -1.0) * fSlow3); + double fSlow7 = ((fSlow1 + fSlow5) + (1.0 - fSlow6)); + double fSlow8 = (1.0 - fSlow0); + double fSlow9 = ((2.0 * ((fSlow1 + (-1.0 - fSlow4)) / fSlow7)) * fSlow8); + double fSlow10 = (((fSlow1 + (1.0 - (fSlow6 + fSlow5))) / fSlow7) * fSlow8); + double fSlow11 = (fSlow6 + fSlow1); + double fSlow12 = (((((fSlow11 + fSlow5) + 1.0) * fSlow1) / fSlow7) * fSlow8); + double fSlow13 = ((((0.0 - (2.0 * fSlow1)) * ((fSlow4 + fSlow1) + -1.0)) / fSlow7) * fSlow8); + double fSlow14 = ((((fSlow11 + (1.0 - fSlow5)) * fSlow1) / fSlow7) * fSlow8); for (int i = 0; (i < count); i = (i + 1)) { double fTemp0 = double(input0[i]); double fTemp1 = double(input1[i]); - fRec1[0] = (fSlow7 + (fConst1 * fRec1[1])); - fRec2[0] = (fSlow8 + (fConst1 * fRec2[1])); + fRec1[0] = ((fRec1[1] * fSlow0) + fSlow9); + fRec2[0] = ((fRec2[1] * fSlow0) + fSlow10); fRec0[0] = (fTemp0 - ((fRec1[0] * fRec0[1]) + (fRec2[0] * fRec0[2]))); - fRec3[0] = (fSlow10 + (fConst1 * fRec3[1])); - fRec4[0] = (fSlow11 + (fConst1 * fRec4[1])); - fRec5[0] = (fSlow12 + (fConst1 * fRec5[1])); + fRec3[0] = ((fRec3[1] * fSlow0) + fSlow12); + fRec4[0] = ((fRec4[1] * fSlow0) + fSlow13); + fRec5[0] = ((fRec5[1] * fSlow0) + fSlow14); output0[i] = FAUSTFLOAT((((fRec0[0] * fRec3[0]) + (fRec4[0] * fRec0[1])) + (fRec5[0] * fRec0[2]))); fRec6[0] = (fTemp1 - ((fRec1[0] * fRec6[1]) + (fRec2[0] * fRec6[2]))); output1[i] = FAUSTFLOAT((((fRec3[0] * fRec6[0]) + (fRec4[0] * fRec6[1])) + (fRec5[0] * fRec6[2]))); diff --git a/src/sfizz/gen/filters/sfz2chLpf1p.cxx b/src/sfizz/gen/filters/sfz2chLpf1p.cxx index f845cebb..e83bcd27 100644 --- a/src/sfizz/gen/filters/sfz2chLpf1p.cxx +++ b/src/sfizz/gen/filters/sfz2chLpf1p.cxx @@ -34,7 +34,6 @@ class faust2chLpf1p : public sfzFilterDsp { double fConst0; double fConst1; double fConst2; - double fConst3; FAUSTFLOAT fCutoff; double fRec1[2]; double fRec0[2]; @@ -102,8 +101,7 @@ class faust2chLpf1p : public sfzFilterDsp { fSamplingFreq = samplingFreq; fConst0 = std::min(192000.0, std::max(1.0, double(fSamplingFreq))); fConst1 = std::exp((0.0 - (1000.0 / fConst0))); - fConst2 = (1.0 - fConst1); - fConst3 = (1.0 / fConst0); + fConst2 = (1.0 / fConst0); } @@ -157,11 +155,12 @@ class faust2chLpf1p : public sfzFilterDsp { FAUSTFLOAT* input1 = inputs[1]; FAUSTFLOAT* output0 = outputs[0]; FAUSTFLOAT* output1 = outputs[1]; - double fSlow0 = (fConst2 * std::exp((fConst3 * (0.0 - (6.2831853071795862 * double(fCutoff)))))); + double fSlow0 = (fSmoothEnable?fConst1:0.0); + double fSlow1 = (std::exp((fConst2 * (0.0 - (6.2831853071795862 * double(fCutoff))))) * (1.0 - fSlow0)); for (int i = 0; (i < count); i = (i + 1)) { double fTemp0 = double(input0[i]); double fTemp1 = double(input1[i]); - fRec1[0] = (fSlow0 + (fConst1 * fRec1[1])); + fRec1[0] = ((fRec1[1] * fSlow0) + fSlow1); fRec0[0] = ((fRec1[0] * fRec0[1]) + fTemp0); double fTemp2 = (1.0 - fRec1[0]); output0[i] = FAUSTFLOAT((fRec0[0] * fTemp2)); diff --git a/src/sfizz/gen/filters/sfz2chLpf2p.cxx b/src/sfizz/gen/filters/sfz2chLpf2p.cxx index cb8a2578..392e67ac 100644 --- a/src/sfizz/gen/filters/sfz2chLpf2p.cxx +++ b/src/sfizz/gen/filters/sfz2chLpf2p.cxx @@ -33,15 +33,13 @@ class faust2chLpf2p : public sfzFilterDsp { int fSamplingFreq; double fConst0; double fConst1; - double fConst2; - double fConst3; FAUSTFLOAT fCutoff; FAUSTFLOAT fQ; + double fConst2; double fRec0[2]; double fRec2[2]; double fRec3[2]; double fRec1[3]; - double fConst4; double fRec4[2]; double fRec5[3]; @@ -106,10 +104,8 @@ class faust2chLpf2p : public sfzFilterDsp { virtual void instanceConstants(int samplingFreq) { fSamplingFreq = samplingFreq; fConst0 = std::min(192000.0, std::max(1.0, double(fSamplingFreq))); - fConst1 = std::exp((0.0 - (1000.0 / fConst0))); - fConst2 = (1.0 - fConst1); - fConst3 = (6.2831853071795862 / fConst0); - fConst4 = (0.5 * fConst2); + fConst1 = (6.2831853071795862 / fConst0); + fConst2 = std::exp((0.0 - (1000.0 / fConst0))); } @@ -176,23 +172,25 @@ class faust2chLpf2p : public sfzFilterDsp { FAUSTFLOAT* input1 = inputs[1]; FAUSTFLOAT* output0 = outputs[0]; FAUSTFLOAT* output1 = outputs[1]; - double fSlow0 = (fConst3 * std::max(0.0, double(fCutoff))); + double fSlow0 = (fConst1 * std::max(0.0, double(fCutoff))); double fSlow1 = std::cos(fSlow0); double fSlow2 = (0.5 * (std::sin(fSlow0) / std::max(0.001, std::pow(10.0, (0.050000000000000003 * double(fQ)))))); double fSlow3 = (fSlow2 + 1.0); double fSlow4 = ((1.0 - fSlow1) / fSlow3); - double fSlow5 = (fConst2 * fSlow4); - double fSlow6 = (fConst2 * ((0.0 - (2.0 * fSlow1)) / fSlow3)); - double fSlow7 = (fConst2 * ((1.0 - fSlow2) / fSlow3)); - double fSlow8 = (fConst4 * fSlow4); + double fSlow5 = (fSmoothEnable?fConst2:0.0); + double fSlow6 = (1.0 - fSlow5); + double fSlow7 = (fSlow4 * fSlow6); + double fSlow8 = (((0.0 - (2.0 * fSlow1)) / fSlow3) * fSlow6); + double fSlow9 = (((1.0 - fSlow2) / fSlow3) * fSlow6); + double fSlow10 = ((0.5 * fSlow4) * fSlow6); for (int i = 0; (i < count); i = (i + 1)) { double fTemp0 = double(input0[i]); double fTemp1 = double(input1[i]); - fRec0[0] = (fSlow5 + (fConst1 * fRec0[1])); - fRec2[0] = (fSlow6 + (fConst1 * fRec2[1])); - fRec3[0] = (fSlow7 + (fConst1 * fRec3[1])); + fRec0[0] = (fSlow7 + (fRec0[1] * fSlow5)); + fRec2[0] = ((fRec2[1] * fSlow5) + fSlow8); + fRec3[0] = ((fRec3[1] * fSlow5) + fSlow9); fRec1[0] = (fTemp0 - ((fRec2[0] * fRec1[1]) + (fRec3[0] * fRec1[2]))); - fRec4[0] = (fSlow8 + (fConst1 * fRec4[1])); + fRec4[0] = ((fRec4[1] * fSlow5) + fSlow10); output0[i] = FAUSTFLOAT(((fRec0[0] * fRec1[1]) + (fRec4[0] * (fRec1[0] + fRec1[2])))); fRec5[0] = (fTemp1 - ((fRec2[0] * fRec5[1]) + (fRec3[0] * fRec5[2]))); output1[i] = FAUSTFLOAT(((fRec0[0] * fRec5[1]) + (fRec4[0] * (fRec5[0] + fRec5[2])))); diff --git a/src/sfizz/gen/filters/sfz2chLpf2pSv.cxx b/src/sfizz/gen/filters/sfz2chLpf2pSv.cxx index 90273d7b..51397800 100644 --- a/src/sfizz/gen/filters/sfz2chLpf2pSv.cxx +++ b/src/sfizz/gen/filters/sfz2chLpf2pSv.cxx @@ -34,7 +34,6 @@ class faust2chLpf2pSv : public sfzFilterDsp { double fConst0; double fConst1; double fConst2; - double fConst3; FAUSTFLOAT fCutoff; double fRec3[2]; FAUSTFLOAT fQ; @@ -107,8 +106,7 @@ class faust2chLpf2pSv : public sfzFilterDsp { fSamplingFreq = samplingFreq; fConst0 = std::min(192000.0, std::max(1.0, double(fSamplingFreq))); fConst1 = std::exp((0.0 - (1000.0 / fConst0))); - fConst2 = (1.0 - fConst1); - fConst3 = (3.1415926535897931 / fConst0); + fConst2 = (3.1415926535897931 / fConst0); } @@ -179,16 +177,18 @@ class faust2chLpf2pSv : public sfzFilterDsp { FAUSTFLOAT* input1 = inputs[1]; FAUSTFLOAT* output0 = outputs[0]; FAUSTFLOAT* output1 = outputs[1]; - double fSlow0 = (fConst2 * std::tan((fConst3 * double(fCutoff)))); - double fSlow1 = (1.0 / std::pow(10.0, (0.050000000000000003 * double(fQ)))); + double fSlow0 = (fSmoothEnable?fConst1:0.0); + double fSlow1 = (1.0 - fSlow0); + double fSlow2 = (std::tan((fConst2 * double(fCutoff))) * fSlow1); + double fSlow3 = (1.0 / std::pow(10.0, (0.050000000000000003 * double(fQ)))); for (int i = 0; (i < count); i = (i + 1)) { double fTemp0 = double(input0[i]); double fTemp1 = double(input1[i]); - fRec3[0] = (fSlow0 + (fConst1 * fRec3[1])); - double fTemp2 = (fSlow1 + fRec3[0]); - fRec4[0] = ((fConst2 / ((fRec3[0] * fTemp2) + 1.0)) + (fConst1 * fRec4[1])); + fRec3[0] = ((fRec3[1] * fSlow0) + fSlow2); + double fTemp2 = (fSlow3 + fRec3[0]); + fRec4[0] = ((fRec4[1] * fSlow0) + (fSlow1 / ((fRec3[0] * fTemp2) + 1.0))); double fTemp3 = (fRec3[0] * fRec4[0]); - fRec5[0] = ((fConst1 * fRec5[1]) + (fConst2 * fTemp2)); + fRec5[0] = ((fRec5[1] * fSlow0) + (fSlow1 * fTemp2)); double fTemp4 = (fTemp0 - (fRec1[1] + (fRec5[0] * fRec2[1]))); double fTemp5 = (fTemp3 * fTemp4); double fTemp6 = (fRec2[1] + (2.0 * fTemp5)); diff --git a/src/sfizz/gen/filters/sfz2chLpf4p.cxx b/src/sfizz/gen/filters/sfz2chLpf4p.cxx index 698db5de..663b3cd7 100644 --- a/src/sfizz/gen/filters/sfz2chLpf4p.cxx +++ b/src/sfizz/gen/filters/sfz2chLpf4p.cxx @@ -33,15 +33,13 @@ class faust2chLpf4p : public sfzFilterDsp { int fSamplingFreq; double fConst0; double fConst1; - double fConst2; - double fConst3; FAUSTFLOAT fCutoff; FAUSTFLOAT fQ; + double fConst2; double fRec0[2]; double fRec3[2]; double fRec4[2]; double fRec2[3]; - double fConst4; double fRec5[2]; double fRec1[3]; double fRec7[3]; @@ -108,10 +106,8 @@ class faust2chLpf4p : public sfzFilterDsp { virtual void instanceConstants(int samplingFreq) { fSamplingFreq = samplingFreq; fConst0 = std::min(192000.0, std::max(1.0, double(fSamplingFreq))); - fConst1 = std::exp((0.0 - (1000.0 / fConst0))); - fConst2 = (1.0 - fConst1); - fConst3 = (6.2831853071795862 / fConst0); - fConst4 = (0.5 * fConst2); + fConst1 = (6.2831853071795862 / fConst0); + fConst2 = std::exp((0.0 - (1000.0 / fConst0))); } @@ -186,23 +182,25 @@ class faust2chLpf4p : public sfzFilterDsp { FAUSTFLOAT* input1 = inputs[1]; FAUSTFLOAT* output0 = outputs[0]; FAUSTFLOAT* output1 = outputs[1]; - double fSlow0 = (fConst3 * std::max(0.0, double(fCutoff))); + double fSlow0 = (fConst1 * std::max(0.0, double(fCutoff))); double fSlow1 = std::cos(fSlow0); double fSlow2 = (0.5 * (std::sin(fSlow0) / std::max(0.001, std::pow(10.0, (0.050000000000000003 * double(fQ)))))); double fSlow3 = (fSlow2 + 1.0); double fSlow4 = ((1.0 - fSlow1) / fSlow3); - double fSlow5 = (fConst2 * fSlow4); - double fSlow6 = (fConst2 * ((0.0 - (2.0 * fSlow1)) / fSlow3)); - double fSlow7 = (fConst2 * ((1.0 - fSlow2) / fSlow3)); - double fSlow8 = (fConst4 * fSlow4); + double fSlow5 = (fSmoothEnable?fConst2:0.0); + double fSlow6 = (1.0 - fSlow5); + double fSlow7 = (fSlow4 * fSlow6); + double fSlow8 = (((0.0 - (2.0 * fSlow1)) / fSlow3) * fSlow6); + double fSlow9 = (((1.0 - fSlow2) / fSlow3) * fSlow6); + double fSlow10 = ((0.5 * fSlow4) * fSlow6); for (int i = 0; (i < count); i = (i + 1)) { double fTemp0 = double(input0[i]); double fTemp1 = double(input1[i]); - fRec0[0] = (fSlow5 + (fConst1 * fRec0[1])); - fRec3[0] = (fSlow6 + (fConst1 * fRec3[1])); - fRec4[0] = (fSlow7 + (fConst1 * fRec4[1])); + fRec0[0] = (fSlow7 + (fRec0[1] * fSlow5)); + fRec3[0] = ((fRec3[1] * fSlow5) + fSlow8); + fRec4[0] = ((fRec4[1] * fSlow5) + fSlow9); fRec2[0] = (fTemp0 - ((fRec3[0] * fRec2[1]) + (fRec4[0] * fRec2[2]))); - fRec5[0] = (fSlow8 + (fConst1 * fRec5[1])); + fRec5[0] = ((fRec5[1] * fSlow5) + fSlow10); fRec1[0] = (((fRec0[0] * fRec2[1]) + (fRec5[0] * (fRec2[0] + fRec2[2]))) - ((fRec3[0] * fRec1[1]) + (fRec4[0] * fRec1[2]))); output0[i] = FAUSTFLOAT(((fRec0[0] * fRec1[1]) + (fRec5[0] * (fRec1[0] + fRec1[2])))); fRec7[0] = (fTemp1 - ((fRec3[0] * fRec7[1]) + (fRec4[0] * fRec7[2]))); diff --git a/src/sfizz/gen/filters/sfz2chLpf6p.cxx b/src/sfizz/gen/filters/sfz2chLpf6p.cxx index b8a0bda8..2f253272 100644 --- a/src/sfizz/gen/filters/sfz2chLpf6p.cxx +++ b/src/sfizz/gen/filters/sfz2chLpf6p.cxx @@ -33,15 +33,13 @@ class faust2chLpf6p : public sfzFilterDsp { int fSamplingFreq; double fConst0; double fConst1; - double fConst2; - double fConst3; FAUSTFLOAT fCutoff; FAUSTFLOAT fQ; + double fConst2; double fRec0[2]; double fRec4[2]; double fRec5[2]; double fRec3[3]; - double fConst4; double fRec6[2]; double fRec2[3]; double fRec1[3]; @@ -110,10 +108,8 @@ class faust2chLpf6p : public sfzFilterDsp { virtual void instanceConstants(int samplingFreq) { fSamplingFreq = samplingFreq; fConst0 = std::min(192000.0, std::max(1.0, double(fSamplingFreq))); - fConst1 = std::exp((0.0 - (1000.0 / fConst0))); - fConst2 = (1.0 - fConst1); - fConst3 = (6.2831853071795862 / fConst0); - fConst4 = (0.5 * fConst2); + fConst1 = (6.2831853071795862 / fConst0); + fConst2 = std::exp((0.0 - (1000.0 / fConst0))); } @@ -196,23 +192,25 @@ class faust2chLpf6p : public sfzFilterDsp { FAUSTFLOAT* input1 = inputs[1]; FAUSTFLOAT* output0 = outputs[0]; FAUSTFLOAT* output1 = outputs[1]; - double fSlow0 = (fConst3 * std::max(0.0, double(fCutoff))); + double fSlow0 = (fConst1 * std::max(0.0, double(fCutoff))); double fSlow1 = std::cos(fSlow0); double fSlow2 = (0.5 * (std::sin(fSlow0) / std::max(0.001, std::pow(10.0, (0.050000000000000003 * double(fQ)))))); double fSlow3 = (fSlow2 + 1.0); double fSlow4 = ((1.0 - fSlow1) / fSlow3); - double fSlow5 = (fConst2 * fSlow4); - double fSlow6 = (fConst2 * ((0.0 - (2.0 * fSlow1)) / fSlow3)); - double fSlow7 = (fConst2 * ((1.0 - fSlow2) / fSlow3)); - double fSlow8 = (fConst4 * fSlow4); + double fSlow5 = (fSmoothEnable?fConst2:0.0); + double fSlow6 = (1.0 - fSlow5); + double fSlow7 = (fSlow4 * fSlow6); + double fSlow8 = (((0.0 - (2.0 * fSlow1)) / fSlow3) * fSlow6); + double fSlow9 = (((1.0 - fSlow2) / fSlow3) * fSlow6); + double fSlow10 = ((0.5 * fSlow4) * fSlow6); for (int i = 0; (i < count); i = (i + 1)) { double fTemp0 = double(input0[i]); double fTemp1 = double(input1[i]); - fRec0[0] = (fSlow5 + (fConst1 * fRec0[1])); - fRec4[0] = (fSlow6 + (fConst1 * fRec4[1])); - fRec5[0] = (fSlow7 + (fConst1 * fRec5[1])); + fRec0[0] = (fSlow7 + (fRec0[1] * fSlow5)); + fRec4[0] = ((fRec4[1] * fSlow5) + fSlow8); + fRec5[0] = ((fRec5[1] * fSlow5) + fSlow9); fRec3[0] = (fTemp0 - ((fRec4[0] * fRec3[1]) + (fRec5[0] * fRec3[2]))); - fRec6[0] = (fSlow8 + (fConst1 * fRec6[1])); + fRec6[0] = ((fRec6[1] * fSlow5) + fSlow10); fRec2[0] = (((fRec0[0] * fRec3[1]) + (fRec6[0] * (fRec3[0] + fRec3[2]))) - ((fRec4[0] * fRec2[1]) + (fRec5[0] * fRec2[2]))); fRec1[0] = (((fRec0[0] * fRec2[1]) + (fRec6[0] * (fRec2[0] + fRec2[2]))) - ((fRec4[0] * fRec1[1]) + (fRec5[0] * fRec1[2]))); output0[i] = FAUSTFLOAT(((fRec0[0] * fRec1[1]) + (fRec6[0] * (fRec1[0] + fRec1[2])))); diff --git a/src/sfizz/gen/filters/sfz2chLsh.cxx b/src/sfizz/gen/filters/sfz2chLsh.cxx index 21281c26..1c8a1696 100644 --- a/src/sfizz/gen/filters/sfz2chLsh.cxx +++ b/src/sfizz/gen/filters/sfz2chLsh.cxx @@ -33,16 +33,14 @@ class faust2chLsh : public sfzFilterDsp { int fSamplingFreq; double fConst0; double fConst1; - double fConst2; FAUSTFLOAT fPkShGain; - double fConst3; + double fConst2; FAUSTFLOAT fCutoff; FAUSTFLOAT fQ; double fRec1[2]; double fRec2[2]; double fRec0[3]; double fRec3[2]; - double fConst4; double fRec4[2]; double fRec5[2]; double fRec6[3]; @@ -109,9 +107,7 @@ class faust2chLsh : public sfzFilterDsp { fSamplingFreq = samplingFreq; fConst0 = std::min(192000.0, std::max(1.0, double(fSamplingFreq))); fConst1 = std::exp((0.0 - (1000.0 / fConst0))); - fConst2 = (1.0 - fConst1); - fConst3 = (6.2831853071795862 / fConst0); - fConst4 = (2.0 * fConst2); + fConst2 = (6.2831853071795862 / fConst0); } @@ -183,28 +179,30 @@ class faust2chLsh : public sfzFilterDsp { FAUSTFLOAT* input1 = inputs[1]; FAUSTFLOAT* output0 = outputs[0]; FAUSTFLOAT* output1 = outputs[1]; - double fSlow0 = std::pow(10.0, (0.025000000000000001 * double(fPkShGain))); - double fSlow1 = (fConst3 * std::max(0.0, double(fCutoff))); - double fSlow2 = std::cos(fSlow1); - double fSlow3 = ((fSlow0 + 1.0) * fSlow2); - double fSlow4 = ((fSlow0 + -1.0) * fSlow2); - double fSlow5 = (fSlow4 + fSlow0); - double fSlow6 = ((std::sqrt(fSlow0) * std::sin(fSlow1)) / std::max(0.001, std::pow(10.0, (0.050000000000000003 * double(fQ))))); - double fSlow7 = ((fSlow5 + fSlow6) + 1.0); - double fSlow8 = (fConst2 * ((0.0 - (2.0 * ((fSlow3 + fSlow0) + -1.0))) / fSlow7)); - double fSlow9 = (fConst2 * ((fSlow5 + (1.0 - fSlow6)) / fSlow7)); - double fSlow10 = (fConst2 * ((((fSlow0 + fSlow6) + (1.0 - fSlow4)) * fSlow0) / fSlow7)); - double fSlow11 = (fConst4 * (((fSlow0 + (-1.0 - fSlow3)) * fSlow0) / fSlow7)); - double fSlow12 = (fConst2 * (((fSlow0 + (1.0 - (fSlow4 + fSlow6))) * fSlow0) / fSlow7)); + double fSlow0 = (fSmoothEnable?fConst1:0.0); + double fSlow1 = std::pow(10.0, (0.025000000000000001 * double(fPkShGain))); + double fSlow2 = (fConst2 * std::max(0.0, double(fCutoff))); + double fSlow3 = std::cos(fSlow2); + double fSlow4 = ((fSlow1 + 1.0) * fSlow3); + double fSlow5 = ((fSlow1 + -1.0) * fSlow3); + double fSlow6 = (fSlow5 + fSlow1); + double fSlow7 = ((std::sqrt(fSlow1) * std::sin(fSlow2)) / std::max(0.001, std::pow(10.0, (0.050000000000000003 * double(fQ))))); + double fSlow8 = ((fSlow6 + fSlow7) + 1.0); + double fSlow9 = (1.0 - fSlow0); + double fSlow10 = (((0.0 - (2.0 * ((fSlow4 + fSlow1) + -1.0))) / fSlow8) * fSlow9); + double fSlow11 = (((fSlow6 + (1.0 - fSlow7)) / fSlow8) * fSlow9); + double fSlow12 = (((((fSlow1 + fSlow7) + (1.0 - fSlow5)) * fSlow1) / fSlow8) * fSlow9); + double fSlow13 = ((2.0 * (((fSlow1 + (-1.0 - fSlow4)) * fSlow1) / fSlow8)) * fSlow9); + double fSlow14 = ((((fSlow1 + (1.0 - (fSlow5 + fSlow7))) * fSlow1) / fSlow8) * fSlow9); for (int i = 0; (i < count); i = (i + 1)) { double fTemp0 = double(input0[i]); double fTemp1 = double(input1[i]); - fRec1[0] = (fSlow8 + (fConst1 * fRec1[1])); - fRec2[0] = (fSlow9 + (fConst1 * fRec2[1])); + fRec1[0] = ((fRec1[1] * fSlow0) + fSlow10); + fRec2[0] = ((fRec2[1] * fSlow0) + fSlow11); fRec0[0] = (fTemp0 - ((fRec1[0] * fRec0[1]) + (fRec2[0] * fRec0[2]))); - fRec3[0] = (fSlow10 + (fConst1 * fRec3[1])); - fRec4[0] = (fSlow11 + (fConst1 * fRec4[1])); - fRec5[0] = (fSlow12 + (fConst1 * fRec5[1])); + fRec3[0] = ((fRec3[1] * fSlow0) + fSlow12); + fRec4[0] = ((fRec4[1] * fSlow0) + fSlow13); + fRec5[0] = ((fRec5[1] * fSlow0) + fSlow14); output0[i] = FAUSTFLOAT((((fRec0[0] * fRec3[0]) + (fRec4[0] * fRec0[1])) + (fRec5[0] * fRec0[2]))); fRec6[0] = (fTemp1 - ((fRec1[0] * fRec6[1]) + (fRec2[0] * fRec6[2]))); output1[i] = FAUSTFLOAT((((fRec3[0] * fRec6[0]) + (fRec4[0] * fRec6[1])) + (fRec5[0] * fRec6[2]))); diff --git a/src/sfizz/gen/filters/sfz2chPeq.cxx b/src/sfizz/gen/filters/sfz2chPeq.cxx index c66ca93a..7f4db7dc 100644 --- a/src/sfizz/gen/filters/sfz2chPeq.cxx +++ b/src/sfizz/gen/filters/sfz2chPeq.cxx @@ -34,13 +34,12 @@ class faust2chPeq : public sfzFilterDsp { double fConst0; double fConst1; double fConst2; - double fConst3; FAUSTFLOAT fCutoff; FAUSTFLOAT fQ; FAUSTFLOAT fPkShGain; - double fRec0[2]; + double fRec1[2]; double fRec2[2]; - double fRec1[3]; + double fRec0[3]; double fRec3[2]; double fRec4[2]; double fRec5[3]; @@ -107,8 +106,7 @@ class faust2chPeq : public sfzFilterDsp { fSamplingFreq = samplingFreq; fConst0 = std::min(192000.0, std::max(1.0, double(fSamplingFreq))); fConst1 = std::exp((0.0 - (1000.0 / fConst0))); - fConst2 = (1.0 - fConst1); - fConst3 = (6.2831853071795862 / fConst0); + fConst2 = (6.2831853071795862 / fConst0); } @@ -121,7 +119,7 @@ class faust2chPeq : public sfzFilterDsp { virtual void instanceClear() { for (int l0 = 0; (l0 < 2); l0 = (l0 + 1)) { - fRec0[l0] = 0.0; + fRec1[l0] = 0.0; } for (int l1 = 0; (l1 < 2); l1 = (l1 + 1)) { @@ -129,7 +127,7 @@ class faust2chPeq : public sfzFilterDsp { } for (int l2 = 0; (l2 < 3); l2 = (l2 + 1)) { - fRec1[l2] = 0.0; + fRec0[l2] = 0.0; } for (int l3 = 0; (l3 < 2); l3 = (l3 + 1)) { @@ -176,34 +174,36 @@ class faust2chPeq : public sfzFilterDsp { FAUSTFLOAT* input1 = inputs[1]; FAUSTFLOAT* output0 = outputs[0]; FAUSTFLOAT* output1 = outputs[1]; - double fSlow0 = (fConst3 * std::max(0.0, double(fCutoff))); - double fSlow1 = std::sin(fSlow0); - double fSlow2 = std::max(0.001, std::pow(10.0, (0.050000000000000003 * double(fQ)))); - double fSlow3 = std::pow(10.0, (0.025000000000000001 * double(fPkShGain))); - double fSlow4 = (0.5 * (fSlow1 / (fSlow2 * fSlow3))); - double fSlow5 = (fSlow4 + 1.0); - double fSlow6 = (fConst2 * ((0.0 - (2.0 * std::cos(fSlow0))) / fSlow5)); - double fSlow7 = (fConst2 * ((1.0 - fSlow4) / fSlow5)); - double fSlow8 = (0.5 * ((fSlow1 * fSlow3) / fSlow2)); - double fSlow9 = (fConst2 * ((fSlow8 + 1.0) / fSlow5)); - double fSlow10 = (fConst2 * ((1.0 - fSlow8) / fSlow5)); + double fSlow0 = (fSmoothEnable?fConst1:0.0); + double fSlow1 = (fConst2 * std::max(0.0, double(fCutoff))); + double fSlow2 = std::sin(fSlow1); + double fSlow3 = std::max(0.001, std::pow(10.0, (0.050000000000000003 * double(fQ)))); + double fSlow4 = std::pow(10.0, (0.025000000000000001 * double(fPkShGain))); + double fSlow5 = (0.5 * (fSlow2 / (fSlow3 * fSlow4))); + double fSlow6 = (fSlow5 + 1.0); + double fSlow7 = (1.0 - fSlow0); + double fSlow8 = (((0.0 - (2.0 * std::cos(fSlow1))) / fSlow6) * fSlow7); + double fSlow9 = (((1.0 - fSlow5) / fSlow6) * fSlow7); + double fSlow10 = (0.5 * ((fSlow2 * fSlow4) / fSlow3)); + double fSlow11 = (((fSlow10 + 1.0) / fSlow6) * fSlow7); + double fSlow12 = (((1.0 - fSlow10) / fSlow6) * fSlow7); for (int i = 0; (i < count); i = (i + 1)) { double fTemp0 = double(input0[i]); double fTemp1 = double(input1[i]); - fRec0[0] = (fSlow6 + (fConst1 * fRec0[1])); - double fTemp2 = (fRec0[0] * fRec1[1]); - fRec2[0] = (fSlow7 + (fConst1 * fRec2[1])); - fRec1[0] = (fTemp0 - (fTemp2 + (fRec2[0] * fRec1[2]))); - fRec3[0] = (fSlow9 + (fConst1 * fRec3[1])); - fRec4[0] = (fSlow10 + (fConst1 * fRec4[1])); - output0[i] = FAUSTFLOAT((fTemp2 + ((fRec1[0] * fRec3[0]) + (fRec4[0] * fRec1[2])))); - double fTemp3 = (fRec0[0] * fRec5[1]); + fRec1[0] = ((fRec1[1] * fSlow0) + fSlow8); + double fTemp2 = (fRec1[0] * fRec0[1]); + fRec2[0] = ((fRec2[1] * fSlow0) + fSlow9); + fRec0[0] = (fTemp0 - (fTemp2 + (fRec2[0] * fRec0[2]))); + fRec3[0] = ((fRec3[1] * fSlow0) + fSlow11); + fRec4[0] = ((fRec4[1] * fSlow0) + fSlow12); + output0[i] = FAUSTFLOAT((((fRec0[0] * fRec3[0]) + fTemp2) + (fRec4[0] * fRec0[2]))); + double fTemp3 = (fRec1[0] * fRec5[1]); fRec5[0] = (fTemp1 - (fTemp3 + (fRec2[0] * fRec5[2]))); output1[i] = FAUSTFLOAT(((fTemp3 + (fRec3[0] * fRec5[0])) + (fRec4[0] * fRec5[2]))); - fRec0[1] = fRec0[0]; - fRec2[1] = fRec2[0]; - fRec1[2] = fRec1[1]; fRec1[1] = fRec1[0]; + fRec2[1] = fRec2[0]; + fRec0[2] = fRec0[1]; + fRec0[1] = fRec0[0]; fRec3[1] = fRec3[0]; fRec4[1] = fRec4[0]; fRec5[2] = fRec5[1]; diff --git a/src/sfizz/gen/filters/sfzApf1p.cxx b/src/sfizz/gen/filters/sfzApf1p.cxx index 4f3e706d..39652364 100644 --- a/src/sfizz/gen/filters/sfzApf1p.cxx +++ b/src/sfizz/gen/filters/sfzApf1p.cxx @@ -34,7 +34,6 @@ class faustApf1p : public sfzFilterDsp { double fConst0; double fConst1; double fConst2; - double fConst3; FAUSTFLOAT fCutoff; double fRec1[2]; double fRec0[2]; @@ -93,8 +92,7 @@ class faustApf1p : public sfzFilterDsp { fSamplingFreq = samplingFreq; fConst0 = std::min(192000.0, std::max(1.0, double(fSamplingFreq))); fConst1 = std::exp((0.0 - (1000.0 / fConst0))); - fConst2 = (1.0 - fConst1); - fConst3 = (6.2831853071795862 / fConst0); + fConst2 = (6.2831853071795862 / fConst0); } @@ -142,10 +140,11 @@ class faustApf1p : public sfzFilterDsp { virtual void compute(int count, FAUSTFLOAT** inputs, FAUSTFLOAT** outputs) { FAUSTFLOAT* input0 = inputs[0]; FAUSTFLOAT* output0 = outputs[0]; - double fSlow0 = (fConst2 * ((fConst3 * double(fCutoff)) + -1.0)); + double fSlow0 = (fSmoothEnable?fConst1:0.0); + double fSlow1 = (((fConst2 * double(fCutoff)) + -1.0) * (1.0 - fSlow0)); for (int i = 0; (i < count); i = (i + 1)) { double fTemp0 = double(input0[i]); - fRec1[0] = (fSlow0 + (fConst1 * fRec1[1])); + fRec1[0] = ((fRec1[1] * fSlow0) + fSlow1); fRec0[0] = (fTemp0 - (fRec1[0] * fRec0[1])); output0[i] = FAUSTFLOAT((fRec0[1] + (fRec1[0] * fRec0[0]))); fRec1[1] = fRec1[0]; diff --git a/src/sfizz/gen/filters/sfzBpf1p.cxx b/src/sfizz/gen/filters/sfzBpf1p.cxx index bf8ac6bf..8cf0e6f7 100644 --- a/src/sfizz/gen/filters/sfzBpf1p.cxx +++ b/src/sfizz/gen/filters/sfzBpf1p.cxx @@ -34,7 +34,6 @@ class faustBpf1p : public sfzFilterDsp { double fConst0; double fConst1; double fConst2; - double fConst3; FAUSTFLOAT fCutoff; double fRec2[2]; double fRec1[2]; @@ -94,8 +93,7 @@ class faustBpf1p : public sfzFilterDsp { fSamplingFreq = samplingFreq; fConst0 = std::min(192000.0, std::max(1.0, double(fSamplingFreq))); fConst1 = std::exp((0.0 - (1000.0 / fConst0))); - fConst2 = (1.0 - fConst1); - fConst3 = (1.0 / fConst0); + fConst2 = (1.0 / fConst0); } @@ -147,10 +145,11 @@ class faustBpf1p : public sfzFilterDsp { virtual void compute(int count, FAUSTFLOAT** inputs, FAUSTFLOAT** outputs) { FAUSTFLOAT* input0 = inputs[0]; FAUSTFLOAT* output0 = outputs[0]; - double fSlow0 = (fConst2 * std::exp((fConst3 * (0.0 - (6.2831853071795862 * double(fCutoff)))))); + double fSlow0 = (fSmoothEnable?fConst1:0.0); + double fSlow1 = (std::exp((fConst2 * (0.0 - (6.2831853071795862 * double(fCutoff))))) * (1.0 - fSlow0)); for (int i = 0; (i < count); i = (i + 1)) { double fTemp0 = double(input0[i]); - fRec2[0] = (fSlow0 + (fConst1 * fRec2[1])); + fRec2[0] = ((fRec2[1] * fSlow0) + fSlow1); fRec1[0] = ((fRec2[0] * fRec1[1]) + fTemp0); fRec0[0] = ((fRec1[0] * (1.0 - fRec2[0])) + (fRec2[0] * fRec0[1])); double fTemp1 = (fRec2[0] + 1.0); diff --git a/src/sfizz/gen/filters/sfzBpf2p.cxx b/src/sfizz/gen/filters/sfzBpf2p.cxx index 1702527e..70150c2a 100644 --- a/src/sfizz/gen/filters/sfzBpf2p.cxx +++ b/src/sfizz/gen/filters/sfzBpf2p.cxx @@ -34,13 +34,11 @@ class faustBpf2p : public sfzFilterDsp { double fConst0; double fConst1; double fConst2; - double fConst3; FAUSTFLOAT fCutoff; FAUSTFLOAT fQ; double fRec1[2]; double fRec2[2]; double fRec0[3]; - double fConst4; double fRec3[2]; double fRec4[2]; double fRec5[2]; @@ -99,9 +97,7 @@ class faustBpf2p : public sfzFilterDsp { fSamplingFreq = samplingFreq; fConst0 = std::min(192000.0, std::max(1.0, double(fSamplingFreq))); fConst1 = std::exp((0.0 - (1000.0 / fConst0))); - fConst2 = (1.0 - fConst1); - fConst3 = (6.2831853071795862 / fConst0); - fConst4 = (0.5 * fConst2); + fConst2 = (6.2831853071795862 / fConst0); } @@ -166,24 +162,26 @@ class faustBpf2p : public sfzFilterDsp { virtual void compute(int count, FAUSTFLOAT** inputs, FAUSTFLOAT** outputs) { FAUSTFLOAT* input0 = inputs[0]; FAUSTFLOAT* output0 = outputs[0]; - double fSlow0 = (fConst3 * std::max(0.0, double(fCutoff))); - double fSlow1 = std::sin(fSlow0); - double fSlow2 = std::max(0.001, std::pow(10.0, (0.050000000000000003 * double(fQ)))); - double fSlow3 = (0.5 * (fSlow1 / fSlow2)); - double fSlow4 = (fSlow3 + 1.0); - double fSlow5 = (fConst2 * ((0.0 - (2.0 * std::cos(fSlow0))) / fSlow4)); - double fSlow6 = (fConst2 * ((1.0 - fSlow3) / fSlow4)); - double fSlow7 = (fSlow1 / (fSlow4 * fSlow2)); - double fSlow8 = (fConst4 * fSlow7); - double fSlow9 = (fConst2 * (0.0 - (0.5 * fSlow7))); + double fSlow0 = (fSmoothEnable?fConst1:0.0); + double fSlow1 = (fConst2 * std::max(0.0, double(fCutoff))); + double fSlow2 = std::sin(fSlow1); + double fSlow3 = std::max(0.001, std::pow(10.0, (0.050000000000000003 * double(fQ)))); + double fSlow4 = (0.5 * (fSlow2 / fSlow3)); + double fSlow5 = (fSlow4 + 1.0); + double fSlow6 = (1.0 - fSlow0); + double fSlow7 = (((0.0 - (2.0 * std::cos(fSlow1))) / fSlow5) * fSlow6); + double fSlow8 = (((1.0 - fSlow4) / fSlow5) * fSlow6); + double fSlow9 = (0.5 * (fSlow2 / (fSlow5 * fSlow3))); + double fSlow10 = (fSlow9 * fSlow6); + double fSlow11 = ((0.0 - fSlow9) * fSlow6); for (int i = 0; (i < count); i = (i + 1)) { double fTemp0 = double(input0[i]); - fRec1[0] = (fSlow5 + (fConst1 * fRec1[1])); - fRec2[0] = (fSlow6 + (fConst1 * fRec2[1])); + fRec1[0] = ((fRec1[1] * fSlow0) + fSlow7); + fRec2[0] = ((fRec2[1] * fSlow0) + fSlow8); fRec0[0] = (fTemp0 - ((fRec1[0] * fRec0[1]) + (fRec2[0] * fRec0[2]))); - fRec3[0] = (fSlow8 + (fConst1 * fRec3[1])); - fRec4[0] = (fConst1 * fRec4[1]); - fRec5[0] = (fSlow9 + (fConst1 * fRec5[1])); + fRec3[0] = ((fRec3[1] * fSlow0) + fSlow10); + fRec4[0] = (fRec4[1] * fSlow0); + fRec5[0] = ((fRec5[1] * fSlow0) + fSlow11); output0[i] = FAUSTFLOAT((((fRec0[0] * fRec3[0]) + (fRec4[0] * fRec0[1])) + (fRec5[0] * fRec0[2]))); fRec1[1] = fRec1[0]; fRec2[1] = fRec2[0]; diff --git a/src/sfizz/gen/filters/sfzBpf2pSv.cxx b/src/sfizz/gen/filters/sfzBpf2pSv.cxx index edb1e248..ac6f9d39 100644 --- a/src/sfizz/gen/filters/sfzBpf2pSv.cxx +++ b/src/sfizz/gen/filters/sfzBpf2pSv.cxx @@ -34,7 +34,6 @@ class faustBpf2pSv : public sfzFilterDsp { double fConst0; double fConst1; double fConst2; - double fConst3; FAUSTFLOAT fCutoff; double fRec3[2]; FAUSTFLOAT fQ; @@ -98,8 +97,7 @@ class faustBpf2pSv : public sfzFilterDsp { fSamplingFreq = samplingFreq; fConst0 = std::min(192000.0, std::max(1.0, double(fSamplingFreq))); fConst1 = std::exp((0.0 - (1000.0 / fConst0))); - fConst2 = (1.0 - fConst1); - fConst3 = (3.1415926535897931 / fConst0); + fConst2 = (3.1415926535897931 / fConst0); } @@ -164,16 +162,17 @@ class faustBpf2pSv : public sfzFilterDsp { virtual void compute(int count, FAUSTFLOAT** inputs, FAUSTFLOAT** outputs) { FAUSTFLOAT* input0 = inputs[0]; FAUSTFLOAT* output0 = outputs[0]; - double fSlow0 = (fConst2 * std::tan((fConst3 * double(fCutoff)))); - double fSlow1 = std::pow(10.0, (0.050000000000000003 * double(fQ))); - double fSlow2 = (1.0 / fSlow1); - double fSlow3 = (fConst2 / fSlow1); + double fSlow0 = (fSmoothEnable?fConst1:0.0); + double fSlow1 = (1.0 - fSlow0); + double fSlow2 = (std::tan((fConst2 * double(fCutoff))) * fSlow1); + double fSlow3 = (1.0 / std::pow(10.0, (0.050000000000000003 * double(fQ)))); + double fSlow4 = (fSlow3 * fSlow1); for (int i = 0; (i < count); i = (i + 1)) { double fTemp0 = double(input0[i]); - fRec3[0] = (fSlow0 + (fConst1 * fRec3[1])); - double fTemp1 = (fSlow2 + fRec3[0]); - fRec4[0] = ((fConst1 * fRec4[1]) + (fConst2 / ((fRec3[0] * fTemp1) + 1.0))); - fRec5[0] = ((fConst1 * fRec5[1]) + (fConst2 * fTemp1)); + fRec3[0] = ((fRec3[1] * fSlow0) + fSlow2); + double fTemp1 = (fSlow3 + fRec3[0]); + fRec4[0] = ((fRec4[1] * fSlow0) + (fSlow1 / ((fRec3[0] * fTemp1) + 1.0))); + fRec5[0] = ((fRec5[1] * fSlow0) + (fSlow1 * fTemp1)); double fTemp2 = (fTemp0 - (fRec1[1] + (fRec5[0] * fRec2[1]))); double fTemp3 = ((fRec3[0] * fRec4[0]) * fTemp2); double fTemp4 = (fRec2[1] + fTemp3); @@ -181,7 +180,7 @@ class faustBpf2pSv : public sfzFilterDsp { fRec1[0] = (fRec1[1] + (2.0 * (fRec3[0] * fTemp4))); double fTemp5 = (fRec2[1] + (2.0 * fTemp3)); fRec2[0] = fTemp5; - fRec6[0] = (fSlow3 + (fConst1 * fRec6[1])); + fRec6[0] = ((fRec6[1] * fSlow0) + fSlow4); output0[i] = FAUSTFLOAT((fRec0 * fRec6[0])); fRec3[1] = fRec3[0]; fRec4[1] = fRec4[0]; diff --git a/src/sfizz/gen/filters/sfzBpf4p.cxx b/src/sfizz/gen/filters/sfzBpf4p.cxx index 28d7ba9d..548341fa 100644 --- a/src/sfizz/gen/filters/sfzBpf4p.cxx +++ b/src/sfizz/gen/filters/sfzBpf4p.cxx @@ -34,8 +34,6 @@ class faustBpf4p : public sfzFilterDsp { double fConst0; double fConst1; double fConst2; - double fConst3; - double fConst4; FAUSTFLOAT fCutoff; FAUSTFLOAT fQ; double fRec0[2]; @@ -100,9 +98,7 @@ class faustBpf4p : public sfzFilterDsp { fSamplingFreq = samplingFreq; fConst0 = std::min(192000.0, std::max(1.0, double(fSamplingFreq))); fConst1 = std::exp((0.0 - (1000.0 / fConst0))); - fConst2 = (1.0 - fConst1); - fConst3 = (0.5 * fConst2); - fConst4 = (6.2831853071795862 / fConst0); + fConst2 = (6.2831853071795862 / fConst0); } @@ -171,24 +167,26 @@ class faustBpf4p : public sfzFilterDsp { virtual void compute(int count, FAUSTFLOAT** inputs, FAUSTFLOAT** outputs) { FAUSTFLOAT* input0 = inputs[0]; FAUSTFLOAT* output0 = outputs[0]; - double fSlow0 = (fConst4 * std::max(0.0, double(fCutoff))); - double fSlow1 = std::sin(fSlow0); - double fSlow2 = std::max(0.001, std::pow(10.0, (0.050000000000000003 * double(fQ)))); - double fSlow3 = (0.5 * (fSlow1 / fSlow2)); - double fSlow4 = (fSlow3 + 1.0); - double fSlow5 = (fSlow1 / (fSlow4 * fSlow2)); - double fSlow6 = (fConst3 * fSlow5); - double fSlow7 = (fConst2 * ((0.0 - (2.0 * std::cos(fSlow0))) / fSlow4)); - double fSlow8 = (fConst2 * ((1.0 - fSlow3) / fSlow4)); - double fSlow9 = (fConst2 * (0.0 - (0.5 * fSlow5))); + double fSlow0 = (fSmoothEnable?fConst1:0.0); + double fSlow1 = (fConst2 * std::max(0.0, double(fCutoff))); + double fSlow2 = std::sin(fSlow1); + double fSlow3 = std::max(0.001, std::pow(10.0, (0.050000000000000003 * double(fQ)))); + double fSlow4 = (0.5 * (fSlow2 / fSlow3)); + double fSlow5 = (fSlow4 + 1.0); + double fSlow6 = (0.5 * (fSlow2 / (fSlow5 * fSlow3))); + double fSlow7 = (1.0 - fSlow0); + double fSlow8 = (fSlow6 * fSlow7); + double fSlow9 = (((0.0 - (2.0 * std::cos(fSlow1))) / fSlow5) * fSlow7); + double fSlow10 = (((1.0 - fSlow4) / fSlow5) * fSlow7); + double fSlow11 = ((0.0 - fSlow6) * fSlow7); for (int i = 0; (i < count); i = (i + 1)) { double fTemp0 = double(input0[i]); - fRec0[0] = (fSlow6 + (fConst1 * fRec0[1])); - fRec3[0] = (fSlow7 + (fConst1 * fRec3[1])); - fRec4[0] = (fSlow8 + (fConst1 * fRec4[1])); + fRec0[0] = ((fRec0[1] * fSlow0) + fSlow8); + fRec3[0] = ((fRec3[1] * fSlow0) + fSlow9); + fRec4[0] = ((fRec4[1] * fSlow0) + fSlow10); fRec2[0] = (fTemp0 - ((fRec3[0] * fRec2[1]) + (fRec4[0] * fRec2[2]))); - fRec5[0] = (fConst1 * fRec5[1]); - fRec6[0] = (fSlow9 + (fConst1 * fRec6[1])); + fRec5[0] = (fRec5[1] * fSlow0); + fRec6[0] = ((fRec6[1] * fSlow0) + fSlow11); fRec1[0] = ((((fRec2[0] * fRec0[0]) + (fRec5[0] * fRec2[1])) + (fRec6[0] * fRec2[2])) - ((fRec3[0] * fRec1[1]) + (fRec4[0] * fRec1[2]))); output0[i] = FAUSTFLOAT((((fRec0[0] * fRec1[0]) + (fRec5[0] * fRec1[1])) + (fRec6[0] * fRec1[2]))); fRec0[1] = fRec0[0]; diff --git a/src/sfizz/gen/filters/sfzBpf6p.cxx b/src/sfizz/gen/filters/sfzBpf6p.cxx index e8cabcc7..b3d323a5 100644 --- a/src/sfizz/gen/filters/sfzBpf6p.cxx +++ b/src/sfizz/gen/filters/sfzBpf6p.cxx @@ -34,8 +34,6 @@ class faustBpf6p : public sfzFilterDsp { double fConst0; double fConst1; double fConst2; - double fConst3; - double fConst4; FAUSTFLOAT fCutoff; FAUSTFLOAT fQ; double fRec0[2]; @@ -101,9 +99,7 @@ class faustBpf6p : public sfzFilterDsp { fSamplingFreq = samplingFreq; fConst0 = std::min(192000.0, std::max(1.0, double(fSamplingFreq))); fConst1 = std::exp((0.0 - (1000.0 / fConst0))); - fConst2 = (1.0 - fConst1); - fConst3 = (0.5 * fConst2); - fConst4 = (6.2831853071795862 / fConst0); + fConst2 = (6.2831853071795862 / fConst0); } @@ -176,24 +172,26 @@ class faustBpf6p : public sfzFilterDsp { virtual void compute(int count, FAUSTFLOAT** inputs, FAUSTFLOAT** outputs) { FAUSTFLOAT* input0 = inputs[0]; FAUSTFLOAT* output0 = outputs[0]; - double fSlow0 = (fConst4 * std::max(0.0, double(fCutoff))); - double fSlow1 = std::sin(fSlow0); - double fSlow2 = std::max(0.001, std::pow(10.0, (0.050000000000000003 * double(fQ)))); - double fSlow3 = (0.5 * (fSlow1 / fSlow2)); - double fSlow4 = (fSlow3 + 1.0); - double fSlow5 = (fSlow1 / (fSlow4 * fSlow2)); - double fSlow6 = (fConst3 * fSlow5); - double fSlow7 = (fConst2 * ((0.0 - (2.0 * std::cos(fSlow0))) / fSlow4)); - double fSlow8 = (fConst2 * ((1.0 - fSlow3) / fSlow4)); - double fSlow9 = (fConst2 * (0.0 - (0.5 * fSlow5))); + double fSlow0 = (fSmoothEnable?fConst1:0.0); + double fSlow1 = (fConst2 * std::max(0.0, double(fCutoff))); + double fSlow2 = std::sin(fSlow1); + double fSlow3 = std::max(0.001, std::pow(10.0, (0.050000000000000003 * double(fQ)))); + double fSlow4 = (0.5 * (fSlow2 / fSlow3)); + double fSlow5 = (fSlow4 + 1.0); + double fSlow6 = (0.5 * (fSlow2 / (fSlow5 * fSlow3))); + double fSlow7 = (1.0 - fSlow0); + double fSlow8 = (fSlow6 * fSlow7); + double fSlow9 = (((0.0 - (2.0 * std::cos(fSlow1))) / fSlow5) * fSlow7); + double fSlow10 = (((1.0 - fSlow4) / fSlow5) * fSlow7); + double fSlow11 = ((0.0 - fSlow6) * fSlow7); for (int i = 0; (i < count); i = (i + 1)) { double fTemp0 = double(input0[i]); - fRec0[0] = (fSlow6 + (fConst1 * fRec0[1])); - fRec4[0] = (fSlow7 + (fConst1 * fRec4[1])); - fRec5[0] = (fSlow8 + (fConst1 * fRec5[1])); + fRec0[0] = ((fRec0[1] * fSlow0) + fSlow8); + fRec4[0] = ((fRec4[1] * fSlow0) + fSlow9); + fRec5[0] = ((fRec5[1] * fSlow0) + fSlow10); fRec3[0] = (fTemp0 - ((fRec4[0] * fRec3[1]) + (fRec5[0] * fRec3[2]))); - fRec6[0] = (fConst1 * fRec6[1]); - fRec7[0] = (fSlow9 + (fConst1 * fRec7[1])); + fRec6[0] = (fRec6[1] * fSlow0); + fRec7[0] = ((fRec7[1] * fSlow0) + fSlow11); fRec2[0] = ((((fRec3[0] * fRec0[0]) + (fRec6[0] * fRec3[1])) + (fRec7[0] * fRec3[2])) - ((fRec4[0] * fRec2[1]) + (fRec5[0] * fRec2[2]))); fRec1[0] = ((((fRec0[0] * fRec2[0]) + (fRec6[0] * fRec2[1])) + (fRec7[0] * fRec2[2])) - ((fRec4[0] * fRec1[1]) + (fRec5[0] * fRec1[2]))); output0[i] = FAUSTFLOAT((((fRec0[0] * fRec1[0]) + (fRec6[0] * fRec1[1])) + (fRec7[0] * fRec1[2]))); diff --git a/src/sfizz/gen/filters/sfzBrf1p.cxx b/src/sfizz/gen/filters/sfzBrf1p.cxx index 5d2fc2b5..2300a7a6 100644 --- a/src/sfizz/gen/filters/sfzBrf1p.cxx +++ b/src/sfizz/gen/filters/sfzBrf1p.cxx @@ -34,7 +34,6 @@ class faustBrf1p : public sfzFilterDsp { double fConst0; double fConst1; double fConst2; - double fConst3; FAUSTFLOAT fCutoff; double fRec2[2]; double fRec1[2]; @@ -94,8 +93,7 @@ class faustBrf1p : public sfzFilterDsp { fSamplingFreq = samplingFreq; fConst0 = std::min(192000.0, std::max(1.0, double(fSamplingFreq))); fConst1 = std::exp((0.0 - (1000.0 / fConst0))); - fConst2 = (1.0 - fConst1); - fConst3 = (6.2831853071795862 / fConst0); + fConst2 = (6.2831853071795862 / fConst0); } @@ -147,10 +145,11 @@ class faustBrf1p : public sfzFilterDsp { virtual void compute(int count, FAUSTFLOAT** inputs, FAUSTFLOAT** outputs) { FAUSTFLOAT* input0 = inputs[0]; FAUSTFLOAT* output0 = outputs[0]; - double fSlow0 = (fConst2 * ((fConst3 * double(fCutoff)) + -1.0)); + double fSlow0 = (fSmoothEnable?fConst1:0.0); + double fSlow1 = (((fConst2 * double(fCutoff)) + -1.0) * (1.0 - fSlow0)); for (int i = 0; (i < count); i = (i + 1)) { double fTemp0 = double(input0[i]); - fRec2[0] = (fSlow0 + (fConst1 * fRec2[1])); + fRec2[0] = ((fRec2[1] * fSlow0) + fSlow1); fRec1[0] = (fTemp0 - (fRec2[0] * fRec1[1])); fRec0[0] = (fRec1[1] + (fRec2[0] * (fRec1[0] - fRec0[1]))); output0[i] = FAUSTFLOAT(((fRec0[1] + (fRec2[0] * fRec0[0])) + fTemp0)); diff --git a/src/sfizz/gen/filters/sfzBrf2p.cxx b/src/sfizz/gen/filters/sfzBrf2p.cxx index c4da1168..ad02048c 100644 --- a/src/sfizz/gen/filters/sfzBrf2p.cxx +++ b/src/sfizz/gen/filters/sfzBrf2p.cxx @@ -34,7 +34,6 @@ class faustBrf2p : public sfzFilterDsp { double fConst0; double fConst1; double fConst2; - double fConst3; FAUSTFLOAT fCutoff; FAUSTFLOAT fQ; double fRec0[2]; @@ -96,8 +95,7 @@ class faustBrf2p : public sfzFilterDsp { fSamplingFreq = samplingFreq; fConst0 = std::min(192000.0, std::max(1.0, double(fSamplingFreq))); fConst1 = std::exp((0.0 - (1000.0 / fConst0))); - fConst2 = (1.0 - fConst1); - fConst3 = (6.2831853071795862 / fConst0); + fConst2 = (6.2831853071795862 / fConst0); } @@ -154,19 +152,21 @@ class faustBrf2p : public sfzFilterDsp { virtual void compute(int count, FAUSTFLOAT** inputs, FAUSTFLOAT** outputs) { FAUSTFLOAT* input0 = inputs[0]; FAUSTFLOAT* output0 = outputs[0]; - double fSlow0 = (fConst3 * std::max(0.0, double(fCutoff))); - double fSlow1 = (0.5 * (std::sin(fSlow0) / std::max(0.001, std::pow(10.0, (0.050000000000000003 * double(fQ)))))); - double fSlow2 = (fSlow1 + 1.0); - double fSlow3 = (fConst2 * ((0.0 - (2.0 * std::cos(fSlow0))) / fSlow2)); - double fSlow4 = (fConst2 * ((1.0 - fSlow1) / fSlow2)); - double fSlow5 = (fConst2 / fSlow2); + double fSlow0 = (fSmoothEnable?fConst1:0.0); + double fSlow1 = (fConst2 * std::max(0.0, double(fCutoff))); + double fSlow2 = (0.5 * (std::sin(fSlow1) / std::max(0.001, std::pow(10.0, (0.050000000000000003 * double(fQ)))))); + double fSlow3 = (fSlow2 + 1.0); + double fSlow4 = (1.0 - fSlow0); + double fSlow5 = (((0.0 - (2.0 * std::cos(fSlow1))) / fSlow3) * fSlow4); + double fSlow6 = (((1.0 - fSlow2) / fSlow3) * fSlow4); + double fSlow7 = ((1.0 / fSlow3) * fSlow4); for (int i = 0; (i < count); i = (i + 1)) { double fTemp0 = double(input0[i]); - fRec0[0] = (fSlow3 + (fConst1 * fRec0[1])); + fRec0[0] = ((fRec0[1] * fSlow0) + fSlow5); double fTemp1 = (fRec0[0] * fRec1[1]); - fRec2[0] = (fSlow4 + (fConst1 * fRec2[1])); + fRec2[0] = ((fRec2[1] * fSlow0) + fSlow6); fRec1[0] = (fTemp0 - (fTemp1 + (fRec2[0] * fRec1[2]))); - fRec3[0] = (fSlow5 + (fConst1 * fRec3[1])); + fRec3[0] = ((fRec3[1] * fSlow0) + fSlow7); output0[i] = FAUSTFLOAT((fTemp1 + (fRec3[0] * (fRec1[0] + fRec1[2])))); fRec0[1] = fRec0[0]; fRec2[1] = fRec2[0]; diff --git a/src/sfizz/gen/filters/sfzBrf2pSv.cxx b/src/sfizz/gen/filters/sfzBrf2pSv.cxx index b2296a0d..2390844c 100644 --- a/src/sfizz/gen/filters/sfzBrf2pSv.cxx +++ b/src/sfizz/gen/filters/sfzBrf2pSv.cxx @@ -34,7 +34,6 @@ class faustBrf2pSv : public sfzFilterDsp { double fConst0; double fConst1; double fConst2; - double fConst3; FAUSTFLOAT fCutoff; double fRec5[2]; FAUSTFLOAT fQ; @@ -97,8 +96,7 @@ class faustBrf2pSv : public sfzFilterDsp { fSamplingFreq = samplingFreq; fConst0 = std::min(192000.0, std::max(1.0, double(fSamplingFreq))); fConst1 = std::exp((0.0 - (1000.0 / fConst0))); - fConst2 = (1.0 - fConst1); - fConst3 = (3.1415926535897931 / fConst0); + fConst2 = (3.1415926535897931 / fConst0); } @@ -159,14 +157,16 @@ class faustBrf2pSv : public sfzFilterDsp { virtual void compute(int count, FAUSTFLOAT** inputs, FAUSTFLOAT** outputs) { FAUSTFLOAT* input0 = inputs[0]; FAUSTFLOAT* output0 = outputs[0]; - double fSlow0 = (fConst2 * std::tan((fConst3 * double(fCutoff)))); - double fSlow1 = (1.0 / std::pow(10.0, (0.050000000000000003 * double(fQ)))); + double fSlow0 = (fSmoothEnable?fConst1:0.0); + double fSlow1 = (1.0 - fSlow0); + double fSlow2 = (std::tan((fConst2 * double(fCutoff))) * fSlow1); + double fSlow3 = (1.0 / std::pow(10.0, (0.050000000000000003 * double(fQ)))); for (int i = 0; (i < count); i = (i + 1)) { double fTemp0 = double(input0[i]); - fRec5[0] = (fSlow0 + (fConst1 * fRec5[1])); - double fTemp1 = (fSlow1 + fRec5[0]); - fRec4[0] = ((fConst1 * fRec4[1]) + (fConst2 / ((fRec5[0] * fTemp1) + 1.0))); - fRec6[0] = ((fConst1 * fRec6[1]) + (fConst2 * fTemp1)); + fRec5[0] = ((fRec5[1] * fSlow0) + fSlow2); + double fTemp1 = (fSlow3 + fRec5[0]); + fRec4[0] = ((fRec4[1] * fSlow0) + (fSlow1 / ((fRec5[0] * fTemp1) + 1.0))); + fRec6[0] = ((fRec6[1] * fSlow0) + (fSlow1 * fTemp1)); double fTemp2 = (fTemp0 - (fRec2[1] + (fRec6[0] * fRec3[1]))); double fRec0 = (fRec4[0] * fTemp2); double fTemp3 = ((fRec5[0] * fRec4[0]) * fTemp2); diff --git a/src/sfizz/gen/filters/sfzEq.cxx b/src/sfizz/gen/filters/sfzEq.cxx index 7bc33e4c..be5b7015 100644 --- a/src/sfizz/gen/filters/sfzEq.cxx +++ b/src/sfizz/gen/filters/sfzEq.cxx @@ -35,9 +35,8 @@ class faustEq : public sfzFilterDsp { double fConst0; double fConst1; double fConst2; - double fConst3; FAUSTFLOAT fCutoff; - double fConst4; + double fConst3; FAUSTFLOAT fBandwidth; FAUSTFLOAT fPkShGain; double fRec1[2]; @@ -100,9 +99,8 @@ class faustEq : public sfzFilterDsp { fSamplingFreq = samplingFreq; fConst0 = std::min(192000.0, std::max(1.0, double(fSamplingFreq))); fConst1 = std::exp((0.0 - (1000.0 / fConst0))); - fConst2 = (1.0 - fConst1); - fConst3 = (6.2831853071795862 / fConst0); - fConst4 = (2.1775860903036022 / fConst0); + fConst2 = (6.2831853071795862 / fConst0); + fConst3 = (2.1775860903036022 / fConst0); } @@ -164,26 +162,28 @@ class faustEq : public sfzFilterDsp { virtual void compute(int count, FAUSTFLOAT** inputs, FAUSTFLOAT** outputs) { FAUSTFLOAT* input0 = inputs[0]; FAUSTFLOAT* output0 = outputs[0]; - double fSlow0 = std::max(0.0, double(fCutoff)); - double fSlow1 = (fConst3 * fSlow0); - double fSlow2 = std::sin(fSlow1); - double fSlow3 = std::max(0.001, (0.5 / double(sinh(double((fConst4 * ((fSlow0 * double(fBandwidth)) / fSlow2))))))); - double fSlow4 = std::pow(10.0, (0.025000000000000001 * double(fPkShGain))); - double fSlow5 = (0.5 * (fSlow2 / (fSlow3 * fSlow4))); - double fSlow6 = (fSlow5 + 1.0); - double fSlow7 = (fConst2 * ((0.0 - (2.0 * std::cos(fSlow1))) / fSlow6)); - double fSlow8 = (fConst2 * ((1.0 - fSlow5) / fSlow6)); - double fSlow9 = (0.5 * ((fSlow2 * fSlow4) / fSlow3)); - double fSlow10 = (fConst2 * ((fSlow9 + 1.0) / fSlow6)); - double fSlow11 = (fConst2 * ((1.0 - fSlow9) / fSlow6)); + double fSlow0 = (fSmoothEnable?fConst1:0.0); + double fSlow1 = std::max(0.0, double(fCutoff)); + double fSlow2 = (fConst2 * fSlow1); + double fSlow3 = std::sin(fSlow2); + double fSlow4 = std::max(0.001, (0.5 / double(sinh(double((fConst3 * ((fSlow1 * double(fBandwidth)) / fSlow3))))))); + double fSlow5 = std::pow(10.0, (0.025000000000000001 * double(fPkShGain))); + double fSlow6 = (0.5 * (fSlow3 / (fSlow4 * fSlow5))); + double fSlow7 = (fSlow6 + 1.0); + double fSlow8 = (1.0 - fSlow0); + double fSlow9 = (((0.0 - (2.0 * std::cos(fSlow2))) / fSlow7) * fSlow8); + double fSlow10 = (((1.0 - fSlow6) / fSlow7) * fSlow8); + double fSlow11 = (0.5 * ((fSlow3 * fSlow5) / fSlow4)); + double fSlow12 = (((fSlow11 + 1.0) / fSlow7) * fSlow8); + double fSlow13 = (((1.0 - fSlow11) / fSlow7) * fSlow8); for (int i = 0; (i < count); i = (i + 1)) { double fTemp0 = double(input0[i]); - fRec1[0] = (fSlow7 + (fConst1 * fRec1[1])); + fRec1[0] = ((fRec1[1] * fSlow0) + fSlow9); double fTemp1 = (fRec1[0] * fRec0[1]); - fRec2[0] = (fSlow8 + (fConst1 * fRec2[1])); + fRec2[0] = ((fRec2[1] * fSlow0) + fSlow10); fRec0[0] = (fTemp0 - (fTemp1 + (fRec2[0] * fRec0[2]))); - fRec3[0] = (fSlow10 + (fConst1 * fRec3[1])); - fRec4[0] = (fSlow11 + (fConst1 * fRec4[1])); + fRec3[0] = ((fRec3[1] * fSlow0) + fSlow12); + fRec4[0] = ((fRec4[1] * fSlow0) + fSlow13); output0[i] = FAUSTFLOAT((((fRec0[0] * fRec3[0]) + fTemp1) + (fRec4[0] * fRec0[2]))); fRec1[1] = fRec1[0]; fRec2[1] = fRec2[0]; diff --git a/src/sfizz/gen/filters/sfzHpf1p.cxx b/src/sfizz/gen/filters/sfzHpf1p.cxx index fcbf038e..34582e9d 100644 --- a/src/sfizz/gen/filters/sfzHpf1p.cxx +++ b/src/sfizz/gen/filters/sfzHpf1p.cxx @@ -34,7 +34,6 @@ class faustHpf1p : public sfzFilterDsp { double fConst0; double fConst1; double fConst2; - double fConst3; FAUSTFLOAT fCutoff; double fRec1[2]; double fRec0[2]; @@ -93,8 +92,7 @@ class faustHpf1p : public sfzFilterDsp { fSamplingFreq = samplingFreq; fConst0 = std::min(192000.0, std::max(1.0, double(fSamplingFreq))); fConst1 = std::exp((0.0 - (1000.0 / fConst0))); - fConst2 = (1.0 - fConst1); - fConst3 = (1.0 / fConst0); + fConst2 = (1.0 / fConst0); } @@ -142,10 +140,11 @@ class faustHpf1p : public sfzFilterDsp { virtual void compute(int count, FAUSTFLOAT** inputs, FAUSTFLOAT** outputs) { FAUSTFLOAT* input0 = inputs[0]; FAUSTFLOAT* output0 = outputs[0]; - double fSlow0 = (fConst2 * std::exp((fConst3 * (0.0 - (6.2831853071795862 * double(fCutoff)))))); + double fSlow0 = (fSmoothEnable?fConst1:0.0); + double fSlow1 = (std::exp((fConst2 * (0.0 - (6.2831853071795862 * double(fCutoff))))) * (1.0 - fSlow0)); for (int i = 0; (i < count); i = (i + 1)) { double fTemp0 = double(input0[i]); - fRec1[0] = (fSlow0 + (fConst1 * fRec1[1])); + fRec1[0] = ((fRec1[1] * fSlow0) + fSlow1); fRec0[0] = ((fRec1[0] * fRec0[1]) + fTemp0); double fTemp1 = (fRec1[0] + 1.0); output0[i] = FAUSTFLOAT(((0.5 * (fRec0[0] * fTemp1)) + (fRec0[1] * (0.0 - (0.5 * fTemp1))))); diff --git a/src/sfizz/gen/filters/sfzHpf2p.cxx b/src/sfizz/gen/filters/sfzHpf2p.cxx index bf44340f..dbef6747 100644 --- a/src/sfizz/gen/filters/sfzHpf2p.cxx +++ b/src/sfizz/gen/filters/sfzHpf2p.cxx @@ -34,14 +34,12 @@ class faustHpf2p : public sfzFilterDsp { double fConst0; double fConst1; double fConst2; - double fConst3; FAUSTFLOAT fCutoff; FAUSTFLOAT fQ; double fRec0[2]; double fRec2[2]; double fRec3[2]; double fRec1[3]; - double fConst4; double fRec4[2]; public: @@ -98,9 +96,7 @@ class faustHpf2p : public sfzFilterDsp { fSamplingFreq = samplingFreq; fConst0 = std::min(192000.0, std::max(1.0, double(fSamplingFreq))); fConst1 = std::exp((0.0 - (1000.0 / fConst0))); - fConst2 = (1.0 - fConst1); - fConst3 = (6.2831853071795862 / fConst0); - fConst4 = (0.5 * fConst2); + fConst2 = (6.2831853071795862 / fConst0); } @@ -161,21 +157,23 @@ class faustHpf2p : public sfzFilterDsp { virtual void compute(int count, FAUSTFLOAT** inputs, FAUSTFLOAT** outputs) { FAUSTFLOAT* input0 = inputs[0]; FAUSTFLOAT* output0 = outputs[0]; - double fSlow0 = (fConst3 * std::max(0.0, double(fCutoff))); - double fSlow1 = std::cos(fSlow0); - double fSlow2 = (0.5 * (std::sin(fSlow0) / std::max(0.001, std::pow(10.0, (0.050000000000000003 * double(fQ)))))); - double fSlow3 = (fSlow2 + 1.0); - double fSlow4 = (fConst2 * ((-1.0 - fSlow1) / fSlow3)); - double fSlow5 = (fConst2 * ((0.0 - (2.0 * fSlow1)) / fSlow3)); - double fSlow6 = (fConst2 * ((1.0 - fSlow2) / fSlow3)); - double fSlow7 = (fConst4 * ((fSlow1 + 1.0) / fSlow3)); + double fSlow0 = (fSmoothEnable?fConst1:0.0); + double fSlow1 = (fConst2 * std::max(0.0, double(fCutoff))); + double fSlow2 = std::cos(fSlow1); + double fSlow3 = (0.5 * (std::sin(fSlow1) / std::max(0.001, std::pow(10.0, (0.050000000000000003 * double(fQ)))))); + double fSlow4 = (fSlow3 + 1.0); + double fSlow5 = (1.0 - fSlow0); + double fSlow6 = (((-1.0 - fSlow2) / fSlow4) * fSlow5); + double fSlow7 = (((0.0 - (2.0 * fSlow2)) / fSlow4) * fSlow5); + double fSlow8 = (((1.0 - fSlow3) / fSlow4) * fSlow5); + double fSlow9 = ((0.5 * ((fSlow2 + 1.0) / fSlow4)) * fSlow5); for (int i = 0; (i < count); i = (i + 1)) { double fTemp0 = double(input0[i]); - fRec0[0] = (fSlow4 + (fConst1 * fRec0[1])); - fRec2[0] = (fSlow5 + (fConst1 * fRec2[1])); - fRec3[0] = (fSlow6 + (fConst1 * fRec3[1])); + fRec0[0] = ((fRec0[1] * fSlow0) + fSlow6); + fRec2[0] = ((fRec2[1] * fSlow0) + fSlow7); + fRec3[0] = ((fRec3[1] * fSlow0) + fSlow8); fRec1[0] = (fTemp0 - ((fRec2[0] * fRec1[1]) + (fRec3[0] * fRec1[2]))); - fRec4[0] = (fSlow7 + (fConst1 * fRec4[1])); + fRec4[0] = ((fRec4[1] * fSlow0) + fSlow9); output0[i] = FAUSTFLOAT(((fRec0[0] * fRec1[1]) + (fRec4[0] * (fRec1[0] + fRec1[2])))); fRec0[1] = fRec0[0]; fRec2[1] = fRec2[0]; diff --git a/src/sfizz/gen/filters/sfzHpf2pSv.cxx b/src/sfizz/gen/filters/sfzHpf2pSv.cxx index 9f0e791a..4cbcc019 100644 --- a/src/sfizz/gen/filters/sfzHpf2pSv.cxx +++ b/src/sfizz/gen/filters/sfzHpf2pSv.cxx @@ -34,7 +34,6 @@ class faustHpf2pSv : public sfzFilterDsp { double fConst0; double fConst1; double fConst2; - double fConst3; FAUSTFLOAT fCutoff; double fRec4[2]; FAUSTFLOAT fQ; @@ -97,8 +96,7 @@ class faustHpf2pSv : public sfzFilterDsp { fSamplingFreq = samplingFreq; fConst0 = std::min(192000.0, std::max(1.0, double(fSamplingFreq))); fConst1 = std::exp((0.0 - (1000.0 / fConst0))); - fConst2 = (1.0 - fConst1); - fConst3 = (3.1415926535897931 / fConst0); + fConst2 = (3.1415926535897931 / fConst0); } @@ -159,14 +157,16 @@ class faustHpf2pSv : public sfzFilterDsp { virtual void compute(int count, FAUSTFLOAT** inputs, FAUSTFLOAT** outputs) { FAUSTFLOAT* input0 = inputs[0]; FAUSTFLOAT* output0 = outputs[0]; - double fSlow0 = (fConst2 * std::tan((fConst3 * double(fCutoff)))); - double fSlow1 = (1.0 / std::pow(10.0, (0.050000000000000003 * double(fQ)))); + double fSlow0 = (fSmoothEnable?fConst1:0.0); + double fSlow1 = (1.0 - fSlow0); + double fSlow2 = (std::tan((fConst2 * double(fCutoff))) * fSlow1); + double fSlow3 = (1.0 / std::pow(10.0, (0.050000000000000003 * double(fQ)))); for (int i = 0; (i < count); i = (i + 1)) { double fTemp0 = double(input0[i]); - fRec4[0] = (fSlow0 + (fConst1 * fRec4[1])); - double fTemp1 = (fSlow1 + fRec4[0]); - fRec3[0] = ((fConst1 * fRec3[1]) + (fConst2 / ((fRec4[0] * fTemp1) + 1.0))); - fRec5[0] = ((fConst1 * fRec5[1]) + (fConst2 * fTemp1)); + fRec4[0] = ((fRec4[1] * fSlow0) + fSlow2); + double fTemp1 = (fSlow3 + fRec4[0]); + fRec3[0] = ((fRec3[1] * fSlow0) + (fSlow1 / ((fRec4[0] * fTemp1) + 1.0))); + fRec5[0] = ((fRec5[1] * fSlow0) + (fSlow1 * fTemp1)); double fTemp2 = (fTemp0 - (fRec1[1] + (fRec5[0] * fRec2[1]))); double fRec0 = (fRec3[0] * fTemp2); double fTemp3 = ((fRec4[0] * fRec3[0]) * fTemp2); diff --git a/src/sfizz/gen/filters/sfzHpf4p.cxx b/src/sfizz/gen/filters/sfzHpf4p.cxx index fd3113c6..6d6f0142 100644 --- a/src/sfizz/gen/filters/sfzHpf4p.cxx +++ b/src/sfizz/gen/filters/sfzHpf4p.cxx @@ -34,14 +34,12 @@ class faustHpf4p : public sfzFilterDsp { double fConst0; double fConst1; double fConst2; - double fConst3; FAUSTFLOAT fCutoff; FAUSTFLOAT fQ; double fRec0[2]; double fRec3[2]; double fRec4[2]; double fRec2[3]; - double fConst4; double fRec5[2]; double fRec1[3]; @@ -99,9 +97,7 @@ class faustHpf4p : public sfzFilterDsp { fSamplingFreq = samplingFreq; fConst0 = std::min(192000.0, std::max(1.0, double(fSamplingFreq))); fConst1 = std::exp((0.0 - (1000.0 / fConst0))); - fConst2 = (1.0 - fConst1); - fConst3 = (6.2831853071795862 / fConst0); - fConst4 = (0.5 * fConst2); + fConst2 = (6.2831853071795862 / fConst0); } @@ -166,21 +162,23 @@ class faustHpf4p : public sfzFilterDsp { virtual void compute(int count, FAUSTFLOAT** inputs, FAUSTFLOAT** outputs) { FAUSTFLOAT* input0 = inputs[0]; FAUSTFLOAT* output0 = outputs[0]; - double fSlow0 = (fConst3 * std::max(0.0, double(fCutoff))); - double fSlow1 = std::cos(fSlow0); - double fSlow2 = (0.5 * (std::sin(fSlow0) / std::max(0.001, std::pow(10.0, (0.050000000000000003 * double(fQ)))))); - double fSlow3 = (fSlow2 + 1.0); - double fSlow4 = (fConst2 * ((-1.0 - fSlow1) / fSlow3)); - double fSlow5 = (fConst2 * ((0.0 - (2.0 * fSlow1)) / fSlow3)); - double fSlow6 = (fConst2 * ((1.0 - fSlow2) / fSlow3)); - double fSlow7 = (fConst4 * ((fSlow1 + 1.0) / fSlow3)); + double fSlow0 = (fSmoothEnable?fConst1:0.0); + double fSlow1 = (fConst2 * std::max(0.0, double(fCutoff))); + double fSlow2 = std::cos(fSlow1); + double fSlow3 = (0.5 * (std::sin(fSlow1) / std::max(0.001, std::pow(10.0, (0.050000000000000003 * double(fQ)))))); + double fSlow4 = (fSlow3 + 1.0); + double fSlow5 = (1.0 - fSlow0); + double fSlow6 = (((-1.0 - fSlow2) / fSlow4) * fSlow5); + double fSlow7 = (((0.0 - (2.0 * fSlow2)) / fSlow4) * fSlow5); + double fSlow8 = (((1.0 - fSlow3) / fSlow4) * fSlow5); + double fSlow9 = ((0.5 * ((fSlow2 + 1.0) / fSlow4)) * fSlow5); for (int i = 0; (i < count); i = (i + 1)) { double fTemp0 = double(input0[i]); - fRec0[0] = (fSlow4 + (fConst1 * fRec0[1])); - fRec3[0] = (fSlow5 + (fConst1 * fRec3[1])); - fRec4[0] = (fSlow6 + (fConst1 * fRec4[1])); + fRec0[0] = ((fRec0[1] * fSlow0) + fSlow6); + fRec3[0] = ((fRec3[1] * fSlow0) + fSlow7); + fRec4[0] = ((fRec4[1] * fSlow0) + fSlow8); fRec2[0] = (fTemp0 - ((fRec3[0] * fRec2[1]) + (fRec4[0] * fRec2[2]))); - fRec5[0] = (fSlow7 + (fConst1 * fRec5[1])); + fRec5[0] = ((fRec5[1] * fSlow0) + fSlow9); fRec1[0] = (((fRec0[0] * fRec2[1]) + (fRec5[0] * (fRec2[0] + fRec2[2]))) - ((fRec3[0] * fRec1[1]) + (fRec4[0] * fRec1[2]))); output0[i] = FAUSTFLOAT(((fRec0[0] * fRec1[1]) + (fRec5[0] * (fRec1[0] + fRec1[2])))); fRec0[1] = fRec0[0]; diff --git a/src/sfizz/gen/filters/sfzHpf6p.cxx b/src/sfizz/gen/filters/sfzHpf6p.cxx index 2491a586..ae0da302 100644 --- a/src/sfizz/gen/filters/sfzHpf6p.cxx +++ b/src/sfizz/gen/filters/sfzHpf6p.cxx @@ -34,14 +34,12 @@ class faustHpf6p : public sfzFilterDsp { double fConst0; double fConst1; double fConst2; - double fConst3; FAUSTFLOAT fCutoff; FAUSTFLOAT fQ; double fRec0[2]; double fRec4[2]; double fRec5[2]; double fRec3[3]; - double fConst4; double fRec6[2]; double fRec2[3]; double fRec1[3]; @@ -100,9 +98,7 @@ class faustHpf6p : public sfzFilterDsp { fSamplingFreq = samplingFreq; fConst0 = std::min(192000.0, std::max(1.0, double(fSamplingFreq))); fConst1 = std::exp((0.0 - (1000.0 / fConst0))); - fConst2 = (1.0 - fConst1); - fConst3 = (6.2831853071795862 / fConst0); - fConst4 = (0.5 * fConst2); + fConst2 = (6.2831853071795862 / fConst0); } @@ -171,21 +167,23 @@ class faustHpf6p : public sfzFilterDsp { virtual void compute(int count, FAUSTFLOAT** inputs, FAUSTFLOAT** outputs) { FAUSTFLOAT* input0 = inputs[0]; FAUSTFLOAT* output0 = outputs[0]; - double fSlow0 = (fConst3 * std::max(0.0, double(fCutoff))); - double fSlow1 = std::cos(fSlow0); - double fSlow2 = (0.5 * (std::sin(fSlow0) / std::max(0.001, std::pow(10.0, (0.050000000000000003 * double(fQ)))))); - double fSlow3 = (fSlow2 + 1.0); - double fSlow4 = (fConst2 * ((-1.0 - fSlow1) / fSlow3)); - double fSlow5 = (fConst2 * ((0.0 - (2.0 * fSlow1)) / fSlow3)); - double fSlow6 = (fConst2 * ((1.0 - fSlow2) / fSlow3)); - double fSlow7 = (fConst4 * ((fSlow1 + 1.0) / fSlow3)); + double fSlow0 = (fSmoothEnable?fConst1:0.0); + double fSlow1 = (fConst2 * std::max(0.0, double(fCutoff))); + double fSlow2 = std::cos(fSlow1); + double fSlow3 = (0.5 * (std::sin(fSlow1) / std::max(0.001, std::pow(10.0, (0.050000000000000003 * double(fQ)))))); + double fSlow4 = (fSlow3 + 1.0); + double fSlow5 = (1.0 - fSlow0); + double fSlow6 = (((-1.0 - fSlow2) / fSlow4) * fSlow5); + double fSlow7 = (((0.0 - (2.0 * fSlow2)) / fSlow4) * fSlow5); + double fSlow8 = (((1.0 - fSlow3) / fSlow4) * fSlow5); + double fSlow9 = ((0.5 * ((fSlow2 + 1.0) / fSlow4)) * fSlow5); for (int i = 0; (i < count); i = (i + 1)) { double fTemp0 = double(input0[i]); - fRec0[0] = (fSlow4 + (fConst1 * fRec0[1])); - fRec4[0] = (fSlow5 + (fConst1 * fRec4[1])); - fRec5[0] = (fSlow6 + (fConst1 * fRec5[1])); + fRec0[0] = ((fRec0[1] * fSlow0) + fSlow6); + fRec4[0] = ((fRec4[1] * fSlow0) + fSlow7); + fRec5[0] = ((fRec5[1] * fSlow0) + fSlow8); fRec3[0] = (fTemp0 - ((fRec4[0] * fRec3[1]) + (fRec5[0] * fRec3[2]))); - fRec6[0] = (fSlow7 + (fConst1 * fRec6[1])); + fRec6[0] = ((fRec6[1] * fSlow0) + fSlow9); fRec2[0] = (((fRec0[0] * fRec3[1]) + (fRec6[0] * (fRec3[0] + fRec3[2]))) - ((fRec4[0] * fRec2[1]) + (fRec5[0] * fRec2[2]))); fRec1[0] = (((fRec0[0] * fRec2[1]) + (fRec6[0] * (fRec2[0] + fRec2[2]))) - ((fRec4[0] * fRec1[1]) + (fRec5[0] * fRec1[2]))); output0[i] = FAUSTFLOAT(((fRec0[0] * fRec1[1]) + (fRec6[0] * (fRec1[0] + fRec1[2])))); diff --git a/src/sfizz/gen/filters/sfzHsh.cxx b/src/sfizz/gen/filters/sfzHsh.cxx index c56d2709..e4806d23 100644 --- a/src/sfizz/gen/filters/sfzHsh.cxx +++ b/src/sfizz/gen/filters/sfzHsh.cxx @@ -33,13 +33,11 @@ class faustHsh : public sfzFilterDsp { int fSamplingFreq; double fConst0; double fConst1; - double fConst2; FAUSTFLOAT fPkShGain; - double fConst3; + double fConst2; FAUSTFLOAT fCutoff; FAUSTFLOAT fQ; double fRec1[2]; - double fConst4; double fRec2[2]; double fRec0[3]; double fRec3[2]; @@ -100,9 +98,7 @@ class faustHsh : public sfzFilterDsp { fSamplingFreq = samplingFreq; fConst0 = std::min(192000.0, std::max(1.0, double(fSamplingFreq))); fConst1 = std::exp((0.0 - (1000.0 / fConst0))); - fConst2 = (1.0 - fConst1); - fConst3 = (6.2831853071795862 / fConst0); - fConst4 = (2.0 * fConst2); + fConst2 = (6.2831853071795862 / fConst0); } @@ -168,27 +164,29 @@ class faustHsh : public sfzFilterDsp { virtual void compute(int count, FAUSTFLOAT** inputs, FAUSTFLOAT** outputs) { FAUSTFLOAT* input0 = inputs[0]; FAUSTFLOAT* output0 = outputs[0]; - double fSlow0 = std::pow(10.0, (0.025000000000000001 * double(fPkShGain))); - double fSlow1 = (fConst3 * std::max(0.0, double(fCutoff))); - double fSlow2 = std::cos(fSlow1); - double fSlow3 = ((fSlow0 + -1.0) * fSlow2); - double fSlow4 = ((std::sqrt(fSlow0) * std::sin(fSlow1)) / std::max(0.001, std::pow(10.0, (0.050000000000000003 * double(fQ))))); - double fSlow5 = ((fSlow0 + fSlow4) + (1.0 - fSlow3)); - double fSlow6 = (fConst2 * ((fSlow0 + (1.0 - (fSlow3 + fSlow4))) / fSlow5)); - double fSlow7 = ((fSlow0 + 1.0) * fSlow2); - double fSlow8 = (fConst4 * ((fSlow0 + (-1.0 - fSlow7)) / fSlow5)); - double fSlow9 = (fSlow3 + fSlow0); - double fSlow10 = (fConst2 * ((((fSlow9 + fSlow4) + 1.0) * fSlow0) / fSlow5)); - double fSlow11 = (fConst2 * (((0.0 - (2.0 * fSlow0)) * ((fSlow7 + fSlow0) + -1.0)) / fSlow5)); - double fSlow12 = (fConst2 * (((fSlow9 + (1.0 - fSlow4)) * fSlow0) / fSlow5)); + double fSlow0 = (fSmoothEnable?fConst1:0.0); + double fSlow1 = std::pow(10.0, (0.025000000000000001 * double(fPkShGain))); + double fSlow2 = (fConst2 * std::max(0.0, double(fCutoff))); + double fSlow3 = std::cos(fSlow2); + double fSlow4 = ((fSlow1 + 1.0) * fSlow3); + double fSlow5 = ((std::sqrt(fSlow1) * std::sin(fSlow2)) / std::max(0.001, std::pow(10.0, (0.050000000000000003 * double(fQ))))); + double fSlow6 = ((fSlow1 + -1.0) * fSlow3); + double fSlow7 = ((fSlow1 + fSlow5) + (1.0 - fSlow6)); + double fSlow8 = (1.0 - fSlow0); + double fSlow9 = ((2.0 * ((fSlow1 + (-1.0 - fSlow4)) / fSlow7)) * fSlow8); + double fSlow10 = (((fSlow1 + (1.0 - (fSlow6 + fSlow5))) / fSlow7) * fSlow8); + double fSlow11 = (fSlow6 + fSlow1); + double fSlow12 = (((((fSlow11 + fSlow5) + 1.0) * fSlow1) / fSlow7) * fSlow8); + double fSlow13 = ((((0.0 - (2.0 * fSlow1)) * ((fSlow4 + fSlow1) + -1.0)) / fSlow7) * fSlow8); + double fSlow14 = ((((fSlow11 + (1.0 - fSlow5)) * fSlow1) / fSlow7) * fSlow8); for (int i = 0; (i < count); i = (i + 1)) { double fTemp0 = double(input0[i]); - fRec1[0] = (fSlow6 + (fConst1 * fRec1[1])); - fRec2[0] = (fSlow8 + (fConst1 * fRec2[1])); - fRec0[0] = (fTemp0 - ((fRec1[0] * fRec0[2]) + (fRec2[0] * fRec0[1]))); - fRec3[0] = (fSlow10 + (fConst1 * fRec3[1])); - fRec4[0] = (fSlow11 + (fConst1 * fRec4[1])); - fRec5[0] = (fSlow12 + (fConst1 * fRec5[1])); + fRec1[0] = ((fRec1[1] * fSlow0) + fSlow9); + fRec2[0] = ((fRec2[1] * fSlow0) + fSlow10); + fRec0[0] = (fTemp0 - ((fRec1[0] * fRec0[1]) + (fRec2[0] * fRec0[2]))); + fRec3[0] = ((fRec3[1] * fSlow0) + fSlow12); + fRec4[0] = ((fRec4[1] * fSlow0) + fSlow13); + fRec5[0] = ((fRec5[1] * fSlow0) + fSlow14); output0[i] = FAUSTFLOAT((((fRec0[0] * fRec3[0]) + (fRec4[0] * fRec0[1])) + (fRec5[0] * fRec0[2]))); fRec1[1] = fRec1[0]; fRec2[1] = fRec2[0]; diff --git a/src/sfizz/gen/filters/sfzLpf1p.cxx b/src/sfizz/gen/filters/sfzLpf1p.cxx index 8f1c21e3..37a9e786 100644 --- a/src/sfizz/gen/filters/sfzLpf1p.cxx +++ b/src/sfizz/gen/filters/sfzLpf1p.cxx @@ -34,7 +34,6 @@ class faustLpf1p : public sfzFilterDsp { double fConst0; double fConst1; double fConst2; - double fConst3; FAUSTFLOAT fCutoff; double fRec1[2]; double fRec0[2]; @@ -93,8 +92,7 @@ class faustLpf1p : public sfzFilterDsp { fSamplingFreq = samplingFreq; fConst0 = std::min(192000.0, std::max(1.0, double(fSamplingFreq))); fConst1 = std::exp((0.0 - (1000.0 / fConst0))); - fConst2 = (1.0 - fConst1); - fConst3 = (1.0 / fConst0); + fConst2 = (1.0 / fConst0); } @@ -142,10 +140,11 @@ class faustLpf1p : public sfzFilterDsp { virtual void compute(int count, FAUSTFLOAT** inputs, FAUSTFLOAT** outputs) { FAUSTFLOAT* input0 = inputs[0]; FAUSTFLOAT* output0 = outputs[0]; - double fSlow0 = (fConst2 * std::exp((fConst3 * (0.0 - (6.2831853071795862 * double(fCutoff)))))); + double fSlow0 = (fSmoothEnable?fConst1:0.0); + double fSlow1 = (std::exp((fConst2 * (0.0 - (6.2831853071795862 * double(fCutoff))))) * (1.0 - fSlow0)); for (int i = 0; (i < count); i = (i + 1)) { double fTemp0 = double(input0[i]); - fRec1[0] = (fSlow0 + (fConst1 * fRec1[1])); + fRec1[0] = ((fRec1[1] * fSlow0) + fSlow1); fRec0[0] = ((fRec1[0] * fRec0[1]) + fTemp0); output0[i] = FAUSTFLOAT((fRec0[0] * (1.0 - fRec1[0]))); fRec1[1] = fRec1[0]; diff --git a/src/sfizz/gen/filters/sfzLpf2p.cxx b/src/sfizz/gen/filters/sfzLpf2p.cxx index 13c73052..c4e0af95 100644 --- a/src/sfizz/gen/filters/sfzLpf2p.cxx +++ b/src/sfizz/gen/filters/sfzLpf2p.cxx @@ -33,15 +33,13 @@ class faustLpf2p : public sfzFilterDsp { int fSamplingFreq; double fConst0; double fConst1; - double fConst2; - double fConst3; FAUSTFLOAT fCutoff; FAUSTFLOAT fQ; + double fConst2; double fRec0[2]; double fRec2[2]; double fRec3[2]; double fRec1[3]; - double fConst4; double fRec4[2]; public: @@ -97,10 +95,8 @@ class faustLpf2p : public sfzFilterDsp { virtual void instanceConstants(int samplingFreq) { fSamplingFreq = samplingFreq; fConst0 = std::min(192000.0, std::max(1.0, double(fSamplingFreq))); - fConst1 = std::exp((0.0 - (1000.0 / fConst0))); - fConst2 = (1.0 - fConst1); - fConst3 = (6.2831853071795862 / fConst0); - fConst4 = (0.5 * fConst2); + fConst1 = (6.2831853071795862 / fConst0); + fConst2 = std::exp((0.0 - (1000.0 / fConst0))); } @@ -161,22 +157,24 @@ class faustLpf2p : public sfzFilterDsp { virtual void compute(int count, FAUSTFLOAT** inputs, FAUSTFLOAT** outputs) { FAUSTFLOAT* input0 = inputs[0]; FAUSTFLOAT* output0 = outputs[0]; - double fSlow0 = (fConst3 * std::max(0.0, double(fCutoff))); + double fSlow0 = (fConst1 * std::max(0.0, double(fCutoff))); double fSlow1 = std::cos(fSlow0); double fSlow2 = (0.5 * (std::sin(fSlow0) / std::max(0.001, std::pow(10.0, (0.050000000000000003 * double(fQ)))))); double fSlow3 = (fSlow2 + 1.0); double fSlow4 = ((1.0 - fSlow1) / fSlow3); - double fSlow5 = (fConst2 * fSlow4); - double fSlow6 = (fConst2 * ((0.0 - (2.0 * fSlow1)) / fSlow3)); - double fSlow7 = (fConst2 * ((1.0 - fSlow2) / fSlow3)); - double fSlow8 = (fConst4 * fSlow4); + double fSlow5 = (fSmoothEnable?fConst2:0.0); + double fSlow6 = (1.0 - fSlow5); + double fSlow7 = (fSlow4 * fSlow6); + double fSlow8 = (((0.0 - (2.0 * fSlow1)) / fSlow3) * fSlow6); + double fSlow9 = (((1.0 - fSlow2) / fSlow3) * fSlow6); + double fSlow10 = ((0.5 * fSlow4) * fSlow6); for (int i = 0; (i < count); i = (i + 1)) { double fTemp0 = double(input0[i]); - fRec0[0] = (fSlow5 + (fConst1 * fRec0[1])); - fRec2[0] = (fSlow6 + (fConst1 * fRec2[1])); - fRec3[0] = (fSlow7 + (fConst1 * fRec3[1])); + fRec0[0] = (fSlow7 + (fRec0[1] * fSlow5)); + fRec2[0] = ((fRec2[1] * fSlow5) + fSlow8); + fRec3[0] = ((fRec3[1] * fSlow5) + fSlow9); fRec1[0] = (fTemp0 - ((fRec2[0] * fRec1[1]) + (fRec3[0] * fRec1[2]))); - fRec4[0] = (fSlow8 + (fConst1 * fRec4[1])); + fRec4[0] = ((fRec4[1] * fSlow5) + fSlow10); output0[i] = FAUSTFLOAT(((fRec0[0] * fRec1[1]) + (fRec4[0] * (fRec1[0] + fRec1[2])))); fRec0[1] = fRec0[0]; fRec2[1] = fRec2[0]; diff --git a/src/sfizz/gen/filters/sfzLpf2pSv.cxx b/src/sfizz/gen/filters/sfzLpf2pSv.cxx index 6489151f..ad5f3330 100644 --- a/src/sfizz/gen/filters/sfzLpf2pSv.cxx +++ b/src/sfizz/gen/filters/sfzLpf2pSv.cxx @@ -34,7 +34,6 @@ class faustLpf2pSv : public sfzFilterDsp { double fConst0; double fConst1; double fConst2; - double fConst3; FAUSTFLOAT fCutoff; double fRec3[2]; FAUSTFLOAT fQ; @@ -97,8 +96,7 @@ class faustLpf2pSv : public sfzFilterDsp { fSamplingFreq = samplingFreq; fConst0 = std::min(192000.0, std::max(1.0, double(fSamplingFreq))); fConst1 = std::exp((0.0 - (1000.0 / fConst0))); - fConst2 = (1.0 - fConst1); - fConst3 = (3.1415926535897931 / fConst0); + fConst2 = (3.1415926535897931 / fConst0); } @@ -159,14 +157,16 @@ class faustLpf2pSv : public sfzFilterDsp { virtual void compute(int count, FAUSTFLOAT** inputs, FAUSTFLOAT** outputs) { FAUSTFLOAT* input0 = inputs[0]; FAUSTFLOAT* output0 = outputs[0]; - double fSlow0 = (fConst2 * std::tan((fConst3 * double(fCutoff)))); - double fSlow1 = (1.0 / std::pow(10.0, (0.050000000000000003 * double(fQ)))); + double fSlow0 = (fSmoothEnable?fConst1:0.0); + double fSlow1 = (1.0 - fSlow0); + double fSlow2 = (std::tan((fConst2 * double(fCutoff))) * fSlow1); + double fSlow3 = (1.0 / std::pow(10.0, (0.050000000000000003 * double(fQ)))); for (int i = 0; (i < count); i = (i + 1)) { double fTemp0 = double(input0[i]); - fRec3[0] = (fSlow0 + (fConst1 * fRec3[1])); - double fTemp1 = (fSlow1 + fRec3[0]); - fRec4[0] = ((fConst1 * fRec4[1]) + (fConst2 / ((fRec3[0] * fTemp1) + 1.0))); - fRec5[0] = ((fConst1 * fRec5[1]) + (fConst2 * fTemp1)); + fRec3[0] = ((fRec3[1] * fSlow0) + fSlow2); + double fTemp1 = (fSlow3 + fRec3[0]); + fRec4[0] = ((fRec4[1] * fSlow0) + (fSlow1 / ((fRec3[0] * fTemp1) + 1.0))); + fRec5[0] = ((fRec5[1] * fSlow0) + (fSlow1 * fTemp1)); double fTemp2 = (fTemp0 - (fRec1[1] + (fRec5[0] * fRec2[1]))); double fTemp3 = ((fRec3[0] * fRec4[0]) * fTemp2); double fTemp4 = (fRec2[1] + (2.0 * fTemp3)); diff --git a/src/sfizz/gen/filters/sfzLpf4p.cxx b/src/sfizz/gen/filters/sfzLpf4p.cxx index dadfd45c..3b1b8293 100644 --- a/src/sfizz/gen/filters/sfzLpf4p.cxx +++ b/src/sfizz/gen/filters/sfzLpf4p.cxx @@ -33,15 +33,13 @@ class faustLpf4p : public sfzFilterDsp { int fSamplingFreq; double fConst0; double fConst1; - double fConst2; - double fConst3; FAUSTFLOAT fCutoff; FAUSTFLOAT fQ; + double fConst2; double fRec0[2]; double fRec3[2]; double fRec4[2]; double fRec2[3]; - double fConst4; double fRec5[2]; double fRec1[3]; @@ -98,10 +96,8 @@ class faustLpf4p : public sfzFilterDsp { virtual void instanceConstants(int samplingFreq) { fSamplingFreq = samplingFreq; fConst0 = std::min(192000.0, std::max(1.0, double(fSamplingFreq))); - fConst1 = std::exp((0.0 - (1000.0 / fConst0))); - fConst2 = (1.0 - fConst1); - fConst3 = (6.2831853071795862 / fConst0); - fConst4 = (0.5 * fConst2); + fConst1 = (6.2831853071795862 / fConst0); + fConst2 = std::exp((0.0 - (1000.0 / fConst0))); } @@ -166,23 +162,25 @@ class faustLpf4p : public sfzFilterDsp { virtual void compute(int count, FAUSTFLOAT** inputs, FAUSTFLOAT** outputs) { FAUSTFLOAT* input0 = inputs[0]; FAUSTFLOAT* output0 = outputs[0]; - double fSlow0 = (fConst3 * std::max(0.0, double(fCutoff))); + double fSlow0 = (fConst1 * std::max(0.0, double(fCutoff))); double fSlow1 = std::cos(fSlow0); double fSlow2 = (0.5 * (std::sin(fSlow0) / std::max(0.001, std::pow(10.0, (0.050000000000000003 * double(fQ)))))); double fSlow3 = (fSlow2 + 1.0); double fSlow4 = ((1.0 - fSlow1) / fSlow3); - double fSlow5 = (fConst2 * fSlow4); - double fSlow6 = (fConst2 * ((0.0 - (2.0 * fSlow1)) / fSlow3)); - double fSlow7 = (fConst2 * ((1.0 - fSlow2) / fSlow3)); - double fSlow8 = (fConst4 * fSlow4); + double fSlow5 = (fSmoothEnable?fConst2:0.0); + double fSlow6 = (1.0 - fSlow5); + double fSlow7 = (fSlow4 * fSlow6); + double fSlow8 = (((0.0 - (2.0 * fSlow1)) / fSlow3) * fSlow6); + double fSlow9 = (((1.0 - fSlow2) / fSlow3) * fSlow6); + double fSlow10 = ((0.5 * fSlow4) * fSlow6); for (int i = 0; (i < count); i = (i + 1)) { double fTemp0 = double(input0[i]); - fRec0[0] = (fSlow5 + (fConst1 * fRec0[1])); - fRec3[0] = (fSlow6 + (fConst1 * fRec3[1])); - fRec4[0] = (fSlow7 + (fConst1 * fRec4[1])); + fRec0[0] = (fSlow7 + (fRec0[1] * fSlow5)); + fRec3[0] = ((fRec3[1] * fSlow5) + fSlow8); + fRec4[0] = ((fRec4[1] * fSlow5) + fSlow9); fRec2[0] = (fTemp0 - ((fRec3[0] * fRec2[1]) + (fRec4[0] * fRec2[2]))); - fRec5[0] = (fSlow8 + (fConst1 * fRec5[1])); - fRec1[0] = (((fRec0[0] * fRec2[1]) + (fRec5[0] * (fRec2[0] + fRec2[2]))) - ((fRec4[0] * fRec1[2]) + (fRec3[0] * fRec1[1]))); + fRec5[0] = ((fRec5[1] * fSlow5) + fSlow10); + fRec1[0] = (((fRec0[0] * fRec2[1]) + (fRec5[0] * (fRec2[0] + fRec2[2]))) - ((fRec3[0] * fRec1[1]) + (fRec4[0] * fRec1[2]))); output0[i] = FAUSTFLOAT(((fRec0[0] * fRec1[1]) + (fRec5[0] * (fRec1[0] + fRec1[2])))); fRec0[1] = fRec0[0]; fRec3[1] = fRec3[0]; diff --git a/src/sfizz/gen/filters/sfzLpf6p.cxx b/src/sfizz/gen/filters/sfzLpf6p.cxx index 645b581e..15998090 100644 --- a/src/sfizz/gen/filters/sfzLpf6p.cxx +++ b/src/sfizz/gen/filters/sfzLpf6p.cxx @@ -33,15 +33,13 @@ class faustLpf6p : public sfzFilterDsp { int fSamplingFreq; double fConst0; double fConst1; - double fConst2; - double fConst3; FAUSTFLOAT fCutoff; FAUSTFLOAT fQ; + double fConst2; double fRec0[2]; double fRec4[2]; double fRec5[2]; double fRec3[3]; - double fConst4; double fRec6[2]; double fRec2[3]; double fRec1[3]; @@ -99,10 +97,8 @@ class faustLpf6p : public sfzFilterDsp { virtual void instanceConstants(int samplingFreq) { fSamplingFreq = samplingFreq; fConst0 = std::min(192000.0, std::max(1.0, double(fSamplingFreq))); - fConst1 = std::exp((0.0 - (1000.0 / fConst0))); - fConst2 = (1.0 - fConst1); - fConst3 = (6.2831853071795862 / fConst0); - fConst4 = (0.5 * fConst2); + fConst1 = (6.2831853071795862 / fConst0); + fConst2 = std::exp((0.0 - (1000.0 / fConst0))); } @@ -171,22 +167,24 @@ class faustLpf6p : public sfzFilterDsp { virtual void compute(int count, FAUSTFLOAT** inputs, FAUSTFLOAT** outputs) { FAUSTFLOAT* input0 = inputs[0]; FAUSTFLOAT* output0 = outputs[0]; - double fSlow0 = (fConst3 * std::max(0.0, double(fCutoff))); + double fSlow0 = (fConst1 * std::max(0.0, double(fCutoff))); double fSlow1 = std::cos(fSlow0); double fSlow2 = (0.5 * (std::sin(fSlow0) / std::max(0.001, std::pow(10.0, (0.050000000000000003 * double(fQ)))))); double fSlow3 = (fSlow2 + 1.0); double fSlow4 = ((1.0 - fSlow1) / fSlow3); - double fSlow5 = (fConst2 * fSlow4); - double fSlow6 = (fConst2 * ((0.0 - (2.0 * fSlow1)) / fSlow3)); - double fSlow7 = (fConst2 * ((1.0 - fSlow2) / fSlow3)); - double fSlow8 = (fConst4 * fSlow4); + double fSlow5 = (fSmoothEnable?fConst2:0.0); + double fSlow6 = (1.0 - fSlow5); + double fSlow7 = (fSlow4 * fSlow6); + double fSlow8 = (((0.0 - (2.0 * fSlow1)) / fSlow3) * fSlow6); + double fSlow9 = (((1.0 - fSlow2) / fSlow3) * fSlow6); + double fSlow10 = ((0.5 * fSlow4) * fSlow6); for (int i = 0; (i < count); i = (i + 1)) { double fTemp0 = double(input0[i]); - fRec0[0] = (fSlow5 + (fConst1 * fRec0[1])); - fRec4[0] = (fSlow6 + (fConst1 * fRec4[1])); - fRec5[0] = (fSlow7 + (fConst1 * fRec5[1])); + fRec0[0] = (fSlow7 + (fRec0[1] * fSlow5)); + fRec4[0] = ((fRec4[1] * fSlow5) + fSlow8); + fRec5[0] = ((fRec5[1] * fSlow5) + fSlow9); fRec3[0] = (fTemp0 - ((fRec4[0] * fRec3[1]) + (fRec5[0] * fRec3[2]))); - fRec6[0] = (fSlow8 + (fConst1 * fRec6[1])); + fRec6[0] = ((fRec6[1] * fSlow5) + fSlow10); fRec2[0] = (((fRec0[0] * fRec3[1]) + (fRec6[0] * (fRec3[0] + fRec3[2]))) - ((fRec4[0] * fRec2[1]) + (fRec5[0] * fRec2[2]))); fRec1[0] = (((fRec0[0] * fRec2[1]) + (fRec6[0] * (fRec2[0] + fRec2[2]))) - ((fRec4[0] * fRec1[1]) + (fRec5[0] * fRec1[2]))); output0[i] = FAUSTFLOAT(((fRec0[0] * fRec1[1]) + (fRec6[0] * (fRec1[0] + fRec1[2])))); diff --git a/src/sfizz/gen/filters/sfzLsh.cxx b/src/sfizz/gen/filters/sfzLsh.cxx index 22e2dafc..9239b340 100644 --- a/src/sfizz/gen/filters/sfzLsh.cxx +++ b/src/sfizz/gen/filters/sfzLsh.cxx @@ -33,16 +33,14 @@ class faustLsh : public sfzFilterDsp { int fSamplingFreq; double fConst0; double fConst1; - double fConst2; FAUSTFLOAT fPkShGain; - double fConst3; + double fConst2; FAUSTFLOAT fCutoff; FAUSTFLOAT fQ; double fRec1[2]; double fRec2[2]; double fRec0[3]; double fRec3[2]; - double fConst4; double fRec4[2]; double fRec5[2]; @@ -100,9 +98,7 @@ class faustLsh : public sfzFilterDsp { fSamplingFreq = samplingFreq; fConst0 = std::min(192000.0, std::max(1.0, double(fSamplingFreq))); fConst1 = std::exp((0.0 - (1000.0 / fConst0))); - fConst2 = (1.0 - fConst1); - fConst3 = (6.2831853071795862 / fConst0); - fConst4 = (2.0 * fConst2); + fConst2 = (6.2831853071795862 / fConst0); } @@ -168,27 +164,29 @@ class faustLsh : public sfzFilterDsp { virtual void compute(int count, FAUSTFLOAT** inputs, FAUSTFLOAT** outputs) { FAUSTFLOAT* input0 = inputs[0]; FAUSTFLOAT* output0 = outputs[0]; - double fSlow0 = std::pow(10.0, (0.025000000000000001 * double(fPkShGain))); - double fSlow1 = (fConst3 * std::max(0.0, double(fCutoff))); - double fSlow2 = std::cos(fSlow1); - double fSlow3 = ((fSlow0 + 1.0) * fSlow2); - double fSlow4 = ((fSlow0 + -1.0) * fSlow2); - double fSlow5 = (fSlow4 + fSlow0); - double fSlow6 = ((std::sqrt(fSlow0) * std::sin(fSlow1)) / std::max(0.001, std::pow(10.0, (0.050000000000000003 * double(fQ))))); - double fSlow7 = ((fSlow5 + fSlow6) + 1.0); - double fSlow8 = (fConst2 * ((0.0 - (2.0 * ((fSlow3 + fSlow0) + -1.0))) / fSlow7)); - double fSlow9 = (fConst2 * ((fSlow5 + (1.0 - fSlow6)) / fSlow7)); - double fSlow10 = (fConst2 * ((((fSlow0 + fSlow6) + (1.0 - fSlow4)) * fSlow0) / fSlow7)); - double fSlow11 = (fConst4 * (((fSlow0 + (-1.0 - fSlow3)) * fSlow0) / fSlow7)); - double fSlow12 = (fConst2 * (((fSlow0 + (1.0 - (fSlow4 + fSlow6))) * fSlow0) / fSlow7)); + double fSlow0 = (fSmoothEnable?fConst1:0.0); + double fSlow1 = std::pow(10.0, (0.025000000000000001 * double(fPkShGain))); + double fSlow2 = (fConst2 * std::max(0.0, double(fCutoff))); + double fSlow3 = std::cos(fSlow2); + double fSlow4 = ((fSlow1 + 1.0) * fSlow3); + double fSlow5 = ((fSlow1 + -1.0) * fSlow3); + double fSlow6 = (fSlow5 + fSlow1); + double fSlow7 = ((std::sqrt(fSlow1) * std::sin(fSlow2)) / std::max(0.001, std::pow(10.0, (0.050000000000000003 * double(fQ))))); + double fSlow8 = ((fSlow6 + fSlow7) + 1.0); + double fSlow9 = (1.0 - fSlow0); + double fSlow10 = (((0.0 - (2.0 * ((fSlow4 + fSlow1) + -1.0))) / fSlow8) * fSlow9); + double fSlow11 = (((fSlow6 + (1.0 - fSlow7)) / fSlow8) * fSlow9); + double fSlow12 = (((((fSlow1 + fSlow7) + (1.0 - fSlow5)) * fSlow1) / fSlow8) * fSlow9); + double fSlow13 = ((2.0 * (((fSlow1 + (-1.0 - fSlow4)) * fSlow1) / fSlow8)) * fSlow9); + double fSlow14 = ((((fSlow1 + (1.0 - (fSlow5 + fSlow7))) * fSlow1) / fSlow8) * fSlow9); for (int i = 0; (i < count); i = (i + 1)) { double fTemp0 = double(input0[i]); - fRec1[0] = (fSlow8 + (fConst1 * fRec1[1])); - fRec2[0] = (fSlow9 + (fConst1 * fRec2[1])); + fRec1[0] = ((fRec1[1] * fSlow0) + fSlow10); + fRec2[0] = ((fRec2[1] * fSlow0) + fSlow11); fRec0[0] = (fTemp0 - ((fRec1[0] * fRec0[1]) + (fRec2[0] * fRec0[2]))); - fRec3[0] = (fSlow10 + (fConst1 * fRec3[1])); - fRec4[0] = (fSlow11 + (fConst1 * fRec4[1])); - fRec5[0] = (fSlow12 + (fConst1 * fRec5[1])); + fRec3[0] = ((fRec3[1] * fSlow0) + fSlow12); + fRec4[0] = ((fRec4[1] * fSlow0) + fSlow13); + fRec5[0] = ((fRec5[1] * fSlow0) + fSlow14); output0[i] = FAUSTFLOAT((((fRec0[0] * fRec3[0]) + (fRec4[0] * fRec0[1])) + (fRec5[0] * fRec0[2]))); fRec1[1] = fRec1[0]; fRec2[1] = fRec2[0]; diff --git a/src/sfizz/gen/filters/sfzPeq.cxx b/src/sfizz/gen/filters/sfzPeq.cxx index f4ba2690..33b486e0 100644 --- a/src/sfizz/gen/filters/sfzPeq.cxx +++ b/src/sfizz/gen/filters/sfzPeq.cxx @@ -34,7 +34,6 @@ class faustPeq : public sfzFilterDsp { double fConst0; double fConst1; double fConst2; - double fConst3; FAUSTFLOAT fCutoff; FAUSTFLOAT fQ; FAUSTFLOAT fPkShGain; @@ -98,8 +97,7 @@ class faustPeq : public sfzFilterDsp { fSamplingFreq = samplingFreq; fConst0 = std::min(192000.0, std::max(1.0, double(fSamplingFreq))); fConst1 = std::exp((0.0 - (1000.0 / fConst0))); - fConst2 = (1.0 - fConst1); - fConst3 = (6.2831853071795862 / fConst0); + fConst2 = (6.2831853071795862 / fConst0); } @@ -161,25 +159,27 @@ class faustPeq : public sfzFilterDsp { virtual void compute(int count, FAUSTFLOAT** inputs, FAUSTFLOAT** outputs) { FAUSTFLOAT* input0 = inputs[0]; FAUSTFLOAT* output0 = outputs[0]; - double fSlow0 = (fConst3 * std::max(0.0, double(fCutoff))); - double fSlow1 = std::sin(fSlow0); - double fSlow2 = std::max(0.001, std::pow(10.0, (0.050000000000000003 * double(fQ)))); - double fSlow3 = std::pow(10.0, (0.025000000000000001 * double(fPkShGain))); - double fSlow4 = (0.5 * (fSlow1 / (fSlow2 * fSlow3))); - double fSlow5 = (fSlow4 + 1.0); - double fSlow6 = (fConst2 * ((0.0 - (2.0 * std::cos(fSlow0))) / fSlow5)); - double fSlow7 = (fConst2 * ((1.0 - fSlow4) / fSlow5)); - double fSlow8 = (0.5 * ((fSlow1 * fSlow3) / fSlow2)); - double fSlow9 = (fConst2 * ((fSlow8 + 1.0) / fSlow5)); - double fSlow10 = (fConst2 * ((1.0 - fSlow8) / fSlow5)); + double fSlow0 = (fSmoothEnable?fConst1:0.0); + double fSlow1 = (fConst2 * std::max(0.0, double(fCutoff))); + double fSlow2 = std::sin(fSlow1); + double fSlow3 = std::max(0.001, std::pow(10.0, (0.050000000000000003 * double(fQ)))); + double fSlow4 = std::pow(10.0, (0.025000000000000001 * double(fPkShGain))); + double fSlow5 = (0.5 * (fSlow2 / (fSlow3 * fSlow4))); + double fSlow6 = (fSlow5 + 1.0); + double fSlow7 = (1.0 - fSlow0); + double fSlow8 = (((0.0 - (2.0 * std::cos(fSlow1))) / fSlow6) * fSlow7); + double fSlow9 = (((1.0 - fSlow5) / fSlow6) * fSlow7); + double fSlow10 = (0.5 * ((fSlow2 * fSlow4) / fSlow3)); + double fSlow11 = (((fSlow10 + 1.0) / fSlow6) * fSlow7); + double fSlow12 = (((1.0 - fSlow10) / fSlow6) * fSlow7); for (int i = 0; (i < count); i = (i + 1)) { double fTemp0 = double(input0[i]); - fRec1[0] = (fSlow6 + (fConst1 * fRec1[1])); + fRec1[0] = ((fRec1[1] * fSlow0) + fSlow8); double fTemp1 = (fRec1[0] * fRec0[1]); - fRec2[0] = (fSlow7 + (fConst1 * fRec2[1])); + fRec2[0] = ((fRec2[1] * fSlow0) + fSlow9); fRec0[0] = (fTemp0 - (fTemp1 + (fRec2[0] * fRec0[2]))); - fRec3[0] = (fSlow9 + (fConst1 * fRec3[1])); - fRec4[0] = (fSlow10 + (fConst1 * fRec4[1])); + fRec3[0] = ((fRec3[1] * fSlow0) + fSlow11); + fRec4[0] = ((fRec4[1] * fSlow0) + fSlow12); output0[i] = FAUSTFLOAT((((fRec0[0] * fRec3[0]) + fTemp1) + (fRec4[0] * fRec0[2]))); fRec1[1] = fRec1[0]; fRec2[1] = fRec2[0];