#N canvas 105 476 635 410 10; #X declare -lib Gem; #X text 452 8 GEM object; #X obj 8 295 cnv 15 430 90 empty empty empty 20 12 0 14 -233017 -66577 0; #X text 39 298 Inlets:; #X text 38 355 Outlets:; #X obj 8 256 cnv 15 430 30 empty empty empty 20 12 0 14 -195568 -66577 0; #X text 17 255 Arguments:; #X obj 7 76 cnv 15 430 170 empty empty empty 20 12 0 14 -233017 -66577 0; #X obj 443 77 cnv 15 180 310 empty empty empty 20 12 0 14 -228992 -66577 0; #X text 453 60 Example:; #X obj 514 314 cnv 15 100 60 empty empty empty 20 12 0 14 -195568 -66577 0; #N canvas 0 0 450 300 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 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 restore 519 353 pd gemwin; #X msg 519 334 create; #X text 515 313 Create window:; #X obj 450 138 cnv 15 160 150 empty empty empty 20 12 0 14 -24198 -66577 0; #X text 71 31 Class: pix object; #X text 56 368 Outlet 1: gemlist; #X text 63 312 Inlet 1: gemlist; #X text 50 12 Synopsis: [pix_convolve]; #X text 29 76 Description: apply a convolution kernel; #X text 20 95 pix_convolve accepts a convolution kernel to apply to a pix. The scale is a divisor for the result (to normal the matrix). The default is 1.0.; #X obj 489 183 cnv 15 100 40 empty empty empty 20 12 0 14 -233017 -66577 0; #X obj 451 84 gemhead; #X obj 510 85 bng 15 250 50 0 empty empty pix_load 20 8 0 8 -262144 -1 -1; #N canvas 0 0 587 366 image 0; #X obj 77 48 inlet; #X obj 77 344 outlet; #X obj 77 205 pix_image examples/data/fractal.JPG; #X obj 223 55 inlet; #X msg 223 123 open \$1; #X obj 223 100 openpanel; #X connect 0 0 2 0; #X connect 2 0 1 0; #X connect 3 0 5 0; #X connect 4 0 2 0; #X connect 5 0 4 0; #X restore 451 113 pd image; #X obj 451 293 pix_draw; #X text 516 105 open an image; #X text 509 118 (JPEG \, TIFF \, ..); #X floatatom 505 182 3 -1 2 0 - - -; #X floatatom 528 182 3 -1 2 0 - - -; #X floatatom 551 182 3 -1 2 0 - - -; #X floatatom 505 196 3 -1 2 0 - - -; #X floatatom 528 196 3 -1 2 0 - - -; #X floatatom 551 196 3 -1 2 0 - - -; #X floatatom 505 210 3 -1 2 0 - - -; #X floatatom 528 210 3 -1 2 0 - - -; #X floatatom 551 210 3 -1 2 0 - - -; #N canvas 0 0 450 469 pack 0; #X obj 69 169 pack 0 0 0 0 0 0 0 0 0; #X obj 69 139 t b f; #X obj 106 139 t b f; #X obj 143 139 t b f; #X obj 180 139 t b f; #X obj 217 139 t b f; #X obj 254 139 t b f; #X obj 291 139 t b f; #X obj 328 139 t b f; #X obj 32 111 inlet; #X obj 69 111 inlet; #X obj 106 111 inlet; #X obj 143 111 inlet; #X obj 180 111 inlet; #X obj 217 111 inlet; #X obj 254 111 inlet; #X obj 291 111 inlet; #X obj 328 111 inlet; #X obj 61 349 outlet; #X obj 274 355 outlet; #X obj 71 190 t l l; #X obj 257 232 unpack 0 0 0 0 0 0 0 0 0; #X obj 399 256 +; #X obj 358 256 +; #X obj 318 256 +; #X obj 277 256 +; #X obj 379 286 +; #X obj 298 286 +; #X obj 349 316 +; #X obj 268 316 +; #X obj 58 294 select 0; #X msg 48 323 1; #X obj 132 391 /; #X msg 132 365 1 \$1; #X connect 0 0 20 0; #X connect 1 0 0 0; #X connect 1 1 0 1; #X connect 2 0 0 0; #X connect 2 1 0 2; #X connect 3 0 0 0; #X connect 3 1 0 3; #X connect 4 0 0 0; #X connect 4 1 0 4; #X connect 5 0 0 0; #X connect 5 1 0 5; #X connect 6 0 0 0; #X connect 6 1 0 6; #X connect 7 0 0 0; #X connect 7 1 0 7; #X connect 8 0 0 0; #X connect 8 1 0 8; #X connect 9 0 0 0; #X connect 10 0 1 0; #X connect 11 0 2 0; #X connect 12 0 3 0; #X connect 13 0 4 0; #X connect 14 0 5 0; #X connect 15 0 6 0; #X connect 16 0 7 0; #X connect 17 0 8 0; #X connect 20 0 21 0; #X connect 20 1 19 0; #X connect 21 0 29 0; #X connect 21 1 25 0; #X connect 21 2 25 1; #X connect 21 3 24 0; #X connect 21 4 24 1; #X connect 21 5 23 0; #X connect 21 6 23 1; #X connect 21 7 22 0; #X connect 21 8 22 1; #X connect 22 0 26 1; #X connect 23 0 26 0; #X connect 24 0 27 1; #X connect 25 0 27 0; #X connect 26 0 28 1; #X connect 27 0 28 0; #X connect 28 0 29 1; #X connect 29 0 30 0; #X connect 30 0 31 0; #X connect 30 1 33 0; #X connect 31 0 18 0; #X connect 32 0 18 0; #X connect 33 0 32 0; #X restore 484 224 pd pack 9 . . .; #X obj 451 266 pix_convolve 3 3; #X floatatom 484 249 5 0 0 1 scale - -; #N canvas 411 476 605 305 unpack 0; #X obj 60 270 outlet; #X obj 111 270 outlet; #X obj 164 270 outlet; #X obj 215 270 outlet; #X obj 266 270 outlet; #X obj 317 270 outlet; #X obj 370 270 outlet; #X obj 421 270 outlet; #X obj 471 271 outlet; #X obj 179 173 unpack 0 0 0 0 0 0 0 0 0; #X obj 130 13 inlet; #X obj 130 40 route edge1 edge2 smooth none; #X msg 130 124 -1 -1 -1 -1 8 -1 -1 -1 -1; #X msg 179 102 -1 -4 -1 -4 20 -4 -1 -4 -1; #X msg 229 82 1 2 1 2 4 2 1 2 1; #X msg 278 62 0 0 0 0 1 0 0 0 0; #X connect 9 0 0 0; #X connect 9 1 1 0; #X connect 9 2 2 0; #X connect 9 3 3 0; #X connect 9 4 4 0; #X connect 9 5 5 0; #X connect 9 6 6 0; #X connect 9 7 7 0; #X connect 9 8 8 0; #X connect 10 0 11 0; #X connect 11 0 12 0; #X connect 11 1 13 0; #X connect 11 2 14 0; #X connect 11 3 15 0; #X connect 12 0 9 0; #X connect 13 0 9 0; #X connect 14 0 9 0; #X connect 15 0 9 0; #X restore 473 165 pd unpack 9 . . .; #X msg 459 142 none; #X msg 540 142 edge1; #X msg 582 142 edge2; #X msg 493 142 smooth; #X text 63 325 Inlet 2: : scale-factor; #X text 63 338 Inlet 2: list: the convolution-kernel; #X text 20 144 The matrix must have the same size as the arguments (in this instance \, a 3 x 3 matrix) \, and is given as a single list of the matrix-values row after row.; #X text 63 266 : matrix dimensions; #X text 28 190 Currently \, only square matrices are supported.; #X obj 518 8 declare -lib Gem; #X connect 10 0 11 0; #X connect 11 0 10 0; #X connect 21 0 23 0; #X connect 22 0 23 1; #X connect 23 0 37 0; #X connect 27 0 36 0; #X connect 28 0 36 1; #X connect 29 0 36 2; #X connect 30 0 36 3; #X connect 31 0 36 4; #X connect 32 0 36 5; #X connect 33 0 36 6; #X connect 34 0 36 7; #X connect 35 0 36 8; #X connect 36 0 38 0; #X connect 36 1 37 2; #X connect 37 0 24 0; #X connect 38 0 37 1; #X connect 39 0 27 0; #X connect 39 1 28 0; #X connect 39 2 29 0; #X connect 39 3 30 0; #X connect 39 4 31 0; #X connect 39 5 32 0; #X connect 39 6 33 0; #X connect 39 7 34 0; #X connect 39 8 35 0; #X connect 40 0 39 0; #X connect 41 0 39 0; #X connect 42 0 39 0; #X connect 43 0 39 0;