supernova: fix for small audio vector sizes
[supercollider.git] / examples / pieces / Little_Man_From_Another_Place.scd
blob402cd0407bb43ae453296f700df2fab56ab6c000
3 // LMFAP: Little Man From Another Place (the dwarf in the Red Room)
4 // (thor magnusson) (2006)
6 // better use headphones !!!
8 s = Server.local;
9 b = Buffer.alloc(s, 44100 * 6.0, 2);
12 SynthDef(\LMFAP, {|combdecay=1, allpassdecay=0.5, wet=0.1, bufnum, rate=1, end=264600|
13         var in, signal;
14         in = AudioIn.ar([1,2]);
15         z = DelayN.ar(in, 0.1, 0.51);
16         y = Mix.ar(Array.fill(3,{ CombL.ar(z, 0.05, rrand(0.03, 0.05), combdecay) })); 
17         6.do({ y = AllpassN.ar(y, 0.030, rrand(0.01, 0.03), allpassdecay) });
18         BufWr.ar(in+(y*wet), bufnum, Phasor.ar(0, 1, 0, end));
19         signal = BufRd.ar(2, bufnum, Phasor.ar(0, BufRateScale.kr(0)*rate, 0, end));
20         y = Mix.ar(Array.fill(7,{ CombL.ar(signal, 0.05, rrand(0.03, 0.05), combdecay) })); 
21         6.do({ y = AllpassN.ar(y, 0.050, rrand(0.03, 0.05), allpassdecay) });
22         Out.ar(0, signal+(y*wet));
23 }).add;
26 // wait a bit
27 c = Synth(\LMFAP, [\bufnum, b.bufnum, \rate, -1]);
30 c.set(\combdecay, 3)
31 c.set(\allpassdecay, 0.4)
33 c.set(\rate, -0.8)
35 c.set(\wet, 0.4) // more reverb
37 c.set(\end, 44100*3) // 3 sec loop
39 c.free;
40 b.free;