X-Git-Url: https://scm.cri.ensmp.fr/git/Faustine.git/blobdiff_plain/c7f552fd8888da2f0d8cfb228fe0f28d3df3a12c..b4b6f2ea75b9f0f3ca918f5b84016610bf7a4d4f:/interpretor/preprocessor/faust-0.9.47mr3/tools/faust2pd/examples/faust/karplus.dsp diff --git a/interpretor/preprocessor/faust-0.9.47mr3/tools/faust2pd/examples/faust/karplus.dsp b/interpretor/preprocessor/faust-0.9.47mr3/tools/faust2pd/examples/faust/karplus.dsp new file mode 100644 index 0000000..5303d1b --- /dev/null +++ b/interpretor/preprocessor/faust-0.9.47mr3/tools/faust2pd/examples/faust/karplus.dsp @@ -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 (samples)", 128, 2, 512, 1); + + + + +// resonator +//----------------- + +dur = hslider("duration (samples)", 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));