X-Git-Url: https://scm.cri.ensmp.fr/git/Faustine.git/blobdiff_plain/c7f552fd8888da2f0d8cfb228fe0f28d3df3a12c..b4b6f2ea75b9f0f3ca918f5b84016610bf7a4d4f:/interpretor/preprocessor/faust-0.9.47mr3/tools/faust2pd/examples/seqdemo/freeverb.dsp diff --git a/interpretor/preprocessor/faust-0.9.47mr3/tools/faust2pd/examples/seqdemo/freeverb.dsp b/interpretor/preprocessor/faust-0.9.47mr3/tools/faust2pd/examples/seqdemo/freeverb.dsp new file mode 100644 index 0000000..4c93595 --- /dev/null +++ b/interpretor/preprocessor/faust-0.9.47mr3/tools/faust2pd/examples/seqdemo/freeverb.dsp @@ -0,0 +1,110 @@ +//====================================================== +// +// Freeverb +// Faster version using fixed delays (20% gain) +// +//====================================================== + +declare name "freeverb -- a Schroeder reverb"; +declare author "Yann Orlarey"; +declare version "1.0"; + +// Constant Parameters +//-------------------- + +fixedgain = 0.015; +scalewet = 3.0; +scaledry = 2.0; +scaledamp = 0.4; +scaleroom = 0.28; +offsetroom = 0.7; +initialroom = 0.5; +initialdamp = 0.5; +initialwet = 1.0/scalewet; +initialdry = 0; +initialwidth= 1.0; +initialmode = 0.0; +freezemode = 0.5; +stereospread= 23; +allpassfeed = 0.5; + + +// Filter Parametres +//------------------ + +combtuningL1 = 1116; +combtuningL2 = 1188; +combtuningL3 = 1277; +combtuningL4 = 1356; +combtuningL5 = 1422; +combtuningL6 = 1491; +combtuningL7 = 1557; +combtuningL8 = 1617; + +allpasstuningL1 = 556; +allpasstuningL2 = 441; +allpasstuningL3 = 341; +allpasstuningL4 = 225; + + +// Control Sliders +//-------------------- +// Damp : filtrage des aigus des echos (surtout actif pour des grandes valeurs de RoomSize) +// RoomSize : taille de la piece +// Dry : signal original +// Wet : signal avec reverbŽration + +dampSlider = hslider("damp",0.5, 0, 1, 0.025)*scaledamp; +roomsizeSlider = hslider("roomsize", 0.5, 0, 1, 0.025)*scaleroom + offsetroom; +wetSlider = hslider("wet", 0.3333, 0, 1, 0.025); +drySlider = hslider("dry", 0, 0, 1, 0.025); +combfeed = roomsizeSlider; + + + + + +// Comb and Allpass filters +//------------------------- + +allpass(dt,fb) = (_,_ <: (*(fb),_:+:@(dt)), -) ~ _ : (!,_); + +comb(dt, fb, damp) = (+:@(dt)) ~ (*(1-damp) : (+ ~ *(damp)) : *(fb)); + + +// Reverb components +//------------------ + +monoReverb(fb1, fb2, damp, spread) + = _ <: comb(combtuningL1+spread, fb1, damp), + comb(combtuningL2+spread, fb1, damp), + comb(combtuningL3+spread, fb1, damp), + comb(combtuningL4+spread, fb1, damp), + comb(combtuningL5+spread, fb1, damp), + comb(combtuningL6+spread, fb1, damp), + comb(combtuningL7+spread, fb1, damp), + comb(combtuningL8+spread, fb1, damp) + +> + allpass (allpasstuningL1+spread, fb2) + : allpass (allpasstuningL2+spread, fb2) + : allpass (allpasstuningL3+spread, fb2) + : allpass (allpasstuningL4+spread, fb2) + ; + +stereoReverb(fb1, fb2, damp, spread) + = + <: monoReverb(fb1, fb2, damp, 0), monoReverb(fb1, fb2, damp, spread); + + +// fxctrl : add an input gain and a wet-dry control to a stereo FX +//---------------------------------------------------------------- + +fxctrl(g,w,Fx) = _,_ <: (*(g),*(g) : Fx : *(w),*(w)), *(1-w), *(1-w) +> _,_; + + + +// Freeverb +//--------- + +freeverb = vgroup("freeverb", fxctrl(fixedgain, wetSlider, stereoReverb(combfeed, allpassfeed, dampSlider, stereospread))); + +process = freeverb;