X-Git-Url: https://scm.cri.ensmp.fr/git/Faustine.git/blobdiff_plain/1059e1cc0c2ecfa237406949aa26155b6a5b9154..66f23d4fabf89ad09adbd4dfc15ac6b5b2b7da83:/interpreter/preprocessor/faust-0.9.47mr3/tools/faust2pd/examples/faust/karplus.dsp diff --git a/interpreter/preprocessor/faust-0.9.47mr3/tools/faust2pd/examples/faust/karplus.dsp b/interpreter/preprocessor/faust-0.9.47mr3/tools/faust2pd/examples/faust/karplus.dsp new file mode 100644 index 0000000..5303d1b --- /dev/null +++ b/interpreter/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));