[PD-cvs] externals/gridflow/pd_help @!.pd, NONE, 1.1 @.pd, NONE, 1.1 @apply_colormap_channelwise.pd, NONE, 1.1 @cast.pd, NONE, 1.1 @checkers.pd, NONE, 1.1 @complex_sq.pd, NONE, 1.1 @convolve.pd, NONE, 1.1 @downscale_by.pd, NONE, 1.1 @draw_polygon.pd, NONE, 1.1 @finished.pd, NONE, 1.1 @fold.pd, NONE, 1.1 @foldinnerouter.pd, NONE, 1.1 @for.pd, NONE, 1.1 @global.pd, NONE, 1.1 @grade.pd, NONE, 1.1 @greyscale_to_rgb.pd, NONE, 1.1 @importexport.pd, NONE, 1.1 @inner2.pd, NONE, 1.1 @inout.pd, NONE, 1.1 @join.pd, NONE, 1.1 @layer.pd, NONE, 1.1 @perspective.pd, NONE, 1.1 @posterize.pd, NONE, 1.1 @print.pd, NONE, 1.1 @ravel.pd, NONE, 1.1 @redim.pd, NONE, 1.1 @rgb_to_greyscale.pd, NONE, 1.1 @scale_by.pd, NONE, 1.1 @scale_to.pd, NONE, 1.1 @scan.pd, NONE, 1.1 @solarize.pd, NONE, 1.1 @spread.pd, NONE, 1.1 @store.pd, NONE, 1.1 @twothreefour.pd, NONE, 1.1 help_count.pd, NONE, 1.1 help_fade.pd, NONE, 1.1 help_motion_detect.pd, NONE, 1.1 help_mouse.pd, NONE, 1.1 printargs.pd, NONE, 1.1 rubyprint.pd, NONE, 1.1

Mathieu Bouchard matju at users.sourceforge.net
Tue Oct 4 04:04:45 CEST 2005


Update of /cvsroot/pure-data/externals/gridflow/pd_help
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21699/pd_help

Added Files:
	@!.pd @.pd @apply_colormap_channelwise.pd @cast.pd 
	@checkers.pd @complex_sq.pd @convolve.pd @downscale_by.pd 
	@draw_polygon.pd @finished.pd @fold.pd @foldinnerouter.pd 
	@for.pd @global.pd @grade.pd @greyscale_to_rgb.pd 
	@importexport.pd @inner2.pd @inout.pd @join.pd @layer.pd 
	@perspective.pd @posterize.pd @print.pd @ravel.pd @redim.pd 
	@rgb_to_greyscale.pd @scale_by.pd @scale_to.pd @scan.pd 
	@solarize.pd @spread.pd @store.pd @twothreefour.pd 
	help_count.pd help_fade.pd help_motion_detect.pd help_mouse.pd 
	printargs.pd rubyprint.pd 
Log Message:
adding abstractions and helpfiles


--- NEW FILE: @checkers.pd ---
#N canvas 431 74 440 355 10;
#X obj 20 47 bng 15 250 50 0 empty empty empty 0 -6 0 8 -233017 -1
-1;
#X obj 20 164 @checkers;
#X obj 20 81 @for ( 0 0 ) ( 128 128 ) ( 1 1 );
#X text 16 7 @checkers;
#X text 216 297 see also;
#X obj 283 301 @draw_polygon;
#X text 354 7 gridflow;
#X obj 20 309 @out window;
#X connect 0 0 2 0;
#X connect 1 0 7 0;
#X connect 2 0 1 0;

--- NEW FILE: help_fade.pd ---
#N canvas 68 40 747 435 10;
#X obj 197 148 @in;
#X obj 215 114 @camera_control;
#X obj 95 87 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
;
#X obj 197 190 @fade 10;
#X text 268 184 the creation argument is the number of frames the fade
occurs over;
#X obj 251 161 hsl 128 15 0 127 0 0 empty empty empty -2 -6 0 8 -260818
-1 -1 0 1;
#X obj 122 86 metro 50;
#X obj 197 240 @out window;
#X text 514 13 gridflow;
#X connect 0 0 3 0;
#X connect 1 0 0 0;
#X connect 2 0 6 0;
#X connect 3 0 7 0;
#X connect 5 0 3 1;
#X connect 6 0 0 0;

--- NEW FILE: @global.pd ---
#N canvas 923 183 400 205 10;
#X text 21 22 @global;
#X text 22 53 dummy object for controlling the profiler;
#X obj 24 146 @global;
#X msg 48 95 profiler_reset;
#X msg 59 115 profiler_dump;
#X text 321 18 gridflow;
#X connect 3 0 2 0;
#X connect 4 0 2 0;

--- NEW FILE: @ravel.pd ---
#N canvas 435 101 660 279 10;
#X text 14 15 @ravel;
#X text 143 15 like @redim but always produces a 1-D grid with the
same total number of elements.;
#X obj 20 102 @in;
#X obj 20 40 bng 15 250 50 0 empty empty empty 0 -6 0 8 -233017 -1
-1;
#X obj 20 168 @dim;
#X obj 20 190 @export_list;
#X obj 20 211 print before;
#X obj 140 129 @ravel;
#X obj 259 170 @dim;
#X obj 259 192 @export_list;
#X obj 259 213 print after;
#X text 403 215 see also:;
#X obj 567 214 @perspective;
#X text 575 14 gridflow;
#X obj 477 214 @redim ( 1 );
#X msg 43 81 open bluemarble.jpg;
#X obj 20 60 fork;
#X connect 2 0 4 0;
#X connect 2 0 7 0;
#X connect 3 0 16 0;
#X connect 4 0 5 0;
#X connect 5 0 6 0;
#X connect 7 0 8 0;
#X connect 8 0 9 0;
#X connect 9 0 10 0;
#X connect 15 0 2 0;
#X connect 16 0 2 0;
#X connect 16 1 15 0;

--- NEW FILE: @finished.pd ---
#N canvas 551 311 442 238 10;
#X text 21 22 @finished;
#X text 22 53 a bang is emitted every time a grid transmission ends
;
#X obj 24 146 @finished;
#X obj 24 175 bng 15 250 50 0 empty empty empty 0 -6 0 8 -233017 -1
-1;
#X obj 24 118 @two;
#X floatatom 24 80 5 0 0 0 - - -;
#X floatatom 47 98 5 0 0 0 - - -;
#X text 371 15 gridflow;
#X connect 2 0 3 0;
#X connect 4 0 2 0;
#X connect 5 0 4 0;
#X connect 6 0 4 1;

--- NEW FILE: help_count.pd ---
#N canvas 85 117 336 239 10;
#X obj 65 80 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X floatatom 65 144 5 0 0 0 - - -;
#X obj 130 143 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X msg 130 79 42;
#X obj 65 110 count 0 10;
#X text 158 78 count limit;
#X text 26 19 simple counter from a to b in increments of '1'. The
arguments sets the range.;
#X connect 0 0 4 0;
#X connect 3 0 4 1;
#X connect 4 0 1 0;
#X connect 4 1 2 0;

