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 438 30 551 597 12;
#N canvas 148 3 740 669 vframe 0;
#X obj 34 275 fs.frame;
#X obj 55 377 vimport;
#X obj 221 427 fs.frame;
#X msg 244 398 320x240;
#X msg 253 178 bang;
#X text 302 176 set vframe to import to;
#X text 26 509 Connect vframe directly to fs.frame to display it with
a bang.;
#X msg 253 206 bang;
#X text 302 198 import image \, and bang vframe again to display it
;
#X obj 150 331 vframe 640 480;
#X msg 34 245 320x240 \, noize \, colortv;
#X text 26 553 Here \, vframe is bigger (640x480) than the two fs.frames
(320x240). This is okay - as long as the fs.frames you import from
and to are of the same size \, the image will be right. If you import
to fs.frame of a different size than the fs.frame you imported from
-> garbage.;
#X msg 349 423 dock vframe \, 330+260;
#X obj 34 220 init;
#X obj 244 373 init;
#X text 17 14 vframe works much like fs.frame \, except the image is
in Pure Data's memory space. This allows converting images to signals
\, for example.;
#X text 16 74 args: width and height.;
#X text 18 103 vframe has no image loading or display functionality.
Images can be imported to and from fs.frame:;
#X connect 0 0 1 0;
#X connect 3 0 2 0;
#X connect 4 0 9 0;
#X connect 7 0 0 0;
#X connect 7 0 9 0;
#X connect 9 0 1 1;
#X connect 9 0 2 0;
#X connect 10 0 0 0;
#X connect 12 0 2 0;
#X connect 13 0 10 0;
#X connect 14 0 3 0;
#X restore 64 216 pd vframe;
#X obj 67 122 fs.main;
#X msg 67 86 6001;
#X text 160 215 basic image container;
#N canvas 256 206 620 420 vplugin 0;
#X obj 94 226 vframe;
#X obj 143 156 vplugin;
#X text 13 10 vframe can execute Framestein-plugins. vplugin has the
path to these plugins - open it up \, correct the path \, and try it.
;
#X msg 161 99 noize;
#X msg 218 99 colortv;
#X obj 94 286 fs.frame;
#X msg 201 240 dock vplugin \, 200+235;
#X connect 0 0 5 0;
#X connect 1 0 0 0;
#X connect 3 0 1 0;
#X connect 4 0 1 0;
#X connect 6 0 5 0;
#X restore 64 262 pd vplugin;
#X text 158 261 execute Framestein-plugins;
#N canvas 187 -3 642 679 vcopy 0;
#X obj 87 204 vcopy;
#X msg 240 145 tile \$1;
#X floatatom 240 116 5 0 0;
#X floatatom 240 176 5 0 0;
#X msg 240 201 xbend \$1;
#X obj 87 341 fs.frame;
#X obj 114 61 r vcopyexample;
#X obj 87 129 vref;
#X msg 87 98 bang;
#X floatatom 97 159 5 0 0;
#X msg 167 341 320x240;
#X obj 87 294 vframe 320 240;
#X msg 240 283 xbend \$1 \$2;
#X obj 240 258 pack f f;
#X floatatom 240 233 5 0 0;
#X floatatom 299 233 5 0 0;
#X msg 311 259 bang;
#X obj 386 201 random 320;
#X obj 386 227 random 320;
#X floatatom 386 113 5 0 0;
#X msg 118 379 dock vcopy \, 90+400;
#X text 17 9 Some plugins operate on two images. This is done with
vcopy:;
#X obj 167 315 init;
#X obj 386 139 fps 0.25;
#X connect 0 0 11 0;
#X connect 1 0 0 1;
#X connect 1 0 8 0;
#X connect 2 0 1 0;
#X connect 3 0 4 0;
#X connect 4 0 0 1;
#X connect 4 0 8 0;
#X connect 6 0 7 1;
#X connect 7 0 0 0;
#X connect 7 0 9 0;
#X connect 8 0 7 0;
#X connect 10 0 5 0;
#X connect 11 0 5 0;
#X connect 12 0 0 1;
#X connect 12 0 8 0;
#X connect 13 0 12 0;
#X connect 14 0 13 0;
#X connect 15 0 13 1;
#X connect 15 0 16 0;
#X connect 16 0 13 0;
#X connect 17 0 14 0;
#X connect 18 0 15 0;
#X connect 19 0 23 0;
#X connect 20 0 5 0;
#X connect 22 0 10 0;
#X connect 23 0 17 0;
#X connect 23 0 18 0;
#X restore 64 310 pd vcopy;
#X text 159 309 execute plugins that use two images;
#N canvas 148 7 833 572 vsig~ 0;
#X text 14 9 vsig~: convert image to signal;
#X obj 201 140 vframe;
#X obj 209 182 vsig~;
#X obj 209 446 vsnapshot~;
#X obj 257 185 bng 15 250 50 0 empty empty empty 20 8 0 8 -262144 -1
-1;
#X obj 201 109 vplugin;
#X obj 284 413 vframe;
#X msg 201 75 noize \, colortv;
#X msg 378 99 \; pd dsp 1;
#X obj 209 485 fs.frame;
#X msg 284 387 bang;
#X text 402 204 - image signal;
#X text 403 228 - sync signal;
#X text 403 253 - bang when bottomright of image is reached;
#X text 383 302 vsnapshot~ inlets:;
#X text 382 180 vsig~ outlets:;
#X text 402 330 - image signal;
#X text 403 354 - sync signal;
#X text 403 380 - vframe to write image to;
#X obj 45 289 dac~;
#X floatatom 89 255 5 0 0;
#X text 83 289 sounds great!;
#X obj 45 255 *~ 0;
#X text 14 25 vsnapshot~: convert signal to image;
#X msg 273 102 black;
#X obj 44 370 osc~ 2;
#X obj 44 397 *~ 0;
#X floatatom 86 397 5 0 0;
#X text 100 372 looks great!;
#X floatatom 44 345 5 0 0;
#X msg 44 485 dock vsig~ \, 12+87;
#X obj 378 72 init;
#X obj 284 361 init;
#X connect 1 0 2 0;
#X connect 2 0 22 0;
#X connect 2 0 3 0;
#X connect 2 1 3 1;
#X connect 2 2 4 0;
#X connect 3 0 9 0;
#X connect 5 0 1 0;
#X connect 6 0 3 2;
#X connect 7 0 5 0;
#X connect 10 0 6 0;
#X connect 20 0 22 1;
#X connect 22 0 19 0;
#X connect 22 0 19 1;
#X connect 24 0 5 0;
#X connect 25 0 26 0;
#X connect 26 0 3 0;
#X connect 27 0 26 1;
#X connect 29 0 25 0;
#X connect 30 0 9 0;
#X connect 31 0 8 0;
#X connect 31 0 7 0;
#X connect 32 0 10 0;
#X restore 64 360 pd vsig~ and vsnapshot~;
#X text 257 359 convert image to signal and back;
#X text 232 440 separate red \, green and blue channels;
#X text 159 144 ... click on "dock" on subpatches.;
#X msg 118 86 reset;
#X msg 339 82 minimizeall;
#X text 159 122 start by clicking reset... and minimizeall;
#N canvas 233 -13 702 662 vframeread~ 0;
#X text 11 7 vframeread~ uses a sync-signal to read the image:;
#X obj 212 308 vframe;
#X obj 161 337 vimport;
#X obj 71 297 fs.frame;
#X obj 71 326 fs.copy;
#X obj 71 353 fs.frame;
#X msg 212 280 bang;
#X obj 212 251 reset;
#X msg 71 116 dock vframeread~ \, 10+100;
#X text 13 47 drop a movie (.avi) here...;
#X text 82 96 click here;
#X obj 361 92 vframeread~;
#X obj 361 312 vsnapshot~;
#X obj 14 307 fps 5;
#X floatatom 53 427 5 0 0;
#X msg 81 270 next \, bang;
#X obj 361 372 fs.frame;
#X msg 361 469 dock vframeread~ \, 330+440;
#X text 380 445 click here;
#X obj 436 287 vframe;
#X obj 436 237 reset;
#X msg 436 262 bang;
#X obj 361 344 vref;
#X floatatom 482 130 5 0 0;
#X obj 482 159 phasor~ 1;
#X obj 491 259 vplugin;
#X msg 491 235 black;
#X text 107 426 set framerate;
#X msg 482 104 14.9;
#X obj 482 79 reset;
#X text 534 130 see how it's done;
#X text 17 595 This gives a better frame-rate \, compromizing the image
quality..;
#X obj 361 204 *~ 1;
#X floatatom 388 179 5 0 0;
#X msg 87 398 25;
#X msg 524 104 25.19;
#X msg 388 152 1;
#X msg 419 152 -1;
#X msg 53 398 15;
#X connect 1 0 2 1;
#X connect 1 0 11 0;
#X connect 3 0 4 0;
#X connect 4 0 5 0;
#X connect 5 0 2 0;
#X connect 6 0 1 0;
#X connect 6 0 5 0;
#X connect 7 0 6 0;
#X connect 8 0 3 0;
#X connect 11 0 32 0;
#X connect 12 0 22 1;
#X connect 13 0 15 0;
#X connect 13 0 5 0;
#X connect 13 0 22 0;
#X connect 14 0 13 0;
#X connect 15 0 3 0;
#X connect 17 0 16 0;
#X connect 19 0 12 2;
#X connect 20 0 21 0;
#X connect 21 0 19 0;
#X connect 22 0 16 0;
#X connect 23 0 24 0;
#X connect 23 0 26 0;
#X connect 24 0 12 1;
#X connect 24 0 11 0;
#X connect 25 0 19 0;
#X connect 26 0 25 0;
#X connect 28 0 23 0;
#X connect 29 0 28 0;
#X connect 32 0 12 0;
#X connect 33 0 32 1;
#X connect 34 0 14 0;
#X connect 35 0 23 0;
#X connect 36 0 33 0;
#X connect 37 0 33 0;
#X connect 38 0 14 0;
#X restore 64 487 pd vframeread~;
#X text 195 486 read image with a sync-signal;
#X obj 339 57 init;
#X text 21 21 Framestein v* family of video externals;
#N canvas 239 28 735 584 vrgb~ 0;
#X obj 389 140 vframe 320 240;
#X obj 389 171 vsig~;
#X text 9 7 vrgb~: separate red \, green and blue channels;
#X obj 240 239 vimport;
#X obj 181 188 fs.frame;
#X obj 188 77 reset;
#X obj 188 102 t b b b;
#X msg 234 77 bang;
#X msg 277 77 \; pd dsp 1;
#X obj 435 174 bng 15 250 50 0 empty empty empty 20 8 0 8 -262144 -1
-1;
#X obj 389 221 vrgb~;
#X obj 389 345 vsnapshot~;
#X obj 482 327 vframe 320 240;
#X obj 482 277 reset;
#X msg 482 302 bang;
#X obj 389 387 fs.frame;
#X msg 482 379 320x240;
#X obj 427 269 *~ 1;
#X obj 571 88 phasor~ 1;
#X obj 571 112 avg~;
#X obj 571 141 < 0.5;
#X obj 571 166 * -1;
#X obj 616 141 >= 0.5;
#X obj 616 166 * 1;
#X obj 571 191 +;
#X floatatom 571 216 5 0 0;
#X floatatom 571 63 5 0 0;
#X msg 367 429 dock vrgb~ \, 25+300;
#X obj 567 360 s vcopyexample;
#X obj 389 304 vcolor~;
#X obj 389 269 *~ 1;
#X text 8 26 vcolor~: merge red \, green and blue channels;
#X msg 41 152 yska320x240.jpg \, bang;
#X connect 0 0 1 0;
#X connect 0 0 3 1;
#X connect 1 0 10 0;
#X connect 1 1 11 1;
#X connect 1 2 9 0;
#X connect 4 0 3 0;
#X connect 5 0 6 0;
#X connect 5 0 7 0;
#X connect 6 0 0 0;
#X connect 6 1 32 0;
#X connect 6 2 0 0;
#X connect 7 0 6 0;
#X connect 7 0 8 0;
#X connect 7 0 6 0;
#X connect 10 0 30 0;
#X connect 10 1 17 0;
#X connect 11 0 15 0;
#X connect 12 0 11 2;
#X connect 12 0 28 0;
#X connect 13 0 14 0;
#X connect 14 0 12 0;
#X connect 14 0 16 0;
#X connect 16 0 15 0;
#X connect 17 0 29 1;
#X connect 18 0 19 0;
#X connect 19 0 22 0;
#X connect 19 0 20 0;
#X connect 20 0 21 0;
#X connect 21 0 24 0;
#X connect 22 0 23 0;
#X connect 23 0 24 1;
#X connect 24 0 25 0;
#X connect 25 0 17 1;
#X connect 25 0 30 1;
#X connect 26 0 18 0;
#X connect 27 0 15 0;
#X connect 29 0 11 0;
#X connect 30 0 29 0;
#X connect 32 0 4 0;
#X restore 64 440 pd vrgb~ and vcolor~;
#X text 65 530 vdrawarray is documented on example-waveformdisplay.
;
#X connect 2 0 1 0;
#X connect 2 0 12 0;
#X connect 12 0 1 1;
#X connect 13 0 1 1;
#X connect 17 0 13 0;
|