aboutsummaryrefslogtreecommitdiff
path: root/externals/gridflow/pd_examples
diff options
context:
space:
mode:
Diffstat (limited to 'externals/gridflow/pd_examples')
-rw-r--r--externals/gridflow/pd_examples/blob.pd176
-rw-r--r--externals/gridflow/pd_examples/cellular_1d.pd280
-rw-r--r--externals/gridflow/pd_examples/color_correction.pd162
-rw-r--r--externals/gridflow/pd_examples/cross_fade.pd127
-rw-r--r--externals/gridflow/pd_examples/drag_rectangle.pd50
-rw-r--r--externals/gridflow/pd_examples/eclipse.pd108
-rw-r--r--externals/gridflow/pd_examples/epicycloid.pd220
-rw-r--r--externals/gridflow/pd_examples/feedback_fractal.pd230
-rw-r--r--externals/gridflow/pd_examples/fire.pd343
-rw-r--r--externals/gridflow/pd_examples/game_of_life.pd94
-rw-r--r--externals/gridflow/pd_examples/hello-world.pd76
-rw-r--r--externals/gridflow/pd_examples/image_stats.pd68
-rw-r--r--externals/gridflow/pd_examples/linear_transform.pd316
-rw-r--r--externals/gridflow/pd_examples/photo_pianoroll.pd291
-rw-r--r--externals/gridflow/pd_examples/polygon.pd130
-rw-r--r--externals/gridflow/pd_examples/sand.pd282
-rw-r--r--externals/gridflow/pd_examples/scratch_video.pd163
-rw-r--r--externals/gridflow/pd_examples/spectrogram.pd173
-rw-r--r--externals/gridflow/pd_examples/threshold.pd149
-rw-r--r--externals/gridflow/pd_examples/transform.pd32
-rw-r--r--externals/gridflow/pd_examples/videodev_effects.pd138
-rw-r--r--externals/gridflow/pd_examples/waves.pd493
22 files changed, 2170 insertions, 1931 deletions
diff --git a/externals/gridflow/pd_examples/blob.pd b/externals/gridflow/pd_examples/blob.pd
index 48f5251a..12ea5ee6 100644
--- a/externals/gridflow/pd_examples/blob.pd
+++ b/externals/gridflow/pd_examples/blob.pd
@@ -1,106 +1,106 @@
-#N canvas 19 81 792 565 10;
-#X floatatom 405 212 5 0 0 0 - - -;
-#X obj 347 172 r move;
-#X obj 56 95 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+#N canvas 19 81 792 575 10;
+#X floatatom 398 265 5 0 0 0 - - -;
+#X obj 368 225 r move;
+#X obj 56 129 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
-#X msg 56 128 240 320 3 # 0;
-#X msg 461 357 300;
-#X obj 398 342 # * 300;
-#X obj 311 436 # cos*;
-#X msg 460 319 1600;
-#X msg 513 249 25;
-#X obj 373 212 +;
-#X msg 513 268 100;
-#X obj 504 192 hsl 128 15 100 2600 0 1 empty empty empty -2 -6 0 8
+#X msg 56 162 240 320 3 # 0;
+#X msg 461 407 300;
+#X obj 398 392 # * 300;
+#X obj 261 475 # cos*;
+#X msg 461 369 1600;
+#X msg 513 299 25;
+#X obj 368 263 +;
+#X msg 513 318 100;
+#X obj 505 244 hsl 128 15 100 2600 0 1 empty empty empty -2 -6 0 8
-260818 -1 -1 2297 1;
-#X text 364 435 make circular orbit of variable radius;
-#X floatatom 502 211 5 0 0 0 - - -;
-#X msg 461 338 800;
-#X text 294 325 frequency of the orbit;
-#X text 500 177 increment;
-#X msg 373 192 1;
-#X obj 64 58 s move;
-#X obj 311 394 #outer + ( 0 9000 );
-#X obj 73 94 loadbang;
-#X obj 19 0 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 1 1;
-#X obj 78 351 #out window;
-#X obj 246 126 # +;
-#X obj 438 299 # + 50;
-#X text 401 197 counter;
-#X obj 19 41 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+#X text 314 474 make circular orbit of variable radius;
+#X floatatom 502 261 5 0 0 0 - - -;
+#X msg 461 388 800;
+#X text 294 375 frequency of the orbit;
+#X text 501 229 increment;
+#X msg 368 244 1;
+#X obj 58 108 s move;
+#X obj 73 128 loadbang;
+#X obj 19 50 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 0 1;
+#X obj 75 392 #out window;
+#X obj 186 236 # +;
+#X obj 437 345 # + 50;
+#X text 394 250 counter;
+#X obj 19 91 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
-#X obj 311 458 # + ( 120 160 );
-#X obj 19 309 #store;
-#X text 65 113 blank image to start with;
-#X text 272 127 translate the square;
-#X text 546 247 make a wavy radius (50-100) \; the 1100 is its frequency
+#X obj 261 494 # + ( 120 160 );
+#X obj 19 354 #store;
+#X text 65 147 blank image to start with;
+#X text 212 237 translate the square;
+#X text 546 297 make a wavy radius (50-100) \; the 1100 is its frequency
\; tune it for fun and profit.;
-#X obj 19 58 t b b;
-#X obj 368 232 t a a a;
-#X msg 246 74 4 2 # -1 -1 -1 1 1 1 1 -1;
-#X obj 19 22 metro 1.367;
-#X obj 8 491 cnv 15 780 30 empty empty empty 20 12 0 14 -200249 -66577
+#X obj 19 108 t b b;
+#X obj 368 282 t a a a;
+#X msg 186 198 4 2 # -1 -1 -1 1 1 1 1 -1;
+#X obj 19 72 metro 1.367;
+#X obj 8 541 cnv 15 780 30 empty empty empty 20 12 0 14 -200249 -66577
0;
-#X text 16 498 GridFlow 0.8.0;
-#X obj 8 -38 cnv 15 780 30 empty empty empty 20 12 0 14 -233017 -66577
+#X text 16 548 GridFlow 0.8.0;
+#X obj 8 12 cnv 15 780 30 empty empty empty 20 12 0 14 -233017 -66577
0;
-#X text 21 -38 Blob.pd;
-#X msg 514 287 10;
-#X obj 437 257 # * 1000;
-#X obj 101 215 #color;
-#X obj 101 171 loadbang;
-#X text 452 383 duplicate the angle \; make the 2nd 90 degrees apart
+#X text 21 12 Blob.pd;
+#X msg 514 337 10;
+#X obj 437 307 # * 1000;
+#X obj 101 265 #color;
+#X obj 101 221 loadbang;
+#X text 385 432 duplicate the angle \; make the 2nd 90 degrees apart
(required for a circle \; else it'll be an oval or a line);
-#X obj 78 309 #draw_polygon + (3 # );
-#X text 21 -25 Copyright 2002 Mathieu Bouchard and Alexandre Castonguay
+#X obj 75 354 #draw_polygon + (3 # );
+#X text 21 25 Copyright 2002 Mathieu Bouchard and Alexandre Castonguay
;
-#X text 245 58 a 2x2 square's coordinates;
-#X text 288 103 scale factor;
-#X obj 246 102 # * 8;
-#X obj 78 330 #solarize;
-#X text 400 -1 This is the classic "Shadebob" effect of the demoscene
+#X text 185 182 a 2x2 square's coordinates;
+#X text 228 218 scale factor;
+#X obj 186 217 # * 8;
+#X obj 75 373 #solarize;
+#X text 400 49 This is the classic "Shadebob" effect of the demoscene
;
-#X msg 101 193 12 24 36;
-#X text 6 284 superimpose the light of many squares;
-#X obj 438 278 # cos* 100;
+#X msg 101 243 12 24 36;
+#X text 6 331 superimpose the light of many squares;
+#X obj 437 326 # cos* 100;
+#X obj 261 444 #outer + (0 9000);
#X connect 0 0 9 1;
#X connect 1 0 17 0;
#X connect 2 0 3 0;
-#X connect 3 0 28 1;
+#X connect 3 0 27 1;
#X connect 4 0 5 1;
-#X connect 5 0 19 0;
-#X connect 6 0 27 0;
+#X connect 5 0 54 0;
+#X connect 6 0 26 0;
#X connect 7 0 5 1;
-#X connect 8 0 54 1;
+#X connect 8 0 53 1;
#X connect 9 0 0 0;
-#X connect 9 0 33 0;
-#X connect 10 0 54 1;
+#X connect 9 0 32 0;
+#X connect 10 0 53 1;
#X connect 11 0 13 0;
-#X connect 13 0 41 1;
+#X connect 13 0 40 1;
#X connect 14 0 5 1;
#X connect 17 0 9 0;
-#X connect 19 0 6 0;
-#X connect 20 0 2 0;
-#X connect 21 0 35 0;
-#X connect 23 0 45 2;
-#X connect 24 0 6 1;
-#X connect 26 0 32 0;
-#X connect 27 0 23 1;
-#X connect 28 0 45 0;
-#X connect 32 0 28 0;
-#X connect 32 1 18 0;
-#X connect 33 0 34 0;
-#X connect 33 1 5 0;
-#X connect 33 2 41 0;
-#X connect 34 0 49 0;
-#X connect 35 0 26 0;
-#X connect 40 0 54 1;
-#X connect 41 0 54 0;
-#X connect 42 0 45 1;
-#X connect 43 0 52 0;
-#X connect 45 0 28 1;
-#X connect 45 0 50 0;
-#X connect 49 0 23 0;
-#X connect 50 0 22 0;
-#X connect 52 0 42 0;
-#X connect 54 0 24 0;
+#X connect 19 0 2 0;
+#X connect 20 0 34 0;
+#X connect 22 0 44 2;
+#X connect 23 0 6 1;
+#X connect 25 0 31 0;
+#X connect 26 0 22 1;
+#X connect 27 0 44 0;
+#X connect 31 0 27 0;
+#X connect 31 1 18 0;
+#X connect 32 0 33 0;
+#X connect 32 1 5 0;
+#X connect 32 2 40 0;
+#X connect 33 0 48 0;
+#X connect 34 0 25 0;
+#X connect 39 0 53 1;
+#X connect 40 0 53 0;
+#X connect 41 0 44 1;
+#X connect 42 0 51 0;
+#X connect 44 0 27 1;
+#X connect 44 0 49 0;
+#X connect 48 0 22 0;
+#X connect 49 0 21 0;
+#X connect 51 0 41 0;
+#X connect 53 0 23 0;
+#X connect 54 0 6 0;
diff --git a/externals/gridflow/pd_examples/cellular_1d.pd b/externals/gridflow/pd_examples/cellular_1d.pd
index eb1c6c30..138b20a1 100644
--- a/externals/gridflow/pd_examples/cellular_1d.pd
+++ b/externals/gridflow/pd_examples/cellular_1d.pd
@@ -1,164 +1,160 @@
-#N canvas 337 53 804 634 10;
-#X obj 43 68 loadbang;
-#X obj 93 382 tgl 15 0 empty empty empty 0 -6 0 8 -260818 -1 -1 0 1
+#N canvas 355 53 786 544 10;
+#X obj 33 103 loadbang;
+#X obj 93 352 tgl 15 0 empty empty empty 0 -6 0 8 -260818 -1 -1 0 1
;
-#X obj 108 382 tgl 15 0 empty empty empty 0 -6 0 8 -260818 -1 -1 1
+#X obj 108 352 tgl 15 0 empty empty empty 0 -6 0 8 -260818 -1 -1 1
1;
-#X obj 123 382 tgl 15 0 empty empty empty 0 -6 0 8 -260818 -1 -1 1
+#X obj 123 352 tgl 15 0 empty empty empty 0 -6 0 8 -260818 -1 -1 1
1;
-#X obj 138 382 tgl 15 0 empty empty empty 0 -6 0 8 -260818 -1 -1 0
+#X obj 138 352 tgl 15 0 empty empty empty 0 -6 0 8 -260818 -1 -1 0
1;
-#X obj 153 382 tgl 15 0 empty empty empty 0 -6 0 8 -260818 -1 -1 1
+#X obj 153 352 tgl 15 0 empty empty empty 0 -6 0 8 -260818 -1 -1 1
1;
-#X obj 168 382 tgl 15 0 empty empty empty 0 -6 0 8 -260818 -1 -1 0
+#X obj 168 352 tgl 15 0 empty empty empty 0 -6 0 8 -260818 -1 -1 0
1;
-#X obj 183 382 tgl 15 0 empty empty empty 0 -6 0 8 -260818 -1 -1 1
+#X obj 183 352 tgl 15 0 empty empty empty 0 -6 0 8 -260818 -1 -1 1
1;
-#X obj 198 382 tgl 15 0 empty empty empty 0 -6 0 8 -260818 -1 -1 0
+#X obj 198 352 tgl 15 0 empty empty empty 0 -6 0 8 -260818 -1 -1 0
1;
-#X obj 124 498 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10
+#X obj 124 468 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10
-262144 -1 -1 86 256;
-#X obj -5 188 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+#X obj -1 215 bng 15 250 50 0 empty empty empty 0 -6 0 8 -24198 -1
-1;
-#X msg 17 332 1 256 # 1;
-#X msg 43 102 1 256 # 2;
-#X obj 17 -2 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 1 1;
-#X obj 418 199 loadbang;
-#X msg 418 219 1 256 # 0;
-#X text 131 482 characteristic number;
-#X obj 428 11 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10
--262144 -1 -1 4 256;
-#X msg 467 69 \$1 256;
-#X msg 352 82 set \$1;
-#X text 104 124 randomizer;
-#X text 91 361 specify behaviour here;
-#X text 24 254 compute new state;
-#X text 315 237 make scrollie;
-#X text 367 270 convert bit matrix to rgb image;
-#X text 313 250 (window height = 128);
-#X obj 202 38 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+#X msg 17 312 1 256 # 1;
+#X msg 33 122 1 256 # 2;
+#X obj -1 77 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 0 1;
+#X obj 415 245 loadbang;
+#X msg 415 264 1 256 # 0;
+#X text 131 452 characteristic number;
+#X obj 352 86 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10
+-241291 -1 -1 0 256;
+#X msg 466 127 \$1 256;
+#X msg 352 122 set \$1;
+#X text 79 141 randomizer;
+#X text 91 331 specify behaviour here;
+#X text 24 234 compute new state;
+#X text 315 283 make scrollie;
+#X text 367 313 convert bit matrix to rgb image;
+#X text 313 296 (window height = 128);
+#X obj 159 74 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
-#X obj 151 337 loadbang;
-#X text 47 84 click here to restart;
-#X obj 99 200 t a a;
-#X obj 17 26 metro 33.3667;
-#X obj 416 115 t a a;
-#X obj 472 359 loadbang;
-#X obj 389 495 unpack 0 0 0;
-#X obj 564 494 unpack 0 0 0;
-#X msg 389 394 3 # 0;
-#X msg 565 395 3 # 255;
-#X text 442 392 background;
-#X text 629 395 foreground;
-#X obj 17 292 t a a;
-#X obj 43 124 # rand;
-#X obj 17 234 #store;
-#X obj 17 312 #finished;
-#X obj 17 352 # <<;
-#X obj 17 372 # &;
-#X obj 17 392 # != 0;
-#X obj 123 406 #pack 8;
-#X obj 124 445 #fold +;
-#X obj 124 466 #export;
-#X obj 202 56 #for 0 256 1;
-#X obj 202 76 # == 128;
-#X obj 202 96 #redim ( 1 256 );
-#X obj 416 96 #import ( 1 256 );
-#X obj 416 135 #finished;
-#X obj 352 157 #for 1 128 1;
-#X obj 352 177 #outer ignore ( 0 );
-#X obj 352 197 #store;
-#X obj 352 218 @join 0;
-#X obj 351 287 #outer ignore ( 0 );
-#X obj 351 308 #store;
-#X obj 398 308 #redim ( 2 3 );
-#X obj 389 414 #color;
-#X obj 565 414 #color;
-#X obj 389 475 #export_list;
-#X obj 565 475 #export_list;
-#X obj 492 526 #pack 6;
-#X obj 17 272 #convolve (1 3 # 1 2 4);
-#X obj 124 426 # << (0 1 2 3 4 5 6 7);
-#X obj -4 550 cnv 15 780 30 empty empty empty 20 12 0 14 -200249 -66577
+#X obj 151 307 loadbang;
+#X obj 95 182 t a a;
+#X obj 17 76 metro 33.3667;
+#X obj 366 165 t a a;
+#X obj 534 403 loadbang;
+#X msg 419 404 3 # 0;
+#X msg 595 405 3 # 255;
+#X text 460 405 background;
+#X text 648 407 foreground;
+#X obj 17 272 t a a;
+#X obj 33 141 # rand;
+#X obj 17 214 #store;
+#X obj 17 292 #finished;
+#X obj 17 332 # <<;
+#X obj 17 352 # &;
+#X obj 17 372 # != 0;
+#X obj 123 376 #pack 8;
+#X obj 124 415 #fold +;
+#X obj 124 436 #export;
+#X obj 159 91 #for 0 256 1;
+#X obj 159 110 # == 128;
+#X obj 159 129 #redim ( 1 256 );
+#X obj 366 184 #finished;
+#X obj 352 207 #for 1 128 1;
+#X obj 352 245 #store;
+#X obj 352 264 @join 0;
+#X obj 351 349 #store;
+#X obj 419 424 #color;
+#X obj 595 424 #color;
+#X obj 513 485 #pack 6;
+#X obj 17 252 #convolve (1 3 # 1 2 4);
+#X obj 124 396 # << (0 1 2 3 4 5 6 7);
+#X obj -4 510 cnv 15 780 30 empty empty empty 20 12 0 14 -200249 -66577
0;
-#X text 4 557 GridFlow 0.8.0;
-#X obj -7 -50 cnv 15 780 30 empty empty empty 20 12 0 14 -233017 -66577
+#X text 4 517 GridFlow 0.8.0;
+#X obj -7 0 cnv 15 780 30 empty empty empty 20 12 0 14 -233017 -66577
0;
-#X obj 351 330 #out window;
-#X text -3 -35 Copyright 2002 Mathieu Bouchard;
-#X text -3 -49 Cellular_1d;
-#X obj 428 34 max 1;
-#X text 495 9 <-- number of new lines per frame;
-#X text 221 37 <-- make single dot;
+#X obj 351 368 #out window;
+#X text -3 15 Copyright 2002 Mathieu Bouchard;
+#X text -3 1 Cellular_1d;
+#X obj 352 102 max 1;
+#X text 419 84 <-- number of new lines per frame;
+#X text 178 73 <-- make single dot;
+#X text 100 123 restart;
+#X obj 352 226 #outer ignore (0);
+#X obj 351 330 #outer ignore (0);
+#X obj 398 349 #redim (2 3);
+#X obj 366 146 #import (1 256);
+#X obj 419 484 #unpack 3;
+#X obj 595 484 #unpack 3;
#X connect 0 0 12 0;
-#X connect 1 0 46 0;
-#X connect 2 0 46 1;
-#X connect 3 0 46 2;
-#X connect 4 0 46 3;
-#X connect 5 0 46 4;
-#X connect 6 0 46 5;
-#X connect 7 0 46 6;
-#X connect 8 0 46 7;
-#X connect 9 0 44 1;
-#X connect 10 0 41 0;
-#X connect 11 0 43 0;
-#X connect 12 0 40 0;
-#X connect 13 0 30 0;
+#X connect 1 0 43 0;
+#X connect 2 0 43 1;
+#X connect 3 0 43 2;
+#X connect 4 0 43 3;
+#X connect 5 0 43 4;
+#X connect 6 0 43 5;
+#X connect 7 0 43 6;
+#X connect 8 0 43 7;
+#X connect 9 0 41 1;
+#X connect 10 0 38 0;
+#X connect 11 0 40 0;
+#X connect 12 0 37 0;
+#X connect 13 0 29 0;
#X connect 14 0 15 0;
-#X connect 15 0 56 1;
-#X connect 17 0 74 0;
-#X connect 18 0 52 1;
-#X connect 19 0 54 0;
-#X connect 26 0 49 0;
+#X connect 15 0 51 1;
+#X connect 17 0 65 0;
+#X connect 18 0 72 1;
+#X connect 19 0 50 0;
+#X connect 26 0 46 0;
#X connect 27 0 2 0;
#X connect 27 0 3 0;
#X connect 27 0 7 0;
#X connect 27 0 5 0;
-#X connect 29 0 41 1;
-#X connect 29 1 52 0;
-#X connect 30 0 41 0;
-#X connect 31 0 53 0;
-#X connect 31 1 57 1;
-#X connect 32 0 35 0;
-#X connect 32 0 36 0;
-#X connect 33 0 65 0;
-#X connect 33 1 65 1;
-#X connect 33 2 65 2;
-#X connect 34 0 65 3;
-#X connect 34 1 65 4;
-#X connect 34 2 65 5;
-#X connect 35 0 61 0;
-#X connect 36 0 62 0;
-#X connect 39 0 42 0;
-#X connect 39 1 43 1;
-#X connect 40 0 29 0;
-#X connect 41 0 66 0;
-#X connect 42 0 11 0;
-#X connect 43 0 44 0;
+#X connect 28 0 38 1;
+#X connect 28 1 72 0;
+#X connect 29 0 38 0;
+#X connect 30 0 49 0;
+#X connect 30 1 52 1;
+#X connect 31 0 32 0;
+#X connect 31 0 33 0;
+#X connect 32 0 54 0;
+#X connect 33 0 55 0;
+#X connect 36 0 39 0;
+#X connect 36 1 40 1;
+#X connect 37 0 28 0;
+#X connect 38 0 57 0;
+#X connect 39 0 11 0;
+#X connect 40 0 41 0;
+#X connect 41 0 42 0;
+#X connect 42 0 28 0;
+#X connect 43 0 58 0;
#X connect 44 0 45 0;
-#X connect 45 0 29 0;
-#X connect 46 0 67 0;
+#X connect 45 0 9 0;
+#X connect 46 0 47 0;
#X connect 47 0 48 0;
-#X connect 48 0 9 0;
+#X connect 48 0 28 0;
#X connect 49 0 50 0;
-#X connect 50 0 51 0;
-#X connect 51 0 29 0;
-#X connect 52 0 31 0;
-#X connect 53 0 54 0;
-#X connect 54 0 55 0;
-#X connect 55 0 56 0;
-#X connect 56 0 57 0;
-#X connect 57 0 56 1;
-#X connect 57 0 58 0;
-#X connect 58 0 59 0;
-#X connect 59 0 71 0;
-#X connect 60 0 59 1;
-#X connect 61 0 63 0;
-#X connect 62 0 64 0;
-#X connect 63 0 33 0;
-#X connect 64 0 34 0;
-#X connect 65 0 60 0;
-#X connect 66 0 39 0;
-#X connect 67 0 47 0;
-#X connect 74 0 19 0;
-#X connect 74 0 18 0;
+#X connect 50 0 69 0;
+#X connect 51 0 52 0;
+#X connect 52 0 51 1;
+#X connect 52 0 70 0;
+#X connect 53 0 62 0;
+#X connect 54 0 73 0;
+#X connect 55 0 74 0;
+#X connect 56 0 71 0;
+#X connect 57 0 36 0;
+#X connect 58 0 44 0;
+#X connect 65 0 19 0;
+#X connect 65 0 18 0;
+#X connect 69 0 51 0;
+#X connect 70 0 53 0;
+#X connect 71 0 53 1;
+#X connect 72 0 30 0;
+#X connect 73 0 56 0;
+#X connect 73 1 56 1;
+#X connect 73 2 56 2;
+#X connect 74 0 56 3;
+#X connect 74 1 56 4;
+#X connect 74 2 56 5;
diff --git a/externals/gridflow/pd_examples/color_correction.pd b/externals/gridflow/pd_examples/color_correction.pd
index 2a153d20..8c276f11 100644
--- a/externals/gridflow/pd_examples/color_correction.pd
+++ b/externals/gridflow/pd_examples/color_correction.pd
@@ -1,8 +1,8 @@
-#N canvas 455 129 676 546 10;
-#X text 360 96 sigma (extremes);
-#X obj 134 433 #out window;
-#X text 361 171 linear (contrast);
-#X obj 134 364 shunt 2;
+#N canvas 459 129 672 521 10;
+#X text 360 136 sigma (extremes);
+#X obj 134 465 #out window;
+#X text 361 211 linear (contrast);
+#X obj 134 404 shunt 2;
#N canvas 1 96 188 188 color 0;
#X obj 55 134 # inv+;
#X obj 55 90 # inv+ 255;
@@ -22,9 +22,9 @@
#X connect 6 0 0 0;
#X connect 7 0 3 0;
#X connect 8 0 1 0;
-#X restore 184 386 pd color correction graph generator;
-#X obj 19 295 #in;
-#X text 360 244 constant (brightness);
+#X restore 184 425 pd color correction graph generator;
+#X obj 59 285 #in;
+#X text 360 284 constant (brightness);
#N canvas 604 262 237 400 color-correction 0;
#X obj 23 214 # + 128;
#X obj 23 194 # /;
@@ -67,88 +67,88 @@
#X connect 17 0 4 0;
#X connect 18 0 8 1;
#X connect 19 0 8 0;
-#X restore 176 274 pd color-correction;
-#X obj 134 386 #store;
-#X obj 29 5 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 0 1;
-#X obj 29 50 #for 0 256 1;
-#X msg 19 274 open teapot.png \, bang;
-#X obj 164 298 #finished;
-#X obj 29 27 metro 33.3667;
-#X obj 19 254 loadbang;
-#X obj 256 52 vradio 15 1 0 3 empty empty empty 0 -6 0 8 -241291 -1
+#X restore 176 314 pd color-correction;
+#X obj 134 425 #store;
+#X obj 29 45 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 0 1;
+#X obj 29 81 #for 0 256 1;
+#X obj 164 338 #finished;
+#X obj 29 62 metro 33.3667;
+#X obj 59 247 loadbang;
+#X obj 256 92 vradio 15 1 0 3 empty empty empty 0 -6 0 8 -241291 -1
-1 0;
-#X text 277 53 regular;
-#X text 276 68 solarize;
-#X text 277 82 solarize 2;
-#X obj 29 91 shunt 3;
-#X obj 29 163 t a;
-#X obj 122 146 # sin* 255;
-#X obj 123 127 # / 255;
-#X obj 123 108 # * 18000;
-#X obj 190 351 vradio 15 1 0 2 empty empty empty 0 -6 0 8 -241291 -1
+#X text 277 93 regular;
+#X text 276 108 solarize;
+#X text 277 122 solarize 2;
+#X obj 29 119 shunt 3;
+#X obj 29 173 t a;
+#X obj 119 174 # sin* 255;
+#X obj 120 155 # / 255;
+#X obj 120 136 # * 18000;
+#X obj 190 391 vradio 15 1 0 2 empty empty empty 0 -6 0 8 -241291 -1
-1 0;
-#X text 209 351 see picture;
-#X text 209 366 see graph;
-#X obj 8 231 spigot;
-#X obj 57 232 tgl 15 0 empty empty empty 0 -6 0 8 -241291 -1 -1 0 1
+#X text 209 391 see picture;
+#X text 209 406 see graph;
+#X obj 8 221 spigot;
+#X obj 57 222 tgl 15 0 empty empty empty 0 -6 0 8 -241291 -1 -1 0 1
;
-#X text 13 214 enable stream;
-#X text 361 20 gamma (midtones);
-#X msg 254 143 3 # 256;
-#X obj 253 123 loadbang;
-#X msg 237 171 3 # 0;
-#X obj 8 320 #camera;
-#X obj 362 37 #color 0 1024 1;
-#X obj 362 112 #color 0 1024 1;
-#X obj 362 186 #color 0 1024 1;
-#X obj 362 258 #color -256 256 1;
-#X obj 51 114 #solarize;
-#X obj 134 411 #apply_colormap_channelwise;
-#X obj 2 -38 cnv 15 720 30 empty empty empty 20 12 0 14 -233017 -66577
+#X text 13 204 enable stream;
+#X text 361 60 gamma (midtones);
+#X msg 254 183 3 # 256;
+#X obj 253 163 loadbang;
+#X msg 238 212 3 # 0;
+#X obj 8 310 #camera;
+#X obj 362 77 #color 0 1024 1;
+#X obj 362 152 #color 0 1024 1;
+#X obj 362 226 #color 0 1024 1;
+#X obj 362 298 #color -256 256 1;
+#X obj 51 140 #solarize;
+#X obj 134 445 #apply_colormap_channelwise;
+#X obj 2 2 cnv 15 720 30 empty empty empty 20 12 0 14 -233017 -66577
0;
-#X text 15 -25 Copyright 2002 Mathieu Bouchard;
-#X obj 2 477 cnv 15 720 30 empty empty empty 20 12 0 14 -200249 -66577
+#X text 15 15 Copyright 2002 Mathieu Bouchard;
+#X obj 2 487 cnv 15 720 30 empty empty empty 20 12 0 14 -200249 -66577
0;
-#X text 10 484 GridFlow 0.8.0;
-#X text 15 -38 color_correction.pd;
-#X obj 29 71 #outer + (0 0 0);
+#X text 10 494 GridFlow 0.8.0;
+#X text 15 2 color_correction.pd;
+#X obj 29 100 #outer + (0 0 0);
+#X msg 59 266 load teapot.png;
#X connect 3 0 8 0;
#X connect 3 1 4 0;
#X connect 4 0 1 0;
#X connect 5 0 8 1;
-#X connect 7 0 12 0;
+#X connect 7 0 11 0;
#X connect 7 0 4 1;
-#X connect 7 0 40 1;
-#X connect 8 0 40 0;
-#X connect 9 0 13 0;
-#X connect 10 0 46 0;
-#X connect 11 0 5 0;
-#X connect 12 0 3 0;
-#X connect 13 0 10 0;
-#X connect 13 0 27 0;
-#X connect 14 0 11 0;
-#X connect 15 0 19 1;
-#X connect 19 0 20 0;
-#X connect 19 1 39 0;
-#X connect 19 2 23 0;
-#X connect 20 0 7 0;
+#X connect 7 0 39 1;
+#X connect 8 0 39 0;
+#X connect 9 0 12 0;
+#X connect 10 0 45 0;
+#X connect 11 0 3 0;
+#X connect 12 0 10 0;
+#X connect 12 0 26 0;
+#X connect 13 0 46 0;
+#X connect 14 0 18 1;
+#X connect 18 0 19 0;
+#X connect 18 1 38 0;
+#X connect 18 2 22 0;
+#X connect 19 0 7 0;
+#X connect 20 0 19 0;
#X connect 21 0 20 0;
#X connect 22 0 21 0;
-#X connect 23 0 22 0;
-#X connect 24 0 3 1;
-#X connect 27 0 34 0;
-#X connect 28 0 27 1;
-#X connect 31 0 35 0;
-#X connect 31 0 36 0;
-#X connect 31 0 37 0;
-#X connect 32 0 31 0;
-#X connect 32 0 33 0;
-#X connect 33 0 38 0;
-#X connect 34 0 8 1;
-#X connect 35 0 7 1;
-#X connect 36 0 7 2;
-#X connect 37 0 7 3;
-#X connect 38 0 7 4;
-#X connect 39 0 20 0;
-#X connect 40 0 1 0;
-#X connect 46 0 19 0;
+#X connect 23 0 3 1;
+#X connect 26 0 33 0;
+#X connect 27 0 26 1;
+#X connect 30 0 34 0;
+#X connect 30 0 35 0;
+#X connect 30 0 36 0;
+#X connect 31 0 30 0;
+#X connect 31 0 32 0;
+#X connect 32 0 37 0;
+#X connect 33 0 8 1;
+#X connect 34 0 7 1;
+#X connect 35 0 7 2;
+#X connect 36 0 7 3;
+#X connect 37 0 7 4;
+#X connect 38 0 19 0;
+#X connect 39 0 1 0;
+#X connect 45 0 18 0;
+#X connect 46 0 5 0;
diff --git a/externals/gridflow/pd_examples/cross_fade.pd b/externals/gridflow/pd_examples/cross_fade.pd
index f7af6195..1656b935 100644
--- a/externals/gridflow/pd_examples/cross_fade.pd
+++ b/externals/gridflow/pd_examples/cross_fade.pd
@@ -1,73 +1,74 @@
-#N canvas 401 101 681 500 10;
-#X obj 33 191 # *>>8;
-#X text 60 235 first picture plus a fraction of the difference;
-#X obj 33 233 # +;
-#X obj 33 170 #store;
-#X obj 264 103 # inv+;
-#X obj 88 254 tgl 15 0 empty empty empty 0 -6 0 8 -241291 -1 -1 0 1
+#N canvas 397 101 680 501 10;
+#X obj 13 229 # *>>8;
+#X text 40 293 first picture plus a fraction of the difference;
+#X obj 13 291 # +;
+#X obj 13 210 #store;
+#X obj 211 157 # inv+;
+#X obj 68 311 tgl 15 0 empty empty empty 0 -6 0 8 -241291 -1 -1 0 1
;
-#X text 152 324 note: the #layer/#join objects can make the crossfade
+#X text 12 372 note: the #layer/#join objects can make the crossfade
process simpler but it's still not faster.;
-#X obj 50 -30 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 0 1
-;
-#X msg 309 72 open r001.jpg \, cast int16 \, bang;
-#X obj 283 72 #in;
-#X obj 33 149 #finished;
-#X text 109 257 click to clip out-of-range colours;
-#X text 82 190 multiply by a N/256 fraction;
-#X obj 81 295 # max 0;
-#X obj 264 51 #in;
-#X obj 81 274 # min 255;
-#X obj 33 326 #out window;
-#X obj 33 109 #cast int16;
-#X text 81 170 keep the difference between both pictures;
-#X msg 290 51 open b001.jpg \, cast int16 \, bang;
-#X obj 290 31 t b b;
-#X obj 330 31 loadbang;
-#X obj 33 253 shunt 2;
-#X obj 50 -5 metro 33.3667;
-#X obj 50 15 float;
-#X obj 62 44 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10
+#X obj 13 46 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 0 1;
+#X obj 264 130 #in;
+#X obj 13 191 #finished;
+#X text 85 311 click to clip out-of-range colours;
+#X text 60 229 multiply by a N/256 fraction;
+#X obj 211 111 #in;
+#X obj 13 353 #out window;
+#X obj 13 153 #cast int16;
+#X text 61 213 keep the difference between both pictures;
+#X obj 249 91 t b b;
+#X obj 249 72 loadbang;
+#X obj 13 310 shunt 2;
+#X obj 13 63 metro 33.3667;
+#X obj 13 82 float;
+#X obj 25 101 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10
-262144 -1 -1 0 256;
-#X obj 94 14 + 4;
-#X obj 50 65 pingpong 256;
-#X obj 61 87 hsl 129 15 0 256 0 0 empty empty empty -2 -6 0 8 -260818
+#X obj 52 82 + 4;
+#X obj 13 117 pingpong 256;
+#X obj 21 136 hsl 129 15 0 256 0 0 empty empty empty -2 -6 0 8 -260818
-1 -1 0 1;
-#X obj 33 128 t a a;
-#X text 153 362 also #draw_image/#join is a possibility;
-#X obj 0 -77 cnv 15 680 30 empty empty empty 20 12 0 14 -233017 -66577
+#X obj 13 172 t a a;
+#X text 11 406 also #draw_image/#join is a possibility;
+#X obj 0 1 cnv 15 680 30 empty empty empty 20 12 0 14 -233017 -66577
0;
-#X text 14 -64 Copyright 2002 Mathieu Bouchard;
-#X text 14 -80 cross_fade.pd;
-#X obj 0 391 cnv 15 680 30 empty empty empty 20 12 0 14 -200249 -66577
+#X text 14 14 Copyright 2002 Mathieu Bouchard;
+#X text 14 -2 cross_fade.pd;
+#X obj 0 469 cnv 15 680 30 empty empty empty 20 12 0 14 -200249 -66577
0;
-#X text 8 399 GridFlow 0.8.0;
+#X text 8 477 GridFlow 0.8.0;
+#X obj 57 329 #clip;
+#X msg 237 111 load b001.jpg;
+#X msg 289 130 load r001.jpg;
+#X obj 264 149 #cast s;
+#X obj 211 130 #cast s;
#X connect 0 0 2 0;
-#X connect 2 0 22 0;
+#X connect 2 0 18 0;
#X connect 3 0 0 0;
#X connect 4 0 3 1;
-#X connect 5 0 22 1;
-#X connect 7 0 23 0;
-#X connect 8 0 9 0;
-#X connect 9 0 4 1;
-#X connect 10 0 3 0;
-#X connect 13 0 16 0;
-#X connect 14 0 4 0;
-#X connect 14 0 2 1;
-#X connect 15 0 13 0;
-#X connect 17 0 29 0;
-#X connect 19 0 14 0;
-#X connect 20 0 19 0;
-#X connect 20 1 8 0;
-#X connect 21 0 20 0;
-#X connect 22 0 16 0;
-#X connect 22 1 15 0;
+#X connect 5 0 18 1;
+#X connect 7 0 19 0;
+#X connect 8 0 35 0;
+#X connect 9 0 3 0;
+#X connect 12 0 36 0;
+#X connect 14 0 25 0;
+#X connect 16 0 33 0;
+#X connect 16 1 34 0;
+#X connect 17 0 16 0;
+#X connect 18 0 13 0;
+#X connect 18 1 32 0;
+#X connect 19 0 20 0;
+#X connect 20 0 21 0;
+#X connect 20 0 22 0;
+#X connect 20 0 23 0;
+#X connect 22 0 20 1;
#X connect 23 0 24 0;
-#X connect 24 0 25 0;
-#X connect 24 0 26 0;
-#X connect 24 0 27 0;
-#X connect 26 0 24 1;
-#X connect 27 0 28 0;
-#X connect 27 0 17 0;
-#X connect 29 0 10 0;
-#X connect 29 1 0 1;
+#X connect 23 0 14 0;
+#X connect 25 0 9 0;
+#X connect 25 1 0 1;
+#X connect 32 0 13 0;
+#X connect 33 0 12 0;
+#X connect 34 0 8 0;
+#X connect 35 0 4 1;
+#X connect 36 0 4 0;
+#X connect 36 0 2 1;
diff --git a/externals/gridflow/pd_examples/drag_rectangle.pd b/externals/gridflow/pd_examples/drag_rectangle.pd
index 3453c9a8..ab0d8ea8 100644
--- a/externals/gridflow/pd_examples/drag_rectangle.pd
+++ b/externals/gridflow/pd_examples/drag_rectangle.pd
@@ -1,15 +1,15 @@
#N canvas 702 123 647 484 10;
-#X obj 231 -7 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 1 1
+#X obj 231 -7 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 0 1
;
#X obj 231 117 #out window;
#X obj 21 144 hsl 128 15 0 319 0 0 h_end_o h_end_i empty -2 -8 1 10
--262144 -1 -1 12700 1;
+-262144 -1 -1 0 1;
#X obj 21 -4 hsl 128 15 0 319 0 0 h_start_o h_start_i empty 0 8 1 10
-262144 -66577 -258699 0 0;
#X obj 3 13 vsl 15 128 239 0 0 0 v_start_o v_start_i empty 0 -8 1 10
--262144 -1 -1 12647 1;
+-262144 -1 -1 0 1;
#X obj 151 13 vsl 15 128 239 0 0 0 v_end_o v_end_i empty 0 -8 1 10
--262144 -1 -1 425 1;
+-262144 -1 -1 0 1;
#N canvas 504 374 452 302 make_rectangle 0;
#X obj 27 16 inlet;
#X text 25 -3 image;
@@ -45,21 +45,20 @@
#X obj 393 25 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 315 117 #mouse \, ...;
-#X obj 260 266 listelement 0;
+#X obj 260 268 listelement 0;
#X obj 367 190 listelement 1;
#X obj 260 225 listelement 0;
#X obj 368 149 listelement 1;
-#X obj 368 170 s h_start_i;
-#X obj 367 211 s h_end_i;
+#X obj 368 168 s h_start_i;
+#X obj 367 209 s h_end_i;
#X obj 260 287 s v_end_i;
-#X obj 260 246 s v_start_i;
+#X obj 260 244 s v_start_i;
#X obj 378 65 loadbang;
-#X msg 378 85 0 0;
+#X msg 378 84 0 0;
#X obj 328 161 t a;
-#X obj 64 330 #out window;
-#X obj 47 267 #for ( 0 0 ) ( 0 0 ) ( 1 1 );
-#X obj 112 221 t b a;
-#X obj 64 294 #store;
+#X obj 47 322 #out window;
+#X obj 86 221 t b a;
+#X obj 47 286 #store;
#X msg 48 243 set ( \$1 \$2 );
#X obj 327 43 #in b001.jpg;
#X text 30 35 drag the mouse;
@@ -67,7 +66,7 @@
#X text 39 51 inside the;
#X text 37 66 first window;
#X text 218 -25 step 1: turn on;
-#X text 69 312 cropping (to 2nd window);
+#X text 52 304 cropping (to 2nd window);
#X obj -41 373 cnv 15 640 30 empty empty empty 20 12 0 14 -200249 -66577
0;
#X text -33 380 GridFlow 0.8.0;
@@ -76,21 +75,22 @@
0;
#X text -27 -64 Copyright 2002 Mathieu Bouchard;
#X text -27 -77 drag_rectangle.pd;
+#X obj 47 267 #for (0 0) (0 0) (1 1);
#X connect 0 0 7 0;
#X connect 1 0 13 0;
#X connect 6 0 1 0;
#X connect 7 0 11 0;
-#X connect 10 0 30 0;
+#X connect 10 0 29 0;
#X connect 11 0 6 0;
-#X connect 12 0 30 0;
+#X connect 12 0 29 0;
#X connect 13 0 6 1;
#X connect 13 0 16 0;
#X connect 13 0 17 0;
-#X connect 13 0 29 0;
+#X connect 13 0 28 0;
#X connect 13 0 24 0;
#X connect 13 1 24 0;
#X connect 13 2 24 0;
-#X connect 13 2 27 0;
+#X connect 13 2 26 0;
#X connect 14 0 20 0;
#X connect 15 0 19 0;
#X connect 16 0 21 0;
@@ -101,10 +101,10 @@
#X connect 24 0 14 0;
#X connect 24 0 15 0;
#X connect 24 0 6 2;
-#X connect 26 0 28 0;
-#X connect 27 0 26 0;
-#X connect 27 1 26 1;
-#X connect 28 0 25 0;
-#X connect 29 0 26 0;
-#X connect 30 0 11 1;
-#X connect 30 0 28 1;
+#X connect 26 0 42 0;
+#X connect 26 1 42 1;
+#X connect 27 0 25 0;
+#X connect 28 0 42 0;
+#X connect 29 0 11 1;
+#X connect 29 0 27 1;
+#X connect 42 0 27 0;
diff --git a/externals/gridflow/pd_examples/eclipse.pd b/externals/gridflow/pd_examples/eclipse.pd
index 65ef9ef3..0c94440b 100644
--- a/externals/gridflow/pd_examples/eclipse.pd
+++ b/externals/gridflow/pd_examples/eclipse.pd
@@ -1,37 +1,36 @@
#N canvas 623 182 635 533 10;
-#X floatatom 292 323 5 0 0 0 - - -;
-#X msg 244 303 24;
+#X floatatom 242 293 5 0 0 0 - - -;
+#X msg 194 273 24;
#X obj 61 -35 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 0 1
;
-#X obj 244 281 loadbang;
-#X msg 292 303 32;
-#X floatatom 244 323 5 0 0 0 - - -;
+#X obj 194 251 loadbang;
+#X msg 242 273 32;
+#X floatatom 194 293 5 0 0 0 - - -;
#X obj 38 17 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 61 -6 metro 33.3667;
-#X text 239 258 size of subimages;
-#X obj 61 111 t a a a;
-#X obj 61 166 t a a;
-#X text 224 54 gain on colour blue;
+#X text 189 228 size of subimages;
+#X obj 61 144 t a a;
+#X text 204 44 gain on colour blue;
#X obj 61 17 #camera;
-#X obj 61 73 #scale_by 2;
-#X obj 141 97 #dim;
-#X obj 141 117 #inner (3 2 # 1 0 0 1 0 0);
-#X obj 61 147 #finished;
-#X obj 61 211 # /;
-#X obj 61 234 # *;
-#X obj 58 265 #store;
-#X obj 70 311 # *;
-#X obj 70 334 # >> 7;
-#X obj 70 356 # min 255;
-#X obj 70 378 #out window;
-#X obj 244 343 #pack 2;
-#X obj 141 242 # /;
-#X obj 107 265 #store;
-#X obj 107 242 # *;
-#X obj 61 186 #for (0 0) (240 320) (1 1);
-#X obj 107 208 #for (0 0) (240 320) (1 1);
-#X obj 61 54 # *>>8 (256 256 384);
+#X obj 61 63 #scale_by 2;
+#X obj 141 119 #dim;
+#X obj 141 139 #inner (3 2 # 1 0 0 1 0 0);
+#X obj 61 125 #finished;
+#X obj 61 183 # /;
+#X obj 61 202 # *;
+#X obj 61 229 #store;
+#X obj 61 256 # *;
+#X obj 61 275 # >> 7;
+#X obj 61 294 # min 255;
+#X obj 61 313 #out window;
+#X obj 194 313 #pack 2;
+#X obj 141 206 # /;
+#X obj 107 229 #store;
+#X obj 107 206 # *;
+#X obj 61 164 #for (0 0) (240 320) (1 1);
+#X obj 107 186 #for (0 0) (240 320) (1 1);
+#X obj 61 44 # *>>8 (256 256 384);
#X obj 1 418 cnv 15 640 30 empty empty empty 20 12 0 14 -200249 -66577
0;
#X text 9 425 GridFlow 0.8.0;
@@ -41,40 +40,41 @@
#X text 16 -72 Copyright 2002 Mathieu Bouchard;
#X text 121 17 <-- open this;
#X text 16 -85 eclipse.pd;
-#X connect 0 0 24 1;
+#X obj 61 102 t a a;
+#X connect 0 0 23 1;
#X connect 1 0 5 0;
#X connect 2 0 7 0;
#X connect 3 0 4 0;
#X connect 3 0 1 0;
#X connect 4 0 0 0;
-#X connect 5 0 24 0;
-#X connect 6 0 12 0;
-#X connect 7 0 12 0;
-#X connect 9 0 16 0;
-#X connect 9 1 14 0;
-#X connect 9 1 19 1;
-#X connect 9 1 26 1;
-#X connect 10 0 28 0;
-#X connect 10 1 29 0;
-#X connect 12 0 30 0;
-#X connect 13 0 9 0;
-#X connect 14 0 15 0;
-#X connect 15 0 25 0;
-#X connect 15 0 28 1;
-#X connect 15 0 29 1;
-#X connect 16 0 10 0;
+#X connect 5 0 23 0;
+#X connect 6 0 11 0;
+#X connect 7 0 11 0;
+#X connect 9 0 27 0;
+#X connect 9 1 28 0;
+#X connect 11 0 29 0;
+#X connect 12 0 37 0;
+#X connect 13 0 14 0;
+#X connect 14 0 24 0;
+#X connect 14 0 27 1;
+#X connect 14 0 28 1;
+#X connect 15 0 9 0;
+#X connect 16 0 17 0;
#X connect 17 0 18 0;
#X connect 18 0 19 0;
#X connect 19 0 20 0;
#X connect 20 0 21 0;
#X connect 21 0 22 0;
-#X connect 22 0 23 0;
-#X connect 24 0 17 1;
-#X connect 24 0 18 1;
-#X connect 24 0 25 1;
-#X connect 25 0 27 1;
-#X connect 26 0 20 1;
-#X connect 27 0 26 0;
-#X connect 28 0 17 0;
-#X connect 29 0 27 0;
-#X connect 30 0 13 0;
+#X connect 23 0 16 1;
+#X connect 23 0 17 1;
+#X connect 23 0 24 1;
+#X connect 24 0 26 1;
+#X connect 25 0 19 1;
+#X connect 26 0 25 0;
+#X connect 27 0 16 0;
+#X connect 28 0 26 0;
+#X connect 29 0 12 0;
+#X connect 37 0 15 0;
+#X connect 37 1 13 0;
+#X connect 37 1 18 1;
+#X connect 37 1 25 1;
diff --git a/externals/gridflow/pd_examples/epicycloid.pd b/externals/gridflow/pd_examples/epicycloid.pd
index c1589de9..000bc8c0 100644
--- a/externals/gridflow/pd_examples/epicycloid.pd
+++ b/externals/gridflow/pd_examples/epicycloid.pd
@@ -1,125 +1,125 @@
-#N canvas 443 76 1178 736 10;
-#X text 18 93 epicycloid;
-#X text 18 116 x(t) = (R+r) cos(t) - p*cos((R+r)t/r);
-#X text 18 140 y(t) = (R+r) sin(t) - p*sin((R+r)t/r);
-#X obj 38 383 #draw_polygon put 1;
-#X obj 287 438 #import ( 4 2 );
-#X obj 38 406 #out window;
-#X obj -22 -22 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 1 1
+#N canvas 301 73 904 550 10;
+#X text 158 43 epicycloid;
+#X text 168 56 x(t) = (R+r) cos(t) - p*cos((R+r)t/r);
+#X text 168 69 y(t) = (R+r) sin(t) - p*sin((R+r)t/r);
+#X obj 24 273 #draw_polygon put 1;
+#X obj 24 292 #out window;
+#X obj -22 68 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 0 1
;
-#X obj 327 375 pack f f f f;
-#X msg 327 404 \$2 \$1 \$4 \$1 \$4 \$3 \$2 \$3;
-#X text 334 350 x;
-#X text 394 352 y;
-#X text 421 354 y+1;
-#X text 357 352 x+1;
-#X floatatom 327 327 5 0 0 0 - - -;
-#X obj 369 325 + 1;
-#X floatatom 405 327 5 0 0 0 - - -;
-#X obj 447 324 + 1;
-#X obj 332 297 t f f;
-#X obj 417 297 t f f;
-#X obj 0 50 s met;
-#X obj 286 350 r met;
-#X obj 468 97 hsl 128 15 5 100 0 1 empty empty empty -2 -6 0 8 -24198
+#X obj 297 428 pack f f f f;
+#X msg 297 447 \$2 \$1 \$4 \$1 \$4 \$3 \$2 \$3;
+#X text 304 403 x;
+#X text 364 405 y;
+#X text 391 407 y+1;
+#X text 327 405 x+1;
+#X floatatom 303 381 5 0 0 0 - - -;
+#X obj 345 379 + 1;
+#X floatatom 390 382 5 0 0 0 - - -;
+#X obj 432 379 + 1;
+#X obj 303 358 t f f;
+#X obj 390 361 t f f;
+#X obj -16 108 s met;
+#X obj 258 428 r met;
+#X obj 388 197 hsl 128 15 5 100 0 1 empty empty empty -2 -6 0 8 -24198
-1 -1 5500 1;
-#X obj 585 148 hsl 128 15 -100 100 0 1 empty empty empty -2 -6 0 8
+#X obj 515 238 hsl 128 15 -100 100 0 1 empty empty empty -2 -6 0 8
-44926 -1 -1 4000 1;
-#X obj 732 173 hsl 128 15 -150 150 0 1 empty empty empty -2 -6 0 8
+#X obj 665 263 hsl 128 15 -150 150 0 1 empty empty empty -2 -6 0 8
-258699 -1 -1 3200 1;
-#X text 439 52 t = valeur en angles de 0 a 360;
-#X obj 465 153 t f f;
-#X obj 582 180 t f f;
-#X obj 729 193 t f f;
-#X obj 333 127 * 6.28319;
-#X obj 333 106 / 360;
-#X floatatom 333 88 5 0 0 0 - - -;
-#X obj 333 152 t f f;
-#X obj -22 355 #store;
-#X obj 15 205 loadbang;
-#X obj 420 250 expr ($f2+$f3)*sin($f1) - $f4*sin(($f2+$f3)*$f1/$f3)
+#X text 313 155 t = valeur en angles de 0 a 360;
+#X obj 385 241 t f f;
+#X obj 512 270 t f f;
+#X obj 662 283 t f f;
+#X obj 303 217 * 6.28319;
+#X obj 303 196 / 360;
+#X floatatom 303 178 5 0 0 0 - - -;
+#X obj 303 236 t f f;
+#X obj -22 273 #store;
+#X obj -14 129 loadbang;
+#X obj 390 323 expr ($f2+$f3)*sin($f1) - $f4*sin(($f2+$f3)*$f1/$f3)
;
-#X obj 333 212 expr ($f2+$f3)*cos($f1) - $f4*cos(($f2+$f3)*$f1/$f3)
+#X obj 303 302 expr ($f2+$f3)*cos($f1) - $f4*cos(($f2+$f3)*$f1/$f3)
;
-#X obj 333 65 + 1;
-#X msg 333 41 1;
-#X floatatom 375 65 5 0 0 0 - - -;
-#X msg 375 16 0;
-#X text 406 19 reset count;
-#X text 129 231 reset image;
-#X text 540 126 r = Rayon du deuxieme cercle -100 a 100;
-#X obj 420 275 + 150;
-#X obj 333 272 + 150;
-#X floatatom 477 123 5 0 0 0 - - -;
-#X floatatom 633 173 5 0 0 0 - - -;
-#X floatatom 779 196 5 0 0 0 - - -;
-#X obj -22 7 metro 1;
-#X obj 33 -21 hsl 128 15 0 15 0 0 empty empty empty -2 -6 0 8 -260818
+#X obj 303 135 + 1;
+#X msg 303 111 1;
+#X floatatom 335 138 5 0 0 0 - - -;
+#X msg 335 119 0;
+#X text 366 122 reset count;
+#X text 100 147 reset image;
+#X text 470 216 r = Rayon du deuxieme cercle -100 a 100;
+#X obj 390 342 + 150;
+#X obj 303 339 + 150;
+#X floatatom 397 223 5 0 0 0 - - -;
+#X floatatom 563 263 5 0 0 0 - - -;
+#X floatatom 712 286 5 0 0 0 - - -;
+#X obj -22 85 metro 1;
+#X obj 25 68 hsl 128 15 0 15 0 0 empty empty empty -2 -6 0 8 -260818
-1 -1 0 1;
-#X text 440 78 R = Rayon du premier cercle 5 a 100;
-#X obj -38 525 cnv 15 900 30 empty empty empty 20 12 0 14 -200249 -66577
+#X text 360 178 R = Rayon du premier cercle 5 a 100;
+#X obj -38 515 cnv 15 900 30 empty empty empty 20 12 0 14 -200249 -66577
0;
-#X text -29 532 GridFlow 0.8.0;
-#X text -29 532 GridFlow 0.8.0;
-#X obj -35 -85 cnv 15 940 30 empty empty empty 20 12 0 14 -233017 -66577
+#X text -29 522 GridFlow 0.8.0;
+#X text -29 522 GridFlow 0.8.0;
+#X obj -35 5 cnv 15 800 30 empty empty empty 20 12 0 14 -233017 -66577
0;
-#X obj 102 317 #color;
-#X obj 102 268 loadbang;
-#X msg 102 292 230 224 0;
-#X msg 15 232 300 300 3 # 0;
-#X text -22 -72 Copyright 2004 Alexandre Castonguay;
-#X text -22 -85 epicycloid.pd;
-#X text 80 204 start with a blank \, black image;
-#X text 727 158 deuxieme cercle - 150 a 150;
-#X text 727 143 p = distance du centre du;
-#X connect 3 0 5 0;
-#X connect 3 0 32 1;
-#X connect 4 0 3 2;
-#X connect 6 0 48 0;
-#X connect 7 0 8 0;
-#X connect 8 0 4 0;
-#X connect 13 0 7 0;
-#X connect 14 0 7 2;
-#X connect 15 0 7 1;
-#X connect 16 0 7 3;
-#X connect 17 0 13 0;
-#X connect 17 1 14 0;
-#X connect 18 0 15 0;
-#X connect 18 1 16 0;
-#X connect 20 0 7 0;
+#X obj 88 213 #color;
+#X obj 88 175 loadbang;
+#X msg 88 194 230 224 0;
+#X msg -14 148 300 300 3 # 0;
+#X text -22 18 Copyright 2004 Alexandre Castonguay;
+#X text -22 5 epicycloid.pd;
+#X text 51 128 start with a blank \, black image;
+#X text 660 248 deuxieme cercle - 150 a 150;
+#X text 660 233 p = distance du centre du;
+#X obj 297 466 #import (4 2);
+#X connect 3 0 4 0;
+#X connect 3 0 31 1;
+#X connect 5 0 47 0;
+#X connect 6 0 7 0;
+#X connect 7 0 63 0;
+#X connect 12 0 6 0;
+#X connect 13 0 6 2;
+#X connect 14 0 6 1;
+#X connect 15 0 6 3;
+#X connect 16 0 12 0;
+#X connect 16 1 13 0;
+#X connect 17 0 14 0;
+#X connect 17 1 15 0;
+#X connect 19 0 6 0;
+#X connect 20 0 24 0;
+#X connect 20 0 44 0;
#X connect 21 0 25 0;
#X connect 21 0 45 0;
#X connect 22 0 26 0;
#X connect 22 0 46 0;
-#X connect 23 0 27 0;
-#X connect 23 0 47 0;
-#X connect 25 0 35 1;
-#X connect 25 1 34 1;
-#X connect 26 0 35 2;
-#X connect 26 1 34 2;
-#X connect 27 0 35 3;
-#X connect 27 1 34 3;
-#X connect 28 0 31 0;
+#X connect 24 0 34 1;
+#X connect 24 1 33 1;
+#X connect 25 0 34 2;
+#X connect 25 1 33 2;
+#X connect 26 0 34 3;
+#X connect 26 1 33 3;
+#X connect 27 0 30 0;
+#X connect 28 0 27 0;
#X connect 29 0 28 0;
-#X connect 30 0 29 0;
-#X connect 31 0 35 0;
-#X connect 31 1 34 0;
-#X connect 32 0 3 0;
-#X connect 33 0 58 0;
+#X connect 30 0 34 0;
+#X connect 30 1 33 0;
+#X connect 31 0 3 0;
+#X connect 32 0 57 0;
+#X connect 33 0 42 0;
#X connect 34 0 43 0;
-#X connect 35 0 44 0;
-#X connect 36 0 38 0;
-#X connect 36 0 30 0;
-#X connect 37 0 36 0;
-#X connect 38 0 36 1;
-#X connect 39 0 38 0;
-#X connect 43 0 18 0;
-#X connect 44 0 17 0;
-#X connect 48 0 19 0;
-#X connect 48 0 32 0;
-#X connect 48 0 37 0;
-#X connect 49 0 48 1;
-#X connect 55 0 3 1;
-#X connect 56 0 57 0;
-#X connect 57 0 55 0;
-#X connect 58 0 32 1;
+#X connect 35 0 37 0;
+#X connect 35 0 29 0;
+#X connect 36 0 35 0;
+#X connect 37 0 35 1;
+#X connect 38 0 37 0;
+#X connect 42 0 17 0;
+#X connect 43 0 16 0;
+#X connect 47 0 18 0;
+#X connect 47 0 31 0;
+#X connect 47 0 36 0;
+#X connect 48 0 47 1;
+#X connect 54 0 3 1;
+#X connect 55 0 56 0;
+#X connect 56 0 54 0;
+#X connect 57 0 31 1;
+#X connect 63 0 3 2;
diff --git a/externals/gridflow/pd_examples/feedback_fractal.pd b/externals/gridflow/pd_examples/feedback_fractal.pd
index 2d012a78..abb70e80 100644
--- a/externals/gridflow/pd_examples/feedback_fractal.pd
+++ b/externals/gridflow/pd_examples/feedback_fractal.pd
@@ -20,128 +20,128 @@
#X connect 6 0 8 0;
#X connect 8 0 0 0;
#X connect 9 0 2 0;
-#X restore 462 229 pd experimental features;
-#X text 527 134 Choose Julia Mapping or Rotation;
-#X obj 31 -34 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 0 1
-;
-#X obj 414 67 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+#X restore 545 260 pd experimental features;
+#X text 515 193 Choose Julia Mapping or Rotation;
+#X obj 31 53 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 1 1;
+#X obj 414 145 bng 15 250 50 0 empty empty empty 0 -6 0 8 -24198 -1
-1;
-#X text 190 59 apply transform (with feedback);
-#X floatatom 454 281 5 0 0 0 - - -;
-#X floatatom 451 323 5 0 0 0 - - -;
-#X msg 84 319 cast uint8 \, bang;
-#X text 530 281 zoom;
-#X text 531 324 move x;
-#X msg 501 324 -45;
-#X msg 501 281 128;
-#X obj 170 60 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+#X text 135 196 apply transform (with feedback);
+#X floatatom 430 363 5 0 0 0 - - -;
+#X floatatom 518 387 5 0 0 0 - - -;
+#X text 434 375 zoom;
+#X text 518 397 move x;
+#X msg 518 368 -45;
+#X msg 430 344 128;
+#X obj 119 197 bng 15 250 50 0 empty empty empty 0 -6 0 8 -24198 -1
-1;
-#X obj 450 92 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+#X obj 444 119 bng 15 250 50 0 empty empty empty 0 -6 0 8 -24198 -1
-1;
-#X obj 505 133 tgl 15 0 empty empty empty 0 -6 0 8 -241291 -1 -1 0
+#X obj 497 193 tgl 15 0 empty empty empty 0 -6 0 8 -241291 -1 -1 0
1;
-#X floatatom 451 303 5 0 0 0 - - -;
-#X text 531 303 move y;
-#X msg 501 303 193;
-#X obj 31 -7 metro 33.3667;
-#X obj 450 131 shunt 2;
-#X obj 84 297 loadbang;
-#X obj 414 45 t b b;
-#X obj 414 21 loadbang;
-#X obj 31 276 t a;
-#X obj 202 99 loadbang;
-#X obj 212 119 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+#X floatatom 472 387 5 0 0 0 - - -;
+#X text 471 398 move y;
+#X msg 472 368 193;
+#X obj 31 80 metro 33.3667;
+#X obj 442 191 shunt 2;
+#X obj 77 365 loadbang;
+#X obj 414 91 t b b;
+#X obj 414 67 loadbang;
+#X obj 31 338 t a;
+#X obj 131 220 loadbang;
+#X obj 131 239 bng 15 250 50 0 empty empty empty 0 -6 0 8 -24198 -1
-1;
-#X obj 200 266 t a;
-#X obj 31 21 t b b;
-#X obj 73 22 float;
-#X obj 73 41 + 1;
-#X obj 84 61 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10
--262144 -1 -1 24 256;
-#X obj 508 257 t b;
-#X text 230 120 reset transform;
-#X obj 99 41 mod 60;
-#X obj 73 81 sel 59;
-#X obj 31 113 #store;
-#X obj 31 189 # << 7;
-#X obj 31 223 #fade 10;
-#X obj 31 252 # >> 7;
-#X obj 31 335 #store;
-#X obj 84 340 #in teapot.png;
-#X obj 31 364 #out window;
-#X obj 414 391 # -;
-#X obj 438 367 # - 128;
-#X obj 438 345 #two;
-#X obj 414 303 # /;
-#X obj 414 229 #store;
-#X obj 450 110 #for ( -128 -128 ) ( 128 128 ) ( 1 1 );
-#X obj 446 154 @complex_sq;
-#X obj 461 175 #inner (2 2 # 120 30 -30 120);
-#X obj -13 -87 cnv 15 780 30 empty empty empty 20 12 0 14 -233017 -66577
+#X obj 119 317 t a;
+#X obj 31 108 t b b;
+#X obj 73 109 float;
+#X obj 73 128 + 1;
+#X obj 84 148 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10
+-262144 -1 -1 57 256;
+#X obj 486 323 t b;
+#X text 149 240 reset transform;
+#X obj 99 128 mod 60;
+#X obj 73 168 sel 59;
+#X obj 31 200 #store;
+#X obj 31 276 # << 7;
+#X obj 31 295 #fade 10;
+#X obj 31 314 # >> 7;
+#X obj 31 422 #store;
+#X obj 31 451 #out window;
+#X obj 414 478 # -;
+#X obj 438 454 # - 128;
+#X obj 414 390 # /;
+#X obj 414 296 #store;
+#X obj 442 172 #for ( -128 -128 ) ( 128 128 ) ( 1 1 );
+#X obj 442 210 @complex_sq;
+#X obj 485 229 #inner (2 2 # 120 30 -30 120);
+#X obj -13 0 cnv 15 780 30 empty empty empty 20 12 0 14 -233017 -66577
0;
-#X obj -15 431 cnv 15 780 30 empty empty empty 20 12 0 14 -200249 -66577
+#X obj -15 518 cnv 15 780 30 empty empty empty 20 12 0 14 -200249 -66577
0;
-#X text -7 438 GridFlow 0.8.0;
-#X text -7 438 GridFlow 0.8.0;
-#X text 0 -87 feedback_fractal.pd;
-#X text 0 -74 Copyright 2001 Mathieu Bouchard;
-#X obj 212 138 #for (0 0) (256 256) (1 1);
-#X obj 210 210 #convolve (2 2 # 1);
-#X obj 209 232 # >> 2;
-#X obj 200 181 #store;
-#X obj 200 159 #store;
-#X connect 0 0 46 1;
-#X connect 2 0 18 0;
-#X connect 3 0 46 0;
-#X connect 5 0 45 1;
-#X connect 7 0 40 0;
-#X connect 10 0 6 0;
-#X connect 11 0 17 0;
-#X connect 11 0 5 0;
-#X connect 12 0 60 0;
-#X connect 13 0 47 0;
-#X connect 14 0 19 1;
-#X connect 17 0 15 0;
-#X connect 18 0 27 0;
-#X connect 19 0 48 0;
-#X connect 19 1 49 0;
-#X connect 20 0 7 0;
-#X connect 21 0 3 0;
-#X connect 21 1 13 0;
-#X connect 21 1 31 0;
-#X connect 22 0 21 0;
-#X connect 23 0 39 0;
-#X connect 24 0 56 0;
-#X connect 25 0 56 0;
-#X connect 26 0 35 1;
-#X connect 26 0 59 1;
-#X connect 27 0 35 0;
-#X connect 27 1 28 0;
+#X text -7 525 GridFlow 0.8.0;
+#X text -7 525 GridFlow 0.8.0;
+#X text 0 0 feedback_fractal.pd;
+#X text 0 13 Copyright 2001 Mathieu Bouchard;
+#X obj 131 258 #for (0 0) (256 256) (1 1);
+#X obj 119 298 #store;
+#X obj 119 279 #store;
+#X obj 77 422 #cast b;
+#X obj 77 403 #in;
+#X msg 77 384 load teapot.png;
+#X obj 438 432 #pack;
+#X text 431 145 apply coords;
+#X text 462 118 apply type of transform;
+#X connect 0 0 43 1;
+#X connect 2 0 17 0;
+#X connect 3 0 43 0;
+#X connect 5 0 42 1;
+#X connect 6 0 59 1;
+#X connect 9 0 6 0;
+#X connect 10 0 5 0;
+#X connect 11 0 55 0;
+#X connect 12 0 44 0;
+#X connect 13 0 18 1;
+#X connect 14 0 59 0;
+#X connect 16 0 14 0;
+#X connect 17 0 26 0;
+#X connect 18 0 45 0;
+#X connect 18 1 46 0;
+#X connect 19 0 58 0;
+#X connect 20 0 3 0;
+#X connect 20 1 12 0;
+#X connect 20 1 30 0;
+#X connect 21 0 20 0;
+#X connect 22 0 38 0;
+#X connect 23 0 24 0;
+#X connect 24 0 53 0;
+#X connect 25 0 34 1;
+#X connect 25 0 54 1;
+#X connect 26 0 34 0;
+#X connect 26 1 27 0;
+#X connect 27 0 28 0;
#X connect 28 0 29 0;
-#X connect 29 0 30 0;
-#X connect 29 0 33 0;
-#X connect 29 0 34 0;
-#X connect 31 0 11 0;
-#X connect 31 0 17 0;
-#X connect 31 0 10 0;
-#X connect 33 0 28 1;
-#X connect 34 0 12 0;
+#X connect 28 0 32 0;
+#X connect 28 0 33 0;
+#X connect 30 0 10 0;
+#X connect 30 0 16 0;
+#X connect 30 0 9 0;
+#X connect 32 0 27 1;
+#X connect 33 0 11 0;
+#X connect 34 0 35 0;
#X connect 35 0 36 0;
#X connect 36 0 37 0;
-#X connect 37 0 38 0;
-#X connect 38 0 23 0;
-#X connect 39 0 41 0;
-#X connect 40 0 39 1;
-#X connect 42 0 60 1;
-#X connect 43 0 42 1;
-#X connect 45 0 42 0;
-#X connect 46 0 45 0;
-#X connect 47 0 19 0;
-#X connect 48 0 46 1;
-#X connect 49 0 46 1;
-#X connect 56 0 35 1;
-#X connect 56 0 59 1;
-#X connect 57 0 58 0;
-#X connect 58 0 26 0;
-#X connect 59 0 26 0;
-#X connect 60 0 59 0;
+#X connect 37 0 22 0;
+#X connect 38 0 39 0;
+#X connect 40 0 55 1;
+#X connect 41 0 40 1;
+#X connect 42 0 40 0;
+#X connect 43 0 42 0;
+#X connect 44 0 18 0;
+#X connect 45 0 43 1;
+#X connect 46 0 43 1;
+#X connect 53 0 34 1;
+#X connect 53 0 54 1;
+#X connect 54 0 25 0;
+#X connect 55 0 54 0;
+#X connect 56 0 38 1;
+#X connect 57 0 56 0;
+#X connect 58 0 57 0;
diff --git a/externals/gridflow/pd_examples/fire.pd b/externals/gridflow/pd_examples/fire.pd
index 2a88a3a0..2e9f8606 100644
--- a/externals/gridflow/pd_examples/fire.pd
+++ b/externals/gridflow/pd_examples/fire.pd
@@ -1,51 +1,45 @@
-#N canvas 399 42 621 522 10;
-#X obj 347 171 loadbang;
-#X text 229 287 palette generator;
-#X obj 103 329 fps detailed;
-#X obj 250 325 #for 0 256 1;
-#X obj 23 180 #store;
-#X obj 250 347 #outer gamma;
-#X obj 103 351 print;
-#X msg 60 130 \$1 \$2 # 0;
-#X obj 71 217 #outer ignore ( 0 );
-#X obj 250 304 #finished;
-#X obj 23 -25 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 0 1
-;
-#X obj 204 -21 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 40 71 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+#N canvas 55 53 634 527 10;
+#X obj 377 355 loadbang;
+#X text 243 362 palette generator;
+#X obj 100 383 fps detailed;
+#X obj 264 400 #for 0 256 1;
+#X obj 19 240 #store;
+#X obj 264 422 #outer gamma;
+#X obj 100 402 print;
+#X msg 56 200 \$1 \$2 # 0;
+#X obj 264 379 #finished;
+#X obj 19 35 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 1 1;
+#X obj 200 39 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
-#X obj 318 304 fork;
-#X text 262 2 height width;
-#X obj 103 307 #out window;
-#X text 101 269 applying palette;
-#X obj 103 287 #store;
-#N canvas 268 454 450 300 circle 0;
-#X obj 47 177 #fold +;
-#X obj 47 244 # << 7;
-#X obj 47 199 # >> 6;
-#X obj 47 157 @! sq;
-#X obj 47 222 # == 10;
+#X obj 332 379 fork;
+#X text 258 62 height width;
+#X obj 100 364 #out window;
+#X text 97 308 applying palette;
+#X obj 99 326 #store;
+#N canvas 127 200 450 300 circle 0;
+#X obj 47 146 #fold +;
+#X obj 47 203 # << 7;
+#X obj 47 165 # >> 6;
+#X obj 47 184 # == 10;
#X obj 47 15 inlet size;
-#X obj 47 267 outlet matrix;
-#X obj 47 126 #for ( 0 0 ) ( 0 0 ) ( 1 1 );
-#X obj 47 34 # / 2;
-#X obj 47 77 t a a;
-#X obj 47 54 #export_list;
-#X obj 47 101 # inv+;
+#X obj 47 222 outlet matrix;
+#X obj 77 108 inlet pos;
+#X obj 47 53 t b a;
+#X obj 47 127 # sq-;
+#X obj 47 79 #for (0 0) (0 0) (1 1);
+#X obj 90 53 #export_list;
#X connect 0 0 2 0;
-#X connect 1 0 6 0;
-#X connect 2 0 4 0;
-#X connect 3 0 0 0;
-#X connect 4 0 1 0;
-#X connect 5 0 8 0;
-#X connect 7 0 3 0;
-#X connect 8 0 10 0;
-#X connect 9 0 11 0;
-#X connect 9 1 7 1;
-#X connect 10 0 9 0;
-#X connect 11 0 7 0;
-#X restore 247 84 pd circle generator;
+#X connect 1 0 5 0;
+#X connect 2 0 3 0;
+#X connect 3 0 1 0;
+#X connect 4 0 7 0;
+#X connect 6 0 8 1;
+#X connect 7 0 9 0;
+#X connect 7 1 10 0;
+#X connect 8 0 0 0;
+#X connect 9 0 8 0;
+#X connect 10 0 9 1;
+#X restore 222 200 pd circle generator;
#N canvas 498 387 361 260 baseline 0;
#X obj 18 123 #fold +;
#X obj 127 149 - 4;
@@ -75,23 +69,17 @@
#X connect 12 0 2 0;
#X connect 12 1 9 0;
#X connect 12 1 8 1;
-#X restore 204 117 pd baseline generator;
-#X text 78 236 (height \, width \, 1) grid = grey image;
-#X text 49 113 make blank image;
-#X text 30 163 feedback loop;
-#X text 78 200 (height \, width) grid = matrix;
-#X obj 204 63 shunt 2;
-#X obj 258 64 tgl 15 0 empty empty empty 0 -6 0 8 -241291 -1 -1 0 1
-;
-#X obj 347 213 #color 0 800 1;
-#X msg 347 191 600 200 75;
-#X obj 224 -22 loadbang;
-#N canvas 645 360 400 289 fire 1;
+#X restore 200 220 pd baseline generator;
+#X text 45 183 make blank image;
+#X text 26 223 feedback loop;
+#X obj 377 393 #color 0 800 1;
+#X msg 377 374 600 200 75;
+#X obj 220 38 loadbang;
+#N canvas 645 360 400 289 fire 0;
#X obj 174 180 #store;
#X obj 61 196 #export_list;
#X obj 6 65 # >> 2;
#X obj 6 26 fork;
-#X obj 6 45 #convolve ( 3 3 # 1 0 0 0 1 0 1 1 1 );
#X obj 6 235 # & 255;
#X obj 174 115 listmake;
#X obj 6 103 # / 80;
@@ -114,67 +102,188 @@
#X text 264 180 random numbers;
#X obj 174 159 # rand;
#X obj 274 123 # rand;
-#X connect 0 0 17 1;
-#X connect 1 0 6 1;
-#X connect 2 0 17 0;
-#X connect 3 0 4 0;
-#X connect 3 1 10 0;
-#X connect 4 0 2 0;
-#X connect 5 0 15 0;
-#X connect 6 0 8 0;
-#X connect 7 0 14 0;
-#X connect 8 0 24 0;
-#X connect 9 0 6 0;
-#X connect 10 0 9 0;
-#X connect 11 0 14 1;
-#X connect 11 0 13 0;
-#X connect 12 0 0 1;
-#X connect 13 0 1 0;
-#X connect 14 0 5 0;
-#X connect 16 0 25 0;
-#X connect 17 0 7 0;
-#X connect 18 0 3 0;
-#X connect 19 0 16 0;
-#X connect 24 0 0 0;
-#X connect 25 0 12 0;
-#X restore 71 180 pd fire generator;
-#X text 183 46 note: reset the size if you change the generator;
-#X msg 204 2 80 256;
-#X obj 23 -2 metro 33.3667;
-#X obj -15 -84 cnv 15 620 30 empty empty empty 20 12 0 14 -233017 -66577
+#X obj 6 46 #convolve (3 3 # 1 0 0 0 1 0 1 1 1);
+#X connect 0 0 16 1;
+#X connect 1 0 5 1;
+#X connect 2 0 16 0;
+#X connect 3 0 25 0;
+#X connect 3 1 9 0;
+#X connect 4 0 14 0;
+#X connect 5 0 7 0;
+#X connect 6 0 13 0;
+#X connect 7 0 23 0;
+#X connect 8 0 5 0;
+#X connect 9 0 8 0;
+#X connect 10 0 13 1;
+#X connect 10 0 12 0;
+#X connect 11 0 0 1;
+#X connect 12 0 1 0;
+#X connect 13 0 4 0;
+#X connect 15 0 24 0;
+#X connect 16 0 6 0;
+#X connect 17 0 3 0;
+#X connect 18 0 15 0;
+#X connect 23 0 0 0;
+#X connect 24 0 11 0;
+#X connect 25 0 2 0;
+#X restore 65 240 pd fire generator;
+#X text 166 108 note: reset the size if you change the generator;
+#X obj 19 58 metro 33.3667;
+#X obj 5 -4 cnv 15 620 30 empty empty empty 20 12 0 14 -233017 -66577
0;
-#X text -5 -84 fire.pd;
-#X text -5 -71 Copyright 2001 Mathieu Bouchard;
-#X obj -15 403 cnv 15 620 30 empty empty empty 20 12 0 14 -200249 -66577
+#X text 15 -4 fire.pd;
+#X obj 5 483 cnv 15 620 30 empty empty empty 20 12 0 14 -200249 -66577
0;
-#X text -7 411 GridFlow 0.8.0;
-#X text -7 411 GridFlow 0.8.0;
-#X connect 0 0 27 0;
+#X text 13 491 GridFlow 0.8.0;
+#X obj 139 402 route position;
+#N canvas 268 301 442 406 cursor 0;
+#X obj 30 29 listmake;
+#X obj 107 48 listsublist 0 2;
+#X obj 107 10 inlet;
+#X obj 132 151 listsublist 0 48;
+#X obj 30 49 fork;
+#X obj 30 285 outlet;
+#X obj 30 131 @export_list;
+#X obj 30 151 listappend 0 0;
+#X obj 107 29 #export_list;
+#X obj 30 79 # -;
+#X obj 115 86 #finished;
+#X obj 115 105 #store (0 0);
+#X obj 30 170 #redim (25 2);
+#X obj 30 189 # sq-;
+#X obj 30 208 #fold +;
+#X obj 30 227 # sqrt;
+#X obj 30 246 #fold +;
+#X obj 30 266 # / 5;
+#X obj 30 9 r metro;
+#X connect 0 0 4 0;
+#X connect 1 0 0 1;
+#X connect 2 0 8 0;
+#X connect 3 0 7 1;
+#X connect 4 0 9 0;
+#X connect 4 1 11 1;
+#X connect 6 0 7 0;
+#X connect 7 0 3 0;
+#X connect 7 0 12 0;
+#X connect 8 0 1 0;
+#X connect 9 0 6 0;
+#X connect 9 0 10 0;
+#X connect 10 0 11 0;
+#X connect 11 0 9 1;
+#X connect 12 0 13 0;
+#X connect 13 0 14 0;
+#X connect 14 0 15 0;
+#X connect 15 0 16 0;
+#X connect 16 0 17 0;
+#X connect 17 0 5 0;
+#X connect 18 0 0 0;
+#X restore 371 162 pd cursor motion detector;
+#X obj 139 460 s cursor;
+#X msg 20 341 hidecursor;
+#N canvas 238 140 484 503 fuzzy 0;
+#X obj 47 281 outlet;
+#X obj 229 74 listsublist 0 2;
+#X obj 47 110 @fold +;
+#X obj 47 68 #for (0 0) (0 0) (1 1);
+#X obj 47 13 inlet size;
+#X obj 47 32 t b a;
+#X obj 86 32 #export_list;
+#X obj 47 91 # sq-;
+#X obj 47 263 # - 10;
+#X obj 47 243 # max 10;
+#X obj 47 224 # min 255;
+#X obj 47 205 # + 64;
+#X obj 47 186 # tanh* 64;
+#X obj 47 167 # << 8;
+#X obj 47 148 # inv+ 2;
+#X obj 47 129 # >> 2;
+#X obj 104 125 inlet radius;
+#X obj 229 55 #export_list;
+#X obj 229 36 inlet pos;
+#X connect 1 0 7 1;
+#X connect 2 0 15 0;
+#X connect 3 0 7 0;
+#X connect 4 0 5 0;
+#X connect 5 0 3 0;
+#X connect 5 1 6 0;
+#X connect 6 0 3 1;
+#X connect 7 0 2 0;
+#X connect 8 0 0 0;
+#X connect 9 0 8 0;
+#X connect 10 0 9 0;
+#X connect 11 0 10 0;
+#X connect 12 0 11 0;
+#X connect 13 0 12 0;
+#X connect 14 0 13 0;
+#X connect 15 0 14 0;
+#X connect 16 0 14 1;
+#X connect 17 0 1 0;
+#X connect 18 0 17 0;
+#X restore 276 181 pd fuzzy disk seed generator;
+#X text 177 440 #scale_by compensation;
+#X msg 139 421 \$1 \$2;
+#X obj 99 345 #scale_by 2;
+#X obj 139 440 # / 2;
+#X text 15 294 (height \, width \, 1) grid = grey image;
+#X text 16 260 (height \, width) grid = matrix;
+#X obj 200 123 shunt 3;
+#X obj 253 125 hradio 15 1 0 3 empty empty empty 0 -6 0 8 -241291 -1
+-1 1;
+#X obj 500 203 r cursor;
+#X obj 501 222 t a;
+#X obj 204 90 listmake;
+#X obj 58 86 spigot;
+#X obj 19 86 t b b;
+#X obj 104 87 tgl 15 0 empty empty empty 0 -6 0 8 -241291 -1 -1 1 1
+;
+#X msg 200 62 120 160;
+#X obj 49 109 s metro;
+#X obj 67 277 #outer ignore (0);
+#X text 15 9 Copyright 2001 \, 2005 Mathieu Bouchard;
+#X connect 0 0 21 0;
#X connect 2 0 6 0;
#X connect 3 0 5 0;
-#X connect 4 0 29 0;
-#X connect 5 0 17 1;
+#X connect 4 0 23 0;
+#X connect 5 0 15 1;
#X connect 7 0 4 1;
-#X connect 8 0 17 0;
-#X connect 9 0 3 0;
-#X connect 10 0 32 0;
-#X connect 11 0 31 0;
-#X connect 12 0 4 0;
-#X connect 13 0 9 0;
-#X connect 13 1 5 1;
-#X connect 15 0 2 0;
-#X connect 17 0 15 0;
-#X connect 18 0 29 1;
-#X connect 19 0 29 1;
-#X connect 24 0 19 0;
-#X connect 24 1 18 0;
-#X connect 25 0 24 1;
-#X connect 26 0 13 0;
-#X connect 27 0 26 0;
-#X connect 28 0 31 0;
-#X connect 29 0 8 0;
-#X connect 29 0 4 1;
-#X connect 31 0 7 0;
-#X connect 31 0 29 2;
-#X connect 31 0 24 0;
-#X connect 32 0 4 0;
+#X connect 8 0 3 0;
+#X connect 9 0 25 0;
+#X connect 10 0 49 0;
+#X connect 11 0 8 0;
+#X connect 11 1 5 1;
+#X connect 13 0 2 0;
+#X connect 13 0 30 0;
+#X connect 15 0 37 0;
+#X connect 16 0 23 1;
+#X connect 17 0 23 1;
+#X connect 20 0 11 0;
+#X connect 21 0 20 0;
+#X connect 22 0 49 0;
+#X connect 23 0 4 1;
+#X connect 23 0 51 0;
+#X connect 25 0 47 0;
+#X connect 30 0 36 0;
+#X connect 31 0 34 1;
+#X connect 33 0 13 0;
+#X connect 34 0 23 1;
+#X connect 36 0 38 0;
+#X connect 37 0 13 0;
+#X connect 38 0 32 0;
+#X connect 41 0 17 0;
+#X connect 41 1 16 0;
+#X connect 41 2 34 0;
+#X connect 42 0 41 1;
+#X connect 43 0 44 0;
+#X connect 44 0 31 0;
+#X connect 44 0 16 1;
+#X connect 44 0 34 2;
+#X connect 45 0 41 0;
+#X connect 46 0 45 0;
+#X connect 47 0 4 0;
+#X connect 47 1 46 0;
+#X connect 47 1 50 0;
+#X connect 48 0 46 1;
+#X connect 49 0 7 0;
+#X connect 49 0 23 2;
+#X connect 49 0 45 0;
+#X connect 51 0 15 0;
diff --git a/externals/gridflow/pd_examples/game_of_life.pd b/externals/gridflow/pd_examples/game_of_life.pd
index c35187a9..d8820876 100644
--- a/externals/gridflow/pd_examples/game_of_life.pd
+++ b/externals/gridflow/pd_examples/game_of_life.pd
@@ -1,20 +1,18 @@
-#N canvas 400 83 719 454 10;
-#X text 41 -19 click here;
-#X obj 23 -17 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 1 1
-;
-#X obj 31 251 #out window;
-#X text 48 92 this is the feedback loop;
-#X obj 123 0 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+#N canvas 400 83 791 374 10;
+#X obj 36 46 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 0 1;
+#X obj 31 237 #out window;
+#X text 48 122 this is the feedback loop;
+#X obj 143 50 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
-#X obj 141 -1 for 0 10 1;
-#X obj 263 53 loadbang;
-#X obj 141 73 #store;
-#X obj 141 19 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+#X obj 161 49 for 0 10 1;
+#X obj 262 87 loadbang;
+#X obj 141 103 #store;
+#X obj 161 68 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
-#X obj 31 291 print;
-#X obj 31 271 fps detailed;
-#X obj 31 113 fork;
-#X text 159 19 next;
+#X obj 31 275 print;
+#X obj 31 256 fps detailed;
+#X obj 31 143 fork;
+#X text 179 68 next;
#N canvas 0 0 450 210 game 0;
#X obj 28 64 inlet matrix;
#X obj 28 141 outlet matrix;
@@ -29,39 +27,39 @@ but faster to compute.);
#X connect 3 0 4 0;
#X connect 4 0 5 0;
#X connect 5 0 1 0;
-#X restore 31 72 pd game of life;
-#X text 260 20 init with a random map;
-#X text 262 35 10% white dots;
-#X text 33 179 convert this 1-bit matrix to standard RGB \; 1 becomes
+#X restore 31 102 pd game of life;
+#X text 260 60 init with a random map;
+#X text 261 72 10% white dots;
+#X text 33 169 convert this 1-bit matrix to standard RGB \; 1 becomes
-1 becomes 255 \, but 0 stays 0;
-#X obj 23 15 metro 5;
-#X obj -15 339 cnv 15 780 30 empty empty empty 20 12 0 14 -200249 -66577
+#X obj 53 45 metro 5;
+#X obj 5 329 cnv 15 780 30 empty empty empty 20 12 0 14 -200249 -66577
0;
-#X text -7 346 GridFlow 0.8.0;
-#X text -7 346 GridFlow 0.8.0;
-#X obj -13 -85 cnv 15 780 30 empty empty empty 20 12 0 14 -233017 -66577
+#X text 13 336 GridFlow 0.8.0;
+#X text 13 336 GridFlow 0.8.0;
+#X obj 7 5 cnv 15 780 30 empty empty empty 20 12 0 14 -233017 -66577
0;
-#X text 0 -85 game_of_life.pd;
-#X text 0 -72 Copyright 2001 Mathieu Bouchard;
-#X obj 263 97 # rand (b #);
-#X obj 263 119 # == (b # 0);
-#X msg 263 75 240 320 b # 10;
-#X obj 31 209 # inv+ (b # 0);
-#X obj 31 230 #outer ignore (3 b #);
-#X connect 1 0 17 0;
-#X connect 2 0 10 0;
-#X connect 4 0 5 0;
-#X connect 5 0 8 0;
-#X connect 6 0 26 0;
-#X connect 7 0 13 0;
-#X connect 8 0 7 0;
-#X connect 10 0 9 0;
-#X connect 11 0 27 0;
-#X connect 11 1 7 1;
-#X connect 13 0 11 0;
-#X connect 17 0 7 0;
-#X connect 24 0 25 0;
-#X connect 25 0 11 0;
-#X connect 26 0 24 0;
-#X connect 27 0 28 0;
-#X connect 28 0 2 0;
+#X text 20 5 game_of_life.pd;
+#X text 20 18 Copyright 2001 Mathieu Bouchard;
+#X obj 262 125 # rand (b #);
+#X obj 262 144 # == (b # 0);
+#X msg 262 106 240 320 b # 10;
+#X obj 31 199 # inv+ (b # 0);
+#X obj 31 218 #outer ignore (3 b #);
+#X connect 0 0 16 0;
+#X connect 1 0 9 0;
+#X connect 3 0 4 0;
+#X connect 4 0 7 0;
+#X connect 5 0 25 0;
+#X connect 6 0 12 0;
+#X connect 7 0 6 0;
+#X connect 9 0 8 0;
+#X connect 10 0 26 0;
+#X connect 10 1 6 1;
+#X connect 12 0 10 0;
+#X connect 16 0 6 0;
+#X connect 23 0 24 0;
+#X connect 24 0 10 0;
+#X connect 25 0 23 0;
+#X connect 26 0 27 0;
+#X connect 27 0 1 0;
diff --git a/externals/gridflow/pd_examples/hello-world.pd b/externals/gridflow/pd_examples/hello-world.pd
index fb101d24..e43e1a71 100644
--- a/externals/gridflow/pd_examples/hello-world.pd
+++ b/externals/gridflow/pd_examples/hello-world.pd
@@ -1,38 +1,50 @@
-#N canvas 604 118 501 445 10;
-#X obj 46 67 # / 320;
-#X obj 46 187 # * 255;
-#X obj 46 153 # != 0;
-#X obj 46 -12 bng 15 250 50 0 empty empty empty 0 -6 0 8 -24198 -1
--1;
-#X obj 46 280 #out window;
-#X obj 46 99 # inv+ 7;
-#X obj 46 15 #for 0 320 1;
-#X obj 46 48 # * 7;
-#X obj 46 -34 loadbang;
-#X text 66 -12 make one line:;
-#X text 54 31 numbers 0 to 319;
-#X text 55 84 numbers 0 to 6 repeated 45 or 46 times;
-#X text 56 116 numbers 7 down to 1 ...;
-#X text 53 172 3*1-bit rgb image line;
-#X text 83 206 3*8-bit rgb image line;
-#X text 53 234 repeat line 240 times;
+#N canvas 165 50 640 466 10;
+#X obj 6 67 # / 320;
+#X obj 6 187 # * 255;
+#X obj 6 153 # != 0;
+#X obj 6 -12 bng 15 250 50 0 empty empty empty 0 -6 0 8 -24198 -1 -1
+;
+#X obj 6 99 # inv+ 7;
+#X obj 6 15 #for 0 320 1;
+#X obj 6 48 # * 7;
+#X obj 6 -34 loadbang;
+#X text 26 -12 make one line:;
+#X text 14 31 numbers 0 to 319;
+#X text 15 84 numbers 0 to 6 repeated 45 or 46 times;
+#X text 16 116 numbers 7 down to 1 ...;
+#X text 13 172 3*1-bit rgb image line;
+#X text 13 205 3*8-bit rgb image line;
+#X text 135 223 repeat line 240 times;
#X obj -13 -85 cnv 15 500 30 empty empty empty 20 12 0 14 -233017 -66577
0;
#X text 0 -86 hello-world.pd;
-#X obj 46 134 #outer & (2 4 1);
-#X obj 46 252 #redim (240 320 3);
-#X obj -14 319 cnv 15 500 30 empty empty empty 20 12 0 14 -200249 -66577
+#X obj 6 134 #outer & (2 4 1);
+#X obj 6 222 #redim (240 320 3);
+#X obj -14 349 cnv 15 500 30 empty empty empty 20 12 0 14 -200249 -66577
0;
-#X text -7 325 GridFlow 0.8.0;
-#X text -7 325 GridFlow 0.8.0;
+#X text -7 355 GridFlow 0.8.0;
+#X text -7 355 GridFlow 0.8.0;
#X text 0 -72 Copyright 2001 Mathieu Bouchard;
-#X connect 0 0 5 0;
-#X connect 1 0 19 0;
+#X obj 289 297 #text_to_image;
+#X obj 289 278 #import per_message;
+#X msg 289 259 symbol Hello_World!;
+#X obj 290 319 #draw_image put (3 # 0) (0 0);
+#X obj 6 290 #out window;
+#X msg 288 240 load grid gzfile lucida-typewriter-12.grid.gz;
+#X obj 391 297 #in;
+#X text 328 216 FOR FUTURE USE:;
+#X connect 0 0 4 0;
+#X connect 1 0 18 0;
#X connect 2 0 1 0;
-#X connect 3 0 6 0;
-#X connect 5 0 18 0;
-#X connect 6 0 7 0;
-#X connect 7 0 0 0;
-#X connect 8 0 3 0;
-#X connect 18 0 2 0;
-#X connect 19 0 4 0;
+#X connect 3 0 5 0;
+#X connect 4 0 17 0;
+#X connect 5 0 6 0;
+#X connect 6 0 0 0;
+#X connect 7 0 3 0;
+#X connect 17 0 2 0;
+#X connect 18 0 27 0;
+#X connect 23 0 26 1;
+#X connect 24 0 23 0;
+#X connect 25 0 24 0;
+#X connect 28 0 29 0;
+#X connect 29 0 23 2;
diff --git a/externals/gridflow/pd_examples/image_stats.pd b/externals/gridflow/pd_examples/image_stats.pd
index 9f9c753a..ecb60e01 100644
--- a/externals/gridflow/pd_examples/image_stats.pd
+++ b/externals/gridflow/pd_examples/image_stats.pd
@@ -1,39 +1,39 @@
-#N canvas 391 151 716 416 10;
-#X obj 257 173 print total_value;
-#X obj 523 151 #dim;
-#X obj 22 187 #export_list;
-#X obj 328 150 print number_of_values;
-#X obj 523 200 print number_of_dimensions;
-#X obj 523 173 #export;
-#X obj 185 91 #fold +;
-#X obj 281 201 /;
-#X obj 185 135 #fold +;
-#X obj 22 215 print total_pixel;
-#X obj 185 57 fork;
-#X obj 245 28 #in;
-#X obj 328 106 #fold * \, seed 1;
-#X obj 480 112 print dimensions;
-#X obj 281 228 print average_value;
-#X obj 186 157 #export;
-#X obj 185 113 #fold +;
-#X obj 480 90 #export_list;
-#X obj 480 68 #dim;
-#X obj 328 84 #dim;
-#X obj 328 128 #export;
-#X msg 271 -35 open bluemarble.jpg \, bang;
-#X msg 271 -15 open teapot.png \, bang;
-#X msg 271 5 open r001.jpg \, bang;
-#X obj -15 304 cnv 15 720 30 empty empty empty 20 12 0 14 -200249 -66577
+#N canvas 391 151 716 426 10;
+#X obj 214 261 print total_value;
+#X obj 473 191 #dim;
+#X obj 42 220 #export_list;
+#X obj 278 231 print number_of_values;
+#X obj 473 229 print number_of_dimensions;
+#X obj 473 210 #export;
+#X obj 205 181 #fold +;
+#X obj 205 301 /;
+#X obj 205 219 #fold +;
+#X obj 42 239 print total_pixel;
+#X obj 205 147 fork;
+#X obj 265 118 #in;
+#X obj 278 193 #fold * \, seed 1;
+#X obj 420 166 print dimensions;
+#X obj 205 320 print average_value;
+#X obj 205 238 #export;
+#X obj 205 200 #fold +;
+#X obj 420 147 #export_list;
+#X obj 420 128 #dim;
+#X obj 278 174 #dim;
+#X obj 278 212 #export;
+#X msg 291 55 open bluemarble.jpg \, bang;
+#X msg 291 75 open teapot.png \, bang;
+#X msg 291 95 open r001.jpg \, bang;
+#X obj 5 394 cnv 15 720 30 empty empty empty 20 12 0 14 -200249 -66577
0;
-#X text -7 311 GridFlow 0.8.0;
-#X text -7 311 GridFlow 0.8.0;
-#X obj -13 -85 cnv 15 720 30 empty empty empty 20 12 0 14 -233017 -66577
+#X text 13 401 GridFlow 0.8.0;
+#X text 13 401 GridFlow 0.8.0;
+#X obj 7 5 cnv 15 720 30 empty empty empty 20 12 0 14 -233017 -66577
0;
-#X text -5 -72 Copyright 2001 Mathieu Bouchard;
-#X text -5 -86 image_stats.pd;
-#X obj 22 131 #fold + \, seed (3 #);
-#X obj 22 92 #fold + \, seed (3 #);
-#X text 460 -36 <-- click on one of these;
+#X text 15 18 Copyright 2001 Mathieu Bouchard;
+#X text 15 4 image_stats.pd;
+#X obj 42 201 #fold + \, seed (3 #);
+#X obj 42 182 #fold + \, seed (3 #);
+#X text 480 54 <-- click on one of these;
#X connect 1 0 5 0;
#X connect 2 0 9 0;
#X connect 5 0 4 0;
diff --git a/externals/gridflow/pd_examples/linear_transform.pd b/externals/gridflow/pd_examples/linear_transform.pd
index b5e87d8d..1c2d4749 100644
--- a/externals/gridflow/pd_examples/linear_transform.pd
+++ b/externals/gridflow/pd_examples/linear_transform.pd
@@ -1,123 +1,215 @@
-#N canvas 454 137 685 580 10;
-#X text 455 -6 click here to go in manual mode;
-#X floatatom 138 224 5 0 0 0 - - -;
-#X obj 7 289 # >> 11;
-#X obj 7 62 #store;
-#X obj 194 204 hsl 128 15 -4096 4096 0 0 empty empty empty -2 -6 0
+#N canvas 76 11 784 587 10;
+#X text 359 43 click here to go in manual mode;
+#X floatatom 141 311 5 0 0 0 - - -;
+#X obj 27 374 # >> 11;
+#X obj 27 139 #store;
+#X obj 183 291 hsl 128 15 -4096 4096 0 0 empty empty empty -2 -6 0
8 -260818 -1 -1 0 1;
-#X obj 545 123 * 3;
-#X obj 418 376 # sin*;
-#X obj 194 223 hsl 128 15 -4096 4096 0 0 empty empty empty -2 -6 0
+#X obj 505 208 * 3;
+#X obj 428 435 # sin*;
+#X obj 183 310 hsl 128 15 -4096 4096 0 0 empty empty empty -2 -6 0
8 -260818 -1 -1 0 1;
-#X floatatom 138 170 5 0 0 0 - - -;
-#X msg 448 137 10000;
-#X obj 7 -26 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 1 1;
-#X obj 194 166 hsl 128 15 -4096 4096 0 0 empty empty empty -2 -6 0
+#X floatatom 141 257 5 0 0 0 - - -;
+#X msg 444 238 10000;
+#X obj 27 59 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 1 1;
+#X obj 183 253 hsl 128 15 -4096 4096 0 0 empty empty empty -2 -6 0
8 -260818 -1 -1 0 1;
-#X obj 94 40 loadbang;
-#X obj 82 266 #redim ( 2 2 );
-#X text 191 147 linear transform;
-#X obj 7 310 # + 128;
-#X floatatom 138 188 5 0 0 0 - - -;
-#X floatatom 138 206 5 0 0 0 - - -;
-#X obj 194 185 hsl 128 15 -4096 4096 0 0 empty empty empty -2 -6 0
+#X obj 77 138 loadbang;
+#X text 180 234 linear transform;
+#X obj 27 395 # + 128;
+#X floatatom 141 275 5 0 0 0 - - -;
+#X floatatom 141 293 5 0 0 0 - - -;
+#X obj 183 272 hsl 128 15 -4096 4096 0 0 empty empty empty -2 -6 0
8 -260818 -1 -1 0 1;
-#X obj 418 175 vsl 15 128 0 35999 0 0 empty empty empty 0 -8 0 8 -260818
--1 -1 12700 1;
-#X obj 453 174 vsl 15 128 -10000 10000 0 0 empty empty empty 0 -8 0
-8 -260818 -1 -1 7400 1;
-#X obj 427 34 % 36000;
-#X obj 448 116 loadbang;
-#X text 360 146 rotozoomer;
-#X obj 545 143 # sin* 100;
-#X obj 384 -6 shunt 2;
-#X msg 132 342 open teapot.png \, bang;
-#X msg 545 215 set \$1;
-#X obj 132 321 loadbang;
-#X obj 7 363 #store;
-#X obj 7 384 #out window;
-#X obj 453 312 t b f;
-#X obj 439 -5 tgl 15 0 empty empty empty 0 -6 0 8 -241291 -1 -1 1 1
+#X obj 428 260 vsl 15 128 0 35999 0 0 empty empty empty 0 -8 0 8 -260818
+-1 -1 0 1;
+#X obj 444 259 vsl 15 128 -32768 32768 0 0 empty empty empty 0 -8 0
+8 -260818 -1 -1 12700 1;
+#X obj 327 82 % 36000;
+#X obj 444 219 loadbang;
+#X text 432 185 rotozoomer;
+#X obj 505 227 # sin* 100;
+#X obj 288 43 shunt 2;
+#X msg 505 284 set \$1;
+#X obj 152 416 loadbang;
+#X obj 27 448 #store;
+#X obj 27 469 #out window;
+#X obj 343 44 tgl 15 0 empty empty empty 0 -6 0 8 -241291 -1 -1 1 1
;
-#X obj 81 247 #pack 4;
-#X obj 7 35 t b b;
-#X obj 384 33 float;
-#X obj 427 14 + 100;
-#X obj 545 164 # inv* 100000;
-#X obj 545 185 #export;
-#X obj 63 341 #camera;
-#X obj 132 363 #in;
-#X obj 63 321 spigot;
-#X obj 111 322 tgl 15 0 empty empty empty 0 -6 0 8 -241291 -1 -1 0
+#X obj 88 334 #pack 4;
+#X obj 27 95 t b b;
+#X obj 288 82 float;
+#X obj 327 63 + 100;
+#X obj 505 246 # inv* 100000;
+#X obj 505 265 #export;
+#X obj 83 426 #camera;
+#X obj 152 454 #in;
+#X obj 83 406 spigot;
+#X obj 131 407 tgl 15 0 empty empty empty 0 -6 0 8 -241291 -1 -1 0
1;
-#X obj 7 268 #inner;
-#X obj 81 144 loadbang;
-#X obj 23 412 fps detailed;
-#X obj 23 435 print;
-#X obj 7 8 metro 5;
-#X obj -18 -85 cnv 15 780 30 empty empty empty 20 12 0 14 -233017 -66577
+#X obj 27 353 #inner;
+#X obj 88 237 loadbang;
+#X obj 27 488 fps detailed;
+#X obj 27 507 print;
+#X obj 2 0 cnv 15 780 30 empty empty empty 20 12 0 14 -233017 -66577
0;
-#X text 1 -72 Copyright 2002 Mathieu Bouchard;
-#X text 1 -85 convolve.pd;
-#X obj -18 -85 cnv 15 780 30 empty empty empty 20 12 0 14 -233017 -66577
+#X text 21 13 Copyright 2002 Mathieu Bouchard;
+#X text 21 0 convolve.pd;
+#X obj 2 0 cnv 15 780 30 empty empty empty 20 12 0 14 -233017 -66577
0;
-#X text 1 -85 linear_transform.pd;
-#X obj 94 61 #for (-128 -128) (128 128) (1 1);
-#X obj 418 355 #outer + (9000 18000 0 9000);
-#X text 1 -72 Copyright 2001 Mathieu Bouchard;
-#X obj -18 464 cnv 15 780 30 empty empty empty 20 12 0 14 -200249 -66577
+#X text 21 0 linear_transform.pd;
+#X obj 77 157 #for (-128 -128) (128 128) (1 1);
+#X obj 428 416 #outer + (9000 18000 0 9000);
+#X text 21 13 Copyright 2001 Mathieu Bouchard;
+#X obj 2 549 cnv 15 780 30 empty empty empty 20 12 0 14 -200249 -66577
0;
-#X text -10 471 GridFlow 0.8.0;
-#X text -10 471 GridFlow 0.8.0;
-#X connect 1 0 33 3;
-#X connect 2 0 15 0;
-#X connect 3 0 43 0;
-#X connect 4 0 17 0;
-#X connect 5 0 24 0;
-#X connect 6 0 13 0;
+#X text 10 556 GridFlow 0.8.0;
+#X text 10 556 GridFlow 0.8.0;
+#X msg 152 435 load teapot.png;
+#X obj 27 76 metro 33.3667;
+#X obj 89 353 #redim (2 2);
+#X obj 333 335 #export;
+#X obj 333 316 # % 36000;
+#N canvas 0 0 450 300 scratch 0;
+#X obj 40 38 inlet;
+#X obj 40 245 outlet;
+#X obj 40 57 route keypress;
+#X msg 40 76 \$4;
+#X msg 40 115 -1;
+#X msg 79 115 1;
+#X obj 40 182 +;
+#X obj 40 207 int;
+#X obj 72 185 nbx 8 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10
+-262144 -1 -1 0 256;
+#X obj 40 226 #fade 2;
+#X obj 65 207 inlet;
+#X obj 40 139 * 1500;
+#X obj 40 95 route Left Right;
+#X connect 0 0 2 0;
+#X connect 2 0 3 0;
+#X connect 3 0 12 0;
+#X connect 4 0 11 0;
+#X connect 5 0 11 0;
+#X connect 6 0 7 1;
+#X connect 6 0 8 0;
+#X connect 7 0 9 0;
+#X connect 8 0 6 1;
+#X connect 9 0 1 0;
+#X connect 10 0 7 0;
+#X connect 11 0 6 0;
+#X connect 12 0 4 0;
+#X connect 12 1 5 0;
+#X restore 333 297 pd scratch;
+#N canvas 0 0 304 312 scratch2 0;
+#X obj 30 23 inlet;
+#X obj 46 263 outlet;
+#X obj 30 42 route keypress;
+#X msg 30 90 \$4;
+#X msg 69 130 1;
+#X obj 45 197 +;
+#X obj 46 218 int;
+#X obj 71 199 nbx 8 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10
+-262144 -1 -1 131526 256;
+#X obj 46 243 #fade 2;
+#X obj 71 218 inlet;
+#X obj 30 109 route Up Down;
+#X msg 30 130 -1;
+#X obj 30 70 t l l;
+#X msg 129 62 \$3;
+#X obj 129 81 & 1;
+#X obj 129 100 sel 0 1;
+#X obj 49 161 *;
+#X msg 130 120 1000;
+#X msg 168 120 5;
+#X connect 0 0 2 0;
+#X connect 2 0 12 0;
+#X connect 3 0 10 0;
+#X connect 4 0 16 0;
+#X connect 5 0 6 1;
+#X connect 5 0 7 0;
+#X connect 6 0 8 0;
+#X connect 7 0 5 1;
+#X connect 8 0 1 0;
+#X connect 9 0 6 0;
+#X connect 10 0 11 0;
+#X connect 10 1 4 0;
+#X connect 11 0 16 0;
+#X connect 12 0 3 0;
+#X connect 12 1 13 0;
+#X connect 13 0 14 0;
+#X connect 14 0 15 0;
+#X connect 15 0 17 0;
+#X connect 15 1 18 0;
+#X connect 16 0 5 0;
+#X connect 17 0 16 1;
+#X connect 18 0 16 1;
+#X restore 336 367 pd scratch2;
+#X obj 336 386 #export;
+#X floatatom 336 443 8 0 0 0 - - -;
+#X obj 336 405 / 10000;
+#X obj 336 424 exp;
+#X obj 505 373 t b;
+#X connect 1 0 30 3;
+#X connect 2 0 14 0;
+#X connect 3 0 40 0;
+#X connect 4 0 16 0;
+#X connect 5 0 23 0;
+#X connect 6 0 57 0;
#X connect 7 0 1 0;
-#X connect 8 0 33 0;
-#X connect 9 0 20 0;
-#X connect 10 0 47 0;
+#X connect 8 0 30 0;
+#X connect 9 0 19 0;
+#X connect 10 0 56 0;
#X connect 11 0 8 0;
-#X connect 12 0 53 0;
-#X connect 13 0 43 1;
-#X connect 15 0 29 0;
-#X connect 16 0 33 1;
-#X connect 17 0 33 2;
-#X connect 18 0 16 0;
-#X connect 19 0 54 0;
-#X connect 20 0 31 0;
-#X connect 21 0 35 1;
-#X connect 22 0 9 0;
-#X connect 24 0 37 0;
-#X connect 25 0 35 0;
-#X connect 26 0 40 0;
-#X connect 27 0 20 0;
-#X connect 28 0 26 0;
-#X connect 29 0 30 0;
-#X connect 30 0 45 0;
-#X connect 31 0 19 0;
-#X connect 31 1 6 1;
-#X connect 32 0 25 1;
-#X connect 33 0 13 0;
-#X connect 34 0 3 0;
-#X connect 34 1 25 0;
-#X connect 34 1 41 0;
-#X connect 35 0 36 0;
-#X connect 35 0 19 0;
-#X connect 35 0 5 0;
-#X connect 36 0 21 0;
-#X connect 37 0 38 0;
-#X connect 38 0 27 0;
-#X connect 38 0 31 0;
-#X connect 39 0 29 1;
-#X connect 40 0 29 1;
-#X connect 41 0 39 0;
-#X connect 42 0 41 1;
-#X connect 43 0 2 0;
-#X connect 44 0 33 0;
-#X connect 45 0 46 0;
-#X connect 47 0 34 0;
-#X connect 53 0 3 1;
-#X connect 54 0 6 0;
+#X connect 12 0 49 0;
+#X connect 14 0 27 0;
+#X connect 15 0 30 1;
+#X connect 16 0 30 2;
+#X connect 17 0 15 0;
+#X connect 18 0 50 0;
+#X connect 19 0 66 0;
+#X connect 20 0 32 1;
+#X connect 21 0 9 0;
+#X connect 23 0 34 0;
+#X connect 24 0 32 0;
+#X connect 25 0 19 0;
+#X connect 26 0 55 0;
+#X connect 27 0 28 0;
+#X connect 28 0 42 0;
+#X connect 28 0 60 0;
+#X connect 28 0 61 0;
+#X connect 29 0 24 1;
+#X connect 30 0 57 0;
+#X connect 31 0 3 0;
+#X connect 31 1 24 0;
+#X connect 31 1 38 0;
+#X connect 31 1 60 1;
+#X connect 31 1 61 1;
+#X connect 32 0 33 0;
+#X connect 32 0 18 0;
+#X connect 32 0 5 0;
+#X connect 33 0 20 0;
+#X connect 34 0 35 0;
+#X connect 35 0 25 0;
+#X connect 35 0 66 0;
+#X connect 36 0 27 1;
+#X connect 37 0 27 1;
+#X connect 38 0 36 0;
+#X connect 39 0 38 1;
+#X connect 40 0 2 0;
+#X connect 41 0 30 0;
+#X connect 42 0 43 0;
+#X connect 49 0 3 1;
+#X connect 50 0 6 0;
+#X connect 55 0 37 0;
+#X connect 56 0 31 0;
+#X connect 57 0 40 1;
+#X connect 58 0 18 0;
+#X connect 59 0 58 0;
+#X connect 60 0 59 0;
+#X connect 61 0 62 0;
+#X connect 62 0 64 0;
+#X connect 64 0 65 0;
+#X connect 65 0 63 0;
+#X connect 65 0 19 0;
+#X connect 65 0 6 1;
+#X connect 66 0 18 0;
diff --git a/externals/gridflow/pd_examples/photo_pianoroll.pd b/externals/gridflow/pd_examples/photo_pianoroll.pd
index b97e2008..9ad80e38 100644
--- a/externals/gridflow/pd_examples/photo_pianoroll.pd
+++ b/externals/gridflow/pd_examples/photo_pianoroll.pd
@@ -1,16 +1,15 @@
-#N canvas 476 141 695 640 10;
-#X obj 146 24 #in lada.jpg;
-#X obj 58 479 #out window;
-#X obj 28 -9 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 0 1;
-#X obj 58 93 #store;
-#X obj 164 3 loadbang;
-#X text 268 -34 How to play a car;
-#X obj 146 4 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+#N canvas 329 40 705 535 10;
+#X obj 146 62 #in lada.jpg;
+#X obj 38 290 #out window;
+#X obj 38 48 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 1 1;
+#X obj 38 114 #store;
+#X obj 164 41 loadbang;
+#X obj 146 42 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
-#X obj 406 488 dac~;
-#X obj 333 54 +;
-#X msg 333 33 1;
-#X obj 361 54 % 365;
+#X obj 255 466 dac~;
+#X obj 329 58 +;
+#X msg 329 39 1;
+#X obj 361 39 % 365;
#N canvas 0 0 450 300 fft 0;
#X obj 23 68 rifft~;
#X obj 23 88 outlet~;
@@ -18,142 +17,142 @@
#X obj 23 48 tabreceive~ array2;
#X connect 0 0 1 0;
#X connect 3 0 0 0;
-#X restore 405 448 pd fft;
-#X obj 7 41 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1
-;
-#X obj 28 40 t b b;
-#X msg 284 418 4 2 # 0 0 0 502 1 502 1 0;
-#X obj 284 437 # +;
-#X obj 58 418 t a b;
-#X msg 311 437 \$1 0;
-#X obj 58 439 #greyscale_to_rgb;
-#X obj 477 135 #store;
-#X obj 476 214 #export_list;
-#X obj 517 234 s array1;
-#X obj 477 174 #cast float32;
-#X obj 186 126 # inv+ 255;
-#X obj 146 64 # min 255;
-#X obj 146 45 # * 3;
-#X msg 477 113 1 1 # \$1;
-#X obj 444 14 table array1 502;
-#X obj 477 234 t b a;
-#X obj 350 437 r row;
-#X obj 361 76 s row;
-#X obj 478 285 t f f;
-#X obj 480 392 tabwrite array2;
-#X obj 479 326 exp;
-#X obj 137 221 #mouse \, ...;
-#X obj 272 242 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
-1;
-#X obj 224 243 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
-1;
-#X obj 165 374 #draw_polygon put;
-#X msg 272 259 1 # 255;
-#X msg 223 261 1 # 0;
-#X obj 169 350 spigot;
-#X obj 280 292 t a a;
-#X obj 294 374 # +;
-#X obj 146 139 t a;
-#X msg 280 314 4 2 # 0 0 0 1 1 1 1 0;
-#X obj 280 336 # *;
-#X obj 357 333 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -6 0 10
+#X restore 255 423 pd fft;
+#X obj 17 85 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 38 84 t b b;
+#X msg 260 252 4 2 # 0 0 0 502 1 502 1 0;
+#X obj 260 271 # +;
+#X obj 38 233 t a b;
+#X msg 287 271 \$1 0;
+#X obj 38 252 #greyscale_to_rgb;
+#X obj 462 77 #store;
+#X obj 462 153 #export_list;
+#X obj 501 172 s array1;
+#X obj 171 177 # inv+ 255;
+#X obj 146 100 # min 255;
+#X obj 146 81 # * 3;
+#X msg 474 58 1 1 # \$1;
+#X obj 255 339 table array1 502;
+#X obj 462 172 t b a;
+#X obj 326 271 r row;
+#X obj 361 58 s row;
+#X obj 462 210 t f f;
+#X obj 462 305 tabwrite array2;
+#X obj 462 248 exp;
+#X obj 38 309 #mouse \, ...;
+#X obj 79 383 #draw_polygon put;
+#X obj 79 364 spigot;
+#X obj 29 413 t a a;
+#X obj 29 470 # +;
+#X obj 146 177 t a;
+#X msg 29 432 4 2 # 0 0 0 1 1 1 1 0;
+#X obj 29 451 # *;
+#X obj 105 459 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -6 0 10
+-262131 -1 -1 20 256;
+#X msg 185 217 365 502 1 # 255;
+#X text 296 217 clear;
+#X obj 462 286 tabread4 array1;
+#X obj 462 191 for 0 64 1;
+#X obj 462 96 #fade 5;
+#X obj 255 358 table array2 1024;
+#X obj 255 442 lop~ 1000;
+#X obj 462 229 / 20;
+#X obj 462 267 * 22;
+#X obj 105 473 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -6 0 10
-262131 -1 -1 20 256;
-#X msg 185 182 365 502 1 # 255;
-#X text 296 182 clear;
-#X obj 480 373 tabread4 array1;
-#X obj 477 265 for 0 64 1;
-#X obj 477 154 #fade 5;
-#X obj 444 35 table array2 1024;
-#X obj 406 468 lop~ 1000;
-#X obj 479 305 / 20;
-#X obj 480 346 * 22;
-#X obj 28 19 metro 46.44;
-#X obj 357 350 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -6 0 10
--262131 -1 -1 1 256;
-#X obj 325 373 #pack 2;
-#X obj 475 194 # / ( float32 # 4000 );
-#X obj 186 155 #convolve ( 1 7 # 1 1 2 8 2 1 1 );
-#X obj 514 90 # >> 4;
-#X obj 146 84 #convolve ( 2 2 # 1 );
-#X obj 146 103 # >> 2;
-#X obj 58 459 #draw_polygon put (3 # 255 0 0);
-#X obj -18 524 cnv 15 700 30 empty empty empty 20 12 0 14 -200249 -66577
+#X obj 54 470 #pack 2;
+#X obj 499 39 # >> 4;
+#X obj 146 138 # >> 2;
+#X obj 38 271 #draw_polygon put (3 # 255 0 0);
+#X obj 2 499 cnv 15 700 30 empty empty empty 20 12 0 14 -200249 -66577
0;
-#X text -10 531 GridFlow 0.8.0;
-#X text -10 531 GridFlow 0.8.0;
-#X obj -18 -85 cnv 15 700 30 empty empty empty 20 12 0 14 -233017 -66577
+#X text 10 506 GridFlow 0.8.0;
+#X text 10 506 GridFlow 0.8.0;
+#X obj 2 0 cnv 15 700 30 empty empty empty 20 12 0 14 -233017 -66577
0;
-#X text -3 -86 photo_pianoroll.pd;
-#X text -5 -72 Copyright 2004 Mathieu Bouchard;
-#X connect 0 0 25 0;
-#X connect 1 0 34 0;
-#X connect 2 0 56 0;
-#X connect 3 0 16 0;
-#X connect 3 0 40 0;
+#X text 17 -1 photo_pianoroll.pd;
+#X text 15 13 Copyright 2004 Mathieu Bouchard;
+#X obj 462 134 # / (f # 4000);
+#X obj 462 115 #cast f;
+#X obj 171 196 #convolve (1 7 # 1 1 2 8 2 1 1);
+#X obj 146 119 #convolve (2 2 # 1);
+#X msg 132 344 0;
+#X msg 136 364 1 # \$1;
+#X msg 162 344 255;
+#X obj 79 402 s feedback;
+#X obj 152 158 r feedback;
+#X obj 38 65 metro 46.44;
+#X text 575 7 How to play a car;
+#X connect 0 0 23 0;
+#X connect 1 0 32 0;
+#X connect 2 0 70 0;
+#X connect 3 0 15 0;
+#X connect 3 0 34 0;
#X connect 4 0 0 0;
-#X connect 6 0 0 0;
-#X connect 8 0 10 0;
-#X connect 9 0 8 0;
-#X connect 10 0 8 1;
-#X connect 10 0 30 0;
-#X connect 10 0 26 0;
-#X connect 11 0 53 0;
-#X connect 12 0 13 0;
-#X connect 13 0 9 0;
-#X connect 13 1 3 0;
-#X connect 14 0 15 0;
-#X connect 15 0 64 2;
-#X connect 16 0 18 0;
-#X connect 16 1 14 0;
-#X connect 17 0 15 1;
-#X connect 18 0 64 0;
-#X connect 19 0 51 0;
-#X connect 20 0 28 0;
-#X connect 22 0 59 0;
-#X connect 23 0 60 0;
-#X connect 24 0 62 0;
-#X connect 25 0 24 0;
-#X connect 26 0 19 0;
-#X connect 28 0 50 0;
-#X connect 28 1 21 0;
-#X connect 29 0 17 0;
-#X connect 31 0 54 0;
-#X connect 31 1 32 1;
-#X connect 33 0 55 0;
-#X connect 34 0 41 0;
-#X connect 34 1 41 0;
-#X connect 34 4 36 0;
-#X connect 34 4 40 1;
-#X connect 34 6 35 0;
-#X connect 34 6 40 1;
+#X connect 5 0 0 0;
+#X connect 7 0 9 0;
+#X connect 8 0 7 0;
+#X connect 9 0 7 1;
+#X connect 9 0 28 0;
+#X connect 9 0 24 0;
+#X connect 10 0 47 0;
+#X connect 11 0 12 0;
+#X connect 12 0 8 0;
+#X connect 12 1 3 0;
+#X connect 13 0 14 0;
+#X connect 14 0 54 2;
+#X connect 15 0 17 0;
+#X connect 15 1 13 0;
+#X connect 16 0 14 1;
+#X connect 17 0 54 0;
+#X connect 18 0 45 0;
+#X connect 19 0 26 0;
+#X connect 21 0 63 0;
+#X connect 22 0 64 0;
+#X connect 23 0 22 0;
+#X connect 24 0 18 0;
+#X connect 26 0 44 0;
+#X connect 26 1 20 0;
+#X connect 27 0 16 0;
+#X connect 29 0 48 0;
+#X connect 29 1 30 1;
+#X connect 31 0 49 0;
+#X connect 32 0 35 0;
+#X connect 32 1 35 0;
+#X connect 32 4 34 1;
+#X connect 32 4 65 0;
+#X connect 32 6 34 1;
+#X connect 32 6 67 0;
+#X connect 33 0 68 0;
+#X connect 34 0 33 0;
#X connect 35 0 38 0;
-#X connect 36 0 39 0;
-#X connect 37 0 43 0;
-#X connect 38 0 37 1;
-#X connect 39 0 37 1;
-#X connect 40 0 37 0;
-#X connect 41 0 44 0;
-#X connect 41 1 42 1;
-#X connect 42 0 37 2;
-#X connect 43 0 3 1;
-#X connect 43 0 23 0;
-#X connect 44 0 45 0;
-#X connect 45 0 42 0;
-#X connect 46 0 58 0;
-#X connect 47 0 43 0;
-#X connect 49 0 32 0;
-#X connect 50 0 31 0;
-#X connect 51 0 22 0;
-#X connect 53 0 7 0;
-#X connect 53 0 7 1;
-#X connect 54 0 33 0;
-#X connect 55 0 49 0;
-#X connect 56 0 13 0;
-#X connect 57 0 58 1;
-#X connect 58 0 45 1;
-#X connect 59 0 20 0;
-#X connect 60 0 61 0;
-#X connect 61 0 19 1;
-#X connect 62 0 63 0;
-#X connect 63 0 43 0;
-#X connect 64 0 1 0;
+#X connect 35 1 36 1;
+#X connect 36 0 33 2;
+#X connect 37 0 3 1;
+#X connect 37 0 21 0;
+#X connect 38 0 39 0;
+#X connect 39 0 36 0;
+#X connect 40 0 51 0;
+#X connect 41 0 37 0;
+#X connect 43 0 30 0;
+#X connect 44 0 29 0;
+#X connect 45 0 62 0;
+#X connect 47 0 6 0;
+#X connect 47 0 6 1;
+#X connect 48 0 31 0;
+#X connect 49 0 43 0;
+#X connect 50 0 51 1;
+#X connect 51 0 39 1;
+#X connect 52 0 18 1;
+#X connect 53 0 37 0;
+#X connect 54 0 1 0;
+#X connect 61 0 19 0;
+#X connect 62 0 61 0;
+#X connect 63 0 52 0;
+#X connect 64 0 53 0;
+#X connect 65 0 66 0;
+#X connect 66 0 33 1;
+#X connect 67 0 33 1;
+#X connect 69 0 37 0;
+#X connect 70 0 12 0;
diff --git a/externals/gridflow/pd_examples/polygon.pd b/externals/gridflow/pd_examples/polygon.pd
index d43a14f8..a18980ea 100644
--- a/externals/gridflow/pd_examples/polygon.pd
+++ b/externals/gridflow/pd_examples/polygon.pd
@@ -1,15 +1,12 @@
-#N canvas 242 170 497 560 10;
-#X obj 30 250 #draw_polygon +;
-#X obj 127 3 bng 15 250 50 0 empty empty empty 0 -6 0 8 -24198 -1 -1
+#N canvas 130 96 584 565 10;
+#X obj 35 250 #draw_polygon +;
+#X obj 18 1 bng 15 250 50 0 empty empty empty 0 -6 0 8 -24198 -1 -1
;
-#X obj 187 80 +;
-#X obj 30 214 #store;
-#X obj 220 102 * 5000;
-#X obj 165 -27 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 1 1
+#X obj 35 214 #store;
+#X obj 35 -36 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 1 1
;
-#X msg 187 61 1;
-#X obj 30 394 #out window;
-#X obj 391 7 vsl 15 137 0 36000 0 1 empty empty empty -2 -6 0 8 -260818
+#X obj 35 378 #out window;
+#X obj 306 7 vsl 15 137 0 36000 0 1 empty empty empty -2 -6 0 8 -260818
-1 -1 3400 1;
#N canvas 0 0 415 291 create 0;
#X msg 82 66 0 \$1;
@@ -34,7 +31,7 @@
#X connect 7 0 2 1;
#X connect 8 0 6 0;
#X connect 10 0 0 0;
-#X restore 289 149 pd create star;
+#X restore 204 149 pd create star;
#N canvas 0 0 450 300 color 0;
#X obj 18 141 outlet 0;
#X obj 18 95 # sin* 128;
@@ -50,26 +47,24 @@ color wheel except we don't support the HSV color model for now.;
#X connect 3 0 5 0;
#X connect 4 0 3 0;
#X connect 5 0 1 0;
-#X restore 80 129 pd color generator;
-#X obj 165 1 metro 33.3667;
-#X obj 165 34 t b b b;
-#X obj 30 71 t b;
-#X floatatom 392 151 6 0 0 0 - - -;
-#X obj 89 194 loadbang;
-#X obj 215 81 % 36000;
-#X obj 46 272 shunt 2;
-#X obj 115 274 tgl 15 0 empty empty empty 0 -6 0 8 -241291 -1 -1 0
+#X restore 62 102 pd color generator;
+#X obj 35 -19 metro 33.3667;
+#X obj 35 0 t b b b;
+#X obj 35 71 t b;
+#X floatatom 307 151 6 0 0 0 - - -;
+#X obj 88 194 loadbang;
+#X obj 51 272 shunt 2;
+#X obj 104 274 tgl 15 1 empty empty empty 0 -6 0 8 -241291 -1 -1 1
1;
-#X text 133 273 blur;
-#X msg 89 214 240 320 3 b # 0;
-#X obj 80 167 #cast b;
-#X obj 80 148 # >> 7;
-#X obj 74 357 #solarize;
-#X obj 30 317 shunt 2;
-#X obj 93 318 tgl 15 0 empty empty empty 0 -6 0 8 -241291 -1 -1 0 1
+#X text 122 273 blur;
+#X msg 88 214 240 320 3 b # 0;
+#X obj 62 140 #cast b;
+#X obj 79 355 #solarize;
+#X obj 35 317 shunt 2;
+#X obj 88 319 tgl 15 1 empty empty empty 0 -6 0 8 -241291 -1 -1 1 1
;
-#X obj 131 301 # >> (b # 2);
-#X obj 131 321 #convolve (1 3 b # 1 2 1) \, seed (b # 0);
+#X obj 155 303 # >> (b # 2);
+#X obj 155 322 #convolve (1 3 b # 1 2 1) \, seed (b # 0);
#X obj -15 442 cnv 15 580 30 empty empty empty 20 12 0 14 -200249 -66577
0;
#X text -7 450 GridFlow 0.8.0;
@@ -78,36 +73,51 @@ color wheel except we don't support the HSV color model for now.;
0;
#X text 0 -72 Copyright 2002 Mathieu Bouchard;
#X text 0 -86 polygon.pd;
-#X connect 0 0 17 0;
-#X connect 0 0 24 0;
-#X connect 1 0 12 0;
-#X connect 2 0 16 0;
-#X connect 3 0 0 0;
-#X connect 4 0 9 1;
+#X obj 79 336 #cast i;
+#X obj 82 30 + 1;
+#X obj 57 30 i;
+#X msg 22 26 0;
+#X obj 182 75 expr ($f1*$f1/2);
+#X obj 155 341 # >> (b # 2);
+#X obj 155 360 #convolve (3 1 b # 1 2 1) \, seed (b # 0);
+#X obj 5 27 bng 15 250 50 0 empty empty empty 0 -6 0 8 -258699 -1 -1
+;
+#X obj 62 121 # >> 3;
+#X connect 0 0 13 0;
+#X connect 0 0 19 0;
+#X connect 1 0 9 0;
+#X connect 2 0 0 0;
+#X connect 3 0 8 0;
#X connect 5 0 11 0;
-#X connect 6 0 2 0;
-#X connect 8 0 14 0;
-#X connect 9 0 0 2;
-#X connect 10 0 22 0;
-#X connect 11 0 12 0;
-#X connect 12 0 13 0;
-#X connect 12 1 6 0;
-#X connect 12 2 9 0;
-#X connect 13 0 3 0;
-#X connect 14 0 9 2;
-#X connect 15 0 20 0;
+#X connect 6 0 0 2;
+#X connect 7 0 37 0;
+#X connect 8 0 9 0;
+#X connect 9 0 10 0;
+#X connect 9 1 31 0;
+#X connect 9 2 6 0;
+#X connect 10 0 2 0;
+#X connect 11 0 6 2;
+#X connect 12 0 16 0;
+#X connect 13 0 2 1;
+#X connect 13 1 21 0;
+#X connect 14 0 13 1;
#X connect 16 0 2 1;
-#X connect 16 0 10 0;
-#X connect 16 0 4 0;
-#X connect 17 0 3 1;
-#X connect 17 1 26 0;
-#X connect 18 0 17 1;
-#X connect 20 0 3 1;
-#X connect 21 0 0 1;
-#X connect 22 0 21 0;
-#X connect 23 0 7 0;
-#X connect 24 0 7 0;
-#X connect 24 1 23 0;
-#X connect 25 0 24 1;
-#X connect 26 0 27 0;
-#X connect 27 0 3 1;
+#X connect 17 0 0 1;
+#X connect 18 0 4 0;
+#X connect 19 0 4 0;
+#X connect 19 1 29 0;
+#X connect 20 0 19 1;
+#X connect 21 0 22 0;
+#X connect 22 0 34 0;
+#X connect 29 0 18 0;
+#X connect 30 0 31 1;
+#X connect 31 0 30 0;
+#X connect 31 0 7 0;
+#X connect 31 0 33 0;
+#X connect 32 0 31 0;
+#X connect 33 0 6 1;
+#X connect 34 0 35 0;
+#X connect 35 0 2 1;
+#X connect 36 0 32 0;
+#X connect 36 0 16 0;
+#X connect 37 0 17 0;
diff --git a/externals/gridflow/pd_examples/sand.pd b/externals/gridflow/pd_examples/sand.pd
index 42a0ed93..1ba43753 100644
--- a/externals/gridflow/pd_examples/sand.pd
+++ b/externals/gridflow/pd_examples/sand.pd
@@ -1,15 +1,14 @@
-#N canvas 524 30 680 685 10;
-#X text 317 199 disable falling;
-#X obj 6 392 # min 255;
-#X obj 3 167 fork;
-#X obj 295 402 # != 0;
-#X obj 356 446 #fold +;
-#X obj 99 518 s position;
-#X obj 192 -31 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 1 1
+#N canvas 524 30 680 557 10;
+#X text 287 159 disable falling;
+#X obj 2 96 fork;
+#X obj 273 294 # != 0;
+#X obj 334 332 #fold +;
+#X obj 8 414 s position;
+#X obj 192 29 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 1 1
;
-#X obj 295 465 #export;
-#X obj 192 68 #store;
-#X obj 247 133 shunt 2;
+#X obj 273 351 #export;
+#X obj 192 82 #store;
+#X obj 217 113 shunt 2;
#N canvas 25 226 369 359 mouse 0;
#X text 143 214 is there a click?;
#X obj 44 114 != 0;
@@ -34,26 +33,25 @@
#X connect 11 0 5 0;
#X connect 12 0 10 0;
#X connect 12 1 11 0;
-#X restore 398 151 pd mouse click/drag;
-#X obj 358 152 # / 2;
-#X obj 295 423 #ravel;
-#X msg 11 142 100 100;
-#X obj 6 415 # max;
-#X obj 247 198 shunt 2;
-#X obj 26 187 s size;
-#X obj 295 444 #fold +;
-#X obj 454 112 tgl 15 0 empty empty empty 0 -6 0 8 -241291 -1 -1 0
-1;
-#X obj 356 404 @! abs;
-#X obj 432 412 #export;
-#X obj 432 370 #ravel;
-#X obj 288 260 shunt 2;
-#X obj 301 199 tgl 15 0 empty empty empty 0 -6 0 8 -241291 -1 -1 0
+#X restore 366 132 pd mouse click/drag;
+#X obj 327 132 # / 2;
+#X obj 273 313 #ravel;
+#X msg 8 76 100 100;
+#X obj 217 158 shunt 2;
+#X obj 34 96 s size;
+#X obj 273 332 #fold +;
+#X obj 420 95 tgl 15 0 empty empty empty 0 -6 0 8 -241291 -1 -1 0 1
+;
+#X obj 334 294 @! abs;
+#X obj 402 338 #export;
+#X obj 402 300 #ravel;
+#X obj 256 220 shunt 2;
+#X obj 271 159 tgl 15 0 empty empty empty 0 -6 0 8 -241291 -1 -1 0
1;
-#X obj 356 467 #export;
-#X obj 398 111 shunt 2;
-#X obj 6 348 #greyscale_to_rgb;
-#X obj 399 132 r position;
+#X obj 334 351 #export;
+#X obj 367 94 shunt 2;
+#X obj 2 230 #greyscale_to_rgb;
+#X obj 367 113 r position;
#N canvas 504 75 496 430 falling 0;
#X obj 42 147 # +;
#X text 228 286 vertical falling;
@@ -104,13 +102,13 @@
#X connect 21 0 7 0;
#X connect 22 0 8 0;
#X connect 23 0 2 0;
-#X restore 247 218 pd falling sand;
-#X obj 6 465 #scale_by 2;
-#X obj 8 287 shunt 3;
-#X obj 6 540 print;
-#X obj 136 26 bng 15 250 50 0 empty empty empty 0 -6 0 8 -24198 -1
+#X restore 217 178 pd falling sand;
+#X obj 2 373 #scale_by 2;
+#X obj 2 170 shunt 3;
+#X obj 2 452 print;
+#X obj 197 65 bng 15 250 50 0 empty empty empty 0 -6 0 8 -24198 -1
-1;
-#X text 253 -8 auto;
+#X text 253 46 auto;
#N canvas 292 75 480 513 falling 0;
#X obj 105 177 # div 5;
#X text 292 85 horizontal falling;
@@ -161,7 +159,7 @@
#X connect 21 0 0 0;
#X connect 22 0 17 0;
#X connect 23 0 14 0;
-#X restore 292 238 pd falling sand ( 2 );
+#X restore 262 198 pd falling sand ( 2 );
#N canvas 525 58 536 584 finger 0;
#X obj 192 7 inlet;
#X obj 36 78 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
@@ -270,19 +268,18 @@
#X connect 23 0 21 0;
#X connect 24 0 15 0;
#X connect 25 0 3 1;
-#X restore 290 152 pd finger;
-#X obj 342 376 # -;
-#X obj 356 425 #ravel;
-#X msg 3 118 240 320;
-#X obj 432 391 #fold +;
-#X obj 6 328 # + 128;
-#X obj 148 476 #greyscale_to_rgb;
-#X obj 303 134 tgl 15 0 empty empty empty 0 -6 0 8 -241291 -1 -1 0
+#X restore 260 132 pd finger;
+#X obj 310 266 # -;
+#X obj 334 313 #ravel;
+#X msg 2 56 240 320;
+#X obj 402 319 #fold +;
+#X obj 2 211 # + 128;
+#X obj 55 344 #greyscale_to_rgb;
+#X obj 270 115 tgl 15 0 empty empty empty 0 -6 0 8 -241291 -1 -1 0
1;
-#X text 362 263 enable stats;
-#X text 292 529 checking for conservation of amounts of sand;
-#X msg 3 212 \$1 \$2 1 # 0;
-#X text 33 159 set size / reset;
+#X text 325 220 enable stats;
+#X text 239 391 checking for conservation of amounts of sand;
+#X msg 2 115 \$1 \$2 1 # 0;
#N canvas 56 229 441 265 lighting 0;
#X obj 27 209 outlet;
#X obj 27 180 # +;
@@ -313,105 +310,106 @@
#X connect 10 1 3 0;
#X connect 13 0 8 1;
#X connect 14 0 1 1;
-#X restore 151 355 pd lighting;
-#X obj 6 518 fps detailed;
-#X obj 344 262 tgl 15 0 empty empty empty 0 -6 0 8 -241291 -1 -1 0
+#X restore 26 268 pd lighting;
+#X obj 2 433 fps detailed;
+#X obj 309 221 tgl 15 0 empty empty empty 0 -6 0 8 -241291 -1 -1 0
1;
-#X text 152 26 step;
-#X obj 71 253 vradio 15 1 0 3 empty empty empty 0 -6 0 8 -241291 -1
--1 0;
-#X obj 6 486 #out window;
-#X obj 295 508 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10
+#X text 213 65 step;
+#X obj 55 144 vradio 15 1 0 3 empty empty empty 0 -6 0 8 -241291 -1
+-1 2;
+#X obj 2 394 #out window;
+#X obj 273 372 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10
-262144 -1 -1 0 256;
-#X obj 356 508 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10
+#X obj 334 372 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10
-262144 -1 -1 0 256;
-#X obj 432 508 nbx 8 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10
+#X obj 402 357 nbx 8 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10
-262144 -1 -1 0 256;
-#X text 90 268 differential;
-#X text 89 253 heightmap;
-#X text 89 284 topographic;
-#X obj 152 68 t a a;
-#X obj 247 260 t a a;
-#X obj 149 457 # * 255;
-#X obj 150 437 # >= 6;
-#X obj 150 416 # & 7;
-#X obj 2 97 loadbang;
-#X text 470 112 disable finger;
-#X obj 332 354 t a a;
-#X obj 6 309 # << 2;
-#X obj 151 334 # << 4;
-#X obj 192 -8 metro 20;
-#X obj -15 569 cnv 15 680 30 empty empty empty 20 12 0 14 -200249 -66577
+#X text 74 158 differential;
+#X text 73 143 heightmap;
+#X text 73 174 topographic;
+#X obj 152 82 t a a;
+#X obj 217 220 t a a;
+#X obj 56 325 # * 255;
+#X obj 56 306 # >= 6;
+#X obj 56 287 # & 7;
+#X obj 2 37 loadbang;
+#X text 436 95 disable finger;
+#X obj 300 244 t a a;
+#X obj 2 192 # << 2;
+#X obj 192 46 metro 20;
+#X obj -15 499 cnv 15 680 30 empty empty empty 20 12 0 14 -200249 -66577
0;
-#X text -7 576 GridFlow 0.8.0;
-#X text -7 576 GridFlow 0.8.0;
-#X obj -13 -85 cnv 15 680 30 empty empty empty 20 12 0 14 -233017 -66577
+#X text -7 506 GridFlow 0.8.0;
+#X text -7 506 GridFlow 0.8.0;
+#X obj -13 -25 cnv 15 680 30 empty empty empty 20 12 0 14 -233017 -66577
0;
-#X text 0 -72 Copyright 2002 Mathieu Bouchard;
-#X text 0 -85 sand.pd;
-#X connect 1 0 14 0;
-#X connect 2 0 45 0;
-#X connect 2 1 16 0;
-#X connect 3 0 12 0;
-#X connect 4 0 24 0;
-#X connect 6 0 69 0;
-#X connect 7 0 53 0;
-#X connect 8 0 9 0;
-#X connect 9 0 15 0;
-#X connect 9 1 35 0;
-#X connect 10 0 11 0;
-#X connect 10 1 25 0;
-#X connect 11 0 35 1;
-#X connect 12 0 17 0;
-#X connect 13 0 2 0;
-#X connect 14 0 29 0;
-#X connect 15 0 28 0;
-#X connect 15 1 60 0;
-#X connect 17 0 7 0;
-#X connect 18 0 25 1;
+#X text 0 -12 Copyright 2002 Mathieu Bouchard;
+#X text 0 -25 sand.pd;
+#X text -1 21 set size & reset;
+#X obj 2 295 #clip;
+#X obj 26 249 # << 0;
+#X connect 1 0 43 0;
+#X connect 1 1 14 0;
+#X connect 2 0 11 0;
+#X connect 3 0 22 0;
+#X connect 5 0 65 0;
+#X connect 6 0 50 0;
+#X connect 7 0 8 0;
+#X connect 8 0 13 0;
+#X connect 8 1 33 0;
+#X connect 9 0 10 0;
+#X connect 9 1 23 0;
+#X connect 10 0 33 1;
+#X connect 11 0 15 0;
+#X connect 12 0 1 0;
+#X connect 13 0 26 0;
+#X connect 13 1 57 0;
+#X connect 15 0 6 0;
+#X connect 16 0 23 1;
+#X connect 17 0 35 0;
+#X connect 18 0 52 0;
#X connect 19 0 37 0;
-#X connect 20 0 55 0;
-#X connect 21 0 39 0;
-#X connect 22 1 21 0;
-#X connect 22 1 66 0;
-#X connect 23 0 15 1;
-#X connect 24 0 54 0;
-#X connect 25 0 9 1;
-#X connect 26 0 1 0;
-#X connect 27 0 10 0;
-#X connect 28 0 60 0;
-#X connect 29 0 52 0;
-#X connect 30 0 67 0;
-#X connect 30 1 68 0;
-#X connect 30 2 63 0;
-#X connect 32 0 8 0;
-#X connect 34 0 60 0;
-#X connect 35 0 15 0;
-#X connect 36 0 19 0;
-#X connect 36 0 3 0;
-#X connect 37 0 4 0;
-#X connect 38 0 2 0;
-#X connect 39 0 20 0;
-#X connect 40 0 26 0;
-#X connect 41 0 29 0;
-#X connect 42 0 9 1;
-#X connect 45 0 59 0;
-#X connect 47 0 1 0;
-#X connect 48 0 31 0;
-#X connect 49 0 22 1;
-#X connect 51 0 30 1;
-#X connect 52 0 48 0;
-#X connect 52 0 5 0;
-#X connect 59 0 30 0;
-#X connect 59 1 8 1;
+#X connect 20 1 19 0;
+#X connect 20 1 63 0;
+#X connect 21 0 13 1;
+#X connect 22 0 51 0;
+#X connect 23 0 8 1;
+#X connect 24 0 73 0;
+#X connect 25 0 9 0;
+#X connect 26 0 57 0;
+#X connect 27 0 49 0;
+#X connect 28 0 64 0;
+#X connect 28 1 74 0;
+#X connect 28 2 60 0;
+#X connect 30 0 7 0;
+#X connect 32 0 57 0;
+#X connect 33 0 13 0;
+#X connect 34 0 17 0;
+#X connect 34 0 2 0;
+#X connect 35 0 3 0;
+#X connect 36 0 1 0;
+#X connect 37 0 18 0;
+#X connect 38 0 24 0;
+#X connect 39 0 27 0;
+#X connect 40 0 8 1;
+#X connect 43 0 56 0;
+#X connect 44 0 73 0;
+#X connect 45 0 29 0;
+#X connect 46 0 20 1;
+#X connect 48 0 28 1;
+#X connect 49 0 45 0;
+#X connect 49 0 4 0;
+#X connect 56 0 28 0;
+#X connect 56 1 7 1;
+#X connect 57 0 56 0;
+#X connect 57 1 20 0;
+#X connect 58 0 39 0;
+#X connect 59 0 58 0;
#X connect 60 0 59 0;
-#X connect 60 1 22 0;
-#X connect 61 0 41 0;
-#X connect 62 0 61 0;
-#X connect 63 0 62 0;
+#X connect 61 0 36 0;
+#X connect 63 0 34 1;
+#X connect 63 1 34 0;
#X connect 64 0 38 0;
-#X connect 66 0 36 1;
-#X connect 66 1 36 0;
-#X connect 67 0 40 0;
-#X connect 68 0 47 0;
-#X connect 69 0 8 0;
+#X connect 65 0 7 0;
+#X connect 73 0 27 0;
+#X connect 74 0 44 0;
diff --git a/externals/gridflow/pd_examples/scratch_video.pd b/externals/gridflow/pd_examples/scratch_video.pd
index c322b745..d7a38e7e 100644
--- a/externals/gridflow/pd_examples/scratch_video.pd
+++ b/externals/gridflow/pd_examples/scratch_video.pd
@@ -1,29 +1,28 @@
-#N canvas 622 70 580 592 10;
-#X obj 109 21 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 1 1
+#N canvas 503 45 580 510 10;
+#X obj 109 94 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 0 1
;
-#X obj 109 329 listelement 1;
-#X floatatom 109 352 5 0 0 0 - - -;
-#X floatatom 132 244 5 0 0 0 - - -;
-#X obj 109 305 route position;
-#X obj 109 221 #in;
-#X msg 142 167 open /home/alx/Documents/images/videos/bus_1.mov;
-#X obj 112 391 hsl 128 15 1 320 0 0 empty empty empty -2 -6 0 8 -260818
--1 -1 3145 1;
-#X obj -13 -85 cnv 15 580 30 empty empty empty 20 12 0 14 -233017 -66577
+#X obj 109 352 listelement 1;
+#X floatatom 109 371 5 0 0 0 - - -;
+#X floatatom 132 279 5 0 0 0 - - -;
+#X obj 109 333 route position;
+#X obj 109 256 #in;
+#X msg 142 202 open /home/alx/Documents/images/videos/bus_1.mov;
+#X obj 112 410 hsl 128 15 1 320 0 0 empty empty empty -2 -6 0 8 -260818
+-1 -1 0 1;
+#X obj -13 0 cnv 15 580 30 empty empty empty 20 12 0 14 -233017 -66577
0;
-#X obj -16 472 cnv 15 580 30 empty empty empty 20 12 0 14 -200249 -66577
+#X obj -16 477 cnv 15 580 30 empty empty empty 20 12 0 14 -200249 -66577
0;
-#X text 16 476 GridFlow 0.8.0;
-#X text 16 476 GridFlow 0.8.0;
-#X text 0 -85 traveling.pd;
-#X text 0 -72 Copyright 2003 Alexandre Castonguay;
-#X text -1 -34 Use the mouse position to scratch the video \, a touchscreen
+#X text 16 484 GridFlow 0.8.0;
+#X text 16 484 GridFlow 0.8.0;
+#X text 0 13 Copyright 2003 Alexandre Castonguay;
+#X text 2 52 Use the mouse position to scratch the video \, a touchscreen
works well.;
#N canvas 0 0 450 300 decide_framerate 0;
#X obj 6 56 - 160;
#X floatatom 6 80 5 0 0 0 - - -;
#X obj 55 122 hsl 128 15 20 150 0 0 empty empty empty -2 -6 0 8 -24198
--1 -1 5862 1;
+-1 -1 0 1;
#X obj 6 99 abs;
#X floatatom 6 142 5 0 0 0 - - -;
#X obj 6 121 / 3;
@@ -44,81 +43,79 @@ works well.;
#X connect 8 0 7 0;
#X connect 9 0 6 0;
#X connect 10 0 0 0;
-#X restore 257 390 pd decide_framerate;
-#X obj 257 414 s framerate;
-#X obj 181 31 r framerate;
-#X obj 109 279 #out window;
-#X text 176 242 <-- frame number;
-#X text 213 328 <-- get x values;
-#X text 142 184 load your own until we get a bundled video for the
+#X restore 257 409 pd decide_framerate;
+#X obj 257 433 s framerate;
+#X obj 188 92 r framerate;
+#X obj 109 314 #out window;
+#X text 176 277 <-- frame number;
+#X text 213 351 <-- get x values;
+#X text 142 219 load your own until we get a bundled video for the
docs;
-#X text 142 197 this one is 320 x 240;
-#N canvas 0 0 450 300 frame_count 1;
-#X msg 103 112 1;
-#X floatatom 103 168 5 0 0 0 - - -;
-#X obj 153 153 float \$1;
-#X obj 103 86 shunt 2;
-#X msg 173 69 1;
-#X msg 173 46 0;
-#X obj 103 140 + 1;
-#X msg 147 112 -1;
-#X msg 208 109 0;
-#X obj 46 -34 inlet;
-#X obj 231 68 inlet;
-#X obj 113 212 outlet;
-#X floatatom 147 -41 5 0 0 0 - - -;
-#X obj 147 -19 > 160;
-#X floatatom 147 8 5 0 0 0 - - -;
-#X text 192 -20 <-- is the direction left or right on a width of 320
+#X text 142 232 this one is 320 x 240;
+#N canvas 94 214 571 216 frame_count 0;
+#X msg 16 -5 1;
+#X floatatom 16 50 5 0 0 0 - - -;
+#X obj 48 30 float \$1;
+#X obj 16 -24 shunt 2;
+#X obj 16 30 + 1;
+#X msg 60 -5 -1;
+#X msg 111 49 0;
+#X obj 16 -54 inlet;
+#X obj 111 30 inlet;
+#X obj 16 102 outlet;
+#X floatatom 100 -38 5 0 0 0 - - -;
+#X obj 100 -22 > 160;
+#X text 145 -23 <-- is the direction left or right on a width of 320
pixels;
-#X text 242 109 <-- reset;
-#X obj 147 -64 r position;
-#X connect 0 0 6 0;
+#X text 145 49 <-- reset;
+#X obj 100 -57 r position;
+#X obj 100 -3 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
+;
+#X connect 0 0 4 0;
#X connect 1 0 2 0;
-#X connect 1 0 11 0;
-#X connect 2 0 6 1;
+#X connect 1 0 9 0;
+#X connect 2 0 4 1;
#X connect 3 0 0 0;
-#X connect 3 1 7 0;
-#X connect 4 0 3 1;
-#X connect 5 0 3 1;
+#X connect 3 1 5 0;
+#X connect 4 0 1 0;
+#X connect 5 0 4 0;
#X connect 6 0 1 0;
-#X connect 7 0 6 0;
-#X connect 8 0 1 0;
-#X connect 9 0 3 0;
-#X connect 10 0 8 0;
-#X connect 12 0 13 0;
-#X connect 13 0 14 0;
-#X connect 14 0 3 1;
-#X connect 17 0 12 0;
-#X restore 109 113 pd frame_count;
-#X obj 202 86 bng 15 250 50 0 empty empty empty 0 -6 0 8 -241291 -1
+#X connect 7 0 3 0;
+#X connect 8 0 6 0;
+#X connect 10 0 11 0;
+#X connect 11 0 15 0;
+#X connect 14 0 10 0;
+#X connect 15 0 3 1;
+#X restore 109 168 pd frame_count;
+#X obj 202 141 bng 15 250 50 0 empty empty empty 0 -6 0 8 -241291 -1
-1;
-#X text 226 85 <-- reset;
-#X obj 13 391 s position;
-#X msg 314 230 loop 1;
-#X obj 206 266 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+#X text 226 140 <-- reset;
+#X obj 93 433 s position;
+#X msg 314 265 loop 1;
+#X obj 206 301 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
-#X obj 224 62 r loopit;
-#X obj 236 264 print loopit;
-#X obj 109 56 metro 100.33;
-#X obj 71 175 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+#X obj 330 146 r loopit;
+#X obj 236 299 print loopit;
+#X obj 109 111 metro 100.33;
+#X obj 91 257 bng 15 250 50 0 empty empty empty 0 -6 0 8 -24198 -1
-1;
-#X connect 0 0 31 0;
+#X text 0 0 scratch_video.pd;
+#X connect 0 0 30 0;
#X connect 1 0 2 0;
#X connect 2 0 7 0;
-#X connect 2 0 15 0;
-#X connect 2 0 26 0;
+#X connect 2 0 14 0;
+#X connect 2 0 25 0;
#X connect 4 0 1 0;
-#X connect 5 0 18 0;
+#X connect 5 0 17 0;
#X connect 5 1 3 0;
-#X connect 5 1 28 0;
+#X connect 5 1 27 0;
#X connect 6 0 5 0;
-#X connect 15 0 16 0;
-#X connect 17 0 31 1;
-#X connect 18 0 4 0;
-#X connect 23 0 5 0;
-#X connect 24 0 23 1;
-#X connect 27 0 5 0;
-#X connect 28 0 30 0;
-#X connect 31 0 23 0;
-#X connect 32 0 5 0;
+#X connect 14 0 15 0;
+#X connect 16 0 30 1;
+#X connect 17 0 4 0;
+#X connect 22 0 5 0;
+#X connect 23 0 22 1;
+#X connect 26 0 5 0;
+#X connect 27 0 29 0;
+#X connect 30 0 22 0;
+#X connect 31 0 5 0;
diff --git a/externals/gridflow/pd_examples/spectrogram.pd b/externals/gridflow/pd_examples/spectrogram.pd
index ff9f55e7..fb6730d2 100644
--- a/externals/gridflow/pd_examples/spectrogram.pd
+++ b/externals/gridflow/pd_examples/spectrogram.pd
@@ -1,14 +1,13 @@
-#N canvas 695 85 580 565 10;
-#X msg 143 149 reset;
-#X obj 27 -34 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 1 1
+#N canvas 370 65 588 508 10;
+#X msg 147 208 reset;
+#X obj 21 50 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 0 1;
+#X obj 297 54 adc~;
+#X obj 38 170 tabread4 array1;
+#X obj 21 69 bng 15 250 50 0 empty empty empty 0 -6 0 8 -24198 -1 -1
;
-#X obj 316 -15 adc~;
-#X obj 28 110 tabread4 array1;
-#X obj 7 10 bng 15 250 50 0 empty empty empty 0 -6 0 8 -24198 -1 -1
-;
-#X obj 351 -14 table array1 1024;
-#X obj 290 138 loadbang;
-#X obj 270 140 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+#X obj 332 55 table array1 1024;
+#X obj 208 212 loadbang;
+#X obj 191 214 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#N canvas 0 0 306 167 analysis 0;
#X obj 24 -205 inlet~;
@@ -20,90 +19,90 @@
#X connect 2 0 3 0;
#X connect 2 1 3 1;
#X connect 3 0 1 0;
-#X restore 317 8 pd analysis;
-#X obj 30 210 demux 2;
-#X obj 373 186 vradio 15 1 0 2 empty empty empty 0 -6 0 8 -241291 -1
--1 1;
-#X obj 242 226 loadbang;
-#X obj 219 225 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+#X restore 298 77 pd analysis;
+#X obj 284 256 vradio 15 1 0 2 empty empty empty 0 -6 0 8 -241291 -1
+-1 0;
+#X obj 190 291 loadbang;
+#X obj 173 293 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
-#X obj 27 34 for 0 320 1;
-#X obj 29 129 * 2000;
-#X text 392 187 black stripes;
-#X text 391 200 graph;
-#X obj 28 77 / 2;
-#X text 77 129 <-- adding some extra gain;
-#X obj 88 88 exp;
-#X obj 28 55 demux 2;
-#X obj 173 46 vradio 15 1 0 2 empty empty empty 0 -6 0 8 -241291 -1
+#X obj 38 68 for 0 320 1;
+#X obj 38 189 * 2000;
+#X text 303 257 black stripes;
+#X text 302 270 graph;
+#X obj 38 117 / 2;
+#X text 83 189 <-- adding some extra gain;
+#X obj 81 138 exp;
+#X obj 194 136 vradio 15 1 0 2 empty empty empty 0 -6 0 8 -241291 -1
-1 0;
-#X text 195 46 linear;
-#X text 193 60 logarithmic;
-#X obj 89 67 / 51;
-#X obj 31 331 #fade;
-#X obj 123 332 loadbang;
-#X msg 72 331 16 4 1;
-#X obj 27 -9 metro 23.22;
-#X text 115 26 = 1000*1024/44100;
-#X obj 29 149 #import ( 320 );
-#X obj 29 169 # *>>8;
-#X obj 30 190 #fade 2;
-#X obj 30 249 # inv+ 255;
-#X obj 105 222 #outer <;
-#X obj 105 241 # * 255;
-#X obj 105 261 #transpose;
-#X obj 30 287 #redim (120 320 1);
-#X obj 31 309 #greyscale_to_rgb;
-#X obj 31 353 #clip;
-#X obj 31 375 #scale_by 2;
-#X obj 31 404 #out window;
-#X obj -15 449 cnv 15 580 30 empty empty empty 20 12 0 14 -200249 -66577
+#X text 216 136 linear;
+#X text 214 150 logarithmic;
+#X obj 82 117 / 51;
+#X obj 38 395 #fade;
+#X obj 130 396 loadbang;
+#X msg 79 395 16 4 1;
+#X obj 38 49 metro 23.22;
+#X text 115 117 = 1000*1024/44100;
+#X obj 38 208 #import ( 320 );
+#X obj 38 227 # *>>8;
+#X obj 38 246 #fade 2;
+#X obj 38 309 # inv+ 255;
+#X obj 113 292 #outer <;
+#X obj 113 311 # * 255;
+#X obj 113 330 #transpose;
+#X obj 38 357 #redim (120 320 1);
+#X obj 38 376 #greyscale_to_rgb;
+#X obj 38 414 #clip;
+#X obj 38 433 #scale_by 2;
+#X obj 38 452 #out window;
+#X obj 6 476 cnv 15 580 30 empty empty empty 20 12 0 14 -200249 -66577
0;
-#X text -7 456 GridFlow 0.8.0;
-#X text -7 456 GridFlow 0.8.0;
-#X obj -15 -85 cnv 15 580 30 empty empty empty 20 12 0 14 -233017 -66577
+#X text 14 483 GridFlow 0.8.0;
+#X text 14 483 GridFlow 0.8.0;
+#X obj 6 5 cnv 15 580 30 empty empty empty 20 12 0 14 -233017 -66577
0;
-#X text -2 -72 Copyright 2002 Mathieu Bouchard;
-#X text -2 -85 spectrogram.pd;
-#X obj 219 245 #for 120 0 -1;
-#X obj 270 161 #for 0 320 1;
-#X obj 270 184 # + 10;
-#X connect 0 0 30 0;
-#X connect 1 0 28 0;
+#X text 19 5 spectrogram.pd;
+#X obj 173 310 #for 120 0 -1;
+#X obj 191 231 #for 0 320 1;
+#X obj 191 250 # + 10;
+#X text 19 18 Copyright 2004 Mathieu Bouchard;
+#X obj 38 91 shunt 2;
+#X obj 38 265 shunt 2;
+#X connect 0 0 28 0;
+#X connect 1 0 26 0;
#X connect 2 0 8 0;
#X connect 2 1 8 0;
-#X connect 3 0 14 0;
-#X connect 4 0 13 0;
+#X connect 3 0 13 0;
+#X connect 4 0 12 0;
#X connect 6 0 7 0;
-#X connect 7 0 49 0;
-#X connect 9 0 33 0;
-#X connect 9 1 34 0;
-#X connect 10 0 9 1;
-#X connect 11 0 12 0;
-#X connect 12 0 48 0;
-#X connect 13 0 20 0;
-#X connect 14 0 30 0;
-#X connect 17 0 3 0;
-#X connect 19 0 3 0;
-#X connect 20 0 17 0;
-#X connect 20 1 24 0;
-#X connect 21 0 20 1;
-#X connect 24 0 19 0;
-#X connect 25 0 39 0;
-#X connect 26 0 27 0;
-#X connect 27 0 25 1;
-#X connect 28 0 13 0;
-#X connect 30 0 31 0;
-#X connect 31 0 32 0;
-#X connect 32 0 9 0;
-#X connect 33 0 37 0;
+#X connect 7 0 46 0;
+#X connect 9 0 50 1;
+#X connect 10 0 11 0;
+#X connect 11 0 45 0;
+#X connect 12 0 49 0;
+#X connect 13 0 28 0;
+#X connect 16 0 3 0;
+#X connect 18 0 3 0;
+#X connect 19 0 49 1;
+#X connect 22 0 18 0;
+#X connect 23 0 37 0;
+#X connect 24 0 25 0;
+#X connect 25 0 23 1;
+#X connect 26 0 12 0;
+#X connect 28 0 29 0;
+#X connect 29 0 30 0;
+#X connect 30 0 50 0;
+#X connect 31 0 35 0;
+#X connect 32 0 33 0;
+#X connect 33 0 34 0;
#X connect 34 0 35 0;
#X connect 35 0 36 0;
-#X connect 36 0 37 0;
+#X connect 36 0 23 0;
#X connect 37 0 38 0;
-#X connect 38 0 25 0;
-#X connect 39 0 40 0;
-#X connect 40 0 41 0;
-#X connect 48 0 34 1;
-#X connect 49 0 50 0;
-#X connect 50 0 31 1;
+#X connect 38 0 39 0;
+#X connect 45 0 32 1;
+#X connect 46 0 47 0;
+#X connect 47 0 29 1;
+#X connect 49 0 16 0;
+#X connect 49 1 22 0;
+#X connect 50 0 31 0;
+#X connect 50 1 32 0;
diff --git a/externals/gridflow/pd_examples/threshold.pd b/externals/gridflow/pd_examples/threshold.pd
index 4a609930..0b90b07f 100644
--- a/externals/gridflow/pd_examples/threshold.pd
+++ b/externals/gridflow/pd_examples/threshold.pd
@@ -1,81 +1,78 @@
-#N canvas 720 79 579 617 10;
-#X obj 40 121 @ -;
-#X obj 40 144 @ max 0;
-#X obj 40 167 @ ||;
-#X obj 40 190 @ +;
-#X obj 99 143 inv+ 0;
-#X obj 40 -33 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 0 1
+#N canvas 660 79 581 531 10;
+#X obj 72 208 inv+ 0;
+#X obj 40 8 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 0 1;
+#X obj 99 57 tgl 15 0 empty empty empty 0 -6 0 8 -241291 -1 -1 0 1
;
-#X obj 95 56 tgl 15 0 empty empty empty 0 -6 0 8 -241291 -1 -1 0 1
-;
-#X floatatom 251 270 5 0 0 0 - - -;
-#X obj 251 137 vsl 15 128 0 256 0 0 empty empty empty 0 -8 0 8 -260818
+#X floatatom 124 224 5 0 0 0 - - -;
+#X obj 124 91 vsl 15 128 0 256 0 0 empty empty empty 0 -8 0 8 -260818
-1 -1 0 1;
-#X obj 40 55 shunt 2;
-#X obj 40 448 @out window;
-#X text 6 100 simple per-channel threshold;
-#X text 316 102 bluescreen luma threshold;
-#X text 381 255 here we have a mask;
-#X text 361 267 (alpha as separate image);
-#X obj 327 356 @join 2;
-#X text 386 295 make a RGBA image;
-#X obj 310 137 t b a a;
-#X text 218 398 = medium blue;
-#X obj 297 290 t a a;
-#X obj 131 449 fps;
-#X floatatom 161 451 5 0 0 0 - - -;
-#X obj 40 9 metro 100;
-#X msg 70 397 240 320 3 # 0 0 170;
-#X text 386 333 won't be necessary;
-#X text 319 117 with alpha channel;
-#X text 13 368 you could also load a picture;
-#X text 13 380 instead of using uniform blue;
-#X text 58 -31 1000/100 = 10 fps (max) (adjustable);
-#X text 281 22 see also color_detect.pd;
-#X obj 40 33 #camera;
-#X obj -13 -86 cnv 15 580 30 empty empty empty 20 12 0 14 -233017 -66577
+#X obj 40 67 shunt 2;
+#X text 7 104 simple per-channel threshold;
+#X text 276 53 bluescreen luma threshold;
+#X text 340 195 here we have a mask;
+#X text 320 207 (alpha as separate image);
+#X obj 257 278 @join 2;
+#X text 346 226 make a RGBA image;
+#X obj 270 88 t b a a;
+#X text 210 379 = medium blue;
+#X obj 257 221 t a a;
+#X obj 121 416 fps;
+#X floatatom 146 418 5 0 0 0 - - -;
+#X obj 40 29 metro 100;
+#X msg 70 378 240 320 3 # 0 0 170;
+#X text 279 68 with alpha channel;
+#X text 13 349 you could also load a picture;
+#X text 13 361 instead of using uniform blue;
+#X text 58 10 1000/100 = 10 fps (max) (adjustable);
+#X obj 40 48 #camera;
+#X obj -13 -45 cnv 15 580 30 empty empty empty 20 12 0 14 -233017 -66577
0;
-#X text 0 -73 Copyright 2002 Mathieu Bouchard;
-#X obj -15 499 cnv 15 580 30 empty empty empty 20 12 0 14 -200249 -66577
+#X text 0 -32 Copyright 2002 Mathieu Bouchard;
+#X obj -15 450 cnv 15 580 30 empty empty empty 20 12 0 14 -200249 -66577
0;
-#X text -7 506 GridFlow 0.8.0;
-#X text -7 506 GridFlow 0.8.0;
-#X text 0 -86 threshold.pd;
-#X obj 290 335 #store;
-#X obj 290 314 #finished;
-#X obj 354 204 # * 255;
-#X obj 354 181 # >=;
-#X obj 354 162 #rgb_to_greyscale;
-#X text 384 320 this silly #finished;
-#X text 388 347 in GridFlow 1;
-#X obj 70 425 #draw_image put \, alpha 1;
-#X connect 0 0 1 0;
-#X connect 1 0 2 0;
-#X connect 2 0 3 0;
-#X connect 3 0 10 0;
-#X connect 4 0 2 1;
-#X connect 5 0 22 0;
-#X connect 6 0 9 1;
-#X connect 7 0 0 1;
-#X connect 7 0 4 0;
-#X connect 7 0 3 1;
-#X connect 7 0 40 1;
-#X connect 8 0 7 0;
-#X connect 9 0 0 0;
-#X connect 9 1 17 0;
-#X connect 10 0 20 0;
+#X text -7 457 GridFlow 0.8.0;
+#X text -7 457 GridFlow 0.8.0;
+#X text 0 -45 threshold.pd;
+#X obj 257 259 #store;
+#X obj 257 240 #finished;
+#X obj 314 145 # * 255;
+#X obj 314 126 # >=;
+#X obj 314 107 #rgb_to_greyscale;
+#X obj 70 397 #draw_image put \, alpha 1;
+#X obj 40 166 # -;
+#X obj 40 185 # max 0;
+#X obj 40 208 # ||;
+#X obj 40 227 # +;
+#X obj 40 416 #out window;
+#X text 387 -38 see also color_detect.pd;
+#X connect 0 0 38 1;
+#X connect 1 0 17 0;
+#X connect 2 0 5 1;
+#X connect 3 0 0 0;
+#X connect 3 0 33 1;
+#X connect 3 0 36 1;
+#X connect 3 0 39 1;
+#X connect 4 0 3 0;
+#X connect 5 0 36 0;
+#X connect 5 1 12 0;
+#X connect 10 0 35 1;
+#X connect 12 0 18 0;
+#X connect 12 1 14 0;
+#X connect 12 2 34 0;
+#X connect 14 0 31 0;
+#X connect 14 1 30 1;
+#X connect 15 0 16 0;
#X connect 17 0 23 0;
-#X connect 17 1 19 0;
-#X connect 17 2 41 0;
-#X connect 19 0 38 0;
-#X connect 19 1 37 1;
-#X connect 20 0 21 0;
-#X connect 22 0 30 0;
-#X connect 23 0 44 0;
-#X connect 30 0 9 0;
-#X connect 37 0 15 0;
-#X connect 38 0 37 0;
-#X connect 39 0 15 1;
-#X connect 40 0 39 0;
-#X connect 41 0 40 0;
-#X connect 44 0 10 0;
+#X connect 18 0 35 0;
+#X connect 23 0 5 0;
+#X connect 30 0 10 0;
+#X connect 31 0 30 0;
+#X connect 32 0 10 1;
+#X connect 33 0 32 0;
+#X connect 34 0 33 0;
+#X connect 35 0 40 0;
+#X connect 36 0 37 0;
+#X connect 37 0 38 0;
+#X connect 38 0 39 0;
+#X connect 39 0 40 0;
+#X connect 40 0 15 0;
diff --git a/externals/gridflow/pd_examples/transform.pd b/externals/gridflow/pd_examples/transform.pd
index a4d5b653..d8785933 100644
--- a/externals/gridflow/pd_examples/transform.pd
+++ b/externals/gridflow/pd_examples/transform.pd
@@ -1,21 +1,21 @@
#N canvas 726 225 674 481 10;
-#X obj 146 296 #remap_image;
-#X obj 146 381 #out window;
-#X obj 125 94 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 0 1
+#X obj 136 286 #remap_image;
+#X obj 136 324 #out window;
+#X obj 125 103 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 1 1
;
#X obj 294 376 # -;
#X obj 294 202 t a a a;
-#X obj 380 273 # % 2;
-#X obj 380 297 # * -2;
-#X obj 380 318 # + 1;
-#X obj 316 342 # *;
-#X obj 425 245 # / 2;
-#X obj 428 184 hsl 128 15 0 127 0 0 empty empty empty -2 -6 0 8 -261681
--1 -1 12700 1;
-#X obj 316 301 # -;
-#X obj 425 207 t f;
+#X obj 356 261 # % 2;
+#X obj 356 280 # * -2;
+#X obj 356 299 # + 1;
+#X obj 316 300 # *;
+#X obj 403 230 # / 2;
+#X obj 377 167 hsl 128 15 0 127 0 0 empty empty empty -2 -6 0 8 -261681
+-1 -1 0 1;
+#X obj 316 281 # -;
+#X obj 374 190 t f;
#X obj 316 262 # %;
-#X obj 380 248 # /;
+#X obj 356 242 # /;
#X obj 186 214 #camera;
#X obj 125 120 metro 10;
#X obj 8 442 cnv 15 720 30 empty empty empty 20 12 0 14 -200249 -66577
@@ -27,13 +27,13 @@
0;
#X text 4 -2 Transform.pd;
#X obj 95 215 #in r001.jpg;
-#X obj 125 155 shunt;
-#X obj 176 155 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
+#X obj 125 139 shunt;
+#X obj 164 140 tgl 15 0 empty empty empty 0 -6 0 8 -241291 -1 -1 0
1;
#X text 68 32 By Mathieu Bouchard \, based on Clifford Smith's 'Transform'
effect that is part of Fukuchi Kentaro's EffecTV : http://effectv.sourceforge.net
;
-#X text 199 153 <-- choose from a still image or camera input;
+#X text 187 138 <-- choose from a still image or camera input;
#X connect 0 0 1 0;
#X connect 0 1 4 0;
#X connect 2 0 16 0;
diff --git a/externals/gridflow/pd_examples/videodev_effects.pd b/externals/gridflow/pd_examples/videodev_effects.pd
index b11f026f..36782931 100644
--- a/externals/gridflow/pd_examples/videodev_effects.pd
+++ b/externals/gridflow/pd_examples/videodev_effects.pd
@@ -1,7 +1,7 @@
-#N canvas 106 79 569 546 10;
-#X obj 86 397 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1
+#N canvas 522 50 597 660 10;
+#X obj 85 386 tgl 15 0 empty empty empty 0 -6 0 8 -241291 -1 -1 0 1
;
-#X obj 72 149 # max 0;
+#X obj 71 138 # max 0;
#N canvas 52 305 399 248 motion 0;
#X obj 60 49 inlet;
#X obj 60 72 # +;
@@ -21,24 +21,25 @@
#X connect 4 1 9 0;
#X connect 8 0 4 0;
#X connect 9 0 1 1;
-#X restore 130 218 pd motion fade;
-#X obj 28 263 shunt 2;
-#X obj 72 69 #downscale_by 2 smoothly;
-#X obj 28 398 shunt 2;
-#X obj 82 265 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
+#X restore 129 207 pd motion fade;
+#X obj 27 252 shunt 2;
+#X obj 71 58 #downscale_by 2 smoothly;
+#X obj 27 387 shunt 2;
+#X obj 81 254 tgl 15 0 empty empty empty 0 -6 0 8 -241291 -1 -1 0 1
;
-#X obj 87 88 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
+#X obj 86 77 tgl 15 0 empty empty empty 0 -6 0 8 -241291 -1 -1 0 1
;
-#X obj 8 7 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1;
-#X obj 316 261 fork;
-#X obj 28 48 shunt 2;
-#X msg 286 243 256;
-#X obj 28 474 #out window;
-#X obj 84 49 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
+#X obj 26 -36 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 0 1
;
-#X obj 28 515 print;
-#X obj 285 284 #for 0 256 1;
-#X floatatom 316 242 5 0 0 0 - - -;
+#X obj 315 250 fork;
+#X obj 27 37 shunt 2;
+#X msg 285 232 256;
+#X obj 27 463 #out window;
+#X obj 83 38 tgl 15 0 empty empty empty 0 -6 0 8 -241291 -1 -1 0 1
+;
+#X obj 27 504 print;
+#X obj 284 273 #for 0 256 1;
+#X floatatom 315 231 5 0 0 0 - - -;
#N canvas 67 462 236 230 detect 0;
#X obj 66 59 # * ( -1 -1 2 );
#X obj 66 171 # max 0;
@@ -53,19 +54,19 @@
#X connect 3 0 5 0;
#X connect 4 0 3 0;
#X connect 6 0 1 0;
-#X restore 437 236 pd detect blue;
-#X obj 72 285 #outer ignore ( 0 );
-#X obj 103 131 hsl 128 15 0 127 0 0 empty empty empty -2 -6 0 8 -262144
--1 -1 5700 1;
-#X obj 28 189 shunt 2;
-#X obj 170 335 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
+#X restore 436 225 pd detect blue;
+#X obj 71 274 #outer ignore ( 0 );
+#X obj 102 120 hsl 128 15 0 127 0 0 empty empty empty -2 -6 0 8 -260818
+-1 -1 0 1;
+#X obj 27 178 shunt 2;
+#X obj 169 324 tgl 15 0 empty empty empty 0 -6 0 8 -241291 -1 -1 0
1;
-#X obj 28 335 shunt 2;
-#X obj 28 495 fps detailed;
-#X obj 286 223 loadbang;
-#X obj 87 335 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
+#X obj 27 324 shunt 2;
+#X obj 27 484 fps detailed;
+#X obj 285 212 loadbang;
+#X obj 86 324 tgl 15 0 empty empty empty 0 -6 0 8 -241291 -1 -1 0 1
;
-#X obj 72 307 #store;
+#X obj 71 296 #store;
#N canvas 81 205 480 500 sort 0;
#X obj 10 305 # * ( 1 0 );
#X obj 180 260 # * 255;
@@ -142,13 +143,13 @@
#X connect 30 0 7 1;
#X connect 31 0 27 0;
#X connect 31 0 30 0;
-#X restore 87 355 pd sort me out;
-#X obj 285 304 # gamma;
-#X obj 72 129 # -;
-#X obj 82 191 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
+#X restore 86 344 pd sort me out;
+#X obj 284 293 # gamma;
+#X obj 71 118 # -;
+#X obj 81 180 tgl 15 0 empty empty empty 0 -6 0 8 -241291 -1 -1 0 1
;
-#X text 74 238 enable gamma correction;
-#X obj 285 266 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+#X text 73 227 enable gamma correction;
+#X obj 284 255 bng 15 250 50 0 empty empty empty 0 -6 0 8 -241291 -1
-1;
#N canvas 372 198 399 273 motion 0;
#X obj 15 113 # << 2;
@@ -180,10 +181,10 @@
#X connect 11 0 10 1;
#X connect 12 0 13 1;
#X connect 13 0 3 1;
-#X restore 72 109 pd motion detection;
-#X obj 105 335 hradio 15 1 0 4 empty empty empty 0 -6 0 8 -262144 -1
+#X restore 71 98 pd motion detection;
+#X obj 104 324 hradio 15 1 0 4 empty empty empty 0 -6 0 8 -241291 -1
-1 0;
-#X text 126 149 noise reduction (on find-edges only);
+#X text 125 138 noise reduction (on find-edges only);
#N canvas 67 462 236 230 detect 0;
#X obj 66 171 # max 0;
#X obj 66 31 inlet;
@@ -198,18 +199,18 @@
#X connect 3 0 2 0;
#X connect 5 0 0 0;
#X connect 6 0 5 0;
-#X restore 437 217 pd detect red;
-#X obj 27 8 metro 33.3667;
-#X obj 28 69 t a a;
-#X text 101 49 Smaller Picture;
-#X obj 28 89 shunt 2;
-#X obj 211 96 vradio 15 1 0 2 empty empty empty 0 -6 0 8 -262144 -1
+#X restore 436 206 pd detect red;
+#X obj 26 -8 metro 33.3667;
+#X obj 27 58 t a a;
+#X text 100 38 Smaller Picture;
+#X obj 27 78 shunt 2;
+#X obj 210 85 vradio 15 1 0 2 empty empty empty 0 -6 0 8 -241291 -1
-1 0;
-#X obj 163 427 #centroid;
-#X obj 163 448 #export_list;
-#X floatatom 165 487 5 0 0 0 - - -;
-#X obj 164 467 unpack 0 0;
-#X floatatom 229 487 5 0 0 0 - - -;
+#X obj 162 416 #centroid;
+#X obj 162 437 #export_list;
+#X floatatom 164 476 5 0 0 0 - - -;
+#X obj 163 456 unpack 0 0;
+#X floatatom 228 476 5 0 0 0 - - -;
#N canvas 639 147 477 267 crosshair 0;
#X obj 12 224 outlet;
#X obj 12 9 inlet;
@@ -230,22 +231,31 @@
#X connect 6 0 8 0;
#X connect 7 0 6 0;
#X connect 8 0 4 0;
-#X restore 72 428 pd crosshair;
-#X msg 128 8 open dc1394;
-#X msg 217 9 open mpeg file images/movies/washington_zoom_in.mpeg;
-#X msg 217 29 open xine images/movies/washington_zoom_in.mpeg;
-#X obj 28 27 #camera;
-#X obj 186 30 #in;
-#X obj 104 192 #fade;
-#X msg 145 194 32 16 4;
-#X obj 28 450 t a;
-#X text 231 110 emboss;
-#X text 230 96 hilite;
-#X text 110 397 designed to work with "hilite" above;
-#X obj 281 96 vradio 15 1 0 2 empty empty empty 0 -6 0 8 -262144 -1
+#X restore 71 417 pd crosshair;
+#X msg 127 -9 open dc1394;
+#X msg 216 -8 open mpeg file images/movies/washington_zoom_in.mpeg
+;
+#X msg 216 12 open xine images/movies/washington_zoom_in.mpeg;
+#X obj 27 16 #camera;
+#X obj 185 13 #in;
+#X obj 103 181 #fade;
+#X msg 144 181 32 16 4;
+#X obj 27 439 t a;
+#X text 230 99 emboss;
+#X text 229 85 hilite;
+#X text 109 386 designed to work with "hilite" above;
+#X obj 280 85 vradio 15 1 0 2 empty empty empty 0 -6 0 8 -241291 -1
-1 0;
-#X text 300 96 motion;
-#X text 301 110 presence;
+#X text 299 85 motion;
+#X text 300 99 presence;
+#X obj -15 542 cnv 15 620 30 empty empty empty 20 12 0 14 -200249 -66577
+0;
+#X text -7 550 GridFlow 0.8.0;
+#X text -7 550 GridFlow 0.8.0;
+#X obj -13 -85 cnv 15 620 30 empty empty empty 20 12 0 14 -233017 -66577
+0;
+#X text 0 -72 Copyright 2002 Mathieu Bouchard;
+#X text 0 -86 videodev_effects.pd;
#X connect 0 0 5 1;
#X connect 1 0 20 0;
#X connect 2 0 3 0;
diff --git a/externals/gridflow/pd_examples/waves.pd b/externals/gridflow/pd_examples/waves.pd
index c9706ca4..14dd10e5 100644
--- a/externals/gridflow/pd_examples/waves.pd
+++ b/externals/gridflow/pd_examples/waves.pd
@@ -1,10 +1,8 @@
-#N canvas 366 97 753 590 10;
-#X obj 265 207 #greyscale_to_rgb;
-#X obj 251 350 # min 255;
-#X obj 271 5 loadbang;
-#X obj 211 25 fork;
-#X obj 251 389 #out x11;
-#X obj 313 409 print;
+#N canvas 461 0 783 699 10;
+#X obj 245 341 #greyscale_to_rgb;
+#X obj 167 66 loadbang;
+#X obj 107 85 fork;
+#X obj 241 497 print;
#N canvas 23 304 369 368 mouse 0;
#X text 109 189 coordinates;
#X obj 56 189 outlet;
@@ -29,42 +27,41 @@
#X connect 11 0 3 0;
#X connect 11 1 12 0;
#X connect 12 0 6 0;
-#X restore 251 428 pd mouse click/drag;
-#X obj 12 39 tgl 15 0 empty empty empty 0 -6 0 8 -241291 -1 -1 1 1
-;
-#N canvas 637 335 419 287 lighting 0;
-#X obj 56 243 outlet;
+#X restore 235 516 pd mouse click/drag;
+#X obj 10 49 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 0 1;
+#N canvas 637 335 413 236 lighting 0;
+#X obj 56 203 outlet;
#X obj 17 9 inlet;
-#X obj 86 138 #outer & ( -1 0 0 );
-#X text 91 100 produce red/cyan from horiz differences;
-#X text 64 160 produce white/black from vertical differences;
-#X obj 56 199 #outer & ( -1 -1 0 );
-#X obj 56 222 # +;
+#X text 91 65 produce red/cyan from horiz differences;
+#X text 64 123 produce white/black from vertical differences;
+#X obj 56 177 # +;
#X obj 108 10 #dim;
#X obj 140 10 #export_list;
-#X obj 56 29 #redim ( );
#X obj 56 9 t a a;
#X obj 56 49 t a a;
#X msg 141 30 \$1 \$2;
-#X obj 86 117 #convolve ( 1 2 # ) \, op ignore \, fold inv+;
-#X obj 56 177 #convolve ( 2 1 # ) \, op ignore \, fold inv+;
-#X connect 1 0 10 0;
-#X connect 2 0 6 1;
+#X obj 56 29 #redim ();
+#X obj 86 82 #convolve (1 2 #) \, op ignore \, fold inv+;
+#X obj 86 101 #outer & (-1 0 0);
+#X obj 56 139 #convolve (2 1 #) \, op ignore \, fold inv+;
+#X obj 56 158 #outer & (-1 -1 0);
+#X connect 1 0 7 0;
+#X connect 4 0 0 0;
#X connect 5 0 6 0;
-#X connect 6 0 0 0;
-#X connect 7 0 8 0;
-#X connect 8 0 12 0;
-#X connect 9 0 11 0;
-#X connect 10 0 9 0;
-#X connect 10 1 7 0;
-#X connect 11 0 14 0;
-#X connect 11 1 13 0;
-#X connect 12 0 9 1;
-#X connect 13 0 2 0;
-#X connect 14 0 5 0;
-#X restore 216 242 pd lighting;
-#X obj 251 447 # / 2;
-#X msg 138 46 \$1 \$2 1 # 0;
+#X connect 6 0 9 0;
+#X connect 7 0 10 0;
+#X connect 7 1 5 0;
+#X connect 8 0 13 0;
+#X connect 8 1 11 0;
+#X connect 9 0 10 1;
+#X connect 10 0 8 0;
+#X connect 11 0 12 0;
+#X connect 12 0 4 1;
+#X connect 13 0 14 0;
+#X connect 14 0 4 0;
+#X restore 235 362 pd lighting;
+#X obj 235 535 # / 2;
+#X msg 107 104 \$1 \$2 1 # 0;
#N canvas 137 251 392 303 finger 0;
#X obj 149 39 #redim ( 4 2 );
#X obj 71 16 inlet;
@@ -87,11 +84,10 @@
#X connect 7 0 5 1;
#X connect 9 0 6 0;
#X connect 10 0 3 0;
-#X restore 292 519 pd finger;
-#X obj 245 25 s size;
-#X obj 251 370 #scale_by 2;
-#X obj 80 142 #store;
-#X obj 312 389 fps detailed;
+#X restore 206 634 pd finger;
+#X obj 141 85 s size;
+#X obj 235 438 #scale_by 2;
+#X obj 10 168 #store;
#N canvas 53 323 453 223 wave 0;
#X obj 26 20 inlet;
#X obj 28 182 outlet;
@@ -103,7 +99,7 @@
#X obj 28 158 # *>>8 242;
#X text 105 159 amortizing by ~5.5%;
#X obj 24 46 t a a;
-#X obj 54 81 #convolve ( 3 3 # 1 4 1 4 0 4 ) \, seed 8;
+#X obj 54 81 #convolve (3 3 # 1 4 1 4 0 4) \, seed 8;
#X connect 0 0 9 0;
#X connect 5 0 7 0;
#X connect 6 0 5 0;
@@ -111,38 +107,33 @@
#X connect 9 0 5 1;
#X connect 9 1 10 0;
#X connect 10 0 6 0;
-#X restore 80 203 pd wave equation;
-#X obj 249 515 t a;
-#X obj 117 122 t a;
-#X obj 251 330 # max 0;
-#X obj 265 188 # >> 1;
-#X obj 31 63 s metro;
-#X msg 211 5 240 320;
-#X text 441 19 Copyright (c) 2003 \, 2004 by Mathieu Bouchard;
-#X text 481 72 (Best complemented with a touchscreen);
-#X text 441 2 waves.pd;
-#X obj 376 141 vradio 15 1 0 3 empty empty empty 0 -6 0 8 -262144 -258699
--1 2;
-#X text 395 155 height greys;
-#X obj 298 103 vradio 15 1 0 2 empty empty empty 0 -6 0 8 -262144 -258699
+#X restore 10 206 pd wave equation;
+#X obj 162 634 t a;
+#X obj 107 123 t a;
+#X obj 245 317 # >> 1;
+#X obj 36 85 s metro;
+#X msg 107 66 240 320;
+#X text 491 65 (Best complemented with a touchscreen);
+#X obj 341 244 vradio 15 1 0 3 empty empty empty 0 -6 0 8 -262144 -258699
+-1 0;
+#X text 359 259 height greys;
+#X obj 294 205 vradio 15 1 0 2 empty empty empty 0 -6 0 8 -262144 -258699
-1 0;
-#X text 317 102 plain;
-#X text 318 118 line-art;
-#X text 315 46 smooth;
-#X obj 296 46 vradio 15 1 0 2 empty empty empty 0 -6 0 8 -262144 -258699
+#X text 312 204 plain;
+#X text 312 220 line-art;
+#X text 309 153 smooth;
+#X obj 292 153 vradio 15 1 0 2 empty empty empty 0 -6 0 8 -262144 -258699
-1 0;
-#X text 316 60 raw;
-#X obj 443 379 hradio 18 1 1 4 empty empty _1__2__3__4_ 0 -4 0 8 -262144
--258699 -1 1;
-#X text 441 354 scale by...;
-#X obj 443 400 + 1;
-#X obj 664 129 loadbang;
-#X obj 557 331 #in;
-#X obj 584 305 #camera_control;
-#X obj 558 284 spigot;
-#X obj 605 285 tgl 15 0 empty empty empty 18 8 0 8 -241291 -1 -62784
-1 1;
-#X obj 558 264 r metro;
+#X text 310 167 raw;
+#X obj 417 503 hradio 18 1 1 4 empty empty _1__2__3__4_ 0 -4 0 8 -262144
+-258699 -1 0;
+#X text 415 482 scale by...;
+#X obj 417 523 + 1;
+#X obj 573 105 loadbang;
+#X obj 573 276 spigot;
+#X obj 620 277 tgl 15 0 empty empty empty 18 8 0 8 -241291 -1 -62784
+0 1;
+#X obj 573 256 r metro;
#N canvas 242 284 365 231 line-art 0;
#X obj 32 123 # << 8;
#X obj 32 37 inlet;
@@ -159,181 +150,211 @@
#X connect 5 0 6 0;
#X connect 6 0 0 0;
#X connect 7 0 5 0;
-#X restore 283 142 pd line-art;
-#X text 560 214 Background colour;
-#X text 625 285 enable video;
-#X msg 584 325 open r001.jpg \, bang;
-#X text 394 141 four-colour emboss;
-#X obj 142 402 tgl 15 0 empty empty empty 0 -6 0 8 -241291 -1 -1 1
+#X restore 260 243 pd line-art;
+#X text 628 129 Background colour;
+#X text 637 277 enable video;
+#X text 357 244 four-colour emboss;
+#X obj 325 562 tgl 15 1 empty empty empty 0 -6 0 8 -241291 -1 -1 1
1;
-#X obj 88 377 r metro;
-#X obj 88 441 @! rand;
-#X msg 87 421 240 320;
-#X text 160 399 rain;
-#X text 558 3 bundled with GridFlow 0.7.7;
-#X obj 240 100 # >> 2;
-#X text 378 36 Originally made for Alexandre Castonguay's "DIGITALE"
+#X obj 278 542 r metro;
+#X text 342 561 rain;
+#X obj 235 204 # >> 2;
+#X text 388 36 Originally made for Alexandre Castonguay's "DIGITALE"
;
-#X text 495 53 But suitable for a lot more uses :-);
-#X msg 599 129 3 # 128;
-#X obj 557 154 #color;
-#X obj 239 121 shunt 2;
-#X obj 239 59 shunt 2;
-#X obj 403 486 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -6 0 10
+#X text 505 50 But suitable for a lot more uses :-);
+#X msg 573 124 3 # 128;
+#X obj 573 143 #color;
+#X obj 235 223 shunt 2;
+#X obj 235 166 shunt 2;
+#X obj 349 618 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -6 0 10
-262131 -1 -1 2 256;
-#X obj 403 503 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -6 0 10
+#X obj 349 632 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -6 0 10
-262131 -1 -1 2 256;
-#X obj 359 519 #pack 2;
-#X obj 216 291 # +;
-#X obj 332 302 #store;
-#X obj 421 236 shunt 2;
-#X obj 477 232 vradio 15 1 0 2 empty empty empty 0 -6 0 8 -262144 -258699
+#X obj 235 400 # +;
+#X obj 372 449 #store;
+#X obj 396 381 shunt 2;
+#X obj 452 376 vradio 15 1 0 2 empty empty empty 0 -6 0 8 -262144 -258699
-1 0;
-#X text 495 230 plain;
-#X text 495 248 refraction;
-#X obj 216 263 t a;
+#X text 470 375 plain;
+#X text 470 392 refraction;
+#X obj 235 381 t a;
#N canvas 203 363 443 300 heightmap2indexmap 0;
-#X obj 48 279 outlet;
+#X obj 48 220 outlet;
#X obj 9 8 inlet;
-#X obj 48 159 # +;
+#X obj 48 143 # +;
#X obj 100 9 #dim;
#X obj 132 9 #export_list;
-#X obj 48 28 #redim ( );
#X obj 48 8 t a a;
#X obj 48 48 t a a;
-#X msg 133 29 \$1 \$2;
-#X obj 78 92 #outer & ( -1 0 );
-#X obj 48 137 #outer & ( 0 -1 );
-#X obj 48 251 # +;
-#X obj 73 251 #for ( 0 0 ) ( 240 320 ) ( 1 1 );
-#X obj 116 229 loadbang;
-#X obj 84 229 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+#X msg 132 28 \$1 \$2;
+#X obj 48 201 # +;
+#X obj 90 181 loadbang;
+#X obj 73 181 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
-#X obj 48 182 # >> 1;
-#X obj 48 115 #convolve ( 2 1 # ) \, op ignore \, fold inv+;
-#X obj 78 71 #convolve ( 1 2 # ) \, op ignore \, fold inv+;
-#X connect 1 0 6 0;
-#X connect 2 0 15 0;
+#X obj 48 162 # >> 1;
+#X obj 78 67 #convolve (1 2 #) \, op ignore \, fold inv+;
+#X obj 78 86 #outer & (-1 0);
+#X obj 48 105 #convolve (2 1 #) \, op ignore \, fold inv+;
+#X obj 48 124 #outer & (0 -1);
+#X obj 73 201 #for (0 0) (240 320) (1 1);
+#X obj 48 28 #redim ();
+#X connect 1 0 5 0;
+#X connect 2 0 11 0;
#X connect 3 0 4 0;
-#X connect 4 0 8 0;
-#X connect 5 0 7 0;
-#X connect 6 0 5 0;
-#X connect 6 1 3 0;
-#X connect 7 0 16 0;
-#X connect 7 1 17 0;
-#X connect 8 0 5 1;
-#X connect 9 0 2 1;
-#X connect 10 0 2 0;
-#X connect 11 0 0 0;
-#X connect 12 0 11 1;
-#X connect 13 0 12 0;
-#X connect 14 0 12 0;
-#X connect 15 0 11 0;
-#X connect 16 0 10 0;
-#X connect 17 0 9 0;
-#X restore 332 281 pd heightmap2indexmap;
-#X obj 11 63 bng 15 250 50 0 empty empty empty 0 -6 0 8 -241291 -1
+#X connect 4 0 7 0;
+#X connect 5 0 17 0;
+#X connect 5 1 3 0;
+#X connect 6 0 14 0;
+#X connect 6 1 12 0;
+#X connect 7 0 17 1;
+#X connect 8 0 0 0;
+#X connect 9 0 16 0;
+#X connect 10 0 16 0;
+#X connect 11 0 8 0;
+#X connect 12 0 13 0;
+#X connect 13 0 2 1;
+#X connect 14 0 15 0;
+#X connect 15 0 2 0;
+#X connect 16 0 8 1;
+#X connect 17 0 6 0;
+#X restore 372 430 pd heightmap2indexmap;
+#X obj -8 82 bng 15 250 50 0 empty empty empty 0 -6 0 8 -24198 -1 -1
+;
+#X obj 372 411 spigot;
+#X text 359 274 no reflection;
+#X obj 235 286 shunt 3;
+#X obj 235 243 t a;
+#X obj 293 317 # put 0;
+#X obj 162 615 shunt 2;
+#X obj 206 596 shunt 2;
+#X obj 10 66 metro 33.3667;
+#X obj 10 187 shunt 2;
+#X text 80 188 freeze time;
+#X obj 63 188 tgl 15 0 empty empty empty 0 -6 0 8 -241291 -1 -1 0 1
+;
+#X obj 132 123 r feedback;
+#X obj 162 653 s feedback;
+#X obj 10 226 t a;
+#X obj -13 5 cnv 15 780 30 empty empty empty 20 12 0 14 -233017 -66577
+0;
+#X obj -15 671 cnv 15 780 30 empty empty empty 20 12 0 14 -200249 -66577
+0;
+#X text -7 679 GridFlow 0.8.0;
+#X text -7 679 GridFlow 0.8.0;
+#X text 0 4 waves.pd;
+#X obj 573 296 #camera;
+#X obj 555 276 bng 15 250 50 0 empty empty empty 0 -6 0 8 -24198 -1
-1;
-#X obj 332 228 spigot;
-#X text 397 170 no reflection;
-#X obj 239 167 shunt 3;
-#X obj 239 145 t a;
-#X obj 313 188 # put 0;
-#X obj 255 491 shunt 2;
-#X obj 325 493 shunt 2;
-#X obj 87 401 shunt 2;
-#X obj 31 39 metro 33.3667;
-#X obj 80 171 shunt 2;
-#X text 154 173 freeze time;
-#X obj 137 173 tgl 15 0 empty empty empty 0 -6 0 8 -241291 -1 -1 0
-1;
-#X obj 131 100 r feedback;
-#X obj 229 543 s feedback;
-#X obj 124 264 t a;
-#X obj 239 80 #convolve ( 2 2 # ) \, op ignore;
-#X obj 571 403 #yuv_to_rgb;
-#X text 500 501 pas de reflection \, + yuv;
-#X connect 0 0 70 0;
-#X connect 1 0 13 0;
-#X connect 2 0 22 0;
-#X connect 3 0 10 0;
-#X connect 3 1 12 0;
-#X connect 4 0 15 0;
-#X connect 4 0 6 0;
-#X connect 6 0 9 0;
-#X connect 6 1 79 0;
-#X connect 7 0 81 0;
-#X connect 8 0 70 0;
-#X connect 9 0 11 1;
-#X connect 10 0 18 0;
-#X connect 11 0 17 0;
-#X connect 13 0 4 0;
-#X connect 14 0 82 0;
-#X connect 15 0 5 0;
-#X connect 16 0 87 0;
-#X connect 17 0 86 0;
-#X connect 18 0 14 1;
-#X connect 18 0 60 0;
-#X connect 19 0 1 0;
-#X connect 20 0 0 0;
-#X connect 22 0 3 0;
-#X connect 26 0 75 1;
-#X connect 28 0 59 1;
-#X connect 32 0 60 1;
-#X connect 34 0 36 0;
-#X connect 36 0 9 1;
-#X connect 36 0 13 1;
-#X connect 37 0 57 0;
-#X connect 38 0 89 0;
-#X connect 39 0 38 0;
-#X connect 40 0 38 0;
-#X connect 41 0 40 1;
-#X connect 42 0 40 0;
-#X connect 43 0 76 0;
-#X connect 46 0 38 0;
-#X connect 48 0 78 1;
-#X connect 48 0 79 1;
-#X connect 48 0 80 1;
-#X connect 49 0 80 0;
-#X connect 50 0 11 1;
-#X connect 51 0 50 0;
-#X connect 54 0 59 0;
-#X connect 57 0 58 0;
-#X connect 58 0 66 0;
-#X connect 59 0 76 0;
-#X connect 59 1 43 0;
-#X connect 60 0 88 0;
-#X connect 60 1 59 0;
-#X connect 61 0 63 0;
-#X connect 62 0 63 1;
-#X connect 63 0 11 2;
-#X connect 64 0 19 0;
-#X connect 65 0 64 1;
-#X connect 66 0 64 1;
-#X connect 66 1 65 1;
-#X connect 67 0 66 1;
-#X connect 67 0 73 1;
-#X connect 70 0 64 0;
-#X connect 71 0 65 0;
-#X connect 72 0 21 0;
-#X connect 72 0 14 0;
-#X connect 73 0 71 0;
-#X connect 75 0 8 0;
-#X connect 75 1 20 0;
-#X connect 75 2 77 0;
-#X connect 76 0 75 0;
-#X connect 76 0 73 0;
-#X connect 77 0 0 0;
-#X connect 78 0 17 0;
-#X connect 78 1 11 0;
-#X connect 79 0 78 1;
-#X connect 80 1 51 0;
-#X connect 81 0 14 0;
-#X connect 81 0 21 0;
-#X connect 82 0 16 0;
-#X connect 82 1 87 0;
-#X connect 84 0 82 1;
-#X connect 85 0 18 0;
-#X connect 87 0 78 0;
-#X connect 88 0 54 0;
-#X connect 89 0 77 1;
+#X obj 573 315 spigot;
+#X obj 620 316 tgl 15 0 empty empty empty 18 8 0 8 -241291 -1 -62784
+0 1;
+#X text 637 315 test camera output;
+#X obj 10 85 t b;
+#X obj 278 561 spigot;
+#X obj 620 334 sel 0 1;
+#X msg 642 353 open window;
+#X obj 573 334 #out;
+#X msg 620 372 close;
+#X obj 241 478 fps detailed \, period 2;
+#X obj 574 226 #in;
+#X msg 574 207 load r001.jpg;
+#X obj 324 580 r size;
+#X obj 278 580 #store;
+#X obj 278 599 # rand;
+#X obj 235 457 #out window;
+#X obj 235 419 #clip;
+#X obj 235 185 #convolve (2 2 #) \, op ignore;
+#X obj 349 651 #pack 2;
+#X text 0 18 Copyright 2003 \, 2004 \, 2005 Mathieu Bouchard;
+#X connect 0 0 57 0;
+#X connect 1 0 18 0;
+#X connect 2 0 8 0;
+#X connect 2 1 10 0;
+#X connect 4 0 7 0;
+#X connect 4 1 66 0;
+#X connect 5 0 67 0;
+#X connect 6 0 57 0;
+#X connect 7 0 9 1;
+#X connect 8 0 15 0;
+#X connect 9 0 14 0;
+#X connect 11 0 96 0;
+#X connect 12 0 68 0;
+#X connect 13 0 73 0;
+#X connect 14 0 72 0;
+#X connect 15 0 12 1;
+#X connect 15 0 48 0;
+#X connect 16 0 0 0;
+#X connect 18 0 2 0;
+#X connect 20 0 62 1;
+#X connect 22 0 47 1;
+#X connect 26 0 48 1;
+#X connect 28 0 30 0;
+#X connect 30 0 7 1;
+#X connect 30 0 11 1;
+#X connect 31 0 45 0;
+#X connect 32 0 79 0;
+#X connect 33 0 32 1;
+#X connect 34 0 32 0;
+#X connect 35 0 63 0;
+#X connect 39 0 65 1;
+#X connect 39 0 66 1;
+#X connect 39 0 85 1;
+#X connect 40 0 85 0;
+#X connect 42 0 47 0;
+#X connect 45 0 46 0;
+#X connect 46 0 53 0;
+#X connect 47 0 63 0;
+#X connect 47 1 35 0;
+#X connect 48 0 98 0;
+#X connect 48 1 47 0;
+#X connect 49 0 99 0;
+#X connect 50 0 99 1;
+#X connect 51 0 97 0;
+#X connect 52 0 51 1;
+#X connect 53 0 51 1;
+#X connect 53 1 52 1;
+#X connect 54 0 53 1;
+#X connect 54 0 60 1;
+#X connect 57 0 51 0;
+#X connect 58 0 52 0;
+#X connect 59 0 84 0;
+#X connect 60 0 58 0;
+#X connect 62 0 6 0;
+#X connect 62 1 16 0;
+#X connect 62 2 64 0;
+#X connect 63 0 62 0;
+#X connect 63 0 60 0;
+#X connect 64 0 0 0;
+#X connect 65 0 14 0;
+#X connect 65 1 9 0;
+#X connect 66 0 65 1;
+#X connect 67 0 84 0;
+#X connect 68 0 13 0;
+#X connect 68 1 73 0;
+#X connect 70 0 68 1;
+#X connect 71 0 15 0;
+#X connect 73 0 65 0;
+#X connect 79 0 53 0;
+#X connect 79 0 81 0;
+#X connect 80 0 79 0;
+#X connect 81 0 88 0;
+#X connect 82 0 81 1;
+#X connect 82 0 86 0;
+#X connect 84 0 17 0;
+#X connect 84 0 12 0;
+#X connect 85 0 94 0;
+#X connect 86 0 89 0;
+#X connect 86 1 87 0;
+#X connect 87 0 88 0;
+#X connect 89 0 88 0;
+#X connect 90 0 3 0;
+#X connect 91 0 53 1;
+#X connect 92 0 91 0;
+#X connect 93 0 94 1;
+#X connect 94 0 95 0;
+#X connect 95 0 9 1;
+#X connect 96 0 4 0;
+#X connect 96 0 90 0;
+#X connect 97 0 11 0;
+#X connect 98 0 42 0;
+#X connect 99 0 9 2;