--- NEW FILE: @foldinnerouter.pd ---
#N canvas 63 0 747 645 10;
#X obj 18 34 bng 15 250 50 0 empty empty empty 0 -6 0 8 -233017 -1
-1;
#X obj 18 233 @export;
#X obj 18 96 @in;
#X text 18 10 @fold \, @inner \, @outer;
#X obj 18 264 print value;
#X obj 18 137 @fold + 0;
#X obj 18 160 @fold + 0;
#X obj 18 184 @fold + 0;
#X text 114 133 treats the grid as a grid of one- dimensional grids
such that the same operation (here addition) will be performed on all
its elements together with the base value. the results are combined
back. each @fold operation removes a dimension. syntax: @fold <two-input
operation> <starting value>;
#X obj 19 309 bng 15 250 50 0 empty empty empty 0 -6 0 8 -233017 -1
-1;
#X obj 171 402 @ * 128;
#X obj 19 400 spigot;
#X obj 100 400 spigot;
#X obj 67 400 == 0;
#X obj 67 309 tgl 15 0 empty empty empty 0 -6 0 8 -233017 -1 -1 1 1
;
#X obj 19 432 @outer +;
#X obj 100 431 @outer ^;
#X obj 100 451 @ * 2;
#X text 171 448 @outer does the same two-input operation between every
possible pair of the left-side grid and the right side grid. @inner
treats both input grids like @fold does \, then does a @outer on the
other dimensions \, such that every two-input operation is like a @fold.
this is a very powerful operation that can be used to do rotations
\, rgb->yuv \, color conversions \, etc.;
#X text 88 310 select pattern;
#X text 17 566 combine channelless picture with gamma factors (r \,
g \, b);
#X obj 19 379 @import ( 128 );
#X obj 19 359 until;
#X msg 19 338 128;
#X obj 60 359 float 1;
#X obj 115 359 + 1;
#X obj 19 525 @outer gamma;
#X obj 171 360 until;
#X obj 212 360 float 1;
#X obj 267 360 + 1;
#X msg 171 339 4;
#X obj 171 381 @import ( 3 );
#X text 665 16 gridflow;
#X text 19 598 see also:;
#X obj 87 603 @scan;
#X obj 129 603 @join;
#X obj 171 603 @finished;
#X obj 241 603 @cast;
#X obj 283 603 @ravel;
#X obj 331 603 @grade;
#X obj 380 603 @perspective;
#X msg 41 76 open bluemarble.jpg;
#X obj 18 55 fork;
#X obj 19 547 @out window;
#X connect 0 0 42 0;
#X connect 1 0 4 0;
#X connect 2 0 5 0;
#X connect 5 0 6 0;
#X connect 6 0 7 0;
#X connect 7 0 1 0;
#X connect 9 0 23 0;
#X connect 9 0 30 0;
#X connect 10 0 26 1;
#X connect 11 0 15 0;
#X connect 11 0 15 1;
#X connect 12 0 16 0;
#X connect 12 0 16 1;
#X connect 13 0 12 1;
#X connect 14 0 11 1;
#X connect 14 0 13 0;
#X connect 15 0 26 0;
#X connect 16 0 17 0;
#X connect 17 0 26 0;
#X connect 21 0 11 0;
#X connect 21 0 12 0;
#X connect 22 0 24 0;
#X connect 23 0 22 0;
#X connect 24 0 25 0;
#X connect 24 0 21 0;
#X connect 25 0 24 1;
#X connect 26 0 43 0;
#X connect 27 0 28 0;
#X connect 28 0 29 0;
#X connect 28 0 31 0;
#X connect 29 0 28 1;
#X connect 30 0 27 0;
#X connect 31 0 10 0;
#X connect 41 0 2 0;
#X connect 42 0 2 0;
#X connect 42 1 41 0;

--- NEW FILE: @perspective.pd ---
#N canvas 280 56 664 282 10;
#X text 403 215 see also:;
#X obj 477 214 @redim;
#X obj 259 173 @perspective;
#X obj 20 147 @three;
#X obj 530 214 @ravel;
#X obj 20 125 random 10;
#X obj 87 125 random 10;
#X obj 155 125 random 10;
#X obj 20 86 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X text 587 12 gridflow;
#X text 14 15 @perspective;
#X obj 20 210 @print;
#X obj 259 210 @print;
#X text 143 15 transforms a dim[a... \, b] grid into a dim[a... \,
b-1] grid. there is a projection plane perpendicular to the last axis
and whose position is given by the creation argument. each vector's
length is adjusted so that it lies onto that plane. then the last dimension
of each vector is dropped;
#X connect 2 0 12 0;
#X connect 3 0 2 0;
#X connect 3 0 11 0;
#X connect 5 0 3 0;
#X connect 6 0 3 1;
#X connect 7 0 3 2;
#X connect 8 0 5 0;
#X connect 8 0 6 0;
#X connect 8 0 7 0;

--- NEW FILE: @redim.pd ---
#N canvas 435 101 633 282 10;
#X text 15 8 @redim;
#X text 114 14 rearrange a grid's values according to new dimensions
;
#X obj 25 99 @in;
#X obj 25 32 bng 15 250 50 0 empty empty empty 0 -6 0 8 -233017 -1
-1;
#X obj 25 132 @redim ( 120 120 3 );
#X text 287 192 see also:;
#X obj 367 195 @ravel;
#X obj 418 195 @perspective;
#X text 551 13 gridflow;
#X msg 48 77 open bluemarble.jpg;
#X obj 25 55 fork;
#X obj 25 187 @out window;
#X connect 2 0 4 0;
#X connect 3 0 10 0;
#X connect 4 0 11 0;
#X connect 9 0 2 0;
#X connect 10 0 2 0;
#X connect 10 1 9 0;

--- NEW FILE: @draw_polygon.pd ---
#N canvas 386 391 634 338 10;
#X obj 22 27 bng 15 250 50 0 empty empty empty 0 -6 0 8 -233017 -1
-1;
#X floatatom 58 142 5 0 255 0 - - -;
#X obj 84 179 @three;
#X floatatom 101 142 5 0 255 0 - - -;
#X floatatom 144 142 5 0 255 0 - - -;
#X obj 195 158 until;
#X obj 195 177 random 128;
#X text 16 7 @draw_polygon;
#X text 362 6 gridflow;
#X obj 20 237 @draw_polygon put 1;
#X obj 20 48 fork;
#X obj 51 48 fork;
#X obj 20 106 @in;
#X obj 196 196 @import ( 4 2 );
#X msg 195 139 4;
#X obj 20 309 @out window;
#X msg 47 81 open r001.jpg;
#X text 158 80 1 <-- open image;
#X connect 0 0 10 0;
#X connect 1 0 2 0;
#X connect 2 0 9 1;
#X connect 3 0 2 1;
#X connect 4 0 2 2;
#X connect 5 0 6 0;
#X connect 6 0 13 0;
#X connect 9 0 15 0;
#X connect 10 0 12 0;
#X connect 10 1 11 0;
#X connect 11 0 2 0;
#X connect 11 1 14 0;
#X connect 12 0 9 0;
#X connect 13 0 9 2;
#X connect 14 0 5 0;
#X connect 16 0 12 0;

--- NEW FILE: @cast.pd ---
#N canvas 435 101 684 379 10;
#X text 14 15 @cast;
#X text 143 14 returns a grid of the same dimensions containing all
the same values after type conversion. note that while casting to a
smaller type \, overflowing values will be truncated.;
#X text 626 13 gridflow;
#X text 142 58 numbertypes are: uint8 \, int16 \, int32 \, int64 \,
float32 \, float64. see doc/architecture.html for more info.;
#X obj 126 90 nbx 8 14 -1e+37 1e+37 0 1 empty empty empty 0 -6 0 10
-262144 -1 -1 3.1416 256;
#X obj 115 136 @pack 4 float32;
#X obj 78 185 @store;
#X obj 78 136 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X text 14 136 print it:;
#X obj 136 234 @print;
#X obj 78 205 t a a a a;
#X obj 78 354 @print;
#X obj 97 314 @print;
#X obj 116 254 @cast uint8;
#X obj 116 274 @print;
#X obj 97 294 @cast int32;
#X obj 78 334 @cast float64;
#X obj 216 90 nbx 8 14 -1e+37 1e+37 0 1 empty empty empty 0 -6 0 10
-262144 -1 -1 42 256;
#X obj 126 110 nbx 8 14 -1e+37 1e+37 0 1 empty empty empty 0 -6 0 10
-262144 -1 -1 2004 256;
#X obj 216 110 nbx 8 14 -1e+37 1e+37 0 1 empty empty empty 0 -6 0 10
-262144 -1 -1 1e+10 256;
#X obj 118 158 @redim ( 2 2 );
#X text 182 295 normally the default;
#X connect 4 0 5 0;
#X connect 5 0 20 0;
#X connect 6 0 10 0;
#X connect 7 0 6 0;
#X connect 10 0 16 0;
#X connect 10 1 15 0;
#X connect 10 2 13 0;
#X connect 10 3 9 0;
#X connect 13 0 14 0;
#X connect 15 0 12 0;
#X connect 16 0 11 0;
#X connect 17 0 5 1;
#X connect 18 0 5 2;
#X connect 19 0 5 3;
#X connect 20 0 6 1;

