-
Notifications
You must be signed in to change notification settings - Fork 22
/
vs-ilda.pd
550 lines (550 loc) · 12.9 KB
/
vs-ilda.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
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
#N canvas 0 23 1280 751 10;
#X text 579 585 Derek Holzer;
#X text 579 623 [email protected];
#X obj 36 437 clip~ -1 1;
#X obj 52 456 clip~ -1 1;
#X obj 394 441 *~;
#X obj 423 442 *~;
#X obj 394 518 clip~ -1 1;
#X obj 422 536 clip~ -1 1;
#X obj 437 405 *~;
#X obj 437 329 lop~;
#X obj 437 309 lop~;
#X obj 437 349 lop~;
#X obj 437 369 lop~;
#N canvas 0 23 450 300 lowpassfilters 0;
#X obj 144 53 inlet~ X;
#X obj 235 53 inlet~ Y;
#X obj 144 89 lop~;
#X obj 235 89 lop~;
#X obj 144 119 lop~;
#X obj 235 119 lop~;
#X obj 144 149 lop~;
#X obj 235 149 lop~;
#X obj 144 179 lop~;
#X obj 235 179 lop~;
#X obj 144 223 outlet~ X;
#X obj 235 223 outlet~ Y;
#X obj 325 53 inlet cutoff;
#X connect 0 0 2 0;
#X connect 1 0 3 0;
#X connect 2 0 4 0;
#X connect 3 0 5 0;
#X connect 4 0 6 0;
#X connect 5 0 7 0;
#X connect 6 0 8 0;
#X connect 7 0 9 0;
#X connect 8 0 10 0;
#X connect 9 0 11 0;
#X connect 12 0 3 1;
#X connect 12 0 9 1;
#X connect 12 0 8 1;
#X connect 12 0 7 1;
#X connect 12 0 6 1;
#X connect 12 0 5 1;
#X connect 12 0 4 1;
#X connect 12 0 2 1;
#X restore 35 363 pd lowpassfilters;
#X obj 788 13 inlet clipX;
#X obj 823 37 inlet clipY;
#X obj 568 14 inlet scaleX;
#X obj 606 34 inlet scaleY;
#X obj 668 13 inlet offsetX;
#X obj 703 37 inlet offsetY;
#X obj 1026 37 inlet cutoff;
#X obj 36 628 dac~ 1 2 3 4 5 6 7 8;
#X obj 788 107 * -1;
#X obj 823 136 * -1;
#X obj 36 69 *~;
#X obj 93 87 *~;
#X obj 394 471 hip~ 20;
#X obj 422 491 hip~ 20;
#X obj 568 109 sig~;
#X obj 606 139 sig~;
#X obj 668 109 sig~;
#X obj 703 139 sig~;
#X obj 888 13 inlet rotateX;
#X obj 926 37 inlet rotateY;
#X obj 983 13 inlet rotateZ;
#X obj 35 270 vs-rotate, f 30;
#X obj 35 314 vs-projector, f 24;
#X obj 888 69 / 360;
#X obj 926 69 / 360;
#X obj 983 69 / 360;
#X obj 788 61 / 100;
#X obj 823 86 / 100;
#X obj 568 59 / 100;
#X obj 606 89 / 100;
#X obj 668 59 / 100;
#X obj 703 89 / 100;
#X obj 1026 70 f;
#X obj 453 59 dbtorms;
#X obj 453 79 pack 0 50;
#X obj 453 109 line~;
#X obj 453 15 inlet audio_gain;
#X obj 176 291 sig~ 1;
#X obj 36 129 +~;
#X obj 93 147 +~;
#N canvas 32 345 894 429 rgb 0;
#X obj 29 137 *~ 20000;
#X obj 149 177 *~ 20000;
#X obj 269 217 *~ 20000;
#X obj 29 278 vs-rescale~ 0 1 0 0;
#X obj 149 278 vs-rescale~ 0 1 0 0;
#X obj 269 278 vs-rescale~ 0 1 0 0;
#X obj 29 26 inlet~ R;
#X obj 89 26 inlet~ G;
#X obj 149 26 inlet~ B;
#X obj 317 26 inlet Rmin;
#X obj 386 26 inlet Gmin;
#X obj 454 26 inlet Bmin;
#X obj 206 26 inlet~ brightness;
#X obj 317 51 sig~;
#X obj 386 51 sig~;
#X obj 454 51 sig~;
#X obj 29 346 outlet~ R;
#X obj 149 346 outlet~ G;
#X obj 269 346 outlet~ B;
#X text 639 312 Derek Holzer;
#X text 639 350 [email protected];
#X text 639 331 Santa Barbara MAR 2019;
#N canvas 480 52 578 604 curveR 0;
#X msg 54 82 bang;
#X obj 54 103 until;
#X text 85 82 start;
#X obj 54 125 f;
#X obj 83 125 + 1;
#X obj 54 43 loadbang;
#X obj 54 180 trigger float float;
#X obj 127 127 select 0;
#X obj 138 9 inlet;
#X obj 153 32 send \$0-to-numbox;
#X obj 139 53 trigger bang float;
#X text 96 257 mapping output range: 0 to 1;
#X obj 54 257 / 20000;
#X obj 83 147 mod 20000;
#N canvas 0 22 450 300 (subpatch) 0;
#X array \$0-curveR 20000 float 0;
#X coords 0 1 19999 0 200 200 1 0 0;
#X restore 295 70 graph;
#N canvas 304 201 450 300 draw_curve 0;
#X obj 106 325 pow 1;
#X obj 62 10 inlet;
#X obj 257 9 inlet;
#X obj 106 405 outlet;
#X obj 271 243 exp;
#X msg 287 177 2;
#X obj 287 198 log;
#X obj 271 221 *;
#X obj 62 248 moses 0;
#X obj 62 283 * -1;
#X obj 62 325 pow 1;
#X obj 62 352 * -1;
#X obj 257 155 t f b;
#X obj 257 119 * 10;
#X connect 0 0 3 0;
#X connect 1 0 8 0;
#X connect 2 0 13 0;
#X connect 4 0 0 1;
#X connect 4 0 10 1;
#X connect 5 0 6 0;
#X connect 6 0 7 1;
#X connect 7 0 4 0;
#X connect 8 0 9 0;
#X connect 8 1 0 0;
#X connect 9 0 10 0;
#X connect 10 0 11 0;
#X connect 11 0 3 0;
#X connect 12 0 7 0;
#X connect 12 1 5 0;
#X connect 13 0 12 0;
#X restore 54 287 pd draw_curve;
#X obj 53 313 tabwrite \$0-curveR;
#X connect 0 0 1 0;
#X connect 1 0 3 0;
#X connect 3 0 4 0;
#X connect 3 0 6 0;
#X connect 4 0 13 0;
#X connect 5 0 0 0;
#X connect 6 0 12 0;
#X connect 6 1 16 1;
#X connect 7 0 1 1;
#X connect 8 0 9 0;
#X connect 8 0 10 0;
#X connect 10 0 0 0;
#X connect 10 1 15 1;
#X connect 12 0 15 0;
#X connect 13 0 3 1;
#X connect 13 0 7 0;
#X connect 15 0 16 0;
#X restore 522 51 pd curveR;
#N canvas 480 52 578 604 curveG 0;
#X msg 54 82 bang;
#X obj 54 103 until;
#X text 85 82 start;
#X obj 54 125 f;
#X obj 83 125 + 1;
#X obj 54 43 loadbang;
#X obj 54 180 trigger float float;
#X obj 127 127 select 0;
#X obj 138 9 inlet;
#X obj 153 32 send \$0-to-numbox;
#X obj 139 53 trigger bang float;
#X text 96 257 mapping output range: 0 to 1;
#X obj 54 257 / 20000;
#X obj 83 147 mod 20000;
#N canvas 0 22 450 300 (subpatch) 0;
#X array \$0-curveG 20000 float 0;
#X coords 0 1 19999 0 200 200 1 0 0;
#X restore 295 70 graph;
#N canvas 304 201 450 300 draw_curve 0;
#X obj 106 325 pow 1;
#X obj 62 10 inlet;
#X obj 257 9 inlet;
#X obj 106 405 outlet;
#X obj 271 243 exp;
#X msg 287 177 2;
#X obj 287 198 log;
#X obj 271 221 *;
#X obj 62 248 moses 0;
#X obj 62 283 * -1;
#X obj 62 325 pow 1;
#X obj 62 352 * -1;
#X obj 257 155 t f b;
#X obj 257 119 * 10;
#X connect 0 0 3 0;
#X connect 1 0 8 0;
#X connect 2 0 13 0;
#X connect 4 0 0 1;
#X connect 4 0 10 1;
#X connect 5 0 6 0;
#X connect 6 0 7 1;
#X connect 7 0 4 0;
#X connect 8 0 9 0;
#X connect 8 1 0 0;
#X connect 9 0 10 0;
#X connect 10 0 11 0;
#X connect 11 0 3 0;
#X connect 12 0 7 0;
#X connect 12 1 5 0;
#X connect 13 0 12 0;
#X restore 54 287 pd draw_curve;
#X obj 53 313 tabwrite \$0-curveG;
#X connect 0 0 1 0;
#X connect 1 0 3 0;
#X connect 3 0 4 0;
#X connect 3 0 6 0;
#X connect 4 0 13 0;
#X connect 5 0 0 0;
#X connect 6 0 12 0;
#X connect 6 1 16 1;
#X connect 7 0 1 1;
#X connect 8 0 9 0;
#X connect 8 0 10 0;
#X connect 10 0 0 0;
#X connect 10 1 15 1;
#X connect 12 0 15 0;
#X connect 13 0 3 1;
#X connect 13 0 7 0;
#X connect 15 0 16 0;
#X restore 601 51 pd curveG;
#N canvas 480 52 578 604 curveB 0;
#X msg 54 82 bang;
#X obj 54 103 until;
#X text 85 82 start;
#X obj 54 125 f;
#X obj 83 125 + 1;
#X obj 54 43 loadbang;
#X obj 54 180 trigger float float;
#X obj 127 127 select 0;
#X obj 138 9 inlet;
#X obj 153 32 send \$0-to-numbox;
#X obj 139 53 trigger bang float;
#X text 96 257 mapping output range: 0 to 1;
#X obj 54 257 / 20000;
#X obj 83 147 mod 20000;
#N canvas 0 22 450 300 (subpatch) 0;
#X array \$0-curveB 20000 float 0;
#X coords 0 1 19999 0 200 200 1 0 0;
#X restore 295 70 graph;
#N canvas 304 201 450 300 draw_curve 0;
#X obj 106 325 pow 1;
#X obj 62 10 inlet;
#X obj 257 9 inlet;
#X obj 106 405 outlet;
#X obj 271 243 exp;
#X msg 287 177 2;
#X obj 287 198 log;
#X obj 271 221 *;
#X obj 62 248 moses 0;
#X obj 62 283 * -1;
#X obj 62 325 pow 1;
#X obj 62 352 * -1;
#X obj 257 155 t f b;
#X obj 257 119 * 10;
#X connect 0 0 3 0;
#X connect 1 0 8 0;
#X connect 2 0 13 0;
#X connect 4 0 0 1;
#X connect 4 0 10 1;
#X connect 5 0 6 0;
#X connect 6 0 7 1;
#X connect 7 0 4 0;
#X connect 8 0 9 0;
#X connect 8 1 0 0;
#X connect 9 0 10 0;
#X connect 10 0 11 0;
#X connect 11 0 3 0;
#X connect 12 0 7 0;
#X connect 12 1 5 0;
#X connect 13 0 12 0;
#X restore 54 287 pd draw_curve;
#X obj 53 313 tabwrite \$0-curveB;
#X connect 0 0 1 0;
#X connect 1 0 3 0;
#X connect 3 0 4 0;
#X connect 3 0 6 0;
#X connect 4 0 13 0;
#X connect 5 0 0 0;
#X connect 6 0 12 0;
#X connect 6 1 16 1;
#X connect 7 0 1 1;
#X connect 8 0 9 0;
#X connect 8 0 10 0;
#X connect 10 0 0 0;
#X connect 10 1 15 1;
#X connect 12 0 15 0;
#X connect 13 0 3 1;
#X connect 13 0 7 0;
#X connect 15 0 16 0;
#X restore 680 51 pd curveB;
#X obj 522 26 inlet Rcurve;
#X obj 601 26 inlet Gcurve;
#X obj 680 26 inlet Bcurve;
#X obj 29 313 clip~ 0 1;
#X obj 149 313 clip~ 0 1;
#X obj 269 313 clip~ 0 1;
#X obj 29 156 tabread~ \$0-curveR;
#X obj 149 196 tabread~ \$0-curveG;
#X obj 269 236 tabread~ \$0-curveB;
#X connect 0 0 31 0;
#X connect 1 0 32 0;
#X connect 2 0 33 0;
#X connect 3 0 28 0;
#X connect 4 0 29 0;
#X connect 5 0 30 0;
#X connect 6 0 0 0;
#X connect 7 0 1 0;
#X connect 8 0 2 0;
#X connect 9 0 13 0;
#X connect 10 0 14 0;
#X connect 11 0 15 0;
#X connect 12 0 3 4;
#X connect 12 0 4 4;
#X connect 12 0 5 4;
#X connect 13 0 3 3;
#X connect 14 0 4 3;
#X connect 15 0 5 3;
#X connect 25 0 22 0;
#X connect 26 0 23 0;
#X connect 27 0 24 0;
#X connect 28 0 16 0;
#X connect 29 0 17 0;
#X connect 30 0 18 0;
#X connect 31 0 3 0;
#X connect 32 0 4 0;
#X connect 33 0 5 0;
#X restore 181 462 pd rgb;
#X f 20;
#X obj 1078 11 inlet Rmin;
#X obj 1117 37 inlet Gmin;
#X obj 1156 11 inlet Bmin;
#X obj 1191 37 inlet Rcurve;
#X obj 1228 11 inlet Gcurve;
#X obj 1274 37 inlet Bcurve;
#N canvas 105 23 690 413 scan_fail_(open_to_adjust_settings) 0;
#X obj 217 23 inlet~ R;
#X obj -25 23 inlet~ X+Y;
#X obj 352 120 >;
#X obj 217 181 *~;
#X obj 277 199 *~;
#X obj 337 221 *~;
#X obj 367 74 nbx 5 14 0 100 0 1 empty empty Scan_fail_threshold_in_dB
60 8 0 10 -4034 -1 -1 30 256;
#X obj 277 23 inlet~ G;
#X obj 337 23 inlet~ B;
#X text 426 99 Analysis window size in samples;
#X obj 217 260 outlet~ R;
#X obj 277 260 outlet~ G;
#X obj 337 260 outlet~ B;
#X text 511 308 Derek Holzer;
#X text 511 346 [email protected];
#X text 511 327 Santa Barbara MAR 2019;
#X obj 352 140 sig~;
#X text 36 291 This patch analyzes the combined level of the X and
Y axes. If that level falls under a certain threshold in dB \, within
the window size in samples (compare with current sample rate to find
time in ms) \, then the RGB chanels are all shut off to prevent an
unmoving laser beam from posing a safety hazard.;
#X obj 103 23 inlet~ Brightness;
#X obj 103 154 *~;
#X obj 103 260 outlet~ Brightness;
#X obj -25 45 hip~ 10;
#X obj 44 45 hip~ 10;
#X obj 44 23 inlet~ Y;
#X obj 44 66 env~ 1920;
#X obj 10 108 +;
#X obj -25 66 env~ 1920;
#X connect 0 0 3 0;
#X connect 1 0 21 0;
#X connect 2 0 16 0;
#X connect 3 0 10 0;
#X connect 4 0 11 0;
#X connect 5 0 12 0;
#X connect 6 0 2 1;
#X connect 7 0 4 0;
#X connect 8 0 5 0;
#X connect 16 0 3 1;
#X connect 16 0 5 1;
#X connect 16 0 4 1;
#X connect 16 0 19 1;
#X connect 18 0 19 0;
#X connect 19 0 20 0;
#X connect 21 0 26 0;
#X connect 23 0 22 0;
#X connect 24 0 25 1;
#X connect 25 0 2 0;
#X connect 26 0 25 0;
#X restore 69 491 pd scan_fail_(open_to_adjust_settings);
#X obj 1078 67 / 100;
#X obj 1117 67 / 100;
#X obj 1156 67 / 100;
#X obj 36 15 catch~ X;
#X obj 93 15 catch~ Y;
#X obj 149 15 catch~ B;
#X obj 204 15 catch~ Red;
#X obj 271 15 catch~ Green;
#X obj 350 15 catch~ Blue;
#X obj 983 151 pack 0 10;
#X obj 926 121 pack 0 10;
#X obj 888 151 pack 0 10;
#X obj 888 219 line~;
#X obj 926 219 line~;
#X obj 983 219 line~;
#X obj 624 453 outlet~ x;
#X obj 685 453 outlet~ y;
#X obj 1318 11 inlet brightness;
#X obj 176 200 *~;
#X obj 1267 224 clip 0 1;
#X obj 1319 81 / 100;
#X obj 1267 263 sig~;
#X text 579 604 Helsinki November 2019;
#X obj 758 453 outlet~ b;
#X obj 759 422 *~;
#X connect 2 0 21 0;
#X connect 2 0 4 0;
#X connect 2 0 77 0;
#X connect 2 0 61 0;
#X connect 3 0 21 1;
#X connect 3 0 5 0;
#X connect 3 0 78 0;
#X connect 3 0 61 1;
#X connect 4 0 26 0;
#X connect 5 0 27 0;
#X connect 6 0 21 6;
#X connect 7 0 21 7;
#X connect 8 0 4 1;
#X connect 8 0 5 1;
#X connect 9 0 11 0;
#X connect 10 0 9 0;
#X connect 11 0 12 0;
#X connect 12 0 8 0;
#X connect 13 0 2 0;
#X connect 13 1 3 0;
#X connect 14 0 40 0;
#X connect 15 0 41 0;
#X connect 16 0 42 0;
#X connect 17 0 43 0;
#X connect 18 0 44 0;
#X connect 19 0 45 0;
#X connect 20 0 46 0;
#X connect 22 0 2 1;
#X connect 23 0 3 1;
#X connect 24 0 52 0;
#X connect 25 0 53 0;
#X connect 26 0 6 0;
#X connect 27 0 7 0;
#X connect 28 0 24 1;
#X connect 29 0 25 1;
#X connect 30 0 52 1;
#X connect 31 0 53 1;
#X connect 32 0 37 0;
#X connect 33 0 38 0;
#X connect 34 0 39 0;
#X connect 35 0 36 0;
#X connect 35 1 36 1;
#X connect 35 2 36 2;
#X connect 36 0 13 0;
#X connect 36 1 13 1;
#X connect 37 0 73 0;
#X connect 38 0 72 0;
#X connect 39 0 71 0;
#X connect 40 0 22 0;
#X connect 40 0 2 2;
#X connect 41 0 23 0;
#X connect 41 0 3 2;
#X connect 42 0 28 0;
#X connect 43 0 29 0;
#X connect 44 0 30 0;
#X connect 45 0 31 0;
#X connect 46 0 10 1;
#X connect 46 0 9 1;
#X connect 46 0 11 1;
#X connect 46 0 12 1;
#X connect 46 0 13 2;
#X connect 47 0 48 0;
#X connect 48 0 49 0;
#X connect 49 0 8 1;
#X connect 50 0 47 0;
#X connect 51 0 36 4;
#X connect 51 0 36 7;
#X connect 52 0 35 0;
#X connect 53 0 35 1;
#X connect 54 0 61 3;
#X connect 54 1 61 4;
#X connect 54 2 61 5;
#X connect 55 0 62 0;
#X connect 56 0 63 0;
#X connect 57 0 64 0;
#X connect 58 0 54 7;
#X connect 59 0 54 8;
#X connect 60 0 54 9;
#X connect 61 0 21 2;
#X connect 61 0 86 0;
#X connect 61 1 21 3;
#X connect 61 2 21 4;
#X connect 61 3 21 5;
#X connect 62 0 54 4;
#X connect 63 0 54 5;
#X connect 64 0 54 6;
#X connect 65 0 24 0;
#X connect 66 0 25 0;
#X connect 67 0 10 0;
#X connect 67 0 61 2;
#X connect 67 0 80 0;
#X connect 68 0 54 0;
#X connect 69 0 54 1;
#X connect 70 0 54 2;
#X connect 71 0 76 0;
#X connect 72 0 75 0;
#X connect 73 0 74 0;
#X connect 74 0 35 4;
#X connect 75 0 35 5;
#X connect 76 0 35 6;
#X connect 79 0 82 0;
#X connect 80 0 54 3;
#X connect 81 0 83 0;
#X connect 82 0 81 0;
#X connect 83 0 80 1;
#X connect 83 0 86 1;
#X connect 86 0 85 0;