diff --git a/src/sfizz/dsp/filters/sfz_filters.dsp b/src/sfizz/dsp/filters/sfz_filters.dsp index 8efb07a1..72da6362 100644 --- a/src/sfizz/dsp/filters/sfz_filters.dsp +++ b/src/sfizz/dsp/filters/sfz_filters.dsp @@ -94,19 +94,17 @@ sfzPeq = fm.rbjPeakingEqSmooth(smoothCoefs,cutoff,pkShGain,Q); // the SFZ equalizer band sfzEqPeak = fm.rbjPeakingEqSmooth(smoothCoefs,cutoff,pkShGain,Q) with { - Q = 1./(2.*ma.sinh(0.5*log(2)*max(1e-3, bandwidth)*w0/sin(w0))); - w0 = 2*ma.PI*max(0,cutoff)/ma.SR; + Q = 1./(2.*ma.sinh(0.5*log(2)*bandwidth*w0/sin(w0))); + w0 = 2*ma.PI*cutoff/ma.SR; }; // the SFZ low-shelf with EQ controls sfzEqLshelf = fm.rbjLowShelfSmooth(smoothCoefs,cutoff,pkShGain,Q) with { - slope = bandwidth; // in this case eqN_bw meaning is not bandwith but slope Q = sfzGetQFromSlope(slope); }; // the SFZ high-shelf with EQ controls sfzEqHshelf = fm.rbjHighShelfSmooth(smoothCoefs,cutoff,pkShGain,Q) with { - slope = bandwidth; // in this case eqN_bw meaning is not bandwith but slope Q = sfzGetQFromSlope(slope); }; @@ -155,10 +153,12 @@ sfz2chEqHshelf = par(i,2,sfzEqHshelf); //============================================================================== // Filter parameters -cutoff = hslider("[01] Cutoff [unit:Hz] [scale:log]", 440.0, 50.0, 10000.0, 1.0); -Q = vslider("[02] Resonance [unit:dB]", 0.0, 0.0, 40.0, 0.1) : ba.db2linear; -pkShGain = vslider("[03] Peak/shelf gain [unit:dB]", 0.0, 0.0, 40.0, 0.1); -bandwidth = vslider("[04] Bandwidth [unit:octave]", 1.0, 0.1, 10.0, 0.01); +cutoff = hslider("[01] Cutoff [unit:Hz] [scale:log]", 440.0, 50.0, 10000.0, 1.0) : max(1.0) : min(20000.0); +Q = vslider("[02] Resonance [unit:dB]", 0.0, 0.0, 40.0, 0.1) : max(0.0) : min(60.0) : ba.db2linear; +pkShGain = vslider("[03] Peak/shelf gain [unit:dB]", 0.0, 0.0, 40.0, 0.1) : max(-120.0) : min(60.0); +bandwidthOrSlope = vslider("[04] Bandwidth [unit:octave]", 1.0, 0.1, 10.0, 0.01); +bandwidth = bandwidthOrSlope : max(1e-2) : min(12.0); +slope = bandwidthOrSlope; // limited further down in code // smoothing function to prevent fast changes of filter coefficients // The basic si.smoo is a bit longish and creates strange modulation sounds diff --git a/src/sfizz/gen/filters/sfz2chApf1p.hxx b/src/sfizz/gen/filters/sfz2chApf1p.hxx index 33ccbcfe..6e7aef00 100644 --- a/src/sfizz/gen/filters/sfz2chApf1p.hxx +++ b/src/sfizz/gen/filters/sfz2chApf1p.hxx @@ -119,7 +119,7 @@ class faust2chApf1p : public sfzFilterDsp { FAUSTFLOAT* output0 = outputs[0]; FAUSTFLOAT* output1 = outputs[1]; double fSlow0 = (fSmoothEnable ? fConst1 : 0.0); - double fSlow1 = (((fConst2 * double(fHslider0)) + -1.0) * (1.0 - fSlow0)); + double fSlow1 = (((fConst2 * std::min(20000.0, std::max(1.0, double(fHslider0)))) + -1.0) * (1.0 - fSlow0)); for (int i = 0; (i < count); i = (i + 1)) { double fTemp0 = double(input0[i]); double fTemp1 = double(input1[i]); diff --git a/src/sfizz/gen/filters/sfz2chBpf1p.hxx b/src/sfizz/gen/filters/sfz2chBpf1p.hxx index 6145ed42..6243be67 100644 --- a/src/sfizz/gen/filters/sfz2chBpf1p.hxx +++ b/src/sfizz/gen/filters/sfz2chBpf1p.hxx @@ -127,7 +127,7 @@ class faust2chBpf1p : public sfzFilterDsp { FAUSTFLOAT* output0 = outputs[0]; FAUSTFLOAT* output1 = outputs[1]; double fSlow0 = (fSmoothEnable ? fConst1 : 0.0); - double fSlow1 = (std::exp((fConst2 * (0.0 - (6.2831853071795862 * double(fHslider0))))) * (1.0 - fSlow0)); + double fSlow1 = (std::exp((fConst2 * (0.0 - (6.2831853071795862 * std::min(20000.0, std::max(1.0, double(fHslider0))))))) * (1.0 - fSlow0)); for (int i = 0; (i < count); i = (i + 1)) { double fTemp0 = double(input0[i]); double fTemp1 = double(input1[i]); diff --git a/src/sfizz/gen/filters/sfz2chBpf2p.hxx b/src/sfizz/gen/filters/sfz2chBpf2p.hxx index 4ebc2083..5c591b9e 100644 --- a/src/sfizz/gen/filters/sfz2chBpf2p.hxx +++ b/src/sfizz/gen/filters/sfz2chBpf2p.hxx @@ -169,9 +169,9 @@ class faust2chBpf2p : public sfzFilterDsp { FAUSTFLOAT* output0 = outputs[0]; FAUSTFLOAT* output1 = outputs[1]; double fSlow0 = (fSmoothEnable ? fConst1 : 0.0); - double fSlow1 = (fConst2 * std::max(0.0, double(fHslider0))); + double fSlow1 = (fConst2 * std::max(0.0, std::min(20000.0, std::max(1.0, double(fHslider0))))); double fSlow2 = std::sin(fSlow1); - double fSlow3 = std::max(0.001, std::pow(10.0, (0.050000000000000003 * double(fVslider0)))); + double fSlow3 = std::max(0.001, std::pow(10.0, (0.050000000000000003 * std::min(60.0, std::max(0.0, double(fVslider0)))))); double fSlow4 = (0.5 * (fSlow2 / fSlow3)); double fSlow5 = (fSlow4 + 1.0); double fSlow6 = (0.5 * (fSlow2 / (fSlow3 * fSlow5))); diff --git a/src/sfizz/gen/filters/sfz2chBpf2pSv.hxx b/src/sfizz/gen/filters/sfz2chBpf2pSv.hxx index 2719a4d8..398dfec1 100644 --- a/src/sfizz/gen/filters/sfz2chBpf2pSv.hxx +++ b/src/sfizz/gen/filters/sfz2chBpf2pSv.hxx @@ -138,8 +138,8 @@ class faust2chBpf2pSv : public sfzFilterDsp { FAUSTFLOAT* output1 = outputs[1]; double fSlow0 = (fSmoothEnable ? fConst1 : 0.0); double fSlow1 = (1.0 - fSlow0); - double fSlow2 = (std::tan((fConst2 * double(fHslider0))) * fSlow1); - double fSlow3 = (1.0 / std::pow(10.0, (0.050000000000000003 * double(fVslider0)))); + double fSlow2 = (std::tan((fConst2 * std::min(20000.0, std::max(1.0, double(fHslider0))))) * fSlow1); + double fSlow3 = (1.0 / std::pow(10.0, (0.050000000000000003 * std::min(60.0, std::max(0.0, double(fVslider0)))))); for (int i = 0; (i < count); i = (i + 1)) { double fTemp0 = double(input0[i]); double fTemp1 = double(input1[i]); diff --git a/src/sfizz/gen/filters/sfz2chBpf4p.hxx b/src/sfizz/gen/filters/sfz2chBpf4p.hxx index 84fe9ac1..cb7113d0 100644 --- a/src/sfizz/gen/filters/sfz2chBpf4p.hxx +++ b/src/sfizz/gen/filters/sfz2chBpf4p.hxx @@ -209,9 +209,9 @@ class faust2chBpf4p : public sfzFilterDsp { FAUSTFLOAT* output0 = outputs[0]; FAUSTFLOAT* output1 = outputs[1]; double fSlow0 = (fSmoothEnable ? fConst1 : 0.0); - double fSlow1 = (fConst2 * std::max(0.0, double(fHslider0))); + double fSlow1 = (fConst2 * std::max(0.0, std::min(20000.0, std::max(1.0, double(fHslider0))))); double fSlow2 = std::sin(fSlow1); - double fSlow3 = std::max(0.001, std::pow(10.0, (0.050000000000000003 * double(fVslider0)))); + double fSlow3 = std::max(0.001, std::pow(10.0, (0.050000000000000003 * std::min(60.0, std::max(0.0, double(fVslider0)))))); double fSlow4 = (0.5 * (fSlow2 / fSlow3)); double fSlow5 = (fSlow4 + 1.0); double fSlow6 = (0.5 * (fSlow2 / (fSlow3 * fSlow5))); diff --git a/src/sfizz/gen/filters/sfz2chBpf6p.hxx b/src/sfizz/gen/filters/sfz2chBpf6p.hxx index 473690f6..78495246 100644 --- a/src/sfizz/gen/filters/sfz2chBpf6p.hxx +++ b/src/sfizz/gen/filters/sfz2chBpf6p.hxx @@ -249,9 +249,9 @@ class faust2chBpf6p : public sfzFilterDsp { FAUSTFLOAT* output0 = outputs[0]; FAUSTFLOAT* output1 = outputs[1]; double fSlow0 = (fSmoothEnable ? fConst1 : 0.0); - double fSlow1 = (fConst2 * std::max(0.0, double(fHslider0))); + double fSlow1 = (fConst2 * std::max(0.0, std::min(20000.0, std::max(1.0, double(fHslider0))))); double fSlow2 = std::sin(fSlow1); - double fSlow3 = std::max(0.001, std::pow(10.0, (0.050000000000000003 * double(fVslider0)))); + double fSlow3 = std::max(0.001, std::pow(10.0, (0.050000000000000003 * std::min(60.0, std::max(0.0, double(fVslider0)))))); double fSlow4 = (0.5 * (fSlow2 / fSlow3)); double fSlow5 = (fSlow4 + 1.0); double fSlow6 = (0.5 * (fSlow2 / (fSlow3 * fSlow5))); diff --git a/src/sfizz/gen/filters/sfz2chBrf1p.hxx b/src/sfizz/gen/filters/sfz2chBrf1p.hxx index 4817a6fc..b1bec565 100644 --- a/src/sfizz/gen/filters/sfz2chBrf1p.hxx +++ b/src/sfizz/gen/filters/sfz2chBrf1p.hxx @@ -127,7 +127,7 @@ class faust2chBrf1p : public sfzFilterDsp { FAUSTFLOAT* output0 = outputs[0]; FAUSTFLOAT* output1 = outputs[1]; double fSlow0 = (fSmoothEnable ? fConst1 : 0.0); - double fSlow1 = (((fConst2 * double(fHslider0)) + -1.0) * (1.0 - fSlow0)); + double fSlow1 = (((fConst2 * std::min(20000.0, std::max(1.0, double(fHslider0)))) + -1.0) * (1.0 - fSlow0)); for (int i = 0; (i < count); i = (i + 1)) { double fTemp0 = double(input0[i]); double fTemp1 = double(input1[i]); diff --git a/src/sfizz/gen/filters/sfz2chBrf2p.hxx b/src/sfizz/gen/filters/sfz2chBrf2p.hxx index 2c4a25af..b802972f 100644 --- a/src/sfizz/gen/filters/sfz2chBrf2p.hxx +++ b/src/sfizz/gen/filters/sfz2chBrf2p.hxx @@ -161,8 +161,8 @@ class faust2chBrf2p : public sfzFilterDsp { FAUSTFLOAT* output0 = outputs[0]; FAUSTFLOAT* output1 = outputs[1]; double fSlow0 = (fSmoothEnable ? fConst1 : 0.0); - double fSlow1 = (fConst2 * std::max(0.0, double(fHslider0))); - double fSlow2 = (0.5 * (std::sin(fSlow1) / std::max(0.001, std::pow(10.0, (0.050000000000000003 * double(fVslider0)))))); + double fSlow1 = (fConst2 * std::max(0.0, std::min(20000.0, std::max(1.0, double(fHslider0))))); + double fSlow2 = (0.5 * (std::sin(fSlow1) / std::max(0.001, std::pow(10.0, (0.050000000000000003 * std::min(60.0, std::max(0.0, double(fVslider0)))))))); double fSlow3 = (fSlow2 + 1.0); double fSlow4 = (1.0 - fSlow0); double fSlow5 = (((0.0 - (2.0 * std::cos(fSlow1))) / fSlow3) * fSlow4); diff --git a/src/sfizz/gen/filters/sfz2chBrf2pSv.hxx b/src/sfizz/gen/filters/sfz2chBrf2pSv.hxx index 020f13b0..c9b75ee2 100644 --- a/src/sfizz/gen/filters/sfz2chBrf2pSv.hxx +++ b/src/sfizz/gen/filters/sfz2chBrf2pSv.hxx @@ -138,8 +138,8 @@ class faust2chBrf2pSv : public sfzFilterDsp { FAUSTFLOAT* output1 = outputs[1]; double fSlow0 = (fSmoothEnable ? fConst1 : 0.0); double fSlow1 = (1.0 - fSlow0); - double fSlow2 = (std::tan((fConst2 * double(fHslider0))) * fSlow1); - double fSlow3 = (1.0 / std::pow(10.0, (0.050000000000000003 * double(fVslider0)))); + double fSlow2 = (std::tan((fConst2 * std::min(20000.0, std::max(1.0, double(fHslider0))))) * fSlow1); + double fSlow3 = (1.0 / std::pow(10.0, (0.050000000000000003 * std::min(60.0, std::max(0.0, double(fVslider0)))))); for (int i = 0; (i < count); i = (i + 1)) { double fTemp0 = double(input0[i]); double fTemp1 = double(input1[i]); diff --git a/src/sfizz/gen/filters/sfz2chEqHshelf.hxx b/src/sfizz/gen/filters/sfz2chEqHshelf.hxx index 62447f2b..fc2a9c74 100644 --- a/src/sfizz/gen/filters/sfz2chEqHshelf.hxx +++ b/src/sfizz/gen/filters/sfz2chEqHshelf.hxx @@ -174,8 +174,8 @@ class faust2chEqHshelf : public sfzFilterDsp { FAUSTFLOAT* output0 = outputs[0]; FAUSTFLOAT* output1 = outputs[1]; double fSlow0 = (fSmoothEnable ? fConst1 : 0.0); - double fSlow1 = std::pow(10.0, (0.025000000000000001 * double(fVslider0))); - double fSlow2 = (fConst2 * std::max(0.0, double(fHslider0))); + double fSlow1 = std::pow(10.0, (0.025000000000000001 * std::min(60.0, std::max(-120.0, double(fVslider0))))); + double fSlow2 = (fConst2 * std::max(0.0, std::min(20000.0, std::max(1.0, double(fHslider0))))); double fSlow3 = std::cos(fSlow2); double fSlow4 = ((fSlow1 + 1.0) * fSlow3); double fSlow5 = (faust2chEqHshelf_faustpower2_f(fSlow1) + 1.0); diff --git a/src/sfizz/gen/filters/sfz2chEqLshelf.hxx b/src/sfizz/gen/filters/sfz2chEqLshelf.hxx index 5859b454..f07d9038 100644 --- a/src/sfizz/gen/filters/sfz2chEqLshelf.hxx +++ b/src/sfizz/gen/filters/sfz2chEqLshelf.hxx @@ -174,8 +174,8 @@ class faust2chEqLshelf : public sfzFilterDsp { FAUSTFLOAT* output0 = outputs[0]; FAUSTFLOAT* output1 = outputs[1]; double fSlow0 = (fSmoothEnable ? fConst1 : 0.0); - double fSlow1 = std::pow(10.0, (0.025000000000000001 * double(fVslider0))); - double fSlow2 = (fConst2 * std::max(0.0, double(fHslider0))); + double fSlow1 = std::pow(10.0, (0.025000000000000001 * std::min(60.0, std::max(-120.0, double(fVslider0))))); + double fSlow2 = (fConst2 * std::max(0.0, std::min(20000.0, std::max(1.0, double(fHslider0))))); double fSlow3 = std::cos(fSlow2); double fSlow4 = ((fSlow1 + 1.0) * fSlow3); double fSlow5 = (fSlow1 + -1.0); diff --git a/src/sfizz/gen/filters/sfz2chEqPeak.hxx b/src/sfizz/gen/filters/sfz2chEqPeak.hxx index cac02e65..87b552cf 100644 --- a/src/sfizz/gen/filters/sfz2chEqPeak.hxx +++ b/src/sfizz/gen/filters/sfz2chEqPeak.hxx @@ -170,11 +170,11 @@ class faust2chEqPeak : public sfzFilterDsp { FAUSTFLOAT* output0 = outputs[0]; FAUSTFLOAT* output1 = outputs[1]; double fSlow0 = (fSmoothEnable ? fConst1 : 0.0); - double fSlow1 = std::max(0.0, double(fHslider0)); - double fSlow2 = (fConst2 * fSlow1); + double fSlow1 = std::min(20000.0, std::max(1.0, double(fHslider0))); + double fSlow2 = (fConst2 * std::max(0.0, fSlow1)); double fSlow3 = std::sin(fSlow2); - double fSlow4 = std::pow(10.0, (0.025000000000000001 * double(fVslider0))); - double fSlow5 = std::max(0.001, (0.5 / double(sinh(double((fConst3 * ((fSlow1 * std::max(0.001, double(fVslider1))) / fSlow3))))))); + double fSlow4 = std::pow(10.0, (0.025000000000000001 * std::min(60.0, std::max(-120.0, double(fVslider0))))); + double fSlow5 = std::max(0.001, (0.5 / double(sinh(double((fConst3 * ((fSlow1 * std::min(12.0, std::max(0.01, double(fVslider1)))) / std::sin((fConst2 * fSlow1))))))))); double fSlow6 = (0.5 * (fSlow3 / (fSlow4 * fSlow5))); double fSlow7 = (fSlow6 + 1.0); double fSlow8 = (1.0 - fSlow0); diff --git a/src/sfizz/gen/filters/sfz2chHpf1p.hxx b/src/sfizz/gen/filters/sfz2chHpf1p.hxx index 57ca9c51..a0a054e2 100644 --- a/src/sfizz/gen/filters/sfz2chHpf1p.hxx +++ b/src/sfizz/gen/filters/sfz2chHpf1p.hxx @@ -119,7 +119,7 @@ class faust2chHpf1p : public sfzFilterDsp { FAUSTFLOAT* output0 = outputs[0]; FAUSTFLOAT* output1 = outputs[1]; double fSlow0 = (fSmoothEnable ? fConst1 : 0.0); - double fSlow1 = (std::exp((fConst2 * (0.0 - (6.2831853071795862 * double(fHslider0))))) * (1.0 - fSlow0)); + double fSlow1 = (std::exp((fConst2 * (0.0 - (6.2831853071795862 * std::min(20000.0, std::max(1.0, double(fHslider0))))))) * (1.0 - fSlow0)); for (int i = 0; (i < count); i = (i + 1)) { double fTemp0 = double(input0[i]); double fTemp1 = double(input1[i]); diff --git a/src/sfizz/gen/filters/sfz2chHpf2p.hxx b/src/sfizz/gen/filters/sfz2chHpf2p.hxx index 99967081..49059293 100644 --- a/src/sfizz/gen/filters/sfz2chHpf2p.hxx +++ b/src/sfizz/gen/filters/sfz2chHpf2p.hxx @@ -165,9 +165,9 @@ class faust2chHpf2p : public sfzFilterDsp { FAUSTFLOAT* output0 = outputs[0]; FAUSTFLOAT* output1 = outputs[1]; double fSlow0 = (fSmoothEnable ? fConst1 : 0.0); - double fSlow1 = (fConst2 * std::max(0.0, double(fHslider0))); + double fSlow1 = (fConst2 * std::max(0.0, std::min(20000.0, std::max(1.0, double(fHslider0))))); double fSlow2 = std::cos(fSlow1); - double fSlow3 = (0.5 * (std::sin(fSlow1) / std::max(0.001, std::pow(10.0, (0.050000000000000003 * double(fVslider0)))))); + double fSlow3 = (0.5 * (std::sin(fSlow1) / std::max(0.001, std::pow(10.0, (0.050000000000000003 * std::min(60.0, std::max(0.0, double(fVslider0)))))))); double fSlow4 = (fSlow3 + 1.0); double fSlow5 = (1.0 - fSlow0); double fSlow6 = (((-1.0 - fSlow2) / fSlow4) * fSlow5); diff --git a/src/sfizz/gen/filters/sfz2chHpf2pSv.hxx b/src/sfizz/gen/filters/sfz2chHpf2pSv.hxx index 6ff0bb53..6631a898 100644 --- a/src/sfizz/gen/filters/sfz2chHpf2pSv.hxx +++ b/src/sfizz/gen/filters/sfz2chHpf2pSv.hxx @@ -138,8 +138,8 @@ class faust2chHpf2pSv : public sfzFilterDsp { FAUSTFLOAT* output1 = outputs[1]; double fSlow0 = (fSmoothEnable ? fConst1 : 0.0); double fSlow1 = (1.0 - fSlow0); - double fSlow2 = (std::tan((fConst2 * double(fHslider0))) * fSlow1); - double fSlow3 = (1.0 / std::pow(10.0, (0.050000000000000003 * double(fVslider0)))); + double fSlow2 = (std::tan((fConst2 * std::min(20000.0, std::max(1.0, double(fHslider0))))) * fSlow1); + double fSlow3 = (1.0 / std::pow(10.0, (0.050000000000000003 * std::min(60.0, std::max(0.0, double(fVslider0)))))); for (int i = 0; (i < count); i = (i + 1)) { double fTemp0 = double(input0[i]); double fTemp1 = double(input1[i]); diff --git a/src/sfizz/gen/filters/sfz2chHpf4p.hxx b/src/sfizz/gen/filters/sfz2chHpf4p.hxx index d6e829be..85ddb785 100644 --- a/src/sfizz/gen/filters/sfz2chHpf4p.hxx +++ b/src/sfizz/gen/filters/sfz2chHpf4p.hxx @@ -205,9 +205,9 @@ class faust2chHpf4p : public sfzFilterDsp { FAUSTFLOAT* output0 = outputs[0]; FAUSTFLOAT* output1 = outputs[1]; double fSlow0 = (fSmoothEnable ? fConst1 : 0.0); - double fSlow1 = (fConst2 * std::max(0.0, double(fHslider0))); + double fSlow1 = (fConst2 * std::max(0.0, std::min(20000.0, std::max(1.0, double(fHslider0))))); double fSlow2 = std::cos(fSlow1); - double fSlow3 = (0.5 * (std::sin(fSlow1) / std::max(0.001, std::pow(10.0, (0.050000000000000003 * double(fVslider0)))))); + double fSlow3 = (0.5 * (std::sin(fSlow1) / std::max(0.001, std::pow(10.0, (0.050000000000000003 * std::min(60.0, std::max(0.0, double(fVslider0)))))))); double fSlow4 = (fSlow3 + 1.0); double fSlow5 = (1.0 - fSlow0); double fSlow6 = (((-1.0 - fSlow2) / fSlow4) * fSlow5); diff --git a/src/sfizz/gen/filters/sfz2chHpf6p.hxx b/src/sfizz/gen/filters/sfz2chHpf6p.hxx index b2fdbd97..4c848e81 100644 --- a/src/sfizz/gen/filters/sfz2chHpf6p.hxx +++ b/src/sfizz/gen/filters/sfz2chHpf6p.hxx @@ -245,9 +245,9 @@ class faust2chHpf6p : public sfzFilterDsp { FAUSTFLOAT* output0 = outputs[0]; FAUSTFLOAT* output1 = outputs[1]; double fSlow0 = (fSmoothEnable ? fConst1 : 0.0); - double fSlow1 = (fConst2 * std::max(0.0, double(fHslider0))); + double fSlow1 = (fConst2 * std::max(0.0, std::min(20000.0, std::max(1.0, double(fHslider0))))); double fSlow2 = std::cos(fSlow1); - double fSlow3 = (0.5 * (std::sin(fSlow1) / std::max(0.001, std::pow(10.0, (0.050000000000000003 * double(fVslider0)))))); + double fSlow3 = (0.5 * (std::sin(fSlow1) / std::max(0.001, std::pow(10.0, (0.050000000000000003 * std::min(60.0, std::max(0.0, double(fVslider0)))))))); double fSlow4 = (fSlow3 + 1.0); double fSlow5 = (1.0 - fSlow0); double fSlow6 = (((-1.0 - fSlow2) / fSlow4) * fSlow5); diff --git a/src/sfizz/gen/filters/sfz2chHsh.hxx b/src/sfizz/gen/filters/sfz2chHsh.hxx index 7f7240d1..7bb9fde3 100644 --- a/src/sfizz/gen/filters/sfz2chHsh.hxx +++ b/src/sfizz/gen/filters/sfz2chHsh.hxx @@ -171,11 +171,11 @@ class faust2chHsh : public sfzFilterDsp { FAUSTFLOAT* output0 = outputs[0]; FAUSTFLOAT* output1 = outputs[1]; double fSlow0 = (fSmoothEnable ? fConst1 : 0.0); - double fSlow1 = std::pow(10.0, (0.025000000000000001 * double(fVslider0))); - double fSlow2 = (fConst2 * std::max(0.0, double(fHslider0))); + double fSlow1 = std::pow(10.0, (0.025000000000000001 * std::min(60.0, std::max(-120.0, double(fVslider0))))); + double fSlow2 = (fConst2 * std::max(0.0, std::min(20000.0, std::max(1.0, double(fHslider0))))); 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(fVslider1))))); + double fSlow5 = ((std::sqrt(fSlow1) * std::sin(fSlow2)) / std::max(0.001, std::pow(10.0, (0.050000000000000003 * std::min(60.0, std::max(0.0, double(fVslider1))))))); double fSlow6 = ((fSlow1 + -1.0) * fSlow3); double fSlow7 = ((fSlow1 + fSlow5) + (1.0 - fSlow6)); double fSlow8 = (1.0 - fSlow0); diff --git a/src/sfizz/gen/filters/sfz2chLpf1p.hxx b/src/sfizz/gen/filters/sfz2chLpf1p.hxx index 83819344..8567bcaf 100644 --- a/src/sfizz/gen/filters/sfz2chLpf1p.hxx +++ b/src/sfizz/gen/filters/sfz2chLpf1p.hxx @@ -119,7 +119,7 @@ class faust2chLpf1p : public sfzFilterDsp { FAUSTFLOAT* output0 = outputs[0]; FAUSTFLOAT* output1 = outputs[1]; double fSlow0 = (fSmoothEnable ? fConst1 : 0.0); - double fSlow1 = (std::exp((fConst2 * (0.0 - (6.2831853071795862 * double(fHslider0))))) * (1.0 - fSlow0)); + double fSlow1 = (std::exp((fConst2 * (0.0 - (6.2831853071795862 * std::min(20000.0, std::max(1.0, double(fHslider0))))))) * (1.0 - fSlow0)); for (int i = 0; (i < count); i = (i + 1)) { double fTemp0 = double(input0[i]); double fTemp1 = double(input1[i]); diff --git a/src/sfizz/gen/filters/sfz2chLpf2p.hxx b/src/sfizz/gen/filters/sfz2chLpf2p.hxx index b120b92a..1ee9a6f8 100644 --- a/src/sfizz/gen/filters/sfz2chLpf2p.hxx +++ b/src/sfizz/gen/filters/sfz2chLpf2p.hxx @@ -164,9 +164,9 @@ class faust2chLpf2p : public sfzFilterDsp { FAUSTFLOAT const* input1 = inputs[1]; FAUSTFLOAT* output0 = outputs[0]; FAUSTFLOAT* output1 = outputs[1]; - double fSlow0 = (fConst1 * std::max(0.0, double(fHslider0))); + double fSlow0 = (fConst1 * std::max(0.0, std::min(20000.0, std::max(1.0, double(fHslider0))))); double fSlow1 = std::cos(fSlow0); - double fSlow2 = (0.5 * (std::sin(fSlow0) / std::max(0.001, std::pow(10.0, (0.050000000000000003 * double(fVslider0)))))); + double fSlow2 = (0.5 * (std::sin(fSlow0) / std::max(0.001, std::pow(10.0, (0.050000000000000003 * std::min(60.0, std::max(0.0, double(fVslider0)))))))); double fSlow3 = (fSlow2 + 1.0); double fSlow4 = ((1.0 - fSlow1) / fSlow3); double fSlow5 = (fSmoothEnable ? fConst2 : 0.0); diff --git a/src/sfizz/gen/filters/sfz2chLpf2pSv.hxx b/src/sfizz/gen/filters/sfz2chLpf2pSv.hxx index 75c2243b..6c42c4ed 100644 --- a/src/sfizz/gen/filters/sfz2chLpf2pSv.hxx +++ b/src/sfizz/gen/filters/sfz2chLpf2pSv.hxx @@ -138,8 +138,8 @@ class faust2chLpf2pSv : public sfzFilterDsp { FAUSTFLOAT* output1 = outputs[1]; double fSlow0 = (fSmoothEnable ? fConst1 : 0.0); double fSlow1 = (1.0 - fSlow0); - double fSlow2 = (std::tan((fConst2 * double(fHslider0))) * fSlow1); - double fSlow3 = (1.0 / std::pow(10.0, (0.050000000000000003 * double(fVslider0)))); + double fSlow2 = (std::tan((fConst2 * std::min(20000.0, std::max(1.0, double(fHslider0))))) * fSlow1); + double fSlow3 = (1.0 / std::pow(10.0, (0.050000000000000003 * std::min(60.0, std::max(0.0, double(fVslider0)))))); for (int i = 0; (i < count); i = (i + 1)) { double fTemp0 = double(input0[i]); double fTemp1 = double(input1[i]); diff --git a/src/sfizz/gen/filters/sfz2chLpf4p.hxx b/src/sfizz/gen/filters/sfz2chLpf4p.hxx index 448704b2..7fabed76 100644 --- a/src/sfizz/gen/filters/sfz2chLpf4p.hxx +++ b/src/sfizz/gen/filters/sfz2chLpf4p.hxx @@ -204,9 +204,9 @@ class faust2chLpf4p : public sfzFilterDsp { FAUSTFLOAT const* input1 = inputs[1]; FAUSTFLOAT* output0 = outputs[0]; FAUSTFLOAT* output1 = outputs[1]; - double fSlow0 = (fConst1 * std::max(0.0, double(fHslider0))); + double fSlow0 = (fConst1 * std::max(0.0, std::min(20000.0, std::max(1.0, double(fHslider0))))); double fSlow1 = std::cos(fSlow0); - double fSlow2 = (0.5 * (std::sin(fSlow0) / std::max(0.001, std::pow(10.0, (0.050000000000000003 * double(fVslider0)))))); + double fSlow2 = (0.5 * (std::sin(fSlow0) / std::max(0.001, std::pow(10.0, (0.050000000000000003 * std::min(60.0, std::max(0.0, double(fVslider0)))))))); double fSlow3 = (fSlow2 + 1.0); double fSlow4 = ((1.0 - fSlow1) / fSlow3); double fSlow5 = (fSmoothEnable ? fConst2 : 0.0); diff --git a/src/sfizz/gen/filters/sfz2chLpf6p.hxx b/src/sfizz/gen/filters/sfz2chLpf6p.hxx index 0d3ce7f2..b2ce9fca 100644 --- a/src/sfizz/gen/filters/sfz2chLpf6p.hxx +++ b/src/sfizz/gen/filters/sfz2chLpf6p.hxx @@ -46,10 +46,10 @@ class faust2chLpf6p : public sfzFilterDsp { FAUSTFLOAT fVslider0; double fConst2; double fRec2[2]; - double fRec7[2]; double fVec0[2]; - double fRec8[2]; + double fRec7[2]; double fVec1[2]; + double fRec8[2]; double fVec2[2]; double fRec9[2]; double fRec6[2]; @@ -117,16 +117,16 @@ class faust2chLpf6p : public sfzFilterDsp { fRec2[l0] = 0.0; } for (int l1 = 0; (l1 < 2); l1 = (l1 + 1)) { - fRec7[l1] = 0.0; + fVec0[l1] = 0.0; } for (int l2 = 0; (l2 < 2); l2 = (l2 + 1)) { - fVec0[l2] = 0.0; + fRec7[l2] = 0.0; } for (int l3 = 0; (l3 < 2); l3 = (l3 + 1)) { - fRec8[l3] = 0.0; + fVec1[l3] = 0.0; } for (int l4 = 0; (l4 < 2); l4 = (l4 + 1)) { - fVec1[l4] = 0.0; + fRec8[l4] = 0.0; } for (int l5 = 0; (l5 < 2); l5 = (l5 + 1)) { fVec2[l5] = 0.0; @@ -244,9 +244,9 @@ class faust2chLpf6p : public sfzFilterDsp { FAUSTFLOAT const* input1 = inputs[1]; FAUSTFLOAT* output0 = outputs[0]; FAUSTFLOAT* output1 = outputs[1]; - double fSlow0 = (fConst1 * std::max(0.0, double(fHslider0))); + double fSlow0 = (fConst1 * std::max(0.0, std::min(20000.0, std::max(1.0, double(fHslider0))))); double fSlow1 = std::cos(fSlow0); - double fSlow2 = (0.5 * (std::sin(fSlow0) / std::max(0.001, std::pow(10.0, (0.050000000000000003 * double(fVslider0)))))); + double fSlow2 = (0.5 * (std::sin(fSlow0) / std::max(0.001, std::pow(10.0, (0.050000000000000003 * std::min(60.0, std::max(0.0, double(fVslider0)))))))); double fSlow3 = (fSlow2 + 1.0); double fSlow4 = ((1.0 - fSlow1) / fSlow3); double fSlow5 = (fSmoothEnable ? fConst2 : 0.0); @@ -259,14 +259,14 @@ class faust2chLpf6p : public sfzFilterDsp { double fTemp0 = double(input0[i]); double fTemp1 = double(input1[i]); fRec2[0] = (fSlow7 + (fSlow5 * fRec2[1])); + fVec0[0] = (fTemp0 * fRec2[0]); fRec7[0] = ((fSlow5 * fRec7[1]) + fSlow8); double fTemp2 = (fTemp0 * fRec7[0]); - fVec0[0] = fTemp2; + fVec1[0] = fTemp2; fRec8[0] = ((fSlow5 * fRec8[1]) + fSlow9); - fVec1[0] = (fVec0[1] - (fRec8[0] * fRec5[1])); - fVec2[0] = (fTemp0 * fRec2[0]); + fVec2[0] = (fVec1[1] - (fRec8[0] * fRec5[1])); fRec9[0] = ((fSlow5 * fRec9[1]) + fSlow10); - fRec6[0] = ((fVec1[1] + (fTemp2 + fVec2[1])) - (fRec9[0] * fRec6[1])); + fRec6[0] = ((fVec0[1] + (fTemp2 + fVec2[1])) - (fRec9[0] * fRec6[1])); fRec5[0] = fRec6[0]; fVec3[0] = (fRec2[0] * fRec5[0]); double fTemp3 = (fRec7[0] * fRec5[0]); @@ -301,10 +301,10 @@ class faust2chLpf6p : public sfzFilterDsp { fRec10[0] = fRec11[0]; output1[i] = FAUSTFLOAT(fRec10[0]); fRec2[1] = fRec2[0]; - fRec7[1] = fRec7[0]; fVec0[1] = fVec0[0]; - fRec8[1] = fRec8[0]; + fRec7[1] = fRec7[0]; fVec1[1] = fVec1[0]; + fRec8[1] = fRec8[0]; fVec2[1] = fVec2[0]; fRec9[1] = fRec9[0]; fRec6[1] = fRec6[0]; diff --git a/src/sfizz/gen/filters/sfz2chLsh.hxx b/src/sfizz/gen/filters/sfz2chLsh.hxx index 41d5f8a3..b3ec808f 100644 --- a/src/sfizz/gen/filters/sfz2chLsh.hxx +++ b/src/sfizz/gen/filters/sfz2chLsh.hxx @@ -171,12 +171,12 @@ class faust2chLsh : public sfzFilterDsp { FAUSTFLOAT* output0 = outputs[0]; FAUSTFLOAT* output1 = outputs[1]; double fSlow0 = (fSmoothEnable ? fConst1 : 0.0); - double fSlow1 = std::pow(10.0, (0.025000000000000001 * double(fVslider0))); - double fSlow2 = (fConst2 * std::max(0.0, double(fHslider0))); + double fSlow1 = std::pow(10.0, (0.025000000000000001 * std::min(60.0, std::max(-120.0, double(fVslider0))))); + double fSlow2 = (fConst2 * std::max(0.0, std::min(20000.0, std::max(1.0, double(fHslider0))))); double fSlow3 = std::cos(fSlow2); double fSlow4 = ((fSlow1 + 1.0) * fSlow3); double fSlow5 = ((fSlow1 + -1.0) * fSlow3); - double fSlow6 = ((std::sqrt(fSlow1) * std::sin(fSlow2)) / std::max(0.001, std::pow(10.0, (0.050000000000000003 * double(fVslider1))))); + double fSlow6 = ((std::sqrt(fSlow1) * std::sin(fSlow2)) / std::max(0.001, std::pow(10.0, (0.050000000000000003 * std::min(60.0, std::max(0.0, double(fVslider1))))))); double fSlow7 = (fSlow5 + fSlow6); double fSlow8 = ((fSlow1 + fSlow7) + 1.0); double fSlow9 = (1.0 - fSlow0); diff --git a/src/sfizz/gen/filters/sfz2chPeq.hxx b/src/sfizz/gen/filters/sfz2chPeq.hxx index c23009d1..6126a8fd 100644 --- a/src/sfizz/gen/filters/sfz2chPeq.hxx +++ b/src/sfizz/gen/filters/sfz2chPeq.hxx @@ -167,10 +167,10 @@ class faust2chPeq : public sfzFilterDsp { FAUSTFLOAT* output0 = outputs[0]; FAUSTFLOAT* output1 = outputs[1]; double fSlow0 = (fSmoothEnable ? fConst1 : 0.0); - double fSlow1 = (fConst2 * std::max(0.0, double(fHslider0))); + double fSlow1 = (fConst2 * std::max(0.0, std::min(20000.0, std::max(1.0, double(fHslider0))))); double fSlow2 = std::sin(fSlow1); - double fSlow3 = std::max(0.001, std::pow(10.0, (0.050000000000000003 * double(fVslider0)))); - double fSlow4 = std::pow(10.0, (0.025000000000000001 * double(fVslider1))); + double fSlow3 = std::max(0.001, std::pow(10.0, (0.050000000000000003 * std::min(60.0, std::max(0.0, double(fVslider0)))))); + double fSlow4 = std::pow(10.0, (0.025000000000000001 * std::min(60.0, std::max(-120.0, double(fVslider1))))); double fSlow5 = (0.5 * (fSlow2 / (fSlow3 * fSlow4))); double fSlow6 = (fSlow5 + 1.0); double fSlow7 = (1.0 - fSlow0); diff --git a/src/sfizz/gen/filters/sfzApf1p.hxx b/src/sfizz/gen/filters/sfzApf1p.hxx index 2e674295..4e473e63 100644 --- a/src/sfizz/gen/filters/sfzApf1p.hxx +++ b/src/sfizz/gen/filters/sfzApf1p.hxx @@ -113,7 +113,7 @@ class faustApf1p : public sfzFilterDsp { FAUSTFLOAT const* input0 = inputs[0]; FAUSTFLOAT* output0 = outputs[0]; double fSlow0 = (fSmoothEnable ? fConst1 : 0.0); - double fSlow1 = (((fConst2 * double(fHslider0)) + -1.0) * (1.0 - fSlow0)); + double fSlow1 = (((fConst2 * std::min(20000.0, std::max(1.0, double(fHslider0)))) + -1.0) * (1.0 - fSlow0)); for (int i = 0; (i < count); i = (i + 1)) { double fTemp0 = double(input0[i]); fRec1[0] = ((fSlow0 * fRec1[1]) + fSlow1); diff --git a/src/sfizz/gen/filters/sfzBpf1p.hxx b/src/sfizz/gen/filters/sfzBpf1p.hxx index e714e436..7013d92f 100644 --- a/src/sfizz/gen/filters/sfzBpf1p.hxx +++ b/src/sfizz/gen/filters/sfzBpf1p.hxx @@ -117,7 +117,7 @@ class faustBpf1p : public sfzFilterDsp { FAUSTFLOAT const* input0 = inputs[0]; FAUSTFLOAT* output0 = outputs[0]; double fSlow0 = (fSmoothEnable ? fConst1 : 0.0); - double fSlow1 = (std::exp((fConst2 * (0.0 - (6.2831853071795862 * double(fHslider0))))) * (1.0 - fSlow0)); + double fSlow1 = (std::exp((fConst2 * (0.0 - (6.2831853071795862 * std::min(20000.0, std::max(1.0, double(fHslider0))))))) * (1.0 - fSlow0)); for (int i = 0; (i < count); i = (i + 1)) { double fTemp0 = double(input0[i]); fRec2[0] = ((fSlow0 * fRec2[1]) + fSlow1); diff --git a/src/sfizz/gen/filters/sfzBpf2p.hxx b/src/sfizz/gen/filters/sfzBpf2p.hxx index fea43873..9a0c61dc 100644 --- a/src/sfizz/gen/filters/sfzBpf2p.hxx +++ b/src/sfizz/gen/filters/sfzBpf2p.hxx @@ -147,9 +147,9 @@ class faustBpf2p : public sfzFilterDsp { FAUSTFLOAT const* input0 = inputs[0]; FAUSTFLOAT* output0 = outputs[0]; double fSlow0 = (fSmoothEnable ? fConst1 : 0.0); - double fSlow1 = (fConst2 * std::max(0.0, double(fHslider0))); + double fSlow1 = (fConst2 * std::max(0.0, std::min(20000.0, std::max(1.0, double(fHslider0))))); double fSlow2 = std::sin(fSlow1); - double fSlow3 = std::max(0.001, std::pow(10.0, (0.050000000000000003 * double(fVslider0)))); + double fSlow3 = std::max(0.001, std::pow(10.0, (0.050000000000000003 * std::min(60.0, std::max(0.0, double(fVslider0)))))); double fSlow4 = (0.5 * (fSlow2 / fSlow3)); double fSlow5 = (fSlow4 + 1.0); double fSlow6 = (0.5 * (fSlow2 / (fSlow3 * fSlow5))); diff --git a/src/sfizz/gen/filters/sfzBpf2pSv.hxx b/src/sfizz/gen/filters/sfzBpf2pSv.hxx index 19389f89..19b66dec 100644 --- a/src/sfizz/gen/filters/sfzBpf2pSv.hxx +++ b/src/sfizz/gen/filters/sfzBpf2pSv.hxx @@ -128,8 +128,8 @@ class faustBpf2pSv : public sfzFilterDsp { FAUSTFLOAT* output0 = outputs[0]; double fSlow0 = (fSmoothEnable ? fConst1 : 0.0); double fSlow1 = (1.0 - fSlow0); - double fSlow2 = (std::tan((fConst2 * double(fHslider0))) * fSlow1); - double fSlow3 = (1.0 / std::pow(10.0, (0.050000000000000003 * double(fVslider0)))); + double fSlow2 = (std::tan((fConst2 * std::min(20000.0, std::max(1.0, double(fHslider0))))) * fSlow1); + double fSlow3 = (1.0 / std::pow(10.0, (0.050000000000000003 * std::min(60.0, std::max(0.0, double(fVslider0)))))); for (int i = 0; (i < count); i = (i + 1)) { double fTemp0 = double(input0[i]); fRec3[0] = ((fSlow0 * fRec3[1]) + fSlow2); diff --git a/src/sfizz/gen/filters/sfzBpf4p.hxx b/src/sfizz/gen/filters/sfzBpf4p.hxx index 1342d920..e51efc1b 100644 --- a/src/sfizz/gen/filters/sfzBpf4p.hxx +++ b/src/sfizz/gen/filters/sfzBpf4p.hxx @@ -167,9 +167,9 @@ class faustBpf4p : public sfzFilterDsp { FAUSTFLOAT const* input0 = inputs[0]; FAUSTFLOAT* output0 = outputs[0]; double fSlow0 = (fSmoothEnable ? fConst1 : 0.0); - double fSlow1 = (fConst2 * std::max(0.0, double(fHslider0))); + double fSlow1 = (fConst2 * std::max(0.0, std::min(20000.0, std::max(1.0, double(fHslider0))))); double fSlow2 = std::sin(fSlow1); - double fSlow3 = std::max(0.001, std::pow(10.0, (0.050000000000000003 * double(fVslider0)))); + double fSlow3 = std::max(0.001, std::pow(10.0, (0.050000000000000003 * std::min(60.0, std::max(0.0, double(fVslider0)))))); double fSlow4 = (0.5 * (fSlow2 / fSlow3)); double fSlow5 = (fSlow4 + 1.0); double fSlow6 = (0.5 * (fSlow2 / (fSlow3 * fSlow5))); diff --git a/src/sfizz/gen/filters/sfzBpf6p.hxx b/src/sfizz/gen/filters/sfzBpf6p.hxx index f595a458..98fc4b1e 100644 --- a/src/sfizz/gen/filters/sfzBpf6p.hxx +++ b/src/sfizz/gen/filters/sfzBpf6p.hxx @@ -187,9 +187,9 @@ class faustBpf6p : public sfzFilterDsp { FAUSTFLOAT const* input0 = inputs[0]; FAUSTFLOAT* output0 = outputs[0]; double fSlow0 = (fSmoothEnable ? fConst1 : 0.0); - double fSlow1 = (fConst2 * std::max(0.0, double(fHslider0))); + double fSlow1 = (fConst2 * std::max(0.0, std::min(20000.0, std::max(1.0, double(fHslider0))))); double fSlow2 = std::sin(fSlow1); - double fSlow3 = std::max(0.001, std::pow(10.0, (0.050000000000000003 * double(fVslider0)))); + double fSlow3 = std::max(0.001, std::pow(10.0, (0.050000000000000003 * std::min(60.0, std::max(0.0, double(fVslider0)))))); double fSlow4 = (0.5 * (fSlow2 / fSlow3)); double fSlow5 = (fSlow4 + 1.0); double fSlow6 = (0.5 * (fSlow2 / (fSlow3 * fSlow5))); diff --git a/src/sfizz/gen/filters/sfzBrf1p.hxx b/src/sfizz/gen/filters/sfzBrf1p.hxx index 4630be05..ed5d662c 100644 --- a/src/sfizz/gen/filters/sfzBrf1p.hxx +++ b/src/sfizz/gen/filters/sfzBrf1p.hxx @@ -117,7 +117,7 @@ class faustBrf1p : public sfzFilterDsp { FAUSTFLOAT const* input0 = inputs[0]; FAUSTFLOAT* output0 = outputs[0]; double fSlow0 = (fSmoothEnable ? fConst1 : 0.0); - double fSlow1 = (((fConst2 * double(fHslider0)) + -1.0) * (1.0 - fSlow0)); + double fSlow1 = (((fConst2 * std::min(20000.0, std::max(1.0, double(fHslider0)))) + -1.0) * (1.0 - fSlow0)); for (int i = 0; (i < count); i = (i + 1)) { double fTemp0 = double(input0[i]); fRec2[0] = ((fSlow0 * fRec2[1]) + fSlow1); diff --git a/src/sfizz/gen/filters/sfzBrf2p.hxx b/src/sfizz/gen/filters/sfzBrf2p.hxx index 8e0635d1..210366e5 100644 --- a/src/sfizz/gen/filters/sfzBrf2p.hxx +++ b/src/sfizz/gen/filters/sfzBrf2p.hxx @@ -139,8 +139,8 @@ class faustBrf2p : public sfzFilterDsp { FAUSTFLOAT const* input0 = inputs[0]; FAUSTFLOAT* output0 = outputs[0]; double fSlow0 = (fSmoothEnable ? fConst1 : 0.0); - double fSlow1 = (fConst2 * std::max(0.0, double(fHslider0))); - double fSlow2 = (0.5 * (std::sin(fSlow1) / std::max(0.001, std::pow(10.0, (0.050000000000000003 * double(fVslider0)))))); + double fSlow1 = (fConst2 * std::max(0.0, std::min(20000.0, std::max(1.0, double(fHslider0))))); + double fSlow2 = (0.5 * (std::sin(fSlow1) / std::max(0.001, std::pow(10.0, (0.050000000000000003 * std::min(60.0, std::max(0.0, double(fVslider0)))))))); double fSlow3 = (fSlow2 + 1.0); double fSlow4 = (1.0 - fSlow0); double fSlow5 = (((0.0 - (2.0 * std::cos(fSlow1))) / fSlow3) * fSlow4); diff --git a/src/sfizz/gen/filters/sfzBrf2pSv.hxx b/src/sfizz/gen/filters/sfzBrf2pSv.hxx index 70ccbdc6..4a50a451 100644 --- a/src/sfizz/gen/filters/sfzBrf2pSv.hxx +++ b/src/sfizz/gen/filters/sfzBrf2pSv.hxx @@ -128,8 +128,8 @@ class faustBrf2pSv : public sfzFilterDsp { FAUSTFLOAT* output0 = outputs[0]; double fSlow0 = (fSmoothEnable ? fConst1 : 0.0); double fSlow1 = (1.0 - fSlow0); - double fSlow2 = (std::tan((fConst2 * double(fHslider0))) * fSlow1); - double fSlow3 = (1.0 / std::pow(10.0, (0.050000000000000003 * double(fVslider0)))); + double fSlow2 = (std::tan((fConst2 * std::min(20000.0, std::max(1.0, double(fHslider0))))) * fSlow1); + double fSlow3 = (1.0 / std::pow(10.0, (0.050000000000000003 * std::min(60.0, std::max(0.0, double(fVslider0)))))); for (int i = 0; (i < count); i = (i + 1)) { double fTemp0 = double(input0[i]); fRec5[0] = ((fSlow0 * fRec5[1]) + fSlow2); diff --git a/src/sfizz/gen/filters/sfzEqHshelf.hxx b/src/sfizz/gen/filters/sfzEqHshelf.hxx index e09cd941..8ec67785 100644 --- a/src/sfizz/gen/filters/sfzEqHshelf.hxx +++ b/src/sfizz/gen/filters/sfzEqHshelf.hxx @@ -152,8 +152,8 @@ class faustEqHshelf : public sfzFilterDsp { FAUSTFLOAT const* input0 = inputs[0]; FAUSTFLOAT* output0 = outputs[0]; double fSlow0 = (fSmoothEnable ? fConst1 : 0.0); - double fSlow1 = std::pow(10.0, (0.025000000000000001 * double(fVslider0))); - double fSlow2 = (fConst2 * std::max(0.0, double(fHslider0))); + double fSlow1 = std::pow(10.0, (0.025000000000000001 * std::min(60.0, std::max(-120.0, double(fVslider0))))); + double fSlow2 = (fConst2 * std::max(0.0, std::min(20000.0, std::max(1.0, double(fHslider0))))); double fSlow3 = std::cos(fSlow2); double fSlow4 = ((fSlow1 + 1.0) * fSlow3); double fSlow5 = (faustEqHshelf_faustpower2_f(fSlow1) + 1.0); diff --git a/src/sfizz/gen/filters/sfzEqLshelf.hxx b/src/sfizz/gen/filters/sfzEqLshelf.hxx index ac938e6b..33f6e8de 100644 --- a/src/sfizz/gen/filters/sfzEqLshelf.hxx +++ b/src/sfizz/gen/filters/sfzEqLshelf.hxx @@ -152,8 +152,8 @@ class faustEqLshelf : public sfzFilterDsp { FAUSTFLOAT const* input0 = inputs[0]; FAUSTFLOAT* output0 = outputs[0]; double fSlow0 = (fSmoothEnable ? fConst1 : 0.0); - double fSlow1 = std::pow(10.0, (0.025000000000000001 * double(fVslider0))); - double fSlow2 = (fConst2 * std::max(0.0, double(fHslider0))); + double fSlow1 = std::pow(10.0, (0.025000000000000001 * std::min(60.0, std::max(-120.0, double(fVslider0))))); + double fSlow2 = (fConst2 * std::max(0.0, std::min(20000.0, std::max(1.0, double(fHslider0))))); double fSlow3 = std::cos(fSlow2); double fSlow4 = ((fSlow1 + 1.0) * fSlow3); double fSlow5 = (fSlow1 + -1.0); diff --git a/src/sfizz/gen/filters/sfzEqPeak.hxx b/src/sfizz/gen/filters/sfzEqPeak.hxx index 251815b8..44eeb706 100644 --- a/src/sfizz/gen/filters/sfzEqPeak.hxx +++ b/src/sfizz/gen/filters/sfzEqPeak.hxx @@ -148,11 +148,11 @@ class faustEqPeak : public sfzFilterDsp { FAUSTFLOAT const* input0 = inputs[0]; FAUSTFLOAT* output0 = outputs[0]; double fSlow0 = (fSmoothEnable ? fConst1 : 0.0); - double fSlow1 = std::max(0.0, double(fHslider0)); - double fSlow2 = (fConst2 * fSlow1); + double fSlow1 = std::min(20000.0, std::max(1.0, double(fHslider0))); + double fSlow2 = (fConst2 * std::max(0.0, fSlow1)); double fSlow3 = std::sin(fSlow2); - double fSlow4 = std::pow(10.0, (0.025000000000000001 * double(fVslider0))); - double fSlow5 = std::max(0.001, (0.5 / double(sinh(double((fConst3 * ((fSlow1 * std::max(0.001, double(fVslider1))) / fSlow3))))))); + double fSlow4 = std::pow(10.0, (0.025000000000000001 * std::min(60.0, std::max(-120.0, double(fVslider0))))); + double fSlow5 = std::max(0.001, (0.5 / double(sinh(double((fConst3 * ((fSlow1 * std::min(12.0, std::max(0.01, double(fVslider1)))) / std::sin((fConst2 * fSlow1))))))))); double fSlow6 = (0.5 * (fSlow3 / (fSlow4 * fSlow5))); double fSlow7 = (fSlow6 + 1.0); double fSlow8 = (1.0 - fSlow0); diff --git a/src/sfizz/gen/filters/sfzHpf1p.hxx b/src/sfizz/gen/filters/sfzHpf1p.hxx index dce88d8d..b96ec816 100644 --- a/src/sfizz/gen/filters/sfzHpf1p.hxx +++ b/src/sfizz/gen/filters/sfzHpf1p.hxx @@ -113,7 +113,7 @@ class faustHpf1p : public sfzFilterDsp { FAUSTFLOAT const* input0 = inputs[0]; FAUSTFLOAT* output0 = outputs[0]; double fSlow0 = (fSmoothEnable ? fConst1 : 0.0); - double fSlow1 = (std::exp((fConst2 * (0.0 - (6.2831853071795862 * double(fHslider0))))) * (1.0 - fSlow0)); + double fSlow1 = (std::exp((fConst2 * (0.0 - (6.2831853071795862 * std::min(20000.0, std::max(1.0, double(fHslider0))))))) * (1.0 - fSlow0)); for (int i = 0; (i < count); i = (i + 1)) { double fTemp0 = double(input0[i]); fRec1[0] = ((fSlow0 * fRec1[1]) + fSlow1); diff --git a/src/sfizz/gen/filters/sfzHpf2p.hxx b/src/sfizz/gen/filters/sfzHpf2p.hxx index 3b065b2e..9934aabf 100644 --- a/src/sfizz/gen/filters/sfzHpf2p.hxx +++ b/src/sfizz/gen/filters/sfzHpf2p.hxx @@ -143,9 +143,9 @@ class faustHpf2p : public sfzFilterDsp { FAUSTFLOAT const* input0 = inputs[0]; FAUSTFLOAT* output0 = outputs[0]; double fSlow0 = (fSmoothEnable ? fConst1 : 0.0); - double fSlow1 = (fConst2 * std::max(0.0, double(fHslider0))); + double fSlow1 = (fConst2 * std::max(0.0, std::min(20000.0, std::max(1.0, double(fHslider0))))); double fSlow2 = std::cos(fSlow1); - double fSlow3 = (0.5 * (std::sin(fSlow1) / std::max(0.001, std::pow(10.0, (0.050000000000000003 * double(fVslider0)))))); + double fSlow3 = (0.5 * (std::sin(fSlow1) / std::max(0.001, std::pow(10.0, (0.050000000000000003 * std::min(60.0, std::max(0.0, double(fVslider0)))))))); double fSlow4 = (fSlow3 + 1.0); double fSlow5 = (1.0 - fSlow0); double fSlow6 = (((-1.0 - fSlow2) / fSlow4) * fSlow5); diff --git a/src/sfizz/gen/filters/sfzHpf2pSv.hxx b/src/sfizz/gen/filters/sfzHpf2pSv.hxx index 65e1008f..2dc0420a 100644 --- a/src/sfizz/gen/filters/sfzHpf2pSv.hxx +++ b/src/sfizz/gen/filters/sfzHpf2pSv.hxx @@ -128,8 +128,8 @@ class faustHpf2pSv : public sfzFilterDsp { FAUSTFLOAT* output0 = outputs[0]; double fSlow0 = (fSmoothEnable ? fConst1 : 0.0); double fSlow1 = (1.0 - fSlow0); - double fSlow2 = (std::tan((fConst2 * double(fHslider0))) * fSlow1); - double fSlow3 = (1.0 / std::pow(10.0, (0.050000000000000003 * double(fVslider0)))); + double fSlow2 = (std::tan((fConst2 * std::min(20000.0, std::max(1.0, double(fHslider0))))) * fSlow1); + double fSlow3 = (1.0 / std::pow(10.0, (0.050000000000000003 * std::min(60.0, std::max(0.0, double(fVslider0)))))); for (int i = 0; (i < count); i = (i + 1)) { double fTemp0 = double(input0[i]); fRec4[0] = ((fSlow0 * fRec4[1]) + fSlow2); diff --git a/src/sfizz/gen/filters/sfzHpf4p.hxx b/src/sfizz/gen/filters/sfzHpf4p.hxx index 0a4e8660..1ffeed51 100644 --- a/src/sfizz/gen/filters/sfzHpf4p.hxx +++ b/src/sfizz/gen/filters/sfzHpf4p.hxx @@ -163,9 +163,9 @@ class faustHpf4p : public sfzFilterDsp { FAUSTFLOAT const* input0 = inputs[0]; FAUSTFLOAT* output0 = outputs[0]; double fSlow0 = (fSmoothEnable ? fConst1 : 0.0); - double fSlow1 = (fConst2 * std::max(0.0, double(fHslider0))); + double fSlow1 = (fConst2 * std::max(0.0, std::min(20000.0, std::max(1.0, double(fHslider0))))); double fSlow2 = std::cos(fSlow1); - double fSlow3 = (0.5 * (std::sin(fSlow1) / std::max(0.001, std::pow(10.0, (0.050000000000000003 * double(fVslider0)))))); + double fSlow3 = (0.5 * (std::sin(fSlow1) / std::max(0.001, std::pow(10.0, (0.050000000000000003 * std::min(60.0, std::max(0.0, double(fVslider0)))))))); double fSlow4 = (fSlow3 + 1.0); double fSlow5 = (1.0 - fSlow0); double fSlow6 = (((-1.0 - fSlow2) / fSlow4) * fSlow5); diff --git a/src/sfizz/gen/filters/sfzHpf6p.hxx b/src/sfizz/gen/filters/sfzHpf6p.hxx index 8c66173e..ab376387 100644 --- a/src/sfizz/gen/filters/sfzHpf6p.hxx +++ b/src/sfizz/gen/filters/sfzHpf6p.hxx @@ -183,9 +183,9 @@ class faustHpf6p : public sfzFilterDsp { FAUSTFLOAT const* input0 = inputs[0]; FAUSTFLOAT* output0 = outputs[0]; double fSlow0 = (fSmoothEnable ? fConst1 : 0.0); - double fSlow1 = (fConst2 * std::max(0.0, double(fHslider0))); + double fSlow1 = (fConst2 * std::max(0.0, std::min(20000.0, std::max(1.0, double(fHslider0))))); double fSlow2 = std::cos(fSlow1); - double fSlow3 = (0.5 * (std::sin(fSlow1) / std::max(0.001, std::pow(10.0, (0.050000000000000003 * double(fVslider0)))))); + double fSlow3 = (0.5 * (std::sin(fSlow1) / std::max(0.001, std::pow(10.0, (0.050000000000000003 * std::min(60.0, std::max(0.0, double(fVslider0)))))))); double fSlow4 = (fSlow3 + 1.0); double fSlow5 = (1.0 - fSlow0); double fSlow6 = (((-1.0 - fSlow2) / fSlow4) * fSlow5); diff --git a/src/sfizz/gen/filters/sfzHsh.hxx b/src/sfizz/gen/filters/sfzHsh.hxx index 5570875b..fc80a946 100644 --- a/src/sfizz/gen/filters/sfzHsh.hxx +++ b/src/sfizz/gen/filters/sfzHsh.hxx @@ -149,11 +149,11 @@ class faustHsh : public sfzFilterDsp { FAUSTFLOAT const* input0 = inputs[0]; FAUSTFLOAT* output0 = outputs[0]; double fSlow0 = (fSmoothEnable ? fConst1 : 0.0); - double fSlow1 = std::pow(10.0, (0.025000000000000001 * double(fVslider0))); - double fSlow2 = (fConst2 * std::max(0.0, double(fHslider0))); + double fSlow1 = std::pow(10.0, (0.025000000000000001 * std::min(60.0, std::max(-120.0, double(fVslider0))))); + double fSlow2 = (fConst2 * std::max(0.0, std::min(20000.0, std::max(1.0, double(fHslider0))))); 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(fVslider1))))); + double fSlow5 = ((std::sqrt(fSlow1) * std::sin(fSlow2)) / std::max(0.001, std::pow(10.0, (0.050000000000000003 * std::min(60.0, std::max(0.0, double(fVslider1))))))); double fSlow6 = ((fSlow1 + -1.0) * fSlow3); double fSlow7 = ((fSlow1 + fSlow5) + (1.0 - fSlow6)); double fSlow8 = (1.0 - fSlow0); diff --git a/src/sfizz/gen/filters/sfzLpf1p.hxx b/src/sfizz/gen/filters/sfzLpf1p.hxx index bbec0a8a..7c6d95c9 100644 --- a/src/sfizz/gen/filters/sfzLpf1p.hxx +++ b/src/sfizz/gen/filters/sfzLpf1p.hxx @@ -113,7 +113,7 @@ class faustLpf1p : public sfzFilterDsp { FAUSTFLOAT const* input0 = inputs[0]; FAUSTFLOAT* output0 = outputs[0]; double fSlow0 = (fSmoothEnable ? fConst1 : 0.0); - double fSlow1 = (std::exp((fConst2 * (0.0 - (6.2831853071795862 * double(fHslider0))))) * (1.0 - fSlow0)); + double fSlow1 = (std::exp((fConst2 * (0.0 - (6.2831853071795862 * std::min(20000.0, std::max(1.0, double(fHslider0))))))) * (1.0 - fSlow0)); for (int i = 0; (i < count); i = (i + 1)) { double fTemp0 = double(input0[i]); fRec1[0] = ((fSlow0 * fRec1[1]) + fSlow1); diff --git a/src/sfizz/gen/filters/sfzLpf2p.hxx b/src/sfizz/gen/filters/sfzLpf2p.hxx index 105fd66f..43880467 100644 --- a/src/sfizz/gen/filters/sfzLpf2p.hxx +++ b/src/sfizz/gen/filters/sfzLpf2p.hxx @@ -142,9 +142,9 @@ class faustLpf2p : public sfzFilterDsp { //[Begin:compute] FAUSTFLOAT const* input0 = inputs[0]; FAUSTFLOAT* output0 = outputs[0]; - double fSlow0 = (fConst1 * std::max(0.0, double(fHslider0))); + double fSlow0 = (fConst1 * std::max(0.0, std::min(20000.0, std::max(1.0, double(fHslider0))))); double fSlow1 = std::cos(fSlow0); - double fSlow2 = (0.5 * (std::sin(fSlow0) / std::max(0.001, std::pow(10.0, (0.050000000000000003 * double(fVslider0)))))); + double fSlow2 = (0.5 * (std::sin(fSlow0) / std::max(0.001, std::pow(10.0, (0.050000000000000003 * std::min(60.0, std::max(0.0, double(fVslider0)))))))); double fSlow3 = (fSlow2 + 1.0); double fSlow4 = ((1.0 - fSlow1) / fSlow3); double fSlow5 = (fSmoothEnable ? fConst2 : 0.0); diff --git a/src/sfizz/gen/filters/sfzLpf2pSv.hxx b/src/sfizz/gen/filters/sfzLpf2pSv.hxx index a1af4a96..f303bb73 100644 --- a/src/sfizz/gen/filters/sfzLpf2pSv.hxx +++ b/src/sfizz/gen/filters/sfzLpf2pSv.hxx @@ -128,8 +128,8 @@ class faustLpf2pSv : public sfzFilterDsp { FAUSTFLOAT* output0 = outputs[0]; double fSlow0 = (fSmoothEnable ? fConst1 : 0.0); double fSlow1 = (1.0 - fSlow0); - double fSlow2 = (std::tan((fConst2 * double(fHslider0))) * fSlow1); - double fSlow3 = (1.0 / std::pow(10.0, (0.050000000000000003 * double(fVslider0)))); + double fSlow2 = (std::tan((fConst2 * std::min(20000.0, std::max(1.0, double(fHslider0))))) * fSlow1); + double fSlow3 = (1.0 / std::pow(10.0, (0.050000000000000003 * std::min(60.0, std::max(0.0, double(fVslider0)))))); for (int i = 0; (i < count); i = (i + 1)) { double fTemp0 = double(input0[i]); fRec3[0] = ((fSlow0 * fRec3[1]) + fSlow2); diff --git a/src/sfizz/gen/filters/sfzLpf4p.hxx b/src/sfizz/gen/filters/sfzLpf4p.hxx index f7fe60f9..d0435d56 100644 --- a/src/sfizz/gen/filters/sfzLpf4p.hxx +++ b/src/sfizz/gen/filters/sfzLpf4p.hxx @@ -162,9 +162,9 @@ class faustLpf4p : public sfzFilterDsp { //[Begin:compute] FAUSTFLOAT const* input0 = inputs[0]; FAUSTFLOAT* output0 = outputs[0]; - double fSlow0 = (fConst1 * std::max(0.0, double(fHslider0))); + double fSlow0 = (fConst1 * std::max(0.0, std::min(20000.0, std::max(1.0, double(fHslider0))))); double fSlow1 = std::cos(fSlow0); - double fSlow2 = (0.5 * (std::sin(fSlow0) / std::max(0.001, std::pow(10.0, (0.050000000000000003 * double(fVslider0)))))); + double fSlow2 = (0.5 * (std::sin(fSlow0) / std::max(0.001, std::pow(10.0, (0.050000000000000003 * std::min(60.0, std::max(0.0, double(fVslider0)))))))); double fSlow3 = (fSlow2 + 1.0); double fSlow4 = ((1.0 - fSlow1) / fSlow3); double fSlow5 = (fSmoothEnable ? fConst2 : 0.0); diff --git a/src/sfizz/gen/filters/sfzLpf6p.hxx b/src/sfizz/gen/filters/sfzLpf6p.hxx index 263f1683..95f70228 100644 --- a/src/sfizz/gen/filters/sfzLpf6p.hxx +++ b/src/sfizz/gen/filters/sfzLpf6p.hxx @@ -182,9 +182,9 @@ class faustLpf6p : public sfzFilterDsp { //[Begin:compute] FAUSTFLOAT const* input0 = inputs[0]; FAUSTFLOAT* output0 = outputs[0]; - double fSlow0 = (fConst1 * std::max(0.0, double(fHslider0))); + double fSlow0 = (fConst1 * std::max(0.0, std::min(20000.0, std::max(1.0, double(fHslider0))))); double fSlow1 = std::cos(fSlow0); - double fSlow2 = (0.5 * (std::sin(fSlow0) / std::max(0.001, std::pow(10.0, (0.050000000000000003 * double(fVslider0)))))); + double fSlow2 = (0.5 * (std::sin(fSlow0) / std::max(0.001, std::pow(10.0, (0.050000000000000003 * std::min(60.0, std::max(0.0, double(fVslider0)))))))); double fSlow3 = (fSlow2 + 1.0); double fSlow4 = ((1.0 - fSlow1) / fSlow3); double fSlow5 = (fSmoothEnable ? fConst2 : 0.0); diff --git a/src/sfizz/gen/filters/sfzLsh.hxx b/src/sfizz/gen/filters/sfzLsh.hxx index 55d27bbc..b614b558 100644 --- a/src/sfizz/gen/filters/sfzLsh.hxx +++ b/src/sfizz/gen/filters/sfzLsh.hxx @@ -149,12 +149,12 @@ class faustLsh : public sfzFilterDsp { FAUSTFLOAT const* input0 = inputs[0]; FAUSTFLOAT* output0 = outputs[0]; double fSlow0 = (fSmoothEnable ? fConst1 : 0.0); - double fSlow1 = std::pow(10.0, (0.025000000000000001 * double(fVslider0))); - double fSlow2 = (fConst2 * std::max(0.0, double(fHslider0))); + double fSlow1 = std::pow(10.0, (0.025000000000000001 * std::min(60.0, std::max(-120.0, double(fVslider0))))); + double fSlow2 = (fConst2 * std::max(0.0, std::min(20000.0, std::max(1.0, double(fHslider0))))); double fSlow3 = std::cos(fSlow2); double fSlow4 = ((fSlow1 + 1.0) * fSlow3); double fSlow5 = ((fSlow1 + -1.0) * fSlow3); - double fSlow6 = ((std::sqrt(fSlow1) * std::sin(fSlow2)) / std::max(0.001, std::pow(10.0, (0.050000000000000003 * double(fVslider1))))); + double fSlow6 = ((std::sqrt(fSlow1) * std::sin(fSlow2)) / std::max(0.001, std::pow(10.0, (0.050000000000000003 * std::min(60.0, std::max(0.0, double(fVslider1))))))); double fSlow7 = (fSlow5 + fSlow6); double fSlow8 = ((fSlow1 + fSlow7) + 1.0); double fSlow9 = (1.0 - fSlow0); diff --git a/src/sfizz/gen/filters/sfzPeq.hxx b/src/sfizz/gen/filters/sfzPeq.hxx index a0e6eee5..50ce2084 100644 --- a/src/sfizz/gen/filters/sfzPeq.hxx +++ b/src/sfizz/gen/filters/sfzPeq.hxx @@ -145,10 +145,10 @@ class faustPeq : public sfzFilterDsp { FAUSTFLOAT const* input0 = inputs[0]; FAUSTFLOAT* output0 = outputs[0]; double fSlow0 = (fSmoothEnable ? fConst1 : 0.0); - double fSlow1 = (fConst2 * std::max(0.0, double(fHslider0))); + double fSlow1 = (fConst2 * std::max(0.0, std::min(20000.0, std::max(1.0, double(fHslider0))))); double fSlow2 = std::sin(fSlow1); - double fSlow3 = std::max(0.001, std::pow(10.0, (0.050000000000000003 * double(fVslider0)))); - double fSlow4 = std::pow(10.0, (0.025000000000000001 * double(fVslider1))); + double fSlow3 = std::max(0.001, std::pow(10.0, (0.050000000000000003 * std::min(60.0, std::max(0.0, double(fVslider0)))))); + double fSlow4 = std::pow(10.0, (0.025000000000000001 * std::min(60.0, std::max(-120.0, double(fVslider1))))); double fSlow5 = (0.5 * (fSlow2 / (fSlow3 * fSlow4))); double fSlow6 = (fSlow5 + 1.0); double fSlow7 = (1.0 - fSlow0);