--- NEW FILE: @join.pd ---
#N canvas 297 501 659 362 10;
#X obj 18 32 bng 15 250 50 0 empty empty empty 0 -6 0 8 -233017 -1
-1;
#X obj 18 96 @in;
#X obj 211 30 bng 15 250 50 0 empty empty empty 0 -6 0 8 -233017 -1
-1;
#X obj 211 96 @in;
#X obj 237 96 @rgb_to_greyscale;
#X obj 18 161 @join 2;
#X text 16 8 @join;
#X text 204 238 the left grid and right grid must have the same number
of elements in all dimensions except the one specified \, which will
be the sum of the two corresponding;
#X obj 18 208 @perspective;
#X text 563 10 gridflow;
#X text 17 306 see also:;
#X obj 86 310 @fold +;
#X obj 142 310 @scan +;
#X obj 18 269 @out window;
#X text 205 170 creation argument is the number of the dimensions by
which the join will occur. for n-dimensional grids \, the dimensions
are numbered from 0 to n-1. in addition \, negative numbers from -n
to -1 may be used \, to which n will be added.;
#X msg 41 73 open r001.jpg;
#X msg 234 69 open b001.jpg;
#X obj 18 53 fork;
#X obj 211 48 fork;
#X text 244 29 1 <--;
#X text 45 31 2 <--;
#X connect 0 0 17 0;
#X connect 1 0 5 0;
#X connect 2 0 18 0;
#X connect 3 0 4 0;
#X connect 4 0 5 1;
#X connect 5 0 8 0;
#X connect 8 0 13 0;
#X connect 15 0 1 0;
#X connect 16 0 3 0;
#X connect 17 0 1 0;
#X connect 17 1 15 0;
#X connect 18 0 3 0;
#X connect 18 1 16 0;

--- NEW FILE: @!.pd ---
#N canvas 301 131 593 440 10;
#X obj 18 145 @! abs;
#X obj 18 178 @export;
#X obj 133 177 @export;
#X obj 133 144 @! rand;
#X obj 249 178 @export;
#X obj 249 145 @! sqrt;
#X floatatom 18 94 5 0 0 0 - - -;
#X obj 364 144 @! sq;
#X obj 364 178 @export;
#X text 19 325 inlet: grid | outlet: grid;
#X text 15 241 absolute value;
#X text 363 241 A * A;
#X text 14 14 the one-input operators: @! abs \, @! rand \, @! sqrt
\, @! sq;
#X obj 18 111 @import ( 1 );
#X floatatom 133 94 5 0 0 0 - - -;
#X obj 133 111 @import ( 1 );
#X floatatom 249 95 5 0 0 0 - - -;
#X obj 249 112 @import ( 1 );
#X floatatom 364 95 5 0 0 0 - - -;
#X obj 364 112 @import ( 1 );
#X text 132 242 random non-;
#X text 133 257 negative number;
#X text 133 273 below A;
#X text 246 325 A refers to the left inlet;
#X text 250 257 of A rounded;
#X text 249 242 sqare root;
#X text 250 273 downwards;
#X obj 115 94 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 18 197 route int;
#X obj 133 196 route int;
#X obj 249 197 route int;
#X obj 364 197 route int;
#X floatatom 18 217 5 0 0 0 - - -;
#X floatatom 133 216 5 0 0 0 - - -;
#X floatatom 249 217 5 0 0 0 - - -;
#X floatatom 364 217 5 0 0 0 - - -;
#X obj 94 376 @ +;
#X text 19 371 see also:;
#X text 514 13 gridflow;
#X text 38 37 computes one of the four basic one-input operators;
#X text 36 51 on each value of a grid;
#X connect 0 0 1 0;
#X connect 1 0 28 0;
#X connect 2 0 29 0;
#X connect 3 0 2 0;
#X connect 4 0 30 0;
#X connect 5 0 4 0;
#X connect 6 0 13 0;
#X connect 7 0 8 0;
#X connect 8 0 31 0;
#X connect 13 0 0 0;
#X connect 14 0 15 0;
#X connect 15 0 3 0;
#X connect 16 0 17 0;
#X connect 17 0 5 0;
#X connect 18 0 19 0;
#X connect 19 0 7 0;
#X connect 27 0 14 0;
#X connect 28 0 32 0;
#X connect 29 0 33 0;
#X connect 30 0 34 0;
#X connect 31 0 35 0;

--- NEW FILE: @greyscale_to_rgb.pd ---
#N canvas 119 122 433 374 10;
#X obj 15 33 bng 15 250 50 0 empty empty empty 0 -6 0 8 -233017 -1
-1;
#X obj 19 105 @in;
#X obj 19 141 @rgb_to_greyscale;
#X obj 19 161 s xx;
#X obj 19 185 r xx;
#X obj 19 205 @greyscale_to_rgb;
#X text 24 5 @greyscale_to_rgb;
#X text 353 13 gridflow;
#X msg 42 78 open bluemarble.jpg;
#X obj 19 55 fork;
#X obj 19 263 @out window;
#X connect 0 0 9 0;
#X connect 1 0 2 0;
#X connect 2 0 3 0;
#X connect 4 0 5 0;
#X connect 5 0 10 0;
#X connect 8 0 1 0;
#X connect 9 0 1 0;
#X connect 9 1 8 0;

--- NEW FILE: @inout.pd ---
#N canvas 281 197 649 652 10;
#X obj 35 213 @in;
#X msg 52 283 option timelog \$1;
#X obj 52 263 tgl 15 0 empty empty empty 0 -6 0 8 -233017 -1 -1 0 1
;
#X text 274 307 upload a grid;
#X text 261 80 upload a grid;
#X text 194 108 open default display for screenshot;
#X msg 73 134 open videodev /dev/video0;
#X text 260 136 open a video device;
#X msg 75 332 open x11 here;
#X msg 87 356 open x11 local 10;
#X text 182 285 show/hide timing statistics;
#X text 178 334 connect to default display;
#X text 218 358 connect to display #10 on this machine;
#X msg 100 380 open x11 remote.host.bla.net 0;
#X text 324 382 connect to remote machine on display #0;
#X text 290 161 open mpeg video stream;
#X obj 35 441 @out;
#X text 14 15 @in \, @out communicating grids (pictures) to/from devices
\, sockets \, files;
#X text 272 155 *;
#X text 36 558 * path is where you started pd from. usually $home.
;
#X text 308 188 open an image file;
#X msg 114 450 close;
#X text 577 15 gridflow;
#X text 37 590 see also:;
#X obj 108 595 @import ( 1 );
#X obj 205 595 @export;
#X obj 260 595 @export_list;
#X obj 350 595 @export_symbol;
#X obj 454 595 @two;
#X obj 488 595 @three;
#X obj 536 595 @four;
#X msg 90 161 open lsd.mpeg;
#X msg 55 107 open x11 here;
#X msg 35 80 open host.bla.net 7777;
#X msg 113 404 open img/bla.jpg;
#X text 300 405 open single file in jpg format;
#X msg 108 186 open ./img/bla.jpg;
#X text 35 481 incoming file is sent through the opened device/socket/file.
in single file formats subsequent pictures overwrite the preceeding
one. there are many more options. for more information see the reference
manual in the "formats" and "objects for input/output" sections.;
#X msg 65 307 open x.test.at 7777;
#X msg 125 426 open window;
#X text 228 426 opens a window x11 \, quartz or sdl;
#X connect 0 0 16 0;
#X connect 1 0 16 0;
#X connect 2 0 1 0;
#X connect 6 0 0 0;
#X connect 8 0 16 0;
#X connect 9 0 16 0;
#X connect 13 0 16 0;
#X connect 21 0 16 0;
#X connect 31 0 0 0;
#X connect 32 0 0 0;
#X connect 33 0 0 0;
#X connect 34 0 16 0;
#X connect 36 0 0 0;
#X connect 38 0 16 0;
#X connect 39 0 16 0;

