New directory tree, with preprocessor/ inside interpretor/.
[Faustine.git] / interpretor / preprocessor / faust-0.9.47mr3 / examples / karplus.dsp
diff --git a/interpretor/preprocessor/faust-0.9.47mr3/examples/karplus.dsp b/interpretor/preprocessor/faust-0.9.47mr3/examples/karplus.dsp
new file mode 100644 (file)
index 0000000..d6c86c5
--- /dev/null
@@ -0,0 +1,37 @@
+declare name           "karplus";
+declare version        "1.0";
+declare author                 "Grame";
+declare license        "BSD";
+declare copyright      "(c)GRAME 2006";
+
+//-----------------------------------------------
+//                             karplus-strong
+//-----------------------------------------------
+
+import("music.lib");
+
+// Excitator
+//--------
+
+upfront(x)     = (x-x') > 0.0;
+decay(n,x)     = x - (x>0.0)/n;
+release(n)     = + ~ decay(n);
+trigger(n)     = upfront : release(n) : >(0.0);
+
+size           = hslider("excitation [unit:f]", 128, 2, 512, 1);
+
+
+
+
+// resonator
+//-----------------
+
+dur            = hslider("duration [unit:f]", 128, 2, 512, 1);
+att            = hslider("attenuation", 0.1, 0, 1, 0.01);
+average(x)     = (x+x')/2;
+
+resonator(d, a) = (+ : delay(4096, d-1.5)) ~ (average : *(1.0-a)) ;
+
+process = noise * hslider("level", 0.5, 0, 1, 0.1)
+               : vgroup("excitator", *(button("play"): trigger(size)))
+               : vgroup("resonator", resonator(dur, att));