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/karplus32.dsp diff --git a/interpretor/preprocessor/faust-0.9.47mr3/tools/faust2pd/examples/faust/karplus32.dsp b/interpretor/preprocessor/faust-0.9.47mr3/tools/faust2pd/examples/faust/karplus32.dsp new file mode 100644 index 0000000..4421978 --- /dev/null +++ b/interpretor/preprocessor/faust-0.9.47mr3/tools/faust2pd/examples/faust/karplus32.dsp @@ -0,0 +1,55 @@ +declare name "karplus32"; +declare version "1.0"; +declare author "Grame"; +declare license "BSD"; +declare copyright "(c)GRAME 2006"; + +//----------------------------------------------- +// karplus-strong +// with 32 resonators in parallel +//----------------------------------------------- + +import("music.lib"); + + +// Excitator +//-------- + +upfront(x) = (x-x') > 0.0; +decay(n,x) = x - (x>0)/n; +release(n) = + ~ decay(n); +trigger(n) = upfront : release(n) : >(0.0) : +(leak); +leak = 1.0/65536.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)) ; + + +// Polyphony +//----------------- + +detune = hslider("detune", 32, 0, 512, 1); +polyphony = hslider("polyphony", 1, 0, 32, 1); + + + +output = hslider("output volume", 0.5, 0, 1, 0.1); + + +process = vgroup("karplus32", + vgroup("noise generator", noise * hslider("level", 0.5, 0, 1, 0.1)) + : vgroup("excitator", *(button("play"): trigger(size))) + <: vgroup("resonator x32", par(i,32, resonator(dur+i*detune, att) * (polyphony > i))) + :> *(output),*(output) + );