--- NEW FILE: help_motion_detect.pd ---
#N canvas 126 0 350 447 10;
#X obj 37 24 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
;
#X obj 71 539 fps detailed;
#X obj 71 559 print;
#X obj 82 254 @motion_detection;
#X floatatom 261 298 5 0 0 0 - displaced_numb -;
#X obj 112 79 @camera_control;
#X obj 71 116 @in;
#X obj 261 272 tgl 15 0 displaced empty empty 0 0 128 4 -233017 -62784
-233017 0 1;
#X text 283 271 <-- toggle displaced pixels on/off;
#X text 229 78 <-- select and initialise the type of camera first;
#X obj 264 246 hsl 128 15 0 30 0 0 noise empty noise_reduction 10 6
128 12 -233017 -1 -62784 0 0;
#X text 312 299 <-- total number of displaced pixels (divided by 100000)
;
#X obj 261 220 tgl 15 0 snapshot empty empty 0 0 128 4 -233017 -258699
-260818 0 1;
#X text 284 219 <-- compare incoming images/ take a snapshot;
#X obj 82 358 @centroid;
#X obj 37 45 metro 50;
#X obj 71 143 fork;
#X obj 71 231 demux 2;
#X obj 71 333 demux 2;
#X obj 71 441 demux 2;
#X obj 115 210 tgl 15 0 empty empty empty 0 -6 0 8 -241291 -1 -1 0
1;
#X obj 115 313 tgl 15 0 empty empty empty 0 -6 0 8 -241291 -1 -1 0
1;
#X obj 115 421 tgl 15 0 empty empty empty 0 -6 0 8 -241291 -1 -1 0
1;
#X obj 71 518 @out window;
#N canvas 0 0 450 300 pixelate 0;
#X obj 55 92 @downscale_by ( 15 20 ) smoothly;
#X obj 55 118 @scale_by ( 32 32 );
#X obj 42 40 inlet;
#X obj 39 168 outlet;
#X connect 0 0 1 0;
#X connect 1 0 3 0;
#X connect 2 0 0 0;
#X restore 82 464 pd pixelate;
#N canvas 0 0 450 300 get_image_size 0;
#X obj 39 70 @dim;
#X obj 39 116 @export_list;
#X obj 39 139 s size;
#X obj 39 92 @inner * + 0 ( 3 2 # 1 0 0 1 0 0 );
#X obj 30 28 inlet;
#X connect 0 0 3 0;
#X connect 1 0 2 0;
#X connect 3 0 1 0;
#X connect 4 0 0 0;
#X restore 94 169 pd get_image_size;
#X text 226 169 <-- necessary for centroid;
#X text 208 357 <-- finds the centre of the displaced pixels;
#X text 169 463 <-- make the image into 15 x 20 squares;
#X connect 0 0 15 0;
#X connect 1 0 2 0;
#X connect 3 0 18 0;
#X connect 5 0 6 0;
#X connect 6 0 16 0;
#X connect 14 0 19 0;
#X connect 15 0 6 0;
#X connect 16 0 17 0;
#X connect 16 1 25 0;
#X connect 17 0 18 0;
#X connect 17 1 3 0;
#X connect 18 0 19 0;
#X connect 18 1 14 0;
#X connect 19 0 23 0;
#X connect 19 1 24 0;
#X connect 20 0 17 1;
#X connect 21 0 18 1;
#X connect 22 0 19 1;
#X connect 23 0 1 0;
#X connect 24 0 23 0;

--- NEW FILE: @grade.pd ---
#N canvas 435 101 649 221 10;
#X text 143 15 splits a dim[a... \, b] grid into dim[b] vectors that
each contain numbers from 0 to b-1 indicating the ordering of the values.
the result is a dim[a... \, b] grid.;
#X text 14 15 @grade;
#X obj 19 139 @grade;
#X floatatom 19 74 5 0 0 0 - - -;
#X floatatom 60 74 5 0 0 0 - - -;
#X obj 19 168 @print;
#X obj 19 106 @four;
#X floatatom 101 74 5 0 0 0 - - -;
#X floatatom 142 74 5 0 0 0 - - -;
#X text 585 14 gridflow;
#X text 146 175 (behaves unstable in 0.7.0);
#X connect 2 0 5 0;
#X connect 3 0 6 0;
#X connect 4 0 6 1;
#X connect 6 0 2 0;
#X connect 7 0 6 2;
#X connect 8 0 6 3;

--- NEW FILE: @layer.pd ---
#N canvas 297 501 656 323 10;
#X obj 18 29 bng 15 250 50 0 empty empty empty 0 -6 0 8 -233017 -1
-1;
#X obj 18 96 @in;
#X obj 211 28 bng 15 250 50 0 empty empty empty 0 -6 0 8 -233017 -1
-1;
#X obj 211 96 @in;
#X obj 237 96 @rgb_to_greyscale;
#X text 14 5 @layer;
#X obj 18 208 @layer;
#X obj 18 161 @join -1;
#X obj 406 29 bng 15 250 50 0 empty empty empty 0 -6 0 8 -233017 -1
-1;
#X obj 406 96 @in;
#X text 208 121 opacity channel file;
#X text 51 95 foreground file;
#X text 438 96 background file;
#X text 579 14 gridflow;
#X obj 18 269 @out window;
#X text 206 209 a picture that has an opacity level will be used as
foreground vs a picture that has no opacity channel. the output is
a picture that has no opacity channel;
#X msg 41 72 open r001.jpg;
#X msg 234 69 open b001.jpg;
#X msg 429 71 open g001.jpg;
#X obj 18 50 fork;
#X obj 211 47 fork;
#X obj 406 50 fork;
#X connect 0 0 19 0;
#X connect 1 0 7 0;
#X connect 2 0 20 0;
#X connect 3 0 4 0;
#X connect 4 0 7 1;
#X connect 6 0 14 0;
#X connect 7 0 6 0;
#X connect 8 0 21 0;
#X connect 9 0 6 1;
#X connect 16 0 1 0;
#X connect 17 0 3 0;
#X connect 18 0 9 0;
#X connect 19 0 1 0;
#X connect 19 1 16 0;
#X connect 20 0 3 0;
#X connect 20 1 17 0;
#X connect 21 0 9 0;
#X connect 21 1 18 0;

--- NEW FILE: @solarize.pd ---
#N canvas 432 100 613 339 10;
#X obj 20 59 bng 15 250 50 0 empty empty empty 0 -6 0 8 -233017 -1
-1;
#X obj 20 138 @in;
#X text 16 7 @solarize;
#X obj 20 174 @solarize;
#X text 98 7 makes medium intensities brightest. formerly brightest
colors become darkest \, formerly darkest stays darkest. this filter
is linear. it's like a 200% contrast \, except that overflows are mirrored
instead of clipped or wrapped.;
#X text 545 5 gridflow;
#X text 202 305 see also:;
#X obj 273 309 @convolve;
#X obj 487 309 @layer;
#X obj 342 309 @contrast;
#X obj 411 309 @posterize;
#X obj 20 222 @out window;
#X msg 43 112 open bluemarble.jpg;
#X obj 20 83 fork;
#X connect 0 0 13 0;
#X connect 1 0 3 0;
#X connect 3 0 11 0;
#X connect 12 0 1 0;
#X connect 13 0 1 0;
#X connect 13 1 12 0;

