-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathResilience.scd
More file actions
132 lines (131 loc) · 5.88 KB
/
Copy pathResilience.scd
File metadata and controls
132 lines (131 loc) · 5.88 KB
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
(
~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.2.5, 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;
)