-
Notifications
You must be signed in to change notification settings - Fork 22
/
vs-ilda-throw-gui.pd
322 lines (322 loc) · 9.99 KB
/
vs-ilda-throw-gui.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
#N canvas 361 24 651 494 10;
#X obj 101 118 cnv 15 300 80 empty empty empty 20 12 0 14 -233017 -66577
0;
#X obj 81 447 vs-ilda-throw;
#X obj 156 365 sig~;
#X obj 174 181 hsl 128 15 0 127 0 0 \$2/solid \$2/solid RGB_solid -2
-8 0 10 -4034 -1 -1 400 1;
#X obj 156 339 / 127;
#X obj 168 305 phasor~;
#X obj 105 133 nbx 5 14 -1e+37 1e+37 0 0 \$2/freq \$2/freq IntFreq
0 -8 0 10 -257985 -1 -1 500 256;
#X obj 280 132 nbx 5 14 -1e+37 1e+37 0 0 \$2/harmonic \$2/harmonic
Harmonic 0 -8 0 10 -4034 -1 -1 1 256;
#X msg 216 211 0;
#X msg 246 211 45;
#X msg 276 211 76;
#X obj 206 365 sig~;
#X obj 345 131 nbx 5 14 -1e+37 1e+37 0 0 \$2/phase \$2/phase Phase
0 -8 0 10 -4034 -1 -1 0 256;
#X obj 206 343 / 360;
#X text 494 397 Derek Holzer;
#X text 494 435 [email protected];
#X text 494 416 Helsinki May 2019;
#X obj 108 181 bng 15 250 50 0 empty empty R 4 -6 0 10 -258113 -1 -1
;
#X obj 128 181 bng 15 250 50 0 empty empty G 4 -6 0 10 -4034 -1 -1
;
#X obj 148 181 bng 15 250 50 0 empty empty B 4 -6 0 10 -4032 -1 -1
;
#X text 486 275 INLETS;
#X text 505 298 X signal;
#X text 505 318 Y signal;
#X text 505 358 RGB signal (0-1);
#X text 505 338 B signal (0-1);
#X obj 81 72 inlet~ X;
#X obj 141 72 inlet~ Y;
#X obj 201 72 inlet~ B;
#X obj 263 72 inlet~ RGB;
#X obj 244 131 bng 15 250 50 0 empty empty Reset 0 -8 0 10 -258113
-1 -1;
#X msg 207 283 0, f 4;
#X obj 208 151 hradio 15 1 0 4 \$2/source \$2/source Solid.Int.Ext.Master
65 8 0 10 -4034 -1 -1 1;
#X obj 170 131 nbx 5 14 -1e+37 1e+37 0 0 \$2/freq-100 \$2/freq-100
IntFreq/100 0 -8 0 10 -257985 -1 -1 25 256;
#X obj 168 242 sig~;
#X obj 177 282 sig~;
#X obj 177 261 / 100;
#N canvas 53 241 634 533 selector 0;
#X obj 533 36 inlet;
#X obj 59 209 *~;
#X obj 178 370 outlet~;
#X obj 280 36 r~ \$1-master;
#X obj 59 36 inlet~ solid;
#X obj 140 36 inlet~ int;
#X obj 364 36 inlet~ harm;
#X obj 444 36 inlet~ phase;
#X obj 140 209 *~;
#X obj 280 209 *~;
#X obj 178 263 *~;
#X obj 178 293 +~;
#X obj 178 325 wrap~;
#X obj 210 209 *~;
#X obj 210 36 inlet~ ext;
#X obj 533 61 select 0 1 2 3;
#X msg 533 84 0;
#X msg 543 104 1;
#X msg 553 124 0;
#X msg 563 144 1;
#X msg 573 84 0;
#X msg 583 104 1;
#X msg 593 124 0;
#X msg 603 144 1;
#X connect 0 0 15 0;
#X connect 1 0 2 0;
#X connect 3 0 9 0;
#X connect 4 0 1 0;
#X connect 5 0 8 0;
#X connect 6 0 10 1;
#X connect 7 0 11 1;
#X connect 8 0 10 0;
#X connect 9 0 10 0;
#X connect 10 0 11 0;
#X connect 11 0 12 0;
#X connect 12 0 2 0;
#X connect 13 0 10 0;
#X connect 14 0 13 0;
#X connect 15 0 16 0;
#X connect 15 0 17 0;
#X connect 15 1 18 0;
#X connect 15 1 19 0;
#X connect 15 2 20 0;
#X connect 15 2 21 0;
#X connect 15 3 22 0;
#X connect 15 3 23 0;
#X connect 16 0 9 1;
#X connect 16 0 13 1;
#X connect 16 0 8 1;
#X connect 17 0 1 1;
#X connect 18 0 9 1;
#X connect 18 0 1 1;
#X connect 18 0 13 1;
#X connect 19 0 8 1;
#X connect 20 0 9 1;
#X connect 20 0 8 1;
#X connect 20 0 1 1;
#X connect 21 0 13 1;
#X connect 22 0 13 1;
#X connect 22 0 8 1;
#X connect 22 0 1 1;
#X connect 23 0 9 1;
#X restore 156 391 pd selector;
#X obj 193 323 sig~;
#X text 221 231 R;
#X text 250 230 G;
#X text 281 231 B;
#X obj 439 9 savestate;
#X obj 490 80 f;
#X obj 513 100 f;
#X obj 529 123 f;
#X obj 544 142 f;
#X obj 530 80 f;
#X obj 553 100 f;
#X obj 258 330 kollabs/ds_reg \$1 \$2/freq;
#X obj 258 350 kollabs/ds_reg \$1 \$2/freq-100;
#X obj 258 370 kollabs/ds_reg \$1 \$2/harmonic;
#X obj 258 390 kollabs/ds_reg \$1 \$2/phase;
#X obj 258 410 kollabs/ds_reg \$1 \$2/source;
#X obj 258 430 kollabs/ds_reg \$1 \$2/solid;
#X obj 339 179 hradio 15 1 0 2 \$2/offon \$2/offon Off.On -5 -8 0 10
-258113 -1 -1 1;
#X obj 258 450 kollabs/ds_reg \$1 \$2/offon;
#X obj 490 48 t b b b b b b b;
#X obj 490 163 pack 0 0 0 0 0 0 0;
#X obj 441 188 unpack 0 0 0 0 0 0 0;
#X obj 583 100 f;
#X obj 153 24 loadbang;
#X obj 257 32 r \$1-reset-phase;
#X obj 19 257 catch~ \$1-master;
#X obj 19 316 s~ \$1-master;
#X obj 156 420 *~;
#X obj 131 420 *~;
#X obj 106 420 *~;
#X obj 81 420 *~;
#X obj 378 179 bng 15 250 50 0 empty empty ? 17 7 0 10 -4032 -1 -1
;
#X obj 378 277 s pd-\$2-help;
#X msg 378 255 vis 1;
#N canvas 262 23 685 670 \$2-help 0;
#X obj 37 28 cnv 15 300 130 empty empty HELP:vs-ilda-gui 20 12 0 14
-4034 -66577 0;
#N canvas 0 23 450 300 HARDWARE 0;
#X text 19 26 Requires DC coupled \, 8 channel \, balanced audio interface
such as MOTU. For channel converter info see:;
#X text 18 60 https://github.com/ffd8/dac_ilda/raw/master/dac_ilda_adaptor.pdf
;
#X text 20 97 Or see "ilda-connections.png" in this library;
#X restore 158 495 pd HARDWARE REQUIREMENTS;
#N canvas 0 23 450 300 RGB 0;
#X text 39 68 RGB minimums and curves help you calibrate the brightness
of your laser to adjust point where diode turns on as well as avoid
total "whiteout" saturation.;
#X text 40 24 NOTE: this set of patches was tested on a KVANT Clubmax
2000 \, the given RGB values may be different on your laser!;
#X text 38 126 You can adjust the phase of modulating signals where
the colors come in \, by looking at the [vs-ilda-rgb] object inside
[vs-ilda-throw].;
#X text 36 181 The [vs-ilda] abstraction conatains a "scan-fail" subpatch
\, which 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 restore 158 540 pd RGB CALIBRATION;
#N canvas 0 23 450 300 IMAGE 0;
#X text 41 151 Use Rotation X Y Z controls to keystone \, flip \, and
align the laser image. Numbers are 0-360 degrees.;
#X text 41 21 Use Scale X Y controls to adjust the horizontal and vertical
size of the laser image. Numbers are in percent.;
#X text 41 61 Use Offset X Y controls to adjust the horizontal and
vertical position of the laser image. Numbers are in percent.;
#X text 41 114 Use Clip X Y controls to adjust the horizontal and vertical
limits of the laser image. Numbers are in percent.;
#X text 41 191 Use Cutoff Frequency control to apply filter to the
X Y signals before they are sent to the laser. This can offer some
basic protection for your laser galvos against sudden changes. A good
starting value would be 2K to 4K Hz \, dependong on your galvo speed
(20-40 kpps). Numbers are in Herz.;
#X restore 158 565 pd IMAGE CALIBRATION;
#N canvas 0 23 450 300 AUDIO 0;
#X text 31 51 Channels 7 and 8 of your audio interface give a stereo
mixdown of the X and Y channels \, amplitude modulated by the brightness
signal \, with a lowpass filter on the speed of the amplitude modulation
set by the Cutoff Frequency. The Audio Volume control adjusts the level
of this signal \, with numbers given in dB.;
#X restore 158 589 pd AUDIO OUTPUT;
#X text 113 466 READ THESE FOR MORE INFO:;
#N canvas 0 23 450 300 [VS-ILDA] 0;
#X text 58 45 1) X;
#X text 58 65 2) Y;
#X text 58 105 4) Red;
#X text 58 125 5) Green;
#X text 58 145 6) Blue;
#X text 58 165 7) Left Audio;
#X text 58 185 8) Right Audio;
#X text 27 21 Vector Synthesis ILDA channels:;
#X text 58 85 3) Brightness (not normally used);
#X restore 158 516 pd [VS-ILDA] OUTPUT CHANNELS;
#X text 44 177 INSTRUCTIONS FOR USE:;
#X text 74 203 Put one [vs-ilda-throw-gui] inside any patch you want
to send to your ILDA RGB laser. It will send the X \, Y \, brightness
\, and RGB values to the [vs-ilda-gui] abstraction. You can then switch
on and off those patches as needed.;
#X text 73 262 A single [vs-ilda-gui] is required to communicate with
your audio interface and from there to your laser. Put it in your master
patch. Use the same first creation argument to match up the [vs-ilda-throw-gui]
objects and the [vs-ilda-gui].;
#X text 77 328 EXAMPLE:;
#X text 110 354 [vs-ilda-throw-gui \$0 \$0-laserone];
#X text 110 374 [vs-ilda-throw-gui \$0 \$0-lasertwo];
#X text 110 394 [vs-ilda-throw-gui \$0 \$0-laserthree];
#X text 110 424 [vs-ilda-gui \$0 \$0-lasermaster];
#X text 57 55 INLETS:;
#X text 81 70 1) X;
#X text 81 90 2) Y;
#X text 375 532 Derek Holzer;
#X text 375 581 [email protected];
#X text 375 556 Santa Cruz de Tenerife May 2019;
#X text 81 130 4) RGB;
#X text 81 110 3) Brightness;
#X restore 378 299 pd \$2-help;
#X obj 105 152 bng 15 250 50 0 empty empty RESET_PHASES 17 7 0 10 -258113
-1 -1;
#X obj 12 225 s \$1-reset-phase;
#X obj 339 225 outlet switch;
#X obj 286 253 r \$2/solid;
#X obj 286 273 r \$2/source;
#X obj 286 295 r \$2/offon;
#X obj 27 405 switch~;
#X connect 2 0 36 0;
#X connect 4 0 2 0;
#X connect 5 0 36 1;
#X connect 6 0 33 0;
#X connect 6 0 42 1;
#X connect 7 0 37 0;
#X connect 7 0 44 1;
#X connect 8 0 3 0;
#X connect 9 0 3 0;
#X connect 10 0 3 0;
#X connect 11 0 36 4;
#X connect 12 0 13 0;
#X connect 12 0 45 1;
#X connect 13 0 11 0;
#X connect 17 0 8 0;
#X connect 18 0 9 0;
#X connect 19 0 10 0;
#X connect 25 0 67 0;
#X connect 26 0 66 0;
#X connect 27 0 65 0;
#X connect 28 0 36 2;
#X connect 29 0 30 0;
#X connect 30 0 5 1;
#X connect 32 0 35 0;
#X connect 32 0 43 1;
#X connect 33 0 5 0;
#X connect 34 0 5 0;
#X connect 35 0 34 0;
#X connect 36 0 64 0;
#X connect 37 0 36 3;
#X connect 41 0 58 0;
#X connect 41 1 56 0;
#X connect 42 0 57 0;
#X connect 43 0 57 1;
#X connect 44 0 57 2;
#X connect 45 0 57 3;
#X connect 46 0 57 4;
#X connect 47 0 57 5;
#X connect 54 0 78 0;
#X connect 56 0 42 0;
#X connect 56 1 43 0;
#X connect 56 2 44 0;
#X connect 56 3 45 0;
#X connect 56 4 46 0;
#X connect 56 5 47 0;
#X connect 56 6 59 0;
#X connect 57 0 41 0;
#X connect 58 0 6 0;
#X connect 58 1 32 0;
#X connect 58 2 7 0;
#X connect 58 3 12 0;
#X connect 58 4 31 0;
#X connect 58 5 3 0;
#X connect 58 6 54 0;
#X connect 59 0 57 6;
#X connect 60 0 6 0;
#X connect 60 0 54 0;
#X connect 60 0 32 0;
#X connect 60 0 31 0;
#X connect 60 0 29 0;
#X connect 60 0 12 0;
#X connect 60 0 7 0;
#X connect 60 0 3 0;
#X connect 61 0 29 0;
#X connect 62 0 63 0;
#X connect 64 0 1 3;
#X connect 65 0 1 2;
#X connect 66 0 1 1;
#X connect 67 0 1 0;
#X connect 68 0 70 0;
#X connect 70 0 69 0;
#X connect 72 0 73 0;
#X connect 75 0 4 0;
#X connect 75 0 47 1;
#X connect 76 0 36 5;
#X connect 76 0 46 1;
#X connect 77 0 64 1;
#X connect 77 0 67 1;
#X connect 77 0 66 1;
#X connect 77 0 65 1;
#X connect 77 0 59 1;
#X connect 77 0 74 0;
#X coords 0 -1 1 1 302 100 1 100 100;