--- NEW FILE: rubyprint.pd ---
#N canvas 435 101 688 277 10;
#X text 191 203 see also:;
#X obj 297 208 @export;
#X obj 19 123 @three;
#X floatatom 19 73 5 0 0 0 - - -;
#X floatatom 37 52 5 0 0 0 - - -;
#X floatatom 56 73 5 0 0 0 - - -;
#X obj 112 123 @import ( 3 3 3 );
#X obj 113 73 until;
#X msg 113 53 27;
#X obj 112 93 random 27;
#X text 619 13 gridflow;
#X obj 262 208 @dim;
#X obj 401 208 printargs;
#X text 14 15 rubyprint;
#X obj 352 208 @print;
#X obj 19 197 rubyprint;
#X text 144 15 prints the message to the console;
#X connect 2 0 15 0;
#X connect 3 0 2 0;
#X connect 4 0 2 1;
#X connect 5 0 2 2;
#X connect 6 0 15 0;
#X connect 7 0 9 0;
#X connect 8 0 7 0;
#X connect 9 0 6 0;

--- NEW FILE: printargs.pd ---
#N canvas 435 101 688 277 10;
#X text 191 203 see also:;
#X obj 297 208 @export;
#X text 619 13 gridflow;
#X obj 262 208 @dim;
#X obj 352 208 @print;
#X text 14 15 printargs;
#X text 144 14 prints everything;
#X obj 401 208 rubyprint;
#X obj 17 101 printargs lallala;

--- NEW FILE: @rgb_to_greyscale.pd ---
#N canvas 119 122 514 375 10;
#X obj 19 47 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 19 100 @in;
#X obj 19 132 @rgb_to_greyscale;
#X text 14 15 @rgb_to_greyscale;
#X obj 19 152 s xx;
#X obj 18 215 r xx;
#X obj 18 235 @greyscale_to_rgb;
#X text 444 11 gridflow;
#X obj 18 329 @out window;
#X msg 44 72 open r001.jpg;
#X connect 0 0 9 0;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X connect 2 0 4 0;
#X connect 5 0 6 0;
#X connect 6 0 8 0;
#X connect 9 0 1 0;

--- NEW FILE: @spread.pd ---
#N canvas 265 540 787 472 10;
#X text 14 15 @spread;
#X text 129 15 makes noise;
#X obj 232 159 @in;
#X obj 232 58 bng 15 250 50 0 empty empty empty 0 -6 0 8 -233017 -1
-1;
#X obj 232 207 spigot;
#X obj 278 207 == 0;
#X obj 275 140 tgl 15 0 empty empty empty 0 -6 0 8 -233017 -1 -1 0
1;
#X obj 310 207 spigot;
#X obj 310 291 @ min 255;
#X obj 310 270 @spread 1;
#X obj 310 312 @ min 0;
#X floatatom 368 241 5 0 0 0 - - -;
#X obj 195 269 @store;
#X obj 20 197 @spread 1;
#X floatatom 78 163 5 0 0 0 - - -;
#X obj 20 88 until;
#X obj 20 51 bng 15 250 50 0 empty empty empty 0 -6 0 8 -233017 -1
-1;
#X msg 20 69 65536;
#X obj 61 88 float;
#X obj 101 88 + 1;
#X obj 20 129 @import ( 256 256 2 );
#X text 368 314 we limit here \, because the values might go out of
range;
#X text 702 13 gridflow;
#X obj 195 393 @out window;
#X obj 310 395 @out window;
#X msg 255 112 open r001.jpg;
#X obj 232 87 fork;
#X obj 149 73 metro 50;
#X obj 149 51 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
;
#X text 300 141 switch displays \, use this to get an image into the
@store;
#X connect 2 0 4 0;
#X connect 2 0 7 0;
#X connect 3 0 26 0;
#X connect 4 0 12 1;
#X connect 5 0 7 1;
#X connect 6 0 4 1;
#X connect 6 0 5 0;
#X connect 7 0 9 0;
#X connect 8 0 10 0;
#X connect 9 0 8 0;
#X connect 10 0 24 0;
#X connect 11 0 9 1;
#X connect 12 0 23 0;
#X connect 13 0 12 0;
#X connect 14 0 13 1;
#X connect 15 0 18 0;
#X connect 16 0 17 0;
#X connect 17 0 15 0;
#X connect 18 0 19 0;
#X connect 18 0 20 0;
#X connect 19 0 18 1;
#X connect 20 0 13 0;
#X connect 25 0 2 0;
#X connect 26 0 2 0;
#X connect 26 1 25 0;
#X connect 27 0 2 0;
#X connect 28 0 27 0;

--- NEW FILE: help_mouse.pd ---
#N canvas 215 0 510 490 10;
#X msg 147 123 option setcursor 32;
#X text 49 22 How to get the mouse coordinates and hide / change the
cursor?;
#X msg 128 100 option hidecursor;
#X text 273 98 <-- removes the cursor;
#X text 307 120 <-- accepts 0 - 63;
#X obj 206 168 print xy_clicked;
#X obj 110 165 @out window;
#X obj 207 214 print xy_unclicked;
#X obj 107 341 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
1;
#X obj 127 341 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
1;
#X obj 147 341 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
1;
#X floatatom 178 359 5 0 0 0 - - -;
#X obj 178 333 +;
#X obj 210 333 t a;
#X obj 207 238 print xy_moved;
#X obj 206 190 print xy_dragged;
#X obj 110 267 @mouse \, ...;
#X obj 380 376 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
1;
#X obj 400 376 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
1;
#X obj 420 376 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
1;
#X obj 380 402 @three;
#X obj 380 431 @export_list;
#X obj 440 352 loadbang;
#X text 281 332 select buttons to be considered in click/drag/unclick
;
#X connect 0 0 6 0;
#X connect 2 0 6 0;
#X connect 6 0 16 0;
#X connect 12 0 13 0;
#X connect 12 0 11 0;
#X connect 13 0 12 1;
#X connect 16 0 5 0;
#X connect 16 1 15 0;
#X connect 16 2 7 0;
#X connect 16 3 14 0;
#X connect 16 4 8 0;
#X connect 16 5 9 0;
#X connect 16 6 10 0;
#X connect 16 7 12 0;
#X connect 17 0 20 0;
#X connect 18 0 20 1;
#X connect 19 0 20 2;
#X connect 20 0 21 0;
#X connect 21 0 16 1;
#X connect 22 0 17 0;
#X connect 22 0 18 0;
#X connect 22 0 19 0;

