-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpd-srr.pd
393 lines (393 loc) · 12.9 KB
/
pd-srr.pd
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
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
#N canvas 455 178 823 550 12;
#X floatatom 30 126 5 0 0 0 - - - 0;
#X floatatom 110 126 5 0 0 0 - - - 0;
#X floatatom 191 126 5 0 0 0 - - - 0;
#X floatatom 272 126 5 0 0 0 - - - 0;
#X obj 12 409 *~;
#N canvas 0 22 450 278 (subpatch) 0;
#X array ar2___ 44100 float 2;
#X coords 0 1 44100 0 200 140 1 0 0;
#X restore 217 393 graph;
#N canvas 0 22 450 278 (subpatch) 0;
#X array ___ar1 44100 float 0;
#X coords 0 1 44099 0 200 140 1 0 0;
#X restore 217 393 graph;
#X obj 154 390 noise~;
#X obj 30 238 expr~ ($v1 + $v2) / (2 * $v2), f 42;
#X text 471 80 "'sinusoidal run rhythm' proposes a definition of rhythm as a wave. It does not conceive of time as discrete subdivisions \, but makes it continuously quantifiable. Concurrently \, through the aesthetics of wave additions \, it does not present physicality as a merely subjective concept and thus liberates it from mystification." (Krebber \, 2024), f 47;
#X obj 30 102 unpack f f f f, f 35;
#N canvas 92 130 279 157 grapher 0;
#X obj 14 17 inlet~;
#X obj 14 124 tabwrite~ ___ar1;
#X obj 136 124 tabwrite~ ar2___;
#X obj 34 65 tgl 19 0 empty empty empty 0 -10 0 12 #fcfcfc #000000 #000000 0 1;
#X obj 34 41 loadbang;
#X obj 136 17 inlet~;
#X obj 34 89 metro 1250;
#X connect 0 0 1 0;
#X connect 3 0 6 0;
#X connect 4 0 3 0;
#X connect 5 0 2 0;
#X connect 6 0 2 0;
#X connect 6 0 1 0;
#X restore 70 309 pd grapher;
#N canvas 427 342 867 298 xfader 0;
#X obj 643 141 hsl 95 38 1 0 0 0 \$0-xfader \$0-xfaderinit empty -2 -10 0 12 #ff8300 #000000 #000000 0 1;
#X obj 39 71 r \$0-xfader;
#X obj 21 21 inlet~;
#X obj 39 118 lop~ 1;
#X obj 21 222 *~;
#X obj 39 94 sig~;
#X obj 229 49 sig~ 1;
#X obj 229 94 -~;
#X obj 247 71 r \$0-xfader;
#X obj 211 260 outlet~;
#X obj 211 21 inlet~;
#X obj 120 193 sqrt~;
#X obj 39 170 *~;
#X obj 781 141 vradio 19 1 0 2 \$0-law \$0-lawinit empty 0 -10 0 12 #fcfcfc #000000 #000000 0;
#X obj 138 146 == 0;
#X obj 120 170 *~;
#X obj 138 118 r \$0-law;
#X obj 229 118 lop~ 1;
#X obj 211 222 *~;
#X obj 310 193 sqrt~;
#X obj 229 170 *~;
#X obj 328 146 == 0;
#X obj 310 170 *~;
#X obj 328 118 r \$0-law;
#X text 745 140 Sqrt;
#X text 745 161 Linr;
#X obj 455 101 loadbang;
#X obj 455 125 bng 19 250 50 0 empty empty empty 0 -10 0 12 #fcfcfc #000000 #000000;
#X obj 455 149 f \$0;
#X msg 455 173 \; \$1-xfaderinit 0.5 \; \$1-lawinit 0;
#X connect 1 0 5 0;
#X connect 2 0 4 0;
#X connect 3 0 12 0;
#X connect 3 0 15 0;
#X connect 4 0 9 0;
#X connect 5 0 3 0;
#X connect 6 0 7 0;
#X connect 7 0 17 0;
#X connect 8 0 7 1;
#X connect 10 0 18 0;
#X connect 11 0 4 1;
#X connect 12 0 4 1;
#X connect 14 0 15 1;
#X connect 15 0 11 0;
#X connect 16 0 12 1;
#X connect 16 0 14 0;
#X connect 17 0 20 0;
#X connect 17 0 22 0;
#X connect 18 0 9 0;
#X connect 19 0 18 1;
#X connect 20 0 18 1;
#X connect 21 0 22 1;
#X connect 22 0 19 0;
#X connect 23 0 20 1;
#X connect 23 0 21 0;
#X connect 26 0 27 0;
#X connect 27 0 28 0;
#X connect 28 0 29 0;
#X coords 0 -1 1 1 170 50 2 635 135;
#X restore 30 334 pd xfader;
#N canvas 969 199 398 148 rect 0;
#X obj 284 61 samphold~;
#X obj 344 37 *~ -1;
#X obj 14 85 fexpr~ if($x1[0] >= $x1[-1] \, 0 \, $x2[0]);
#X text 298 84 <- RECT;
#X obj 14 18 inlet~;
#X obj 14 109 outlet~;
#X connect 0 0 2 1;
#X connect 1 0 0 1;
#X connect 2 0 5 0;
#X connect 4 0 2 0;
#X connect 4 0 1 0;
#X connect 4 0 0 0;
#X restore 193 290 pd rect;
#N canvas 548 177 499 282 out 0;
#X obj 19 217 dac~;
#X obj 239 123 vsl 15 65 0 1 0 0 \$0-mainvol \$0-mainvolinit VOL 0 -8 0 10 #fcfcfc #000000 #000000 0 1;
#X obj 344 20 loadbang;
#X obj 209 121 tgl 15 0 \$0-dac \$0-dacinit DAC 0 -6 0 10 #00ff04 #000000 #000000 0 1;
#X msg 344 144 \; pd dsp \$1;
#X obj 264 109 vu 15 80 \$0-vur empty -1 -8 0 8 #404040 #000000 1 0;
#X obj 263 43 env~;
#X obj 44 20 inlet~;
#X obj 263 67 - 100;
#X obj 344 121 r \$0-dac;
#X obj 344 43 f \$0;
#X obj 62 45 r \$0-mainvol;
#X obj 44 117 *~;
#X obj 51 185 s~ \$0-ar;
#X obj 263 20 r~ \$0-ar;
#X obj 62 69 sig~;
#X obj 62 93 lop~ 1;
#X obj 209 148 bng 15 250 50 0 \$0-mute \$0-muteinit Mute 0 -6 0 10 #fcfcfc #000000 #000000;
#X obj 344 187 r \$0-mute;
#X obj 344 210 f \$0;
#X msg 344 234 \; \$1-mainvolinit 0;
#X obj 44 139 clip~ -1 1;
#X obj 44 162 hip~ 5;
#X msg 344 66 \; \$1-dacinit 0 \; \$1-mainvolinit 0.7;
#X connect 2 0 10 0;
#X connect 6 0 8 0;
#X connect 7 0 12 0;
#X connect 8 0 5 0;
#X connect 9 0 4 0;
#X connect 10 0 23 0;
#X connect 11 0 15 0;
#X connect 12 0 21 0;
#X connect 14 0 6 0;
#X connect 15 0 16 0;
#X connect 16 0 12 1;
#X connect 18 0 19 0;
#X connect 19 0 20 0;
#X connect 21 0 22 0;
#X connect 22 0 13 0;
#X connect 22 0 0 0;
#X connect 22 0 0 1;
#X coords 0 -1 1 1 110 100 2 200 100;
#X restore 12 433 pd out;
#X obj 361 70 vsl 19 85 0 3 0 0 empty speedinit Speed -2 -10 0 12 #fcfcfc #000000 #000000 0 1;
#X floatatom 361 163 5 0 0 0 - - - 0;
#X obj 629 215 bng 19 250 50 0 empty empty empty 0 -10 0 12 #fcfcfc #000000 #000000;
#N canvas 411 449 448 103 source 0;
#X obj 7 7 inlet;
#X msg 7 31 browse https://steffenkrebber.de/research/sinusoidal-run-rhythm/;
#X obj 7 69 pdcontrol;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X restore 629 239 pd source;
#X text 653 216 <- click to read more;
#X text 334 237 <- Normalization;
#X obj 30 216 +~;
#X obj 321 216 +~;
#N canvas 956 309 173 235 partial 0;
#X obj 10 10 inlet;
#X obj 10 34 t b f;
#X msg 10 58 0, f 1;
#X obj 42 86 phasor~;
#X obj 42 110 cos~;
#X obj 42 157 *~;
#X obj 60 134 != 0;
#X obj 102 158 sig~;
#X obj 42 205 outlet~;
#X obj 60 10 inlet Speed;
#X obj 60 34 t b f;
#X obj 42 58 * 1;
#X obj 102 205 outlet~;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X connect 1 1 6 0;
#X connect 1 1 11 0;
#X connect 2 0 3 1;
#X connect 3 0 4 0;
#X connect 4 0 5 0;
#X connect 5 0 8 0;
#X connect 6 0 5 1;
#X connect 6 0 7 0;
#X connect 7 0 12 0;
#X connect 9 0 10 0;
#X connect 10 0 11 0;
#X connect 10 1 11 1;
#X connect 11 0 3 0;
#X restore 191 158 pd partial;
#N canvas 956 309 173 235 partial 0;
#X obj 10 10 inlet;
#X obj 10 34 t b f;
#X msg 10 58 0, f 1;
#X obj 42 86 phasor~;
#X obj 42 110 cos~;
#X obj 42 157 *~;
#X obj 60 134 != 0;
#X obj 102 158 sig~;
#X obj 42 205 outlet~;
#X obj 60 10 inlet Speed;
#X obj 60 34 t b f;
#X obj 42 58 * 1;
#X obj 102 205 outlet~;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X connect 1 1 6 0;
#X connect 1 1 11 0;
#X connect 2 0 3 1;
#X connect 3 0 4 0;
#X connect 4 0 5 0;
#X connect 5 0 8 0;
#X connect 6 0 5 1;
#X connect 6 0 7 0;
#X connect 7 0 12 0;
#X connect 9 0 10 0;
#X connect 10 0 11 0;
#X connect 10 1 11 1;
#X connect 11 0 3 0;
#X restore 272 158 pd partial;
#N canvas 956 309 173 235 partial 0;
#X obj 10 10 inlet;
#X obj 10 34 t b f;
#X msg 10 58 0, f 1;
#X obj 42 86 phasor~;
#X obj 42 110 cos~;
#X obj 42 157 *~;
#X obj 60 134 != 0;
#X obj 102 158 sig~;
#X obj 42 205 outlet~;
#X obj 60 10 inlet Speed;
#X obj 60 34 t b f;
#X obj 42 58 * 1;
#X obj 102 205 outlet~;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X connect 1 1 6 0;
#X connect 1 1 11 0;
#X connect 2 0 3 1;
#X connect 3 0 4 0;
#X connect 4 0 5 0;
#X connect 5 0 8 0;
#X connect 6 0 5 1;
#X connect 6 0 7 0;
#X connect 7 0 12 0;
#X connect 9 0 10 0;
#X connect 10 0 11 0;
#X connect 10 1 11 1;
#X connect 11 0 3 0;
#X restore 30 158 pd partial;
#N canvas 956 309 173 235 partial 0;
#X obj 10 10 inlet;
#X obj 10 34 t b f;
#X msg 10 58 0, f 1;
#X obj 42 86 phasor~;
#X obj 42 110 cos~;
#X obj 42 157 *~;
#X obj 60 134 != 0;
#X obj 102 158 sig~;
#X obj 42 205 outlet~;
#X obj 60 10 inlet Speed;
#X obj 60 34 t b f;
#X obj 42 58 * 1;
#X obj 102 205 outlet~;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X connect 1 1 6 0;
#X connect 1 1 11 0;
#X connect 2 0 3 1;
#X connect 3 0 4 0;
#X connect 4 0 5 0;
#X connect 5 0 8 0;
#X connect 6 0 5 1;
#X connect 6 0 7 0;
#X connect 7 0 12 0;
#X connect 9 0 10 0;
#X connect 10 0 11 0;
#X connect 10 1 11 1;
#X connect 11 0 3 0;
#X restore 110 158 pd partial;
#N canvas 158 311 261 305 farey 0;
#X obj 64 85 text define -k farey;
#A set 0 1 \, 1 8 \, 1 7 \, 1 6 \, 1 5 \, 1 4 \, 2 7 \, 1 3 \, 3 8 \, 2 5 \, 3 7 \, 1 2 \, 4 7 \, 3 5 \, 5 8 \, 2 3 \, 5 7 \, 3 4 \, 4 5 \, 5 6 \, 6 7 \, 7 8 \, 1 1 \,;
#X obj 32 13 loadbang;
#X obj 14 252 text get farey;
#X obj 32 108 text size farey;
#X obj 14 276 outlet;
#X obj 14 133 inlet;
#X obj 14 228 mod;
#X obj 14 157 expr if($f1 == 0 \, -1 \, 1);
#X obj 14 181 expr $f2 + $f1;
#X obj 14 205 i 0;
#X obj 32 37 t b b;
#X msg 64 61 read ./assets/farey.txt;
#X connect 1 0 10 0;
#X connect 2 0 4 0;
#X connect 3 0 6 1;
#X connect 5 0 7 0;
#X connect 6 0 2 0;
#X connect 7 0 8 0;
#X connect 8 0 9 0;
#X connect 9 0 8 1;
#X connect 9 0 6 0;
#X connect 10 0 3 0;
#X connect 10 1 11 0;
#X connect 11 0 0 0;
#X restore 30 50 pd farey;
#X obj 30 73 list 0 0;
#X obj 112 73 list 0;
#X obj 30 26 hradio 19 1 0 2 empty fareyselin <\ > 5 9 0 16 #000000 #000000 #ffffff 0;
#X obj 112 26 hradio 19 1 0 2 empty empty <\ > 5 9 0 16 #000000 #000000 #ffffff 0;
#N canvas 508 401 325 308 coprime-triples 0;
#X obj 14 276 outlet;
#X obj 14 133 inlet;
#X obj 14 228 mod;
#X obj 14 157 expr if($f1 == 0 \, -1 \, 1);
#X obj 14 181 expr $f2 + $f1;
#X obj 14 205 i 0;
#X obj 14 252 text get coprime-triples;
#X obj 32 13 loadbang;
#X obj 32 37 t b b;
#X obj 64 85 text define -k coprime-triples;
#A set 1 2 3 \, 1 2 4 \, 1 2 5 \, 1 2 6 \, 1 2 7 \, 1 2 8 \, 1 2 9 \, 1 2 10 \, 1 2 11 \, 1 2 12 \, 1 2 13 \, 1 2 14 \, 1 2 15 \, 1 2 16 \, 1 3 4 \, 1 3 5 \, 1 3 6 \, 1 3 7 \, 1 3 8 \, 1 3 9 \, 1 3 10 \, 1 3 11 \, 1 3 12 \, 1 3 13 \, 1 3 14 \, 1 3 15 \, 1 3 16 \, 1 4 5 \, 1 4 6 \, 1 4 7 \, 1 4 8 \, 1 4 9 \, 1 4 10 \, 1 4 11 \, 1 4 12 \, 1 4 13 \, 1 4 14 \, 1 4 15 \, 1 4 16 \, 1 5 6 \, 1 5 7 \, 1 5 8 \, 1 5 9 \, 1 5 10 \, 1 5 11 \, 1 5 12 \, 1 5 13 \, 1 5 14 \, 1 5 15 \, 1 5 16 \, 1 6 7 \, 1 6 8 \, 1 6 9 \, 1 6 10 \, 1 6 11 \, 1 6 12 \, 1 6 13 \, 1 6 14 \, 1 6 15 \, 1 6 16 \, 1 7 8 \, 1 7 9 \, 1 7 10 \, 1 7 11 \, 1 7 12 \, 1 7 13 \, 1 7 14 \, 1 7 15 \, 1 7 16 \, 1 8 9 \, 1 8 10 \, 1 8 11 \, 1 8 12 \, 1 8 13 \, 1 8 14 \, 1 8 15 \, 1 8 16 \, 1 9 10 \, 1 9 11 \, 1 9 12 \, 1 9 13 \, 1 9 14 \, 1 9 15 \, 1 9 16 \, 1 10 11 \, 1 10 12 \, 1 10 13 \, 1 10 14 \, 1 10 15 \, 1 10 16 \, 1 11 12 \, 1 11 13 \, 1 11 14 \, 1 11 15 \, 1 11 16 \, 1 12 13 \, 1 12 14 \, 1 12 15 \, 1 12 16 \, 1 13 14 \, 1 13 15 \, 1 13 16 \, 1 14 15 \, 1 14 16 \, 1 15 16 \, 2 3 5 \, 2 3 7 \, 2 3 11 \, 2 3 13 \, 2 3 15 \, 2 5 7 \, 2 5 11 \, 2 5 13 \, 2 7 11 \, 2 7 13 \, 2 11 13 \, 3 4 5 \, 3 4 7 \, 3 4 11 \, 3 4 13 \, 3 5 7 \, 3 5 11 \, 3 5 13 \, 3 7 11 \, 3 7 13 \, 3 11 13 \, 4 5 7 \, 4 5 11 \, 4 5 13 \, 4 7 11 \, 4 7 13 \, 4 11 13 \, 5 6 7 \, 5 6 11 \, 5 6 13 \, 5 7 11 \, 5 7 13 \, 5 11 13 \, 6 7 11 \, 6 7 13 \, 6 11 13 \, 7 8 11 \, 7 8 13 \, 7 11 13 \, 8 9 11 \, 8 9 13 \, 8 11 13 \, 9 10 11 \, 9 10 13 \, 9 11 13 \, 10 11 12 \, 10 11 13 \, 10 11 14 \, 10 11 15 \, 10 11 16 \, 10 12 13 \, 10 12 15 \, 10 13 14 \, 10 13 15 \, 10 13 16 \, 10 14 15 \, 10 15 16 \, 11 12 13 \, 11 12 14 \, 11 12 15 \, 11 12 16 \, 11 13 14 \, 11 13 15 \, 11 13 16 \, 11 14 15 \, 11 14 16 \, 11 15 16 \, 12 13 14 \, 12 13 15 \, 12 13 16 \, 12 14 15 \, 12 15 16 \, 13 14 15 \, 13 14 16 \, 13 15 16 \, 14 15 16 \,;
#X obj 32 108 text size coprime-triples;
#X msg 64 61 read ./assets/coprime-triples.txt;
#X connect 1 0 3 0;
#X connect 2 0 6 0;
#X connect 3 0 4 0;
#X connect 4 0 5 0;
#X connect 5 0 4 1;
#X connect 5 0 2 0;
#X connect 6 0 0 0;
#X connect 7 0 8 0;
#X connect 8 0 10 0;
#X connect 8 1 11 0;
#X connect 10 0 2 1;
#X connect 11 0 9 0;
#X restore 112 50 pd coprime-triples;
#N canvas 701 81 178 120 presets 0;
#X obj 11 10 loadbang;
#X msg 11 32 \; ___ar1 color 900 \; ar2___ color 320 \; speedinit 1 \; fareyselin 1 \;;
#X connect 0 0 1 0;
#X restore 343 354 pd presets;
#X text 709 497 Martin Heinze;
#X text 156 25 <- Partials selection;
#X text 478 326 The implementation works with combination of 2 partials (derived from the Farey sequence of order 8) and 3 partials (coprime triples up to 16) through the selectors on the top \, additionally \, up to 4 partials can be set by using the manual selection option below., f 46;
#X text 478 426 Oscillator speed can be adjusted. After normalization (0 \, 1) \, the signal can be cross faded between a sinusoid or rectangle envelope applied to a simple white noise generator., f 46;
#X text 471 25 PD-SRR is a PD implementation of 'SINUSOIDAL RUN RHYTHM' as described by Steffen Krebber in his research project and book of the same name., f 47;
#X text 653 517 Last updated 07.11.24;
#X connect 0 0 25 0;
#X connect 1 0 26 0;
#X connect 2 0 23 0;
#X connect 3 0 24 0;
#X connect 4 0 14 0;
#X connect 7 0 4 0;
#X connect 8 0 11 0;
#X connect 8 0 12 0;
#X connect 8 0 13 0;
#X connect 10 0 0 0;
#X connect 10 1 1 0;
#X connect 10 2 2 0;
#X connect 10 3 3 0;
#X connect 12 0 4 1;
#X connect 13 0 12 1;
#X connect 13 0 11 1;
#X connect 15 0 16 0;
#X connect 15 0 24 1;
#X connect 15 0 23 1;
#X connect 15 0 26 1;
#X connect 15 0 25 1;
#X connect 17 0 18 0;
#X connect 21 0 8 0;
#X connect 22 0 8 1;
#X connect 23 0 21 1;
#X connect 23 1 22 1;
#X connect 24 0 21 1;
#X connect 24 1 22 1;
#X connect 25 0 21 0;
#X connect 25 1 22 0;
#X connect 26 0 21 1;
#X connect 26 1 22 1;
#X connect 27 0 28 0;
#X connect 28 0 10 0;
#X connect 29 0 10 0;
#X connect 30 0 27 0;
#X connect 31 0 32 0;
#X connect 32 0 29 0;