From 15b30fe20b401d079c2b3c6a8e77eee827813de3 Mon Sep 17 00:00:00 2001 From: Travis CI Date: Tue, 17 Mar 2015 22:54:19 +0000 Subject: Gem 096ed6ef786b7a9d6e11a437ff8526619c89a1fd osx/x86_64 built 'master:096ed6ef786b7a9d6e11a437ff8526619c89a1fd' for osx/x86_64 --- Gem/examples/04.pix/01.image.pd | 60 +++++++++ Gem/examples/04.pix/02.multiimage.pd | 49 +++++++ Gem/examples/04.pix/04.ImageInPlace.pd | 64 +++++++++ Gem/examples/04.pix/05.film.pd | 121 +++++++++++++++++ Gem/examples/04.pix/05.movie.pd | 89 ++++++++++++ Gem/examples/04.pix/06.PixRect.pd | 88 ++++++++++++ Gem/examples/04.pix/07.PixSet.pd | 69 ++++++++++ Gem/examples/04.pix/08.PixDump.pd | 64 +++++++++ Gem/examples/04.pix/09.Histogram.pd | 89 ++++++++++++ Gem/examples/04.pix/10.PixDataSimple.pd | 90 +++++++++++++ Gem/examples/04.pix/11.PixDataComplex.pd | 117 ++++++++++++++++ Gem/examples/04.pix/12.add.pd | 52 +++++++ Gem/examples/04.pix/12.blending.pd | 173 ++++++++++++++++++++++++ Gem/examples/04.pix/12.composite.pd | 54 ++++++++ Gem/examples/04.pix/12.pix_multiply.pd | 55 ++++++++ Gem/examples/04.pix/13.maskDancer.pd | 55 ++++++++ Gem/examples/04.pix/14.takeAlpha.pd | 64 +++++++++ Gem/examples/04.pix/15.pix_alpha.pd | 82 +++++++++++ Gem/examples/04.pix/16.alphaGrey.pd | 78 +++++++++++ Gem/examples/04.pix/16.pix_2grey.pd | 45 +++++++ Gem/examples/04.pix/17.pix_gain.pd | 72 ++++++++++ Gem/examples/04.pix/18.Curves.pd | 180 +++++++++++++++++++++++++ Gem/examples/04.pix/19.colorMatrix.pd | 60 +++++++++ Gem/examples/04.pix/20.convolve.pd | 106 +++++++++++++++ Gem/examples/04.pix/22.biquad.pd | 108 +++++++++++++++ Gem/examples/04.pix/23.gravity.pd | 108 +++++++++++++++ Gem/examples/04.pix/24.time-filtering.pd | 102 ++++++++++++++ Gem/examples/04.pix/25.buffer.pd | 137 +++++++++++++++++++ Gem/examples/04.pix/26.framebuffer_readback.pd | 88 ++++++++++++ Gem/examples/04.pix/27.bitmap_font.pd | 152 +++++++++++++++++++++ 30 files changed, 2671 insertions(+) create mode 100644 Gem/examples/04.pix/01.image.pd create mode 100644 Gem/examples/04.pix/02.multiimage.pd create mode 100644 Gem/examples/04.pix/04.ImageInPlace.pd create mode 100644 Gem/examples/04.pix/05.film.pd create mode 100644 Gem/examples/04.pix/05.movie.pd create mode 100644 Gem/examples/04.pix/06.PixRect.pd create mode 100644 Gem/examples/04.pix/07.PixSet.pd create mode 100644 Gem/examples/04.pix/08.PixDump.pd create mode 100644 Gem/examples/04.pix/09.Histogram.pd create mode 100644 Gem/examples/04.pix/10.PixDataSimple.pd create mode 100644 Gem/examples/04.pix/11.PixDataComplex.pd create mode 100644 Gem/examples/04.pix/12.add.pd create mode 100644 Gem/examples/04.pix/12.blending.pd create mode 100644 Gem/examples/04.pix/12.composite.pd create mode 100644 Gem/examples/04.pix/12.pix_multiply.pd create mode 100644 Gem/examples/04.pix/13.maskDancer.pd create mode 100644 Gem/examples/04.pix/14.takeAlpha.pd create mode 100644 Gem/examples/04.pix/15.pix_alpha.pd create mode 100644 Gem/examples/04.pix/16.alphaGrey.pd create mode 100644 Gem/examples/04.pix/16.pix_2grey.pd create mode 100644 Gem/examples/04.pix/17.pix_gain.pd create mode 100644 Gem/examples/04.pix/18.Curves.pd create mode 100644 Gem/examples/04.pix/19.colorMatrix.pd create mode 100644 Gem/examples/04.pix/20.convolve.pd create mode 100644 Gem/examples/04.pix/22.biquad.pd create mode 100644 Gem/examples/04.pix/23.gravity.pd create mode 100644 Gem/examples/04.pix/24.time-filtering.pd create mode 100644 Gem/examples/04.pix/25.buffer.pd create mode 100644 Gem/examples/04.pix/26.framebuffer_readback.pd create mode 100644 Gem/examples/04.pix/27.bitmap_font.pd (limited to 'Gem/examples/04.pix') diff --git a/Gem/examples/04.pix/01.image.pd b/Gem/examples/04.pix/01.image.pd new file mode 100644 index 0000000..0abd4a9 --- /dev/null +++ b/Gem/examples/04.pix/01.image.pd @@ -0,0 +1,60 @@ +#N canvas 452 108 681 502 12; +#X text 172 376 click on the pix_image object to display the loaded +image with imgview; +#X obj 179 199 gemhead; +#X obj 179 351 pix_draw; +#X text 196 18 display an image using pix_draw; +#X obj 179 227 pix_image ../data/dancer.JPG; +#X obj 179 309 translateXYZ; +#X floatatom 315 261 0 0 0 0 - - -; +#X text 176 177 notice that Z doesn't change the size of the image +; +#X text 62 442 On most machines \, pix_draw is MUCH slower than pix_texture. +However \, pix_draw is easier to use in an example patch.; +#X obj 20 69 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 289 80 pd Gem.init; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X restore 25 113 pd gemwin; +#X msg 25 89 create; +#X text 21 69 Create window and render; +#X obj 315 284 / 100; +#X floatatom 264 261 0 0 0 0 - - -; +#X obj 264 284 / 100; +#X floatatom 213 261 0 0 0 0 - - -; +#X obj 213 284 / 100; +#X connect 1 0 4 0; +#X connect 4 0 5 0; +#X connect 5 0 2 0; +#X connect 6 0 13 0; +#X connect 10 0 11 0; +#X connect 11 0 10 0; +#X connect 13 0 5 3; +#X connect 14 0 15 0; +#X connect 15 0 5 2; +#X connect 16 0 17 0; +#X connect 17 0 5 1; diff --git a/Gem/examples/04.pix/02.multiimage.pd b/Gem/examples/04.pix/02.multiimage.pd new file mode 100644 index 0000000..5f0c519 --- /dev/null +++ b/Gem/examples/04.pix/02.multiimage.pd @@ -0,0 +1,49 @@ +#N canvas 411 137 739 504 12; +#X msg 345 170 1; +#X msg 345 202 0; +#X obj 278 200 gemhead; +#X msg 344 133 2; +#X text 206 104 select one of the three images to display; +#X text 154 29 display images use pix_multiimage; +#X obj 278 255 pix_multiimage ../data/temp*.JPG 2; +#X obj 20 209 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 289 80 pd Gem.init; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X restore 25 253 pd gemwin; +#X msg 25 229 create; +#X text 21 209 Create window and render; +#X obj 278 313 pix_texture; +#X obj 278 335 square 3; +#X connect 0 0 6 1; +#X connect 1 0 6 1; +#X connect 2 0 6 0; +#X connect 3 0 6 1; +#X connect 6 0 11 0; +#X connect 8 0 9 0; +#X connect 9 0 8 0; +#X connect 11 0 12 0; diff --git a/Gem/examples/04.pix/04.ImageInPlace.pd b/Gem/examples/04.pix/04.ImageInPlace.pd new file mode 100644 index 0000000..72e6f0b --- /dev/null +++ b/Gem/examples/04.pix/04.ImageInPlace.pd @@ -0,0 +1,64 @@ +#N canvas 314 61 654 599 12; +#X msg 489 227 1; +#X msg 489 259 0; +#X obj 375 254 gemhead; +#X msg 488 190 2; +#X text 254 156 select one of the three images to display; +#X obj 375 308 pix_imageInPlace; +#X msg 121 288 download; +#X msg 124 318 purge; +#X obj 375 367 square; +#X text 206 20 display images use pix_imageInPlace; +#X text 64 389 pix_imageInPlace is slightly different than pix_multiimage. +When you select an image to display with pix_multiimage \, it copies +over the image data to the pix_buffer \, which is then used by pix_texture. +; +#X text 62 451 This is potentially slow if you are trying to change +between a lot of images \, but it doesn't use a lot of texture ram. +; +#X text 62 503 pix_imageInPlace sends all of the image data to texture +RAM when the preload message is received. This means that you cannot +process any of the pixel data \, but it is extremely quick to change +between the various images.; +#X msg 119 255 preload ../data/temp*.JPG 2; +#X obj 20 69 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 289 80 pd Gem.init; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X restore 25 113 pd gemwin; +#X msg 25 89 create; +#X text 21 69 Create window and render; +#X connect 0 0 5 1; +#X connect 1 0 5 1; +#X connect 2 0 5 0; +#X connect 3 0 5 1; +#X connect 5 0 8 0; +#X connect 6 0 5 0; +#X connect 7 0 5 0; +#X connect 13 0 5 0; +#X connect 15 0 16 0; +#X connect 16 0 15 0; diff --git a/Gem/examples/04.pix/05.film.pd b/Gem/examples/04.pix/05.film.pd new file mode 100644 index 0000000..601dd7b --- /dev/null +++ b/Gem/examples/04.pix/05.film.pd @@ -0,0 +1,121 @@ +#N canvas 61 44 827 553 12; +#X obj 90 186 gemhead; +#X floatatom 220 155 5 0 0 0 - - -; +#X msg 150 156 auto \$1; +#X obj 150 137 tgl 15 0 empty empty empty 20 8 0 8 -262144 -1 -1 0 +1; +#X floatatom 124 261 5 0 0 0 - - -; +#X msg 197 392 -1 -2 -1 -2 8 -2 1 -2 1; +#X obj 90 467 pix_convolve 3 3; +#X text 472 233 load and play-back a movie; +#X text 368 28 win32:; +#X text 212 134 frame; +#N canvas 243 65 604 505 README 0; +#X text 49 38 the pix_film is the same as pix_movie but does not texture +the movie immediately onto a Geo.; +#X text 50 77 therefore it is possible to manipulate the frames; +#X text 48 106 the pix_film object will return the movie in it's (more +or less) native color-space. most of the times \, this will probably +be not RGBA but RGB or BGR (on windows machines).; +#X text 48 153 do not worry about this. however \, most of the pix-manips +will only work correctly on RGBA-pixes. if this is the case and you +send it a non-RGBA pixture it will say something like "pix_object cannot +handle gray image".; +#X text 49 226 to avoid this \, you can convert your pix-buff to RGBA +using "pix_rgba". this will be a no-cost operation if the pix_buf already +is in RGBA.; +#X text 36 334 you might notice a significant performance-enhancement +by just turning the [pix_rgba] off (via the toggle). however \, not +[pix_rgba] is expensive but actually the [pix_convolve] (which appears to do +nothing when initialized with "0 0 0 0 1 0 0 0 0". When [pix_rgba] +is "off" \, the [pix_convolve] will be bypassed \, and therefore be +very fast.; +#X restore 635 187 pd README; +#X obj 90 573 square 4; +#X obj 90 233 pix_film; +#X floatatom 149 547 5 0 0 0 - - -; +#X msg 393 48 open ../data/homer.avi; +#X msg 386 111 open ../data/anim-1.mov; +#X msg 391 156 open ../data/alea.mpg; +#X text 247 502 you have to texture the movie by hand; +#X text 256 466 manipulate the movie (expensive!); +#X text 26 10 load \, play and manipulate digital videos; +#X text 423 397 edge detection; +#X msg 230 424 0.125 0.125 0.125 0.125 0.125 0.125 0.125 0.125 0.125 +; +#X text 715 422 smoothing; +#X obj 289 252 t f; +#X obj 197 368 loadbang; +#X obj 110 439 tgl 15 0 empty empty empty 20 8 0 8 -262144 -1 -1 0 +1; +#X obj 90 500 pix_texture; +#X obj 20 49 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 289 80 pd Gem.init; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X restore 25 93 pd gemwin; +#X msg 25 69 create; +#X text 21 49 Create window and render; +#X text 358 91 linux \, os-X:; +#X text 363 140 linux \, ??:; +#X obj 345 181 t a; +#X msg 410 207 open \$1; +#X obj 410 185 symbol; +#X obj 471 185 openpanel; +#X obj 563 185 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#X obj 90 309 pix_rgba; +#X text 178 289 transform the movie into RGBA-space (if the image is +not RGBA \, [pix_convolve] might not be able to process the image and +therefore will do nothing \, which will dramatically "increase" performance) +; +#X connect 0 0 12 0; +#X connect 1 0 12 1; +#X connect 2 0 12 0; +#X connect 3 0 2 0; +#X connect 5 0 6 2; +#X connect 6 0 26 0; +#X connect 12 0 38 0; +#X connect 12 1 4 0; +#X connect 12 2 23 0; +#X connect 13 0 11 1; +#X connect 14 0 33 0; +#X connect 15 0 33 0; +#X connect 16 0 33 0; +#X connect 21 0 6 2; +#X connect 23 0 12 1; +#X connect 24 0 5 0; +#X connect 25 0 6 0; +#X connect 26 0 11 0; +#X connect 28 0 29 0; +#X connect 29 0 28 0; +#X connect 33 0 12 0; +#X connect 34 0 33 0; +#X connect 35 0 34 0; +#X connect 36 0 35 0; +#X connect 37 0 36 0; +#X connect 38 0 6 0; diff --git a/Gem/examples/04.pix/05.movie.pd b/Gem/examples/04.pix/05.movie.pd new file mode 100644 index 0000000..a6227d3 --- /dev/null +++ b/Gem/examples/04.pix/05.movie.pd @@ -0,0 +1,89 @@ +#N canvas 133 25 637 554 12; +#X obj 157 59 gemhead; +#X floatatom 336 167 0 0 0 0 - - -; +#X obj 157 385 rotateXYZ; +#X obj 157 437 cube; +#X floatatom 224 359 0 0 0 0 - - -; +#X obj 224 310 metro 50; +#X obj 203 412 translateXYZ 2 1 0; +#X obj 203 438 cube; +#X obj 157 201 pix_movie; +#X text 377 167 control which frame; +#X text 256 436 automatically textures; +#X obj 177 238 print frames; +#X msg 287 25 open ../data/homer.avi; +#X obj 224 290 tgl 15 0 empty empty empty 20 8 0 8 -262144 -1 -1 0 +1; +#X obj 325 282 print done; +#X msg 336 135 auto \$1; +#X obj 336 116 tgl 15 0 empty empty empty 20 8 0 8 -262144 -1 -1 0 +1; +#X text 43 486 the texturing is done automatically: there is no need +to care for the image-size (it doesn't have to be a power of 2). on +the other hand \, you cannot do image-processing !! use [pix_film] +for this; +#X msg 325 259 reached the end !!!; +#X obj 293 235 t f b; +#X text 449 13 Win32; +#X text 461 73 linux; +#X msg 297 56 open ../data/anim-1.mov; +#X msg 307 87 open ../data/alea.mpg; +#X text 8 264 notice: you don't need pix_texture; +#X text 406 131 play the movie !; +#X obj 224 335 i; +#X obj 259 335 + 1; +#X obj 295 335 % 360; +#X text 471 42 apple; +#X obj 505 415 cnv 15 100 60 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 142 68 set create; +#X msg 132 112 create \, 1; +#X msg 198 112 destroy; +#X msg 234 221 dimen 500 500; +#X msg 279 189 dimen 1024 768; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X connect 9 0 0 0; +#X restore 510 453 pd gemwin; +#X msg 510 430 create; +#X text 506 413 Create window:; +#X connect 0 0 8 0; +#X connect 1 0 8 1; +#X connect 2 0 3 0; +#X connect 2 0 6 0; +#X connect 4 0 2 2; +#X connect 4 0 2 3; +#X connect 5 0 26 0; +#X connect 6 0 7 0; +#X connect 8 0 2 0; +#X connect 8 1 11 0; +#X connect 8 2 19 0; +#X connect 12 0 8 0; +#X connect 13 0 5 0; +#X connect 15 0 8 0; +#X connect 16 0 15 0; +#X connect 18 0 14 0; +#X connect 19 0 8 1; +#X connect 19 1 18 0; +#X connect 22 0 8 0; +#X connect 23 0 8 0; +#X connect 26 0 27 0; +#X connect 26 0 4 0; +#X connect 27 0 28 0; +#X connect 28 0 26 1; +#X connect 31 0 32 0; +#X connect 32 0 31 0; diff --git a/Gem/examples/04.pix/06.PixRect.pd b/Gem/examples/04.pix/06.PixRect.pd new file mode 100644 index 0000000..93f5fba --- /dev/null +++ b/Gem/examples/04.pix/06.PixRect.pd @@ -0,0 +1,88 @@ +#N canvas 183 99 635 638 12; +#X obj 179 176 gemhead; +#X obj 179 587 pix_texture; +#X msg 291 536 1 0 0; +#X obj 179 612 square 3; +#X floatatom 329 238 0 -10 250 0 - - -; +#X obj 420 434 t b f; +#X obj 420 408 + 40; +#X obj 342 420 + 40; +#X text 372 182 the position; +#X text 433 539 the color; +#X obj 291 513 loadbang; +#X obj 179 204 pix_image ../data/fractal.JPG; +#X obj 329 308 t f f; +#X obj 380 308 t f f; +#X text 375 241 x-pos; +#X text 423 269 y-pos; +#X floatatom 466 304 0 -50 250 0 - - -; +#X text 512 307 width; +#X text 560 335 height; +#X obj 466 374 t b f; +#X obj 517 374 t b f; +#X obj 342 443 t b f; +#X floatatom 380 271 0 -10 250 0 - - -; +#X floatatom 517 333 0 -50 250 0 - - -; +#X msg 373 538 0 1 0; +#X obj 235 488 pack 0 0 40 40; +#X obj 179 561 pix_rectangle; +#X obj 20 69 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 289 80 pd Gem.init; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X restore 25 113 pd gemwin; +#X msg 25 89 create; +#X text 21 69 Create window and render; +#X text 118 26 draw a rectangle onto an image; +#X connect 0 0 11 0; +#X connect 1 0 3 0; +#X connect 2 0 26 2; +#X connect 4 0 12 0; +#X connect 5 0 25 0; +#X connect 5 1 25 3; +#X connect 6 0 5 0; +#X connect 7 0 21 0; +#X connect 10 0 2 0; +#X connect 11 0 26 0; +#X connect 12 0 25 0; +#X connect 12 1 7 0; +#X connect 13 0 6 0; +#X connect 13 1 25 1; +#X connect 16 0 19 0; +#X connect 19 0 7 0; +#X connect 19 1 7 1; +#X connect 20 0 6 0; +#X connect 20 1 6 1; +#X connect 21 0 25 0; +#X connect 21 1 25 2; +#X connect 22 0 13 0; +#X connect 23 0 20 0; +#X connect 24 0 26 2; +#X connect 25 0 26 1; +#X connect 26 0 1 0; +#X connect 28 0 29 0; +#X connect 29 0 28 0; diff --git a/Gem/examples/04.pix/07.PixSet.pd b/Gem/examples/04.pix/07.PixSet.pd new file mode 100644 index 0000000..b6deab3 --- /dev/null +++ b/Gem/examples/04.pix/07.PixSet.pd @@ -0,0 +1,69 @@ +#N canvas 243 272 754 536 10; +#X obj 143 110 gemhead; +#X text 99 37 ========; +#X msg 149 366 quality 0; +#X obj 143 409 square 2; +#X obj 149 343 loadbang; +#X text 101 487 maybe have a look at; +#X text 101 24 pix_set; +#X text 246 23 set the pixles of the image; +#X msg 279 165 rgb; +#X msg 279 141 rgba; +#X msg 279 189 grey; +#X msg 229 108 0 0.8 0 0 0.9 0 0.1 0 1 1 1 10; +#X msg 268 227 set 2 4; +#X text 461 109 a list of pixel-values; +#X text 331 163 interpret the list as; +#X text 514 136 r1 g1 b1 a1 r2 g2 b2 a2 r3...; +#X text 512 165 r1 g1 b1 r2 g2 b2 r3...; +#X text 512 194 grey1 grey2 grey3...; +#X text 507 236 set the imagesize to "X Y"; +#X text 306 317 creation arguments :: [X Y] of the image buffer; +#X msg 265 249 set 1 1; +#X text 253 487 [pix_dump]; +#X obj 143 243 pix_set 64 64; +#X obj 143 387 pix_texture; +#X obj 450 389 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 289 80 pd Gem.init; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X restore 455 433 pd gemwin; +#X msg 455 409 create; +#X text 451 389 Create window and render; +#X connect 0 0 22 0; +#X connect 2 0 23 0; +#X connect 4 0 2 0; +#X connect 8 0 22 0; +#X connect 9 0 22 0; +#X connect 10 0 22 0; +#X connect 11 0 22 1; +#X connect 12 0 22 0; +#X connect 20 0 22 0; +#X connect 22 0 23 0; +#X connect 23 0 3 0; +#X connect 25 0 26 0; +#X connect 26 0 25 0; diff --git a/Gem/examples/04.pix/08.PixDump.pd b/Gem/examples/04.pix/08.PixDump.pd new file mode 100644 index 0000000..a21b273 --- /dev/null +++ b/Gem/examples/04.pix/08.PixDump.pd @@ -0,0 +1,64 @@ +#N canvas 53 47 761 536 10; +#X obj 143 110 gemhead; +#X obj 143 203 pix_dump; +#X text 101 24 pix_dump; +#X text 99 37 ========; +#X msg 369 184 bang; +#X obj 143 387 pix_texture; +#X msg 149 366 quality 0; +#X obj 143 409 square 2; +#X obj 149 343 loadbang; +#X text 412 184 trigger the pix_dump; +#X text 246 24 dump the pixels of the image; +#X obj 194 254 print dump; +#X text 297 265 this produces an output like; +#X text 292 285 "r1 g1 b1 a1 r2 g2 b2 a2 r3 ..."; +#X text 292 302 (r=red \; g=green \; b=blue \; a=alpha); +#X obj 474 371 repack; +#X text 278 369 maybe you would like to use; +#X text 525 373 (part of zexy); +#X text 275 389 to excerpt pixel information out of this; +#X text 101 487 maybe have a look at; +#X obj 250 487 pix_set; +#X obj 455 54 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 289 80 pd Gem.init; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X restore 460 98 pd gemwin; +#X msg 460 74 create; +#X text 456 54 Create window and render; +#X obj 143 135 pix_image ../data/blob2.tif; +#X connect 0 0 25 0; +#X connect 1 0 5 0; +#X connect 1 1 11 0; +#X connect 4 0 1 0; +#X connect 5 0 7 0; +#X connect 6 0 5 0; +#X connect 8 0 6 0; +#X connect 22 0 23 0; +#X connect 23 0 22 0; +#X connect 25 0 1 0; diff --git a/Gem/examples/04.pix/09.Histogram.pd b/Gem/examples/04.pix/09.Histogram.pd new file mode 100644 index 0000000..5922a8e --- /dev/null +++ b/Gem/examples/04.pix/09.Histogram.pd @@ -0,0 +1,89 @@ +#N canvas 0 0 764 557 10; +#N canvas 412 247 681 394 tables 0; +#N canvas 0 0 450 300 (subpatch) 0; +#X array red 256 float 0; +#X coords 0 1 255 0 256 140 1; +#X restore 95 30 graph; +#N canvas 0 0 450 300 (subpatch) 0; +#X array green 256 float 0; +#X coords 0 1 255 0 256 140 1; +#X restore 399 29 graph; +#N canvas 0 0 450 300 (subpatch) 0; +#X array blue 256 float 0; +#X coords 0 1 255 0 256 140 1; +#X restore 98 214 graph; +#N canvas 0 0 450 300 (subpatch) 0; +#X array alpha 64 float 0; +#X coords 0 1 63 0 256 140 1; +#X restore 396 212 graph; +#X restore 379 211 pd tables; +#X obj 34 192 gemhead; +#X obj 34 476 pix_texture; +#N canvas 0 0 450 300 (subpatch) 0; +#X array rgb 64 float 0; +#X coords 0 1 63 0 256 140 1; +#X restore 287 53 graph; +#X text 78 8 pix_curve: adjust the colour of an image; +#X text 451 213 separate tables for r \, g \, b and a; +#X msg 185 192 1; +#X msg 155 192 0; +#X msg 214 192 2; +#X obj 34 497 square 3; +#X msg 95 289 set red green blue alpha; +#X msg 99 325 set red green blue; +#X msg 99 365 set rgb; +#X obj 34 395 pix_histo rgb; +#X msg 564 57 \; rgb resize 32; +#X msg 565 93 \; rgb resize 64; +#X msg 564 135 \; rgb normalize 1; +#X obj 300 367 pix_histo rgb; +#X obj 303 328 pix_histo red green blue; +#X obj 302 288 pix_histo red green blue alpha; +#X text 313 388 one histogramm for all channels (making grey out of +rgb); +#X text 326 346 histograms for r \, g \, b; +#X text 337 306 histograms for r \, g \, b \, a; +#X obj 20 69 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 289 80 pd Gem.init; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X restore 25 113 pd gemwin; +#X msg 25 89 create; +#X text 21 69 Create window and render; +#X obj 34 217 pix_multiimage ../data/temp*.JPG 2; +#X connect 1 0 27 0; +#X connect 2 0 9 0; +#X connect 6 0 27 1; +#X connect 7 0 27 1; +#X connect 8 0 27 1; +#X connect 10 0 13 0; +#X connect 11 0 13 0; +#X connect 12 0 13 0; +#X connect 13 0 2 0; +#X connect 24 0 25 0; +#X connect 25 0 24 0; +#X connect 27 0 13 0; diff --git a/Gem/examples/04.pix/10.PixDataSimple.pd b/Gem/examples/04.pix/10.PixDataSimple.pd new file mode 100644 index 0000000..36bb4e6 --- /dev/null +++ b/Gem/examples/04.pix/10.PixDataSimple.pd @@ -0,0 +1,90 @@ +#N canvas 284 93 594 539 10; +#X obj 46 186 gemwin; +#X obj 319 173 gemhead; +#X obj 258 329 pix_data; +#X msg 244 103 1; +#X msg 243 128 0; +#X msg 87 48 create; +#X msg 114 104 destroy; +#X msg 319 143 bang; +#X msg 205 103 bang; +#X obj 205 73 t b b; +#X msg 205 54 bang; +#X obj 233 422 translateXYZ; +#X obj 233 360 gemhead; +#X obj 233 449 color; +#X obj 233 200 t b b b b; +#X obj 369 328 * 6; +#X obj 444 328 * 6; +#X obj 444 348 - 3; +#X obj 369 348 - 3; +#X msg 348 42 1; +#X msg 391 42 0; +#X obj 84 302 world_light; +#X obj 84 274 gemhead; +#X obj 348 93 metro 5; +#X obj 233 478 sphere 0.1; +#X text 79 13 click here to begin; +#X text 320 18 turn on/off the metro; +#X obj 319 202 pix_image ../data/fractal.JPG; +#N canvas 95 194 290 179 Gem.init 0; +#X obj 118 18 loadbang; +#X msg 201 78 reset; +#X obj 118 113 outlet; +#X obj 118 45 t b b; +#X msg 118 79 lighting 1; +#X msg 22 77 buffer 1; +#X connect 0 0 3 0; +#X connect 1 0 2 0; +#X connect 3 0 4 0; +#X connect 3 0 5 0; +#X connect 3 1 1 0; +#X connect 4 0 2 0; +#X connect 5 0 2 0; +#X restore 25 153 pd Gem.init; +#X text 93 34 1; +#X text 209 38 2; +#X obj 337 253 random 1000; +#X obj 337 270 / 1000; +#X obj 337 288 t f f; +#X obj 419 253 random 1000; +#X obj 419 270 / 1000; +#X obj 419 288 t f f; +#X connect 1 0 27 0; +#X connect 2 1 13 1; +#X connect 3 0 0 0; +#X connect 4 0 0 0; +#X connect 5 0 0 0; +#X connect 6 0 0 0; +#X connect 7 0 1 0; +#X connect 8 0 0 0; +#X connect 9 0 7 0; +#X connect 9 0 8 0; +#X connect 9 1 3 0; +#X connect 10 0 9 0; +#X connect 11 0 13 0; +#X connect 12 0 11 0; +#X connect 13 0 24 0; +#X connect 14 0 12 0; +#X connect 14 1 2 0; +#X connect 14 1 22 0; +#X connect 14 2 31 0; +#X connect 14 3 34 0; +#X connect 15 0 18 0; +#X connect 16 0 17 0; +#X connect 17 0 11 2; +#X connect 18 0 11 1; +#X connect 19 0 23 0; +#X connect 20 0 23 0; +#X connect 22 0 21 0; +#X connect 23 0 14 0; +#X connect 27 0 2 1; +#X connect 28 0 0 0; +#X connect 31 0 32 0; +#X connect 32 0 33 0; +#X connect 33 0 2 2; +#X connect 33 1 15 0; +#X connect 34 0 35 0; +#X connect 35 0 36 0; +#X connect 36 0 2 3; +#X connect 36 1 16 0; diff --git a/Gem/examples/04.pix/11.PixDataComplex.pd b/Gem/examples/04.pix/11.PixDataComplex.pd new file mode 100644 index 0000000..cb8d846 --- /dev/null +++ b/Gem/examples/04.pix/11.PixDataComplex.pd @@ -0,0 +1,117 @@ +#N canvas 331 86 929 574 10; +#X obj 30 159 gemwin; +#X obj 372 135 gemhead; +#X obj 372 164 pix_image ../data/fractal.JPG; +#X obj 285 311 pix_data; +#X msg 183 110 1; +#X msg 218 110 0; +#X msg 48 37 create; +#X msg 49 87 destroy; +#X msg 372 105 bang; +#X msg 138 111 bang; +#X obj 214 61 t b b; +#X msg 214 36 bang; +#X obj 206 400 translateXYZ; +#X obj 206 338 gemhead; +#X obj 206 436 color; +#X obj 266 205 t b b b b; +#X obj 443 313 * 6; +#X obj 443 339 - 3; +#X obj 385 341 - 3; +#X msg 292 30 1; +#X msg 325 30 0; +#X obj 84 320 world_light; +#X obj 84 274 gemhead; +#X obj 206 471 rotate 1 1 1; +#X obj 337 397 * 90; +#X obj 292 114 metro 5; +#X obj 485 313 pix_data; +#X obj 501 237 gemhead; +#N canvas 99 214 290 179 Gem.init 0; +#X obj 118 18 loadbang; +#X msg 215 80 reset; +#X obj 118 113 outlet; +#X obj 118 45 t b b; +#X msg 118 79 lighting 1; +#X msg 34 80 buffer 1; +#X connect 0 0 3 0; +#X connect 1 0 2 0; +#X connect 3 0 4 0; +#X connect 3 0 5 0; +#X connect 3 1 1 0; +#X connect 4 0 2 0; +#X connect 5 0 2 0; +#X restore 30 125 pd Gem.init; +#X text 53 22 1; +#X text 217 19 2; +#X obj 336 236 random 1000; +#X obj 336 254 / 1000; +#X obj 336 272 t f f; +#X obj 418 236 random 1000; +#X obj 418 254 / 1000; +#X obj 418 272 t f f; +#X floatatom 385 366 5 0 0 0 - - -; +#X floatatom 443 366 5 0 0 0 - - -; +#X obj 385 314 * 6; +#X floatatom 341 429 5 0 0 0 - - -; +#X obj 206 506 cube 0; +#X msg 500 197 bang; +#X obj 501 272 pix_image ../data/dancer.JPG; +#X floatatom 537 423 5 0 0 0 - - -; +#X obj 537 473 * 0.2; +#X obj 537 369 f; +#X connect 1 0 2 0; +#X connect 2 0 3 1; +#X connect 3 1 14 1; +#X connect 3 2 24 0; +#X connect 4 0 0 0; +#X connect 5 0 0 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 1 0; +#X connect 8 0 27 0; +#X connect 9 0 0 0; +#X connect 10 0 8 0; +#X connect 10 0 9 0; +#X connect 10 1 4 0; +#X connect 11 0 10 0; +#X connect 12 0 14 0; +#X connect 13 0 12 0; +#X connect 14 0 23 0; +#X connect 15 0 13 0; +#X connect 15 1 3 0; +#X connect 15 1 22 0; +#X connect 15 1 26 0; +#X connect 15 2 31 0; +#X connect 15 3 34 0; +#X connect 16 0 17 0; +#X connect 17 0 12 2; +#X connect 17 0 38 0; +#X connect 18 0 12 1; +#X connect 18 0 37 0; +#X connect 19 0 25 0; +#X connect 20 0 25 0; +#X connect 22 0 21 0; +#X connect 23 0 41 0; +#X connect 24 0 23 1; +#X connect 24 0 40 0; +#X connect 25 0 15 0; +#X connect 26 1 46 0; +#X connect 27 0 43 0; +#X connect 28 0 0 0; +#X connect 31 0 32 0; +#X connect 32 0 33 0; +#X connect 33 0 3 2; +#X connect 33 0 26 2; +#X connect 33 1 39 0; +#X connect 34 0 35 0; +#X connect 35 0 36 0; +#X connect 36 0 3 3; +#X connect 36 0 26 3; +#X connect 36 1 16 0; +#X connect 39 0 18 0; +#X connect 42 0 27 0; +#X connect 43 0 26 1; +#X connect 44 0 45 0; +#X connect 45 0 41 1; +#X connect 46 0 44 0; diff --git a/Gem/examples/04.pix/12.add.pd b/Gem/examples/04.pix/12.add.pd new file mode 100644 index 0000000..2b5dc7f --- /dev/null +++ b/Gem/examples/04.pix/12.add.pd @@ -0,0 +1,52 @@ +#N canvas 542 198 681 468 10; +#X obj 270 175 pix_image ../data/dancer.JPG; +#X obj 270 342 pix_texture; +#X obj 270 383 square; +#X msg 329 364 3; +#X obj 369 209 gemhead 20; +#X obj 270 142 gemhead; +#X msg 370 141 open ../data/dancer.JPG; +#X obj 369 232 pix_image ../data/fractal.JPG; +#X obj 270 282 pix_add; +#X obj 20 79 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 289 80 pd Gem.init; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X restore 25 123 pd gemwin; +#X msg 25 106 create; +#X text 21 79 Create window and render; +#X text 135 60 blending \, using pixel addition; +#X connect 0 0 8 0; +#X connect 1 0 2 0; +#X connect 3 0 2 1; +#X connect 4 0 7 0; +#X connect 5 0 0 0; +#X connect 6 0 0 0; +#X connect 7 0 8 1; +#X connect 8 0 1 0; +#X connect 10 0 11 0; +#X connect 11 0 10 0; diff --git a/Gem/examples/04.pix/12.blending.pd b/Gem/examples/04.pix/12.blending.pd new file mode 100644 index 0000000..473c48e --- /dev/null +++ b/Gem/examples/04.pix/12.blending.pd @@ -0,0 +1,173 @@ +#N canvas 138 0 775 371 10; +#X obj 254 305 pix_texture; +#X obj 290 112 gemhead 20; +#X obj 254 65 gemhead; +#X text 257 30 various methods for blending images; +#N canvas 165 295 561 386 blending 0; +#X obj 28 65 inlet; +#X obj 191 354 outlet; +#X obj 173 285 inlet; +#X obj 320 8 inlet; +#X obj 28 322 pix_composite; +#X obj 129 323 pix_add; +#X obj 285 322 pix_diff; +#X obj 191 322 pix_subtract; +#X obj 28 227 pix_alpha; +#N canvas 445 182 508 174 select 0; +#X obj 88 35 inlet; +#X msg 88 98 1; +#X msg 144 98 2; +#X msg 201 97 3; +#X msg 257 97 0; +#X obj 88 121 outlet; +#X msg 329 100 4; +#X obj 88 59 select pix_add pix_subtract pix_diff pix_composite pix_multiply +; +#X connect 0 0 7 0; +#X connect 1 0 5 0; +#X connect 2 0 5 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 6 0 5 0; +#X connect 7 0 1 0; +#X connect 7 1 2 0; +#X connect 7 2 3 0; +#X connect 7 3 4 0; +#X connect 7 4 6 0; +#X restore 350 82 pd select blending method; +#X obj 360 324 pix_multiply; +#N canvas 172 373 450 300 demux5 0; +#X obj 59 30 inlet; +#X obj 283 17 inlet; +#X obj 59 193 outlet; +#X obj 59 137 spigot; +#X obj 96 109 == 0; +#X obj 106 137 spigot; +#X obj 153 139 spigot; +#X obj 200 137 spigot; +#X obj 246 137 spigot; +#X obj 143 109 == 1; +#X obj 190 109 == 2; +#X obj 237 109 == 3; +#X obj 283 109 == 4; +#X obj 96 83 loadbang; +#X obj 59 52 t a a a a a; +#X obj 106 194 outlet; +#X obj 153 195 outlet; +#X obj 200 196 outlet; +#X obj 246 195 outlet; +#X obj 283 61 f; +#X connect 0 0 14 0; +#X connect 1 0 19 0; +#X connect 3 0 2 0; +#X connect 4 0 3 1; +#X connect 5 0 15 0; +#X connect 6 0 16 0; +#X connect 7 0 17 0; +#X connect 8 0 18 0; +#X connect 9 0 5 1; +#X connect 10 0 6 1; +#X connect 11 0 7 1; +#X connect 12 0 8 1; +#X connect 13 0 4 0; +#X connect 14 0 3 0; +#X connect 14 1 5 0; +#X connect 14 2 6 0; +#X connect 14 3 7 0; +#X connect 14 4 8 0; +#X connect 19 0 4 0; +#X connect 19 0 9 0; +#X connect 19 0 10 0; +#X connect 19 0 11 0; +#X connect 19 0 12 0; +#X restore 28 189 pd demux5; +#X obj 320 28 t b a; +#X obj 28 129 pix_buf; +#X text 26 39 pix1; +#X text 176 269 pix2; +#X obj 350 56 symbol; +#X text 99 232 we need an alpha componenct for 'composite'; +#X text 85 115 [pix_add] and friends will overwrite the original (left) +image with the blend. [pix_buf] holds a local copy of the original +image and will refresh the output when banged.; +#X connect 0 0 13 0; +#X connect 2 0 5 1; +#X connect 2 0 4 1; +#X connect 2 0 7 1; +#X connect 2 0 6 1; +#X connect 2 0 10 1; +#X connect 3 0 12 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 1 0; +#X connect 7 0 1 0; +#X connect 8 0 4 0; +#X connect 9 0 11 1; +#X connect 10 0 1 0; +#X connect 11 0 8 0; +#X connect 11 1 5 0; +#X connect 11 2 7 0; +#X connect 11 3 6 0; +#X connect 11 4 10 0; +#X connect 12 0 13 0; +#X connect 12 1 16 0; +#X connect 13 0 11 0; +#X connect 16 0 9 0; +#X restore 254 250 pd blending; +#X obj 254 328 square 3; +#X text 461 210 additive blending (likely to get white); +#X text 461 231 subtractive blending (likely to get black); +#X text 467 184 alpha blending; +#X msg 367 281 pix_multiply; +#X msg 368 256 pix_diff; +#X msg 366 232 pix_subtract; +#X msg 366 207 pix_add; +#X msg 367 184 pix_composite; +#X text 469 281 multiply 2 images together; +#X obj 254 87 pix_image ../data/dancer.JPG; +#X obj 290 136 pix_image ../data/fractal.JPG; +#X text 465 259 difference; +#X obj 20 69 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 289 80 pd Gem.init; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X restore 25 113 pd gemwin; +#X msg 25 89 create; +#X text 21 69 Create window and render; +#X connect 0 0 5 0; +#X connect 1 0 16 0; +#X connect 2 0 15 0; +#X connect 4 0 0 0; +#X connect 9 0 4 2; +#X connect 10 0 4 2; +#X connect 11 0 4 2; +#X connect 12 0 4 2; +#X connect 13 0 4 2; +#X connect 15 0 4 0; +#X connect 16 0 4 1; +#X connect 19 0 20 0; +#X connect 20 0 19 0; diff --git a/Gem/examples/04.pix/12.composite.pd b/Gem/examples/04.pix/12.composite.pd new file mode 100644 index 0000000..ce3a790 --- /dev/null +++ b/Gem/examples/04.pix/12.composite.pd @@ -0,0 +1,54 @@ +#N canvas 246 168 681 468 10; +#X obj 270 175 pix_image ../data/dancer.JPG; +#X obj 270 338 pix_texture; +#X obj 270 379 square; +#X msg 329 360 3; +#X obj 270 278 pix_composite; +#X obj 369 209 gemhead 20; +#X obj 270 142 gemhead; +#X obj 270 207 pix_alpha; +#X msg 370 141 open ../data/dancer.JPG; +#X obj 369 244 pix_image ../data/fractal.JPG; +#X text 135 60 blending \, using the alpha-mask; +#X obj 20 79 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 289 80 pd Gem.init; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X restore 25 123 pd gemwin; +#X msg 25 105 create; +#X text 21 79 Create window and render; +#X connect 0 0 7 0; +#X connect 1 0 2 0; +#X connect 3 0 2 1; +#X connect 4 0 1 0; +#X connect 5 0 9 0; +#X connect 6 0 0 0; +#X connect 7 0 4 0; +#X connect 8 0 0 0; +#X connect 9 0 4 1; +#X connect 12 0 13 0; +#X connect 13 0 12 0; diff --git a/Gem/examples/04.pix/12.pix_multiply.pd b/Gem/examples/04.pix/12.pix_multiply.pd new file mode 100644 index 0000000..1826175 --- /dev/null +++ b/Gem/examples/04.pix/12.pix_multiply.pd @@ -0,0 +1,55 @@ +#N canvas 58 175 600 500 10; +#X obj 288 247 pix_image ../data/dancer.JPG; +#X obj 270 153 gemhead; +#X obj 270 188 pix_image ../data/fractal.JPG; +#X obj 288 214 gemhead 20; +#X obj 270 278 pix_multiply; +#X text 296 84 multiply two images together; +#X text 270 116 the dancer image is just black and white; +#X text 104 25 blending \, using multiplication; +#X obj 270 318 pix_texture; +#X obj 20 69 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 689 152 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X msg 27 83 color 1 1 1 0; +#X obj 66 65 t b b; +#X connect 0 0 4 0; +#X connect 1 0 2 0; +#X connect 3 0 2 0; +#X connect 4 0 3 0; +#X connect 4 1 1 0; +#X restore 289 80 pd Gem.init; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X restore 25 113 pd gemwin; +#X msg 25 89 create; +#X text 21 69 Create window and render; +#X obj 270 379 square 3; +#X connect 0 0 4 1; +#X connect 1 0 2 0; +#X connect 2 0 4 0; +#X connect 3 0 0 0; +#X connect 4 0 8 0; +#X connect 8 0 13 0; +#X connect 10 0 11 0; +#X connect 11 0 10 0; diff --git a/Gem/examples/04.pix/13.maskDancer.pd b/Gem/examples/04.pix/13.maskDancer.pd new file mode 100644 index 0000000..957a941 --- /dev/null +++ b/Gem/examples/04.pix/13.maskDancer.pd @@ -0,0 +1,55 @@ +#N canvas 4 20 600 500 10; +#X obj 270 278 pix_mask; +#X obj 288 247 pix_image ../data/dancer.JPG; +#X obj 270 153 gemhead; +#X obj 270 312 alpha; +#X obj 270 188 pix_image ../data/fractal.JPG; +#X obj 270 338 pix_texture; +#X obj 288 214 gemhead 20; +#X obj 270 379 square 3; +#X text 234 59 blending \, using mask; +#X obj 20 89 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 88 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X msg 25 82 color 1 1 1 0; +#X obj 88 64 t b b; +#X connect 0 0 4 0; +#X connect 1 0 2 0; +#X connect 3 0 2 0; +#X connect 4 0 3 0; +#X connect 4 1 1 0; +#X restore 289 80 pd Gem.init; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X restore 25 133 pd gemwin; +#X msg 25 109 create; +#X text 21 89 Create window and render; +#X connect 0 0 3 0; +#X connect 1 0 0 1; +#X connect 2 0 4 0; +#X connect 3 0 5 0; +#X connect 4 0 0 0; +#X connect 5 0 7 0; +#X connect 6 0 1 0; +#X connect 10 0 11 0; +#X connect 11 0 10 0; diff --git a/Gem/examples/04.pix/14.takeAlpha.pd b/Gem/examples/04.pix/14.takeAlpha.pd new file mode 100644 index 0000000..535056c --- /dev/null +++ b/Gem/examples/04.pix/14.takeAlpha.pd @@ -0,0 +1,64 @@ +#N canvas 426 68 613 402 10; +#X obj 257 92 gemhead; +#X obj 343 168 gemhead; +#X obj 257 244 pix_takealpha; +#X text 18 24 takes the alpha-channel of another image; +#X obj 456 269 pix_texture; +#X obj 456 336 square; +#X obj 456 310 translateXYZ 2 0 0; +#X obj 257 314 translateXYZ -2 0 0; +#X obj 456 289 alpha; +#X obj 257 342 square 2; +#X obj 257 270 pix_texture; +#X obj 257 290 alpha; +#X text 403 173 load an image with an alpha-mask; +#X text 355 245 take the alpha-mask of img2; +#X obj 20 69 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 289 80 pd Gem.init; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X restore 25 113 pd gemwin; +#X msg 25 89 create; +#X text 21 69 Create window and render; +#X obj 343 210 t a a; +#X obj 257 125 pix_image ../data/temp2.JPG; +#X obj 343 190 pix_image ../data/fractalAlpha.TIF; +#X connect 0 0 19 0; +#X connect 1 0 20 0; +#X connect 2 0 10 0; +#X connect 4 0 8 0; +#X connect 6 0 5 0; +#X connect 7 0 9 0; +#X connect 8 0 6 0; +#X connect 10 0 11 0; +#X connect 11 0 7 0; +#X connect 15 0 16 0; +#X connect 16 0 15 0; +#X connect 18 0 2 1; +#X connect 18 1 4 0; +#X connect 19 0 2 0; +#X connect 20 0 18 0; diff --git a/Gem/examples/04.pix/15.pix_alpha.pd b/Gem/examples/04.pix/15.pix_alpha.pd new file mode 100644 index 0000000..de645f2 --- /dev/null +++ b/Gem/examples/04.pix/15.pix_alpha.pd @@ -0,0 +1,82 @@ +#N canvas 78 67 719 587 10; +#X obj 332 30 gemhead; +#X obj 332 371 pix_texture; +#X msg 375 394 4; +#X obj 332 76 pix_image ../data/fractal.JPG; +#X obj 332 302 pix_alpha; +#X obj 332 421 square; +#X obj 332 336 alpha; +#X msg 456 166 1 1 1; +#X msg 459 243 0 0 0; +#X msg 356 219 0.5; +#X msg 348 185 1; +#X msg 457 209 1 0.5 0.5; +#X msg 362 255 0; +#X text 212 222 set the alpha value; +#X text 394 138 set the high threshold; +#N canvas 12 0 271 246 cube 0; +#X obj 69 39 gemhead 20; +#X obj 69 71 translateXYZ 0 0 -4; +#X obj 69 205 cube; +#X obj 69 180 rotateXYZ; +#X obj 69 112 render_trigger; +#X obj 115 141 i; +#X obj 145 142 + 1; +#X obj 180 143 % 360; +#X connect 0 0 1 0; +#X connect 1 0 4 0; +#X connect 3 0 2 0; +#X connect 4 0 3 0; +#X connect 4 1 5 0; +#X connect 5 0 6 0; +#X connect 5 0 3 1; +#X connect 5 0 3 2; +#X connect 5 0 3 3; +#X connect 6 0 7 0; +#X connect 7 0 5 1; +#X restore 444 551 pd cube in the back; +#X obj 20 69 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 289 80 pd Gem.init; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X restore 25 113 pd gemwin; +#X msg 25 89 create; +#X text 21 69 Create window and render; +#X connect 0 0 3 0; +#X connect 1 0 5 0; +#X connect 2 0 5 1; +#X connect 3 0 4 0; +#X connect 4 0 6 0; +#X connect 6 0 1 0; +#X connect 7 0 4 3; +#X connect 8 0 4 3; +#X connect 9 0 4 1; +#X connect 10 0 4 1; +#X connect 11 0 4 3; +#X connect 12 0 4 1; +#X connect 17 0 18 0; +#X connect 18 0 17 0; diff --git a/Gem/examples/04.pix/16.alphaGrey.pd b/Gem/examples/04.pix/16.alphaGrey.pd new file mode 100644 index 0000000..9d5405b --- /dev/null +++ b/Gem/examples/04.pix/16.alphaGrey.pd @@ -0,0 +1,78 @@ +#N canvas 28 0 713 500 10; +#X obj 135 336 pix_texture; +#X obj 135 393 square 2; +#X obj 135 171 pix_image ../data/fractalAlpha.TIF; +#X obj 135 308 pix_a_2grey 0.5; +#X obj 135 215 translateXYZ -2 0 0; +#X obj 386 140 gemhead; +#X obj 386 309 pix_texture; +#X obj 386 402 square 2; +#X obj 386 171 pix_image ../data/fractalAlpha.TIF; +#X obj 386 348 alpha; +#X obj 386 209 translateXYZ 2 0 0; +#X obj 228 13 pix_a_2grey; +#X text 261 55 grey's out all pixels \, of which the alpha-channel +is above a certain threshold; +#X obj 240 269 hsl 128 15 -1 1 0 0 empty empty empty 20 8 0 8 -262144 +-1 -1 3100 1; +#X msg 237 246 0; +#X msg 266 246 0.5; +#X obj 20 39 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X text 21 39 Create window and render; +#X obj 135 139 gemhead; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 1 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 28 61 pd gemwin; +#X floatatom 237 288 5 -1 1 0 - - -; +#X connect 0 0 1 0; +#X connect 2 0 4 0; +#X connect 3 0 0 0; +#X connect 4 0 3 0; +#X connect 5 0 8 0; +#X connect 6 0 9 0; +#X connect 8 0 10 0; +#X connect 9 0 7 0; +#X connect 10 0 6 0; +#X connect 13 0 20 0; +#X connect 14 0 13 0; +#X connect 15 0 13 0; +#X connect 18 0 2 0; +#X connect 20 0 3 1; diff --git a/Gem/examples/04.pix/16.pix_2grey.pd b/Gem/examples/04.pix/16.pix_2grey.pd new file mode 100644 index 0000000..e2552c1 --- /dev/null +++ b/Gem/examples/04.pix/16.pix_2grey.pd @@ -0,0 +1,45 @@ +#N canvas 204 170 691 547 10; +#X obj 308 140 gemhead; +#X obj 308 374 pix_texture; +#X obj 308 402 square 2; +#X obj 308 171 pix_image ../data/fractalAlpha.TIF; +#X obj 308 297 pix_2grey; +#X obj 20 159 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 289 80 pd Gem.init; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X restore 25 203 pd gemwin; +#X msg 25 179 create; +#X text 21 159 Create window and render; +#X text 64 81 greys out all pixels (but pixel-values are still in RGBA) +; +#X connect 0 0 3 0; +#X connect 1 0 2 0; +#X connect 3 0 4 0; +#X connect 4 0 1 0; +#X connect 6 0 7 0; +#X connect 7 0 6 0; diff --git a/Gem/examples/04.pix/17.pix_gain.pd b/Gem/examples/04.pix/17.pix_gain.pd new file mode 100644 index 0000000..3b6ae5e --- /dev/null +++ b/Gem/examples/04.pix/17.pix_gain.pd @@ -0,0 +1,72 @@ +#N canvas 111 106 885 510 10; +#X floatatom 664 182 0 0 0 0 - - -; +#X obj 664 210 / 100; +#X floatatom 610 163 0 0 0 0 - - -; +#X obj 610 192 / 100; +#X obj 343 56 gemhead; +#X obj 343 319 pix_texture; +#X msg 394 359 4; +#X floatatom 556 121 0 0 0 0 - - -; +#X obj 556 149 / 100; +#X obj 343 268 pix_gain; +#X obj 556 241 pack 0 0 0; +#X obj 343 387 triangle; +#X text 356 341 click here to change the size of the triangle; +#X msg 570 213 bang; +#X obj 343 82 pix_image ../data/fractal.JPG; +#X obj 364 134 vsl 15 128 0 1 0 0 empty empty empty 20 8 0 8 -262144 +-1 -1 0 1; +#X text 382 141 overall factor; +#X text 632 121 color-wise factor; +#X text 103 453 using [pix_gain] is probably very expensive (since +it does operations on your CPU). Try using [color] if your card has +openGL-hw-accleration...; +#X obj 20 69 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 289 80 pd Gem.init; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X restore 25 113 pd gemwin; +#X msg 25 89 create; +#X text 21 69 Create window and render; +#X connect 0 0 1 0; +#X connect 1 0 10 2; +#X connect 1 0 13 0; +#X connect 2 0 3 0; +#X connect 3 0 10 1; +#X connect 3 0 13 0; +#X connect 4 0 14 0; +#X connect 5 0 11 0; +#X connect 6 0 11 1; +#X connect 7 0 8 0; +#X connect 8 0 10 0; +#X connect 9 0 5 0; +#X connect 10 0 9 2; +#X connect 13 0 10 0; +#X connect 14 0 9 0; +#X connect 15 0 9 1; +#X connect 20 0 21 0; +#X connect 21 0 20 0; diff --git a/Gem/examples/04.pix/18.Curves.pd b/Gem/examples/04.pix/18.Curves.pd new file mode 100644 index 0000000..ca02c91 --- /dev/null +++ b/Gem/examples/04.pix/18.Curves.pd @@ -0,0 +1,180 @@ +#N canvas 119 33 764 634 10; +#N canvas 285 0 681 629 tables 0; +#N canvas 0 0 450 300 (subpatch) 0; +#X array red 256 float 0; +#X coords 0 255 255 0 256 140 1; +#X restore 95 30 graph; +#N canvas 0 0 450 300 (subpatch) 0; +#X array green 256 float 0; +#X coords 0 255 255 0 256 140 1; +#X restore 399 29 graph; +#N canvas 0 0 450 300 (subpatch) 0; +#X array blue 256 float 0; +#X coords 0 255 255 0 256 140 1; +#X restore 98 214 graph; +#N canvas 0 0 450 300 (subpatch) 0; +#X array alpha 64 float 0; +#X coords 0 255 63 0 256 140 1; +#X restore 396 212 graph; +#N canvas 0 0 450 300 (subpatch) 0; +#X array edge 8 float 0; +#X coords 0 255 7 0 256 140 1; +#X restore 49 440 graph; +#X text 319 459 set all black and white pixels to black.; +#X text 318 477 set all "grey" pixels (the transients) to white.; +#X restore 219 225 pd tables; +#X obj 30 272 gemhead; +#X obj 30 468 pix_texture; +#N canvas 0 0 450 300 (subpatch) 0; +#X array rgba 67 float 0; +#X coords 0 256 66 0 256 140 1; +#X restore 217 70 graph; +#X text 78 8 pix_curve: adjust the colour of an image; +#X text 291 227 separate tables for r \, g \, b and a; +#X obj 466 274 pix_curve rgba; +#X obj 469 324 pix_curve red green blue; +#X obj 470 373 pix_curve red green blue alpha; +#X text 504 291 one curve for all channels; +#X text 505 391 curves for r \, g \, b \, a; +#X text 500 341 curves for r \, g \, b \; leave a unchanged; +#X msg 507 127 \; rgba cosinesum 64 128 128; +#X obj 30 393 pix_curve rgba; +#N canvas 328 58 600 502 init 0; +#X obj 93 39 loadbang; +#X msg 115 87 \; rgba resize 256 \; red resize 256 green resize 256 +\; blue resize 256 \; alpha resize 64 \; alpha const 128; +#X obj 93 197 t b b; +#X msg 93 219 256; +#X msg 125 218 0; +#X obj 93 241 until; +#X obj 93 262 i; +#X obj 123 261 + 1; +#X msg 93 177 bang; +#X obj 93 283 t f f f; +#X obj 93 370 tabwrite rgba; +#X msg 93 348 \$1 \$1; +#X obj 210 304 / 255; +#X obj 210 326 sqrt; +#X obj 210 347 * 255; +#X obj 210 395 tabwrite red; +#X obj 210 373 pack 0 0; +#X obj 319 456 tabwrite green; +#X obj 104 395 tabwrite blue; +#X obj 93 63 t b b b; +#X msg 364 83 \; edge resize 8 \; edge const 255 \; edge 0 0 \; edge +7 0; +#X obj 319 393 unpack; +#X obj 319 413 - 255; +#X obj 319 432 * -1; +#X obj 362 413 - 255; +#X obj 362 432 * -1; +#X connect 0 0 19 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 6 0 7 0; +#X connect 6 0 9 0; +#X connect 7 0 6 1; +#X connect 8 0 2 0; +#X connect 9 0 11 0; +#X connect 9 1 12 0; +#X connect 9 2 16 1; +#X connect 11 0 10 0; +#X connect 11 0 18 0; +#X connect 12 0 13 0; +#X connect 13 0 14 0; +#X connect 14 0 16 0; +#X connect 16 0 15 0; +#X connect 16 0 21 0; +#X connect 19 0 8 0; +#X connect 19 1 1 0; +#X connect 19 2 20 0; +#X connect 21 0 22 0; +#X connect 21 1 24 0; +#X connect 22 0 23 0; +#X connect 23 0 17 0; +#X connect 24 0 25 0; +#X connect 25 0 17 1; +#X restore 604 470 pd init; +#X msg 284 275 set rgba; +#X msg 282 325 set red green blue; +#X msg 278 375 set red green blue alpha; +#X text 505 110 an alternative colour-curve; +#X text 228 56 paint your own curve; +#X obj 30 509 square 2; +#X obj 30 488 translateXYZ -2 0 0; +#X obj 244 486 gemhead; +#X obj 244 548 pix_texture; +#X obj 244 569 translateXYZ 2 0 0; +#X obj 244 527 pix_curve edge; +#N canvas 80 38 600 318 pix_update 0; +#X obj 59 115 inlet; +#X obj 59 227 outlet; +#X text 61 19 this is quite a dummy-routine:; +#X text 78 47 just multiply the pix-buffer with 1 (do nothing !) \, +and make it thereby dirty \, so that the pix_curve routines are going +to be called....; +#X text 56 272 maybe this could be done more easily..?; +#X obj 59 202 pix_buf; +#X obj 59 156 t a b; +#X connect 0 0 6 0; +#X connect 5 0 1 0; +#X connect 6 0 5 0; +#X connect 6 1 5 0; +#X restore 30 331 pd pix_update; +#X obj 244 592 square 2; +#X obj 30 435 alpha; +#X obj 30 303 pix_image ../data/fractal.JPG; +#X obj 244 506 pix_image ../data/dancer.JPG; +#X obj 11 151 cnv 15 200 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 289 80 pd Gem.init; +#X obj 132 193 gemwin; +#X obj 132 135 t a; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 0 5 0; +#X connect 2 1 4 0; +#X connect 2 1 6 0; +#X connect 3 0 0 0; +#X connect 4 0 0 0; +#X connect 5 0 9 0; +#X connect 6 0 9 0; +#X connect 7 0 9 0; +#X connect 9 0 8 0; +#X restore 16 195 pd gemwin; +#X msg 16 171 create; +#X text 12 151 Create window and render; +#X connect 1 0 29 0; +#X connect 2 0 21 0; +#X connect 13 0 28 0; +#X connect 15 0 13 0; +#X connect 16 0 13 0; +#X connect 17 0 13 0; +#X connect 21 0 20 0; +#X connect 22 0 30 0; +#X connect 23 0 24 0; +#X connect 24 0 27 0; +#X connect 25 0 23 0; +#X connect 26 0 13 0; +#X connect 28 0 2 0; +#X connect 29 0 26 0; +#X connect 30 0 25 0; +#X connect 32 0 33 0; +#X connect 33 0 32 0; diff --git a/Gem/examples/04.pix/19.colorMatrix.pd b/Gem/examples/04.pix/19.colorMatrix.pd new file mode 100644 index 0000000..c53ab1a --- /dev/null +++ b/Gem/examples/04.pix/19.colorMatrix.pd @@ -0,0 +1,60 @@ +#N canvas 10 20 769 486 10; +#X obj 252 258 gemhead; +#X obj 252 313 pix_image ../data/fractal.JPG; +#X obj 252 343 pix_colormatrix; +#X msg 351 223 0 1 0 0 0 1 1 0 0; +#X msg 321 157 0 0 1 1 0 0 0 1 0; +#X msg 284 61 1 0 0 0 0 1 0 1 0; +#X obj 252 371 pix_texture; +#X obj 252 411 square; +#X msg 312 110 1 0 0 0 1 0 0 0 1; +#X text 460 156 shift colors: red->[0 \, 0 \, 1]=blue \; green->[1 +\, 0 \, 0]=red \; blue->[0 \, 1 \, 0]=green; +#X text 469 97 unity matrix: [1 \, 0 \, 0 \; 0 \, 1 \, 0 \; 0 \, 0 +\, 1]; +#X text 446 47 swap green and blue: [1 \, 0 \, 0 \; 0 \, 0 \, 1 \; +0 \, 1 \, 0]; +#X text 480 210 shift colors: red->[0 \, 1 \, 0]=green \; green->[0 +\, 0 \, 1]=blue \; blue->[1 \, 0 \, 0]=red; +#X text 26 23 matrix-multiply the RGB-vector; +#X obj 41 142 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 289 80 pd Gem.init; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X restore 46 186 pd gemwin; +#X msg 46 162 create; +#X text 42 142 Create window and render; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 2 0 6 0; +#X connect 3 0 2 1; +#X connect 4 0 2 1; +#X connect 5 0 2 1; +#X connect 6 0 7 0; +#X connect 8 0 2 1; +#X connect 15 0 16 0; +#X connect 16 0 15 0; diff --git a/Gem/examples/04.pix/20.convolve.pd b/Gem/examples/04.pix/20.convolve.pd new file mode 100644 index 0000000..bf3999f --- /dev/null +++ b/Gem/examples/04.pix/20.convolve.pd @@ -0,0 +1,106 @@ +#N canvas 150 20 846 728 12; +#X obj 575 515 s matrix; +#X obj 502 516 s scale; +#X msg 502 483 1; +#X obj 575 404 s matrix; +#X obj 502 405 s scale; +#X msg 502 372 1; +#X obj 572 311 s matrix; +#X obj 499 312 s scale; +#X msg 499 279 1; +#X obj 572 206 s matrix; +#X obj 499 207 s scale; +#X msg 499 174 1; +#X obj 576 106 s matrix; +#X obj 503 107 s scale; +#X msg 503 74 1; +#X obj 320 153 s matrix; +#X obj 247 154 s scale; +#X msg 247 121 1; +#X msg 576 47 -1 -1 -1 -1 8 -1 -1 -1 -1; +#X msg 572 146 -1 -4 -1 -4 20 -4 -1 -4 -1; +#X msg 314 517 1 2 1 2 4 2 1 2 1; +#X text 506 10 edge detection matrices; +#X text 506 26 scale = 1; +#X text 234 497 scale = 16; +#X text 234 482 smoothing matrix; +#X obj 14 330 gemhead; +#X obj 14 522 pix_texture; +#X obj 14 356 pix_image ../data/fractal.JPG; +#X obj 14 455 pix_convolve 3 3; +#X msg 320 92 0 0 0 0 1 0 0 0 0; +#X msg 572 248 0 -1 0 0 2 0 0 -1 0; +#X msg 575 450 -1 0 -1 0 4 0 -1 0 -1; +#X msg 575 343 0 0 0 -1 2 -1 0 0 0; +#X obj 314 596 s matrix; +#X obj 153 423 r matrix; +#X obj 241 596 s scale; +#X obj 83 422 r scale; +#X text 241 72 scale = 1; +#X text 241 55 identity matrix; +#X obj 14 547 square 4; +#X obj 20 219 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 289 80 pd Gem.init; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X restore 25 263 pd gemwin; +#X msg 25 239 create; +#X text 21 219 Create window and render; +#X msg 241 545 1 16; +#X obj 241 571 /; +#X text 43 650 a good start for the scale is the sum of all the elements +; +#X connect 2 0 1 0; +#X connect 5 0 4 0; +#X connect 8 0 7 0; +#X connect 11 0 10 0; +#X connect 14 0 13 0; +#X connect 17 0 16 0; +#X connect 18 0 14 0; +#X connect 18 0 12 0; +#X connect 19 0 11 0; +#X connect 19 0 9 0; +#X connect 20 0 44 0; +#X connect 20 0 33 0; +#X connect 25 0 27 0; +#X connect 26 0 39 0; +#X connect 27 0 28 0; +#X connect 28 0 26 0; +#X connect 29 0 17 0; +#X connect 29 0 15 0; +#X connect 30 0 8 0; +#X connect 30 0 6 0; +#X connect 31 0 2 0; +#X connect 31 0 0 0; +#X connect 32 0 5 0; +#X connect 32 0 3 0; +#X connect 34 0 28 2; +#X connect 36 0 28 1; +#X connect 41 0 42 0; +#X connect 42 0 41 0; +#X connect 44 0 45 0; +#X connect 45 0 35 0; diff --git a/Gem/examples/04.pix/22.biquad.pd b/Gem/examples/04.pix/22.biquad.pd new file mode 100644 index 0000000..6e9934e --- /dev/null +++ b/Gem/examples/04.pix/22.biquad.pd @@ -0,0 +1,108 @@ +#N canvas 269 10 753 499 10; +#X msg 360 312 set; +#X floatatom 401 209 4 0 0 0 - - -; +#X floatatom 442 209 4 0 0 0 - - -; +#X obj 441 229 t b f; +#X floatatom 491 209 4 0 0 0 - - -; +#X obj 490 229 t b f; +#X floatatom 532 208 4 0 0 0 - - -; +#X obj 531 228 t b f; +#X floatatom 576 210 4 0 0 0 - - -; +#X obj 575 230 t b f; +#X text 257 23 calculates the following difference equation:; +#X text 261 38 y(n) = ff1 * w(n) + ff2 * w(n-1) + ff3 * w(n-2); +#X floatatom 621 210 4 0 0 0 - - -; +#X obj 620 230 t b f; +#X obj 407 260 pack 0 0 0 0 0 0; +#X text 265 55 w(n) = fb0 * x(n) + fb1 * w(n-1) + fb2 * w(n-2); +#X msg 403 98 1 0 0 1 0 0; +#X msg 403 121 1 0 0 0.2 0.2 0.6; +#X obj 35 224 gemhead; +#X obj 35 300 pix_texture; +#X obj 35 324 square 3; +#X text 403 190 fb0; +#X text 443 190 fb1; +#X text 494 189 fb2; +#X text 533 186 ff1; +#X text 582 187 ff2; +#X text 623 186 ff3; +#X obj 355 257 t l; +#X msg 175 218 0; +#X msg 202 218 1; +#X msg 231 218 2; +#X text 551 94 route through; +#X text 553 120 a low-pass; +#X text 34 391 pix_biquad: fb0 fb1 fb2 ff1 ff2 ff3; +#X text 338 377 very(*) similar to the pd-object; +#X obj 572 375 biquad~; +#X text 336 406 *: but not exactly the same; +#X text 390 312 set w(n-1) and w(n-2) to the next(!) x(n); +#X obj 35 274 pix_biquad; +#X msg 404 150 0.05 0.8 0.15 0.2 0.2 0.6; +#X text 587 148 a LOW-pass; +#X text 397 331 (important for hard feedback-loops); +#X text 98 455 no sanity check is done for the coefficients !; +#X text 151 200 click these OFTEN !; +#X obj 20 69 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 289 80 pd Gem.init; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X restore 25 113 pd gemwin; +#X msg 25 89 create; +#X text 21 69 Create window and render; +#X obj 35 247 pix_multiimage ../data/temp*.JPG 2; +#X connect 0 0 38 0; +#X connect 1 0 14 0; +#X connect 2 0 3 0; +#X connect 3 0 14 0; +#X connect 3 1 14 1; +#X connect 4 0 5 0; +#X connect 5 0 14 0; +#X connect 5 1 14 2; +#X connect 6 0 7 0; +#X connect 7 0 14 0; +#X connect 7 1 14 3; +#X connect 8 0 9 0; +#X connect 9 0 14 0; +#X connect 9 1 14 4; +#X connect 12 0 13 0; +#X connect 13 0 14 0; +#X connect 13 1 14 5; +#X connect 14 0 27 0; +#X connect 16 0 27 0; +#X connect 17 0 27 0; +#X connect 18 0 48 0; +#X connect 19 0 20 0; +#X connect 27 0 38 0; +#X connect 28 0 48 1; +#X connect 29 0 48 1; +#X connect 30 0 48 1; +#X connect 38 0 19 0; +#X connect 39 0 27 0; +#X connect 45 0 46 0; +#X connect 46 0 45 0; +#X connect 48 0 38 0; diff --git a/Gem/examples/04.pix/23.gravity.pd b/Gem/examples/04.pix/23.gravity.pd new file mode 100644 index 0000000..9821f94 --- /dev/null +++ b/Gem/examples/04.pix/23.gravity.pd @@ -0,0 +1,108 @@ +#N canvas 0 0 626 514 10; +#X floatatom 107 437 5 0 0 0 - - -; +#X floatatom 160 436 5 0 0 0 - - -; +#X floatatom 219 435 5 0 0 0 - - -; +#X obj 54 338 pix_blob 1; +#X msg 86 227 0; +#X msg 94 250 1; +#X msg 101 271 2; +#X msg 107 292 3; +#X msg 110 313 4; +#X text 119 456 X; +#X text 173 456 Y; +#X text 230 455 size; +#X text 135 228 grey (default); +#X text 136 250 red; +#X text 136 269 green; +#X text 137 291 blue; +#X text 137 313 alpha; +#X text 327 20 pix_blob; +#X text 324 32 =========; +#X text 276 48 get the center of gravity in a picture; +#X msg 288 298 1 0.5 0.5 1; +#X msg 284 274 0.33; +#X msg 276 252 1 1 2; +#X text 328 252 ==; +#X msg 355 251 1 1 2 0; +#X msg 356 274 0.33 0.33 0.33 0; +#X text 326 275 ==; +#X msg 363 112 bang; +#X obj 363 134 t b b; +#X msg 428 114 bang; +#X obj 428 136 t b b; +#X text 341 454 size = 0..1; +#X text 341 425 x/y-coordinates from lower-left \; 0..1; +#X text 329 96 upper-left; +#X text 428 93 lower-right; +#X obj 54 176 pix_multiimage ../data/blob*.tif 2; +#X obj 54 148 gemhead; +#X msg 154 116 0; +#X msg 154 136 1; +#X msg 154 154 2; +#X obj 54 469 pix_texture; +#X obj 54 492 square 4; +#X msg 139 496 quality 0; +#X obj 139 475 loadbang; +#X text 307 233 rgb(a)-color; +#X obj 276 320 t b l; +#X obj 20 19 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 289 80 pd Gem.init; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X restore 25 63 pd gemwin; +#X msg 25 39 create; +#X text 21 19 Create window and render; +#X connect 3 0 40 0; +#X connect 3 1 0 0; +#X connect 3 2 1 0; +#X connect 3 3 2 0; +#X connect 4 0 3 1; +#X connect 5 0 3 1; +#X connect 6 0 3 1; +#X connect 7 0 3 1; +#X connect 8 0 3 1; +#X connect 20 0 45 0; +#X connect 21 0 45 0; +#X connect 22 0 45 0; +#X connect 27 0 28 0; +#X connect 28 0 39 0; +#X connect 28 1 5 0; +#X connect 29 0 30 0; +#X connect 30 0 39 0; +#X connect 30 1 7 0; +#X connect 35 0 3 0; +#X connect 36 0 35 0; +#X connect 37 0 35 1; +#X connect 38 0 35 1; +#X connect 39 0 35 1; +#X connect 40 0 41 0; +#X connect 42 0 40 0; +#X connect 43 0 42 0; +#X connect 45 0 39 0; +#X connect 45 1 3 2; +#X connect 47 0 48 0; +#X connect 48 0 47 0; diff --git a/Gem/examples/04.pix/24.time-filtering.pd b/Gem/examples/04.pix/24.time-filtering.pd new file mode 100644 index 0000000..c1ca697 --- /dev/null +++ b/Gem/examples/04.pix/24.time-filtering.pd @@ -0,0 +1,102 @@ +#N canvas 228 84 794 352 10; +#X floatatom 279 191 5 0 0 0 - - -; +#X obj 266 241 pix_tIIR 2 2; +#X obj 279 211 * 0.01; +#X obj 279 146 unpack 30 60 10 50 50 -20; +#X floatatom 328 191 5 0 0 0 - - -; +#X obj 328 211 * 0.01; +#X floatatom 375 191 5 0 0 0 - - -; +#X obj 375 211 * 0.01; +#X floatatom 424 191 5 0 0 0 - - -; +#X obj 424 211 * 0.01; +#X floatatom 471 191 5 0 0 0 - - -; +#X obj 471 211 * 0.01; +#X floatatom 520 191 5 0 0 0 - - -; +#X obj 520 211 * 0.01; +#X msg 279 100 bang; +#X obj 266 38 gemhead; +#X msg 601 44 auto \$1; +#X obj 601 25 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X obj 279 122 pack 30 60 10 50 50 -20; +#X floatatom 461 64 5 0 0 0 - - -; +#X floatatom 351 86 5 0 0 0 - - -; +#X obj 266 262 pix_texture; +#X msg 421 27 open ../data/alea.mpg; +#X msg 421 7 open \$1; +#X obj 483 7 openpanel; +#X obj 573 5 bng 20 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 446 63 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 266 61 pix_film ../data/alea.mpg; +#X obj 266 309 square 3; +#X obj 266 286 rotateXYZ 0 -30 0; +#X obj 20 69 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 289 80 pd Gem.init; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X restore 25 113 pd gemwin; +#X msg 25 89 create; +#X text 21 69 Create window and render; +#X connect 0 0 2 0; +#X connect 1 0 21 0; +#X connect 2 0 1 1; +#X connect 3 0 0 0; +#X connect 3 1 4 0; +#X connect 3 2 6 0; +#X connect 3 3 8 0; +#X connect 3 4 10 0; +#X connect 3 5 12 0; +#X connect 4 0 5 0; +#X connect 5 0 1 2; +#X connect 6 0 7 0; +#X connect 7 0 1 3; +#X connect 8 0 9 0; +#X connect 9 0 1 4; +#X connect 10 0 11 0; +#X connect 11 0 1 5; +#X connect 12 0 13 0; +#X connect 13 0 1 6; +#X connect 14 0 18 0; +#X connect 15 0 27 0; +#X connect 16 0 27 0; +#X connect 17 0 16 0; +#X connect 18 0 3 0; +#X connect 19 0 27 1; +#X connect 21 0 29 0; +#X connect 22 0 27 0; +#X connect 23 0 27 0; +#X connect 24 0 23 0; +#X connect 25 0 24 0; +#X connect 26 0 19 0; +#X connect 27 0 1 0; +#X connect 27 1 20 0; +#X connect 27 2 26 0; +#X connect 29 0 28 0; +#X connect 31 0 32 0; +#X connect 32 0 31 0; diff --git a/Gem/examples/04.pix/25.buffer.pd b/Gem/examples/04.pix/25.buffer.pd new file mode 100644 index 0000000..857cdaf --- /dev/null +++ b/Gem/examples/04.pix/25.buffer.pd @@ -0,0 +1,137 @@ +#N canvas 0 0 832 589 10; +#X obj 62 327 gemhead; +#X obj 62 369 pix_texture; +#X obj 62 392 square 4; +#X obj 316 316 gemhead; +#X obj 316 342 pix_film; +#X obj 316 387 t a b; +#X obj 361 430 i; +#X obj 388 430 + 1; +#X obj 361 408 spigot; +#X obj 398 364 t b b; +#X msg 398 387 1; +#X msg 455 388 0; +#X obj 398 339 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X text 419 339 start recording into the buffer; +#X msg 398 296 open \$1; +#X obj 398 275 openpanel; +#X obj 398 257 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X msg 477 240 ../data/anim-1.mov; +#X msg 477 260 ../data/alea.mpg; +#X msg 478 216 ../data/homer.avi; +#X obj 477 282 symbol; +#X floatatom 155 321 5 0 0 0 - - -; +#X text 195 320 index; +#X msg 408 408 0; +#X obj 571 401 gemhead; +#X obj 571 427 pix_image ../data/fractal.JPG; +#X floatatom 423 497 5 0 0 0 - - -; +#X msg 405 318 auto 1; +#X msg 457 319 0; +#X obj 361 456 moses 10; +#X floatatom 663 406 5 0 0 0 - - -; +#X msg 663 386 5; +#X text 467 493 put the next image into "myImages" @ index; +#X msg 140 390 set yourImages; +#X msg 212 490 set yourImages; +#X text 213 473 set the storage-name; +#X obj 62 349 pix_buffer_read myImages; +#X obj 316 515 pix_buffer_write myImages; +#X obj 571 453 pix_buffer_write myImages; +#X text 291 539 write an image into a certain storage-buffer; +#X text 15 422 read an image from a certain storage-buffer; +#X text 17 302 get an image from the pix_buffer; +#X obj 33 227 pix_buffer yourImages 10; +#X obj 20 69 cnv 15 200 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 289 80 pd Gem.init; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X restore 25 113 pd gemwin; +#X msg 25 89 create; +#X text 21 69 Create window and render; +#X text 284 32 ============; +#X text 236 48 store/get images into/from a buffer; +#X msg 226 77 bang; +#X floatatom 226 174 5 0 0 0 - - -; +#X text 265 77 get the size of the depot; +#X msg 237 116 allocate 128 64 4; +#X text 371 104 pre-allocate each image-buffer to hold at east 128*64*4 +pixels; +#X text 388 155 a storage-place for "10" pix-images called "myImages" +; +#X obj 226 153 pix_buffer myImages 10; +#X text 287 20 [pix_buffer]; +#X msg 353 181 open ../data/fractal.JPG 5; +#X text 524 182 load an image into a certain storage-buffer; +#X connect 0 0 36 0; +#X connect 1 0 2 0; +#X connect 3 0 4 0; +#X connect 4 0 5 0; +#X connect 5 0 37 0; +#X connect 5 1 8 0; +#X connect 6 0 7 0; +#X connect 6 0 29 0; +#X connect 7 0 6 1; +#X connect 8 0 6 0; +#X connect 9 0 10 0; +#X connect 9 1 23 0; +#X connect 10 0 8 1; +#X connect 11 0 8 1; +#X connect 11 0 31 0; +#X connect 12 0 9 0; +#X connect 14 0 4 0; +#X connect 14 0 12 0; +#X connect 14 0 27 0; +#X connect 14 0 28 0; +#X connect 15 0 14 0; +#X connect 16 0 15 0; +#X connect 17 0 20 0; +#X connect 18 0 20 0; +#X connect 19 0 20 0; +#X connect 20 0 14 0; +#X connect 21 0 36 1; +#X connect 23 0 6 1; +#X connect 24 0 25 0; +#X connect 25 0 38 0; +#X connect 26 0 37 1; +#X connect 27 0 4 0; +#X connect 28 0 4 1; +#X connect 29 0 26 0; +#X connect 29 1 11 0; +#X connect 30 0 38 1; +#X connect 31 0 30 0; +#X connect 33 0 36 0; +#X connect 34 0 37 0; +#X connect 36 0 1 0; +#X connect 44 0 45 0; +#X connect 45 0 44 0; +#X connect 49 0 55 0; +#X connect 52 0 55 0; +#X connect 55 0 50 0; +#X connect 57 0 55 0; diff --git a/Gem/examples/04.pix/26.framebuffer_readback.pd b/Gem/examples/04.pix/26.framebuffer_readback.pd new file mode 100644 index 0000000..3f49f1e --- /dev/null +++ b/Gem/examples/04.pix/26.framebuffer_readback.pd @@ -0,0 +1,88 @@ +#N canvas 0 0 826 651 10; +#X msg 112 86 create \, 1; +#X obj 112 131 gemwin; +#X obj 311 112 pix_buffer \$0-framebuffer 2; +#X obj 620 108 gemhead 5; +#X obj 620 129 world_light; +#X msg 129 108 lighting 1; +#X text 44 5 you can render a scene into a framebuffer \, then take +a snapshot of the framebuffer with [pix_snap] and use this as an ordinary +pix (where you can apply effects and all kind of weird things); +#X obj 75 439 cnv 15 250 130 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 161 269 cnv 15 150 150 empty empty scene 20 12 0 14 -233017 +-66577 0; +#X obj 82 196 gemhead 20; +#X obj 82 220 gemframebuffer; +#X msg 163 195 dimen 256 256; +#X obj 167 331 rotateXYZ; +#X obj 167 376 teapot; +#X obj 82 266 t a a b; +#X obj 187 293 i; +#X obj 220 292 + 1; +#X obj 250 291 % 360; +#X obj 82 453 t a b; +#X msg 114 474 snap; +#X obj 82 522 t a b; +#X msg 296 527 1; +#X obj 82 547 pix_buffer_write \$0-framebuffer; +#X obj 410 262 gemhead 30; +#X obj 410 306 t a b; +#X msg 465 307 1; +#X obj 410 331 pix_buffer_read \$0-framebuffer; +#X obj 410 411 pix_texture; +#X obj 410 476 square 3; +#X obj 82 243 translateXYZ 0 0 -4; +#X obj 82 498 pix_snap 0 0 256 256; +#X obj 167 353 color 1 0 1; +#X floatatom 226 313 5 0 0 0 - - -; +#X obj 410 453 rotateXYZ; +#X floatatom 445 433 5 0 0 0 - - -; +#X text 318 130 temporary storage; +#X obj 163 175 loadbang; +#X text 130 451 later usage; +#X text 129 436 snapshot and store image for; +#X text 562 308 fetch framebuffer-pix; +#X text 535 379 apply some nifty FX; +#X text 73 597 note \, that there are more efficient ways to apply +FX to framebuffers (noteably openGL-shaders: see examples/10.glsl/ +for more information); +#X obj 425 358 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 +1; +#X obj 410 380 pix_kaleidoscope; +#X connect 0 0 1 0; +#X connect 3 0 4 0; +#X connect 5 0 1 0; +#X connect 9 0 10 0; +#X connect 10 0 29 0; +#X connect 11 0 10 0; +#X connect 12 0 31 0; +#X connect 14 0 18 0; +#X connect 14 1 12 0; +#X connect 14 2 15 0; +#X connect 15 0 16 0; +#X connect 15 0 12 1; +#X connect 15 0 12 2; +#X connect 16 0 17 0; +#X connect 17 0 15 1; +#X connect 18 0 30 0; +#X connect 18 1 19 0; +#X connect 19 0 30 0; +#X connect 20 0 22 0; +#X connect 20 1 21 0; +#X connect 21 0 22 1; +#X connect 23 0 24 0; +#X connect 24 0 26 0; +#X connect 24 1 25 0; +#X connect 25 0 26 1; +#X connect 26 0 43 0; +#X connect 27 0 33 0; +#X connect 29 0 14 0; +#X connect 30 0 20 0; +#X connect 31 0 13 0; +#X connect 32 0 12 3; +#X connect 33 0 28 0; +#X connect 34 0 33 2; +#X connect 36 0 11 0; +#X connect 42 0 43 0; +#X connect 43 0 27 0; diff --git a/Gem/examples/04.pix/27.bitmap_font.pd b/Gem/examples/04.pix/27.bitmap_font.pd new file mode 100644 index 0000000..c6b182d --- /dev/null +++ b/Gem/examples/04.pix/27.bitmap_font.pd @@ -0,0 +1,152 @@ +#N canvas 656 222 901 508 10; +#X obj 191 413 pix_texture; +#X obj 463 158 gemwin; +#X msg 506 135 0 \, destroy; +#X msg 125 362 quality 0; +#X obj 31 200 pix_crop 0 0 6 8; +#X obj 125 342 loadbang; +#X obj 31 10 gemhead 10; +#N canvas 472 238 750 406 grab-ascii 0; +#X obj 76 144 moses 65; +#X obj 121 164 moses 91; +#X obj 166 194 moses 97; +#X obj 211 214 moses 123; +#X obj 153 308 outlet; +#X obj 211 234 - 97; +#X text 174 164 from A to Z (65 to 90); +#X text 276 212 from a to z (97 to 122); +#X text 137 331 remap from 0 to 25; +#X obj 121 185 - 65; +#X obj 334 342 outlet; +#X text 326 359 bang on ; +#X obj 455 342 outlet; +#X obj 334 289 sel 10 32 8; +#X obj 565 342 outlet; +#X text 556 359 bang on ; +#X text 446 359 bang on ; +#X obj 303 319 loadbang; +#X obj 76 114 key; +#X connect 0 0 13 0; +#X connect 0 1 1 0; +#X connect 1 0 9 0; +#X connect 1 1 2 0; +#X connect 2 1 3 0; +#X connect 3 0 5 0; +#X connect 5 0 4 0; +#X connect 9 0 4 0; +#X connect 13 0 10 0; +#X connect 13 1 12 0; +#X connect 13 2 14 0; +#X connect 17 0 10 0; +#X connect 18 0 0 0; +#X restore 73 51 pd grab-ascii; +#X obj 100 132 f; +#X obj 413 248 loadbang; +#X obj 260 189 * 6; +#X obj 73 158 * 6; +#X msg 135 92 0; +#X obj 191 263 gemhead 9; +#X obj 135 71 t b b; +#X obj 75 178 t b b f; +#X obj 31 29 pix_image ../data/bitmap_font_6x8.bmp; +#X obj 463 64 bng 15 250 50 0 empty empty empty 17 7 0 10 -4034 -1 +-1; +#X text 310 22 <- this is the bitmap font; +#X obj 31 138 pix_grey; +#X obj 73 92 t f b; +#X obj 127 132 + 1; +#X text 485 231 - key in range A-Z and a-z; +#X text 510 212 features :; +#X text 485 241 - space bar add a space...; +#X text 485 251 - enter reset all; +#X text 520 283 purpose :; +#X text 495 299 - orginally design to drive a LED matrix; +#X msg 260 298 roi \$1 \$2 \$3 \$4; +#X obj 260 211 t f f; +#X obj 260 253 pack 0 0 0 8; +#X obj 314 232 + 6; +#N canvas 12 50 450 300 normalize 0; +#X obj 84 70 inlet x1 y1 x2 y2; +#X obj 84 92 unpack 0 0 0 0; +#X obj 84 184 pack 0 0 0 0; +#X obj 84 206 outlet X1 Y1 X2 Y2; +#X obj 84 144 / 120; +#X obj 134 144 / 8; +#X obj 184 144 / 120; +#X obj 234 144 / 8; +#X text 288 112 adding 0.5 to make; +#X text 288 125 rounding easier...; +#X connect 0 0 1 0; +#X connect 1 0 4 0; +#X connect 1 1 5 0; +#X connect 1 2 6 0; +#X connect 1 3 7 0; +#X connect 2 0 3 0; +#X connect 4 0 2 0; +#X connect 5 0 2 1; +#X connect 6 0 2 2; +#X connect 7 0 2 3; +#X restore 260 277 pd normalize; +#X msg 413 268 grey \, fill 1 \, bang; +#X obj 31 250 pix_dump; +#X text 481 65 <- 1 click here to start rendering; +#X obj 191 334 pix_roi 0 0 0 0; +#X text 306 336 initialize to non-existent ROI; +#X obj 191 362 pix_set 120 8; +#X obj 191 165 t b f; +#X obj 225 124 t b b b; +#X msg 264 144 roi 0 0 1 1; +#X obj 225 105 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#X msg 463 117 dimen 1024 128 \, color 1 1 1 1 \, create \, 1; +#X obj 191 433 translateXYZ 0 0 0; +#X obj 191 483 rectangle 32 -2; +#X text 501 84 2 click on this patch (to focuses it) and type something +with your keyboard; +#X connect 0 0 44 0; +#X connect 2 0 1 0; +#X connect 3 0 0 0; +#X connect 4 0 34 0; +#X connect 5 0 3 0; +#X connect 6 0 16 0; +#X connect 7 0 20 0; +#X connect 7 1 14 0; +#X connect 7 2 8 0; +#X connect 8 0 21 0; +#X connect 8 0 39 0; +#X connect 9 0 33 0; +#X connect 10 0 29 0; +#X connect 11 0 15 0; +#X connect 12 0 8 0; +#X connect 13 0 36 0; +#X connect 14 0 12 0; +#X connect 14 0 13 0; +#X connect 14 1 42 0; +#X connect 15 0 34 0; +#X connect 15 1 6 0; +#X connect 15 2 4 3; +#X connect 16 0 19 0; +#X connect 17 0 43 0; +#X connect 19 0 4 0; +#X connect 20 0 11 0; +#X connect 20 1 8 0; +#X connect 21 0 8 1; +#X connect 28 0 36 0; +#X connect 29 0 30 0; +#X connect 29 1 31 0; +#X connect 30 0 32 0; +#X connect 31 0 30 2; +#X connect 32 0 28 0; +#X connect 33 0 38 0; +#X connect 34 1 38 1; +#X connect 36 0 38 0; +#X connect 38 0 0 0; +#X connect 39 0 13 0; +#X connect 39 1 10 0; +#X connect 40 0 33 0; +#X connect 40 1 13 0; +#X connect 40 2 41 0; +#X connect 41 0 36 0; +#X connect 42 0 40 0; +#X connect 43 0 1 0; +#X connect 44 0 45 0; -- cgit v1.2.1