--- NEW FILE: @.pd ---
#N canvas 662 216 748 501 10;
#X obj 19 157 @ +;
#X obj 210 158 @ -;
#X text 50 161 A + B;
#X text 241 162 A - B;
#X obj 402 158 @ inv+;
#X text 458 161 B - A;
#X obj 19 273 @ *;
#X text 50 276 A * B;
#X text 240 272 A / B;
#X text 240 283 rounded towards zero;
#X obj 210 274 @ /;
#X obj 402 272 @ inv*;
#X text 455 279 rounded towards zero;
#X text 457 269 B / A;
#X obj 20 390 @ %;
#X obj 211 391 @ swap%;
#X obj 403 392 @ rem;
#X text 50 393 A % B \, modulo;
#X text 270 395 B % A \, modulo;
#X text 452 394 A % B \, remainder;
#X floatatom 509 52 5 0 0 0 - - -;
#X obj 509 76 @import ( 1 );
#X floatatom 621 52 5 0 0 0 - - -;
#X obj 621 76 @import ( 1 );
#X obj 19 130 r l;
#X obj 44 130 r r;
#X obj 210 131 r l;
#X obj 235 131 r r;
#X obj 402 131 r l;
#X obj 427 131 r r;
#X obj 19 246 r l;
#X obj 44 246 r r;
#X obj 210 247 r l;
#X obj 235 247 r r;
#X obj 402 244 r l;
#X obj 427 244 r r;
#X obj 20 361 r l;
#X obj 45 361 r r;
#X obj 211 362 r l;
#X obj 236 362 r r;
#X obj 403 363 r l;
#X obj 428 363 r r;
#X obj 509 96 s l;
#X obj 621 97 s r;
#X floatatom 19 204 5 0 0 0 - - -;
#X obj 19 185 @export_list;
#X floatatom 210 204 5 0 0 0 - - -;
#X obj 210 185 @export_list;
#X floatatom 402 204 5 0 0 0 - - -;
#X obj 402 185 @export_list;
#X text 14 14 the two-input operators: *whoa \, there's a lot of them*
;
#X floatatom 19 320 5 0 0 0 - - -;
#X obj 19 301 @export_list;
#X floatatom 210 320 5 0 0 0 - - -;
#X obj 210 301 @export_list;
#X floatatom 402 320 5 0 0 0 - - -;
#X obj 402 301 @export_list;
#X floatatom 20 440 5 0 0 0 - - -;
#X obj 20 421 @export_list;
#X floatatom 211 440 5 0 0 0 - - -;
#X obj 211 421 @export_list;
#X floatatom 403 440 5 0 0 0 - - -;
#X obj 403 421 @export_list;
#X text 18 472 see also:;
#X obj 99 476 @! abs;
#X text 684 13 gridflow;
#X text 14 80 angles are in hundredth of degrees \, so a full circle
(two pi radians) is 36000 you can convert from radians to our angles
by multiplying by 18000/pi.;
#X text 14 54 for all of these \, A refers to the left inlet and B
to the value on the right.;
#X text 15 27 Consult doc/architecture.html to see all the 40 of them.
;
#X connect 0 0 45 0;
#X connect 1 0 47 0;
#X connect 4 0 49 0;
#X connect 6 0 52 0;
#X connect 10 0 54 0;
#X connect 11 0 56 0;
#X connect 14 0 58 0;
#X connect 15 0 60 0;
#X connect 16 0 62 0;
#X connect 20 0 21 0;
#X connect 21 0 42 0;
#X connect 22 0 23 0;
#X connect 23 0 43 0;
#X connect 24 0 0 0;
#X connect 25 0 0 1;
#X connect 26 0 1 0;
#X connect 27 0 1 1;
#X connect 28 0 4 0;
#X connect 29 0 4 1;
#X connect 30 0 6 0;
#X connect 31 0 6 1;
#X connect 32 0 10 0;
#X connect 33 0 10 1;
#X connect 34 0 11 0;
#X connect 35 0 11 1;
#X connect 36 0 14 0;
#X connect 37 0 14 1;
#X connect 38 0 15 0;
#X connect 39 0 15 1;
#X connect 40 0 16 0;
#X connect 41 0 16 1;
#X connect 45 0 44 0;
#X connect 47 0 46 0;
#X connect 49 0 48 0;
#X connect 52 0 51 0;
#X connect 54 0 53 0;
#X connect 56 0 55 0;
#X connect 58 0 57 0;
#X connect 60 0 59 0;
#X connect 62 0 61 0;

--- NEW FILE: @convolve.pd ---
#N canvas 923 183 662 404 10;
#X obj 19 37 bng 15 250 50 0 empty empty empty 0 -6 0 8 -233017 -1
-1;
#X text 14 15 @convolve blurs \, sharpens \, finds edges \, emboss
& more ...;
#X obj 19 108 @in;
#X obj 19 133 @convolve ^ + 0;
#X msg 212 76 1 1 1 1 1 1 1 1 1;
#X obj 212 96 @redim ( 3 3 );
#X text 569 17 gridflow;
#X text 18 363 see also:;
#X obj 234 367 @solarize;
#X obj 303 367 @layer;
#X obj 158 367 @posterize;
#X obj 89 367 @contrast;
#X obj 212 57 loadbang;
#X msg 42 85 open bluemarble.jpg;
#X text 216 187 splits the incoming grid into dim(rest...) parts \,
for each of those parts at (xy \, x). a rectangle of such parts \,
centered around (y \, x) is combined with the convolution grid like
a [@] of operation op_para. then each such result is folded like [@
fold] of operation op_fold and specified base. the results are assembled
into a grid that is sent to the outlet. near the borders of the grid
\, coordinates wrap around. this means the whole grid has to be received
before production of the next grid starts. this is the convolution
grid and it gets stored in the object. rows2 and columns2 must be odd
numbers.;
#X text 145 130 here ^ is the parallel operator \, fold is indicated
by + and 0 is its base.;
#X obj 19 62 fork;
#X obj 19 309 @out window;
#X connect 0 0 16 0;
#X connect 2 0 3 0;
#X connect 3 0 17 0;
#X connect 4 0 5 0;
#X connect 5 0 3 1;
#X connect 12 0 4 0;
#X connect 13 0 2 0;
#X connect 16 0 2 0;
#X connect 16 1 13 0;

--- NEW FILE: @scale_to.pd ---
#N canvas 497 180 649 321 10;
#X obj 113 26 bng 15 250 50 0 empty empty empty 0 -6 0 8 -233017 -1
-1;
#X obj 113 101 @in;
#X text 14 15 @scale_to;
#X obj 20 49 tgl 15 0 empty empty empty 0 -6 0 8 -233017 -1 -1 1 1
;
#X obj 269 157 @two;
#X obj 310 43 vsl 15 128 0 640 0 0 empty empty empty 0 -8 0 8 -262144
-1 -1 3300 1;
#X obj 333 43 vsl 15 128 0 480 0 0 empty empty empty 0 -8 0 8 -262144
-1 -1 6300 1;
#X obj 352 285 @scale_by;
#X text 281 281 see also:;
#X text 190 182 though not pointed out in the manual \, the initial
arguments seem to be mandatory.;
#X text 578 11 gridflow;
#X obj 423 285 @downscale_by;
#X obj 20 72 metro 100;
#X obj 113 262 @out window;
#X msg 135 74 open b001.jpg;
#X obj 113 51 fork;
#X obj 113 157 @scale_to ( 133 133 );
#X connect 0 0 15 0;
#X connect 1 0 16 0;
#X connect 3 0 12 0;
#X connect 4 0 16 1;
#X connect 5 0 4 0;
#X connect 6 0 4 1;
#X connect 12 0 1 0;
#X connect 14 0 1 0;
#X connect 15 0 1 0;
#X connect 15 1 14 0;
#X connect 16 0 13 0;

--- NEW FILE: @inner2.pd ---
#N canvas 63 0 748 632 10;
#X obj 18 49 bng 15 250 50 0 empty empty empty 0 -6 0 8 -233017 -1
-1;
#X obj 18 125 @in;
#X text 14 15 @inner;
#X obj 18 169 @inner2 * + 0;
#X text 660 16 gridflow;
#X text 178 172 this has yet to be done!;
#X obj 18 307 @out window;
#X msg 41 95 open bluemarble.jpg;
#X obj 18 70 fork;
#X connect 0 0 8 0;
#X connect 1 0 3 0;
#X connect 3 0 6 0;
#X connect 7 0 1 0;
#X connect 8 0 1 0;
#X connect 8 1 7 0;

--- NEW FILE: @importexport.pd ---
#N canvas 119 230 748 467 10;
#X msg 75 125 reset;
#X obj 33 47 bng 15 250 50 0 empty empty empty 0 -6 0 8 -233017 -1
-1;
#X msg 33 111 200;
#X text 125 129 abort output of grid \, if any;
#X text 14 9 @import \, @export \, @export_list converts integers to
grids and back;
#X obj 41 239 bng 15 250 50 0 empty empty empty 0 -6 0 8 -233017 -1
-1;
#X obj 33 283 @dim;
#X obj 322 335 @export_list;
#X obj 322 366 print export_list;
#X obj 33 335 @export;
#X obj 33 366 print export;
#X obj 33 176 @out 240 320;
#X obj 33 260 @in;
#X text 70 285 gets the size of the picture;
#X text 87 334 accepts grids and sends integers;
#X text 416 328 accepts grids and sends lists of integers;
#X obj 33 88 until;
#X msg 33 67 230400;
#X obj 33 157 @import ( 240 320 3 );
#X text 188 158 syntax: @import ( <int colums> <int rows> <int dimension>
);
#X text 32 418 see also:;
#X obj 162 421 @two;
#X obj 196 421 @three;
#X obj 244 421 @four;
#X text 671 16 gridflow;
#X obj 101 421 @in;
#X obj 128 421 @out;
#X obj 33 301 s size;
#X obj 33 319 r size;
#X obj 322 315 r size;
#X msg 33 216 open jpeg file 1.jpg;
#X connect 0 0 18 0;
#X connect 1 0 17 0;
#X connect 2 0 18 0;
#X connect 5 0 12 0;
#X connect 6 0 27 0;
#X connect 7 0 8 0;
#X connect 9 0 10 0;
#X connect 12 0 6 0;
#X connect 16 0 2 0;
#X connect 17 0 16 0;
#X connect 18 0 11 0;
#X connect 28 0 9 0;
#X connect 29 0 7 0;
#X connect 30 0 12 0;
#X connect 30 0 5 0;

