// title: Gaussian Cookiemonster // author: bernhard // description: // Grainsynth Sampler based on Example in the Documentation. Similar to cookiemonster v.1.1, with GaussTrig instead of randomized Impulse // code: /// Grainsynth Sampler based on example in the IDE-documentation. Similar to cookiemonster v.1.1, with GaussTrig instead of randomized Impulse. /// DURATION is randomized via LFNoise1, borders are set with muldur, adddur. LFNoise1 folds to positiv with .abs, offset is added after, lfo is speed of LFNoise1. /// Env is randomized with PinkNoise /// MouseX is playbackrate, MouseY is position in buffer. Blurred with PinkNoise, intensity via vrate and vpos /// Buffers can be switched on the fly with x.set(\buf... /// For Multichannel expansion get rid of Splay.ar and adapt !8 /// use mono cookies, "ME EAT COOKIE!!!" ( SynthDef(\cookiemonster_gauss, { arg gate = 1, lfo = 1.3, vrate = 0.01, vpos = 0.003, trigrate = 34, trigdev = 0.3, muldur = 1, adddur = 0.1, buf=0, amp = 0.1, out=0; var rate, pos, sig, env, atk, rel, dur; sig={BufGrain.ar(GaussTrig.kr(trigrate,trigdev),dur=LFNoise1.ar(lfo,muldur).abs+adddur,buf,MouseX.kr(0,5)*PinkNoise.kr(vrate,1),MouseY.kr(0,1)*PinkNoise.kr(vpos,1),4,EnvGen.ar(Env([0, 1, 0], [atk=dur*PinkNoise.ar(0.9,0.5), rel=dur-atk], \sin, 1), gate,1,doneAction: 2))}!8; sig=Splay.ar(sig); sig=LeakDC.ar(sig*amp); Out.ar(out,sig.tanh); }).add; ) ( x=Synth( \cookiemonster_gauss, [\buf, Buffer.read(s,"/Path/to/my/cookiebox/cookie1.wav"), ]);) x.set(\out,0) x.set(\amp,0.2) x.set(\trigrate,11) x.set(\trigdev,0.3) x.set(\vrate,0.1) x.set(\lfo,0.2) x.set(\muldur,0.1) x.set(\adddur,0.02) x.set(\vpos,0.04) x.set(\buf, Buffer.read(s,"/Path/to/my/cookiebox/cookie2.wav")) x.set(\buf, Buffer.read(s,"/Path/to/my/cookiebox/cookie3.wav")) x.set(\buf, Buffer.read(s,"/Path/to/my/cookiebox/cookie4.wav")) x.set(\buf, Buffer.read(s,"/Path/to/my/cookiebox/cookie5.wav")) x.free