-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsrrmod.pd
343 lines (343 loc) · 11.3 KB
/
srrmod.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
#N canvas 31 130 1007 484 12;
#X obj 22 220 expr~ ($v1 + $v2) / (2 * $v2), f 42;
#X text 674 76 "'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 43;
#X obj 22 196 +~;
#X obj 313 193 +~;
#X obj 22 124 unpack f f f f, f 35;
#N canvas 808 292 488 278 rect 0;
#X obj 291 58 samphold~;
#X obj 351 34 *~ -1;
#X text 308 81 <- RECT;
#X obj 14 15 inlet~;
#X obj 14 126 outlet~;
#X obj 291 126 snapshot~;
#X obj 375 107 bang~;
#X msg 291 222 bang;
#X obj 291 246 outlet;
#X text 332 222 Bang on value raise;
#X obj 14 82 fexpr~ if($x1[0] >= $x1[-1] \, 0 \, $x2[0]) \; if($x1[0] >= $x1[-1] \, 1 \, 0);
#X obj 291 150 sel 0;
#X msg 291 174 set 0;
#X obj 291 198 change;
#X connect 0 0 10 1;
#X connect 1 0 0 1;
#X connect 3 0 1 0;
#X connect 3 0 0 0;
#X connect 3 0 10 0;
#X connect 5 0 11 0;
#X connect 6 0 5 0;
#X connect 7 0 8 0;
#X connect 10 0 4 0;
#X connect 10 1 5 0;
#X connect 11 0 12 0;
#X connect 11 1 13 0;
#X connect 12 0 13 0;
#X connect 13 0 7 0;
#X restore 119 252 pd rect;
#X f 15;
#X obj 22 15 inlet;
#X obj 33 300 r \$0-xfader;
#X obj 33 347 lop~ 1;
#X obj 22 396 *~, f 2;
#X obj 33 323 sig~;
#X obj 130 276 sig~ 1;
#X obj 130 323 -~;
#X obj 148 300 r \$0-xfader;
#X obj 22 444 outlet~;
#X obj 33 370 sqrt~;
#X obj 130 347 lop~ 1;
#X obj 119 396 *~, f 2;
#X obj 130 370 sqrt~;
#X text 79 443 <- Modulation out;
#X text 67 14 <- Partial preset in;
#X listbox 261 327 14 0 0 1 - \$0-partials \$0-partialsout 12;
#X obj 264 352 hsl 95 19 0 2 0 0 \$0-spd \$0-spdinit SPEED 28 10 0 12 #dfdfdf #7c7c7c #000000 0 1;
#X obj 22 39 s \$0-partials;
#X obj 22 101 r \$0-partialsout;
#N canvas 179 217 184 279 presets 0;
#X obj 12 11 loadbang;
#X msg 12 36 0.5;
#X obj 12 60 s \$0-xfaderin;
#X msg 12 86 1, f 1;
#X obj 12 110 s \$0-spdinit;
#X obj 79 17 r \$0-res;
#X obj 12 160 s \$0-xfaderinit;
#X msg 12 136 0.5;
#X obj 12 187 f \$0;
#X msg 12 211 \; \$1-___ar1 color 900 \; \$1-ar2___ color 320 \;;
#X connect 0 0 1 0;
#X connect 0 0 3 0;
#X connect 0 0 7 0;
#X connect 0 0 8 0;
#X connect 1 0 2 0;
#X connect 3 0 4 0;
#X connect 5 0 1 0;
#X connect 5 0 3 0;
#X connect 5 0 7 0;
#X connect 7 0 6 0;
#X connect 8 0 9 0;
#X restore 122 39 pd presets;
#X text 884 407 Martin Heinze;
#X obj 804 212 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 804 236 pd source;
#X text 828 213 <- click to read more;
#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 183 148 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 264 148 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 22 148 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 102 148 pd partial;
#X obj 345 129 r \$0-spd;
#X obj 264 376 hsl 95 19 1 0 0 0 \$0-xfader \$0-xfaderinit SIN/RECT 20 10 0 12 #dfdfdf #7c7c7c #000000 0 1;
#X obj 371 376 bng 19 250 50 0 \$0-res \$0-resin RES 4 11 0 7 #fcfcfc #000000 #000000;
#N canvas 964 313 238 322 farey 0;
#X obj 28 8 loadbang;
#X obj 10 223 mod;
#X obj 10 152 expr if($f1 == 0 \, -1 \, 1);
#X obj 10 176 expr $f2 + $f1;
#X obj 10 200 i 0;
#X obj 28 32 t b b;
#X obj 60 80 text define -k \$0-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 28 103 text size \$0-farey;
#X obj 10 247 text get \$0-farey;
#X obj 10 294 s \$0-partials;
#X obj 10 271 list 0 0;
#X obj 10 128 r \$0-fareysel;
#X msg 60 56 read ./assets/farey.txt;
#X connect 0 0 5 0;
#X connect 1 0 8 0;
#X connect 2 0 3 0;
#X connect 3 0 4 0;
#X connect 4 0 3 1;
#X connect 4 0 1 0;
#X connect 5 0 7 0;
#X connect 5 1 12 0;
#X connect 7 0 1 1;
#X connect 8 0 10 0;
#X connect 10 0 9 0;
#X connect 11 0 2 0;
#X connect 12 0 6 0;
#X restore 22 71 pd farey;
#X obj 261 279 hradio 19 1 0 2 \$0-fareysel \$0-fareyselin <\ > 5 9 0 16 #000000 #000000 #ffffff 0;
#X obj 261 303 hradio 19 1 0 2 \$0-cprtriplesel \$0-cprtripleselin <\ > 5 9 0 16 #000000 #000000 #ffffff 0;
#N canvas 508 401 308 327 coprime-triples 0;
#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 13 loadbang;
#X obj 32 37 t b b;
#X obj 64 85 text define -k \$0-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 \$0-coprime-triples;
#X obj 14 252 text get \$0-coprime-triples;
#X obj 14 275 list 0;
#X obj 14 298 s \$0-partials;
#X obj 14 133 r \$0-cprtriplesel;
#X msg 64 61 read ./assets/coprime-triples.txt;
#X connect 0 0 8 0;
#X connect 1 0 2 0;
#X connect 2 0 3 0;
#X connect 3 0 2 1;
#X connect 3 0 0 0;
#X connect 4 0 5 0;
#X connect 5 0 7 0;
#X connect 5 1 12 0;
#X connect 7 0 0 1;
#X connect 8 0 9 0;
#X connect 9 0 10 0;
#X connect 11 0 1 0;
#X connect 12 0 6 0;
#X restore 87 71 pd coprime-triples;
#X text 302 302 COPRIME TRIPLE;
#X text 302 278 FAREY COPRIME;
#X text 674 276 The component can be used for all kinds of signal based modulation., f 43;
#X text 674 316 Select a 2 / 3 partial combination via FAREY COMPRIME or COPRIME TRIPLE selector \, adjust speed and fade between a sinusoid or rectangle envelope., f 43;
#X text 674 14 SRRMOD is a modular version of the PD implementation of 'SINUSOIDAL RUN RHYTHM' as described by Steffen Krebber in his research project and book of the same name., f 43;
#N canvas 0 22 450 278 (subpatch) 0;
#X array \$0-ar2___ 44100 float 2;
#X coords 0 1 44100 0 160 100 1 0 0;
#X restore 429 294 graph;
#N canvas 0 22 450 278 (subpatch) 0;
#X array \$0-___ar1 44100 float 0;
#X coords 0 1 44099 0 160 100 1 0 0;
#X restore 429 294 graph;
#N canvas 92 130 313 157 grapher 0;
#X obj 14 17 inlet~;
#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 156 17 inlet~;
#X obj 14 124 tabwrite~ \$0-___ar1;
#X obj 156 124 tabwrite~ \$0-ar2___;
#X obj 34 89 metro 64 1024 samp;
#X connect 0 0 4 0;
#X connect 1 0 6 0;
#X connect 2 0 1 0;
#X connect 3 0 5 0;
#X connect 6 0 4 0;
#X connect 6 0 5 0;
#X restore 33 276 pd grapher;
#X f 11;
#X obj 221 444 outlet;
#X text 274 443 <- Bang out;
#X text 828 427 Last updated 28.02.25;
#X connect 0 0 5 0;
#X connect 0 0 9 0;
#X connect 0 0 48 0;
#X connect 2 0 0 0;
#X connect 3 0 0 1;
#X connect 4 0 32 0;
#X connect 4 1 33 0;
#X connect 4 2 30 0;
#X connect 4 3 31 0;
#X connect 5 0 17 0;
#X connect 5 0 48 1;
#X connect 5 1 49 0;
#X connect 6 0 23 0;
#X connect 7 0 10 0;
#X connect 8 0 15 0;
#X connect 9 0 14 0;
#X connect 10 0 8 0;
#X connect 11 0 12 0;
#X connect 12 0 16 0;
#X connect 13 0 12 1;
#X connect 15 0 9 1;
#X connect 16 0 18 0;
#X connect 17 0 14 0;
#X connect 18 0 17 1;
#X connect 24 0 4 0;
#X connect 27 0 28 0;
#X connect 30 0 2 1;
#X connect 30 1 3 1;
#X connect 31 0 2 1;
#X connect 31 1 3 1;
#X connect 32 0 2 0;
#X connect 32 1 3 0;
#X connect 33 0 2 1;
#X connect 33 1 3 1;
#X connect 34 0 31 1;
#X connect 34 0 30 1;
#X connect 34 0 33 1;
#X connect 34 0 32 1;
#X coords 0 -1 1 1 350 135 2 250 270;