--- NEW FILE: @print.pd ---
#N canvas 435 101 688 277 10;
#X text 191 203 see also:;
#X obj 297 208 @export;
#X obj 352 208 @export_list;
#X obj 442 208 rubyprint;
#X obj 19 123 @three;
#X floatatom 19 73 5 0 0 0 - - -;
#X floatatom 37 52 5 0 0 0 - - -;
#X floatatom 56 73 5 0 0 0 - - -;
#X obj 19 197 @print;
#X text 14 15 @print;
#X text 143 15 prints grids dimensions or all the grid data if there
are 2 dimensions or less.;
#X obj 112 123 @import ( 3 3 3 );
#X obj 113 73 until;
#X msg 113 53 27;
#X obj 112 93 random 27;
#X text 619 13 gridflow;
#X obj 262 208 @dim;
#X obj 512 208 printargs;
#X connect 4 0 8 0;
#X connect 5 0 4 0;
#X connect 6 0 4 1;
#X connect 7 0 4 2;
#X connect 11 0 8 0;
#X connect 12 0 14 0;
#X connect 13 0 12 0;
#X connect 14 0 11 0;

--- NEW FILE: @apply_colormap_channelwise.pd ---
#N canvas 119 122 762 396 10;
#X obj 19 118 @in;
#X obj 19 239 @apply_colormap_channelwise;
#X text 14 17 @apply_colormap_channelweb;
#X obj 203 190 @import ( 256 3 );
#X obj 203 168 random 255;
#X msg 203 128 768;
#X obj 203 148 until;
#X text 305 108 colormap is a grid dim (2) (intensity channels);
#X text 679 13 gridflow;
#X msg 52 86 open bluemarble.jpg;
#X obj 19 366 @out window;
#X text 304 54 this object is useful for color correction. for each
pixel it takes it apart \, looks up each part separately in the colormap
and constructs a new pixel from that.;
#X obj 19 40 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 19 59 fork;
#X connect 0 0 1 0;
#X connect 1 0 10 0;
#X connect 3 0 1 1;
#X connect 4 0 3 0;
#X connect 5 0 6 0;
#X connect 6 0 4 0;
#X connect 9 0 0 0;
#X connect 12 0 13 0;
#X connect 13 0 0 0;
#X connect 13 0 5 0;
#X connect 13 1 9 0;

--- NEW FILE: @fold.pd ---
#N canvas 306 222 526 344 10;
#X obj 18 103 @in;
#X obj 18 280 print value;
#X obj 18 137 @fold + 0;
#X obj 18 160 @fold + 0;
#X obj 18 184 @fold + 0;
#X text 114 133 treats the grid as a grid of one- dimensional grids
such that the same operation (here addition) will be performed on all
its elements together with the base value. the results are combined
back. each @fold operation removes a dimension. syntax: @fold <two-input
operation> <starting value>;
#X text 19 8 @fold;
#X text 451 11 gridflow;
#X obj 85 313 @inner2;
#X text 14 309 see also:;
#X obj 141 313 @join;
#X obj 183 313 @perspective;
#X msg 41 70 open bluemarble.jpg;
#X obj 18 246 @export_list;
#X msg 237 66 open b001.jpg;
#X obj 18 49 fork;
#X obj 9 29 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1
;
#X obj 214 41 fork;
#X obj 199 21 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X connect 0 0 2 0;
#X connect 2 0 3 0;
#X connect 3 0 4 0;
#X connect 4 0 13 0;
#X connect 12 0 0 0;
#X connect 13 0 1 0;
#X connect 14 0 0 0;
#X connect 15 0 0 0;
#X connect 15 1 12 0;
#X connect 16 0 15 0;
#X connect 17 0 0 0;
#X connect 17 1 14 0;
#X connect 18 0 17 0;

--- NEW FILE: @scan.pd ---
#N canvas 140 0 421 309 10;
#X text 14 15 @scan;
#X text 69 15 computes subtotals;
#X obj 17 127 @scan +;
#X obj 17 96 @three;
#X floatatom 17 56 5 0 0 0 - - -;
#X floatatom 62 56 5 0 0 0 - - -;
#X floatatom 109 56 5 0 0 0 - - -;
#X floatatom 17 225 5 0 0 0 - - -;
#X obj 17 186 unpack f f f;
#X floatatom 56 225 5 0 0 0 - - -;
#X floatatom 96 225 5 0 0 0 - - -;
#X obj 17 164 @export_list;
#X text 73 129 second inlet seems to be dead;
#X text 340 14 gridflow;
#X text 14 266 see also:;
#X obj 83 270 @fold +;
#X connect 2 0 11 0;
#X connect 3 0 2 0;
#X connect 4 0 3 0;
#X connect 5 0 3 1;
#X connect 6 0 3 2;
#X connect 8 0 7 0;
#X connect 8 1 9 0;
#X connect 8 2 10 0;
#X connect 11 0 8 0;

--- NEW FILE: @complex_sq.pd ---
#N canvas 301 131 637 303 10;
#X text 14 14 @comlex_sq;
#X obj 21 159 @complex_sq;
#X text 96 15 this object computes the square of complex numbers. if
seeing imaginary as Y and real as X \, then this operation squares
the distance of a point from origin and doubles the angle between it
and the +X half-axis clockwise. :);
#X floatatom 21 108 5 0 0 0 - - -;
#X obj 21 188 @export_list;
#X floatatom 21 238 5 0 0 0 - - -;
#X obj 21 128 @two;
#X floatatom 64 108 5 0 0 0 - - -;
#X obj 114 235 @print;
#X obj 21 209 unpack;
#X floatatom 58 238 5 0 0 0 - - -;
#X text 572 13 gridflow;
#X text 21 275 see also:;
#X obj 94 279 @ +;
#X obj 127 279 @! abs;
#X connect 1 0 4 0;
#X connect 1 0 8 0;
#X connect 3 0 6 0;
#X connect 4 0 9 0;
#X connect 6 0 1 0;
#X connect 7 0 6 1;
#X connect 9 0 5 0;
#X connect 9 1 10 0;

--- NEW FILE: @store.pd ---
#N canvas 519 121 541 394 10;
#X text 14 15 @store;
#X obj 18 118 @two;
#X floatatom 18 86 5 0 0 0 - - -;
#X floatatom 63 86 5 0 0 0 - - -;
#X text 92 15 stores a single grid and can recall parts of it.;
#X obj 111 136 @export_list;
#X floatatom 111 184 5 0 0 0 - - -;
#X obj 73 221 @redim ( 1 2 );
#X obj 73 266 @store;
#X obj 73 307 @export_list;
#X obj 294 119 @in;
#X obj 294 45 bng 15 250 50 0 empty empty empty 0 -6 0 8 -233017 -1
-1;
#X obj 73 326 unpack f f f;
#X floatatom 73 351 5 0 0 0 - - -;
#X text 56 352 R:;
#X floatatom 134 351 5 0 0 0 - - -;
#X floatatom 194 351 5 0 0 0 - - -;
#X text 117 352 G:;
#X text 178 352 B:;
#X text 130 262 this example allows you to select a single pixel from
the loaded picture and view its rgb value.;
#X obj 111 155 unpack;
#X floatatom 164 185 5 0 0 0 - - -;
#X text 92 185 X:;
#X text 149 186 Y:;
#X text 478 14 gridflow;
#X msg 317 92 open r001.jpg;
#X obj 294 70 fork;
#X connect 1 0 5 0;
#X connect 1 0 7 0;
#X connect 2 0 1 0;
#X connect 3 0 1 1;
#X connect 5 0 20 0;
#X connect 7 0 8 0;
#X connect 8 0 9 0;
#X connect 9 0 12 0;
#X connect 10 0 8 1;
#X connect 11 0 26 0;
#X connect 12 0 13 0;
#X connect 12 1 15 0;
#X connect 12 2 16 0;
#X connect 20 0 6 0;
#X connect 20 1 21 0;
#X connect 25 0 10 0;
#X connect 26 0 10 0;
#X connect 26 1 25 0;

