aboutsummaryrefslogtreecommitdiff
path: root/externals/gridflow
diff options
context:
space:
mode:
Diffstat (limited to 'externals/gridflow')
-rw-r--r--externals/gridflow/doc/flow_classes/#+-help.pd364
-rw-r--r--externals/gridflow/doc/flow_classes/#-help.pd309
-rw-r--r--externals/gridflow/doc/flow_classes/#cast-help.pd45
-rw-r--r--externals/gridflow/doc/flow_classes/#clip-help.pd67
-rw-r--r--externals/gridflow/doc/flow_classes/#contrast-help.pd46
-rw-r--r--externals/gridflow/doc/flow_classes/#dim-help.pd32
-rw-r--r--externals/gridflow/doc/flow_classes/#fade-help.pd80
-rw-r--r--externals/gridflow/doc/flow_classes/#in-help.pd135
-rw-r--r--externals/gridflow/doc/flow_classes/#numop-help.pd366
-rw-r--r--externals/gridflow/doc/flow_classes/#pack-help.pd75
-rw-r--r--externals/gridflow/doc/flow_classes/#pack_and_#unpack-help.pd85
-rw-r--r--externals/gridflow/doc/flow_classes/#print-help.pd68
-rw-r--r--externals/gridflow/doc/flow_classes/#print-help2.pd113
-rw-r--r--externals/gridflow/doc/flow_classes/#remap_image-help.pd73
-rw-r--r--externals/gridflow/doc/flow_classes/#reverse-help.pd46
-rw-r--r--externals/gridflow/doc/flow_classes/#rgb_to_yuv-help.pd11
-rw-r--r--externals/gridflow/doc/flow_classes/#rgb_to_yuv_and_#yuv_to_rgb-help.pd44
-rw-r--r--externals/gridflow/doc/flow_classes/#unpack-#pack-help.pd45
-rw-r--r--externals/gridflow/doc/flow_classes/exec-help.pd13
-rw-r--r--externals/gridflow/doc/flow_classes/listelement-help.pd61
-rw-r--r--externals/gridflow/doc/flow_classes/ls-help.pd21
-rw-r--r--externals/gridflow/doc/flow_classes/plotter_control-help.pd64
-rw-r--r--externals/gridflow/doc/flow_classes/renamefile-help.pd9
-rw-r--r--externals/gridflow/doc/flow_classes/unix_time-help.pd25
-rw-r--r--externals/gridflow/doc/format/#in-help.pd189
-rw-r--r--externals/gridflow/doc/format/#quicktime-help.pd10
-rw-r--r--externals/gridflow/doc/format/#videodev-help.pd15
-rw-r--r--externals/gridflow/extra/gf.valgrind242
-rw-r--r--externals/gridflow/extra/ruby.valgrind82
29 files changed, 2535 insertions, 0 deletions
diff --git a/externals/gridflow/doc/flow_classes/#+-help.pd b/externals/gridflow/doc/flow_classes/#+-help.pd
new file mode 100644
index 00000000..511d67c1
--- /dev/null
+++ b/externals/gridflow/doc/flow_classes/#+-help.pd
@@ -0,0 +1,364 @@
+#N canvas 165 32 693 623 10;
+#X obj 8 3 cnv 15 90 578 empty empty empty 20 12 0 14 -233017 -66577
+0;
+#X text 36 326 INLETS:;
+#X text 36 344 - LEFT:;
+#X text 30 386 - RIGHT:;
+#X text 29 469 OUTLETS:;
+#X text 28 53 EXAMPLES:;
+#X text 16 553 SEE ALSO:;
+#N canvas 52 15 871 640 More_Info 0;
+#X text 76 366 A + B;
+#X text 77 510 A * B;
+#X text 73 571 rounded towards zero;
+#X text 14 73 angles are in hundredth of degrees \, so a full circle
+(two pi radians) is 36000 you can convert from radians to our angles
+by multiplying by 18000/pi.;
+#X text 13 44 for all of these \, A refers to the left inlet and B
+to the value on the right.;
+#X text 15 27 Consult doc/architecture.html to see all the 40 of them.
+;
+#X text 902 31 GridFlow 0.8.0;
+#X obj 479 70 #color;
+#X obj 684 72 #color;
+#X msg 15 366 op +;
+#X msg 15 507 op *;
+#X obj 15 385 s op;
+#X obj 423 155 r op;
+#X obj 15 526 s op;
+#X obj 15 436 s op;
+#X text 77 421 A - B;
+#X msg 15 417 op -;
+#X obj 15 761 s op;
+#X msg 15 742 op %;
+#X text 69 743 A % B;
+#X obj 15 575 s op;
+#X msg 15 556 op /;
+#X text 79 557 A / B;
+#X obj 14 809 s op;
+#X text 83 790 B % A;
+#X text 15 14 Numeric Operators: *whoa \, there's a lot of them;
+#X obj 16 482 s op;
+#X msg 16 463 op inv+;
+#X text 79 464 B -A;
+#X obj 15 623 s op;
+#X text 79 605 A / B;
+#X msg 15 604 op div;
+#X text 75 621 rounded downwards;
+#X obj 15 668 s op;
+#X msg 15 649 op inv*;
+#X text 80 650 B / A;
+#X text 77 665 rounded towards 0;
+#X obj 15 712 s op;
+#X text 76 714 rounded downwards;
+#X text 101 695 B / A;
+#X text 68 760 modulo (goes with div);
+#X text 65 809 modulo (goes with div);
+#X msg 14 790 op swap%;
+#X obj 15 286 s op;
+#X obj 15 334 s op;
+#X msg 15 267 op ignore;
+#X text 90 268 A;
+#X msg 15 315 op put;
+#X text 76 315 B;
+#X msg 15 693 op swapdiv;
+#X obj 237 286 s op;
+#X msg 237 267 op rem;
+#X text 315 263 A % B;
+#X obj 236 338 s op;
+#X text 330 319 B % A;
+#X text 314 278 remainder;
+#X text 314 293 (goes with /);
+#X msg 236 319 op swaprem;
+#X text 327 333 remainder;
+#X text 326 348 (goes with /);
+#X obj 236 388 s op;
+#X obj 236 435 s op;
+#X msg 236 369 op gcd;
+#X msg 236 416 op lcm;
+#X text 298 373 greatest common divisor;
+#X text 298 420 least common multiple;
+#X obj 235 481 s op;
+#X text 299 464 A or B \, bitwise;
+#X msg 235 462 op;
+#X obj 235 525 s op;
+#X text 299 508 A xor B \, bitwise;
+#X msg 235 506 op ^;
+#X obj 235 578 s op;
+#X msg 235 559 op &;
+#X text 300 561 A and B \, bitwise;
+#X obj 235 623 s op;
+#X msg 235 604 op <<;
+#X text 300 606 A * (2**(B % 32);
+#X text 299 621 left-shifthing;
+#X obj 235 669 s op;
+#X msg 235 649 op >>;
+#X text 299 666 right-shifthing;
+#X text 300 652 A / (2**(B % 32);
+#X obj 218 463 bng 15 250 50 0 empty empty empty 0 -6 0 8 -258699 -1
+-1;
+#X obj 235 714 s op;
+#X msg 235 695 op;
+#X obj 218 695 bng 15 250 50 0 empty empty empty 0 -6 0 8 -258699 -1
+-1;
+#X text 299 697 if A is zero then;
+#X text 300 711 B else A;
+#X obj 235 758 s op;
+#X text 299 741 if A is zero then;
+#X text 15 110 comment;
+#X msg 235 739 op &&;
+#X text 300 755 zero else B;
+#X obj 236 807 s op;
+#X msg 236 788 op min;
+#X text 300 789 the lowest value;
+#X text 301 804 in A \, B;
+#X obj 500 287 s op;
+#X msg 500 267 op max;
+#X text 556 284 in A \, B;
+#X text 557 268 the highest value;
+#X obj 500 333 s op;
+#X msg 500 313 op cmp;
+#X text 551 310 -1 when A<B;
+#X text 558 338 1 when A>B;
+#X text 558 324 0 when A=B;
+#X obj 500 386 s op;
+#X msg 500 366 op ==;
+#X text 557 367 is A equal to B ?;
+#X text 556 385 1 = true \, 0 = false;
+#X obj 500 433 s op;
+#X msg 500 413 op !=;
+#X text 557 414 is A not equal to B ?;
+#X obj 500 477 s op;
+#X msg 500 456 op >;
+#X text 557 457 is A greater than B ?;
+#X obj 500 523 s op;
+#X msg 500 502 op <=;
+#X text 557 503 is A not greater than B ?;
+#X obj 500 572 s op;
+#X msg 500 551 op <;
+#X text 557 552 is A less than B ?;
+#X obj 500 618 s op;
+#X msg 500 597 op >=;
+#X text 557 598 is A not less than B ?;
+#X obj 500 666 s op;
+#X msg 500 645 op sin*;
+#X text 559 646 B * sin(A);
+#X obj 500 713 s op;
+#X msg 500 691 op cos*;
+#X text 560 693 B * cos(A);
+#X obj 500 758 s op;
+#X msg 500 736 op atan;
+#X text 560 737 arctan(A/B);
+#X obj 499 805 s op;
+#X msg 499 783 op tan*;
+#X text 559 784 tanh(A);
+#X obj 738 288 s op;
+#X msg 738 268 op log*;
+#X text 795 269 B*log(A);
+#X text 794 286 in base e;
+#X obj 738 334 s op;
+#X msg 738 314 op gamma;
+#X text 809 314 floor(pow(a/256.0 \, 256.0/b)*256.0);
+#X obj 737 385 s op;
+#X msg 737 366 op **;
+#X text 799 368 A**B;
+#X text 799 385 A raised to power B;
+#X obj 737 431 s op;
+#X msg 737 412 op abs-;
+#X text 799 412 absolute value of (A-B);
+#X obj 737 478 s op;
+#X msg 737 459 op rand;
+#X text 800 473 number below A;
+#X text 799 458 randomly produces a non-negative;
+#X obj 737 524 s op;
+#X msg 737 505 op sqrt;
+#X text 799 504 square root of A;
+#X text 800 519 rounded downwards;
+#X obj 737 566 s op;
+#X msg 737 547 op sq-;
+#X text 800 546 (A-B) times (A-B);
+#X obj 740 614 s op;
+#X obj 723 595 bng 15 250 50 0 empty empty empty 0 -6 0 8 -258699 -1
+-1;
+#X msg 740 595 op clip+;
+#X text 808 595 A+B but output is clipped;
+#X obj 740 660 s op;
+#X obj 723 641 bng 15 250 50 0 empty empty empty 0 -6 0 8 -258699 -1
+-1;
+#X msg 740 641 op clip-;
+#X text 808 641 A-B but output is clipped;
+#X obj 740 706 s op;
+#X obj 740 750 s op;
+#X text 808 687 (A+B)/2;
+#X msg 740 687 op avg;
+#X msg 740 731 op hypot;
+#X text 808 731 square root of (A*A+B*B);
+#X obj 740 792 s op;
+#X obj 723 773 bng 15 250 50 0 empty empty empty 0 -6 0 8 -258699 -1
+-1;
+#X msg 740 773 op erf;
+#X text 807 773 integral of e^(-x*x)dx;
+#N canvas 8 30 615 351 all_operators 0;
+#X obj 174 99 # -;
+#X obj 522 97 # swap%;
+#X obj 186 177 # abs-;
+#X obj 238 177 # rand;
+#X obj 342 177 # sq-;
+#X obj 290 177 # sqrt;
+#X obj 144 99 # +;
+#X obj 492 97 # %;
+#X obj 260 99 # *;
+#X obj 289 99 # /;
+#X obj 206 99 # inv+;
+#X obj 321 99 # div;
+#X obj 367 98 # inv*;
+#X obj 420 98 # swapdiv;
+#X obj 35 99 # ignore;
+#X obj 100 100 # put;
+#X obj 35 125 # rem;
+#X obj 78 125 # swaprem;
+#X obj 149 125 # gcd;
+#X obj 191 125 # lcm;
+#X obj 234 125 # |;
+#X obj 234 125 # |;
+#X obj 263 125 # ^;
+#X obj 293 125 # &;
+#X obj 322 125 # <<;
+#X obj 358 125 # >>;
+#X obj 394 125 # ||;
+#X obj 431 125 # &&;
+#X obj 467 125 # min;
+#X obj 35 151 # max;
+#X obj 79 151 # cmp;
+#X obj 124 151 # ==;
+#X obj 162 151 # !=;
+#X obj 199 151 # >;
+#X obj 234 151 # <=;
+#X obj 274 151 # <;
+#X obj 304 152 # >=;
+#X obj 341 152 # sin*;
+#X obj 391 152 # cos*;
+#X obj 442 152 # atan;
+#X obj 493 152 # tanh*;
+#X obj 35 177 # log*;
+#X obj 87 177 # gamma;
+#X obj 148 177 # **;
+#X obj 388 177 # avg;
+#X obj 433 177 # hypot;
+#X restore 15 174 pd all_operators;
+#X text 585 31 select values below;
+#X text 14 233 select an operator below;
+#X text 478 51 A;
+#X text 683 53 B;
+#X obj 479 182 # +;
+#X obj 257 196 #color;
+#X obj 297 162 #reverse;
+#X obj 443 215 display;
+#X obj 656 197 #unpack 3;
+#X floatatom 605 244 5 0 0 0 - - -;
+#X obj 642 150 t a a;
+#X obj 597 191 display;
+#X connect 7 0 186 0;
+#X connect 7 0 188 0;
+#X connect 7 0 192 0;
+#X connect 8 0 186 1;
+#X connect 9 0 11 0;
+#X connect 10 0 13 0;
+#X connect 12 0 186 0;
+#X connect 16 0 14 0;
+#X connect 18 0 17 0;
+#X connect 21 0 20 0;
+#X connect 27 0 26 0;
+#X connect 31 0 29 0;
+#X connect 34 0 33 0;
+#X connect 42 0 23 0;
+#X connect 45 0 43 0;
+#X connect 47 0 44 0;
+#X connect 49 0 37 0;
+#X connect 51 0 50 0;
+#X connect 57 0 53 0;
+#X connect 62 0 60 0;
+#X connect 63 0 61 0;
+#X connect 68 0 66 0;
+#X connect 71 0 69 0;
+#X connect 73 0 72 0;
+#X connect 76 0 75 0;
+#X connect 80 0 79 0;
+#X connect 85 0 84 0;
+#X connect 92 0 89 0;
+#X connect 95 0 94 0;
+#X connect 99 0 98 0;
+#X connect 103 0 102 0;
+#X connect 108 0 107 0;
+#X connect 112 0 111 0;
+#X connect 115 0 114 0;
+#X connect 118 0 117 0;
+#X connect 121 0 120 0;
+#X connect 124 0 123 0;
+#X connect 127 0 126 0;
+#X connect 130 0 129 0;
+#X connect 133 0 132 0;
+#X connect 136 0 135 0;
+#X connect 139 0 138 0;
+#X connect 143 0 142 0;
+#X connect 146 0 145 0;
+#X connect 150 0 149 0;
+#X connect 153 0 152 0;
+#X connect 157 0 156 0;
+#X connect 161 0 160 0;
+#X connect 165 0 163 0;
+#X connect 169 0 167 0;
+#X connect 174 0 171 0;
+#X connect 175 0 172 0;
+#X connect 179 0 177 0;
+#X connect 188 0 187 0;
+#X connect 188 0 189 0;
+#X connect 190 0 191 0;
+#X connect 192 0 193 0;
+#X connect 192 1 190 0;
+#X restore 115 574 pd More_Info;
+#X text 36 492 - LEFT:;
+#X text 412 575 updated for GridFlow version 0.8.0;
+#X floatatom 151 163 5 0 0 0 - - -;
+#X text 113 554 list of other operators;
+#X obj 71 9 # +;
+#X text 108 12 - OPERATORS ([# +] in this case) APPLY OPERATIONS ONTO
+GRIDS;
+#X text 109 345 Grid - accepts a grid that will be modified by the
+operator according to the right inlet value. (list of operators in
+[pd more_info]) ([# +] in this example.);
+#X text 108 395 Grid - accepts grids that will modify the incoming
+grid \, from the left inlet \, (preferably of the same dimensions.)
+;
+#X text 105 439 Integer - accepts integers that will modify the incoming
+grid.;
+#X text 107 492 Grid - outputs the modified data as a grid.;
+#X obj 142 211 display;
+#X obj 114 93 #color;
+#X msg 114 60 255 0 0;
+#X obj 114 253 #color;
+#X obj 511 179 #in;
+#X obj 511 249 #out window;
+#X msg 541 156 open b001.jpg;
+#X obj 511 113 t b b;
+#X obj 511 58 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
+;
+#X obj 511 79 metro 100;
+#X obj 511 202 # +;
+#X obj 511 226 #clip;
+#X text 204 164 <-- change this value.;
+#X obj 114 181 # + 42;
+#X text 293 109 <-- modify color;
+#X connect 10 0 31 1;
+#X connect 19 0 31 0;
+#X connect 20 0 19 0;
+#X connect 22 0 28 0;
+#X connect 24 0 22 0;
+#X connect 25 0 22 0;
+#X connect 25 1 24 0;
+#X connect 26 0 27 0;
+#X connect 27 0 25 0;
+#X connect 28 0 29 0;
+#X connect 29 0 23 0;
+#X connect 31 0 18 0;
+#X connect 31 0 21 0;
diff --git a/externals/gridflow/doc/flow_classes/#-help.pd b/externals/gridflow/doc/flow_classes/#-help.pd
new file mode 100644
index 00000000..3b891db4
--- /dev/null
+++ b/externals/gridflow/doc/flow_classes/#-help.pd
@@ -0,0 +1,309 @@
+#N canvas 291 30 1089 795 10;
+#X text 76 366 A + B;
+#X text 77 510 A * B;
+#X text 73 571 rounded towards zero;
+#X text 14 73 angles are in hundredth of degrees \, so a full circle
+(two pi radians) is 36000 you can convert from radians to our angles
+by multiplying by 18000/pi.;
+#X text 13 44 for all of these \, A refers to the left inlet and B
+to the value on the right.;
+#X text 15 27 Consult doc/architecture.html to see all the 40 of them.
+;
+#X text 902 31 GridFlow 0.8.0;
+#X obj 479 70 #color;
+#X obj 684 72 #color;
+#X msg 15 366 op +;
+#X msg 15 507 op *;
+#X obj 15 385 s op;
+#X obj 423 155 r op;
+#X obj 15 526 s op;
+#X obj 15 436 s op;
+#X text 77 421 A - B;
+#X msg 15 417 op -;
+#X obj 15 761 s op;
+#X msg 15 742 op %;
+#X text 69 743 A % B;
+#X obj 15 575 s op;
+#X msg 15 556 op /;
+#X text 79 557 A / B;
+#X obj 14 809 s op;
+#X text 83 790 B % A;
+#X text 15 14 Numeric Operators: *whoa \, there's a lot of them;
+#X obj 16 482 s op;
+#X msg 16 463 op inv+;
+#X text 79 464 B -A;
+#X obj 15 623 s op;
+#X text 79 605 A / B;
+#X msg 15 604 op div;
+#X text 75 621 rounded downwards;
+#X obj 15 668 s op;
+#X msg 15 649 op inv*;
+#X text 80 650 B / A;
+#X text 77 665 rounded towards 0;
+#X obj 15 712 s op;
+#X text 76 714 rounded downwards;
+#X text 101 695 B / A;
+#X text 68 760 modulo (goes with div);
+#X text 65 809 modulo (goes with div);
+#X msg 14 790 op swap%;
+#X obj 15 286 s op;
+#X obj 15 334 s op;
+#X msg 15 267 op ignore;
+#X text 90 268 A;
+#X msg 15 315 op put;
+#X text 76 315 B;
+#X msg 15 693 op swapdiv;
+#X obj 237 286 s op;
+#X msg 237 267 op rem;
+#X text 315 263 A % B;
+#X obj 236 338 s op;
+#X text 330 319 B % A;
+#X text 314 278 remainder;
+#X text 314 293 (goes with /);
+#X msg 236 319 op swaprem;
+#X text 327 333 remainder;
+#X text 326 348 (goes with /);
+#X obj 236 388 s op;
+#X obj 236 435 s op;
+#X msg 236 369 op gcd;
+#X msg 236 416 op lcm;
+#X text 298 373 greatest common divisor;
+#X text 298 420 least common multiple;
+#X obj 235 481 s op;
+#X text 299 464 A or B \, bitwise;
+#X msg 235 462 op;
+#X obj 235 525 s op;
+#X text 299 508 A xor B \, bitwise;
+#X msg 235 506 op ^;
+#X obj 235 578 s op;
+#X msg 235 559 op &;
+#X text 300 561 A and B \, bitwise;
+#X obj 235 623 s op;
+#X msg 235 604 op <<;
+#X text 300 606 A * (2**(B % 32);
+#X text 299 621 left-shifthing;
+#X obj 235 669 s op;
+#X msg 235 649 op >>;
+#X text 299 666 right-shifthing;
+#X text 300 652 A / (2**(B % 32);
+#X obj 218 463 bng 15 250 50 0 empty empty empty 0 -6 0 8 -258699 -1
+-1;
+#X obj 235 714 s op;
+#X msg 235 695 op;
+#X obj 218 695 bng 15 250 50 0 empty empty empty 0 -6 0 8 -258699 -1
+-1;
+#X text 299 697 if A is zero then;
+#X text 300 711 B else A;
+#X obj 235 758 s op;
+#X text 299 741 if A is zero then;
+#X text 15 110 comment;
+#X msg 235 739 op &&;
+#X text 300 755 zero else B;
+#X obj 236 807 s op;
+#X msg 236 788 op min;
+#X text 300 789 the lowest value;
+#X text 301 804 in A \, B;
+#X obj 500 287 s op;
+#X msg 500 267 op max;
+#X text 556 284 in A \, B;
+#X text 557 268 the highest value;
+#X obj 500 333 s op;
+#X msg 500 313 op cmp;
+#X text 551 310 -1 when A<B;
+#X text 558 338 1 when A>B;
+#X text 558 324 0 when A=B;
+#X obj 500 386 s op;
+#X msg 500 366 op ==;
+#X text 557 367 is A equal to B ?;
+#X text 556 385 1 = true \, 0 = false;
+#X obj 500 433 s op;
+#X msg 500 413 op !=;
+#X text 557 414 is A not equal to B ?;
+#X obj 500 477 s op;
+#X msg 500 456 op >;
+#X text 557 457 is A greater than B ?;
+#X obj 500 523 s op;
+#X msg 500 502 op <=;
+#X text 557 503 is A not greater than B ?;
+#X obj 500 572 s op;
+#X msg 500 551 op <;
+#X text 557 552 is A less than B ?;
+#X obj 500 618 s op;
+#X msg 500 597 op >=;
+#X text 557 598 is A not less than B ?;
+#X obj 500 666 s op;
+#X msg 500 645 op sin*;
+#X text 559 646 B * sin(A);
+#X obj 500 713 s op;
+#X msg 500 691 op cos*;
+#X text 560 693 B * cos(A);
+#X obj 500 758 s op;
+#X msg 500 736 op atan;
+#X text 560 737 arctan(A/B);
+#X obj 499 805 s op;
+#X msg 499 783 op tan*;
+#X text 559 784 tanh(A);
+#X obj 738 288 s op;
+#X msg 738 268 op log*;
+#X text 795 269 B*log(A);
+#X text 794 286 in base e;
+#X obj 738 334 s op;
+#X msg 738 314 op gamma;
+#X text 809 314 floor(pow(a/256.0 \, 256.0/b)*256.0);
+#X obj 737 385 s op;
+#X msg 737 366 op **;
+#X text 799 368 A**B;
+#X text 799 385 A raised to power B;
+#X obj 737 431 s op;
+#X msg 737 412 op abs-;
+#X text 799 412 absolute value of (A-B);
+#X obj 737 478 s op;
+#X msg 737 459 op rand;
+#X text 800 473 number below A;
+#X text 799 458 randomly produces a non-negative;
+#X obj 737 524 s op;
+#X msg 737 505 op sqrt;
+#X text 799 504 square root of A;
+#X text 800 519 rounded downwards;
+#X obj 737 566 s op;
+#X msg 737 547 op sq-;
+#X text 800 546 (A-B) times (A-B);
+#X obj 740 614 s op;
+#X obj 723 595 bng 15 250 50 0 empty empty empty 0 -6 0 8 -258699 -1
+-1;
+#X msg 740 595 op clip+;
+#X text 808 595 A+B but output is clipped;
+#X obj 740 660 s op;
+#X obj 723 641 bng 15 250 50 0 empty empty empty 0 -6 0 8 -258699 -1
+-1;
+#X msg 740 641 op clip-;
+#X text 808 641 A-B but output is clipped;
+#X obj 740 706 s op;
+#X obj 740 750 s op;
+#X text 808 687 (A+B)/2;
+#X msg 740 687 op avg;
+#X msg 740 731 op hypot;
+#X text 808 731 square root of (A*A+B*B);
+#X obj 740 792 s op;
+#X obj 723 773 bng 15 250 50 0 empty empty empty 0 -6 0 8 -258699 -1
+-1;
+#X msg 740 773 op erf;
+#X text 807 773 integral of e^(-x*x)dx;
+#N canvas 8 30 615 351 all_operators 0;
+#X obj 174 99 # -;
+#X obj 522 97 # swap%;
+#X obj 186 177 # abs-;
+#X obj 238 177 # rand;
+#X obj 342 177 # sq-;
+#X obj 290 177 # sqrt;
+#X obj 144 99 # +;
+#X obj 492 97 # %;
+#X obj 260 99 # *;
+#X obj 289 99 # /;
+#X obj 206 99 # inv+;
+#X obj 321 99 # div;
+#X obj 367 98 # inv*;
+#X obj 420 98 # swapdiv;
+#X obj 35 99 # ignore;
+#X obj 100 100 # put;
+#X obj 35 125 # rem;
+#X obj 78 125 # swaprem;
+#X obj 149 125 # gcd;
+#X obj 191 125 # lcm;
+#X obj 234 125 # |;
+#X obj 234 125 # |;
+#X obj 263 125 # ^;
+#X obj 293 125 # &;
+#X obj 322 125 # <<;
+#X obj 358 125 # >>;
+#X obj 394 125 # ||;
+#X obj 431 125 # &&;
+#X obj 467 125 # min;
+#X obj 35 151 # max;
+#X obj 79 151 # cmp;
+#X obj 124 151 # ==;
+#X obj 162 151 # !=;
+#X obj 199 151 # >;
+#X obj 234 151 # <=;
+#X obj 274 151 # <;
+#X obj 304 152 # >=;
+#X obj 341 152 # sin*;
+#X obj 391 152 # cos*;
+#X obj 442 152 # atan;
+#X obj 493 152 # tanh*;
+#X obj 35 177 # log*;
+#X obj 87 177 # gamma;
+#X obj 148 177 # **;
+#X obj 388 177 # avg;
+#X obj 433 177 # hypot;
+#X restore 15 174 pd all_operators;
+#X text 585 31 select values below;
+#X text 14 233 select an operator below;
+#X text 478 51 A;
+#X text 683 53 B;
+#X obj 479 182 # +;
+#X obj 257 196 #color;
+#X obj 297 162 #reverse;
+#X obj 443 215 display;
+#X obj 656 197 #unpack 3;
+#X floatatom 605 244 5 0 0 0 - - -;
+#X obj 642 150 t a a;
+#X obj 597 191 display;
+#X connect 7 0 186 0;
+#X connect 7 0 188 0;
+#X connect 7 0 192 0;
+#X connect 8 0 186 1;
+#X connect 9 0 11 0;
+#X connect 10 0 13 0;
+#X connect 12 0 186 0;
+#X connect 16 0 14 0;
+#X connect 18 0 17 0;
+#X connect 21 0 20 0;
+#X connect 27 0 26 0;
+#X connect 31 0 29 0;
+#X connect 34 0 33 0;
+#X connect 42 0 23 0;
+#X connect 45 0 43 0;
+#X connect 47 0 44 0;
+#X connect 49 0 37 0;
+#X connect 51 0 50 0;
+#X connect 57 0 53 0;
+#X connect 62 0 60 0;
+#X connect 63 0 61 0;
+#X connect 68 0 66 0;
+#X connect 71 0 69 0;
+#X connect 73 0 72 0;
+#X connect 76 0 75 0;
+#X connect 80 0 79 0;
+#X connect 85 0 84 0;
+#X connect 92 0 89 0;
+#X connect 95 0 94 0;
+#X connect 99 0 98 0;
+#X connect 103 0 102 0;
+#X connect 108 0 107 0;
+#X connect 112 0 111 0;
+#X connect 115 0 114 0;
+#X connect 118 0 117 0;
+#X connect 121 0 120 0;
+#X connect 124 0 123 0;
+#X connect 127 0 126 0;
+#X connect 130 0 129 0;
+#X connect 133 0 132 0;
+#X connect 136 0 135 0;
+#X connect 139 0 138 0;
+#X connect 143 0 142 0;
+#X connect 146 0 145 0;
+#X connect 150 0 149 0;
+#X connect 153 0 152 0;
+#X connect 157 0 156 0;
+#X connect 161 0 160 0;
+#X connect 165 0 163 0;
+#X connect 169 0 167 0;
+#X connect 174 0 171 0;
+#X connect 175 0 172 0;
+#X connect 179 0 177 0;
+#X connect 188 0 187 0;
+#X connect 188 0 189 0;
+#X connect 190 0 191 0;
+#X connect 192 0 193 0;
+#X connect 192 1 190 0;
diff --git a/externals/gridflow/doc/flow_classes/#cast-help.pd b/externals/gridflow/doc/flow_classes/#cast-help.pd
new file mode 100644
index 00000000..94246cc9
--- /dev/null
+++ b/externals/gridflow/doc/flow_classes/#cast-help.pd
@@ -0,0 +1,45 @@
+#N canvas 435 101 684 379 10;
+#X text 108 14 returns a grid of the same dimensions containing all
+the same values after type conversion. note that while casting to a
+smaller type \, overflowing values will be truncated.;
+#X text 109 53 numbertypes are: uint8 \, int16 \, int32 \, int64 \,
+float32 \, float64. see doc/architecture.html for more info.;
+#X obj 115 90 nbx 8 14 -1e+37 1e+37 0 1 empty empty empty 0 -6 0 10
+-262144 -1 -1 3.1416 256;
+#X obj 78 136 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X text 14 136 print it:;
+#X obj 78 210 t a a a a;
+#X obj 216 90 nbx 8 14 -1e+37 1e+37 0 1 empty empty empty 0 -6 0 10
+-262144 -1 -1 42 256;
+#X obj 126 110 nbx 8 14 -1e+37 1e+37 0 1 empty empty empty 0 -6 0 10
+-262144 -1 -1 2005 256;
+#X obj 215 110 nbx 8 14 -1e+37 1e+37 0 1 empty empty empty 0 -6 0 10
+-262144 -1 -1 1e+10 256;
+#X obj 115 136 #pack 4 float32;
+#X obj 115 158 #redim ( 2 2 );
+#X obj 78 185 #store;
+#X obj 136 234 #print;
+#X obj 116 254 #cast uint8;
+#X obj 116 274 #print;
+#X obj 97 294 #cast int32;
+#X obj 97 314 #print;
+#X obj 78 334 #cast float64;
+#X obj 78 354 #print;
+#X text 14 14 [#cast];
+#X text 575 10 GridFlow 0.8.0;
+#X connect 2 0 9 0;
+#X connect 3 0 11 0;
+#X connect 5 0 17 0;
+#X connect 5 1 15 0;
+#X connect 5 2 13 0;
+#X connect 5 3 12 0;
+#X connect 6 0 9 1;
+#X connect 7 0 9 2;
+#X connect 8 0 9 3;
+#X connect 9 0 10 0;
+#X connect 10 0 11 1;
+#X connect 11 0 5 0;
+#X connect 13 0 14 0;
+#X connect 15 0 16 0;
+#X connect 17 0 18 0;
diff --git a/externals/gridflow/doc/flow_classes/#clip-help.pd b/externals/gridflow/doc/flow_classes/#clip-help.pd
new file mode 100644
index 00000000..490afbbc
--- /dev/null
+++ b/externals/gridflow/doc/flow_classes/#clip-help.pd
@@ -0,0 +1,67 @@
+#N canvas 693 131 606 601 10;
+#X obj 360 381 #in;
+#X obj 360 422 # + 42;
+#X floatatom 404 400 5 0 0 0 - - -;
+#X obj 360 528 #out window;
+#X msg 390 358 open b001.jpg;
+#X obj 360 335 t b b;
+#X obj -1 0 cnv 15 90 600 empty empty empty 20 12 0 14 -233017 -66577
+0;
+#X obj 360 302 metro 100;
+#X obj 360 281 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 0 1
+;
+#X floatatom 384 452 5 0 0 0 - - -;
+#X floatatom 434 452 5 0 0 0 - - -;
+#X text 38 36 INLETS:;
+#X text 38 51 - LEFT:;
+#X text 32 143 - RIGHT:;
+#X text 29 253 OUTLETS:;
+#X text 15 194 ARGUMENTS:;
+#X text 22 283 EXAMPLES:;
+#X text 20 565 SEE ALSO:;
+#X text 25 93 - CENTER:;
+#X obj 47 10 #clip;
+#X text 501 558 GridFlow 0.8.0;
+#X floatatom 119 397 5 0 0 0 - - -;
+#X floatatom 119 286 5 0 0 0 - - -;
+#X text 205 339 creation arguments;
+#X obj 119 342 #clip 255 0;
+#X text 107 191 Two - [int] accepts two integers as creation arguments
+which initializes the first values to be stored in the object and duplicate
+the functions of the second and third inlet.;
+#X obj 118 564 # min;
+#X obj 165 564 # max;
+#X obj 213 564 clip;
+#X text 109 91 Integer - An integer at the second inlet is stored for
+later use. It will be used as the high value at which to clip incoming
+Grid values at that left inlet.;
+#X text 109 142 Integer - An integer at the third inlet is stored for
+later use. It will be used as the low value at which to clip incoming
+Grid values at that left inlet.;
+#X text 108 12 - FORCE THE GRID VALUES INTO A RANGE;
+#X text 109 50 Grid - Grid values at the left inlet will be clipped
+to the high and low values stored in the object.;
+#X obj 360 485 #clip;
+#X text 419 483 no arguments (defaults to 255 \, 0);
+#X text 452 399 <-- change these;
+#X obj 119 312 #import (1);
+#X obj 119 370 #export;
+#X text 107 191 Two - [int] accepts two integers as creation arguments
+which initializes the first values to be stored in the object and duplicate
+the functions of the second and third inlet.;
+#X text 485 452 <--;
+#X connect 0 0 1 0;
+#X connect 1 0 33 0;
+#X connect 2 0 1 1;
+#X connect 4 0 0 0;
+#X connect 5 0 0 0;
+#X connect 5 1 4 0;
+#X connect 7 0 5 0;
+#X connect 8 0 7 0;
+#X connect 9 0 33 1;
+#X connect 10 0 33 2;
+#X connect 22 0 36 0;
+#X connect 24 0 37 0;
+#X connect 33 0 3 0;
+#X connect 36 0 24 0;
+#X connect 37 0 21 0;
diff --git a/externals/gridflow/doc/flow_classes/#contrast-help.pd b/externals/gridflow/doc/flow_classes/#contrast-help.pd
new file mode 100644
index 00000000..7e8b1734
--- /dev/null
+++ b/externals/gridflow/doc/flow_classes/#contrast-help.pd
@@ -0,0 +1,46 @@
+#N canvas 120 14 814 532 10;
+#X obj 96 131 bng 15 250 50 0 empty empty empty 0 -6 0 8 -233017 -1
+-1;
+#X obj 22 151 metro 100;
+#X obj 22 130 tgl 15 0 empty empty empty 0 -6 0 8 -233017 -1 -1 0 1
+;
+#X obj 123 269 hsl 128 15 0 256 0 0 empty empty empty -2 -6 0 8 -262144
+-1 -1 0 1;
+#X obj 124 332 hsl 128 15 0 256 0 0 empty empty empty -2 -6 0 8 -262144
+-1 -1 0 1;
+#X text 15 57 adjusts the intensity in an image. resulting values outside
+0-255 are automatically clipped.;
+#X text 262 334 master contrast;
+#X text 258 273 secondary contrast;
+#X floatatom 51 343 5 0 0 0 - - -;
+#X floatatom 80 375 5 0 0 0 - - -;
+#X text 401 273 makes the incoming black correspond to a certain fraction
+between output black and the master contrast value. no effect is 256
+this is also the default.;
+#X text 402 334 makes the incoming white correspond to a certain fraction
+between output black and output white. no effect is 256 this is also
+the default.;
+#X text 18 497 see also:;
+#X msg 119 220 open bluemarble.jpg;
+#X obj 96 151 fork;
+#X obj 88 499 #convolve;
+#X obj 158 499 #posterize;
+#X obj 235 499 #solarize;
+#X obj 305 499 #layer;
+#X obj 22 423 #out window;
+#X obj 22 397 #contrast;
+#X obj 22 237 #in;
+#X text 13 15 [#contrast];
+#X text 700 15 GridFlow 0.8.0;
+#X connect 0 0 14 0;
+#X connect 1 0 21 0;
+#X connect 2 0 1 0;
+#X connect 3 0 8 0;
+#X connect 4 0 9 0;
+#X connect 8 0 20 1;
+#X connect 9 0 20 2;
+#X connect 13 0 21 0;
+#X connect 14 0 21 0;
+#X connect 14 1 13 0;
+#X connect 20 0 19 0;
+#X connect 21 0 20 0;
diff --git a/externals/gridflow/doc/flow_classes/#dim-help.pd b/externals/gridflow/doc/flow_classes/#dim-help.pd
new file mode 100644
index 00000000..49017c9b
--- /dev/null
+++ b/externals/gridflow/doc/flow_classes/#dim-help.pd
@@ -0,0 +1,32 @@
+#N canvas 449 187 546 331 10;
+#X obj 26 83 bng 15 250 50 0 empty empty empty 0 -6 0 8 -233017 -1
+-1;
+#X obj 137 217 print dimension;
+#X obj 18 241 print number_of_dimensions;
+#X text 18 282 see also:;
+#X obj 136 283 rubyprint;
+#X obj 206 283 printargs;
+#X msg 18 63 open bluemarble.jpg;
+#X text 438 10 GridFlow 0.8.0;
+#X obj 87 283 #print;
+#X obj 276 283 #export;
+#X obj 332 283 #export_list;
+#X obj 137 196 #export;
+#X obj 18 197 #dim;
+#X obj 18 217 #export;
+#X obj 18 127 #dim;
+#X obj 18 103 #in;
+#X text 14 15 [#dim];
+#X text 137 100 dim receives a grid \, doesn't look at the data within
+but only the list of dimensions and turns it into a one dimension grid.
+given a grid sized like dim(240 \, 320 \, 4) #dim will return a grid
+like dim(3) whose values are 240 \, 320 \, 4;
+#X connect 0 0 15 0;
+#X connect 6 0 0 0;
+#X connect 6 0 15 0;
+#X connect 11 0 1 0;
+#X connect 12 0 13 0;
+#X connect 13 0 2 0;
+#X connect 14 0 11 0;
+#X connect 14 0 12 0;
+#X connect 15 0 14 0;
diff --git a/externals/gridflow/doc/flow_classes/#fade-help.pd b/externals/gridflow/doc/flow_classes/#fade-help.pd
new file mode 100644
index 00000000..551d8637
--- /dev/null
+++ b/externals/gridflow/doc/flow_classes/#fade-help.pd
@@ -0,0 +1,80 @@
+#N canvas 48 74 732 441 10;
+#X obj 268 95 cnv 15 460 15 empty empty empty 20 12 0 14 -200249 -66577
+0;
+#X obj 278 115 cnv 15 450 15 empty empty empty 20 12 0 14 -233017 -66577
+0;
+#X obj 8 406 cnv 15 720 30 empty empty empty 20 12 0 14 -200249 -66577
+0;
+#X obj 8 3 cnv 15 720 15 empty empty empty 20 12 0 14 -233017 -66577
+0;
+#X obj 278 174 cnv 15 450 15 empty empty empty 20 12 0 14 -233017 -66577
+0;
+#X obj 268 25 cnv 15 460 15 empty empty empty 20 12 0 14 -200249 -66577
+0;
+#X text 271 25 Arguments:;
+#X obj 268 281 cnv 15 460 15 empty empty empty 20 12 0 14 -200249 -66577
+0;
+#X text 271 281 Outlets:;
+#X obj 8 25 cnv 15 250 15 empty empty empty 20 12 0 14 -200249 -66577
+0;
+#X text 11 25 Usage:;
+#X obj 8 45 cnv 15 250 30 empty empty empty 20 12 0 14 -233017 -66577
+0;
+#X obj 8 81 cnv 15 250 320 empty empty empty 20 12 0 14 -233017 -66577
+0;
+#X obj 268 343 cnv 15 460 15 empty empty empty 20 12 0 14 -200249 -66577
+0;
+#X text 271 343 More Info:;
+#X text 271 95 Inlets: (Read left to right \, inlet "0" being the leftmost)
+;
+#X text 281 115 0: (Leftmost);
+#X text 281 174 1: (Rightmost);
+#X obj 104 53 #fade;
+#X obj 91 324 #fade;
+#X obj 91 350 #out window;
+#X msg 31 224 open b001.jpg;
+#X obj 22 166 bng 15 250 50 0 empty empty empty 0 -6 0 8 -225271 -1
+-1;
+#X obj 22 252 #in;
+#X obj 22 199 t b b;
+#X obj 50 303 bng 15 250 50 0 empty empty empty 0 -6 0 8 -24198 -1
+-1;
+#X floatatom 134 305 5 0 0 0 - - -;
+#X obj 22 139 metro 500;
+#X obj 22 113 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
+;
+#X obj 144 165 bng 15 250 50 0 empty empty empty 0 -6 0 8 -225271 -1
+-1;
+#X obj 144 251 #in;
+#X obj 144 198 t b b;
+#X msg 153 223 open r001.jpg;
+#X obj 144 136 metro 500;
+#X obj 144 111 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
+1;
+#X text 16 413 GridFlow 0.8.0;
+#X text 71 3 Fades a grids according to the argument you provide.;
+#X text 10 4 SUMMARY:;
+#X text 284 45 One - See inlet 0: (rightmost);
+#X text 292 135 Grid - Accepts s grid and multiplies it with a fraction
+of the previously outputted grid.;
+#X text 292 195 Integer - accepts an integer that determines the amount
+one grid is blended with another. For example: integer 5 takes 20%
+of the first image and blends it with 80% of the following image.;
+#X text 283 301 One - Outputs the fading images.;
+#X connect 19 0 20 0;
+#X connect 21 0 23 0;
+#X connect 22 0 24 0;
+#X connect 23 0 19 0;
+#X connect 24 0 23 0;
+#X connect 24 1 21 0;
+#X connect 25 0 19 0;
+#X connect 26 0 19 1;
+#X connect 27 0 22 0;
+#X connect 28 0 27 0;
+#X connect 29 0 31 0;
+#X connect 30 0 19 0;
+#X connect 31 0 30 0;
+#X connect 31 1 32 0;
+#X connect 32 0 30 0;
+#X connect 33 0 29 0;
+#X connect 34 0 33 0;
diff --git a/externals/gridflow/doc/flow_classes/#in-help.pd b/externals/gridflow/doc/flow_classes/#in-help.pd
new file mode 100644
index 00000000..6db03b52
--- /dev/null
+++ b/externals/gridflow/doc/flow_classes/#in-help.pd
@@ -0,0 +1,135 @@
+#N canvas 373 24 613 584 10;
+#X obj 123 779 #out window;
+#X obj 123 711 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 5 -9 cnv 15 90 1100 empty empty empty 20 12 0 14 -233017 -66577
+0;
+#X obj 57 -1 #in;
+#X text 35 37 INLETS:;
+#X text 42 68 -LEFT:;
+#X text 102 -1 -IMPORTS GRIDS (IMAGES OR MOVIES);
+#X text 110 268 Message "close" closes the video input device. Only
+necessary if you are using a live capture device.;
+#X text 109 68 Bang sends a grid (static image or one frame of video)
+to [#out]. Successive bangs advance through the grid (frames of video).
+;
+#X text 110 119 Message "open" follwed by the filename \, ex: "open
+someimage.jpg" gives a grid (most often an image) to an [#out].;
+#X text 108 226 Interger will display the frame number of the frame
+just sent. Applies to formats that have frame numbers.;
+#X text 109 173 Message "set" \, followed by a number \, will select
+the video frame corresponding to the number. A bang must be sent in
+order to display the frame.;
+#X text 8 444 ARGUMENTS:;
+#X text 107 444 filename \, [#in someimage.jpg] eliminates the need
+for message "open someimage.jpg" but limits that image.;
+#X text 23 500 OUTLETS:;
+#X text 37 531 -LEFT:;
+#X text 110 530 Displays the resulting grid when connected to [#out]
+;
+#X text 29 574 -RIGHT:;
+#X text 109 574 Integer \, a numbner box will identify the frame number
+corresponding to the frame currently displayed.Applies only to formats
+that have frame numbers.;
+#X text 16 676 EXAMPLES:;
+#X text 112 313 Message "rewind" will rewind a video file to its beginning.
+;
+#X text 111 341 Message "loop 1" restarts a video each time it reaches
+the end. The loop option is on by default.;
+#X text 110 381 Message "loop 0" turns off the loop option. The video
+stops once it reaches the end.;
+#X text 110 624 Bang signals when a frame could not be read and signals
+the end of a file.;
+#X obj 123 755 #in;
+#X floatatom 402 752 5 0 0 0 - - -;
+#X msg 343 752 set 2;
+#X msg 131 733 open b001.jpg;
+#X text 137 685 for images:;
+#X obj 320 880 #out window;
+#X obj 320 711 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 320 833 #in;
+#X msg 326 730 open movie.mpeg;
+#X msg 404 802 loop 0;
+#X msg 466 804 loop 1;
+#X floatatom 336 859 5 0 0 0 - - -;
+#X msg 404 777 rewind;
+#X text 323 686 for video files:;
+#X obj 382 850 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X text 16 949 SEE ALSO:;
+#X text 367 1067 updated for GridFlow version 0.8.0;
+#N canvas 135 17 680 586 More_Info 0;
+#X msg 52 283 option timelog \$1;
+#X obj 52 263 tgl 15 0 empty empty empty 0 -6 0 8 -233017 -1 -1 0 1
+;
+#X text 274 307 upload a grid;
+#X text 261 80 upload a grid;
+#X text 194 108 open default display for screenshot;
+#X msg 73 134 open videodev /dev/video0;
+#X text 260 136 open a video device;
+#X msg 75 332 open x11 here;
+#X msg 87 356 open x11 local 10;
+#X text 182 285 show/hide timing statistics;
+#X text 178 334 connect to default display;
+#X text 218 358 connect to display #10 on this machine;
+#X msg 100 380 open x11 remote.host.bla.net 0;
+#X text 324 382 connect to remote machine on display #0;
+#X text 290 161 open mpeg video stream;
+#X text 272 155 *;
+#X text 36 558 * path is where you started pd from. usually $home.
+;
+#X text 308 188 open an image file;
+#X msg 114 450 close;
+#X msg 90 161 open lsd.mpeg;
+#X msg 55 107 open x11 here;
+#X msg 35 80 open host.bla.net 7777;
+#X msg 113 404 open img/bla.jpg;
+#X text 300 405 open single file in jpg format;
+#X msg 108 186 open ./img/bla.jpg;
+#X text 35 481 incoming file is sent through the opened device/socket/file.
+in single file formats subsequent pictures overwrite the preceeding
+one. there are many more options. for more information see the reference
+manual in the "formats" and "objects for input/output" sections.;
+#X msg 65 307 open x.test.at 7777;
+#X msg 125 426 open window;
+#X text 228 426 opens a window x11 \, quartz or sdl;
+#X text 577 15 comment;
+#X obj 35 213 #in;
+#X obj 35 441 #out;
+#X text 14 15 #in \, #out communicating grids (pictures) to/from devices
+\, sockets \, files;
+#X connect 0 0 31 0;
+#X connect 1 0 0 0;
+#X connect 5 0 30 0;
+#X connect 7 0 31 0;
+#X connect 8 0 31 0;
+#X connect 12 0 31 0;
+#X connect 18 0 31 0;
+#X connect 19 0 30 0;
+#X connect 20 0 30 0;
+#X connect 21 0 30 0;
+#X connect 22 0 31 0;
+#X connect 24 0 30 0;
+#X connect 26 0 31 0;
+#X connect 27 0 31 0;
+#X connect 30 0 31 0;
+#X restore 105 951 pd More_Info;
+#X obj 105 990 #import ( 1 );
+#X obj 202 990 #export;
+#X obj 257 990 #export_list;
+#X obj 347 990 #export_symbol;
+#X obj 453 989 #pack;
+#X connect 1 0 24 0;
+#X connect 24 0 0 0;
+#X connect 25 0 31 0;
+#X connect 26 0 31 0;
+#X connect 27 0 24 0;
+#X connect 30 0 31 0;
+#X connect 31 0 29 0;
+#X connect 31 1 35 0;
+#X connect 31 1 38 0;
+#X connect 32 0 31 0;
+#X connect 33 0 31 0;
+#X connect 34 0 31 0;
+#X connect 36 0 31 0;
diff --git a/externals/gridflow/doc/flow_classes/#numop-help.pd b/externals/gridflow/doc/flow_classes/#numop-help.pd
new file mode 100644
index 00000000..22e54eb0
--- /dev/null
+++ b/externals/gridflow/doc/flow_classes/#numop-help.pd
@@ -0,0 +1,366 @@
+#N canvas 106 82 735 448 10;
+#X obj 278 136 cnv 15 450 15 empty empty empty 20 12 0 14 -233017 -66577
+0;
+#X obj 8 410 cnv 15 720 30 empty empty empty 20 12 0 14 -200249 -66577
+0;
+#X obj 8 8 cnv 15 720 30 empty empty empty 20 12 0 14 -233017 -66577
+0;
+#X obj 278 222 cnv 15 450 15 empty empty empty 20 12 0 14 -233017 -66577
+0;
+#X obj 267 46 cnv 15 460 15 empty empty empty 20 12 0 14 -200249 -66577
+0;
+#X text 270 45 Arguments:;
+#X obj 268 292 cnv 15 460 15 empty empty empty 20 12 0 14 -200249 -66577
+0;
+#X text 271 292 Outlets:;
+#X obj 8 46 cnv 15 250 15 empty empty empty 20 12 0 14 -200249 -66577
+0;
+#X text 11 46 Usage:;
+#X obj 8 67 cnv 15 250 30 empty empty empty 20 12 0 14 -233017 -66577
+0;
+#X obj 8 104 cnv 15 250 300 empty empty empty 20 12 0 14 -233017 -66577
+0;
+#X obj 266 355 cnv 15 460 15 empty empty empty 20 12 0 14 -200249 -66577
+0;
+#X text 269 355 More Info:;
+#X text 281 136 0: (Leftmost);
+#X text 281 222 1: (Rightmost);
+#X text 12 8 SUMMARY:;
+#X text 73 8 Transforms a grid by applying mathematical operations
+in order to generate effects on a pixel by pixel basis.;
+#X obj 109 76 # +;
+#X floatatom 31 234 5 0 0 0 - - -;
+#X obj 42 288 display;
+#X obj 15 149 #color;
+#X msg 15 116 255 0 0;
+#X obj 15 331 #color;
+#X text 281 74 One - see: inlet 1: (Rightmost);
+#X obj 267 101 cnv 15 460 15 empty empty empty 20 12 0 14 -200249 -66577
+0;
+#X text 270 101 Inlets: (Read left to right \, inlet "0" being the
+leftmost);
+#X text 283 313 One - outputs the transformed grid.;
+#X text 16 417 GridFlow 0.8.0;
+#X obj 15 258 # +;
+#X text 292 242 Integer - Accepts integers that modify the incoming
+grid.;
+#N canvas 15 0 912 644 numop 0;
+#X text 76 366 A + B;
+#X text 77 510 A * B;
+#X text 73 571 rounded towards zero;
+#X text 14 73 angles are in hundredth of degrees \, so a full circle
+(two pi radians) is 36000 you can convert from radians to our angles
+by multiplying by 18000/pi.;
+#X text 13 44 for all of these \, A refers to the left inlet and B
+to the value on the right.;
+#X text 15 27 Consult doc/architecture.html to see all the 40 of them.
+;
+#X text 902 31 GridFlow 0.8.0;
+#X obj 479 70 #color;
+#X obj 684 72 #color;
+#X msg 15 366 op +;
+#X msg 15 507 op *;
+#X obj 15 385 s op;
+#X obj 423 155 r op;
+#X obj 15 526 s op;
+#X obj 15 436 s op;
+#X text 77 421 A - B;
+#X msg 15 417 op -;
+#X obj 15 761 s op;
+#X msg 15 742 op %;
+#X text 69 743 A % B;
+#X obj 15 575 s op;
+#X msg 15 556 op /;
+#X text 79 557 A / B;
+#X obj 14 809 s op;
+#X text 83 790 B % A;
+#X text 15 14 Numeric Operators: *whoa \, there's a lot of them;
+#X obj 16 482 s op;
+#X msg 16 463 op inv+;
+#X text 79 464 B -A;
+#X obj 15 623 s op;
+#X text 79 605 A / B;
+#X msg 15 604 op div;
+#X text 75 621 rounded downwards;
+#X obj 15 668 s op;
+#X msg 15 649 op inv*;
+#X text 80 650 B / A;
+#X text 77 665 rounded towards 0;
+#X obj 15 712 s op;
+#X text 76 714 rounded downwards;
+#X text 101 695 B / A;
+#X text 68 760 modulo (goes with div);
+#X text 65 809 modulo (goes with div);
+#X msg 14 790 op swap%;
+#X obj 15 286 s op;
+#X obj 15 334 s op;
+#X msg 15 267 op ignore;
+#X text 90 268 A;
+#X msg 15 315 op put;
+#X text 76 315 B;
+#X msg 15 693 op swapdiv;
+#X obj 237 286 s op;
+#X msg 237 267 op rem;
+#X text 315 263 A % B;
+#X obj 236 338 s op;
+#X text 330 319 B % A;
+#X text 314 278 remainder;
+#X text 314 293 (goes with /);
+#X msg 236 319 op swaprem;
+#X text 327 333 remainder;
+#X text 326 348 (goes with /);
+#X obj 236 388 s op;
+#X obj 236 435 s op;
+#X msg 236 369 op gcd;
+#X msg 236 416 op lcm;
+#X text 298 373 greatest common divisor;
+#X text 298 420 least common multiple;
+#X obj 235 481 s op;
+#X text 299 464 A or B \, bitwise;
+#X msg 235 462 op;
+#X obj 235 525 s op;
+#X text 299 508 A xor B \, bitwise;
+#X msg 235 506 op ^;
+#X obj 235 578 s op;
+#X msg 235 559 op &;
+#X text 300 561 A and B \, bitwise;
+#X obj 235 623 s op;
+#X msg 235 604 op <<;
+#X text 300 606 A * (2**(B % 32);
+#X text 299 621 left-shifthing;
+#X obj 235 669 s op;
+#X msg 235 649 op >>;
+#X text 299 666 right-shifthing;
+#X text 300 652 A / (2**(B % 32);
+#X obj 218 463 bng 15 250 50 0 empty empty empty 0 -6 0 8 -258699 -1
+-1;
+#X obj 235 714 s op;
+#X msg 235 695 op;
+#X obj 218 695 bng 15 250 50 0 empty empty empty 0 -6 0 8 -258699 -1
+-1;
+#X text 299 697 if A is zero then;
+#X text 300 711 B else A;
+#X obj 235 758 s op;
+#X text 299 741 if A is zero then;
+#X text 15 110 comment;
+#X msg 235 739 op &&;
+#X text 300 755 zero else B;
+#X obj 236 807 s op;
+#X msg 236 788 op min;
+#X text 300 789 the lowest value;
+#X text 301 804 in A \, B;
+#X obj 500 287 s op;
+#X msg 500 267 op max;
+#X text 556 284 in A \, B;
+#X text 557 268 the highest value;
+#X obj 500 333 s op;
+#X msg 500 313 op cmp;
+#X text 551 310 -1 when A<B;
+#X text 558 338 1 when A>B;
+#X text 558 324 0 when A=B;
+#X obj 500 386 s op;
+#X msg 500 366 op ==;
+#X text 557 367 is A equal to B ?;
+#X text 556 385 1 = true \, 0 = false;
+#X obj 500 433 s op;
+#X msg 500 413 op !=;
+#X text 557 414 is A not equal to B ?;
+#X obj 500 477 s op;
+#X msg 500 456 op >;
+#X text 557 457 is A greater than B ?;
+#X obj 500 523 s op;
+#X msg 500 502 op <=;
+#X text 557 503 is A not greater than B ?;
+#X obj 500 572 s op;
+#X msg 500 551 op <;
+#X text 557 552 is A less than B ?;
+#X obj 500 618 s op;
+#X msg 500 597 op >=;
+#X text 557 598 is A not less than B ?;
+#X obj 500 666 s op;
+#X msg 500 645 op sin*;
+#X text 559 646 B * sin(A);
+#X obj 500 713 s op;
+#X msg 500 691 op cos*;
+#X text 560 693 B * cos(A);
+#X obj 500 758 s op;
+#X msg 500 736 op atan;
+#X text 560 737 arctan(A/B);
+#X obj 499 805 s op;
+#X msg 499 783 op tan*;
+#X text 559 784 tanh(A);
+#X obj 738 288 s op;
+#X msg 738 268 op log*;
+#X text 795 269 B*log(A);
+#X text 794 286 in base e;
+#X obj 738 334 s op;
+#X msg 738 314 op gamma;
+#X text 809 314 floor(pow(a/256.0 \, 256.0/b)*256.0);
+#X obj 737 385 s op;
+#X msg 737 366 op **;
+#X text 799 368 A**B;
+#X text 799 385 A raised to power B;
+#X obj 737 431 s op;
+#X msg 737 412 op abs-;
+#X text 799 412 absolute value of (A-B);
+#X obj 737 478 s op;
+#X msg 737 459 op rand;
+#X text 800 473 number below A;
+#X text 799 458 randomly produces a non-negative;
+#X obj 737 524 s op;
+#X msg 737 505 op sqrt;
+#X text 799 504 square root of A;
+#X text 800 519 rounded downwards;
+#X obj 737 566 s op;
+#X msg 737 547 op sq-;
+#X text 800 546 (A-B) times (A-B);
+#X obj 740 614 s op;
+#X obj 723 595 bng 15 250 50 0 empty empty empty 0 -6 0 8 -258699 -1
+-1;
+#X msg 740 595 op clip+;
+#X text 808 595 A+B but output is clipped;
+#X obj 740 660 s op;
+#X obj 723 641 bng 15 250 50 0 empty empty empty 0 -6 0 8 -258699 -1
+-1;
+#X msg 740 641 op clip-;
+#X text 808 641 A-B but output is clipped;
+#X obj 740 706 s op;
+#X obj 740 750 s op;
+#X text 808 687 (A+B)/2;
+#X msg 740 687 op avg;
+#X msg 740 731 op hypot;
+#X text 808 731 square root of (A*A+B*B);
+#X obj 740 792 s op;
+#X obj 723 773 bng 15 250 50 0 empty empty empty 0 -6 0 8 -258699 -1
+-1;
+#X msg 740 773 op erf;
+#X text 807 773 integral of e^(-x*x)dx;
+#N canvas 8 30 615 351 all_operators 0;
+#X obj 174 99 # -;
+#X obj 522 97 # swap%;
+#X obj 186 177 # abs-;
+#X obj 238 177 # rand;
+#X obj 342 177 # sq-;
+#X obj 290 177 # sqrt;
+#X obj 144 99 # +;
+#X obj 492 97 # %;
+#X obj 260 99 # *;
+#X obj 289 99 # /;
+#X obj 206 99 # inv+;
+#X obj 321 99 # div;
+#X obj 367 98 # inv*;
+#X obj 420 98 # swapdiv;
+#X obj 35 99 # ignore;
+#X obj 100 100 # put;
+#X obj 35 125 # rem;
+#X obj 78 125 # swaprem;
+#X obj 149 125 # gcd;
+#X obj 191 125 # lcm;
+#X obj 234 125 # |;
+#X obj 234 125 # |;
+#X obj 263 125 # ^;
+#X obj 293 125 # &;
+#X obj 322 125 # <<;
+#X obj 358 125 # >>;
+#X obj 394 125 # ||;
+#X obj 431 125 # &&;
+#X obj 467 125 # min;
+#X obj 35 151 # max;
+#X obj 79 151 # cmp;
+#X obj 124 151 # ==;
+#X obj 162 151 # !=;
+#X obj 199 151 # >;
+#X obj 234 151 # <=;
+#X obj 274 151 # <;
+#X obj 304 152 # >=;
+#X obj 341 152 # sin*;
+#X obj 391 152 # cos*;
+#X obj 442 152 # atan;
+#X obj 493 152 # tanh*;
+#X obj 35 177 # log*;
+#X obj 87 177 # gamma;
+#X obj 148 177 # **;
+#X obj 388 177 # avg;
+#X obj 433 177 # hypot;
+#X restore 15 174 pd all_operators;
+#X text 585 31 select values below;
+#X text 14 233 select an operator below;
+#X text 478 51 A;
+#X text 683 53 B;
+#X obj 479 182 # +;
+#X obj 257 196 #color;
+#X obj 297 162 #reverse;
+#X obj 443 215 display;
+#X obj 656 197 #unpack 3;
+#X floatatom 605 244 5 0 0 0 - - -;
+#X obj 642 150 t a a;
+#X obj 597 191 display;
+#X connect 7 0 186 0;
+#X connect 7 0 188 0;
+#X connect 7 0 192 0;
+#X connect 8 0 186 1;
+#X connect 9 0 11 0;
+#X connect 10 0 13 0;
+#X connect 12 0 186 0;
+#X connect 16 0 14 0;
+#X connect 18 0 17 0;
+#X connect 21 0 20 0;
+#X connect 27 0 26 0;
+#X connect 31 0 29 0;
+#X connect 34 0 33 0;
+#X connect 42 0 23 0;
+#X connect 45 0 43 0;
+#X connect 47 0 44 0;
+#X connect 49 0 37 0;
+#X connect 51 0 50 0;
+#X connect 57 0 53 0;
+#X connect 62 0 60 0;
+#X connect 63 0 61 0;
+#X connect 68 0 66 0;
+#X connect 71 0 69 0;
+#X connect 73 0 72 0;
+#X connect 76 0 75 0;
+#X connect 80 0 79 0;
+#X connect 85 0 84 0;
+#X connect 92 0 89 0;
+#X connect 95 0 94 0;
+#X connect 99 0 98 0;
+#X connect 103 0 102 0;
+#X connect 108 0 107 0;
+#X connect 112 0 111 0;
+#X connect 115 0 114 0;
+#X connect 118 0 117 0;
+#X connect 121 0 120 0;
+#X connect 124 0 123 0;
+#X connect 127 0 126 0;
+#X connect 130 0 129 0;
+#X connect 133 0 132 0;
+#X connect 136 0 135 0;
+#X connect 139 0 138 0;
+#X connect 143 0 142 0;
+#X connect 146 0 145 0;
+#X connect 150 0 149 0;
+#X connect 153 0 152 0;
+#X connect 157 0 156 0;
+#X connect 161 0 160 0;
+#X connect 165 0 163 0;
+#X connect 169 0 167 0;
+#X connect 174 0 171 0;
+#X connect 175 0 172 0;
+#X connect 179 0 177 0;
+#X connect 188 0 187 0;
+#X connect 188 0 189 0;
+#X connect 190 0 191 0;
+#X connect 192 0 193 0;
+#X connect 192 1 190 0;
+#X restore 265 380 pd numop;
+#X text 290 157 Grid - Accepts a grid to be modified by an operator
+consistent with the right inlet value (list of operators in [pd numop]).
+In this example [# +] is used.;
+#X text 72 234 <-- change this value to modify the operation.;
+#X text 193 154 <--modify color with sliders.;
+#X connect 19 0 29 1;
+#X connect 21 0 29 0;
+#X connect 22 0 21 0;
+#X connect 29 0 20 0;
+#X connect 29 0 23 0;
diff --git a/externals/gridflow/doc/flow_classes/#pack-help.pd b/externals/gridflow/doc/flow_classes/#pack-help.pd
new file mode 100644
index 00000000..b2bff45a
--- /dev/null
+++ b/externals/gridflow/doc/flow_classes/#pack-help.pd
@@ -0,0 +1,75 @@
+#N canvas 29 63 693 623 10;
+#X obj 8 3 cnv 15 90 578 empty empty empty 20 12 0 14 -233017 -66577
+0;
+#X text 45 273 INLETS:;
+#X text 42 304 - LEFT:;
+#X text 33 410 OUTLETS:;
+#X text 28 53 EXAMPLES:;
+#X text 24 506 SEE ALSO:;
+#N canvas 247 137 487 505 More_Info 0;
+#X text 485 23 GridFlow 0.8.0;
+#X obj 523 257 #unpack 3;
+#X floatatom 513 305 5 0 0 0 - - -;
+#X obj 416 190 t a a;
+#X obj 333 301 display;
+#X floatatom 552 305 5 0 0 0 - - -;
+#X floatatom 591 305 5 0 0 0 - - -;
+#X text -48 51 [#unpack];
+#X obj 530 352 #pack 3;
+#X text -49 122 It takes an integer as an argument to specify the number
+of Dimensions the incoming grid has.;
+#X obj 416 76 #color;
+#X obj 516 411 #color;
+#X text -48 84 Accepts grids in its inlet and produces integers via
+its outlet.;
+#X text -39 349 [#pack];
+#X text -39 382 Accepts integers in its inlets and produces a corresponding
+grid via its outlet.;
+#X text -40 421 It takes an integer as an argument to specify the number
+of incoming integers and the corresponding number of Dimensions the
+outgoing grid will have.;
+#X obj 483 332 - 127;
+#X obj -31 190 trigger bang bang;
+#X obj 166 178 metro 100;
+#X obj 89 345 display;
+#X obj 174 272 print blah;
+#X obj 145 316 print blah2;
+#X obj 122 155 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
+1;
+#X connect 1 0 2 0;
+#X connect 1 1 5 0;
+#X connect 1 2 6 0;
+#X connect 2 0 16 0;
+#X connect 3 0 4 0;
+#X connect 3 1 1 0;
+#X connect 5 0 8 1;
+#X connect 6 0 8 2;
+#X connect 8 0 11 0;
+#X connect 10 0 3 0;
+#X connect 16 0 8 0;
+#X connect 18 0 19 0;
+#X connect 18 0 20 0;
+#X connect 18 0 21 0;
+#X connect 22 0 18 0;
+#X restore 119 550 pd More_Info;
+#X text 36 435 - LEFT:;
+#X text 412 575 updated for GridFlow version 0.8.0;
+#X obj 47 13 #pack;
+#X text 183 183 comment;
+#X obj 120 173 #color;
+#X floatatom 120 65 5 0 0 0 - - -;
+#X floatatom 142 93 5 0 0 0 - - -;
+#X floatatom 164 121 5 0 0 0 - - -;
+#X obj 120 147 #pack 3;
+#X text 25 346 ARGUMENT:;
+#X text 120 304 Grid - combination of inputs.;
+#X text 104 436 Grid - combination of inputs given by inlets.;
+#X text 114 344 Interger - defines the number of inlets and the amount
+of outcoming grid dimensions.;
+#X obj 121 511 #unpack 3;
+#X text 114 13 Creates a vector (a list of numbers) from individual
+integers.;
+#X connect 12 0 15 0;
+#X connect 13 0 15 1;
+#X connect 14 0 15 2;
+#X connect 15 0 11 0;
diff --git a/externals/gridflow/doc/flow_classes/#pack_and_#unpack-help.pd b/externals/gridflow/doc/flow_classes/#pack_and_#unpack-help.pd
new file mode 100644
index 00000000..87fa2694
--- /dev/null
+++ b/externals/gridflow/doc/flow_classes/#pack_and_#unpack-help.pd
@@ -0,0 +1,85 @@
+#N canvas 109 540 736 659 10;
+#X obj 268 124 cnv 15 460 15 empty empty empty 20 12 0 14 -200249 -66577
+0;
+#X obj 278 148 cnv 15 450 15 empty empty empty 20 12 0 14 -233017 -66577
+0;
+#X obj 8 641 cnv 15 720 30 empty empty empty 20 12 0 14 -200249 -66577
+0;
+#X obj 7 5 cnv 15 720 30 empty empty empty 20 12 0 14 -233017 -66577
+0;
+#X obj 268 43 cnv 15 460 15 empty empty empty 20 12 0 14 -200249 -66577
+0;
+#X text 271 43 Arguments:;
+#X obj 268 267 cnv 15 460 15 empty empty empty 20 12 0 14 -200249 -66577
+0;
+#X text 271 267 Outlets:;
+#X obj 8 43 cnv 15 250 15 empty empty empty 20 12 0 14 -200249 -66577
+0;
+#X text 11 43 Usage:;
+#X obj 8 63 cnv 15 250 30 empty empty empty 20 12 0 14 -233017 -66577
+0;
+#X obj 8 100 cnv 15 250 200 empty empty empty 20 12 0 14 -233017 -66577
+0;
+#X text 271 124 Inlets: (Read left to right \, inlet "0" being the
+leftmost);
+#X obj 80 71 #pack;
+#X text 11 5 SUMMARY:;
+#X text 76 5 Creates a one dimentional grid (Dim(N) vector) from individual
+integers.;
+#X obj 30 222 #color;
+#X floatatom 30 114 5 0 0 0 - - -;
+#X floatatom 52 142 5 0 0 0 - - -;
+#X floatatom 74 170 5 0 0 0 - - -;
+#X obj 30 196 #pack 3;
+#X text 283 63 One - [integer] defines the number of inlets and the
+amount of grid dimensions.;
+#X text 289 175 Integer - accepts multiple integers as defined by the
+argument and creates a vector.;
+#X text 283 287 One - outputs values from each individual inlet.;
+#X obj 270 483 cnv 15 460 15 empty empty empty 20 12 0 14 -200249 -66577
+0;
+#X obj 281 503 cnv 15 450 15 empty empty empty 20 12 0 14 -233017 -66577
+0;
+#X obj 7 335 cnv 15 720 30 empty empty empty 20 12 0 14 -233017 -66577
+0;
+#X obj 268 373 cnv 15 460 15 empty empty empty 20 12 0 14 -200249 -66577
+0;
+#X text 271 373 Arguments:;
+#X obj 268 595 cnv 15 460 15 empty empty empty 20 12 0 14 -200249 -66577
+0;
+#X text 271 595 Outlets:;
+#X obj 8 373 cnv 15 250 15 empty empty empty 20 12 0 14 -200249 -66577
+0;
+#X text 11 373 Usage:;
+#X obj 8 393 cnv 15 250 30 empty empty empty 20 12 0 14 -233017 -66577
+0;
+#X obj 8 430 cnv 15 250 200 empty empty empty 20 12 0 14 -233017 -66577
+0;
+#X text 273 482 Inlets: (Read left to right \, inlet "0" being the
+leftmost);
+#X text 11 335 SUMMARY:;
+#X obj 79 400 #unpack;
+#X obj 30 518 #unpack 3;
+#X obj 30 451 #color;
+#X floatatom 30 601 5 0 0 0 - - -;
+#X floatatom 59 574 5 0 0 0 - - -;
+#X floatatom 88 549 5 0 0 0 - - -;
+#X text 283 393 One - [integer] defines the number of outlets and the
+amount of grid dimensions.;
+#X text 281 148 All:;
+#X text 283 503 All:;
+#X text 284 529 Grid - receives grids and outputs integers.;
+#X text 289 218 Grid - receives grids and outputs integers.;
+#X text 77 335 Outputs individual integers corresponding to the vector
+dimensions (number of elements in a grid).;
+#X text 284 615 All - outputs the vector dimensions as individual integers.
+;
+#X text 17 648 GridFlow 0.8.0;
+#X connect 17 0 20 0;
+#X connect 18 0 20 1;
+#X connect 19 0 20 2;
+#X connect 20 0 16 0;
+#X connect 38 0 40 0;
+#X connect 38 1 41 0;
+#X connect 38 2 42 0;
+#X connect 39 0 38 0;
diff --git a/externals/gridflow/doc/flow_classes/#print-help.pd b/externals/gridflow/doc/flow_classes/#print-help.pd
new file mode 100644
index 00000000..cea6ebd8
--- /dev/null
+++ b/externals/gridflow/doc/flow_classes/#print-help.pd
@@ -0,0 +1,68 @@
+#N canvas 38 0 738 404 10;
+#X obj 269 196 cnv 15 460 15 empty empty empty 20 12 0 14 -200249 -66577
+0;
+#X obj 279 217 cnv 15 450 15 empty empty empty 20 12 0 14 -233017 -66577
+0;
+#X obj 7 369 cnv 15 720 30 empty empty empty 20 12 0 14 -200249 -66577
+0;
+#X obj 8 6 cnv 15 720 40 empty empty empty 20 12 0 14 -233017 -66577
+0;
+#X obj 268 53 cnv 15 460 15 empty empty empty 20 12 0 14 -200249 -66577
+0;
+#X text 271 53 Arguments:;
+#X obj 8 53 cnv 15 250 15 empty empty empty 20 12 0 14 -200249 -66577
+0;
+#X text 11 53 Usage:;
+#X obj 8 73 cnv 15 250 30 empty empty empty 20 12 0 14 -233017 -66577
+0;
+#X obj 271 305 cnv 15 460 15 empty empty empty 20 12 0 14 -200249 -66577
+0;
+#X text 272 196 Inlets: (Read left to right \, inlet "0" being the
+leftmost);
+#X text 282 217 0: (Leftmost);
+#X obj 8 110 cnv 15 250 250 empty empty empty 20 12 0 14 -233017 -66577
+0;
+#X obj 105 79 #print;
+#X text 12 6 SUMMARY:;
+#X floatatom 167 212 5 0 0 0 - - -;
+#X floatatom 189 233 5 0 0 0 - - -;
+#X floatatom 211 253 5 0 0 0 - - -;
+#X obj 34 202 until;
+#X msg 34 176 27;
+#X obj 34 226 random 27;
+#X obj 167 272 #pack 3;
+#X obj 34 251 #import ( 3 3 3 );
+#X msg 35 118 open r001.jpg;
+#X obj 15 150 #in;
+#X obj 12 118 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X text 155 189 view grid info;
+#X text 101 344 view result in console;
+#X text 274 305 Related objects:;
+#X obj 460 336 rubyprint;
+#X obj 530 329 printargs;
+#X obj 279 336 #dim;
+#X obj 314 336 #export;
+#X obj 369 336 #export_list;
+#X obj 600 329 print;
+#X text 15 376 GridFLow 0.8.0;
+#X text 73 6 Displays the dimensions of a grid in the console. If the
+grid has less than two dimensions it will display all grid data.;
+#X text 284 123 Symbol - Adds a symbol (text) as a prefix before the
+printed element in the console.;
+#X text 283 87 Integer - Adds a number as a prefix before the element
+printed in the console. See here;
+#X text 282 246 Grid - Receives and outputs the dimensions of a grid.
+;
+#X obj 15 319 #print paprika;
+#X connect 15 0 21 0;
+#X connect 16 0 21 1;
+#X connect 17 0 21 2;
+#X connect 18 0 20 0;
+#X connect 19 0 18 0;
+#X connect 20 0 22 0;
+#X connect 21 0 40 0;
+#X connect 22 0 40 0;
+#X connect 23 0 24 0;
+#X connect 24 0 40 0;
+#X connect 25 0 24 0;
diff --git a/externals/gridflow/doc/flow_classes/#print-help2.pd b/externals/gridflow/doc/flow_classes/#print-help2.pd
new file mode 100644
index 00000000..d06eeebc
--- /dev/null
+++ b/externals/gridflow/doc/flow_classes/#print-help2.pd
@@ -0,0 +1,113 @@
+#N canvas 186 33 771 654 10;
+#X obj 268 45 cnv 15 460 15 empty empty empty 20 12 0 14 -158509 -66577
+0;
+#X obj 278 65 cnv 15 450 15 empty empty empty 20 12 0 14 -233017 -66577
+0;
+#X obj 8 483 cnv 15 720 30 empty empty empty 20 12 0 14 -158509 -66577
+0;
+#X obj 8 513 cnv 15 720 30 empty empty empty 20 12 0 14 -233017 -66577
+0;
+#X obj 8 5 cnv 15 720 30 empty empty empty 20 12 0 14 -233017 -66577
+0;
+#X text 12 525 KEYWORDS: control number float store;
+#X text 12 515 CATAGORY: control;
+#X text 281 65 Left:;
+#X obj 268 305 cnv 15 460 15 empty empty empty 20 12 0 14 -158509 -66577
+0;
+#X text 271 305 Arguments:;
+#X text 283 325 One - [float] accepts a single float as a creation
+argument which initializes the first value to be sent out the left
+outlet.;
+#X obj 268 375 cnv 15 460 15 empty empty empty 20 12 0 14 -158509 -66577
+0;
+#X text 271 375 Outlets:;
+#X text 283 395 One - outputs the stored floating point value of the
+object.;
+#X obj 8 45 cnv 15 250 15 empty empty empty 20 12 0 14 -158509 -66577
+0;
+#X text 11 45 Usage:;
+#X obj 8 65 cnv 15 250 30 empty empty empty 20 12 0 14 -233017 -66577
+0;
+#X obj 8 103 cnv 15 250 350 empty empty empty 20 12 0 14 -233017 -66577
+0;
+#X obj 150 73 f;
+#X text 126 73 OR;
+#X obj 452 489 pddp;
+#N canvas 58 22 261 146 Related_Objects 0;
+#X obj 3 87 cnv 15 250 15 empty empty empty 20 12 0 14 -158509 -66577
+0;
+#X obj 5 6 cnv 15 250 15 empty empty empty 20 12 0 14 -158509 -66577
+0;
+#X obj 3 107 cnv 15 250 30 empty empty empty 20 12 0 14 -233017 -66577
+0;
+#X obj 69 113 randomF;
+#X obj 138 113 lister;
+#X text 7 6 Native PD Objects (internals);
+#X text 5 87 Externals and libraries;
+#X obj 4 27 cnv 15 250 30 empty empty empty 20 12 0 14 -233017 -66577
+0;
+#X obj 70 34 int;
+#X obj 137 34 symbol;
+#X restore 15 490 pd Related_Objects;
+#N canvas 57 22 517 577 More_Info 0;
+#X text 43 24 All numbers in PD are kept in 32-bit floating point and
+can represent real numbers between -8 \, 388608 and 8.388.608.00;
+#X text 11 78 WHAT IS A FLOATING POINT NUMBER?;
+#X text 41 267 The following are examples of floating point numbers:
+;
+#X text 61 293 3;
+#X text 62 334 -111.5;
+#X text 61 313 0.5;
+#X text 40 387 3e-05 : This example is a computer shorthand for scientific
+notation. It means 3*10-5 (or 10 to the negative 5th power multiplied
+by 3).;
+#X text 41 108 According to Webopedia.com \, "computers are integer
+machines and are capable of representing real numbers only by using
+complex codes." Hence \, real numbers must be 'approximated' by computers
+using the "floating point standard". In such a number \, the decimal
+point can "float" meaning that there is no fixed number of digits preceding
+or following the decimal. A floating point number is therefore a computer's
+approximation of a real number.;
+#X text 43 453 Interesting side-note: In the early 1990's \, the Intel
+80486 was shipped with a math coprocessor to help accelerate the process
+of computing floating point numbers (which previously required a considerable
+amount of CPU power.) Math coprocessors have since found there way
+into nearly every graphics card and CPU available today.;
+#X text 62 358 10000 to 1e-16;
+#X restore 154 490 pd More_Info;
+#X text 496 490 - Dave Sabine \, November 18 \, 2002;
+#X text 10 459 doc/2.control.examples/sendnumber.pd - should be a bang/link
+;
+#X text 12 7 HELP: #print;
+#X text 12 17 DESCRIPTION: Displays values in the console.;
+#X obj 80 73 #print;
+#X text 271 45 Inlet:;
+#X text 301 111 Grid - receives a grid;
+#X floatatom 71 221 5 0 0 0 - - -;
+#X floatatom 93 242 5 0 0 0 - - -;
+#X floatatom 115 262 5 0 0 0 - - -;
+#X obj 133 349 until;
+#X msg 133 323 27;
+#X obj 133 373 random 27;
+#X obj 71 281 #pack 3;
+#X obj 133 398 #import ( 3 3 3 );
+#X obj 14 421 #print;
+#X msg 39 139 open r001.jpg;
+#X obj 39 167 #in;
+#X obj 16 139 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X text 65 420 <-- view result in console;
+#X text 12 106 view grid dimensions;
+#X text 71 190 view grid info;
+#X text 297 141 Integer - jhu;
+#X connect 30 0 36 0;
+#X connect 31 0 36 1;
+#X connect 32 0 36 2;
+#X connect 33 0 35 0;
+#X connect 34 0 33 0;
+#X connect 35 0 37 0;
+#X connect 36 0 38 0;
+#X connect 37 0 38 0;
+#X connect 39 0 40 0;
+#X connect 40 0 38 0;
+#X connect 41 0 40 0;
diff --git a/externals/gridflow/doc/flow_classes/#remap_image-help.pd b/externals/gridflow/doc/flow_classes/#remap_image-help.pd
new file mode 100644
index 00000000..95dab924
--- /dev/null
+++ b/externals/gridflow/doc/flow_classes/#remap_image-help.pd
@@ -0,0 +1,73 @@
+#N canvas 95 151 750 524 10;
+#X obj 268 25 cnv 15 460 15 empty empty empty 20 12 0 14 -200249 -66577
+0;
+#X obj 278 68 cnv 15 450 15 empty empty empty 20 12 0 14 -233017 -66577
+0;
+#X obj 8 442 cnv 15 720 30 empty empty empty 20 12 0 14 -200249 -66577
+0;
+#X obj 8 5 cnv 15 720 15 empty empty empty 20 12 0 14 -233017 -66577
+0;
+#X obj 278 140 cnv 15 450 15 empty empty empty 20 12 0 14 -233017 -66577
+0;
+#X obj 268 259 cnv 15 460 15 empty empty empty 20 12 0 14 -200249 -66577
+0;
+#X text 271 259 Outlets:;
+#X obj 8 25 cnv 15 250 15 empty empty empty 20 12 0 14 -200249 -66577
+0;
+#X text 11 25 Usage:;
+#X obj 8 45 cnv 15 250 30 empty empty empty 20 12 0 14 -233017 -66577
+0;
+#X obj 8 81 cnv 15 250 355 empty empty empty 20 12 0 14 -233017 -66577
+0;
+#X text 271 25 Inlets: (Read left to right \, inlet "0" being the leftmost)
+;
+#X text 281 68 0: (Leftmost);
+#X text 281 140 1: (Rightmost);
+#X text 12 5 SUMMARY: Transforms a grid by displacing pixels.;
+#X obj 84 51 #remap_image;
+#X text 292 88 Grid - Receives a grid that is to be transformed by
+the object connected to the rightmost inlet.;
+#X text 291 159 Numop - Receives a numereic operator \, pixel positions
+are displaced according to the mathematic operation. Click here for
+more transformation options.;
+#X msg 48 143 open b001.jpg;
+#X obj 18 86 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 18 174 #in;
+#X obj 18 112 t b b;
+#X obj 18 411 #out window;
+#X obj 97 383 #print;
+#X obj 57 213 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X floatatom 101 285 5 0 0 0 - - -;
+#X obj 68 244 #for (0 0) (240 320) (1 1);
+#X obj 82 212 metro 100;
+#X obj 82 187 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
+;
+#X obj 97 317 # /;
+#X obj 18 352 #remap_image;
+#X text 16 449 GridFlow 0.8.0;
+#X text 281 295 comment;
+#X text 285 294 comment;
+#X obj 282 299 cnv 15 450 15 empty empty empty 20 12 0 14 -233017 -66577
+0;
+#X obj 281 355 cnv 15 450 15 empty empty empty 20 12 0 14 -233017 -66577
+0;
+#X text 285 299 0: (Leftmost);
+#X text 284 355 1: (Rightmost);
+#X text 296 323 Grid - Outputs the transformend image.;
+#X text 288 375 Numop - Displays the displaced values.;
+#X text 145 284 <-- Modify the value to see transformations.;
+#X connect 18 0 20 0;
+#X connect 19 0 21 0;
+#X connect 20 0 30 0;
+#X connect 21 0 20 0;
+#X connect 21 1 18 0;
+#X connect 24 0 26 0;
+#X connect 25 0 29 1;
+#X connect 26 0 29 0;
+#X connect 27 0 26 0;
+#X connect 28 0 27 0;
+#X connect 29 0 30 1;
+#X connect 30 0 22 0;
+#X connect 30 1 23 0;
diff --git a/externals/gridflow/doc/flow_classes/#reverse-help.pd b/externals/gridflow/doc/flow_classes/#reverse-help.pd
new file mode 100644
index 00000000..441e9d40
--- /dev/null
+++ b/externals/gridflow/doc/flow_classes/#reverse-help.pd
@@ -0,0 +1,46 @@
+#N canvas 599 113 566 552 10;
+#X text 428 11 GridFlow 0.8.0;
+#X obj 258 207 #color;
+#X obj 288 391 #color;
+#X obj 259 476 display;
+#X text 15 27 [#reverse];
+#X obj 258 359 t a a;
+#X text 15 57 Swaps the values of incoming grids while preserving the
+number of Dimensions between incoming and outgoing grids.;
+#X obj 22 287 #in;
+#X obj 22 206 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X msg 52 256 open b001.jpg;
+#X obj 22 401 #out window;
+#X obj 87 289 hradio 15 1 0 6 empty empty empty 0 -6 0 8 -260818 -1
+-1 5;
+#X obj 87 307 - 3;
+#X floatatom 87 327 5 0 0 0 - - -;
+#X text 16 107 0 vertical;
+#X text 16 122 1 horizontal;
+#X text 16 135 2 rgb <-> bgr;
+#X text 16 150 -1 \, -2 \, -3 \, swaps the specicied dimensions;
+#X text 16 92 An int argument changes the behavior in this way :;
+#X obj 22 228 t b b;
+#X obj 22 344 #reverse 0;
+#X obj 258 330 #reverse 0;
+#X obj 323 275 hradio 15 1 0 6 empty empty empty 0 -6 0 8 -260818 -1
+-1 0;
+#X obj 323 293 - 3;
+#X floatatom 323 313 5 0 0 0 - - -;
+#X connect 1 0 21 0;
+#X connect 5 0 3 0;
+#X connect 5 1 2 0;
+#X connect 7 0 20 0;
+#X connect 8 0 19 0;
+#X connect 9 0 7 0;
+#X connect 11 0 12 0;
+#X connect 12 0 13 0;
+#X connect 13 0 20 1;
+#X connect 19 0 7 0;
+#X connect 19 1 9 0;
+#X connect 20 0 10 0;
+#X connect 21 0 5 0;
+#X connect 22 0 23 0;
+#X connect 23 0 24 0;
+#X connect 24 0 21 1;
diff --git a/externals/gridflow/doc/flow_classes/#rgb_to_yuv-help.pd b/externals/gridflow/doc/flow_classes/#rgb_to_yuv-help.pd
new file mode 100644
index 00000000..7ad7c3ec
--- /dev/null
+++ b/externals/gridflow/doc/flow_classes/#rgb_to_yuv-help.pd
@@ -0,0 +1,11 @@
+#N canvas 560 468 450 300 10;
+#X msg 112 64 open lena.jpg;
+#X obj 116 169 #out window;
+#X obj 88 19 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 52 84 #in;
+#X obj 60 132 #yuv_to_rgb;
+#X connect 0 0 3 0;
+#X connect 2 0 3 0;
+#X connect 3 0 4 0;
+#X connect 4 0 1 0;
diff --git a/externals/gridflow/doc/flow_classes/#rgb_to_yuv_and_#yuv_to_rgb-help.pd b/externals/gridflow/doc/flow_classes/#rgb_to_yuv_and_#yuv_to_rgb-help.pd
new file mode 100644
index 00000000..8be0a8c3
--- /dev/null
+++ b/externals/gridflow/doc/flow_classes/#rgb_to_yuv_and_#yuv_to_rgb-help.pd
@@ -0,0 +1,44 @@
+#N canvas 98 384 737 338 10;
+#X obj 267 25 cnv 15 460 15 empty empty empty 20 12 0 14 -200249 -66577
+0;
+#X obj 279 77 cnv 15 450 15 empty empty empty 20 12 0 14 -233017 -66577
+0;
+#X obj 8 306 cnv 15 720 30 empty empty empty 20 12 0 14 -200249 -66577
+0;
+#X obj 8 5 cnv 15 720 15 empty empty empty 20 12 0 14 -233017 -66577
+0;
+#X obj 266 192 cnv 15 460 15 empty empty empty 20 12 0 14 -200249 -66577
+0;
+#X text 269 191 Outlets:;
+#X obj 8 25 cnv 15 250 15 empty empty empty 20 12 0 14 -200249 -66577
+0;
+#X text 11 25 Usage:;
+#X obj 8 45 cnv 15 250 30 empty empty empty 20 12 0 14 -233017 -66577
+0;
+#X obj 8 81 cnv 15 250 220 empty empty empty 20 12 0 14 -233017 -66577
+0;
+#X text 270 25 Inlets: (Read left to right \, inlet "0" being the leftmost)
+;
+#X text 282 77 0: (Leftmost);
+#X text 12 5 SUMMARY:;
+#X obj 42 51 #rgb_to_yuv;
+#X obj 15 117 #for (0 0) (256 256) (1 1);
+#X obj 15 90 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 15 220 #clip;
+#X obj 15 143 #inner (2 3 # 0 1 0 0 0 1);
+#X obj 15 194 #yuv_to_rgb;
+#X obj 15 168 # + (200 0 0);
+#X obj 16 261 #peephole;
+#X text 289 99 Grid - Receives a grid in RGB or YUV format.;
+#X text 16 313 GridFlow 0.8.0;
+#X obj 135 51 #yuv_to_rgb;
+#X text 72 5 converts RGB colourspace to YUV colourspace or YUV to
+RGB.;
+#X text 291 224 One - outputs the converted grid.;
+#X connect 14 0 17 0;
+#X connect 15 0 14 0;
+#X connect 16 0 20 0;
+#X connect 17 0 19 0;
+#X connect 18 0 16 0;
+#X connect 19 0 18 0;
diff --git a/externals/gridflow/doc/flow_classes/#unpack-#pack-help.pd b/externals/gridflow/doc/flow_classes/#unpack-#pack-help.pd
new file mode 100644
index 00000000..cc78d8fb
--- /dev/null
+++ b/externals/gridflow/doc/flow_classes/#unpack-#pack-help.pd
@@ -0,0 +1,45 @@
+#N canvas 245 108 834 542 10;
+#X text 485 23 GridFlow 0.8.0;
+#X obj 523 257 #unpack 3;
+#X floatatom 513 305 5 0 0 0 - - -;
+#X obj 416 190 t a a;
+#X obj 333 301 display;
+#X floatatom 552 305 5 0 0 0 - - -;
+#X floatatom 591 305 5 0 0 0 - - -;
+#X text -48 51 [#unpack];
+#X obj 530 352 #pack 3;
+#X text -49 122 It takes an integer as an argument to specify the number
+of Dimensions the incoming grid has.;
+#X obj 416 76 #color;
+#X obj 516 411 #color;
+#X text -48 84 Accepts grids in its inlet and produces integers via
+its outlet.;
+#X text -39 349 [#pack];
+#X text -39 382 Accepts integers in its inlets and produces a corresponding
+grid via its outlet.;
+#X text -40 421 It takes an integer as an argument to specify the number
+of incoming integers and the corresponding number of Dimensions the
+outgoing grid will have.;
+#X obj 483 332 - 127;
+#X obj -31 190 trigger bang bang;
+#X obj 166 178 metro 100;
+#X obj 89 345 display;
+#X obj 174 272 print blah;
+#X obj 145 316 print blah2;
+#X obj 122 155 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
+1;
+#X connect 1 0 2 0;
+#X connect 1 1 5 0;
+#X connect 1 2 6 0;
+#X connect 2 0 16 0;
+#X connect 3 0 4 0;
+#X connect 3 1 1 0;
+#X connect 5 0 8 1;
+#X connect 6 0 8 2;
+#X connect 8 0 11 0;
+#X connect 10 0 3 0;
+#X connect 16 0 8 0;
+#X connect 18 0 19 0;
+#X connect 18 0 20 0;
+#X connect 18 0 21 0;
+#X connect 22 0 18 0;
diff --git a/externals/gridflow/doc/flow_classes/exec-help.pd b/externals/gridflow/doc/flow_classes/exec-help.pd
new file mode 100644
index 00000000..816e29c2
--- /dev/null
+++ b/externals/gridflow/doc/flow_classes/exec-help.pd
@@ -0,0 +1,13 @@
+#N canvas 0 0 450 267 10;
+#X text 259 22 GridFlow 0.8.0;
+#X text 50 221 see also:;
+#X obj 126 221 renamefile;
+#X obj 241 221 unix_time;
+#X obj 61 130 exec;
+#X msg 35 78 shell xlogo &;
+#X msg 144 78 shell ftp ac@artengine.ca &;
+#X obj 209 221 ls;
+#X text 141 121 Executes a program or script. It is not return a result
+\, see the PureData shell after using the ftp command.;
+#X connect 5 0 4 0;
+#X connect 6 0 4 0;
diff --git a/externals/gridflow/doc/flow_classes/listelement-help.pd b/externals/gridflow/doc/flow_classes/listelement-help.pd
new file mode 100644
index 00000000..3b86fcf3
--- /dev/null
+++ b/externals/gridflow/doc/flow_classes/listelement-help.pd
@@ -0,0 +1,61 @@
+#N canvas 103 143 732 416 10;
+#X obj 268 79 cnv 15 460 15 empty empty empty 20 12 0 14 -200249 -66577
+0;
+#X obj 279 108 cnv 15 450 15 empty empty empty 20 12 0 14 -233017 -66577
+0;
+#X obj 8 381 cnv 15 720 30 empty empty empty 20 12 0 14 -200249 -66577
+0;
+#X obj 8 5 cnv 15 720 15 empty empty empty 20 12 0 14 -233017 -66577
+0;
+#X obj 279 265 cnv 15 450 15 empty empty empty 20 12 0 14 -233017 -66577
+0;
+#X obj 268 25 cnv 15 460 15 empty empty empty 20 12 0 14 -200249 -66577
+0;
+#X text 271 25 Arguments:;
+#X obj 268 327 cnv 15 460 15 empty empty empty 20 12 0 14 -200249 -66577
+0;
+#X text 271 327 Outlets:;
+#X obj 8 25 cnv 15 250 15 empty empty empty 20 12 0 14 -200249 -66577
+0;
+#X text 11 25 Usage:;
+#X obj 8 46 cnv 15 250 30 empty empty empty 20 12 0 14 -233017 -66577
+0;
+#X obj 8 83 cnv 15 250 289 empty empty empty 20 12 0 14 -233017 -66577
+0;
+#X text 271 79 Inlets: (Read left to right \, inlet "0" being the leftmost)
+;
+#X text 282 108 0: (Leftmost);
+#X text 282 265 1: (Rightmost);
+#X text 12 5 SUMMERY:;
+#X text 73 5 Outputs one element of a list as selected by an integer.
+;
+#X floatatom 23 320 5 0 0 0 - - -;
+#X obj 23 251 listelement 0;
+#X floatatom 109 216 5 0 0 0 - - -;
+#X obj 100 320 display;
+#X obj 159 320 print;
+#X msg 61 166 1 3 hello 8 13;
+#X obj 23 134 pack 0 0;
+#X floatatom 74 103 5 0 0 0 - - -;
+#X floatatom 23 103 5 0 0 0 - - -;
+#X obj 87 52 listelement;
+#X text 286 299 Integer - index (selects the position of an element).
+;
+#X text 16 387 GridFlow 0.8.0;
+#X text 282 50 One - see inlet 0: (rightmost);
+#X text 280 139 List - An element in a list is chosen by the index
+(an integer that selects the position of an element). This element
+is sent to the outlet and can be viewed in the console using the print
+object or in a number box if displaying an integer. For example: integer
+"0" selects and outputs the first element in a list \, integer "1"
+selects and outputs the second element in a list \, integers "-1" selects
+and outputs the last element in a list.;
+#X text 287 356 One - see inlet 0: (leftmost);
+#X connect 19 0 18 0;
+#X connect 19 0 21 0;
+#X connect 19 0 22 0;
+#X connect 20 0 19 1;
+#X connect 23 0 19 0;
+#X connect 24 0 19 0;
+#X connect 25 0 24 1;
+#X connect 26 0 24 0;
diff --git a/externals/gridflow/doc/flow_classes/ls-help.pd b/externals/gridflow/doc/flow_classes/ls-help.pd
new file mode 100644
index 00000000..5bc04c39
--- /dev/null
+++ b/externals/gridflow/doc/flow_classes/ls-help.pd
@@ -0,0 +1,21 @@
+#N canvas 293 272 624 295 10;
+#X text 259 22 GridFlow 0.8.0;
+#X text 30 266 see also:;
+#X obj 106 267 renamefile;
+#X obj 189 267 unix_time;
+#X obj 67 130 ls;
+#X obj 67 48 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 25 186 listlength;
+#X floatatom 25 220 5 0 0 0 - - -;
+#X obj 107 187 display;
+#X obj 265 267 exec;
+#X msg 67 81 symbol /home;
+#X text 157 118 Similar to the Unix command 'ls'. Returns the filenames
+in a directory. May be used with [listlength] to determine the number
+of files in a directory.;
+#X connect 4 0 6 0;
+#X connect 4 0 8 0;
+#X connect 5 0 10 0;
+#X connect 6 0 7 0;
+#X connect 10 0 4 0;
diff --git a/externals/gridflow/doc/flow_classes/plotter_control-help.pd b/externals/gridflow/doc/flow_classes/plotter_control-help.pd
new file mode 100644
index 00000000..1381d341
--- /dev/null
+++ b/externals/gridflow/doc/flow_classes/plotter_control-help.pd
@@ -0,0 +1,64 @@
+#N canvas 423 134 724 349 10;
+#X text 557 11 GridFlow 0.8.0;
+#X obj 92 99 r foo;
+#X msg 557 173 print_from_ascii $*;
+#X msg 557 52 print hello_world;
+#X msg 284 54 pu;
+#X msg 284 102 pd;
+#X msg 285 205 sp 0;
+#X msg 284 154 pa 120 160;
+#X obj 557 124 unix_time;
+#X obj 557 148 @export_list;
+#X obj 557 104 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 74 255 comport 0 9600;
+#X obj 76 129 plotter_control;
+#X obj 93 158 print hpgl_commands;
+#X obj 557 196 s foo;
+#X text 324 54 pen up;
+#X text 324 102 pen down;
+#X obj 557 74 s foo;
+#X text 368 154 move to absolute position;
+#N canvas 0 0 450 300 draw_a_rectangle 0;
+#X obj 120 196 @export_list;
+#X obj 128 159 @ * ( 110 320 );
+#X msg 31 156 pu \, sp 0;
+#X obj 28 97 fork;
+#X msg 114 222 pd \, pa \$2 \$1;
+#X msg 129 100 sp 5 \, pu \, pa 0 0 \, other si 320 320;
+#X obj 115 252 s foo;
+#X obj 33 71 fork;
+#X obj 30 126 fork;
+#X msg 128 134 0 0 \, 0 1 \, 1 1 \, 1 0 \, 0 0;
+#X obj 31 35 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X connect 0 0 4 0;
+#X connect 1 0 0 0;
+#X connect 2 0 6 0;
+#X connect 3 0 8 0;
+#X connect 3 1 9 0;
+#X connect 4 0 6 0;
+#X connect 7 0 3 0;
+#X connect 7 1 5 0;
+#X connect 8 0 2 0;
+#X connect 9 0 1 0;
+#X connect 10 0 7 0;
+#X restore 557 228 pd draw_a_rectangle;
+#X text 76 9 plotter_control;
+#X text 74 280 use the comport object to interface to the plotter;
+#X obj 285 227 s foo;
+#X obj 284 176 s foo;
+#X obj 284 124 s foo;
+#X obj 284 76 s foo;
+#X text 328 207 (0...6) remove/change the pen;
+#X connect 1 0 12 0;
+#X connect 2 0 14 0;
+#X connect 3 0 17 0;
+#X connect 4 0 25 0;
+#X connect 5 0 24 0;
+#X connect 6 0 22 0;
+#X connect 7 0 23 0;
+#X connect 8 0 9 0;
+#X connect 9 0 2 0;
+#X connect 10 0 8 0;
+#X connect 12 0 13 0;
diff --git a/externals/gridflow/doc/flow_classes/renamefile-help.pd b/externals/gridflow/doc/flow_classes/renamefile-help.pd
new file mode 100644
index 00000000..70d9937c
--- /dev/null
+++ b/externals/gridflow/doc/flow_classes/renamefile-help.pd
@@ -0,0 +1,9 @@
+#N canvas 383 288 441 244 10;
+#X obj 50 120 renamefile;
+#X msg 50 76 list current_name new_name;
+#X obj 128 206 ls;
+#X text 42 208 also see :;
+#X text 313 21 GridFlow 0.8.0;
+#X text 45 157 * The path should correspond to the location of the
+file from where pd is started;
+#X connect 1 0 0 0;
diff --git a/externals/gridflow/doc/flow_classes/unix_time-help.pd b/externals/gridflow/doc/flow_classes/unix_time-help.pd
new file mode 100644
index 00000000..b0105ab5
--- /dev/null
+++ b/externals/gridflow/doc/flow_classes/unix_time-help.pd
@@ -0,0 +1,25 @@
+#N canvas 696 154 450 446 10;
+#X obj 137 107 unix_time;
+#X obj 136 68 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 78 146 #export_list;
+#X obj 167 171 display;
+#X obj 43 18 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
+;
+#X obj 283 243 nbx 9 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10
+-262144 -1 -1 0 256;
+#X obj 11 290 display;
+#X text 381 243 <-- 1/100000 th of a second \, useful for generating
+filenames;
+#X text 213 170 <-- Unix timestamp;
+#X obj 86 30 metro 500;
+#X text 274 19 GridFlow 0.8.0;
+#X text 225 88 Outputs;
+#X text 62 287 <-- Ascii format for the date;
+#X connect 0 0 2 0;
+#X connect 0 1 3 0;
+#X connect 0 2 5 0;
+#X connect 1 0 0 0;
+#X connect 2 0 6 0;
+#X connect 4 0 9 0;
+#X connect 9 0 1 0;
diff --git a/externals/gridflow/doc/format/#in-help.pd b/externals/gridflow/doc/format/#in-help.pd
new file mode 100644
index 00000000..4287c2ff
--- /dev/null
+++ b/externals/gridflow/doc/format/#in-help.pd
@@ -0,0 +1,189 @@
+#N canvas 63 0 743 682 10;
+#X obj 268 100 cnv 15 460 15 empty empty empty 20 12 0 14 -200249 -66577
+0;
+#X obj 278 120 cnv 15 450 15 empty empty empty 20 12 0 14 -233017 -66577
+0;
+#X obj 6 682 cnv 15 720 30 empty empty empty 20 12 0 14 -200249 -66577
+0;
+#X obj 8 5 cnv 15 720 15 empty empty empty 20 12 0 14 -233017 -66577
+0;
+#X obj 268 25 cnv 15 460 15 empty empty empty 20 12 0 14 -200249 -66577
+0;
+#X text 271 25 Arguments:;
+#X obj 271 513 cnv 15 460 15 empty empty empty 20 12 0 14 -200249 -66577
+0;
+#X text 274 512 Outlets:;
+#X obj 8 25 cnv 15 250 15 empty empty empty 20 12 0 14 -200249 -66577
+0;
+#X text 11 25 Usage:;
+#X obj 8 45 cnv 15 250 30 empty empty empty 20 12 0 14 -233017 -66577
+0;
+#X obj 8 85 cnv 15 250 130 empty empty empty 5 11 0 12 -233017 -1 0
+;
+#X obj 8 223 cnv 15 250 400 empty empty empty 20 12 0 14 -233017 -66577
+0;
+#X obj 269 610 cnv 15 460 15 empty empty empty 20 12 0 14 -200249 -66577
+0;
+#X text 271 100 Inlets: (Read left to right \, inlet "0" being the
+leftmost);
+#X text 281 120 0: (Leftmost);
+#X text 12 5 SUMMARY:;
+#X text 76 6 Imports a grid \, usually an image \, video or live stream.
+;
+#X obj 121 51 #in;
+#X obj 14 179 #out window;
+#X obj 14 112 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X floatatom 114 348 5 0 0 0 - - -;
+#X msg 55 348 set 2;
+#X msg 22 133 open b001.jpg;
+#X text 13 86 for images:;
+#X obj 23 564 #out window;
+#X obj 13 285 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X msg 45 326 open movie.mpeg;
+#X msg 116 398 loop 0;
+#X msg 129 426 loop 1;
+#X floatatom 47 537 5 0 0 0 - - -;
+#X msg 116 373 rewind;
+#X text 14 226 for video files:;
+#X obj 68 516 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 14 156 #in;
+#X obj 161 143 #in b001.jpg;
+#X obj 161 107 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 161 179 #out window;
+#X obj 23 501 #in;
+#X text 274 411 Message "loop 0" - turns off the loop option. The video
+stops once it reaches the end.;
+#X text 278 148 Grid - Bang sends a grid to [#out]. Since frames from
+video and live stream are read as a series of individual grids \, successive
+bangs advance through the frames.;
+#X text 277 368 Message "loop 1" - Restarts a video each time it reaches
+the end \, "loop 1" is the default setting.;
+#X obj 277 643 #import ( 1 );
+#X obj 380 643 #export;
+#X obj 442 644 #export_list;
+#X obj 539 644 #export_symbol;
+#X obj 648 644 #pack;
+#X text 282 45 One - [Filename] like [#in b001.jpg] eliminates the
+need for an "open someimege.jpg" message but limits the action to one
+specified grid.;
+#X text 277 199 Message "open" - followed by the filename \, sends
+a grid to [#out]. For example: "open b001.jpg".;
+#X text 275 456 Interger - Displays the frame number of the frame just
+sent. Applies to formats that have frame numbers \, i.e. video.;
+#X text 275 566 Bang- Signals the end of a file and when a file is
+unreadable.;
+#X text 276 337 Message "rewind" - Will rewind video to the beginning.
+;
+#X text 277 296 Message "close" - Closes the video input device. Only
+necessary when you are using a live capture device.;
+#X text 273 536 See Inlet: 1: (leftmost);
+#X text 12 689 GridFlow 0.8.0;
+#X text 272 610 See also:;
+#N canvas 0 0 656 649 more 0;
+#X msg 225 70 codec jpg;
+#X msg 220 340 framerate 33;
+#X msg 220 550 colorspace rgb;
+#X msg 221 264 size 400 600;
+#X msg 219 404 force_size 400 600;
+#X obj 23 591 #in;
+#X msg 220 607 open quicktime.mov;
+#X text 221 18 The following messages can be used to set parameters
+for video (.mov) files.;
+#X text 219 364 Number of frames per second.;
+#X text 221 145 different versions of LibQuickTime may include support
+for different codecs \, and some may also support entirely different
+wrapper formats such as AVI.;
+#X text 222 230 Codecs must be set before first frame is written.;
+#X msg 219 465 parameter jpeg_quality 85;
+#X text 218 572 Other colrspaces include rgba \, bgr \, bgra \, yuv
+\, yuva.;
+#X text 219 425 Determines window size when reading a video file.;
+#X text 580 93 comment;
+#X text 222 92 quicktime library for linux accepts LibQuickTime (libquicktime.so).
+codecs currently available are: Raw \, jpeg \, png \, mipa \, yuv2
+\, yuv4.;
+#X text 221 192 QuickTime library for Macintosh: Apple QuickTime (some
+codecs/features may not be available).;
+#X text 219 288 Sets height and width. Must be set before setting the
+codec parameters and after setting framerate and codec.;
+#X text 219 486 Sets compression quality (100 being the highest quality
+but a large file. 75-85 is the standard setting).;
+#X connect 0 0 5 0;
+#X connect 1 0 5 0;
+#X connect 2 0 5 0;
+#X connect 3 0 5 0;
+#X connect 4 0 5 0;
+#X connect 6 0 5 0;
+#X connect 11 0 5 0;
+#X restore 5 632 pd more info about quicktime files;
+#N canvas 0 0 874 655 more 0;
+#X msg 338 499 open videodev \$1 \, get;
+#X msg 53 273 brightness 1000;
+#X msg 42 250 hue 1000;
+#X msg 27 227 color 1000;
+#X msg 66 297 contrast 1000;
+#X msg 15 204 whiteness 1000;
+#X msg 537 76 channel 2;
+#X msg 537 106 tuner 2;
+#X msg 538 136 norm 2;
+#X msg 538 164 frequency 2;
+#X msg 465 267 transfer mmap 4;
+#X msg 464 390 transfer read;
+#X msg 341 612 colorspace RGB24;
+#X msg 340 555 size 400 600;
+#X obj 110 521 #in;
+#X obj 193 299 #contrast;
+#X text 167 298 or;
+#X text 339 575 Sets height and width of the input.;
+#X text 465 328 In the case of mmap \, the extra numeric argument sets
+the queue length in number of frames \, so you can select an appropriate
+tradeoff between efficiency and latency.;
+#X text 339 16 Grid Settings;
+#X text 465 291 This is the standard and fastest way to receive pictures
+from the camera.;
+#X text 465 413 Some cameras/drivers only support "transfer read" and
+not mmap.;
+#X text 13 147 Message "get brightness" or "get" followed by any of
+the other colour attributes will display its values in the console.
+;
+#X text 337 521 Opens video device.;
+#X text 341 632 Supported values are RGB24 or YUV420P.;
+#X text 10 88 Color Adjustments;
+#X text 12 115 Values from 0 to 65535;
+#X connect 0 0 14 0;
+#X connect 1 0 14 0;
+#X connect 2 0 14 0;
+#X connect 3 0 14 0;
+#X connect 4 0 14 0;
+#X connect 5 0 14 0;
+#X connect 6 0 14 0;
+#X connect 7 0 14 0;
+#X connect 8 0 14 0;
+#X connect 9 0 14 0;
+#X connect 10 0 14 0;
+#X connect 11 0 14 0;
+#X connect 12 0 14 0;
+#X connect 13 0 14 0;
+#X restore 5 657 pd more info about video devices;
+#X text 276 242 Message "set" - followed by a number will select the
+corresponding video frame. A bang must be sent to [#in] in order to
+display the frame.;
+#X connect 20 0 34 0;
+#X connect 21 0 38 0;
+#X connect 22 0 38 0;
+#X connect 23 0 34 0;
+#X connect 26 0 38 0;
+#X connect 27 0 38 0;
+#X connect 28 0 38 0;
+#X connect 29 0 38 0;
+#X connect 31 0 38 0;
+#X connect 34 0 19 0;
+#X connect 35 0 37 0;
+#X connect 36 0 35 0;
+#X connect 38 0 25 0;
+#X connect 38 1 30 0;
+#X connect 38 1 33 0;
diff --git a/externals/gridflow/doc/format/#quicktime-help.pd b/externals/gridflow/doc/format/#quicktime-help.pd
new file mode 100644
index 00000000..22a6c9d0
--- /dev/null
+++ b/externals/gridflow/doc/format/#quicktime-help.pd
@@ -0,0 +1,10 @@
+#N canvas 328 114 500 300 10;
+#X msg 93 60 codec jpg;
+#X msg 94 92 parameter jpeg_quality 75;
+#X msg 309 255 framerate 33;
+#X msg 182 229 colorspace rgb;
+#X msg 285 165 size 400 600;
+#X msg 294 92 force_size 400 600;
+#X obj 117 261 #in;
+#X msg 107 194 open quicktime.mov;
+#X connect 7 0 6 0;
diff --git a/externals/gridflow/doc/format/#videodev-help.pd b/externals/gridflow/doc/format/#videodev-help.pd
new file mode 100644
index 00000000..948b4ae4
--- /dev/null
+++ b/externals/gridflow/doc/format/#videodev-help.pd
@@ -0,0 +1,15 @@
+#N canvas 442 389 450 300 10;
+#X msg 114 236 open videodev \$1 \, get;
+#X msg 106 12 brightness 1000;
+#X msg 106 35 hue 1000;
+#X msg 107 64 color 1000;
+#X msg 107 87 contrast 1000;
+#X msg 107 120 whiteness 1000;
+#X msg 288 59 channel 2;
+#X msg 287 84 tuner 2;
+#X msg 287 107 norm 2;
+#X msg 291 138 frequency 2;
+#X msg 108 156 transfer mmap 4;
+#X msg 103 184 transfer read;
+#X msg 283 210 colorspace RGB24;
+#X msg 288 167 size 400 600;
diff --git a/externals/gridflow/extra/gf.valgrind2 b/externals/gridflow/extra/gf.valgrind2
new file mode 100644
index 00000000..d823b34b
--- /dev/null
+++ b/externals/gridflow/extra/gf.valgrind2
@@ -0,0 +1,42 @@
+{
+ hello1
+ Memcheck:Cond
+ fun:mark_locations_array
+}
+{
+ hello2
+ Memcheck:Cond
+ fun:gc_mark
+}
+{
+ hello3
+ Memcheck:Value4
+ fun:gc_mark
+}
+{
+ hello4
+ Memcheck:Cond
+ fun:gc_mark_children
+}
+{
+ hello5
+ Memcheck:Value4
+ fun:gc_mark_children
+}
+{
+ hello6
+ Memcheck:Cond
+ fun:_dl_relocate_object_internal
+}
+{
+ hello7
+ Memcheck:Value4
+ fun:st_lookup
+ fun:rb_mark_generic_ivar
+}
+{
+ hello8
+ Memcheck:Cond
+ fun:st_lookup
+ fun:rb_mark_generic_ivar
+}
diff --git a/externals/gridflow/extra/ruby.valgrind b/externals/gridflow/extra/ruby.valgrind
new file mode 100644
index 00000000..64603378
--- /dev/null
+++ b/externals/gridflow/extra/ruby.valgrind
@@ -0,0 +1,82 @@
+# From: Tanaka Akira <akr@m17n.org>
+# matz@ruby-lang.org (Yukihiro Matsumoto) writes:
+#
+#> Some reports from valgrind is due to Ruby's conservative GC, which
+#> touch all C stack region.
+#
+#I use following suppression file to suppress such reports.
+
+{
+ memcpy/rb_thread_save_context(Value1)
+ Addr1
+ fun:memcpy
+ fun:rb_thread_save_context
+}
+
+{
+ memcpy/rb_thread_restore_context(Value1)
+ Addr1
+ fun:memcpy
+ fun:rb_thread_restore_context
+}
+
+{
+ strchr/_dl_catch_error(Cond)
+ Cond
+ fun:strchr
+ obj:/lib/libc-2.2.5.so
+ fun:_dl_catch_error
+}
+
+{
+ mark_locations_array(Cond)
+ Cond
+ fun:mark_locations_array
+}
+
+{
+ mark_locations_array(Value4)
+ Value4
+ fun:mark_locations_array
+}
+
+{
+ mark_locations_array(Value4)
+ Addr4
+ fun:mark_locations_array
+}
+
+{
+ rb_gc_mark(Cond)
+ Cond
+ fun:rb_gc_mark
+}
+
+{
+ rb_gc_mark(Value4)
+ Value4
+ fun:rb_gc_mark
+}
+
+{
+ rb_gc_mark_children(Value4)
+ Value4
+ fun:rb_gc_mark_children
+}
+
+{
+ rb_gc_mark_children(Cond)
+ Cond
+ fun:rb_gc_mark_children
+}
+
+#--
+#Tanaka Akira
+
+
+# additional attempt by matju:
+{
+ libc
+ Cond
+ obj:/lib/libc-2.2.5.so
+}