forked from bauhauslib/blib
-
Notifications
You must be signed in to change notification settings - Fork 0
/
looper~.pd
411 lines (411 loc) · 10.6 KB
/
looper~.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
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
#N canvas 640 158 790 675 10;
#X obj 13 -23 inlet~;
#X obj 339 -153 inlet;
#X obj 13 493 outlet~;
#X text 17 -131 normalize;
#X text 18 -114 MIDI sync / clock;
#X obj 355 471 outlet;
#X obj 65 -24 r \$0-record;
#X obj 65 190 r \$0-play;
#X obj 165 318 r \$0-stop;
#X obj 200 -24 r \$0-play;
#X obj 200 3 t b b;
#X obj 65 5 t b b;
#N canvas 0 55 766 919 tables 0;
#N canvas 0 22 758 404 (subpatch) 0;
#X array \$0-phrase0 882000 float 2;
#X coords 0 1 881999 -1 200 140 1 0 0;
#X restore 115 -20 graph;
#X msg 21 2 const 0;
#X obj 21 -22 r \$0-clear;
#N canvas 0 22 450 278 (subpatch) 0;
#X array \$0-phrase1 882000 float 2;
#X coords 0 1 881999 -1 200 140 1 0 0;
#X restore 113 142 graph;
#N canvas 0 22 450 278 (subpatch) 0;
#X array \$0-phrase2 882000 float 2;
#X coords 0 1 881999 -1 200 140 1 0 0;
#X restore 112 303 graph;
#N canvas 0 22 450 278 (subpatch) 0;
#X array \$0-phrase3 882000 float 2;
#X coords 0 1 881999 -1 200 140 1 0 0;
#X restore 110 466 graph;
#N canvas 0 22 450 278 (subpatch) 0;
#X array \$0-phrase4 882000 float 2;
#X coords 0 1 881999 -1 200 140 1 0 0;
#X restore 109 629 graph;
#X obj 21 66 s;
#X obj 36 33 r \$0-phrase;
#N canvas 0 22 758 404 (subpatch) 0;
#X array \$0-phrase5 882000 float 2;
#X coords 0 1 881999 -1 200 140 1 0 0;
#X restore 332 -22 graph;
#N canvas 0 22 450 278 (subpatch) 0;
#X array \$0-phrase6 882000 float 2;
#X coords 0 1 881999 -1 200 140 1 0 0;
#X restore 331 143 graph;
#N canvas 0 22 450 278 (subpatch) 0;
#X array \$0-phrase7 882000 float 2;
#X coords 0 1 881999 -1 200 140 1 0 0;
#X restore 330 304 graph;
#N canvas 0 22 450 278 (subpatch) 0;
#X array \$0-phrase8 882000 float 2;
#X coords 0 1 881999 -1 200 140 1 0 0;
#X restore 328 467 graph;
#N canvas 0 22 450 278 (subpatch) 0;
#X array \$0-phrase9 882000 float 2;
#X coords 0 1 881999 -1 200 140 1 0 0;
#X restore 327 630 graph;
#N canvas 0 22 450 278 (subpatch) 0;
#X array \$0-phrase10 882000 float 2;
#X coords 0 1 881999 -1 200 140 1 0 0;
#X restore 547 -19 graph;
#N canvas 0 22 450 278 (subpatch) 0;
#X array \$0-temp 882000 float 2;
#X coords 0 1 881999 -1 200 140 1 0 0;
#X restore 547 143 graph;
#X connect 1 0 7 0;
#X connect 2 0 1 0;
#X connect 8 0 7 1;
#X restore 340 -22 pd tables;
#N canvas 431 59 494 344 META 0;
#X text 12 5 KEYWORDS signal;
#X text 12 105 OUTLET_0 signal;
#X text 12 45 DESCRIPTION looper;
#X text 12 145 AUTHOR Tommy Neuwirth \, Max Neupert;
#X text 12 185 RELEASE_DATE 2012;
#X text 12 205 HELP_PATCH_AUTHORS Max Neupert;
#X text 12 125 LIBRARY Bauhauslib;
#X text 12 65 INLET_0 signal;
#X text 12 85 INLET_1 float \, clear \, play \, record;
#X text 12 25 LICENSE LGPL;
#X text 12 165 WEBSITE https://github.com/bauhauslib/blib;
#X restore 662 489 pd META;
#N canvas 0 160 708 586 set-loop-size 0;
#X obj 61 225 loadbang;
#X obj 61 248 samplerate~;
#X obj 28 146 timer;
#X obj 61 271 / 1000;
#X obj 28 297 * 44.1;
#X obj 28 81 spigot 1;
#X obj 117 80 spigot 1;
#X msg 188 49 0;
#X msg 223 49 1;
#X obj 223 22 r \$0-clear;
#X obj 28 320 s \$0-samples;
#X obj 28 167 t f b f;
#X obj 67 193 s \$0-length;
#X text 175 235 set the length of the loop;
#X text 197 83 the length of the loop is defined by the first recording
after a memory clear!;
#X obj 28 22 inlet record;
#X obj 117 22 inlet play;
#X connect 0 0 1 0;
#X connect 1 0 3 0;
#X connect 2 0 11 0;
#X connect 3 0 4 1;
#X connect 4 0 10 0;
#X connect 5 0 2 0;
#X connect 6 0 2 1;
#X connect 7 0 5 1;
#X connect 7 0 6 1;
#X connect 8 0 6 1;
#X connect 8 0 5 1;
#X connect 9 0 8 0;
#X connect 11 0 4 0;
#X connect 11 1 7 0;
#X connect 11 2 12 0;
#X connect 15 0 5 0;
#X connect 16 0 6 0;
#X restore 92 38 pd set-loop-size;
#X obj 541 -57 s \$0-phrase;
#X obj 541 -79 makefilename \$0-phrase%d;
#X obj 78 426 tabread4~ \$0-phrase0;
#X obj 65 378 vline~;
#X msg 123 341 1;
#X obj 65 341 pack f f;
#X obj 65 317 f;
#X obj 80 275 r \$0-samples;
#X obj 239 246 r \$0-length;
#X obj 165 296 s \$0-loop;
#X obj 76 213 r \$0-loop;
#X obj 165 269 delay 10;
#X obj 65 247 t b b b;
#X obj 432 405 r \$0-loop;
#N canvas 520 49 699 364 record-on-loop-start 0;
#X obj 36 6 r \$0-loop;
#X obj 36 320 outlet;
#X obj 98 6 inlet record;
#X obj 201 27 r \$0-clear;
#X text 317 236 stop when end (length) of first recording is reached
;
#N canvas 646 459 450 300 once 0;
#X obj 29 30 inlet;
#X obj 29 115 t a b;
#X obj 29 142 outlet;
#X msg 74 63 0;
#X obj 29 85 spigot \$1;
#X obj 114 32 inlet;
#X connect 0 0 4 0;
#X connect 1 0 2 0;
#X connect 1 1 3 0;
#X connect 3 0 4 1;
#X connect 4 0 1 0;
#X connect 5 0 4 1;
#X restore 36 122 pd once 1;
#X msg 36 41 bang;
#X text 314 52 if it's the first recording after a "clear" then record
immediately.;
#X text 316 137 otherwhise make sure that recording is starting at
the begining of the loop.;
#X msg 36 280 stop;
#X obj 194 6 inlet play;
#X msg 74 281 start;
#X obj 36 248 sel 0 1;
#X text 319 269 0=stop \, 1=start;
#X obj 36 157 f;
#X msg 98 32 1;
#X msg 194 76 0;
#X obj 208 47 r \$0-stop;
#X obj 97 52 t b f f;
#N canvas 646 459 450 300 once 0;
#X obj 29 30 inlet;
#X obj 29 115 t a b;
#X obj 29 142 outlet;
#X msg 74 63 0;
#X obj 29 85 spigot \$1;
#X obj 114 32 inlet;
#X connect 0 0 4 0;
#X connect 1 0 2 0;
#X connect 1 1 3 0;
#X connect 3 0 4 1;
#X connect 4 0 1 0;
#X connect 5 0 4 1;
#X restore 46 95 pd once 0;
#X msg 163 75 1;
#X connect 0 0 6 0;
#X connect 2 0 15 0;
#X connect 3 0 16 0;
#X connect 3 0 20 0;
#X connect 5 0 14 0;
#X connect 6 0 5 0;
#X connect 9 0 1 0;
#X connect 10 0 16 0;
#X connect 11 0 1 0;
#X connect 12 0 9 0;
#X connect 12 1 11 0;
#X connect 14 0 12 0;
#X connect 15 0 18 0;
#X connect 16 0 12 0;
#X connect 17 0 16 0;
#X connect 18 0 19 0;
#X connect 18 1 5 1;
#X connect 18 2 14 1;
#X connect 19 0 5 0;
#X connect 20 0 19 1;
#X restore 65 70 pd record-on-loop-start;
#N canvas 0 243 517 442 play-record 0;
#X obj 23 177 s \$0-record;
#X obj 53 31 == 0;
#X obj 23 65 sel 0 1;
#X obj 23 31 f 0;
#X msg 132 -60 1;
#X msg 200 -60 0;
#X obj 132 -82 inlet play;
#X obj 200 -82 inlet record;
#X obj 23 -60 t b;
#X obj 23 -82 inlet;
#X floatatom 87 61 5 0 0 0 - - -;
#X obj 60 -82 inlet clear;
#X msg 60 -60 0;
#X obj 98 177 s \$0-play;
#X connect 1 0 3 1;
#X connect 2 0 0 0;
#X connect 2 1 13 0;
#X connect 3 0 1 0;
#X connect 3 0 2 0;
#X connect 3 0 10 0;
#X connect 4 0 3 0;
#X connect 5 0 3 0;
#X connect 6 0 4 0;
#X connect 7 0 5 0;
#X connect 8 0 3 0;
#X connect 9 0 8 0;
#X connect 11 0 12 0;
#X connect 12 0 3 1;
#X restore 339 -56 pd play-record;
#N canvas 898 153 822 654 stop-and-clear 0;
#X obj 32 564 outlet;
#X obj 31 52 sel 1 0;
#X obj 31 79 timer;
#X obj 32 292 route first second;
#X obj 32 247 list prepend first;
#X obj 32 270 list trim;
#X obj 31 124 moses 500;
#X text 396 54 converts sequences of 1 and 0 (pedal press and pedal
release) into the the milliseconds of the press.;
#X obj 155 188 s \$0-clear;
#X text 394 142 filter out long presses > 500 ms \, the command for
clearing the memory (long foot switch) and then deletes the memory.
;
#X text 393 412 detects the stop command (two short pedal presses in
a second) and sends the stop command;
#X obj 32 368 t f b;
#X obj 32 435 t f b;
#X obj 134 493 s \$0-switch;
#X obj 137 214 r \$0-switch;
#X msg 134 411 second;
#X msg 84 460 first;
#X msg 103 371 clear;
#X obj 32 407 pipe 500;
#X obj 84 347 t b b b;
#X obj 310 397 s \$0-stop;
#X obj 310 19 inlet stop;
#X obj 155 18 inlet clear;
#X obj 31 17 inlet float;
#X obj 82 146 moses 2000;
#X obj 233 18 inlet undo;
#X obj 233 188 s \$0-undo;
#X text 395 176 if the press is longer than 2 seconds then trigger
the undo.;
#X connect 1 0 2 0;
#X connect 1 1 2 1;
#X connect 2 0 6 0;
#X connect 3 0 11 0;
#X connect 3 1 19 0;
#X connect 4 0 5 0;
#X connect 5 0 3 0;
#X connect 6 0 4 0;
#X connect 6 1 24 0;
#X connect 11 0 18 0;
#X connect 11 1 15 0;
#X connect 12 0 0 0;
#X connect 12 1 16 0;
#X connect 14 0 4 1;
#X connect 15 0 13 0;
#X connect 16 0 13 0;
#X connect 17 0 18 0;
#X connect 18 0 12 0;
#X connect 19 0 16 0;
#X connect 19 1 17 0;
#X connect 19 2 20 0;
#X connect 21 0 20 0;
#X connect 22 0 8 0;
#X connect 23 0 1 0;
#X connect 24 0 8 0;
#X connect 24 1 26 0;
#X connect 25 0 26 0;
#X restore 339 -96 pd stop-and-clear;
#X text 16 -95 overdubbing;
#X obj 176 223 r \$0-clear;
#X msg 165 245 stop;
#X obj 165 202 r \$0-stop;
#X obj 355 404 r \$0-phrase;
#X msg 495 429 cleared;
#X obj 495 406 r \$0-clear;
#X text 354 382 DEBUG:;
#X msg 256 409 play;
#X obj 540 163 loadbang;
#X obj 540 186 \$0;
#X obj 540 236 s \$0-phrase;
#X msg 540 211 \$1-phrase0;
#X msg 123 401 set \$1;
#X obj 123 378 r \$0-phrase;
#N canvas 878 276 446 448 copy-to-phrase 1;
#X obj 15 14 r \$0-phrase;
#X msg 15 39 set \$1;
#X obj 122 166 tabplay~ \$0-temp;
#X obj 93 13 r \$0-burn-phrase;
#X msg 215 210 stop;
#X obj 182 292 delread~ \$0-buffer 200;
#X msg 182 268 20;
#X obj 93 115 del 20;
#X obj 132 68 tabplay~ \$0-phrase0;
#X obj 300 15 block~ 64 1 1;
#X obj 93 38 t b b b;
#X obj 94 327 tabwrite~ \$0-phrase0;
#X obj 94 139 t b b;
#X msg 251 211 const 0;
#X obj 251 234 s \$0-temp;
#X obj 132 92 delwrite~ \$0-buffer 25;
#X obj 215 187 t b b;
#X connect 0 0 1 0;
#X connect 1 0 11 0;
#X connect 1 0 8 0;
#X connect 2 0 11 0;
#X connect 2 1 16 0;
#X connect 3 0 10 0;
#X connect 4 0 11 0;
#X connect 5 0 11 0;
#X connect 6 0 5 0;
#X connect 7 0 12 0;
#X connect 8 0 15 0;
#X connect 10 0 7 0;
#X connect 10 1 6 0;
#X connect 10 2 8 0;
#X connect 12 0 11 0;
#X connect 12 1 2 0;
#X connect 13 0 14 0;
#X connect 16 0 4 0;
#X connect 16 1 13 0;
#X restore 541 -29 pd copy-to-phrase;
#X obj 65 131 tabwrite~ \$0-temp;
#X obj 339 -129 route float clear undo stop play record phrase;
#X obj 552 20 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X obj 552 42 s \$0-burn-phrase;
#X obj 65 462 tabread4~ \$0-temp;
#X connect 0 0 2 0;
#X connect 0 0 48 0;
#X connect 1 0 49 0;
#X connect 6 0 11 0;
#X connect 7 0 27 0;
#X connect 7 0 40 0;
#X connect 8 0 19 0;
#X connect 9 0 10 0;
#X connect 10 0 29 1;
#X connect 10 1 14 1;
#X connect 11 0 29 0;
#X connect 11 1 14 0;
#X connect 16 0 15 0;
#X connect 17 0 2 0;
#X connect 18 0 17 0;
#X connect 18 0 52 0;
#X connect 19 0 18 0;
#X connect 20 0 18 0;
#X connect 21 0 20 0;
#X connect 22 0 21 1;
#X connect 23 0 20 1;
#X connect 23 0 26 1;
#X connect 25 0 27 0;
#X connect 26 0 24 0;
#X connect 27 0 21 0;
#X connect 27 1 19 0;
#X connect 27 2 26 0;
#X connect 28 0 5 0;
#X connect 29 0 5 0;
#X connect 29 0 48 0;
#X connect 31 0 30 0;
#X connect 33 0 34 0;
#X connect 34 0 26 0;
#X connect 35 0 34 0;
#X connect 36 0 5 0;
#X connect 37 0 5 0;
#X connect 38 0 37 0;
#X connect 40 0 5 0;
#X connect 41 0 42 0;
#X connect 42 0 44 0;
#X connect 44 0 43 0;
#X connect 45 0 17 0;
#X connect 46 0 45 0;
#X connect 49 0 31 0;
#X connect 49 1 31 1;
#X connect 49 1 30 1;
#X connect 49 2 31 2;
#X connect 49 3 31 3;
#X connect 49 4 30 2;
#X connect 49 5 30 3;
#X connect 49 6 16 0;
#X connect 50 0 51 0;
#X connect 52 0 2 0;
#X coords 0 675 1 674 250 175 0;