--- NEW FILE: @downscale_by.pd ---
#N canvas 614 643 463 368 10;
#X obj 144 82 bng 15 250 50 0 empty empty empty 0 -6 0 8 -233017 -1
-1;
#X obj 113 101 @in;
#X obj 20 72 metro 10;
#X obj 20 49 tgl 15 0 empty empty empty 0 -6 0 8 -233017 -1 -1 1 1
;
#X text 301 313 see also:;
#X obj 377 312 @scale_to;
#X obj 200 133 @import ( 1 );
#X floatatom 200 113 5 0 0 0 - - -;
#X obj 377 333 @scale_by;
#X text 14 15 @downscale_by;
#X text 384 17 gridflow;
#X obj 113 157 @downscale_by;
#X obj 113 310 @out window;
#X msg 114 56 open bluemarble.jpg;
#X connect 0 0 1 0;
#X connect 1 0 11 0;
#X connect 2 0 1 0;
#X connect 3 0 2 0;
#X connect 6 0 11 1;
#X connect 7 0 6 0;
#X connect 11 0 12 0;
#X connect 13 0 1 0;
#X connect 13 0 0 0;

--- NEW FILE: @twothreefour.pd ---
#N canvas 573 90 733 417 10;
#X text 14 15 @two \, @three \, @four;
#X text 173 16 hold 2 \, 3 or 4 values \, defaulting to all zeroes.
each time one is changed (by sending an integer in that inlet) \, a
dim(n) grid is sent through the inlet.;
#X floatatom 20 95 5 0 0 0 - - -;
#X floatatom 62 95 5 0 0 0 - - -;
#X obj 20 129 @two;
#X floatatom 113 95 5 0 0 0 - - -;
#X floatatom 155 95 5 0 0 0 - - -;
#X obj 113 129 @three;
#X floatatom 197 95 5 0 0 0 - - -;
#X floatatom 249 96 5 0 0 0 - - -;
#X floatatom 291 96 5 0 0 0 - - -;
#X floatatom 333 96 5 0 0 0 - - -;
#X obj 249 130 @four;
#X floatatom 376 96 5 0 0 0 - - -;
#X obj 22 294 @export_list;
#X obj 20 152 s _2;
#X obj 113 152 s _3;
#X obj 249 152 s _4;
#X obj 22 272 r _2;
#X obj 55 272 r _3;
#X obj 88 272 r _4;
#X floatatom 22 346 5 0 0 0 - - -;
#X obj 165 295 @fold +;
#X obj 165 273 r _2;
#X obj 198 273 r _3;
#X obj 231 273 r _4;
#X obj 165 315 @export;
#X obj 165 336 print sum;
#X obj 309 273 r _2;
#X obj 342 273 r _3;
#X obj 375 273 r _4;
#X obj 309 296 @export;
#X obj 309 317 print;
#X text 19 381 see also:;
#X obj 149 385 @import ( 1 );
#X obj 279 385 @export;
#X obj 334 385 @export_list;
#X obj 424 385 @export_symbol;
#X text 658 16 gridflow;
#X obj 245 385 @dim;
#X obj 88 385 @in;
#X obj 115 385 @for;
#X connect 2 0 4 0;
#X connect 3 0 4 1;
#X connect 4 0 15 0;
#X connect 5 0 7 0;
#X connect 6 0 7 1;
#X connect 7 0 16 0;
#X connect 8 0 7 2;
#X connect 9 0 12 0;
#X connect 10 0 12 1;
#X connect 11 0 12 2;
#X connect 12 0 17 0;
#X connect 13 0 12 3;
#X connect 14 0 21 0;
#X connect 18 0 14 0;
#X connect 19 0 14 0;
#X connect 20 0 14 0;
#X connect 22 0 26 0;
#X connect 23 0 22 0;
#X connect 24 0 22 0;
#X connect 25 0 22 0;
#X connect 26 0 27 0;
#X connect 28 0 31 0;
#X connect 29 0 31 0;
#X connect 30 0 31 0;
#X connect 31 0 32 0;

--- NEW FILE: @scale_by.pd ---
#N canvas 614 643 589 398 10;
#X obj 113 29 bng 15 250 50 0 empty empty empty 0 -6 0 8 -233017 -1
-1;
#X obj 113 101 @in;
#X obj 20 72 metro 10;
#X obj 20 49 tgl 15 0 empty empty empty 0 -6 0 8 -233017 -1 -1 1 1
;
#X text 26 359 see also:;
#X text 14 15 @scale_by;
#X obj 102 358 @scale_to;
#X obj 113 157 @scale_by;
#X floatatom 172 116 5 0 0 0 - - -;
#X text 518 16 gridflow;
#X obj 172 358 @downscale_by;
#X obj 172 136 @import ( 1 );
#X text 157 198 identical to scale_to with arguments that are exactly
twice that of the incoming grid. it's several times faster.;
#X obj 113 275 @out window;
#X msg 136 71 open bluemarble.jpg;
#X obj 113 50 fork;
#X connect 0 0 15 0;
#X connect 1 0 7 0;
#X connect 2 0 1 0;
#X connect 3 0 2 0;
#X connect 7 0 13 0;
#X connect 8 0 11 0;
#X connect 11 0 7 1;
#X connect 14 0 1 0;
#X connect 15 0 1 0;
#X connect 15 1 14 0;

--- NEW FILE: @for.pd ---
#N canvas 923 183 569 289 10;
#X text 14 15 @for;
#X obj 20 136 @for 0 320 1;
#X floatatom 20 73 5 0 0 0 - - -;
#X floatatom 59 94 5 0 0 0 - - -;
#X floatatom 99 116 5 0 0 0 - - -;
#X text 137 141 works like a for object \, plugged to an @import tuned
for a dim(size) where size is the number of values produced by a bang
to that for. syntax: @for <from> <to> <step> outlet: grid dim(size)
where size = floor(to-from+1)/step;
#X obj 20 199 @print;
#X text 490 16 gridflow;
#X connect 1 0 6 0;
#X connect 2 0 1 0;
#X connect 3 0 1 1;
#X connect 4 0 1 2;

--- NEW FILE: @posterize.pd ---
#N canvas 432 100 640 338 10;
#X obj 20 32 bng 15 250 50 0 empty empty empty 0 -6 0 8 -233017 -1
-1;
#X obj 20 100 @in;
#X obj 19 174 @posterize;
#X text 16 7 @posterize;
#X floatatom 84 131 5 2 255 0 - - -;
#X obj 84 147 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 19 127 @store;
#X text 132 131 2 - 255;
#X text 157 157 number of possible levels per channel. the levels are
equally spaced \, with the lowest at 0 and the highest at 255 the minimum
number of levels is 2 and the default value is also 2;
#X text 572 6 gridflow;
#X text 210 300 see also:;
#X obj 281 304 @convolve;
#X obj 419 304 @solarize;
#X obj 488 304 @layer;
#X obj 350 304 @contrast;
#X obj 20 59 fork;
#X msg 43 79 open bluemarble.jpg;
#X obj 19 303 @out window;
#X text 98 7 reduces the number of possible intensities in an image:
it rounds the color values. the effect is mostly apparent with a low
number of levels;
#X connect 0 0 15 0;
#X connect 1 0 6 1;
#X connect 2 0 17 0;
#X connect 4 0 2 1;
#X connect 4 0 5 0;
#X connect 5 0 6 0;
#X connect 6 0 2 0;
#X connect 15 0 1 0;
#X connect 15 1 16 0;
#X connect 16 0 1 0;





More information about the Pd-cvs mailing list