Rename interpretor to interpreter.
[Faustine.git] / interpreter / preprocessor / faust-0.9.47mr3 / examples / lfboost.dsp
diff --git a/interpreter/preprocessor/faust-0.9.47mr3/examples/lfboost.dsp b/interpreter/preprocessor/faust-0.9.47mr3/examples/lfboost.dsp
new file mode 100644 (file)
index 0000000..42bd70d
--- /dev/null
@@ -0,0 +1,44 @@
+declare name           "lfboost";
+declare version        "1.0";
+declare author                 "Grame";
+declare license        "BSD";
+declare copyright      "(c)GRAME 2006";
+
+//------------------------------------------------------------------
+//     DAFX, Digital Audio Effects (Wiley ed.)
+//     chapter 2       : filters
+//     section 2.3 : Equalizers
+//     page 53         : second order shelving filter design
+//------------------------------------------------------------------
+
+import("math.lib");
+import("music.lib");
+
+
+//----------------------low frequency boost filter -------------------------------
+// lfboost(F,G)
+//                             F :     frequency (in Hz)
+//                             G : gain (in dB)
+//
+//--------------------------------------------------------------------------------
+
+lfboost(F,G)   = TF2(  (1 + sqrt(2*V)*K + V*K*K) / denom,
+                                                2 * (V*K*K - 1) / denom,
+                                               (1 - sqrt(2*V)*K + V*K*K) / denom,
+                                                2 * (K*K - 1) / denom,
+                                               (1 - sqrt(2)*K + K*K) / denom
+                                        )
+               with {
+                       V                       = db2linear(G);
+                       K                       = tan(PI*F/SR);
+                       denom           = 1 + sqrt(2)*K + K*K;
+               };
+
+
+
+//====================low frequency boost process ===============================
+
+process = vgroup("lowboost", lfboost(
+                                                               nentry("freq [unit:Hz][style:knob]", 100, 20, 150, 1),
+                                                               vslider("gain [unit:dB]", 0, -20, 20, 0.1)
+                               ) );