aboutsummaryrefslogtreecommitdiff
path: root/Patches/externals-documentation.pd
diff options
context:
space:
mode:
Diffstat (limited to 'Patches/externals-documentation.pd')
-rw-r--r--Patches/externals-documentation.pd342
1 files changed, 342 insertions, 0 deletions
diff --git a/Patches/externals-documentation.pd b/Patches/externals-documentation.pd
new file mode 100644
index 0000000..f065834
--- /dev/null
+++ b/Patches/externals-documentation.pd
@@ -0,0 +1,342 @@
+#N canvas 438 30 545 591 12;
+#X text 21 21 Externals for video:;
+#N canvas 148 3 734 663 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 17 14 vframe holds memory for a single image and is the basis
+of Pure Data-externals-based image handling in Framestein.;
+#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 text 17 109 vframe has no image loading and display functionality.
+Images can be imported to and from fs.frame:;
+#X msg 349 423 dock vframe \, 330+260;
+#X text 16 59 Initialization arguments determine the width and height
+of the image \, as in below. Defaults are 176 and 144;
+#X obj 34 220 init;
+#X obj 244 373 init;
+#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 14 0 2 0;
+#X connect 16 0 10 0;
+#X connect 17 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 618 418 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 640 677 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 161 392 convert image to signal and back;
+#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~;
+#X text 162 439 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 700 660 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 65 530 vdrawarray is documented on example-vdrawarray.;
+#X connect 3 0 2 0;
+#X connect 3 0 14 0;
+#X connect 14 0 2 1;
+#X connect 15 0 2 1;
+#X connect 19 0 15 0;