«Gaussian Cookiemonster» by bernhard

on 31 Mar'20 16:25 in randomgranulargrainmultichannelcookiecrumblegausscrumblesynthesis

Grainsynth Sampler based on Example in the Documentation. Similar to cookiemonster v.1.1, with GaussTrig instead of randomized Impulse

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
/// 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
raw 1786 chars (focus & ctrl+a+c to copy)
reception
comments