Rename interpretor to interpreter.
[Faustine.git] / interpreter / preprocessor / faust-0.9.47mr3 / tools / faust2pd / examples / faust / bandfilter.dsp
diff --git a/interpreter/preprocessor/faust-0.9.47mr3/tools/faust2pd/examples/faust/bandfilter.dsp b/interpreter/preprocessor/faust-0.9.47mr3/tools/faust2pd/examples/faust/bandfilter.dsp
new file mode 100644 (file)
index 0000000..576a013
--- /dev/null
@@ -0,0 +1,47 @@
+declare name           "bandfilter";
+declare version        "1.0";
+declare author                 "Grame";
+declare license        "BSD";
+declare copyright      "(c)GRAME 2006";
+
+import("math.lib");
+import("music.lib");
+
+//---------------------second order filter--------------------------
+// filter(Q,F,G)
+//                     Q : quality factor [1..100]
+//                             F :     frequency (Hz)
+//                             G : gain [0..1]
+//------------------------------------------------------------------
+
+filter(Q,F,G)  = TF2(  (1 +  K/Q + K*K)        / D,
+                                                2 * (K*K - 1)          / D,
+                                               (1 - K/Q + K*K)         / D,
+                                                2 * (K*K - 1)          / D,
+                                               (1 - V*K/Q + K*K)       / D
+                                        )
+               with {
+                               V = db2linear(G);
+                               K = tan(PI*F/SR);
+                               D = 1 + V*K/Q + K*K;
+               };
+
+
+
+//--------------- Band Filter with user interface ------------------
+// bandfilter(F)
+//                     F :     default frequency (Hz)
+//
+//------------------------------------------------------------------
+
+bandfilter(F)  = filter(       nentry("Q factor",50,0.1,100,0.1),
+                                                       nentry("freq (Hz)", F, 20, 20000, 1),
+                                                       0 - vslider("gain (dB)", 0, -50, 50, 0.1)
+                                               );
+
+
+
+//------------------------- Process --------------------------------
+
+process                = vgroup("Bandfilter", bandfilter(1000));
+