You need SuperCollider and SuperClean to run this code on your machine. I made a page on my site to help you do just that:
danielmkarlsson.com/superclean-installparty
(
~rec0 = Recorder(s);
~rec2 = Recorder(s);
~rec4 = Recorder(s);
~rec6 = Recorder(s);
~rec8 = Recorder(s);
~rec10 = Recorder(s);
~rec12 = Recorder(s);
~rec14 = Recorder(s);
~rec16 = Recorder(s);
~rec18 = Recorder(s);
~rec20 = Recorder(s);
~rec22 = Recorder(s);
~rec24 = Recorder(s);
~rec26 = Recorder(s);
~rec28 = Recorder(s);
~rec30 = Recorder(s);
~rec0.record("~/sc-rec/0.wav", 0, 2);
~rec2.record("~/sc-rec/2.wav", 2, 2);
~rec4.record("~/sc-rec/4.wav", 4, 2);
~rec6.record("~/sc-rec/6.wav", 6, 2);
~rec8.record("~/sc-rec/8.wav", 8, 2);
~rec10.record("~/sc-rec/10.wav", 10, 2);
~rec12.record("~/sc-rec/12.wav", 12, 2);
~rec14.record("~/sc-rec/14.wav", 14, 2);
~rec16.record("~/sc-rec/16.wav", 16, 2);
~rec18.record("~/sc-rec/18.wav", 18, 2);
~rec20.record("~/sc-rec/20.wav", 20, 2);
~rec22.record("~/sc-rec/22.wav", 22, 2);
~rec24.record("~/sc-rec/24.wav", 24, 2);
~rec26.record("~/sc-rec/26.wav", 26, 2);
~rec28.record("~/sc-rec/28.wav", 28, 2);
~rec30.record("~/sc-rec/30.wav", 30, 2);
Routine{
thisThread.randSeed = 9199;
~snd = Pxshuf([
\fm0, \fm1, \fm2, \fm3, \fm4, \fm7, \fm9, \fma, \fmb,
\fmd, \fmf, \fmg, \fmj, \fmk, \fml, \fmm, \fms, \fmu,
], inf).asStream;
~oct = Pexprand(3, 5).round.asStream;
~dgr = Pwrand2([0, Prand([-5, -3, -2, 0, 2, 3, 5], 1)], [2, 1], inf).asStream;
~dur = (1 / Pexprand(0.22, 11.0)).asStream;
~aux = Pdup(2, Pxshuf((0 .. 15), inf)).asStream;
Pdef(16,
Pbind(*[
type: \cln,
snd: \sin,
amp: 0,
dur: 1/8,
aux: Pfunc{~aux.next}, // keep auxes open
jpr: 1,
jps: 0.5,
])
).play;
~a = {arg snd, octave, degree, dur, aux;
var b = Pbind(*[
type: \cln,
snd: snd,
sustain: Pexprand(1, 11),
octave: octave,
scale: Scale.pelog(\wcSJ),
degree: degree,
pan: Pxrand([
Pseq((0, 1/63 .. 1), inf) + Pdup(inf, Pwhite(0.0, 1.0).round(1/63)) % 1,
Pseq((0, 1/63 .. 1).reverse, inf) + Pdup(inf, Pwhite(0.0, 1.0).round(1/63)) % 1,
], 1),
dur: dur.trace,
sgt: Phprand(4.0, 30.0),
lhf: Pxrand([
Pseg([0, 1], Pdup(2, Pkey(\sgt)), \lin, 1),
Pseg([1, 0], Pdup(2, Pkey(\sgt)), \lin, 1),
], 2),
hlf: Pxrand([
Pseg([0, 1], Pdup(2, Pkey(\sgt)), \lin, 1),
Pseg([1, 0], Pdup(2, Pkey(\sgt)), \lin, 1),
], 2),
jpr: 1,
jpg: Pxrand([
Pseg([0, 1], Pdup(2, Pkey(\sgt)), \lin, 1),
Pseg([1, 0], Pdup(2, Pkey(\sgt)), \lin, 1),
], 2),
jps: Pxrand([
Pseg([0.49375, 0.50625], Pdup(2, Pkey(\sgt)), \sin, 1),
Pseg([0.50625, 0.49375], Pdup(2, Pkey(\sgt)), \sin, 1),
], 2),
amp: Pxrand([
Pseg([0.25, 0.5], Pdup(2, Pkey(\sgt)), \sin, 1),
Pseg([0.5, 0.25], Pdup(2, Pkey(\sgt)), \sin, 1),
], 2) / Pkey(\octave).linlin(3, 5, 1, 1.125),
aux: aux,
]);
Pseq([b], inf);
};
Pdef(0, ~a.(Pdup(inf, Pfunc{~snd.next}), Pdup(inf, Pfunc{~oct.next}), Pdup(inf, Pfunc{~dgr.next}),Pdup(inf, Pfunc{~dur.next}), Pdup(inf, Pfunc{~aux.next}))).play;
Pdef(1, ~a.(Pdup(inf, Pfunc{~snd.next}), Pdup(inf, Pfunc{~oct.next}), Pdup(inf, Pfunc{~dgr.next}),Pdup(inf, Pfunc{~dur.next}), Pdup(inf, Pfunc{~aux.next}))).play;
Pdef(2, ~a.(Pdup(inf, Pfunc{~snd.next}), Pdup(inf, Pfunc{~oct.next}), Pdup(inf, Pfunc{~dgr.next}),Pdup(inf, Pfunc{~dur.next}), Pdup(inf, Pfunc{~aux.next}))).play;
Pdef(3, ~a.(Pdup(inf, Pfunc{~snd.next}), Pdup(inf, Pfunc{~oct.next}), Pdup(inf, Pfunc{~dgr.next}),Pdup(inf, Pfunc{~dur.next}), Pdup(inf, Pfunc{~aux.next}))).play;
Pdef(4, ~a.(Pdup(inf, Pfunc{~snd.next}), Pdup(inf, Pfunc{~oct.next}), Pdup(inf, Pfunc{~dgr.next}),Pdup(inf, Pfunc{~dur.next}), Pdup(inf, Pfunc{~aux.next}))).play;
Pdef(5, ~a.(Pdup(inf, Pfunc{~snd.next}), Pdup(inf, Pfunc{~oct.next}), Pdup(inf, Pfunc{~dgr.next}),Pdup(inf, Pfunc{~dur.next}), Pdup(inf, Pfunc{~aux.next}))).play;
Pdef(6, ~a.(Pdup(inf, Pfunc{~snd.next}), Pdup(inf, Pfunc{~oct.next}), Pdup(inf, Pfunc{~dgr.next}),Pdup(inf, Pfunc{~dur.next}), Pdup(inf, Pfunc{~aux.next}))).play;
Pdef(7, ~a.(Pdup(inf, Pfunc{~snd.next}), Pdup(inf, Pfunc{~oct.next}), Pdup(inf, Pfunc{~dgr.next}),Pdup(inf, Pfunc{~dur.next}), Pdup(inf, Pfunc{~aux.next}))).play;
Pdef(8, ~a.(Pdup(inf, Pfunc{~snd.next}), Pdup(inf, Pfunc{~oct.next}), Pdup(inf, Pfunc{~dgr.next}),Pdup(inf, Pfunc{~dur.next}), Pdup(inf, Pfunc{~aux.next}))).play;
Pdef(9, ~a.(Pdup(inf, Pfunc{~snd.next}), Pdup(inf, Pfunc{~oct.next}), Pdup(inf, Pfunc{~dgr.next}),Pdup(inf, Pfunc{~dur.next}), Pdup(inf, Pfunc{~aux.next}))).play;
Pdef(10, ~a.(Pdup(inf, Pfunc{~snd.next}), Pdup(inf, Pfunc{~oct.next}), Pdup(inf, Pfunc{~dgr.next}),Pdup(inf, Pfunc{~dur.next}), Pdup(inf, Pfunc{~aux.next}))).play;
Pdef(11, ~a.(Pdup(inf, Pfunc{~snd.next}), Pdup(inf, Pfunc{~oct.next}), Pdup(inf, Pfunc{~dgr.next}),Pdup(inf, Pfunc{~dur.next}), Pdup(inf, Pfunc{~aux.next}))).play;
Pdef(12, ~a.(Pdup(inf, Pfunc{~snd.next}), Pdup(inf, Pfunc{~oct.next}), Pdup(inf, Pfunc{~dgr.next}),Pdup(inf, Pfunc{~dur.next}), Pdup(inf, Pfunc{~aux.next}))).play;
Pdef(13, ~a.(Pdup(inf, Pfunc{~snd.next}), Pdup(inf, Pfunc{~oct.next}), Pdup(inf, Pfunc{~dgr.next}),Pdup(inf, Pfunc{~dur.next}), Pdup(inf, Pfunc{~aux.next}))).play;
Pdef(14, ~a.(Pdup(inf, Pfunc{~snd.next}), Pdup(inf, Pfunc{~oct.next}), Pdup(inf, Pfunc{~dgr.next}),Pdup(inf, Pfunc{~dur.next}), Pdup(inf, Pfunc{~aux.next}))).play;
Pdef(15, ~a.(Pdup(inf, Pfunc{~snd.next}), Pdup(inf, Pfunc{~oct.next}), Pdup(inf, Pfunc{~dgr.next}),Pdup(inf, Pfunc{~dur.next}), Pdup(inf, Pfunc{~aux.next}))).play;
5400.wait;
16.do{|i|Pdef(i).stop;};
360.wait;
Pdef(16).stop;
~rec0.stopRecording;
~rec2.stopRecording;
~rec4.stopRecording;
~rec6.stopRecording;
~rec8.stopRecording;
~rec10.stopRecording;
~rec12.stopRecording;
~rec14.stopRecording;
~rec16.stopRecording;
~rec18.stopRecording;
~rec20.stopRecording;
~rec22.stopRecording;
~rec24.stopRecording;
~rec26.stopRecording;
~rec28.stopRecording;
~rec30.stopRecording;
}.play;
)