Merge pull request #506 from andrewcsmith/patch-2
[supercollider.git] / examples / pieces / deap_sea.scd
blob27b5cfec9714f9861e6ec3a2d8f11be2f0206169
1 // julian rohrhuber (c 2007)
4 SynthDef("deepsea", { arg out, pan=0, amp=0.1, variation=0.9;
5         var dt, n, freq, mul, t, u;
6         n = Rand(7, 46);
7         dt = 25.0 + Rand(-1.7, 1.7);
8         dt = dt + LFNoise2.kr(2, variation) * 0.001;
9         freq = 901 + Rand(0, 65);
10         t = Impulse.ar(dt.reciprocal, 0, 100);
11         mul = PulseCount.ar(t) < n;
12         u = BPF.ar(mul * t, freq, 0.1);
13         u = BPF.ar(u, freq, 0.2);
14         DetectSilence.ar(u, doneAction:2);
15         Out.ar(out, Pan2.ar(u, pan, amp));
16 }).add;
20 SynthDef("deepsea", { arg out, pan=0, amp=0.1, variation=0.9;
21         var dt, n, freq, mul, t, u, count;
22         n = Rand(7, 46);
23         dt = 25.0 + Rand(-1.7, 1.7);
24         dt = dt + LFNoise2.kr(2, variation) * 0.001;
25         freq = 901 + Rand(0, 65);
26         t = Impulse.ar(dt.reciprocal, 0, 100);
27         count = PulseCount.ar(t);
28         mul = count < n;
29         u = BPF.ar(mul * t, freq, 0.1);
30         u = BPF.ar(u, freq * (count % LFNoise1.kr(1).range(2, 20) + 1), 0.2);
31         DetectSilence.ar(u, doneAction:2);
32         Out.ar(out, Pan2.ar(u, pan, amp * 10));
33 }).add;
38 s.sendMsg("/s_new", "deepsea", -1);
41 p = ProxySpace.push(s.boot);
43 ~out.play;
44 ~out.fadeTime = 10;
47 ~fish = Pbind(
48                 \instrument, \deepsea,
49                 \dur, Pfunc #{ rrand(9.0, 2.0) },
50                 \pan, Pfunc #{ 1.0.rand2 }
51                 );
54 ~out = ~fish;
55 ~out[1] = \filter -> #{ arg in; BPF.ar(in * 5, 700, 0.1) };
58 ~out[2] = \filter -> #{ arg in; 
59         CombL.ar(LPF.ar(in * LFNoise1.kr(0.1).max(0), 800), 0.5, 0.5) + in.reverse 
64 ~out[3] = \filter -> #{ arg in; var x; x = in;
65                                                 5.do { x = AllpassN.ar(x, 0.18, {0.06.rand} ! 2 + 0.06, 8) };
66                                                 LPF.ar(x + in, 400) + (LFNoise1.kr(0.2) * in)
67                                         };
73 ~out[1] = nil;
74 ~out[2] = nil;
77 p.clear(10).pop;