aboutsummaryrefslogtreecommitdiff
path: root/externals/gridflow/doc
diff options
context:
space:
mode:
authorN.N. <matju@users.sourceforge.net>2010-01-05 17:50:51 +0000
committerN.N. <matju@users.sourceforge.net>2010-01-05 17:50:51 +0000
commit39ba8a640bd178fd732d945760df7eef3e2c1e1a (patch)
treeb59fa5bc00fcbb6389ea3ebf2c7ee8b9ced1daa8 /externals/gridflow/doc
parent8cabe6dabadf2422240ff4e9d5f5f8c95622b682 (diff)
no gridflow snapshots in pure-data svn
svn path=/trunk/; revision=12888
Diffstat (limited to 'externals/gridflow/doc')
-rw-r--r--externals/gridflow/doc/Makefile7
-rw-r--r--externals/gridflow/doc/about.pd31
-rw-r--r--externals/gridflow/doc/find_missing.rb40
-rw-r--r--externals/gridflow/doc/flow_classes/#-help.pd55
-rw-r--r--externals/gridflow/doc/flow_classes/#apply_colormap_channelwise-help.pd55
-rw-r--r--externals/gridflow/doc/flow_classes/#background_model-help.pd90
-rw-r--r--externals/gridflow/doc/flow_classes/#border-help.pd44
-rw-r--r--externals/gridflow/doc/flow_classes/#camera-help.pd49
-rw-r--r--externals/gridflow/doc/flow_classes/#cast-help.pd67
-rw-r--r--externals/gridflow/doc/flow_classes/#centroid-help.pd29
-rw-r--r--externals/gridflow/doc/flow_classes/#change-help.pd35
-rw-r--r--externals/gridflow/doc/flow_classes/#checkers-help.pd26
-rw-r--r--externals/gridflow/doc/flow_classes/#clip-help.pd70
-rw-r--r--externals/gridflow/doc/flow_classes/#cluster_avg-help.pd22
-rw-r--r--externals/gridflow/doc/flow_classes/#color-help.pd44
-rw-r--r--externals/gridflow/doc/flow_classes/#contrast-help.pd72
-rw-r--r--externals/gridflow/doc/flow_classes/#convolve-help.pd67
-rw-r--r--externals/gridflow/doc/flow_classes/#dim-help.pd39
-rw-r--r--externals/gridflow/doc/flow_classes/#downscale_by-help.pd63
-rw-r--r--externals/gridflow/doc/flow_classes/#draw_hpgl-help.pd35
-rw-r--r--externals/gridflow/doc/flow_classes/#draw_image-help.pd102
-rw-r--r--externals/gridflow/doc/flow_classes/#draw_points-help.pd56
-rw-r--r--externals/gridflow/doc/flow_classes/#draw_polygon-help.pd116
-rw-r--r--externals/gridflow/doc/flow_classes/#draw_rect-help.pd40
-rw-r--r--externals/gridflow/doc/flow_classes/#draw_slider-help.pd56
-rw-r--r--externals/gridflow/doc/flow_classes/#edit_polygon-help.pd42
-rw-r--r--externals/gridflow/doc/flow_classes/#extract_diagonal-help.pd32
-rw-r--r--externals/gridflow/doc/flow_classes/#fade-help.pd57
-rw-r--r--externals/gridflow/doc/flow_classes/#fade_lin-help.pd36
-rw-r--r--externals/gridflow/doc/flow_classes/#fastblur-help.pd90
-rw-r--r--externals/gridflow/doc/flow_classes/#fft-help.pd73
-rw-r--r--externals/gridflow/doc/flow_classes/#finished-help.pd54
-rw-r--r--externals/gridflow/doc/flow_classes/#fold-help.pd80
-rw-r--r--externals/gridflow/doc/flow_classes/#for-help.pd83
-rw-r--r--externals/gridflow/doc/flow_classes/#from_pix-help.pd89
-rw-r--r--externals/gridflow/doc/flow_classes/#gamma-help.pd29
-rw-r--r--externals/gridflow/doc/flow_classes/#grade-help.pd45
-rw-r--r--externals/gridflow/doc/flow_classes/#greyscale_to_rgb-help.pd26
-rw-r--r--externals/gridflow/doc/flow_classes/#hello-help.pd23
-rw-r--r--externals/gridflow/doc/flow_classes/#hueshift-help.pd20
-rw-r--r--externals/gridflow/doc/flow_classes/#import-help.pd88
-rw-r--r--externals/gridflow/doc/flow_classes/#in-help.pd236
-rw-r--r--externals/gridflow/doc/flow_classes/#inner-help.pd56
-rw-r--r--externals/gridflow/doc/flow_classes/#io.aalib-help.pd45
-rw-r--r--externals/gridflow/doc/flow_classes/#io.grid-help.pd44
-rw-r--r--externals/gridflow/doc/flow_classes/#io.jpeg-help.pd16
-rw-r--r--externals/gridflow/doc/flow_classes/#io.png-help.pd18
-rw-r--r--externals/gridflow/doc/flow_classes/#io.quicktime-help.pd69
-rw-r--r--externals/gridflow/doc/flow_classes/#io.videodev-help.pd77
-rw-r--r--externals/gridflow/doc/flow_classes/#io.x11-help.pd150
-rw-r--r--externals/gridflow/doc/flow_classes/#join-help.pd72
-rw-r--r--externals/gridflow/doc/flow_classes/#labelling-help.pd55
-rw-r--r--externals/gridflow/doc/flow_classes/#layer-help.pd47
-rw-r--r--externals/gridflow/doc/flow_classes/#line_to_polygon-help.pd40
-rw-r--r--externals/gridflow/doc/flow_classes/#make_arrow-help.pd20
-rw-r--r--externals/gridflow/doc/flow_classes/#make_cross-help.pd47
-rw-r--r--externals/gridflow/doc/flow_classes/#moment-help.pd164
-rw-r--r--externals/gridflow/doc/flow_classes/#moment_polar-help.pd25
-rw-r--r--externals/gridflow/doc/flow_classes/#motion_detection-help.pd83
-rw-r--r--externals/gridflow/doc/flow_classes/#mouse-help.pd99
-rw-r--r--externals/gridflow/doc/flow_classes/#noise_gate_yuvs-help.pd26
-rw-r--r--externals/gridflow/doc/flow_classes/#out-help.pd139
-rw-r--r--externals/gridflow/doc/flow_classes/#outer-help.pd105
-rw-r--r--externals/gridflow/doc/flow_classes/#pack-help.pd46
-rw-r--r--externals/gridflow/doc/flow_classes/#perspective-help.pd49
-rw-r--r--externals/gridflow/doc/flow_classes/#polygon_area-help.pd28
-rw-r--r--externals/gridflow/doc/flow_classes/#polygon_comparator-help.pd85
-rw-r--r--externals/gridflow/doc/flow_classes/#polygon_each_edge-help.pd22
-rw-r--r--externals/gridflow/doc/flow_classes/#polygon_moment-help.pd64
-rw-r--r--externals/gridflow/doc/flow_classes/#polygon_perimetre-help.pd23
-rw-r--r--externals/gridflow/doc/flow_classes/#polygon_radial_map-help.pd55
-rw-r--r--externals/gridflow/doc/flow_classes/#posterize-help.pd63
-rw-r--r--externals/gridflow/doc/flow_classes/#print-help.pd73
-rw-r--r--externals/gridflow/doc/flow_classes/#ravel-help.pd42
-rw-r--r--externals/gridflow/doc/flow_classes/#record-help.pd53
-rw-r--r--externals/gridflow/doc/flow_classes/#redim-help.pd59
-rw-r--r--externals/gridflow/doc/flow_classes/#reinterval-help.pd33
-rw-r--r--externals/gridflow/doc/flow_classes/#remap_image-help.pd53
-rw-r--r--externals/gridflow/doc/flow_classes/#reverse-help.pd65
-rw-r--r--externals/gridflow/doc/flow_classes/#rgb_to_greyscale-help.pd27
-rw-r--r--externals/gridflow/doc/flow_classes/#rgb_to_yuv-help.pd30
-rw-r--r--externals/gridflow/doc/flow_classes/#rotate-help.pd49
-rw-r--r--externals/gridflow/doc/flow_classes/#rotatificator-help.pd50
-rw-r--r--externals/gridflow/doc/flow_classes/#saturation-help.pd52
-rw-r--r--externals/gridflow/doc/flow_classes/#scale_by-help.pd57
-rw-r--r--externals/gridflow/doc/flow_classes/#scale_to-help.pd66
-rw-r--r--externals/gridflow/doc/flow_classes/#scan-help.pd48
-rw-r--r--externals/gridflow/doc/flow_classes/#seq_fold-help.pd55
-rw-r--r--externals/gridflow/doc/flow_classes/#slice-help.pd47
-rw-r--r--externals/gridflow/doc/flow_classes/#solarize-help.pd39
-rw-r--r--externals/gridflow/doc/flow_classes/#sort-help.pd45
-rw-r--r--externals/gridflow/doc/flow_classes/#spread-help.pd79
-rw-r--r--externals/gridflow/doc/flow_classes/#store-help.pd111
-rw-r--r--externals/gridflow/doc/flow_classes/#swap-help.pd25
-rw-r--r--externals/gridflow/doc/flow_classes/#t-help.pd58
-rw-r--r--externals/gridflow/doc/flow_classes/#text_to_image-help.pd24
-rw-r--r--externals/gridflow/doc/flow_classes/#to_float-help.pd29
-rw-r--r--externals/gridflow/doc/flow_classes/#to_list-help.pd31
-rw-r--r--externals/gridflow/doc/flow_classes/#to_literal-help.pd34
-rw-r--r--externals/gridflow/doc/flow_classes/#to_pix-help.pd107
-rw-r--r--externals/gridflow/doc/flow_classes/#to_symbol-help.pd52
-rw-r--r--externals/gridflow/doc/flow_classes/#transpose-help.pd37
-rw-r--r--externals/gridflow/doc/flow_classes/#type-help.pd26
-rw-r--r--externals/gridflow/doc/flow_classes/#unpack-help.pd28
-rw-r--r--externals/gridflow/doc/flow_classes/#window-help.pd33
-rw-r--r--externals/gridflow/doc/flow_classes/0x40complex_sq-help.pd52
-rw-r--r--externals/gridflow/doc/flow_classes/args-demo.pd27
-rw-r--r--externals/gridflow/doc/flow_classes/args-help.pd50
-rw-r--r--externals/gridflow/doc/flow_classes/ascii-help.pd25
-rw-r--r--externals/gridflow/doc/flow_classes/ascii_to_f-help.pd31
-rw-r--r--externals/gridflow/doc/flow_classes/cv/#CornerHarris-help.pd14
-rw-r--r--externals/gridflow/doc/flow_classes/cv/#Ellipse-help.pd24
-rw-r--r--externals/gridflow/doc/flow_classes/cv/#Invert-help.pd32
-rw-r--r--externals/gridflow/doc/flow_classes/cv/#KMeans-help.pd29
-rw-r--r--externals/gridflow/doc/flow_classes/cv/#SVD-help.pd44
-rw-r--r--externals/gridflow/doc/flow_classes/cv/#numop-help.pd60
-rw-r--r--externals/gridflow/doc/flow_classes/display-help.pd24
-rw-r--r--externals/gridflow/doc/flow_classes/doc_add-help.pd23
-rw-r--r--externals/gridflow/doc/flow_classes/doc_also-help.pd18
-rw-r--r--externals/gridflow/doc/flow_classes/doc_below-help.pd40
-rw-r--r--externals/gridflow/doc/flow_classes/doc_bottom-help.pd27
-rw-r--r--externals/gridflow/doc/flow_classes/doc_c-help.pd17
-rw-r--r--externals/gridflow/doc/flow_classes/doc_cc-help.pd15
-rw-r--r--externals/gridflow/doc/flow_classes/doc_editmode-help.pd16
-rw-r--r--externals/gridflow/doc/flow_classes/doc_exist-help.pd26
-rw-r--r--externals/gridflow/doc/flow_classes/doc_f-help.pd7
-rw-r--r--externals/gridflow/doc/flow_classes/doc_h-help.pd13
-rw-r--r--externals/gridflow/doc/flow_classes/doc_i-help.pd10
-rw-r--r--externals/gridflow/doc/flow_classes/doc_ii-help.pd15
-rw-r--r--externals/gridflow/doc/flow_classes/doc_layout-help.pd46
-rw-r--r--externals/gridflow/doc/flow_classes/doc_m-help.pd78
-rw-r--r--externals/gridflow/doc/flow_classes/doc_make-help.pd25
-rw-r--r--externals/gridflow/doc/flow_classes/doc_o-help.pd11
-rw-r--r--externals/gridflow/doc/flow_classes/doc_oo-help.pd15
-rw-r--r--externals/gridflow/doc/flow_classes/for-help.pd56
-rw-r--r--externals/gridflow/doc/flow_classes/foreach-help.pd19
-rw-r--r--externals/gridflow/doc/flow_classes/fps-help.pd71
-rw-r--r--externals/gridflow/doc/flow_classes/gf.oneshot-help.pd42
-rw-r--r--externals/gridflow/doc/flow_classes/hpgl_find_bbox-help.pd21
-rw-r--r--externals/gridflow/doc/flow_classes/hpgl_font_render-help.pd178
-rw-r--r--externals/gridflow/doc/flow_classes/hpgl_op-help.pd30
-rw-r--r--externals/gridflow/doc/flow_classes/hpgl_track_position-help.pd21
-rw-r--r--externals/gridflow/doc/flow_classes/interval_overlap-help.pd46
-rw-r--r--externals/gridflow/doc/flow_classes/inv0x2a-help.pd78
-rw-r--r--externals/gridflow/doc/flow_classes/inv0x2b-help.pd75
-rw-r--r--externals/gridflow/doc/flow_classes/list.==-help.pd23
-rw-r--r--externals/gridflow/doc/flow_classes/listappend-help.pd49
-rw-r--r--externals/gridflow/doc/flow_classes/listelement-help.pd39
-rw-r--r--externals/gridflow/doc/flow_classes/listfind-help.pd32
-rw-r--r--externals/gridflow/doc/flow_classes/listflatten-help.pd39
-rw-r--r--externals/gridflow/doc/flow_classes/listlength-help.pd41
-rw-r--r--externals/gridflow/doc/flow_classes/listprepend-help.pd51
-rw-r--r--externals/gridflow/doc/flow_classes/listread-help.pd40
-rw-r--r--externals/gridflow/doc/flow_classes/listreverse-help.pd13
-rw-r--r--externals/gridflow/doc/flow_classes/listsublist-help.pd60
-rw-r--r--externals/gridflow/doc/flow_classes/norecurse-help.pd16
-rw-r--r--externals/gridflow/doc/flow_classes/parallel_port-help.pd96
-rw-r--r--externals/gridflow/doc/flow_classes/pingpong-help.pd27
-rw-r--r--externals/gridflow/doc/flow_classes/plotter_control-help.pd79
-rw-r--r--externals/gridflow/doc/flow_classes/plotter_parser-help.pd116
-rw-r--r--externals/gridflow/doc/flow_classes/range-help.pd28
-rw-r--r--externals/gridflow/doc/flow_classes/receives-help.pd38
-rw-r--r--externals/gridflow/doc/flow_classes/route2-help.pd33
-rw-r--r--externals/gridflow/doc/flow_classes/seq_fold-help.pd46
-rw-r--r--externals/gridflow/doc/flow_classes/shunt-help.pd70
-rw-r--r--externals/gridflow/doc/flow_classes/systemtime-help.pd33
-rw-r--r--externals/gridflow/doc/flow_classes/tsctime-help.pd50
-rw-r--r--externals/gridflow/doc/flow_classes/unix_time-help.pd50
-rw-r--r--externals/gridflow/doc/flow_classes/usertime-help.pd33
-rw-r--r--externals/gridflow/doc/flow_classes/var.#-help.pd21
-rw-r--r--externals/gridflow/doc/index.pd329
-rw-r--r--externals/gridflow/doc/locale/english.tcl210
-rw-r--r--externals/gridflow/doc/make_index.tcl29
-rw-r--r--externals/gridflow/doc/moulinette.tcl215
-rw-r--r--externals/gridflow/doc/numop.pd327
-rw-r--r--externals/gridflow/doc/numtype.pd56
-rw-r--r--externals/gridflow/doc/stuff.txt144
-rw-r--r--externals/gridflow/doc/tutorials/gf_sampling_quantization.pd57
-rw-r--r--externals/gridflow/doc/tutorials/gf_tutorial_grid_1.pd25
-rw-r--r--externals/gridflow/doc/tutorials/gf_tutorial_grid_2.pd64
-rw-r--r--externals/gridflow/doc/tutorials/gf_tutorial_grid_3.pd30
-rw-r--r--externals/gridflow/doc/tutorials/gf_tutorial_image_1.pd65
-rw-r--r--externals/gridflow/doc/tutorials/gf_tutorial_image_2.pd63
-rw-r--r--externals/gridflow/doc/tutorials/gf_tutorial_image_3.pd84
-rw-r--r--externals/gridflow/doc/tutorials/gf_tutorial_image_4.pd49
-rw-r--r--externals/gridflow/doc/tutorials/gf_tutorial_image_5.pd52
-rw-r--r--externals/gridflow/doc/tutorials/gf_tutorial_image_6.pd66
-rw-r--r--externals/gridflow/doc/tutorials/gf_tutorial_image_7.pd36
-rw-r--r--externals/gridflow/doc/tutorials/gf_tutorial_image_8.pd61
-rw-r--r--externals/gridflow/doc/tutorials/gf_tutorial_image_9.pd65
-rw-r--r--externals/gridflow/doc/tutorials/gf_tutorial_intro.pd86
-rw-r--r--externals/gridflow/doc/tutorials/grid-intro.pd10
-rw-r--r--externals/gridflow/doc/tutorials/pure-data-1.pd71
-rw-r--r--externals/gridflow/doc/tutorials/pure-data-2.pd73
-rw-r--r--externals/gridflow/doc/tutorials/pure-data-3.pd70
-rw-r--r--externals/gridflow/doc/tutorials/pure-data-4.pd87
-rw-r--r--externals/gridflow/doc/tutorials/pure-data-5.pd108
-rw-r--r--externals/gridflow/doc/tutorials/pure-data-6.pd92
-rw-r--r--externals/gridflow/doc/tutorials/pure-data-7.pd106
-rw-r--r--externals/gridflow/doc/tutorials/pure-data-8.pd89
-rw-r--r--externals/gridflow/doc/tutorials/pure-data-9.pd43
201 files changed, 0 insertions, 11298 deletions
diff --git a/externals/gridflow/doc/Makefile b/externals/gridflow/doc/Makefile
deleted file mode 100644
index 865d34e7..00000000
--- a/externals/gridflow/doc/Makefile
+++ /dev/null
@@ -1,7 +0,0 @@
-all:: index.pd numop.pd numtype.pd
-
-index.pd: make_index.tcl locale/english.tcl
- tclsh make_index.tcl > index.pd
-
-numop.pd numtype.pd: moulinette.tcl
- tclsh moulinette.tcl
diff --git a/externals/gridflow/doc/about.pd b/externals/gridflow/doc/about.pd
deleted file mode 100644
index 6ebb5ad4..00000000
--- a/externals/gridflow/doc/about.pd
+++ /dev/null
@@ -1,31 +0,0 @@
-#N canvas 0 0 627 494 10;
-#X obj 0 453 doc_f;
-#N canvas 0 0 743 313 (subpatch) 0;
-#X obj 3 3 cnv 15 608 18 empty \$0-rect empty 2 9 1 13 -1 -262144 0
-;
-#X obj 511 3 cnv 15 100 18 empty \$0-rect2 GridFlow 1.0 2 9 1 12
--1 -262144 0;
-#X coords 0 -1 1 1 614 24 1 0 0;
-#X restore 0 9 pd;
-#X text 96 280 Development of GridFlow 0.3.0 - 0.5.0 was made possible
-in part by a grant from the HRDC (DRHC) to Artengine.;
-#X text 96 311 Development of... much of GridFlow 0.8.x and 0.9.0 was
-made possible in part by a grant from the CSHRC.;
-#X text 96 371 Development of GridFlow 0.9.0 was made possible in part
-by Alexandre Castonguay's cooking.;
-#X text 96 260 GridFlow is sponsored by Artengine.;
-#X text 96 73 C++ Programming : Mathieu Bouchard;
-#X text 96 100 Pd Programming (abstractions) : Mathieu Bouchard;
-#X text 96 160 Pd Help Files (former ones) and Tutorials : Darsha Hewitt
-\, Stephanie Brodeur \, Alexandre Castonguay;
-#X text 96 130 Pd Help Files (current ones) : Mathieu Bouchard \, Patrick
-Boivin;
-#X text 19 47 Credits;
-#X text 16 231 Sponsors;
-#X text 96 195 OSX porting : Mathieu Bouchard \, James Tittle \, Adam
-Lindsay \, Patrick Boivin \, and others.;
-#X text 96 341 Development of [#from_pix] and [#to_pix] was sponsored
-by Videographe PARC;
-#X text 96 400 Development of GridFlow 0.9.3 and later has used Videographe
-as a meeting place. Since 0.9.6 \, the room is called Departement de
-Diagrammologie Algorithmique.;
diff --git a/externals/gridflow/doc/find_missing.rb b/externals/gridflow/doc/find_missing.rb
deleted file mode 100644
index 5ac44da0..00000000
--- a/externals/gridflow/doc/find_missing.rb
+++ /dev/null
@@ -1,40 +0,0 @@
-#!/usr/bin/env ruby
-
-a=[]
-`grep -nriw install ../src/*.[ch]xx ../src/*.m`.each {|line|
- m=/install\(\"([^"]+)/.match(line)
- a<<m[1] if m
-}
-
-b=Dir["../abstractions/*.pd"].map{|x|
- x.gsub(/^\.\.\/abstractions\//,"").gsub(/\.pd$/,"")
-}
-
-c = Dir["flow_classes/*-help.pd" ].map{|x| x.gsub(/^flow_classes\//,"").gsub(/-help\.pd$/,"") }
-c.concat Dir["flow_classes/cv/*-help.pd"].map{|x| x.gsub(/^flow_classes\//,"").gsub(/-help\.pd$/,"") }
-ab=a+b
-
-d=[]
-File.open("index.pd") {|f|
- f.each {|line|
- m=/obj \d+ \d+ ([^ ;]+)/.match(line)
- d<<m[1] if m
- }
-}
-
-puts "missing from help files: "
-puts (ab-c).sort.join" "
-puts (ab-c).size
-puts ""
-
-puts "orphan help files:"
-puts (c-ab).sort.join" "
-puts ""
-
-puts "missing from index:"
-puts (ab-d).sort.join" "
-puts (ab-d).size
-puts ""
-
-puts "orphan index entries: "
-puts (d-ab).sort.join" "
diff --git a/externals/gridflow/doc/flow_classes/#-help.pd b/externals/gridflow/doc/flow_classes/#-help.pd
deleted file mode 100644
index 8a546e31..00000000
--- a/externals/gridflow/doc/flow_classes/#-help.pd
+++ /dev/null
@@ -1,55 +0,0 @@
-#N canvas 648 0 632 642 10;
-#X obj 139 174 #color;
-#X obj 314 174 #color;
-#X text 245 135 select values below;
-#X text 138 155 A;
-#X text 313 155 B;
-#X obj 139 240 # +;
-#X obj 178 274 #color;
-#X obj 140 380 display;
-#X obj 139 274 t a a;
-#X text 152 342 warning: #color clips value to the 0..255 range;
-#X text 152 357 so use this [display] to view the true numbers;
-#X text 54 81 click on this object to select a numop to try out:;
-#X text 55 64 # applies a simple Numeric Operator (numop).;
-#X obj 94 120 doc/numop;
-#X obj 0 0 doc_h;
-#X obj 14 439 doc_cc 0;
-#X obj 3 409 doc_c 1..2;
-#X obj 3 534 doc_i 2;
-#X obj 14 564 doc_ii 0;
-#X obj 14 735 doc_oo 0;
-#X obj 14 461 doc_cc 1;
-#X obj 14 673 doc_ii 1;
-#X obj 3 705 doc_o 1;
-#X obj 97 439 doc_m c0 numop;
-#X obj 97 463 doc_m c1 grid;
-#X obj 97 564 doc_m i0 grid;
-#X obj 97 673 doc_m i1 grid;
-#X obj 97 651 doc_m i0 numop;
-#X text 232 564 on each element of this grid \, perform the operation
-together with the corresponding element of inlet 1 in the table of
-operators (at the top of this document)elements of inlet 0 are called
-"A" and elements of inlet 1are called "B". the resulting grid is the
-same size as theone in inlet 0;
-#X text 232 439 pick a way to combine the numbers. (see the numop table)
-;
-#X text 232 673 same as arg 1;
-#X text 232 651 same as arg 0;
-#X obj 97 735 doc_m o0 grid;
-#X text 232 463 any grid \, preferably shaped like the one that will
-be put in the left inlet \, or like a subpart of it (anyway the contents
-will be redim'ed on-the-fly to fit the grid of inlet-0 \, but the stored
-grid will not be modified itself);
-#X obj 0 765 doc_f;
-#X connect 0 0 5 0;
-#X connect 1 0 5 1;
-#X connect 5 0 8 0;
-#X connect 8 0 7 0;
-#X connect 8 1 6 0;
-#X connect 13 0 5 0;
-#X connect 23 1 29 0;
-#X connect 24 1 33 0;
-#X connect 25 1 28 0;
-#X connect 26 1 30 0;
-#X connect 27 1 31 0;
diff --git a/externals/gridflow/doc/flow_classes/#apply_colormap_channelwise-help.pd b/externals/gridflow/doc/flow_classes/#apply_colormap_channelwise-help.pd
deleted file mode 100644
index 61c29ebf..00000000
--- a/externals/gridflow/doc/flow_classes/#apply_colormap_channelwise-help.pd
+++ /dev/null
@@ -1,55 +0,0 @@
-#N canvas 651 0 632 598 10;
-#X obj 25 293 #in;
-#X obj 25 342 #out window;
-#X text 232 537 Outputs the modified data as a grid.;
-#X text 12 27 This object is useful for color correction. for each
-pixel it takes it apart \, looks up each part separately in the colormap
-and constructs a new pixel from that.;
-#X obj 213 235 #for 0 256 1;
-#X obj 213 305 #outer gamma;
-#X msg 25 267 load bluemarble.jpg;
-#X obj 25 248 t b b;
-#X obj 289 261 #color 0 1024 1;
-#X msg 354 209 1024 512 256;
-#X obj 354 190 loadbang;
-#X obj 25 323 #apply_colormap_channelwise;
-#X obj 25 219 metro 100;
-#X obj 25 202 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 0 1
-;
-#X text 357 244 vary this:;
-#X obj 0 0 doc_h;
-#X obj 3 383 doc_c 0;
-#X obj 3 423 doc_i 2;
-#X obj 3 507 doc_o 1;
-#X obj 14 453 doc_ii 0;
-#X obj 14 475 doc_ii 1;
-#X obj 14 537 doc_oo 0;
-#X obj 97 453 doc_m i0 grid;
-#X text 12 70 currently works only with 3 channels at a time!;
-#X text 15 89 it also works on non-images \, for example on colormaps
-themselves \, but the last dimension must be channels \, and there
-must be three channels.;
-#X text 14 136 Note: if you just need to apply a palette on an indexed-color
-picture or greyscale picture \, you don't need this. Just use #store
-instead.;
-#X obj 0 569 doc_f;
-#X text 232 453 grid that will be modified by the colormap;
-#X text 232 475 Colormap (aka palette) is a grid[intensity \, channels]
-;
-#X obj 97 475 doc_m i1 grid;
-#X obj 97 537 doc_m o0 grid;
-#X connect 0 0 11 0;
-#X connect 4 0 5 0;
-#X connect 5 0 11 1;
-#X connect 6 0 0 0;
-#X connect 7 0 6 0;
-#X connect 7 1 4 0;
-#X connect 8 0 5 1;
-#X connect 9 0 8 0;
-#X connect 10 0 9 0;
-#X connect 11 0 1 0;
-#X connect 12 0 7 0;
-#X connect 13 0 12 0;
-#X connect 22 1 27 0;
-#X connect 29 1 28 0;
-#X connect 30 1 2 0;
diff --git a/externals/gridflow/doc/flow_classes/#background_model-help.pd b/externals/gridflow/doc/flow_classes/#background_model-help.pd
deleted file mode 100644
index 04cc2648..00000000
--- a/externals/gridflow/doc/flow_classes/#background_model-help.pd
+++ /dev/null
@@ -1,90 +0,0 @@
-#N canvas 327 0 632 642 10;
-#X obj 58 86 #camera;
-#X obj 58 50 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 0 1;
-#X obj 194 115 tgl 15 0 empty empty binaryFlag 0 -6 0 8 -24198 -1 -1
-0 1;
-#X obj 126 96 tgl 15 0 empty empty addBackground 0 -6 0 8 -24198 -1
--1 0 1;
-#X obj 266 105 hsl 128 15 0 700 0 0 empty empty outputThreshold -2
--6 0 8 -260818 -1 -1 0 1;
-#X obj 41 86 bng 15 250 50 0 empty empty empty 0 -6 0 8 -24198 -1 -1
-;
-#X obj 58 286 #greyscale_to_rgb;
-#X text 72 224 Arguments : size of buffer \, columns \, rows \, channel
-;
-#X text 70 242 <-- output is a greyscale image;
-#X obj 58 305 #out window \, title backgroundModel;
-#X obj 58 324 fps detailed;
-#X obj 58 343 print;
-#X obj 146 198 #out window \, title variance;
-#X obj 235 160 #out window \, title Mean;
-#X obj 146 160 # << 2;
-#X obj 146 179 #clip;
-#X floatatom 280 128 5 0 0 0 - - -;
-#X obj 58 267 #clip;
-#X obj 58 67 metro 33.33;
-#X obj 58 141 #background_model 20 120 160 3;
-#X obj 14 658 doc_oo 0;
-#X obj 14 680 doc_oo 1;
-#X obj 14 702 doc_oo 2;
-#X obj 14 532 doc_ii 0;
-#X obj 14 552 doc_ii 1;
-#X obj 14 574 doc_ii 2;
-#X obj 14 596 doc_ii 3;
-#X obj 14 404 doc_cc 0;
-#X obj 14 426 doc_cc 1;
-#X obj 14 448 doc_cc 2;
-#X obj 14 470 doc_cc 3;
-#X text 232 552 addBackground;
-#X text 232 574 binary_flag;
-#X text 232 596 output_threshold;
-#X text 232 404 frames;
-#X text 232 426 height;
-#X text 232 448 width;
-#X text 232 470 channels;
-#X text 232 680 variance;
-#X text 232 702 mean;
-#X text 232 658 greyscale image;
-#X obj 0 0 doc_h;
-#X obj 0 734 doc_f;
-#X obj 3 374 doc_c 4;
-#X obj 3 502 doc_i 4;
-#X obj 3 628 doc_o 3;
-#X obj 97 596 doc_m i3;
-#X obj 97 404 doc_m c0 float;
-#X obj 97 426 doc_m c1 float;
-#X obj 97 448 doc_m c2 float;
-#X obj 97 470 doc_m c3 float;
-#X obj 97 552 doc_m i1 grid;
-#X obj 97 532 doc_m i0 grid;
-#X obj 97 574 doc_m i2 float bool;
-#X obj 97 658 doc_m o0 grid;
-#X obj 97 680 doc_m o1 grid;
-#X obj 97 702 doc_m o2 grid;
-#X connect 0 0 19 0;
-#X connect 1 0 18 0;
-#X connect 2 0 19 2;
-#X connect 3 0 19 1;
-#X connect 4 0 16 0;
-#X connect 4 0 19 3;
-#X connect 5 0 0 0;
-#X connect 6 0 9 0;
-#X connect 9 0 10 0;
-#X connect 10 0 11 0;
-#X connect 14 0 15 0;
-#X connect 15 0 12 0;
-#X connect 17 0 6 0;
-#X connect 18 0 0 0;
-#X connect 19 0 17 0;
-#X connect 19 1 14 0;
-#X connect 19 2 13 0;
-#X connect 46 1 33 0;
-#X connect 47 1 34 0;
-#X connect 48 1 35 0;
-#X connect 49 1 36 0;
-#X connect 50 1 37 0;
-#X connect 51 1 31 0;
-#X connect 53 1 32 0;
-#X connect 54 1 40 0;
-#X connect 55 1 38 0;
-#X connect 56 1 39 0;
diff --git a/externals/gridflow/doc/flow_classes/#border-help.pd b/externals/gridflow/doc/flow_classes/#border-help.pd
deleted file mode 100644
index 5486c419..00000000
--- a/externals/gridflow/doc/flow_classes/#border-help.pd
+++ /dev/null
@@ -1,44 +0,0 @@
-#N canvas 597 51 632 499 10;
-#X obj 20 84 #in;
-#X obj 20 127 #out window;
-#X text 15 28 Creates a black border around an image.;
-#X msg 20 62 load working.jpg;
-#X text 232 206 top padding and left padding. defaults to (1 1 0).
-;
-#X text 232 228 bottom and right padding. defaults to (1 1 0).;
-#X obj 20 105 #border (5 10 0) (15 20 0);
-#X text 209 98 5 at the top;
-#X text 208 112 10 at the left;
-#X text 208 126 15 at the bottom;
-#X text 208 139 20 at the right;
-#X text 114 255 both arguments must have 3 elements. The third element
-is reserved for future use.;
-#X text 232 425 The original image surrounded by zero padding \, which
-usually means black pixels.;
-#X obj 14 425 doc_oo 0;
-#X obj 14 321 doc_ii 0;
-#X obj 14 341 doc_ii 1;
-#X obj 14 363 doc_ii 2;
-#X obj 14 206 doc_cc 0;
-#X obj 14 228 doc_cc 1;
-#X text 232 341 same as arg 0;
-#X text 232 363 same as arg 1;
-#X obj 0 0 doc_h;
-#X obj 0 470 doc_f;
-#X obj 3 176 doc_c 2;
-#X obj 3 291 doc_i 3;
-#X obj 3 395 doc_o 1;
-#X obj 97 206 doc_m c0 grid[3];
-#X obj 97 228 doc_m c1 grid[3];
-#X obj 97 321 doc_m i0 grid;
-#X obj 97 341 doc_m i1 list;
-#X obj 97 363 doc_m i2 list;
-#X obj 97 425 doc_m o0 grid;
-#X connect 0 0 6 0;
-#X connect 3 0 0 0;
-#X connect 6 0 1 0;
-#X connect 26 1 4 0;
-#X connect 27 1 5 0;
-#X connect 29 1 19 0;
-#X connect 30 1 20 0;
-#X connect 31 1 12 0;
diff --git a/externals/gridflow/doc/flow_classes/#camera-help.pd b/externals/gridflow/doc/flow_classes/#camera-help.pd
deleted file mode 100644
index 403f396f..00000000
--- a/externals/gridflow/doc/flow_classes/#camera-help.pd
+++ /dev/null
@@ -1,49 +0,0 @@
-#N canvas 679 40 632 557 10;
-#X obj 86 164 #out window;
-#X obj 60 45 bng 15 250 50 0 empty empty empty 0 -6 0 8 -24198 -1 -1
-;
-#X obj 86 45 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 0 1;
-#X obj 86 183 fps detailed;
-#X obj 86 202 print;
-#X obj 86 71 metro 20;
-#X text 232 496 Returns a grid from the video capture device for every
-bang.;
-#X obj 86 145 #scale_by;
-#X text 151 111 <-- open the abstraction and configure for your camera
-before sending it a bang.;
-#X obj 86 112 #camera;
-#X obj 14 496 doc_oo 0;
-#X obj 14 399 doc_ii 0;
-#X obj 14 271 doc_cc 0;
-#X text 232 399 same as arg 0;
-#X text 232 421 same as the class of the camera object being used inside:
-see #io.videodev-help.pd for a LONG list of options;
-#X text 232 293 8: a linux device using the DC-1394 interface;
-#X text 232 315 9: an OSX device using the QuickTime camera interface
-;
-#X text 232 271 0..7: a linux device using the V4L1 interface (videodev.h)
-;
-#X text 232 337 -1: none;
-#X obj 0 0 doc_h;
-#X obj 0 528 doc_f;
-#X obj 3 241 doc_c 1;
-#X obj 3 369 doc_i 1;
-#X obj 3 466 doc_o 1;
-#X obj 97 271 doc_m c0 float/int;
-#X obj 97 496 doc_m o0 grid;
-#X obj 97 399 doc_m i0 device;
-#X obj 97 421 doc_m i0 <any>;
-#X connect 0 0 3 0;
-#X connect 1 0 9 0;
-#X connect 2 0 5 0;
-#X connect 3 0 4 0;
-#X connect 5 0 9 0;
-#X connect 7 0 0 0;
-#X connect 9 0 7 0;
-#X connect 24 1 15 0;
-#X connect 24 1 16 0;
-#X connect 24 1 17 0;
-#X connect 24 1 18 0;
-#X connect 25 1 6 0;
-#X connect 26 1 13 0;
-#X connect 27 1 14 0;
diff --git a/externals/gridflow/doc/flow_classes/#cast-help.pd b/externals/gridflow/doc/flow_classes/#cast-help.pd
deleted file mode 100644
index 970a7647..00000000
--- a/externals/gridflow/doc/flow_classes/#cast-help.pd
+++ /dev/null
@@ -1,67 +0,0 @@
-#N canvas 646 0 632 564 10;
-#X obj 14 219 #print;
-#X obj 14 199 #cast float64;
-#X obj 269 218 #print;
-#X obj 126 218 #print;
-#X obj 269 198 #cast uint8;
-#X obj 126 198 #cast int32;
-#X floatatom 14 181 5 0 0 0 - - -;
-#X msg 126 177 9.8764 9 -32 0.3;
-#X obj 269 158 bng 15 250 50 0 empty empty empty 0 -6 0 8 -24198 -1
--1;
-#X obj 306 79 nbx 8 14 -1e+37 1e+37 0 1 empty empty empty 0 -6 0 10
--262144 -1 -1 2.1416 256;
-#X obj 356 96 nbx 8 14 -1e+37 1e+37 0 1 empty empty empty 0 -6 0 10
--262144 -1 -1 45 256;
-#X obj 269 177 #store;
-#X obj 306 133 #pack 3 float32;
-#X obj 14 161 bng 15 250 50 0 empty empty empty 0 -6 0 8 -24198 -1
--1;
-#X obj 126 157 bng 15 250 50 0 empty empty empty 0 -6 0 8 -24198 -1
--1;
-#X text 12 26 Changes an entity of one data type into another. Returns
-a grid of the same dimensions containing all the same values after
-type conversion. While casting to a smaller type \, overflowing values
-will be truncated.;
-#X obj 406 113 nbx 8 14 -1e+37 1e+37 0 1 empty empty empty 0 -6 0 10
--262144 -1 -1 45 256;
-#X text 232 358 Any grid;
-#X obj 14 420 doc_oo 0;
-#X obj 14 358 doc_ii 0;
-#X obj 14 283 doc_cc 0;
-#X text 232 420 Produces a grid of the same dimensions containing all
-the same values after type conversion.;
-#X text 232 455 conversion from float truncates fractional part (rounds
-towards zero);
-#X text 232 490 conversion to an int type may wrap (same as some #
-& or some # %);
-#X text 232 283 Number types are: uint8 \, int16 \, int32 \, int64
-\, float32 \, float64. see doc/numtype.pd for more info.;
-#X obj 306 154 #redim (2 2);
-#X obj 0 0 doc_h;
-#X obj 0 535 doc_f;
-#X obj 3 253 doc_c 1;
-#X obj 3 328 doc_i 1;
-#X obj 3 390 doc_o 1;
-#X obj 97 283 doc_m c0 symbol/numbertype;
-#X obj 97 358 doc_m i0 grid;
-#X obj 97 420 doc_m o0 grid;
-#X connect 1 0 0 0;
-#X connect 4 0 2 0;
-#X connect 5 0 3 0;
-#X connect 6 0 1 0;
-#X connect 7 0 5 0;
-#X connect 8 0 11 0;
-#X connect 9 0 12 0;
-#X connect 10 0 12 1;
-#X connect 11 0 4 0;
-#X connect 12 0 25 0;
-#X connect 13 0 6 0;
-#X connect 14 0 7 0;
-#X connect 16 0 12 2;
-#X connect 25 0 11 1;
-#X connect 31 1 24 0;
-#X connect 32 1 17 0;
-#X connect 33 1 21 0;
-#X connect 33 1 22 0;
-#X connect 33 1 23 0;
diff --git a/externals/gridflow/doc/flow_classes/#centroid-help.pd b/externals/gridflow/doc/flow_classes/#centroid-help.pd
deleted file mode 100644
index 81a8718f..00000000
--- a/externals/gridflow/doc/flow_classes/#centroid-help.pd
+++ /dev/null
@@ -1,29 +0,0 @@
-#N canvas 669 0 632 376 10;
-#X obj 43 44 #centroid;
-#X obj 14 163 doc_ii 0;
-#X obj 14 251 doc_oo 0;
-#X obj 14 273 doc_oo 1;
-#X obj 14 295 doc_oo 2;
-#X text 232 163 will compute the centroid of the given grid \, which
-is a weighted average \, namely \, the average position weighted by
-the pixel values.;
-#X text 138 41 obsolete. please use [#moment] instead.;
-#X obj 3 327 doc_also;
-#X obj 103 327 #moment;
-#X text 232 251 (y x);
-#X text 232 273 y;
-#X text 232 295 x;
-#X obj 0 0 doc_h;
-#X obj 0 347 doc_f;
-#X obj 3 93 doc_c;
-#X obj 3 133 doc_i 1;
-#X obj 3 221 doc_o 3;
-#X obj 97 163 doc_m i0;
-#X obj 97 251 doc_m o0 grid;
-#X obj 97 295 doc_m o2 float;
-#X obj 97 273 doc_m o1 float;
-#X connect 7 1 8 0;
-#X connect 17 1 5 0;
-#X connect 18 1 9 0;
-#X connect 19 1 11 0;
-#X connect 20 1 10 0;
diff --git a/externals/gridflow/doc/flow_classes/#change-help.pd b/externals/gridflow/doc/flow_classes/#change-help.pd
deleted file mode 100644
index cbef68ef..00000000
--- a/externals/gridflow/doc/flow_classes/#change-help.pd
+++ /dev/null
@@ -1,35 +0,0 @@
-#N canvas 646 85 632 417 10;
-#X obj 38 95 #change;
-#X text 234 116 should be to [change] what GridFlow is to PureData.
-;
-#X obj 14 278 doc_ii 0;
-#X obj 14 338 doc_oo 0;
-#X obj 14 218 doc_cc 0;
-#X obj 3 368 doc_also;
-#X obj 103 368 change;
-#X obj 38 137 print;
-#X obj 44 118 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
--1;
-#X obj 38 76 #pack;
-#X floatatom 72 58 5 0 0 0 - - -;
-#X floatatom 38 58 5 0 0 0 - - -;
-#X obj 72 41 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
--1;
-#X obj 38 41 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
--1;
-#X obj 0 0 doc_h;
-#X obj 0 388 doc_f;
-#X obj 3 188 doc_c 0..1;
-#X obj 3 248 doc_i 1;
-#X obj 3 308 doc_o 1;
-#X obj 97 218 doc_m c0 grid;
-#X obj 97 338 doc_m o0 grid;
-#X obj 97 278 doc_m i0 grid;
-#X connect 0 0 8 0;
-#X connect 0 0 7 0;
-#X connect 5 1 6 0;
-#X connect 9 0 0 0;
-#X connect 10 0 9 1;
-#X connect 11 0 9 0;
-#X connect 12 0 10 0;
-#X connect 13 0 11 0;
diff --git a/externals/gridflow/doc/flow_classes/#checkers-help.pd b/externals/gridflow/doc/flow_classes/#checkers-help.pd
deleted file mode 100644
index 1c737f08..00000000
--- a/externals/gridflow/doc/flow_classes/#checkers-help.pd
+++ /dev/null
@@ -1,26 +0,0 @@
-#N canvas 692 0 632 404 10;
-#X obj 171 66 bng 15 250 50 0 empty empty empty 0 -6 0 8 -24198 -1
--1;
-#X obj 171 135 #out window \, title checkers;
-#X obj 171 112 #checkers;
-#X text 232 330 Results in a checkered pattern of 50% / 75% greys in
-8 X 8 squares.;
-#X text 11 29 Displays a grid with a pattern of checkered squares.
-;
-#X obj 14 330 doc_oo 0;
-#X obj 14 256 doc_ii 0;
-#X obj 171 88 #for (0 0) (128 128) (1 1);
-#X text 232 256 typically the output of [#for (0 0) (height width)
-(1 1)];
-#X obj 0 0 doc_h;
-#X obj 0 375 doc_f;
-#X obj 3 186 doc_c 0;
-#X obj 3 226 doc_i 1;
-#X obj 3 300 doc_o 1;
-#X obj 97 256 doc_m i0 grid;
-#X obj 97 330 doc_m o0 grid;
-#X connect 0 0 7 0;
-#X connect 2 0 1 0;
-#X connect 7 0 2 0;
-#X connect 14 1 8 0;
-#X connect 15 1 3 0;
diff --git a/externals/gridflow/doc/flow_classes/#clip-help.pd b/externals/gridflow/doc/flow_classes/#clip-help.pd
deleted file mode 100644
index 9e494b44..00000000
--- a/externals/gridflow/doc/flow_classes/#clip-help.pd
+++ /dev/null
@@ -1,70 +0,0 @@
-#N canvas 673 6 632 610 10;
-#X obj 51 163 #in;
-#X obj 51 189 # + 42;
-#X floatatom 88 166 5 0 0 0 - - -;
-#X obj 51 270 #out window;
-#X obj 51 114 t b b;
-#X obj 51 90 metro 100;
-#X obj 51 68 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 0 1;
-#X floatatom 127 211 5 0 0 0 - - -;
-#X floatatom 87 211 5 0 0 0 - - -;
-#X text 6 25 The [#clip] object is used with numops in order to set
-a lower and upper range to pixel values. This allows you to avoid over
-saturating the colours of your grid.;
-#X text 133 165 <-- vary this number;
-#X msg 81 138 open working.jpg;
-#X text 232 410 Grid values are clipped to the high and low values
-stored in the object;
-#X text 232 529 Outputs the modified grid;
-#X obj 103 561 # min;
-#X obj 145 561 # max;
-#X obj 187 561 clip;
-#X text 223 561 #numop-help.pd;
-#X text 319 561 gf_tutorial_image_6.pd;
-#X obj 51 240 #clip 0 255;
-#X text 139 231 <--if no creation argument is given the default range
-is 0-255.;
-#X obj 3 561 doc_also;
-#X obj 14 410 doc_ii 0;
-#X obj 14 445 doc_ii 1;
-#X obj 14 467 doc_ii 2;
-#X obj 14 529 doc_oo 0;
-#X obj 14 326 doc_cc 0;
-#X obj 14 348 doc_cc 1;
-#X text 232 445 same as arg 0;
-#X text 232 467 same as arg 1;
-#X text 232 326 minimum value (like [# max]);
-#X text 232 348 maximum value (like [# min]);
-#X obj 0 0 doc_h;
-#X obj 0 581 doc_f;
-#X obj 3 296 doc_c 2;
-#X obj 3 380 doc_i 3;
-#X obj 3 499 doc_o 1;
-#X obj 97 410 doc_m i0 grid;
-#X obj 97 445 doc_m i1 float int;
-#X obj 97 467 doc_m i2 float int;
-#X obj 97 529 doc_m o0 grid;
-#X obj 97 326 doc_m c0;
-#X obj 97 348 doc_m c1;
-#X connect 0 0 1 0;
-#X connect 1 0 19 0;
-#X connect 2 0 1 1;
-#X connect 4 0 0 0;
-#X connect 4 1 11 0;
-#X connect 5 0 4 0;
-#X connect 6 0 5 0;
-#X connect 7 0 19 2;
-#X connect 8 0 19 1;
-#X connect 11 0 0 0;
-#X connect 19 0 3 0;
-#X connect 21 1 14 0;
-#X connect 21 1 15 0;
-#X connect 21 1 16 0;
-#X connect 21 1 17 0;
-#X connect 21 1 18 0;
-#X connect 37 1 12 0;
-#X connect 38 1 28 0;
-#X connect 39 1 29 0;
-#X connect 40 1 13 0;
-#X connect 41 1 30 0;
-#X connect 42 1 31 0;
diff --git a/externals/gridflow/doc/flow_classes/#cluster_avg-help.pd b/externals/gridflow/doc/flow_classes/#cluster_avg-help.pd
deleted file mode 100644
index 50e844a0..00000000
--- a/externals/gridflow/doc/flow_classes/#cluster_avg-help.pd
+++ /dev/null
@@ -1,22 +0,0 @@
-#N canvas 615 299 632 303 10;
-#X obj 14 60 doc_cc 0;
-#X obj 14 120 doc_ii 0;
-#X text 232 242 counts;
-#X text 232 220 sums;
-#X obj 14 140 doc_ii 1;
-#X obj 14 160 doc_ii 2;
-#X obj 14 220 doc_oo 0;
-#X obj 14 242 doc_oo 1;
-#X obj 0 0 doc_h;
-#X obj 0 274 doc_f;
-#X obj 3 30 doc_c 1;
-#X obj 3 90 doc_i 3;
-#X obj 3 190 doc_o 2;
-#X obj 97 160 doc_m i2 grid;
-#X obj 97 60 doc_m c0 int;
-#X obj 97 220 doc_m o0 grid;
-#X obj 97 242 doc_m o1 grid;
-#X obj 97 140 doc_m i1 float int;
-#X obj 97 120 doc_m i0 grid i;
-#X connect 15 1 3 0;
-#X connect 16 1 2 0;
diff --git a/externals/gridflow/doc/flow_classes/#color-help.pd b/externals/gridflow/doc/flow_classes/#color-help.pd
deleted file mode 100644
index 2fd0b3b7..00000000
--- a/externals/gridflow/doc/flow_classes/#color-help.pd
+++ /dev/null
@@ -1,44 +0,0 @@
-#N canvas 653 126 632 519 10;
-#X obj 126 114 #color;
-#X text 308 126 <-- vary these;
-#X text 10 27 The [#color] object contains a triple slider for RGB
-value selection on each channel.;
-#X text 198 68 <-- click here;
-#X msg 126 68 255 0 204;
-#X msg 317 79 delegate steady 0;
-#X text 103 470 [hsl];
-#X obj 3 470 doc_also;
-#X text 232 253 whether to remove the color preview;
-#X text 232 209 lower bound;
-#X text 232 231 upper bound;
-#X obj 14 425 doc_oo 0;
-#X obj 14 315 doc_ii 0;
-#X obj 14 209 doc_cc 0;
-#X obj 14 231 doc_cc 1;
-#X obj 14 253 doc_cc 2;
-#X text 232 350 sends the rest of the message as a message to each
-of the sliders but not each of the numboxes.;
-#X text 232 315 replaces the current colour value inside [#color] \,
-including sliders and numboxes.;
-#X text 232 425 of size (3) representing a rgb colour or any other
-rgb-related settings you want to control with [#color].;
-#X obj 0 0 doc_h;
-#X obj 0 490 doc_f;
-#X obj 3 179 doc_c 3;
-#X obj 3 285 doc_i 1;
-#X obj 3 395 doc_o 1;
-#X obj 97 209 doc_m c0 float;
-#X obj 97 231 doc_m c1 float;
-#X obj 97 253 doc_m c2 bool;
-#X obj 97 315 doc_m i0 grid;
-#X obj 97 350 doc_m i0 delegate;
-#X obj 97 425 doc_m o0 grid;
-#X connect 4 0 0 0;
-#X connect 5 0 0 0;
-#X connect 7 1 6 0;
-#X connect 24 1 9 0;
-#X connect 25 1 10 0;
-#X connect 26 1 8 0;
-#X connect 27 1 17 0;
-#X connect 28 1 16 0;
-#X connect 29 1 18 0;
diff --git a/externals/gridflow/doc/flow_classes/#contrast-help.pd b/externals/gridflow/doc/flow_classes/#contrast-help.pd
deleted file mode 100644
index 7136bd29..00000000
--- a/externals/gridflow/doc/flow_classes/#contrast-help.pd
+++ /dev/null
@@ -1,72 +0,0 @@
-#N canvas 678 0 632 613 10;
-#X obj 77 88 bng 15 250 50 0 empty empty empty 0 -6 0 8 -24198 -1 -1
-;
-#X obj 97 136 metro 100;
-#X obj 97 115 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
-;
-#X obj 222 134 hsl 128 15 0 256 0 0 empty empty empty -2 -6 0 8 -262144
--1 -1 0 1;
-#X obj 371 135 hsl 128 15 0 256 0 0 empty empty empty -2 -6 0 8 -262144
--1 -1 0 1;
-#X floatatom 219 154 5 0 0 0 - - -;
-#X floatatom 368 157 5 0 0 0 - - -;
-#X msg 59 65 open bluemarble.jpg;
-#X obj 190 214 #out window;
-#X obj 59 162 #in;
-#X text 8 28 Adjusts the intensity of an image.;
-#X obj 190 189 #contrast;
-#X text 232 327 This value corresponds to the master contrast \, it
-varies the amount of incoming white. The default value is 256 and it
-has no effect.;
-#X text 232 279 This value corresponds to the secondary contrast (inverse
-whiteness) \, it varies the amount of incoming black into the image.
-The default value is 256 and it has no effect.;
-#X obj 103 564 #convolve;
-#X obj 169 564 #posterize;
-#X obj 241 564 #solarize;
-#X obj 307 564 #layer;
-#X text 366 118 contrast about black;
-#X text 216 118 contrast about white;
-#X obj 3 564 doc_also;
-#X obj 14 534 doc_oo 0;
-#X obj 14 415 doc_ii 0;
-#X obj 14 450 doc_ii 1;
-#X obj 14 472 doc_ii 2;
-#X text 232 415 produces a grid like the incoming grid but with different
-constrast.;
-#X text 7 42 resulting values outside 0-255 are automatically clipped.
-;
-#X obj 14 279 doc_cc 0;
-#X obj 14 327 doc_cc 1;
-#X text 232 450 same as arg 0;
-#X text 232 472 same as arg 1;
-#X obj 0 0 doc_h;
-#X obj 0 584 doc_f;
-#X obj 3 249 doc_c 0..2;
-#X obj 3 385 doc_i 3;
-#X obj 3 504 doc_o 1;
-#X obj 97 534 doc_m o0 grid;
-#X obj 97 415 doc_m i0 grid;
-#X obj 97 327 doc_m c1 grid;
-#X obj 97 279 doc_m c0 grid;
-#X obj 97 450 doc_m i1 grid;
-#X obj 97 472 doc_m i2 grid;
-#X connect 0 0 9 0;
-#X connect 1 0 9 0;
-#X connect 2 0 1 0;
-#X connect 3 0 5 0;
-#X connect 4 0 6 0;
-#X connect 5 0 11 1;
-#X connect 6 0 11 2;
-#X connect 7 0 9 0;
-#X connect 9 0 11 0;
-#X connect 11 0 8 0;
-#X connect 20 1 14 0;
-#X connect 20 1 15 0;
-#X connect 20 1 16 0;
-#X connect 20 1 17 0;
-#X connect 37 1 25 0;
-#X connect 38 1 12 0;
-#X connect 39 1 13 0;
-#X connect 40 1 29 0;
-#X connect 41 1 30 0;
diff --git a/externals/gridflow/doc/flow_classes/#convolve-help.pd b/externals/gridflow/doc/flow_classes/#convolve-help.pd
deleted file mode 100644
index d644340d..00000000
--- a/externals/gridflow/doc/flow_classes/#convolve-help.pd
+++ /dev/null
@@ -1,67 +0,0 @@
-#N canvas 678 0 632 642 10;
-#X obj 43 87 bng 15 250 50 0 empty empty empty 0 -6 0 8 -24198 -1 -1
-;
-#X msg 255 135 1 1 1 1 1 1 1 1 1;
-#X obj 255 113 loadbang;
-#X obj 255 157 #redim (3 3);
-#X obj 43 158 #in;
-#X obj 43 241 #out window;
-#X obj 103 723 #contrast;
-#X obj 169 723 #posterize;
-#X obj 241 723 #solarize;
-#X obj 307 723 #layer;
-#X obj 43 183 #convolve \, op ^ \, fold + \, seed 0;
-#X text 14 28 [#convolve] is used to perform various transformations
-on images such as blurring \, sharpening \, finding edges \, embossing
-\, cellular automata and many others.;
-#X text 232 316 This is the convolution grid and it gets stored in
-the other object. If rows2 and/or columns 2 are odd numbers \, then
-the centre of convolution is the middle of the convolution grid. If
-they are even numbers \, then the chosen centre will be slightly more
-to the left and/or to the top \, because the actual middle is between
-celle of the grid.;
-#X obj 3 723 doc_also;
-#X obj 14 691 doc_oo 0;
-#X obj 14 443 doc_ii 0;
-#X obj 14 629 doc_ii 1;
-#X text 155 216 here ^ is the parallel operator \, fold is indicated
-by + and 0 is its base (seed).;
-#X obj 14 316 doc_cc 0;
-#X text 232 691 Resulting image.;
-#X text 232 443 Splits the incoming grid into dim(rest...) parts \,
-for each of those parts at (y \, x). A rectangle of such parts \, centered
-around (y \, x) is combined with the convolution grid like a [#] of
-operation op_para. Then each such result is folded like [#fold] of
-operation op_fold and specified base. The results are assembled into
-a grid that is sent to the outlet. Near the borders of the grid \,
-coordinates wrap around. this means the whole grid has to be received
-before production of the next grid starts.;
-#X text 232 629 same as arg 0;
-#X msg 43 135 open scissors.jpg \, bang;
-#X obj 0 0 doc_h;
-#X obj 0 743 doc_f;
-#X obj 3 286 doc_c 0..1;
-#X obj 3 413 doc_i 2;
-#X obj 3 661 doc_o 1;
-#X obj 97 443 doc_m i0 grid;
-#X obj 97 629 doc_m i1 grid;
-#X obj 97 691 doc_m o0 grid;
-#X obj 97 589 doc_m i0 op numop;
-#X obj 97 569 doc_m i0 fold numop;
-#X obj 97 609 doc_m i0 seed grid;
-#X obj 97 316 doc_m c0 grid;
-#X connect 0 0 22 0;
-#X connect 1 0 3 0;
-#X connect 2 0 1 0;
-#X connect 3 0 10 1;
-#X connect 4 0 10 0;
-#X connect 10 0 5 0;
-#X connect 13 1 6 0;
-#X connect 13 1 7 0;
-#X connect 13 1 8 0;
-#X connect 13 1 9 0;
-#X connect 22 0 4 0;
-#X connect 28 1 20 0;
-#X connect 29 1 21 0;
-#X connect 30 1 19 0;
-#X connect 34 1 12 0;
diff --git a/externals/gridflow/doc/flow_classes/#dim-help.pd b/externals/gridflow/doc/flow_classes/#dim-help.pd
deleted file mode 100644
index d86aaa70..00000000
--- a/externals/gridflow/doc/flow_classes/#dim-help.pd
+++ /dev/null
@@ -1,39 +0,0 @@
-#N canvas 647 0 632 473 10;
-#X obj 22 178 print number_of_dimensions;
-#X obj 22 106 #in;
-#X obj 22 130 #dim;
-#X obj 22 154 #to_float;
-#X text 15 37 Outputs grid dimensions (columns \, row \, channels).
-;
-#X text 232 353 The received grid is output as a one dimensional grid
-representing grid dimensions. For example \, a grid sized like dim(240
-\, 320 \, 4) [#dim] will return a grid like dim(3) whose values are
-240 \, 320 \, 4;
-#X obj 3 323 doc_o 1;
-#X obj 103 424 #print;
-#X obj 151 424 #to_float;
-#X obj 217 424 #to_list;
-#X obj 3 424 doc_also;
-#X obj 14 278 doc_ii 0;
-#X obj 14 353 doc_oo 0;
-#X obj 97 278 doc_m i0 grid;
-#X obj 97 353 doc_m o0 grid;
-#X text 185 65 Returns list of dimensions as a 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 text 232 278 ignores any data contained within. sends a grid dim(length
-of dims) containing dims.;
-#X msg 22 66 load working.jpg;
-#X obj 0 0 doc_h;
-#X obj 0 444 doc_f;
-#X obj 3 208 doc_c;
-#X obj 3 248 doc_i 1;
-#X connect 1 0 2 0;
-#X connect 2 0 3 0;
-#X connect 3 0 0 0;
-#X connect 10 1 7 0;
-#X connect 10 1 8 0;
-#X connect 10 1 9 0;
-#X connect 13 1 16 0;
-#X connect 14 1 5 0;
-#X connect 17 0 1 0;
diff --git a/externals/gridflow/doc/flow_classes/#downscale_by-help.pd b/externals/gridflow/doc/flow_classes/#downscale_by-help.pd
deleted file mode 100644
index 14f427db..00000000
--- a/externals/gridflow/doc/flow_classes/#downscale_by-help.pd
+++ /dev/null
@@ -1,63 +0,0 @@
-#N canvas 676 0 632 699 10;
-#X obj 181 115 metro 10;
-#X obj 181 96 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
-;
-#X floatatom 251 130 5 0 0 0 - - -;
-#X obj 165 144 #in;
-#X msg 165 70 open bluemarble.jpg \, bang;
-#X floatatom 295 143 5 0 0 0 - - -;
-#X obj 251 162 #pack 2;
-#X obj 165 186 #downscale_by;
-#X obj 165 212 #out window;
-#X text 9 24 Scales down a picture by a specified amount.;
-#X obj 103 650 #scale_to;
-#X obj 169 650 #scale_by;
-#X obj 0 0 doc_h;
-#X obj 3 650 doc_also;
-#X obj 3 588 doc_o 1;
-#X obj 14 618 doc_oo 0;
-#X obj 3 491 doc_i 2;
-#X obj 14 521 doc_ii 0;
-#X obj 14 556 doc_ii 1;
-#X obj 14 280 doc_cc 0;
-#X obj 97 280 doc_m c0 grid;
-#X obj 3 250 doc_c 1..2;
-#X obj 97 521 doc_m i0 grid;
-#X text 232 280 The value defines the scale factor. A pack object allows
-you to vary the horizontal and vertical values idenpendently. In the
-example above \, inlet 0 of [#pack] varies the image on a vertical
-axis \, inlet 1 of [#pack] varies the image on a horizontal axis.;
-#X obj 97 556 doc_m i1 grid;
-#X text 232 556 same as arg 0;
-#X text 232 521 Scales down picture by specified amount. (See scale
-factor above);
-#X text 232 618 grid((factor/y) (factor/x) channels);
-#X text 232 354 factor is optional (default is 2).;
-#X obj 97 618 doc_m o0 grid;
-#X obj 14 411 doc_cc 1;
-#X obj 97 411 doc_m c1 symbol;
-#X text 232 411 "smoothly": does the downscale by averaging each block
-of pixels.;
-#X text 232 446 omitted: does the downscale by keeping only the top
-right pixel in the block.;
-#X obj 0 670 doc_f;
-#X text 232 376 if it's a single value \, then that factor is to be
-used for both rows and columns.;
-#X connect 0 0 3 0;
-#X connect 1 0 0 0;
-#X connect 2 0 6 0;
-#X connect 3 0 7 0;
-#X connect 4 0 3 0;
-#X connect 5 0 6 1;
-#X connect 6 0 7 1;
-#X connect 7 0 8 0;
-#X connect 13 1 10 0;
-#X connect 13 1 11 0;
-#X connect 20 1 23 0;
-#X connect 20 1 28 0;
-#X connect 20 1 35 0;
-#X connect 22 1 26 0;
-#X connect 24 1 25 0;
-#X connect 29 1 27 0;
-#X connect 31 1 32 0;
-#X connect 31 1 33 0;
diff --git a/externals/gridflow/doc/flow_classes/#draw_hpgl-help.pd b/externals/gridflow/doc/flow_classes/#draw_hpgl-help.pd
deleted file mode 100644
index 672e4689..00000000
--- a/externals/gridflow/doc/flow_classes/#draw_hpgl-help.pd
+++ /dev/null
@@ -1,35 +0,0 @@
-#N canvas 576 129 632 396 10;
-#X obj 0 0 doc_h;
-#X obj 0 367 doc_f;
-#X obj 103 51 #draw_hpgl;
-#X obj 3 283 doc_o 2;
-#X obj 3 131 doc_i 5;
-#X obj 3 91 doc_c 0;
-#X obj 14 313 doc_oo 0;
-#X obj 14 335 doc_oo 1;
-#X obj 14 161 doc_ii 0;
-#X obj 14 183 doc_ii 1;
-#X obj 14 205 doc_ii 2;
-#X obj 14 227 doc_ii 3;
-#X obj 14 251 doc_ii 4;
-#X obj 97 227 doc_m i3 grid;
-#X obj 97 251 doc_m i4 grid;
-#X text 232 227 (x y) start;
-#X text 232 251 (x y) end;
-#X obj 97 161 doc_m i0 grid;
-#X obj 97 183 doc_m i1 grid;
-#X obj 97 205 doc_m i2 grid;
-#X text 232 161 image;
-#X text 232 183 color;
-#X text 232 205 command;
-#X obj 97 335 doc_m o1 bang;
-#X obj 97 313 doc_m o0 grid;
-#X text 232 335 time to draw;
-#X text 232 313 image drawn on;
-#X connect 13 1 15 0;
-#X connect 14 1 16 0;
-#X connect 17 1 20 0;
-#X connect 18 1 21 0;
-#X connect 19 1 22 0;
-#X connect 23 1 25 0;
-#X connect 24 1 26 0;
diff --git a/externals/gridflow/doc/flow_classes/#draw_image-help.pd b/externals/gridflow/doc/flow_classes/#draw_image-help.pd
deleted file mode 100644
index a2fd7df4..00000000
--- a/externals/gridflow/doc/flow_classes/#draw_image-help.pd
+++ /dev/null
@@ -1,102 +0,0 @@
-#N canvas 295 0 632 642 10;
-#X obj 172 147 #in;
-#X obj 135 181 #store;
-#X obj 135 46 tgl 15 0 empty empty empty 0 -6 0 8 -233017 -1 -1 0 1
-;
-#X obj 135 74 metro 40;
-#X obj 135 283 #out window \, title #draw_image-help;
-#X obj 172 99 bng 15 250 50 0 empty empty empty 0 -6 0 8 -233017 -1
--1;
-#X obj 188 209 #in;
-#X obj 188 169 bng 15 250 50 0 empty empty empty 0 -6 0 8 -233017 -1
--1;
-#X text 194 101 2 <-- open background image;
-#X text 211 171 1 <-- open foreground image;
-#X obj 387 238 #dim;
-#X obj 387 257 #to_list;
-#X obj 387 276 unpack f f;
-#X obj 393 295 pack f f;
-#X obj 393 314 # / 2;
-#X obj 368 314 # -;
-#X obj 135 307 #mouse;
-#X text 159 48 3 <-- activate rendering;
-#X msg 188 190 load g001.jpg;
-#X msg 172 120 load r001.jpg;
-#X msg 275 257 0 0;
-#X obj 275 238 loadbang;
-#X text 135 331 Move mouse cursor to change layer position;
-#X obj 0 0 doc_h;
-#X obj 3 455 doc_i 3;
-#X obj 3 775 doc_o 1;
-#X obj 14 805 doc_oo 0;
-#X obj 14 485 doc_ii 0;
-#X obj 14 708 doc_ii 1;
-#X obj 14 730 doc_ii 2;
-#X text 232 397 Normally \, you would use the "put" operator \; but
-others (like + and ^) can be interesting for color effects.;
-#X obj 135 258 #draw_image *>>8;
-#X obj 3 367 doc_c 1;
-#X obj 14 397 doc_cc 0;
-#X text 232 485 Background image.;
-#X msg 321 197 tile;
-#X text 232 708 Foreground image.;
-#X text 232 673 If 1 \, foreground image will be repeated to cover
-the background image.;
-#X text 232 529 If 1 \, foreground image (inlet 1) will be combined
-with background image (inlet 0) \, and then blended with background
-image according to transparency of foreground image \, and then inserted
-in the result. If 0 \, the blending doesn't occur \, as the transparency
-level is considered "opaque". Note that with alpha enabled \, the last
-channel of foreground image is cnsidered to represent transparency.
-;
-#X text 232 730 Initial foreground image position (y x) \, corresponding
-to top-left corner of foreground picture.;
-#X text 232 805 Resulting image.;
-#X obj 97 397 doc_m c0 numop;
-#X obj 97 485 doc_m i0 grid;
-#X obj 97 651 doc_m i0 tile;
-#X obj 97 507 doc_m i0 alpha;
-#X text 232 507 \$1=flag;
-#X text 232 651 \$1=flag;
-#X obj 97 708 doc_m i1 grid;
-#X obj 97 730 doc_m i2 (y x);
-#X obj 97 805 doc_m o0 grid;
-#X obj 0 837 doc_f;
-#X obj 97 629 doc_m i0 op;
-#X text 232 629 same as arg 0;
-#X connect 0 0 1 1;
-#X connect 1 0 31 0;
-#X connect 2 0 3 0;
-#X connect 3 0 1 0;
-#X connect 4 0 16 0;
-#X connect 5 0 19 0;
-#X connect 6 0 10 0;
-#X connect 6 0 31 1;
-#X connect 7 0 18 0;
-#X connect 10 0 11 0;
-#X connect 11 0 12 0;
-#X connect 12 0 13 0;
-#X connect 12 1 13 1;
-#X connect 13 0 14 0;
-#X connect 14 0 15 1;
-#X connect 15 0 31 2;
-#X connect 16 0 15 0;
-#X connect 16 1 15 0;
-#X connect 16 2 15 0;
-#X connect 16 3 15 0;
-#X connect 18 0 6 0;
-#X connect 19 0 0 0;
-#X connect 20 0 31 2;
-#X connect 21 0 20 0;
-#X connect 31 0 4 0;
-#X connect 35 0 31 0;
-#X connect 41 1 30 0;
-#X connect 42 1 34 0;
-#X connect 43 1 46 0;
-#X connect 43 1 37 0;
-#X connect 44 1 45 0;
-#X connect 44 1 38 0;
-#X connect 47 1 36 0;
-#X connect 48 1 39 0;
-#X connect 49 1 40 0;
-#X connect 51 1 52 0;
diff --git a/externals/gridflow/doc/flow_classes/#draw_points-help.pd b/externals/gridflow/doc/flow_classes/#draw_points-help.pd
deleted file mode 100644
index 21e2c3d2..00000000
--- a/externals/gridflow/doc/flow_classes/#draw_points-help.pd
+++ /dev/null
@@ -1,56 +0,0 @@
-#N canvas 678 62 632 584 10;
-#X msg 21 163 240 320 3 #;
-#X obj 236 155 #outer + (0 9000);
-#X obj 236 174 # cos* 100;
-#X obj 236 193 # + 120;
-#X obj 236 117 #for 0 12 1;
-#X obj 236 100 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 236 136 # * 3000;
-#X obj 237 223 display;
-#X obj 21 183 #draw_points put (255 255 0);
-#X obj 21 203 #out window;
-#X text 26 77 [#draw_points] is not yet ready for use.;
-#X obj 0 0 doc_h;
-#X obj 3 365 doc_i 3;
-#X obj 3 493 doc_o 1;
-#X obj 14 523 doc_oo 0;
-#X obj 14 395 doc_ii 0;
-#X obj 14 439 doc_ii 1;
-#X obj 14 461 doc_ii 2;
-#X obj 3 261 doc_c 0..3;
-#X obj 14 291 doc_cc 0;
-#X obj 14 311 doc_cc 1;
-#X obj 14 333 doc_cc 2;
-#X obj 0 555 doc_f;
-#X obj 97 333 doc_m c2;
-#X obj 97 523 doc_m o0 grid;
-#X obj 97 291 doc_m c0 symbol/numop;
-#X obj 97 311 doc_m c1 grid;
-#X text 232 311 color;
-#X text 232 333 points;
-#X obj 97 395 doc_m i0 grid;
-#X obj 97 439 doc_m i1 grid;
-#X obj 97 461 doc_m i2 grid;
-#X obj 97 417 doc_m i0 op;
-#X text 232 417 same as arg 0;
-#X text 232 439 same as arg 1;
-#X text 232 461 same as arg 2;
-#X text 232 395 image to be drawn on;
-#X text 232 523 image that has been drawn on;
-#X connect 0 0 8 0;
-#X connect 1 0 2 0;
-#X connect 2 0 3 0;
-#X connect 3 0 7 0;
-#X connect 3 0 8 2;
-#X connect 4 0 6 0;
-#X connect 5 0 4 0;
-#X connect 6 0 1 0;
-#X connect 8 0 9 0;
-#X connect 23 1 28 0;
-#X connect 24 1 37 0;
-#X connect 26 1 27 0;
-#X connect 29 1 36 0;
-#X connect 30 1 34 0;
-#X connect 31 1 35 0;
-#X connect 32 1 33 0;
diff --git a/externals/gridflow/doc/flow_classes/#draw_polygon-help.pd b/externals/gridflow/doc/flow_classes/#draw_polygon-help.pd
deleted file mode 100644
index a5afe5e9..00000000
--- a/externals/gridflow/doc/flow_classes/#draw_polygon-help.pd
+++ /dev/null
@@ -1,116 +0,0 @@
-#N canvas 628 21 632 642 10;
-#X obj 20 349 #out window;
-#X obj 383 128 #color;
-#X obj 383 72 loadbang;
-#X obj 272 107 # rand;
-#X obj 20 256 #clip;
-#X obj 385 199 vradio 15 1 0 3 empty empty empty 0 -8 0 10 -241291
--1 -1 0;
-#X text 402 200 fill;
-#X msg 385 265 draw \$1;
-#X obj 385 291 vradio 15 1 0 3 empty empty empty 0 -8 0 10 -241291
--1 -1 0;
-#X text 403 291 none;
-#X msg 385 357 omit \$1;
-#X text 403 306 last;
-#X text 403 320 odd;
-#X obj 385 338 listread none last odd;
-#X obj 20 37 tgl 15 0 empty empty empty 17 7 0 10 -24198 -1 -1 0 1
-;
-#X obj 43 169 #checkers;
-#X obj 43 150 #for (0 0) (240 320) (1 1);
-#X obj 272 50 f;
-#X obj 297 50 + 1;
-#X obj 272 69 sel 0;
-#X obj 235 126 #store;
-#X obj 20 75 t b b b;
-#X msg 383 109 40 80 100;
-#X obj 50 104 loadbang;
-#X obj 322 50 % 30;
-#X obj 235 164 #fade_lin 4 4;
-#X obj 20 56 metro 33.3667;
-#X obj 385 246 listread fill line point;
-#X text 402 214 line;
-#X text 402 228 point;
-#X msg 272 88 8 2 # 240 320;
-#X msg 459 110 3 # 255;
-#X msg 115 169 240 320 3 #;
-#X obj 6 188 #store;
-#X obj 27 151 bng 15 250 50 0 empty empty empty 17 7 0 10 -241291 -1
--1;
-#X obj 20 287 shunt;
-#X obj 57 288 tgl 15 0 empty empty empty 17 7 0 10 -241291 -1 -1 0
-1;
-#X obj 50 306 #fade (16 4 1);
-#X obj 0 0 doc_h;
-#X obj 3 389 doc_c 0..3;
-#X obj 3 508 doc_i 3;
-#X obj 3 614 doc_o 1;
-#X obj 14 644 doc_oo 0;
-#X obj 14 538 doc_ii 0;
-#X obj 14 560 doc_ii 1;
-#X obj 14 582 doc_ii 2;
-#X obj 14 419 doc_cc 0;
-#X obj 14 454 doc_cc 1;
-#X obj 14 476 doc_cc 2;
-#X obj 20 237 #draw_polygon ^ 1;
-#X text 232 419 Normally \, you would use the "put" operator \; but
-the + and ^ can be interesting for color effects.;
-#X text 232 538 Picture on which the polygon will be superimposed.
-;
-#X text 232 560 Color. (see argument 1);
-#X text 232 454 Color of the polygon.;
-#X text 232 644 Resulting picture.;
-#X text 232 476 Vertices of the polygon.;
-#X text 232 582 Vertices. (see argument 2);
-#X obj 97 419 doc_m c0 symbol/numop;
-#X obj 97 454 doc_m c1 grid;
-#X obj 97 476 doc_m c2 grid;
-#X obj 97 538 doc_m i0 grid;
-#X obj 97 560 doc_m i1 grid;
-#X obj 97 582 doc_m i2 grid;
-#X obj 97 644 doc_m o0 grid;
-#X obj 0 676 doc_f;
-#X connect 1 0 49 1;
-#X connect 2 0 31 0;
-#X connect 3 0 20 1;
-#X connect 4 0 35 0;
-#X connect 5 0 27 0;
-#X connect 7 0 49 0;
-#X connect 8 0 13 0;
-#X connect 10 0 49 0;
-#X connect 13 0 10 0;
-#X connect 14 0 26 0;
-#X connect 15 0 33 1;
-#X connect 16 0 15 0;
-#X connect 17 0 18 0;
-#X connect 17 0 19 0;
-#X connect 18 0 24 0;
-#X connect 19 0 30 0;
-#X connect 20 0 25 0;
-#X connect 21 0 33 0;
-#X connect 21 1 20 0;
-#X connect 21 2 17 0;
-#X connect 22 0 1 0;
-#X connect 23 0 32 0;
-#X connect 24 0 17 1;
-#X connect 25 0 49 2;
-#X connect 26 0 21 0;
-#X connect 27 0 7 0;
-#X connect 30 0 3 0;
-#X connect 31 0 1 0;
-#X connect 32 0 33 1;
-#X connect 33 0 49 0;
-#X connect 34 0 16 0;
-#X connect 35 0 0 0;
-#X connect 35 1 37 0;
-#X connect 36 0 35 1;
-#X connect 37 0 0 0;
-#X connect 49 0 4 0;
-#X connect 57 1 50 0;
-#X connect 58 1 53 0;
-#X connect 59 1 55 0;
-#X connect 60 1 51 0;
-#X connect 61 1 52 0;
-#X connect 62 1 56 0;
-#X connect 63 1 54 0;
diff --git a/externals/gridflow/doc/flow_classes/#draw_rect-help.pd b/externals/gridflow/doc/flow_classes/#draw_rect-help.pd
deleted file mode 100644
index a66a4945..00000000
--- a/externals/gridflow/doc/flow_classes/#draw_rect-help.pd
+++ /dev/null
@@ -1,40 +0,0 @@
-#N canvas 335 118 632 443 10;
-#X obj 0 0 doc_h;
-#X obj 0 414 doc_f;
-#X obj 122 57 #draw_rect;
-#X obj 14 126 doc_cc 0;
-#X obj 14 148 doc_cc 1;
-#X obj 14 170 doc_cc 2;
-#X obj 3 96 doc_c 2..3;
-#X text 232 126 op;
-#X text 232 148 color;
-#X text 232 170 polygon;
-#X obj 97 126 doc_m c0 symbol;
-#X obj 97 148 doc_m c1 grid;
-#X obj 97 170 doc_m c2 grid;
-#X obj 3 202 doc_i 3;
-#X obj 3 352 doc_o 1;
-#X obj 14 382 doc_oo 0;
-#X obj 14 232 doc_ii 0;
-#X obj 14 298 doc_ii 1;
-#X obj 14 320 doc_ii 2;
-#X obj 97 232 doc_m i0 grid;
-#X obj 97 254 doc_m i0 outline;
-#X obj 97 298 doc_m i1 grid;
-#X obj 97 320 doc_m i2 grid;
-#X text 232 298 same as arg 1;
-#X text 232 232 picture to draw on;
-#X text 232 254 0: fill rectangle;
-#X text 232 276 1: draw outline only (1 pixel thickness);
-#X text 232 382 picture drawn on;
-#X obj 97 382 doc_m o0 grid;
-#X text 232 320 same as arg 2;
-#X connect 10 1 7 0;
-#X connect 11 1 8 0;
-#X connect 12 1 9 0;
-#X connect 19 1 24 0;
-#X connect 20 1 26 0;
-#X connect 20 1 25 0;
-#X connect 21 1 23 0;
-#X connect 22 1 29 0;
-#X connect 28 1 27 0;
diff --git a/externals/gridflow/doc/flow_classes/#draw_slider-help.pd b/externals/gridflow/doc/flow_classes/#draw_slider-help.pd
deleted file mode 100644
index fa406625..00000000
--- a/externals/gridflow/doc/flow_classes/#draw_slider-help.pd
+++ /dev/null
@@ -1,56 +0,0 @@
-#N canvas 587 8 632 619 10;
-#X obj 28 87 metro 100;
-#X obj 28 70 tgl 15 0 empty empty empty 17 7 0 10 -24198 -1 -1 0 1
-;
-#X obj 28 183 #out window;
-#X text 232 413 Grid values are clipped to the high and low values
-stored in the object;
-#X text 232 558 Outputs the modified grid;
-#X text 232 448 An integer can be used to vary the minimum value of
-the range.;
-#X text 232 483 An integer can be used to vary the maximum value of
-the range.;
-#X obj 28 106 #in scissors.jpg;
-#X obj 238 89 hsl 128 15 0 127 0 0 empty empty empty -2 -8 0 10 -241291
--1 -1 0 1;
-#X text 378 88 <-- value to be displayed;
-#X msg 126 135 255 200 150;
-#X text 209 135 <-- colour;
-#X obj 28 164 #draw_slider put (0 255 0) (255 0 255) (40 40 80 200)
-0 127;
-#X text 5 25 Draws a slider-like rectangle on an image.;
-#X obj 0 0 doc_h;
-#X obj 3 383 doc_i 3;
-#X obj 3 528 doc_o 1;
-#X obj 14 558 doc_oo 0;
-#X obj 14 413 doc_ii 0;
-#X obj 14 448 doc_ii 1;
-#X obj 14 483 doc_ii 2;
-#X obj 14 253 doc_cc 0;
-#X obj 14 273 doc_cc 1;
-#X obj 14 293 doc_cc 2;
-#X obj 14 313 doc_cc 3;
-#X obj 14 333 doc_cc 4;
-#X obj 97 333 doc_m c4;
-#X obj 97 253 doc_m c0 symbol/numop;
-#X obj 97 273 doc_m c1 grid[3];
-#X obj 97 293 doc_m c2 grid[3];
-#X obj 97 313 doc_m c3 grid;
-#X obj 3 223 doc_c 6;
-#X obj 14 353 doc_cc 5;
-#X obj 97 353 doc_m c5;
-#X obj 97 413 doc_m i0 grid;
-#X obj 97 448 doc_m i1 float int;
-#X obj 97 483 doc_m i2 float int;
-#X obj 97 558 doc_m o0 grid;
-#X obj 0 590 doc_f;
-#X connect 0 0 7 0;
-#X connect 1 0 0 0;
-#X connect 7 0 12 0;
-#X connect 8 0 12 2;
-#X connect 10 0 12 1;
-#X connect 12 0 2 0;
-#X connect 34 1 3 0;
-#X connect 35 1 5 0;
-#X connect 36 1 6 0;
-#X connect 37 1 4 0;
diff --git a/externals/gridflow/doc/flow_classes/#edit_polygon-help.pd b/externals/gridflow/doc/flow_classes/#edit_polygon-help.pd
deleted file mode 100644
index 8ebd5849..00000000
--- a/externals/gridflow/doc/flow_classes/#edit_polygon-help.pd
+++ /dev/null
@@ -1,42 +0,0 @@
-#N canvas 335 118 632 440 10;
-#X obj 0 0 doc_h;
-#X obj 0 411 doc_f;
-#X obj 65 56 #edit_polygon;
-#X obj 3 95 doc_c 3;
-#X obj 14 125 doc_cc 0;
-#X obj 14 147 doc_cc 1;
-#X obj 14 169 doc_cc 2;
-#X obj 97 125 doc_m c0 symbol;
-#X text 232 125 op;
-#X text 232 147 color;
-#X text 232 169 position;
-#X obj 97 147 doc_m c1 grid;
-#X obj 97 169 doc_m c2 grid;
-#X obj 3 201 doc_i 3;
-#X obj 3 327 doc_o 2;
-#X obj 14 357 doc_oo 0;
-#X obj 14 379 doc_oo 1;
-#X obj 14 231 doc_ii 0;
-#X obj 14 273 doc_ii 1;
-#X obj 14 295 doc_ii 2;
-#X obj 97 251 doc_m i0 position;
-#X obj 97 231 doc_m i0 grid;
-#X obj 97 273 doc_m i1 grid;
-#X obj 97 295 doc_m i2 grid;
-#X text 232 295 same as arg 2;
-#X text 232 273 same as arg 1;
-#X text 232 251 from [#out window];
-#X text 201 231 picture to draw on;
-#X text 232 357 picture drawn on;
-#X obj 97 357 doc_m o0 grid;
-#X obj 97 379 doc_m o1 <none>;
-#X text 232 379 for future use;
-#X text 237 54 probably not finished coding this. (?);
-#X connect 7 1 8 0;
-#X connect 11 1 9 0;
-#X connect 12 1 10 0;
-#X connect 20 1 26 0;
-#X connect 22 1 25 0;
-#X connect 23 1 24 0;
-#X connect 29 1 28 0;
-#X connect 30 1 31 0;
diff --git a/externals/gridflow/doc/flow_classes/#extract_diagonal-help.pd b/externals/gridflow/doc/flow_classes/#extract_diagonal-help.pd
deleted file mode 100644
index f21b9272..00000000
--- a/externals/gridflow/doc/flow_classes/#extract_diagonal-help.pd
+++ /dev/null
@@ -1,32 +0,0 @@
-#N canvas 0 0 632 547 10;
-#X obj 53 82 cv/#SVD;
-#X obj 70 104 display;
-#X obj 54 174 display;
-#X msg 53 63 2 2 f # 30 40 50 60;
-#X text 53 43 numbers coming from the equation of an ellipse;
-#X text 101 85 eigenvectors show the direction of axes of the ellipse
-;
-#X text 64 155 eigenvalues show the square of the length of the axes
-;
-#X obj 23 233 #extract_diagonal;
-#X obj 36 257 display;
-#X text 130 232 just keep the diagonal of the matrix;
-#X obj 24 324 display;
-#X text 99 304 just the radiuses;
-#X obj 23 304 # sqrt (f #);
-#X obj 0 0 doc_h;
-#X obj 3 358 doc_c 0;
-#X obj 3 398 doc_i 1;
-#X obj 3 458 doc_o 1;
-#X obj 14 488 doc_oo 0;
-#X obj 14 428 doc_ii 0;
-#X obj 0 518 doc_f;
-#X obj 97 428 doc_m i0 grid;
-#X obj 97 488 doc_m o0 grid;
-#X connect 0 0 2 0;
-#X connect 0 0 7 0;
-#X connect 0 1 1 0;
-#X connect 3 0 0 0;
-#X connect 7 0 8 0;
-#X connect 7 0 12 0;
-#X connect 12 0 10 0;
diff --git a/externals/gridflow/doc/flow_classes/#fade-help.pd b/externals/gridflow/doc/flow_classes/#fade-help.pd
deleted file mode 100644
index fe3adfe5..00000000
--- a/externals/gridflow/doc/flow_classes/#fade-help.pd
+++ /dev/null
@@ -1,57 +0,0 @@
-#N canvas 676 0 632 596 10;
-#X obj 253 236 #out window;
-#X obj 131 111 bng 15 250 50 0 empty empty empty 0 -6 0 8 -24198 -1
--1;
-#X obj 131 150 #in;
-#X floatatom 295 218 5 0 0 0 - - -;
-#X obj 131 89 metro 500;
-#X obj 131 70 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
-;
-#X obj 253 113 bng 15 250 50 0 empty empty empty 0 -6 0 8 -24198 -1
--1;
-#X obj 253 152 #in;
-#X obj 253 91 metro 500;
-#X obj 253 72 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
-;
-#X obj 253 217 #fade;
-#X obj 0 0 doc_h;
-#X obj 3 390 doc_i 2;
-#X obj 3 487 doc_o 1;
-#X obj 14 517 doc_oo 0;
-#X obj 14 420 doc_ii 0;
-#X obj 14 455 doc_ii 1;
-#X obj 3 275 doc_c 1;
-#X obj 97 420 doc_m i0 grid;
-#X obj 97 455 doc_m i1 grid;
-#X text 232 332 indicates the amount of one image being blended with
-the other. (ex: Integer 5 will take 20% (one fifth) of the first image
-and blend it with 80% of the next image.;
-#X obj 3 547 doc_also;
-#X obj 103 547 lop~;
-#X obj 139 547 rzero~;
-#X obj 14 332 doc_cc 0;
-#X obj 97 332 doc_m c0 grid;
-#X text 232 455 same as arg 0;
-#X obj 97 517 doc_m o0 grid;
-#X obj 0 567 doc_f;
-#X text 232 420 grids that are blended into each other over time.;
-#X msg 131 131 load b001.jpg;
-#X msg 253 133 load r001.jpg;
-#X text 11 29 temporal low-pass filter;
-#X connect 1 0 30 0;
-#X connect 2 0 10 0;
-#X connect 3 0 10 1;
-#X connect 4 0 1 0;
-#X connect 5 0 4 0;
-#X connect 6 0 31 0;
-#X connect 7 0 10 0;
-#X connect 8 0 6 0;
-#X connect 9 0 8 0;
-#X connect 10 0 0 0;
-#X connect 18 1 29 0;
-#X connect 19 1 26 0;
-#X connect 21 1 22 0;
-#X connect 21 1 23 0;
-#X connect 25 1 20 0;
-#X connect 30 0 2 0;
-#X connect 31 0 7 0;
diff --git a/externals/gridflow/doc/flow_classes/#fade_lin-help.pd b/externals/gridflow/doc/flow_classes/#fade_lin-help.pd
deleted file mode 100644
index 189ec0b9..00000000
--- a/externals/gridflow/doc/flow_classes/#fade_lin-help.pd
+++ /dev/null
@@ -1,36 +0,0 @@
-#N canvas 684 0 632 543 10;
-#X obj 0 0 doc_h;
-#X obj 3 212 doc_c 2;
-#X obj 77 134 #fade_lin;
-#X obj 3 296 doc_i 3;
-#X obj 3 454 doc_o 1;
-#X obj 14 326 doc_ii 0;
-#X obj 14 400 doc_ii 1;
-#X obj 14 422 doc_ii 2;
-#X obj 14 484 doc_oo 0;
-#X obj 14 242 doc_cc 0;
-#X obj 14 264 doc_cc 1;
-#X obj 97 242 doc_m c0 grid;
-#X obj 97 264 doc_m c1 grid;
-#X text 232 242 maxraise;
-#X text 232 264 maxdrop;
-#X obj 97 326 doc_m i0 grid;
-#X text 232 326 produces on outlet 0 a piecewise-linear nonrecurrent
-fading according to the flow of incoming messages. For example \, if
-maxraise=2 and maxdrop=4 \, then with each new message an output is
-produced that is at most 2 more or 4 less than the previous output.
-;
-#X obj 97 400 doc_m i1 grid;
-#X obj 97 422 doc_m i2 grid;
-#X text 232 400 same as arg 0;
-#X text 232 422 same as arg 1;
-#X obj 0 514 doc_f;
-#X text 16 33 non-linear temporal lowpass filter;
-#X text 16 47 (piecewise-constant);
-#X text 14 61 it is named "lin" because it has an output similar to
-[line] \, though the input is much different.;
-#X connect 11 1 13 0;
-#X connect 12 1 14 0;
-#X connect 15 1 16 0;
-#X connect 17 1 19 0;
-#X connect 18 1 20 0;
diff --git a/externals/gridflow/doc/flow_classes/#fastblur-help.pd b/externals/gridflow/doc/flow_classes/#fastblur-help.pd
deleted file mode 100644
index 12ce00a6..00000000
--- a/externals/gridflow/doc/flow_classes/#fastblur-help.pd
+++ /dev/null
@@ -1,90 +0,0 @@
-#N canvas 310 131 632 598 10;
-#N canvas 0 0 450 300 test 0;
-#X obj 264 137 # +;
-#X obj 23 58 #for (0 0) (5 5) (1 1);
-#X obj 23 96 #fold & \, seed 1;
-#X obj 23 41 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 23 115 #convolve (3 3 # 1 2 3 4 5 6 7 8 9) \, wrap 0 \, anti
-0;
-#X obj 22 77 # == 2;
-#X obj 23 134 #print;
-#X obj 264 156 #print;
-#X connect 0 0 7 0;
-#X connect 1 0 5 0;
-#X connect 2 0 0 0;
-#X connect 2 0 4 0;
-#X connect 3 0 1 0;
-#X connect 4 0 6 0;
-#X connect 5 0 2 0;
-#X restore 403 28 pd test convolve attr;
-#X obj 20 54 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 0 1;
-#X obj 38 55 metro 33.3667;
-#X obj 100 93 loadbang;
-#X obj 84 94 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 38 110 #store;
-#X obj 38 290 #out window;
-#X obj 39 330 display;
-#X obj 38 309 fps detailed;
-#X obj 84 110 #in teapot.png;
-#X obj 248 56 f;
-#X obj 274 56 + 1;
-#X obj 149 301 #pack;
-#X obj 38 85 t b b;
-#X obj 38 131 #fastblur;
-#X obj 255 96 expr 1+100*pow(sin($f1/25) \, 4);
-#X obj 244 76 expr 1+100*pow(sin($f1/20) \, 4);
-#X obj 150 167 vsl 15 128 1 128 0 0 empty empty empty 0 -8 0 8 -262144
--1 -1 0 1;
-#X obj 170 167 vsl 15 128 1 128 0 0 empty empty empty 0 -8 0 8 -262144
--1 -1 0 1;
-#X obj 248 37 spigot;
-#X obj 294 38 tgl 15 0 empty empty empty 0 -6 0 8 -241291 -1 -1 0 1
-;
-#X obj 38 270 #gamma 700;
-#X text 313 38 AUTO;
-#X obj 0 0 doc_h;
-#X obj 3 423 doc_i 2;
-#X obj 3 361 doc_c 1;
-#X obj 3 507 doc_o 1;
-#X obj 14 537 doc_oo 0;
-#X obj 14 453 doc_ii 0;
-#X obj 14 475 doc_ii 1;
-#X obj 14 391 doc_cc 0;
-#X obj 0 569 doc_f;
-#X obj 97 537 doc_m o0;
-#X obj 97 391 doc_m c0 grid;
-#X text 232 391 (y x) kernel size;
-#X obj 97 453 doc_m i0 grid;
-#X obj 97 475 doc_m i1 grid;
-#X text 232 475 same as arg 0;
-#X text 232 453 image to be blurred;
-#X text 232 537 image blurred;
-#X connect 1 0 2 0;
-#X connect 2 0 13 0;
-#X connect 3 0 9 0;
-#X connect 4 0 9 0;
-#X connect 5 0 14 0;
-#X connect 6 0 8 0;
-#X connect 8 0 7 0;
-#X connect 9 0 5 1;
-#X connect 10 0 11 0;
-#X connect 10 0 15 0;
-#X connect 10 0 16 0;
-#X connect 11 0 10 1;
-#X connect 12 0 14 1;
-#X connect 13 0 5 0;
-#X connect 13 1 19 0;
-#X connect 14 0 21 0;
-#X connect 15 0 18 0;
-#X connect 16 0 17 0;
-#X connect 17 0 12 0;
-#X connect 18 0 12 1;
-#X connect 19 0 10 0;
-#X connect 20 0 19 1;
-#X connect 21 0 6 0;
-#X connect 32 1 39 0;
-#X connect 33 1 34 0;
-#X connect 35 1 38 0;
-#X connect 36 1 37 0;
diff --git a/externals/gridflow/doc/flow_classes/#fft-help.pd b/externals/gridflow/doc/flow_classes/#fft-help.pd
deleted file mode 100644
index 1b240df9..00000000
--- a/externals/gridflow/doc/flow_classes/#fft-help.pd
+++ /dev/null
@@ -1,73 +0,0 @@
-#N canvas 653 206 632 642 10;
-#X obj 13 144 #cast f;
-#X obj 13 236 #cast i;
-#X obj 13 86 #in teapot.png;
-#X obj 32 64 loadbang;
-#X obj 13 65 bng 15 250 50 0 empty empty empty 0 -6 0 8 -24198 -1 -1
-;
-#X obj 13 106 t a a;
-#X obj 13 198 #fft;
-#X msg 23 169 help;
-#X msg 43 197 skip \$1;
-#X obj 64 163 tgl 15 0 empty empty empty 0 -6 0 8 -241291 -1 -1 0 1
-;
-#X obj 52 106 s orig;
-#X obj 66 312 r orig;
-#X obj 13 331 #out window;
-#X obj 13 274 # + 128;
-#X obj 13 293 #clip;
-#X obj 13 125 #outer * (1 0);
-#X obj 13 255 #inner (1 0);
-#X text 89 255 convert complex to real (kicking dummy imaginary);
-#X text 100 125 convert real to complex (introducing dummy imaginary=0)
-;
-#X obj 13 217 # / (f # 16);
-#X obj 0 0 doc_h;
-#X obj 3 355 doc_c 0;
-#X obj 3 395 doc_i 1;
-#X obj 3 589 doc_o 1;
-#X obj 14 619 doc_oo 0;
-#X obj 14 425 doc_ii 0;
-#X obj 0 651 doc_f;
-#X obj 13 312 #join 1;
-#X obj 97 619 doc_m o0 grid;
-#X obj 97 425 doc_m i0 grid;
-#X obj 97 491 doc_m i0 sign;
-#X obj 97 535 doc_m i0 skip;
-#X text 232 557 1: skip the y dimension (do fft only along x);
-#X text 20 35 spatial fft;
-#X obj 97 447 doc_m i0 real;
-#X text 232 535 0: don't skip the y dimension (do fft along both y
-and x);
-#X text 232 491 1: forward fft;
-#X text 232 513 -1: backward fft;
-#X text 232 447 0: complex fft;
-#X text 232 469 1: real fft;
-#X text 232 425 grid to apply fft on;
-#X text 232 619 grid that fft was applied on;
-#X connect 0 0 6 0;
-#X connect 1 0 16 0;
-#X connect 2 0 5 0;
-#X connect 3 0 2 0;
-#X connect 4 0 2 0;
-#X connect 5 0 15 0;
-#X connect 5 1 10 0;
-#X connect 6 0 19 0;
-#X connect 7 0 6 0;
-#X connect 8 0 6 0;
-#X connect 9 0 8 0;
-#X connect 11 0 27 1;
-#X connect 13 0 14 0;
-#X connect 14 0 27 0;
-#X connect 15 0 0 0;
-#X connect 16 0 13 0;
-#X connect 19 0 1 0;
-#X connect 27 0 12 0;
-#X connect 28 1 41 0;
-#X connect 29 1 40 0;
-#X connect 30 1 36 0;
-#X connect 30 1 37 0;
-#X connect 31 1 32 0;
-#X connect 31 1 35 0;
-#X connect 34 1 39 0;
-#X connect 34 1 38 0;
diff --git a/externals/gridflow/doc/flow_classes/#finished-help.pd b/externals/gridflow/doc/flow_classes/#finished-help.pd
deleted file mode 100644
index 46a31bdb..00000000
--- a/externals/gridflow/doc/flow_classes/#finished-help.pd
+++ /dev/null
@@ -1,54 +0,0 @@
-#N canvas 648 0 632 642 10;
-#X text 21 37 a bang is emitted every time a grid transmission ends
-;
-#X obj 23 114 bng 15 250 50 0 empty empty empty 0 -6 0 8 -233017 -1
--1;
-#X obj 23 85 #finished;
-#X obj 0 0 doc_h;
-#X obj 3 568 doc_i 1;
-#X obj 3 630 doc_o 1;
-#X obj 3 528 doc_c 0;
-#X obj 14 660 doc_oo 0;
-#X obj 14 598 doc_ii 0;
-#X obj 97 598 doc_m i0 grid;
-#X obj 97 660 doc_m o0 bang;
-#X text 232 598 a bang is emitted every time a grid transmission ends.
-;
-#X obj 0 710 doc_f;
-#X obj 23 66 t a a;
-#X obj 89 66 #convolve (1 3 # 1 2 1);
-#X text 90 85 this is a pattern where [t b a] doesn't cut it \, because
-the bang would be output too early \, as it gets output at GRID_BEGIN
-time (the time at which the grid message is sent). But [#convolve]
-only outputs its contents after GRID_FLOW time \, which is what [#finished]
-ensures. However you still need a [t a a] \, because [#finished]'s
-GRID_FINISH time must happen after [#convolve]'s GRID_FINISH \, so
-that you can be sure that [#convolve] is really finished with producing
-its output.;
-#X obj 3 690 doc_also;
-#X obj 103 690 #t;
-#X text 39 278 the 2nd exception is that it definitely doesn't support
-any control-recursion (an object can't start processing a new message
-before it has finished processing its message).;
-#X obj 410 221 pdp_qt;
-#X obj 410 252 print;
-#X msg 409 199;
-#X text 40 327 the third exception is that the GRID atom type is not
-officially recognised by PureData because PureData provides no means
-for externals to register new atom types. You can see the effect of
-this in how GEM uses the POINTER atom type in an unstable way (which
-is also how GridFlow used to do it);
-#X text 38 215 this is one of GridFlow's exceptions to how much grid-processing
-is like normal pd message passing. there is also the [#t] class that
-provides a shortcut for the most common use pattern of [#t].;
-#X text 41 416 the fourth exception is that GridInlets support multiple
-selectors with quite peculiar autocasts \, meaning that [# +] can't
-support the equivalent of the 'list' message in the [+] class.;
-#X text 40 479 much of the text of this page should really go somewhere
-else \, but there is no place for it yet.;
-#X connect 2 0 1 0;
-#X connect 9 1 11 0;
-#X connect 13 0 2 0;
-#X connect 13 1 14 0;
-#X connect 16 1 17 0;
-#X connect 19 0 20 0;
diff --git a/externals/gridflow/doc/flow_classes/#fold-help.pd b/externals/gridflow/doc/flow_classes/#fold-help.pd
deleted file mode 100644
index 0120aad9..00000000
--- a/externals/gridflow/doc/flow_classes/#fold-help.pd
+++ /dev/null
@@ -1,80 +0,0 @@
-#N canvas 678 0 632 661 10;
-#X obj 98 184 display;
-#X obj 29 252 display;
-#X text 26 38 Treats the grid as a grid of one- dimensional grids such
-that the same operation (here addition) will be performed on all its
-elements together with the base value. the results are combined back.
-each #fold operation removes a dimension. syntax: #fold <two-input
-operation> <starting value>;
-#X obj 143 249 #to_float;
-#X obj 143 274 print values;
-#X text 6 721 some other forms:;
-#X obj 140 722 #fold *;
-#X obj 17 695 #fold + \, seed 0;
-#X obj 211 722 #fold ^;
-#X obj 284 722 #fold &;
-#X obj 355 722 #fold |;
-#N canvas 0 0 500 313 more 1;
-#X obj 98 82 display;
-#X obj 28 48 #import (2 2 2);
-#X obj 29 170 display;
-#X msg 28 27 1 3 1 3 1 3 1 5;
-#X text 154 24 <-- clicking here creates a grid through [#import];
-#X obj 122 170 #to_float;
-#X obj 122 195 print values;
-#X obj 28 137 #fold + \, seed (0 0);
-#X connect 1 0 0 0;
-#X connect 1 0 7 0;
-#X connect 3 0 1 0;
-#X connect 5 0 6 0;
-#X connect 7 0 2 0;
-#X connect 7 0 5 0;
-#X restore 160 694 pd more info;
-#X msg 28 129 1 3 1 3 1 3 1 3 1 3 1 5;
-#X obj 28 153 #import (2 3 2);
-#X obj 28 224 #fold +;
-#X text 203 129 <-- clicking here creates a grid through [#import]
-;
-#X obj 3 324 doc_c 1;
-#X obj 3 386 doc_i 1;
-#X obj 3 570 doc_o 1;
-#X obj 0 0 doc_h;
-#X obj 14 600 doc_oo 0;
-#X obj 14 416 doc_ii 0;
-#X obj 14 354 doc_cc 0;
-#X text 219 155 [#fold +] computes totals;
-#X text 221 176 [#fold inv+] is an alternated sum (+/-);
-#X text 225 203 [#fold *] can compute the size of a grid using its
-dimension list;
-#X text 229 240 [#fold &] can mean "for all";
-#X text 228 260 [#fold |] can mean "there exists (at least one)";
-#X text 224 282 [#fold ^] can mean "there exists an odd number of..."
-;
-#X obj 97 354 doc_m c0 symbol/numop;
-#X text 232 354 the operator to fold with.;
-#X obj 97 416 doc_m i0 grid;
-#X obj 97 477 doc_m i0 op;
-#X obj 97 499 doc_m i0 seed;
-#X text 232 477 same as arg 0;
-#X text 232 416 replaces every subgrid by the result of a cascade on
-that subgrid. Doing that with seed value 0 and operation + on grid
-"2 3 5 7" will compute ((((0+2)+3)+5)+7) find the total "17".;
-#X text 232 499 the initial value for the folding. (default: whatever
-does nothing for the chosen op \; e.g. 0 + \, 0 - \, 1 * \, ...). this
-can be a grid of any size \, and this decides the size of the subgrids
-we are working on.;
-#X obj 97 600 doc_m o0 grid;
-#X text 232 600 Outputs a grid that has one less dimension than the
-input.;
-#X obj 0 632 doc_f;
-#X connect 3 0 4 0;
-#X connect 12 0 13 0;
-#X connect 13 0 0 0;
-#X connect 13 0 14 0;
-#X connect 14 0 1 0;
-#X connect 14 0 3 0;
-#X connect 29 1 30 0;
-#X connect 31 1 35 0;
-#X connect 32 1 34 0;
-#X connect 33 1 36 0;
-#X connect 37 1 38 0;
diff --git a/externals/gridflow/doc/flow_classes/#for-help.pd b/externals/gridflow/doc/flow_classes/#for-help.pd
deleted file mode 100644
index 28903e51..00000000
--- a/externals/gridflow/doc/flow_classes/#for-help.pd
+++ /dev/null
@@ -1,83 +0,0 @@
-#N canvas 661 0 632 642 10;
-#X floatatom 13 197 5 0 0 0 - - -;
-#X floatatom 45 219 5 0 0 0 - - -;
-#X floatatom 78 238 5 0 0 0 - - -;
-#X obj 13 329 #print;
-#X obj 33 296 display;
-#X text 119 238 <-- step value;
-#X text 90 217 <-- upper bound;
-#X text 60 194 <-- lower bound;
-#X obj 13 261 #for 0 8 1;
-#X obj 264 328 #print;
-#X obj 314 288 display;
-#X msg 264 198 0 0;
-#X msg 369 244 1 1;
-#X msg 326 223 4 4;
-#X text 232 484 Upper bound;
-#X text 232 506 Step value;
-#X text 232 449 Lower bound. As with the other arguments \, they are
-overwritten when another value is given.;
-#X text 414 244 <-- step value (1);
-#X text 373 222 <-- upper bound (2);
-#X text 309 197 <-- lower bound (3);
-#X text 26 38 When given scalar bounds \, works like a regular [for]
-object plugged to a [#import] tuned for a Dim(size) where size is the
-number of values produced by a bang to that [for].;
-#X text 232 656 Sets the upper bound;
-#X text 232 678 Sets the step value;
-#X text 232 740 The result of the operation is a single dimension grid
-in the case of scalar values and variable dimensions for vectors.;
-#X obj 0 0 doc_h;
-#X obj 3 538 doc_i 3;
-#X obj 3 419 doc_c 3;
-#X text 232 568 activate object (send output);
-#X text 232 590 Sets the lower bound and activate;
-#X text 232 634 Sets the lower bound without activating;
-#X text 26 84 When given vector bounds \, will work like any number
-of [for] objects producing all possible combinations of their values
-in the proper order. (try it below);
-#X text 27 132 the formula for knowing the size of the output will
-be is floor((to-from)/step).;
-#X obj 14 740 doc_oo 0;
-#X obj 14 506 doc_cc 2;
-#X text 232 612 the three arguments at once;
-#X obj 14 449 doc_cc 0;
-#X obj 14 484 doc_cc 1;
-#X obj 14 568 doc_ii 0;
-#X obj 3 710 doc_o 1;
-#X obj 14 656 doc_ii 1;
-#X obj 14 678 doc_ii 2;
-#X text 11 177 With scalar bounds:;
-#X text 262 178 With vector bounds:;
-#X obj 97 612 doc_m i0 list;
-#X obj 97 568 doc_m i0 bang;
-#X obj 97 634 doc_m i0 set;
-#X obj 97 449 doc_m c0 grid;
-#X obj 97 484 doc_m c1 grid;
-#X obj 97 506 doc_m c2 grid;
-#X obj 97 590 doc_m i0 grid;
-#X obj 97 656 doc_m i1 grid;
-#X obj 97 678 doc_m i2 grid;
-#X obj 0 798 doc_f;
-#X obj 264 267 #for (0 0) (8 3) (1 1);
-#X obj 97 740 doc_m o0 grid;
-#X connect 0 0 8 0;
-#X connect 1 0 8 1;
-#X connect 2 0 8 2;
-#X connect 8 0 4 0;
-#X connect 8 0 3 0;
-#X connect 11 0 53 0;
-#X connect 12 0 53 2;
-#X connect 13 0 53 1;
-#X connect 43 1 34 0;
-#X connect 44 1 27 0;
-#X connect 45 1 29 0;
-#X connect 46 1 16 0;
-#X connect 47 1 14 0;
-#X connect 48 1 15 0;
-#X connect 49 1 28 0;
-#X connect 50 1 21 0;
-#X connect 51 1 22 0;
-#X connect 53 0 10 0;
-#X connect 53 0 9 0;
-#X connect 54 1 23 0;
diff --git a/externals/gridflow/doc/flow_classes/#from_pix-help.pd b/externals/gridflow/doc/flow_classes/#from_pix-help.pd
deleted file mode 100644
index d92aa497..00000000
--- a/externals/gridflow/doc/flow_classes/#from_pix-help.pd
+++ /dev/null
@@ -1,89 +0,0 @@
-#N canvas 679 122 632 642 10;
-#X text 169 629 \, game_of_life_gem.pd in the examples folder;
-#X text 232 575 Grid with 4 channels;
-#X text 232 478 With one boolean argument that selects the order in
-which the y dimension of the Grid will be read \, defaults to '1';
-#X text 103 629 [#to_pix];
-#X obj 37 128 tgl 15 0 empty empty empty 0 -6 0 8 -241291 -1 -1 0 1
-;
-#X msg 54 127 yflip \$1;
-#X obj 22 39 gemhead;
-#X obj 22 107 pix_image;
-#X msg 391 55 create \, 1;
-#X obj 391 36 loadbang;
-#X msg 455 56 destroy;
-#X text 36 201 Note : The fps is dependent on the gemwin framerate
-;
-#X text 101 184 <-- imports gemlist into Grids;
-#X text 232 456 Has to be a 'pix' gemlist;
-#X text 232 597 Passthrough outlet for gem chain;
-#X obj 0 0 doc_h;
-#X obj 3 298 doc_c 0;
-#X obj 3 545 doc_o 2;
-#X obj 3 629 doc_also;
-#X obj 14 575 doc_oo 0;
-#X obj 14 597 doc_oo 1;
-#X obj 3 338 doc_i 2;
-#X obj 14 368 doc_ii 0;
-#X obj 14 513 doc_ii 1;
-#X text 232 513 dummy inlet existing only for weird reasons \, please
-ignore.;
-#X obj 97 478 doc_m i0 yflip;
-#X obj 97 575 doc_m o0 grid;
-#X obj 0 649 doc_f;
-#X msg 30 82 open images/babbage.jpg;
-#X obj 97 513 doc_m i1 <none>;
-#X msg 186 90 open \$1;
-#X obj 186 71 openpanel;
-#X obj 186 54 bng 15 250 50 0 empty empty empty 17 7 0 10 -4034 -1
--1;
-#X obj 30 62 loadbang;
-#X obj 22 242 fps;
-#X floatatom 22 261 5 0 0 0 - - -;
-#X obj 22 223 #out window \, title imported_pix;
-#X msg 159 109 cast b;
-#X msg 159 147 cast i;
-#X obj 22 179 #import_pix;
-#X obj 97 368 doc_m i0 cast;
-#X text 232 368 numbertype of grid to be output;
-#X msg 159 128 cast s;
-#X obj 97 390 doc_m i0 colorspace;
-#X text 232 412 colorspace rgb: output 3 channels;
-#X text 232 390 colorspace rgba: output 4 channels;
-#X msg 259 148 colorspace rgb;
-#X msg 259 168 colorspace rgba;
-#X obj 390 85 gemwin 150;
-#X text 232 434 (default: rgba);
-#X obj 97 456 doc_m i0 gem_state;
-#X obj 97 597 doc_m o1 gem_state;
-#X connect 4 0 5 0;
-#X connect 5 0 39 0;
-#X connect 6 0 7 0;
-#X connect 7 0 39 0;
-#X connect 8 0 48 0;
-#X connect 9 0 8 0;
-#X connect 10 0 48 0;
-#X connect 18 1 3 0;
-#X connect 18 1 0 0;
-#X connect 25 1 2 0;
-#X connect 26 1 1 0;
-#X connect 28 0 7 0;
-#X connect 29 1 24 0;
-#X connect 30 0 7 0;
-#X connect 31 0 30 0;
-#X connect 32 0 31 0;
-#X connect 33 0 28 0;
-#X connect 34 0 35 0;
-#X connect 36 0 34 0;
-#X connect 37 0 39 0;
-#X connect 38 0 39 0;
-#X connect 39 0 36 0;
-#X connect 40 1 41 0;
-#X connect 42 0 39 0;
-#X connect 43 1 44 0;
-#X connect 43 1 45 0;
-#X connect 43 1 49 0;
-#X connect 46 0 39 0;
-#X connect 47 0 39 0;
-#X connect 50 1 13 0;
-#X connect 51 1 14 0;
diff --git a/externals/gridflow/doc/flow_classes/#gamma-help.pd b/externals/gridflow/doc/flow_classes/#gamma-help.pd
deleted file mode 100644
index adbec0dd..00000000
--- a/externals/gridflow/doc/flow_classes/#gamma-help.pd
+++ /dev/null
@@ -1,29 +0,0 @@
-#N canvas 535 121 632 375 10;
-#X obj 0 0 doc_h;
-#X obj 0 346 doc_f;
-#X obj 57 63 #gamma;
-#X obj 3 118 doc_c 1;
-#X obj 3 180 doc_i 2;
-#X obj 3 264 doc_o 1;
-#X obj 14 148 doc_cc 0;
-#X obj 14 210 doc_ii 0;
-#X obj 14 232 doc_ii 1;
-#X obj 14 294 doc_oo 0;
-#X obj 3 326 doc_also;
-#X obj 103 326 # gamma;
-#X text 175 63 accelerated (cached) version of [# gamma];
-#X obj 97 210 doc_m i0 grid;
-#X obj 97 148 doc_m c0 float/int;
-#X obj 97 232 doc_m i1 float int;
-#X obj 97 294 doc_m o0 grid;
-#X text 232 148 positive int;
-#X text 175 82 note: this only accepts a single float argument \, whereas
-[# gamma] allows a grid argument.;
-#X text 232 232 same as arg 0;
-#X text 232 210 pixels to apply on;
-#X text 232 294 output pixels;
-#X connect 10 1 11 0;
-#X connect 13 1 20 0;
-#X connect 14 1 17 0;
-#X connect 15 1 19 0;
-#X connect 16 1 21 0;
diff --git a/externals/gridflow/doc/flow_classes/#grade-help.pd b/externals/gridflow/doc/flow_classes/#grade-help.pd
deleted file mode 100644
index d05aeaea..00000000
--- a/externals/gridflow/doc/flow_classes/#grade-help.pd
+++ /dev/null
@@ -1,45 +0,0 @@
-#N canvas 690 0 632 680 10;
-#X text 143 55 splits a dim[a... \, b] grid into dim[b] vectors that
-each contain numbers from 0 to b-1 indicating the ordering of the values.
-the result is a dim[a... \, b] grid.;
-#X floatatom 19 114 5 0 0 0 - - -;
-#X floatatom 60 114 5 0 0 0 - - -;
-#X floatatom 101 114 5 0 0 0 - - -;
-#X floatatom 142 114 5 0 0 0 - - -;
-#X obj 19 146 #pack 4;
-#X obj 19 179 #grade;
-#X obj 19 208 #print;
-#X obj 0 0 doc_h;
-#X obj 3 250 doc_c 0;
-#X obj 3 290 doc_i 1;
-#X obj 3 350 doc_o 1;
-#X obj 14 380 doc_oo 0;
-#X obj 14 320 doc_ii 0;
-#X obj 97 320 doc_m i0 grid;
-#X obj 97 380 doc_m o0 grid;
-#X text 232 380 splits a Dim[A... \, B] grid into Dim[B] vectors \,
-producing new Dim[B] vectors that each contain numbers from 0 to B-1
-indicating the ordering of the values. The result is a Dim[A... \,
-B] grid.;
-#X text 232 441 for example \, connecting a [#grade] to a [#outer ignore
-0] to a [#store] object \, storing a single vector into [#store] \,
-and sending the same vector to [#grade] \, will sort the values of
-the vector. however for higher-dimensional grids \, what should go
-between [#store] and [#grade] to achieve the same result would be more
-complex.;
-#X text 232 541 you may achieve different kinds of sorting by applying
-various filters before [#grade]. the possibilities are unlimited. if
-you plug [#grade] directly into another [#grade] \, you will get the
-inverse arrangement \, which allows to take the sorted values and make
-them unsorted in the original way. note that this is really not the
-same as just listing the values backwards.;
-#X obj 0 651 doc_f;
-#X connect 1 0 5 0;
-#X connect 2 0 5 1;
-#X connect 3 0 5 2;
-#X connect 4 0 5 3;
-#X connect 5 0 6 0;
-#X connect 6 0 7 0;
-#X connect 15 1 16 0;
-#X connect 15 1 17 0;
-#X connect 15 1 18 0;
diff --git a/externals/gridflow/doc/flow_classes/#greyscale_to_rgb-help.pd b/externals/gridflow/doc/flow_classes/#greyscale_to_rgb-help.pd
deleted file mode 100644
index c98ea289..00000000
--- a/externals/gridflow/doc/flow_classes/#greyscale_to_rgb-help.pd
+++ /dev/null
@@ -1,26 +0,0 @@
-#N canvas 693 0 632 471 10;
-#X obj 19 161 s xx;
-#X obj 19 185 r xx;
-#X obj 19 105 #in;
-#X obj 19 141 #rgb_to_greyscale;
-#X obj 19 205 #greyscale_to_rgb;
-#X obj 19 243 #out window;
-#X msg 19 74 load bluemarble.jpg;
-#X obj 0 0 doc_h;
-#X obj 3 278 doc_c 0;
-#X obj 3 318 doc_i 1;
-#X obj 3 380 doc_o 1;
-#X obj 14 348 doc_ii 0;
-#X obj 14 410 doc_oo 0;
-#X obj 97 348 doc_m i0;
-#X obj 97 410 doc_m o0;
-#X text 232 410 rgb pixels;
-#X text 232 348 greyscale pixels;
-#X obj 0 442 doc_f;
-#X connect 1 0 4 0;
-#X connect 2 0 3 0;
-#X connect 3 0 0 0;
-#X connect 4 0 5 0;
-#X connect 6 0 2 0;
-#X connect 13 1 16 0;
-#X connect 14 1 15 0;
diff --git a/externals/gridflow/doc/flow_classes/#hello-help.pd b/externals/gridflow/doc/flow_classes/#hello-help.pd
deleted file mode 100644
index d759b412..00000000
--- a/externals/gridflow/doc/flow_classes/#hello-help.pd
+++ /dev/null
@@ -1,23 +0,0 @@
-#N canvas 610 97 632 367 10;
-#X obj 92 137 #out window;
-#X obj 92 117 #hello;
-#X obj 92 77 loadbang;
-#X obj 0 0 doc_h;
-#X obj 3 170 doc_c;
-#X obj 0 334 doc_f;
-#X obj 3 210 doc_i 1;
-#X obj 14 240 doc_ii 0;
-#X obj 97 240 doc_m i0 list;
-#X text 232 240 Size of the grid.;
-#X obj 3 272 doc_o 1;
-#X obj 14 302 doc_oo 0;
-#X obj 97 302 doc_m o0 grid;
-#X text 9 35 Generates a television test pattern of 7 colour bars à
-la SMPTE.;
-#X text 232 302 Returns a grid representing the 7 colour bars.;
-#X msg 92 97 200 200;
-#X connect 1 0 0 0;
-#X connect 2 0 15 0;
-#X connect 8 1 9 0;
-#X connect 12 1 14 0;
-#X connect 15 0 1 0;
diff --git a/externals/gridflow/doc/flow_classes/#hueshift-help.pd b/externals/gridflow/doc/flow_classes/#hueshift-help.pd
deleted file mode 100644
index 7b5853d7..00000000
--- a/externals/gridflow/doc/flow_classes/#hueshift-help.pd
+++ /dev/null
@@ -1,20 +0,0 @@
-#N canvas 692 0 632 364 10;
-#X obj 0 0 doc_h;
-#X obj 65 74 #hueshift;
-#X obj 3 105 doc_c 0..1;
-#X obj 3 165 doc_i 2;
-#X obj 3 275 doc_o 1;
-#X obj 14 195 doc_ii 0;
-#X obj 14 243 doc_ii 1;
-#X obj 14 135 doc_cc 0;
-#X obj 14 305 doc_oo 0;
-#X obj 97 135 doc_m c0 float;
-#X obj 97 195 doc_m i0 grid;
-#X obj 97 243 doc_m i1 float;
-#X text 232 243 same as arg 0;
-#X obj 97 305 doc_m o0 grid;
-#X text 232 195 RGB picture that gets hueshifted by a rotation in the
-colorwheel by the specified angle \; it gets sent to outlet 0;
-#X obj 0 335 doc_f;
-#X connect 10 1 14 0;
-#X connect 11 1 12 0;
diff --git a/externals/gridflow/doc/flow_classes/#import-help.pd b/externals/gridflow/doc/flow_classes/#import-help.pd
deleted file mode 100644
index 2620c142..00000000
--- a/externals/gridflow/doc/flow_classes/#import-help.pd
+++ /dev/null
@@ -1,88 +0,0 @@
-#N canvas 648 0 632 642 10;
-#X msg 55 123 reset;
-#X obj 13 59 bng 15 250 50 0 empty empty empty 0 -6 0 8 -24198 -1 -1
-;
-#X msg 13 123 200;
-#X obj 13 100 until;
-#X msg 13 79 230400;
-#X obj 13 177 #out window;
-#X text 232 250 The argument establishes grid dimensions in parentheses
-in the order of columns \, rows and grid dimensions.;
-#X text 232 456 Symbols are considered as a list of ascii characters.
-;
-#X text 232 478 Like a sequence of ints sent one after another \, except
-in a single message.;
-#X text 232 680 The grid resulting from the incoming integers and/or
-grids is output from the outlet.;
-#X text 99 24 This object allows you to produce grids from non-grid
-data \, such as integers and lists of integers. This object also reframes/resyncs
-grids so that multiple grids may be joined together \, or single grids
-may be split. That kind of operation is already done implicitly in
-many cases (e.g. sending an integer or list to a grid-receiving inlet)
-but using this object you have greater flexibility on the conversion.
-;
-#X text 232 421 This equivalent to filtering the grid through an [#to_float]
-object. It is over ten times faster.;
-#X msg 157 125 per_message;
-#X msg 158 147 240 320 3;
-#X text 232 347 Begins a new grid if there is no current grid. puts
-that integer in the current grid. ends the grid if it is full. the
-constructed grid is not stored: it is streamed. the stream is buffered
-\, so the output is in packets of about a thousand numbers.;
-#X text 232 579 "per message" : the grid will shape itself according
-to the incoming data. Almost obsolete as sending a list to any grid
-inlet will result in the same except the latter can not be cast to
-other than int32.;
-#X text 232 535 "to_ascii \$1" converts ints as decimal in ascii codes
-;
-#X obj 294 166 #import;
-#X msg 294 144 to_ascii \$1;
-#X floatatom 294 124 5 0 0 0 - - -;
-#X obj 294 188 #print;
-#X obj 0 0 doc_h;
-#X obj 3 317 doc_i 2;
-#X obj 13 149 #import (240 320 3);
-#X obj 3 650 doc_o 1;
-#X obj 3 220 doc_c 2;
-#X text 232 285 default: i;
-#X obj 14 347 doc_ii 0;
-#X obj 14 557 doc_ii 1;
-#X obj 14 250 doc_cc 0;
-#X obj 14 285 doc_cc 1;
-#X obj 97 250 doc_m c0 grid;
-#X obj 97 285 doc_m c1 numtype;
-#X obj 97 347 doc_m i0 float;
-#X obj 97 456 doc_m i0 symbol;
-#X obj 97 478 doc_m i0 list;
-#X obj 97 513 doc_m i0 reset;
-#X text 232 513 aborts the current grid if there is one.;
-#X obj 97 535 doc_m i0 to_ascii;
-#X obj 97 421 doc_m i0 grid;
-#X obj 97 579 doc_m i1 per_message;
-#X obj 97 557 doc_m i1 grid;
-#X obj 14 680 doc_oo 0;
-#X obj 97 680 doc_m o0 grid;
-#X obj 0 725 doc_f;
-#X text 232 557 same as arg 0;
-#X connect 0 0 23 0;
-#X connect 1 0 4 0;
-#X connect 2 0 23 0;
-#X connect 3 0 2 0;
-#X connect 4 0 3 0;
-#X connect 12 0 23 1;
-#X connect 13 0 23 1;
-#X connect 17 0 20 0;
-#X connect 18 0 17 0;
-#X connect 19 0 18 0;
-#X connect 23 0 5 0;
-#X connect 31 1 6 0;
-#X connect 32 1 26 0;
-#X connect 33 1 14 0;
-#X connect 34 1 7 0;
-#X connect 35 1 8 0;
-#X connect 36 1 37 0;
-#X connect 38 1 16 0;
-#X connect 39 1 11 0;
-#X connect 40 1 15 0;
-#X connect 41 1 45 0;
-#X connect 43 1 9 0;
diff --git a/externals/gridflow/doc/flow_classes/#in-help.pd b/externals/gridflow/doc/flow_classes/#in-help.pd
deleted file mode 100644
index cbb4cd46..00000000
--- a/externals/gridflow/doc/flow_classes/#in-help.pd
+++ /dev/null
@@ -1,236 +0,0 @@
-#N canvas 679 0 632 642 10;
-#X obj 354 172 #out window;
-#X text 13 34 This object imports a grid \, usually an image \, video
-or live stream.;
-#X msg 362 126 open working.jpg;
-#X obj 354 106 bng 15 250 50 0 empty empty empty 0 -6 0 8 -24198 -1
--1;
-#X text 55 181 <--click here;
-#X text 232 759 "loop 0" - turns off the loop option. The video stops
-once it reaches the end.;
-#X text 232 1060 Signals the end of a file and when a file is unreadable.
-;
-#X text 232 1038 Displays the resulting grid when connected to [#out
-window];
-#N canvas 82 93 663 454 quicktime 0;
-#X text 9 9 The following messages can be used to set parameters for
-video (.mov) files.;
-#X text 128 283 different versions of LibQuickTime may include support
-for different codecs \, and some may also support entirely different
-wrapper formats such as AVI.;
-#X text 129 367 Codecs must be set before first frame is written.;
-#X text 128 330 QuickTime library for Macintosh: Apple QuickTime (some
-codecs/features may not be available).;
-#X obj 9 272 cnv 15 24 17 empty empty empty 20 12 0 14 -241291 -66577
-0;
-#X msg 38 230 codec jpg;
-#X msg 23 116 framerate 33;
-#X msg 33 203 colorspace rgb;
-#X msg 18 78 size 400 600;
-#X obj 10 272 #in;
-#X text 145 117 Number of frames per second.;
-#X msg 32 171 parameter jpeg_quality 85;
-#X text 187 147 Determines window size when reading a video file.;
-#X text 129 230 quicktime library for linux accepts LibQuickTime (libquicktime.so).
-codecs currently available are: Raw \, jpeg \, png \, mipa \, yuv2
-\, yuv4.;
-#X text 134 84 Sets height and width. Must be set before setting the
-codec parameters and after setting framerate and codec.;
-#X text 107 230 <--;
-#X text 108 80 <--;
-#X text 119 118 <--;
-#X text 108 80 <--;
-#X text 108 80 <--;
-#X text 162 147 <--;
-#X text 212 173 <--;
-#X text 139 206 <--;
-#X text 237 174 Sets compression quality (100 being the highest quality
-\, but a large file. 75-85 is the standard setting).;
-#X text 163 209 Other colorspaces include rgba \, bgr \, bgra \, yuv
-\, yuva.;
-#X msg 10 54 open example.mov;
-#X msg 28 145 force_size 480 640;
-#X obj 103 427 #record;
-#X text 15 427 see also :;
-#X connect 5 0 9 0;
-#X connect 6 0 9 0;
-#X connect 7 0 9 0;
-#X connect 8 0 9 0;
-#X connect 11 0 9 0;
-#X connect 25 0 9 0;
-#X connect 26 0 9 0;
-#X restore 251 964 pd quicktime file messages;
-#X obj 354 150 #in;
-#X floatatom 202 195 5 0 0 0 - - -;
-#X msg 202 151 set 2;
-#X msg 202 107 loop 0;
-#X msg 202 129 loop 1;
-#X floatatom 32 285 5 0 0 0 - - -;
-#X msg 202 173 rewind;
-#X obj 41 267 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 17 227 #in;
-#X text 39 98 <--click here;
-#X obj 17 96 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 0 1;
-#X obj 17 120 metro 33.3;
-#X obj 356 234 bng 15 250 50 0 empty empty empty 0 -6 0 8 -24198 -1
--1;
-#X obj 356 280 #out window;
-#X obj 356 258 #in sewing.jpg;
-#X text 378 234 <--click here;
-#X text 183 947 For info about messages specifically for quickTime
-files \, click on:;
-#N canvas 150 0 874 560 more 0;
-#X msg 191 388 open videodev \$1 \, get;
-#X msg 52 147 brightness 1000;
-#X msg 41 124 hue 1000;
-#X msg 26 101 color 1000;
-#X msg 65 171 contrast 1000;
-#X msg 14 78 whiteness 1000;
-#X msg 80 264 channel 2;
-#X msg 80 294 tuner 2;
-#X msg 81 324 norm 2;
-#X msg 81 352 frequency 2;
-#X msg 190 456 transfer mmap 4;
-#X msg 191 356 transfer read;
-#X msg 190 434 colorspace RGB24;
-#X msg 191 411 size 400 600;
-#X obj 14 441 #in;
-#X obj 192 172 #contrast;
-#X text 166 172 or;
-#X text 306 411 Sets height and width of the input.;
-#X text 322 488 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 16 12 Grid Settings;
-#X text 322 457 This is the standard and fastest way to receive pictures
-from the camera.;
-#X text 121 99 Message "get brightness" or "get" followed by any of
-the other colour attributes will display its values in the console.
-;
-#X text 375 390 Opens video device.;
-#X text 331 435 Supported values are RGB24 or YUV420P.;
-#X text 14 48 Color Adjustments;
-#X text 144 75 Values from 0 to 65535;
-#X text 283 412 <--;
-#X text 309 435 <--;
-#X text 345 390 <--;
-#X text 300 456 <--;
-#X text 287 357 <--;
-#X text 310 357 Some cameras/drivers only support "transfer read" and
-not mmap.;
-#X text 6 520 see also :;
-#X obj 92 520 #camera;
-#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 251 925 pd more info about video devices;
-#X text 183 908 For info about messages specifically for video devices
-\, click on:;
-#X text 169 213 (and turn off the metro);
-#X text 244 195 <-- vary this;
-#X text 352 74 IMAGE FILES:;
-#X text 12 72 VIDEO FILES:;
-#X obj 28 183 bng 15 250 50 0 empty empty empty 0 -6 0 8 -24198 -1
--1;
-#X text 380 106 <-- click here;
-#X text 68 265 <-- sends a bang upon reaching;
-#X text 97 278 the end of the file;
-#X obj 17 305 #out window \, title video;
-#X text 232 724 "loop 1" - Restarts a video each time it reaches the
-end (default setting).;
-#X obj 41 248 route bang;
-#X msg 24 147 open violoncelle.mov;
-#X obj 0 0 doc_h;
-#X obj 3 450 doc_i 1;
-#X obj 3 1008 doc_o 2;
-#X obj 14 480 doc_ii 0;
-#X obj 14 1038 doc_oo 0;
-#X obj 14 1060 doc_oo 1;
-#X obj 3 332 doc_c 1..2;
-#X text 164 389 auto-open with auto-detect of the format-handler;
-#X text 207 409 auto-open with manual choice of the format-handler
-;
-#X obj 97 794 doc_m i0 open;
-#X obj 97 851 doc_m i0 set;
-#X obj 97 667 doc_m i0 close;
-#X obj 97 829 doc_m i0 rewind;
-#X obj 97 724 doc_m i0 loop;
-#X obj 97 645 doc_m i0 float int;
-#X obj 97 1038 doc_m o0 grid;
-#X obj 97 1060 doc_m o1 bang;
-#X obj 3 1127 doc_also;
-#X obj 103 1127 #out;
-#X obj 32 370 #in;
-#X obj 33 391 #in filename.suffix;
-#X obj 34 411 #in handler filename.suffix;
-#X text 64 369 nothing opened \, you have to open by yourself;
-#X text 232 794 \$1=filename. sends it as a resource to [#in]. For
-example: "open sewing.jpg".;
-#X obj 97 480 doc_m i0 bang;
-#X obj 97 1082 doc_m o1 float int;
-#X text 232 1082 frame number of the frame currently being viewed.
-Applies to formats that have frame numbers \, i.e. video.;
-#X text 232 480 A bang reads a frame and sends it through the outlet.
-Since frames from videos and live streams are read as a series of individual
-grids \, successive bangs advance through the frames. A bang reads
-a frame and sends it through the outlet. Since frames from videos and
-live streams are read as a series of individual grids \, successive
-bangs advance through the frames. this is format-specific. most formats
-produce grids that have dimensions (rows columns rgb). In formats that
-read from a file \, reading another picture will continue if there
-are several pictures in the same file \, but if the end of file is
-reached instead \, it will rewind and send the first picture again.
-;
-#X obj 0 1147 doc_f;
-#X text 232 667 Closes the video input device. Only necessary when
-you are using a live capture device.;
-#X text 232 829 Will rewind video to the beginning.;
-#X text 232 851 select the video frame numbered \$1 \, where 0 is the
-first frame. A bang must be sent to [#in] in order to display the frame.
-this only works with video file formats.;
-#X text 232 645 same as set \$1 \, bang;
-#X obj 97 702 doc_m i0 load;
-#X text 232 702 shortcut for open \$1 \, bang \, close;
-#X connect 2 0 9 0;
-#X connect 3 0 9 0;
-#X connect 9 0 0 0;
-#X connect 10 0 17 0;
-#X connect 11 0 17 0;
-#X connect 12 0 17 0;
-#X connect 13 0 17 0;
-#X connect 15 0 17 0;
-#X connect 17 0 36 0;
-#X connect 17 1 14 0;
-#X connect 17 1 38 0;
-#X connect 19 0 20 0;
-#X connect 20 0 17 0;
-#X connect 21 0 23 0;
-#X connect 23 0 22 0;
-#X connect 32 0 17 0;
-#X connect 38 0 16 0;
-#X connect 39 0 17 0;
-#X connect 49 1 63 0;
-#X connect 50 1 71 0;
-#X connect 51 1 69 0;
-#X connect 52 1 70 0;
-#X connect 53 1 37 0;
-#X connect 53 1 5 0;
-#X connect 54 1 72 0;
-#X connect 55 1 7 0;
-#X connect 56 1 6 0;
-#X connect 57 1 58 0;
-#X connect 64 1 67 0;
-#X connect 65 1 66 0;
-#X connect 73 1 74 0;
diff --git a/externals/gridflow/doc/flow_classes/#inner-help.pd b/externals/gridflow/doc/flow_classes/#inner-help.pd
deleted file mode 100644
index 612a2c6a..00000000
--- a/externals/gridflow/doc/flow_classes/#inner-help.pd
+++ /dev/null
@@ -1,56 +0,0 @@
-#N canvas 666 0 632 642 10;
-#X obj 0 0 doc_h;
-#X obj 3 158 doc_c 1;
-#X obj 3 218 doc_i 2;
-#X obj 3 560 doc_o 1;
-#X obj 14 188 doc_cc 0;
-#X obj 14 248 doc_ii 0;
-#X obj 14 528 doc_ii 1;
-#X obj 14 590 doc_oo 0;
-#X text 232 248 Splits the Dim(anyA... \, lastA) left-hand grid into
-Dim(anyA...) pieces of Dim(lastA) size.;
-#X text 232 283 Splits the Dim(firstB \, anyB...) right-hand grid into
-Dim(anyB...) pieces of Dim(firstB) size.;
-#X text 232 318 On every piece pair \, does [#] using the specified
-op_para operation \, followed by a [#fold] using the specified op_fold
-operator and base value.;
-#X text 232 366 creates a Dim(anyA... \, anyB...) grid by assembling
-all the results together.;
-#X text 232 401 (note: lastA must be equal to firstB.);
-#X text 232 528 same as arg 0;
-#X text 232 471 the operation that combines the values from the two
-grids together. this defaults to "*" (as in the matrix product);
-#X text 232 423 the operation that combines the result of the "op"
-operations together. this defaults to "+" (as in the matrix product)
-;
-#X text 232 506 the base value for the fold;
-#X obj 0 640 doc_f;
-#X obj 97 248 doc_m i0 grid;
-#X obj 97 188 doc_m c0 grid;
-#X obj 97 471 doc_m i0 op;
-#X obj 97 506 doc_m i0 seed;
-#X obj 97 528 doc_m i1 grid;
-#X obj 97 590 doc_m o0 grid;
-#X obj 97 423 doc_m i0 fold;
-#X obj 3 620 doc_also;
-#X obj 103 620 #outer *;
-#X obj 163 620 #fold +;
-#X obj 62 89 #inner;
-#X text 160 48 think of this one as a special combination of [#outer]
-\, [#] and [#fold]. this is one of the most complex operations. It
-is very useful for performing linear transforms like rotations \, scalings
-\, shearings \, and some kinds of color remappings. A linear transform
-is done by something called matrix multiplication \, which happens
-to be [#inner]. [#inner] also does dot product and other funny operations.
-;
-#X connect 18 1 8 0;
-#X connect 18 1 9 0;
-#X connect 18 1 10 0;
-#X connect 18 1 11 0;
-#X connect 18 1 12 0;
-#X connect 20 1 14 0;
-#X connect 21 1 16 0;
-#X connect 22 1 13 0;
-#X connect 24 1 15 0;
-#X connect 25 1 26 0;
-#X connect 25 1 27 0;
diff --git a/externals/gridflow/doc/flow_classes/#io.aalib-help.pd b/externals/gridflow/doc/flow_classes/#io.aalib-help.pd
deleted file mode 100644
index e97765d1..00000000
--- a/externals/gridflow/doc/flow_classes/#io.aalib-help.pd
+++ /dev/null
@@ -1,45 +0,0 @@
-#N canvas 684 0 632 568 10;
-#X obj 0 0 doc_h;
-#X obj 3 67 doc_c;
-#X msg 48 109 open aalib X11;
-#X text 161 105 Normally "X11" with uppercase X \; else consult the
-AALib manual.;
-#X text 161 141 you can pass "commandline options" of AALib here \,
-after "X11" or whichever other thing you chose instead of "X11".;
-#X obj 3 179 doc_i 1;
-#X obj 3 477 doc_o 1;
-#X obj 14 209 doc_ii 0;
-#X obj 14 507 doc_oo 0;
-#X obj 97 507 doc_m o0 grid;
-#X obj 97 209 doc_m i0 grid;
-#X text 232 209 grid(rows columns 1): converts a greyscale image to
-an ascii image and possibly displays it. note that the image is typically
-downscaled by a factor of 2 by aalib itself.;
-#X text 232 257 grid(rows columns 2): the inverse of "dump". Both together
-in a loop allow to post-process aalib's buffer before displaying. Goes
-well with "draw" \, "autodraw". the first channel is for the ascii
-codes and the second channel is for the attributes (colour \, blink).
-;
-#X obj 97 432 doc_m i0 print;
-#X text 232 432 \$1=y \$2=x \$3=attr \$4=text where text is a symbol
-and the rest are ints.;
-#X obj 97 331 doc_m i0 autodraw;
-#X text 232 331 "autodraw 1" does a "draw" after each incoming grid.
-;
-#X text 232 353 "autodraw 0" does not.;
-#X obj 97 375 doc_m i0 draw;
-#X text 232 375 eventually you need to use this if you use "autodraw
-0".;
-#X obj 97 397 doc_m i0 dump;
-#X text 232 397 produces a Dim[y \, x \, 2] grid whose two channels
-are ascii character codes and character attributes.;
-#X obj 0 539 doc_f;
-#X text 232 507 result of 'dump';
-#X connect 9 1 23 0;
-#X connect 10 1 11 0;
-#X connect 10 1 12 0;
-#X connect 13 1 14 0;
-#X connect 15 1 16 0;
-#X connect 15 1 17 0;
-#X connect 18 1 19 0;
-#X connect 20 1 21 0;
diff --git a/externals/gridflow/doc/flow_classes/#io.grid-help.pd b/externals/gridflow/doc/flow_classes/#io.grid-help.pd
deleted file mode 100644
index fc30e0cc..00000000
--- a/externals/gridflow/doc/flow_classes/#io.grid-help.pd
+++ /dev/null
@@ -1,44 +0,0 @@
-#N canvas 689 0 632 608 10;
-#X obj 0 0 doc_h;
-#X obj 3 160 doc_i 1;
-#X text 62 37 This is GridFlow's special file format. This is the only
-I/O format that can hold nearly anything that the [#store] object can.
-;
-#X obj 3 92 doc_c ...;
-#X msg 62 127 open foo.grid;
-#X obj 14 190 doc_ii 0;
-#X obj 97 465 doc_m i0 type;
-#X text 232 465 type that the output will be written as. (#out only)
-;
-#X text 232 487 supported: uint8 int32 and perhaps some others;
-#X obj 97 369 doc_m i0 headerful;
-#X obj 97 404 doc_m i0 headerless;
-#X text 232 369 cancels "headerless" (and back to reading the real
-.grid format);
-#X text 232 404 instead of reading .grid files with header \, will
-read raw data \, faking a .grid header to itself. It will use the hereby
-specified dimension list \, as well as two other settings: type and
-endian.;
-#X obj 97 190 doc_m i0 endian;
-#X text 232 190 When writing "raw" data \, a file may be considered
-a long string of base 256 digits (called bytes) \, but different computers
-have different conventions for dealing with them:;
-#X text 232 238 big: A number will be written starting with the biggest
-digit. This is the natural way on the Macintosh \, Sun \, Amiga \,
-and so on.;
-#X text 232 286 little: A number will be written starting with the
-smallest digit. This is the natural way on the Intel 386/Pentium.;
-#X text 232 321 same: A number will be written in whichever way is
-more natural on this computer. The natural way is slightly faster to
-handle. This is the default setting.;
-#X obj 0 579 doc_f;
-#X obj 3 519 doc_o 1;
-#X obj 14 549 doc_oo 0;
-#X connect 6 1 7 0;
-#X connect 6 1 8 0;
-#X connect 9 1 11 0;
-#X connect 10 1 12 0;
-#X connect 13 1 14 0;
-#X connect 13 1 15 0;
-#X connect 13 1 16 0;
-#X connect 13 1 17 0;
diff --git a/externals/gridflow/doc/flow_classes/#io.jpeg-help.pd b/externals/gridflow/doc/flow_classes/#io.jpeg-help.pd
deleted file mode 100644
index 363c48a7..00000000
--- a/externals/gridflow/doc/flow_classes/#io.jpeg-help.pd
+++ /dev/null
@@ -1,16 +0,0 @@
-#N canvas 666 0 632 245 10;
-#X obj 0 0 doc_h;
-#X obj 3 70 doc_i 1;
-#X obj 3 30 doc_c;
-#X obj 3 176 doc_o;
-#X obj 0 216 doc_f;
-#X obj 14 100 doc_ii 0;
-#X obj 97 100 doc_m i0 bang;
-#X obj 97 122 doc_m i0 grid;
-#X obj 97 144 doc_m i0 quality;
-#X text 232 100 read image (when in [#in]);
-#X text 232 122 write image (when in [#out]);
-#X text 232 144 quality percentage (when in [#out]);
-#X connect 6 1 9 0;
-#X connect 7 1 10 0;
-#X connect 8 1 11 0;
diff --git a/externals/gridflow/doc/flow_classes/#io.png-help.pd b/externals/gridflow/doc/flow_classes/#io.png-help.pd
deleted file mode 100644
index 0a2f1d05..00000000
--- a/externals/gridflow/doc/flow_classes/#io.png-help.pd
+++ /dev/null
@@ -1,18 +0,0 @@
-#N canvas 674 0 632 267 10;
-#X obj 0 0 doc_h;
-#X obj 3 70 doc_i 1;
-#X obj 14 100 doc_ii 0;
-#X obj 97 100 doc_m i0 grid;
-#X text 232 100 1-channel is taken as Y 8 (greyscale);
-#X text 232 122 2-channel is taken as YA 8:8 (greyscale and transparency)
-;
-#X text 232 144 3-channel is taken as RGB 8:8:8;
-#X text 232 166 4-channel is taken as RGBA 8:8:8 (colour with transparency)
-;
-#X obj 3 30 doc_c;
-#X obj 3 198 doc_o;
-#X obj 0 238 doc_f;
-#X connect 3 1 4 0;
-#X connect 3 1 5 0;
-#X connect 3 1 6 0;
-#X connect 3 1 7 0;
diff --git a/externals/gridflow/doc/flow_classes/#io.quicktime-help.pd b/externals/gridflow/doc/flow_classes/#io.quicktime-help.pd
deleted file mode 100644
index c4cb6713..00000000
--- a/externals/gridflow/doc/flow_classes/#io.quicktime-help.pd
+++ /dev/null
@@ -1,69 +0,0 @@
-#N canvas 668 0 632 642 10;
-#X obj 0 0 doc_h;
-#X obj 3 218 doc_i 1;
-#X obj 14 248 doc_ii 0;
-#X text 190 43 Support for .mov files. This format supports frame-seek
-and frame-tell. Uses the HW-QuickTime library aka QuickTime4Linux (libquicktime.so).
-There is also a variant on the same library and that project is just
-called LibQuickTime. Some versions of those libraries may include support
-for different codecs \, and some also may support entirely different
-wrapper formats such as AVI. On Macintosh \, Apple QuickTime is used
-instead \, but several of the following messages may not be available.
-;
-#X obj 97 248 doc_m i0 codec;
-#X text 232 248 Allowed values are at least: raw \, jpeg \, png \,
-mjpa \, yuv2 \, yuv4. Some other values may allowed \, depending on
-the version of the library and which codec plugins are installed. Must
-be set before the first frame is written. only applies to [#out]. Choosing
-a codec is important because codecs influence greatly the speed of
-encoding \, the speed of decoding \, the size of the written file \,
-and its fidelity to the original content. Note that there exist other
-Apple-QuickTime codecs that are not supported by HW-QuickTime.;
-#X obj 97 584 doc_m i0 parameter;
-#X text 232 584 \$1=symbol \$2=int;
-#X text 232 606 Sets special codec-specific settings. For example:
-"parameter jpeg_quality 75";
-#X obj 97 479 doc_m i0 framerate;
-#X text 232 479 \$1=int;
-#X text 232 501 Sets the framerate of the file. This is not used by
-GridFlow when reading a file \, but other programs usually care.;
-#X obj 97 387 doc_m i0 colorspace;
-#X text 232 387 Allowed values are rgb \, rgba \, bgr \, bgra \, yuv
-\, yuva. Normally you don't need this.;
-#X obj 97 641 doc_m i0 size;
-#X text 232 641 \$1=height \$2=width;
-#X obj 3 721 doc_o 1;
-#X obj 3 901 doc_also;
-#X text 232 663 Forces a window size when writing. Usually this has
-to be used _after_ setting the framerate and codec and _before_ setting
-the codec-parameters. (Strange. Sorry.);
-#X text 232 422 \$1=height \$2=width;
-#X text 232 444 forces a window size when reading. this is a workaround
-for a problem in HW-QuickTime.;
-#X obj 3 178 doc_c;
-#X obj 0 921 doc_f;
-#X obj 97 422 doc_m i0 force_size;
-#X obj 97 549 doc_m i0 get;
-#X text 232 549 output various properties of the video that is open
-(#in) (see outlet 0);
-#X obj 14 751 doc_oo 0;
-#X obj 103 901 #io.mpeg;
-#X obj 97 751 doc_m o0 grid;
-#X obj 97 771 doc_m o0 codec symbol;
-#X obj 97 791 doc_m o0 depth float;
-#X obj 97 811 doc_m o0 framerate float;
-#X obj 97 831 doc_m o0 frames float;
-#X obj 97 851 doc_m o0 height float;
-#X obj 97 871 doc_m o0 width float;
-#X connect 4 1 5 0;
-#X connect 6 1 7 0;
-#X connect 6 1 8 0;
-#X connect 9 1 10 0;
-#X connect 9 1 11 0;
-#X connect 12 1 13 0;
-#X connect 14 1 15 0;
-#X connect 14 1 18 0;
-#X connect 17 1 27 0;
-#X connect 23 1 19 0;
-#X connect 23 1 20 0;
-#X connect 24 1 25 0;
diff --git a/externals/gridflow/doc/flow_classes/#io.videodev-help.pd b/externals/gridflow/doc/flow_classes/#io.videodev-help.pd
deleted file mode 100644
index af431363..00000000
--- a/externals/gridflow/doc/flow_classes/#io.videodev-help.pd
+++ /dev/null
@@ -1,77 +0,0 @@
-#N canvas 676 0 632 642 10;
-#X obj 0 0 doc_h;
-#X obj 26 50 #in videodev;
-#X obj 3 99 doc_c ...;
-#X obj 3 160 doc_i 1;
-#X obj 3 898 doc_o 1;
-#X obj 3 995 doc_also;
-#X obj 103 995 #io:quicktimecamera;
-#X msg 28 129 open videodev /dev/video0;
-#X obj 14 190 doc_ii 0;
-#X obj 97 210 doc_m i0 brightness;
-#X obj 97 539 doc_m i0 hue;
-#X obj 97 338 doc_m i0 colour;
-#X obj 97 378 doc_m i0 contrast;
-#X obj 97 868 doc_m i0 whiteness;
-#X obj 97 418 doc_m i0 get;
-#X obj 97 519 doc_m i0 help;
-#X obj 97 230 doc_m i0 channel;
-#X obj 97 768 doc_m i0 tuner;
-#X obj 97 579 doc_m i0 norm;
-#X obj 97 398 doc_m i0 frequency;
-#X obj 97 619 doc_m i0 transfer symbol;
-#X text 232 619 "read";
-#X text 232 663 "mmap": \$1=nframes (default:2);
-#X text 232 685 This is the normal (and fast) way of transferring pictures
-from the camera.;
-#X text 232 641 Some cameras/drivers only support this instead of mmap.
-;
-#X obj 97 828 doc_m i0 white_red;
-#X obj 97 788 doc_m i0 white_blue;
-#X obj 97 848 doc_m i0 white_speed;
-#X obj 97 808 doc_m i0 white_delay;
-#X obj 97 190 doc_m i0 auto_gain;
-#X obj 97 559 doc_m i0 noise_reduction;
-#X obj 97 358 doc_m i0 compression;
-#X obj 97 250 doc_m i0 colorspace;
-#X text 232 250 "y":;
-#X text 232 272 "yuv":;
-#X text 232 294 "rgb":;
-#X text 232 316 "magic":;
-#X obj 97 599 doc_m i0 size;
-#X text 188 764 \$1=y \$2=x;
-#X text 232 453 "min": minimum values for "size";
-#X text 232 475 "max": maximum values for "size";
-#X text 232 497 default: gets all attributes.;
-#X text 232 418 gets a specific attribute. a message is sent through
-right outlet.;
-#X text 232 720 In 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 obj 0 1015 doc_f;
-#X obj 229 995 #io.dc1394;
-#X obj 14 928 doc_oo 0;
-#X obj 97 928 doc_m o0 grid;
-#X obj 97 950 doc_m o0 <any>;
-#X text 232 928 image coming out;
-#X text 232 950 most any inlet 0 message is also an outlet 0 message
-whose output can be triggered using 'get'.;
-#X text 130 51 get images from a V4L1 camera interface.;
-#X text 130 66 this is for Linux only.;
-#X connect 5 1 6 0;
-#X connect 5 1 45 0;
-#X connect 14 1 42 0;
-#X connect 14 1 39 0;
-#X connect 14 1 40 0;
-#X connect 14 1 41 0;
-#X connect 20 1 21 0;
-#X connect 20 1 24 0;
-#X connect 20 1 22 0;
-#X connect 20 1 23 0;
-#X connect 20 1 43 0;
-#X connect 32 1 33 0;
-#X connect 32 1 34 0;
-#X connect 32 1 35 0;
-#X connect 32 1 36 0;
-#X connect 47 1 49 0;
-#X connect 48 1 50 0;
diff --git a/externals/gridflow/doc/flow_classes/#io.x11-help.pd b/externals/gridflow/doc/flow_classes/#io.x11-help.pd
deleted file mode 100644
index 2ccd9a29..00000000
--- a/externals/gridflow/doc/flow_classes/#io.x11-help.pd
+++ /dev/null
@@ -1,150 +0,0 @@
-#N canvas 648 0 632 642 10;
-#X obj 0 0 doc_h;
-#X obj 3 517 doc_c 0..;
-#X msg 40 554 open x11;
-#X msg 40 574 open x11 here;
-#X msg 40 614 open x11 local 0;
-#X text 178 555 synonym of "open x11 here".;
-#X text 181 574 connects to the default X11 server \, according to
-your environment variable "DISPLAY".;
-#X text 182 614 connects to a display server on this machine.;
-#X msg 39 645 open x11 remote foo.org 0;
-#X text 201 644 connects to a remote X11 display server using TCP.
-Port number will be 6000 plus the display number \, because of the
-X11 standard.;
-#X text 141 38 supports 15 \, 16 \, 24 \, 32-bit truecolor displays
-;
-#X text 141 57 now also support 8-bit indexed displays \, using a private
-colormap configured as 3:3:2 RGB. When using 8-bit you can specify
-the "use_stripes" option to use a completely different color scheme
-involving R \, G \, B diagonal stripes \, a kind of 6:6:6 RGB spread
-over three pixels.;
-#X text 141 129 If you are using Windows or MacOS 10: you will have
-to install a X11 server. This will emulate Unix display on your OS.
-(note: Unix systems also need a X11 server \, but it's built-in and
-handles the video driver directly). In the case of MacOS 10 and QNX
-that both use non-X11 display technology on top of a basically Unix
-OS \, the OS comes with a X11 server \, but it may be on a "bundled
-software" CD.;
-#X msg 37 700 open x11 display foo.org:0;
-#X obj 3 736 doc_i 1;
-#X obj 14 766 doc_ii 0;
-#X obj 97 788 doc_m i0 grid;
-#X text 232 788 with [#out] \, displays a frame;
-#X obj 97 766 doc_m i0 bang;
-#X text 232 766 with [#in] \, captures a frame;
-#X obj 97 852 doc_m i0 out_size;
-#X text 232 852 \$1=height \$2=width. changes the window's size \,
-just like sending a grid dim(height \, width \, 3) would. this affects
-the size of screen captures too.;
-#X obj 97 920 doc_m i0 setcursor;
-#X text 232 920 \$1=cursor_id. \$1=cursor_id. Selects one of the 64
-predefined cursors of X11. (Note that if your cursor table has them
-numbered from 0 to 126 using only even numbers \, then those cursor
-numbers are all doubled compared to the ones GridFlow uses.);
-#X obj 97 810 doc_m i0 hidecursor;
-#X text 232 810 This makes the cursor invisible.;
-#X obj 3 1903 doc_also;
-#X obj 103 1903 #io.quartz;
-#X obj 175 1903 #io.sdl;
-#X text 141 227 Destroying the object (or sending "close") should close
-the window.;
-#X obj 35 65 #out x11;
-#X text 140 259 because of the design of Xlib \, or if any of the connections
-involved crashes \, then the whole program has to be terminated. (don't
-you love xlib). Something similar happens if you close any of the windows
-yourself \, but IIRC this could be fixed.;
-#X text 140 330 only one window may be used per x11 connection (to
-simplify matters \; this doesn't reduce flexibility).;
-#X text 140 375 there is an additional argument that may be added to
-every "open" message \; if you don't put it \, a new toplevel window
-is created. if you put "root" then the screen's wallpaper will be used
-instead (it may fail to work with some popular window managers). You
-can also put a window number \, e.g. 0x28003ff \, you may connect to
-an existing window \; you can find out the number of a window by using
-a tool like xwininfo \, part of X11 standard tools.;
-#X obj 3 1084 doc_o 1;
-#X obj 14 1114 doc_oo 0;
-#X obj 97 1114 doc_m o0 grid;
-#X text 232 1114 grid(rows columns rgb);
-#X text 232 1136 resizes the window to the size of the grid \; encodes
-that grid in the display's pixel format \; also displays it if autodraw
-&gt \; 0 the values must be in range 0-255 \, or else they will be
-"wrapped".;
-#X obj 97 1415 doc_m o0 position;
-#X text 232 1415 \$1=y \$2=x \$3=buttons;
-#X text 232 1437 This is emitted every time the cursor moves inside
-the window connected to this format handler. This is also emitted when
-the cursor is dragging from inside to outside the window. This is also
-emitted when a mouse button is pressed.;
-#X text 232 1511 The y and x coordinates are relative to the upper
-right corner of the window. Specific button states may be extracted
-from the button value by applying [>> buttonnumber] and then checking
-whether the result is odd.;
-#X text 232 1572 0: Shift;
-#X text 232 1594 1: Caps Lock;
-#X text 232 1616 2: Control;
-#X text 232 1638 3: Alternate;
-#X text 232 1660 4: NumLock;
-#X text 232 1682 5: (unknown);
-#X text 232 1704 6: Meta or Window Key;
-#X text 232 1726 7: Scroll Lock;
-#X text 232 1748 8: Left Mouse Button;
-#X text 232 1770 9: Middle Mouse Button or Mouse Wheel Click;
-#X text 232 1792 10: Right Mouse Button;
-#X text 232 1814 11: Wheel Up;
-#X text 232 1836 12: Wheel Down;
-#X text 232 1858 NOTE: This message form may become longer in the future
-\, but the already defined parts will stay the same.;
-#X obj 97 1210 doc_m o0 keypress;
-#X obj 97 1345 doc_m o0 keyrelease;
-#X text 232 1210 \$1=y \$2=x \$3=buttons \$4=keyname;
-#X text 232 1345 \$1=y \$2=x \$3=buttons \$4=keyname;
-#X text 232 1232 Similar to position above \, but this is emitted when
-a keyboard key is pressed while this format handler's window is active.
-Keynames follow the X11 standard \, similarly to PureData's [keyname]
-object. The only exception is that keynames that are digits get prefixed
-by a capital D so that they don't get mistaken for actual numbers.
-NOTE: This message form may become longer in the future \, but the
-already defined parts will stay the same.;
-#X text 232 1367 Same as keypress but when a key gets released instead.
-NOTE: This message form may become longer in the future \, but the
-already defined parts will stay the same.;
-#X obj 0 1923 doc_f;
-#X obj 97 832 doc_m i0 move;
-#X obj 97 994 doc_m i0 shared_memory;
-#X obj 97 1054 doc_m i0 xvideo;
-#X obj 97 1014 doc_m i0 title;
-#X obj 97 1034 doc_m i0 warp;
-#X obj 97 900 doc_m i0 set_geometry;
-#X text 208 701 other syntax for 'remote'.;
-#X connect 16 1 17 0;
-#X connect 18 1 19 0;
-#X connect 20 1 21 0;
-#X connect 22 1 23 0;
-#X connect 24 1 25 0;
-#X connect 26 1 27 0;
-#X connect 26 1 28 0;
-#X connect 36 1 37 0;
-#X connect 36 1 38 0;
-#X connect 39 1 40 0;
-#X connect 39 1 41 0;
-#X connect 39 1 42 0;
-#X connect 39 1 43 0;
-#X connect 39 1 44 0;
-#X connect 39 1 45 0;
-#X connect 39 1 46 0;
-#X connect 39 1 47 0;
-#X connect 39 1 48 0;
-#X connect 39 1 49 0;
-#X connect 39 1 50 0;
-#X connect 39 1 51 0;
-#X connect 39 1 52 0;
-#X connect 39 1 53 0;
-#X connect 39 1 54 0;
-#X connect 39 1 55 0;
-#X connect 39 1 56 0;
-#X connect 57 1 59 0;
-#X connect 57 1 61 0;
-#X connect 58 1 60 0;
-#X connect 58 1 62 0;
diff --git a/externals/gridflow/doc/flow_classes/#join-help.pd b/externals/gridflow/doc/flow_classes/#join-help.pd
deleted file mode 100644
index 10e71f1c..00000000
--- a/externals/gridflow/doc/flow_classes/#join-help.pd
+++ /dev/null
@@ -1,72 +0,0 @@
-#N canvas 648 0 632 642 10;
-#X obj 18 42 bng 15 250 50 0 empty empty empty 0 -6 0 8 -233017 -1
--1;
-#X obj 211 40 bng 15 250 50 0 empty empty empty 0 -6 0 8 -233017 -1
--1;
-#X text 174 228 the left grid and right grid must have the same number
-of elements in all dimensions except the one specified \, which will
-be the sum of the two corresponding;
-#X text 244 39 1 <--;
-#X text 45 41 2 <--;
-#X obj 18 222 #clip;
-#X obj 18 241 #out window;
-#X obj 18 106 #in;
-#X obj 211 125 #rgb_to_greyscale;
-#X obj 211 106 #in;
-#X obj 18 188 #perspective 128;
-#X text 175 160 creation argument is the index of the dimension by
-which the join will occur. for n-dimensional grids \, the dimensions
-are numbered from 0 to n-1. in addition \, negative numbers from -n
-to -1 may be used \, to which n will be added.;
-#X obj 0 0 doc_h;
-#X obj 3 666 doc_also;
-#X obj 3 288 doc_c 0..2;
-#X obj 3 409 doc_i 2;
-#X obj 3 606 doc_o 1;
-#X obj 18 161 #join 2;
-#X obj 14 318 doc_cc 0;
-#X obj 14 379 doc_cc 1;
-#X obj 14 439 doc_ii 0;
-#X obj 14 574 doc_ii 1;
-#X obj 14 636 doc_oo 0;
-#X obj 97 318 doc_m c0 float;
-#X obj 97 379 doc_m c1 grid;
-#X obj 97 439 doc_m i0;
-#X text 232 318 Which_dim is the number of the dimension by which the
-join will occur. For N-dimensional grids \, the dimensions are numbered
-from 0 to N-1. In addition \, negative numbers from -N to -1 may be
-used \, to which N will be added.;
-#X text 232 439 The left grid and right grid must have the same number
-of elements in all dimensions except the one specified. The result
-will have the same number of elements in all dimensions except the
-one specified \, which will be the sum of the two corresponding one.
-;
-#X text 232 513 For example \, joining a RGB picture Dim[y \, x \,
-3] and a greyscale picture Dim[y \, x \, 1] on dimension 2 (or -1)
-could make a RGBA picture Dim[y \, x \, 4] in which the greyscale image
-becomes the opacity channel.;
-#X text 232 574 same as arg 1;
-#X obj 97 574 doc_m i1 grid;
-#X obj 97 636 doc_m o0 grid;
-#X obj 0 686 doc_f;
-#X msg 18 83 load r001.jpg;
-#X msg 211 78 load b001.jpg;
-#X obj 103 666 listappend;
-#X obj 175 666 list append;
-#X text 234 381 grid to be appended to the left-inlet grid;
-#X connect 0 0 33 0;
-#X connect 1 0 34 0;
-#X connect 5 0 6 0;
-#X connect 7 0 17 0;
-#X connect 8 0 17 1;
-#X connect 9 0 8 0;
-#X connect 10 0 5 0;
-#X connect 13 1 35 0;
-#X connect 13 1 36 0;
-#X connect 17 0 10 0;
-#X connect 23 1 26 0;
-#X connect 25 1 27 0;
-#X connect 25 1 28 0;
-#X connect 30 1 29 0;
-#X connect 33 0 7 0;
-#X connect 34 0 9 0;
diff --git a/externals/gridflow/doc/flow_classes/#labelling-help.pd b/externals/gridflow/doc/flow_classes/#labelling-help.pd
deleted file mode 100644
index 053b6ee0..00000000
--- a/externals/gridflow/doc/flow_classes/#labelling-help.pd
+++ /dev/null
@@ -1,55 +0,0 @@
-#N canvas 573 85 632 627 10;
-#X obj 0 0 doc_h;
-#X obj 0 598 doc_f;
-#X obj 71 60 #labelling;
-#X obj 3 300 doc_o 4;
-#X obj 3 190 doc_i 1;
-#X obj 14 330 doc_oo 0;
-#X obj 14 391 doc_oo 1;
-#X obj 14 487 doc_oo 2;
-#X obj 14 544 doc_oo 3;
-#X obj 14 220 doc_ii 0;
-#X obj 97 544 doc_m o3 float;
-#X obj 97 487 doc_m o2 grid;
-#X obj 97 391 doc_m o1 grid;
-#X obj 97 330 doc_m o0 grid;
-#X obj 97 220 doc_m i0 grid;
-#X obj 3 106 doc_c 0..1;
-#X text 232 136 0 : bidimensional form;
-#X text 232 158 1 : form for horizontal lines;
-#X text 232 220 single-channel picture to analyse. the content must
-be made of zeroes and ones (other values are reserved for making the
-output);
-#X text 232 330 single-channel picture in which every contiguous region
-(of ones) is labelled (flood-filled) using a number greater than or
-equal to 2 those numbers are sorted according to the smallest pixel
-index found in each region.;
-#X obj 97 268 doc_m i0 form;
-#X text 232 268 same as arg 0;
-#X text 232 391 when form=0: a grid[2 \, 2] giving the standard-deviation
-([#moment 2]) of each region;
-#X text 232 487 when form=0: a grid[2] giving the centre ([#moment
-1]) of each region;
-#X text 232 544 when form=0: area of each region (in number of pixels)
-;
-#X obj 97 566 doc_m o3 <gone>;
-#X text 232 566 when form=1: not present;
-#X text 232 522 when form=1: not present;
-#X obj 97 522 doc_m o2 <gone>;
-#X text 232 426 when form=1: a grid[2 \, 2] that is a 2-polygon \,
-that is \, just a straight line. this line is horizontal \, and its
-right-side bound is for the first pixel that is NOT in the region.
-;
-#X obj 14 136 doc_cc 0;
-#X obj 97 136 doc_m c0 float/int;
-#X connect 10 1 24 0;
-#X connect 11 1 23 0;
-#X connect 12 1 22 0;
-#X connect 12 1 29 0;
-#X connect 13 1 19 0;
-#X connect 14 1 18 0;
-#X connect 20 1 21 0;
-#X connect 25 1 26 0;
-#X connect 28 1 27 0;
-#X connect 31 1 16 0;
-#X connect 31 1 17 0;
diff --git a/externals/gridflow/doc/flow_classes/#layer-help.pd b/externals/gridflow/doc/flow_classes/#layer-help.pd
deleted file mode 100644
index 0cbedf0f..00000000
--- a/externals/gridflow/doc/flow_classes/#layer-help.pd
+++ /dev/null
@@ -1,47 +0,0 @@
-#N canvas 686 0 632 512 10;
-#X text 176 92 opacity channel file;
-#X text 52 62 foreground file;
-#X text 383 83 background file;
-#X text 157 176 a picture that has an opacity level will be used as
-foreground vs a picture that has no opacity channel. the output is
-a picture that has no opacity channel;
-#X msg 202 40 load b001.jpg;
-#X obj 179 67 #in;
-#X obj 205 67 #rgb_to_greyscale;
-#X obj 351 83 #in;
-#X msg 374 58 load g001.jpg;
-#X msg 42 38 load r001.jpg;
-#X obj 19 63 #in;
-#X obj 19 175 #layer;
-#X obj 19 206 #out window;
-#X obj 0 0 doc_h;
-#X obj 3 245 doc_c 0;
-#X obj 3 395 doc_o 1;
-#X obj 3 285 doc_i 2;
-#X obj 14 425 doc_oo 0;
-#X obj 14 315 doc_ii 0;
-#X obj 14 350 doc_ii 1;
-#X text 232 315 An image that has an opacity channel. Will be used
-as foreground.;
-#X text 232 350 An image that has NO opacity channel. Will be used
-as background.;
-#X text 232 425 An image that has NO opacity channel. The opacity channel
-of the foreground image is used as weighting of how much either picture
-is seen in the result.;
-#X obj 19 128 #join -1;
-#X obj 97 315 doc_m i0 grid;
-#X obj 97 350 doc_m i1 grid;
-#X obj 97 425 doc_m o0 grid;
-#X obj 0 483 doc_f;
-#X connect 4 0 5 0;
-#X connect 5 0 6 0;
-#X connect 6 0 23 1;
-#X connect 7 0 11 1;
-#X connect 8 0 7 0;
-#X connect 9 0 10 0;
-#X connect 10 0 23 0;
-#X connect 11 0 12 0;
-#X connect 23 0 11 0;
-#X connect 24 1 20 0;
-#X connect 25 1 21 0;
-#X connect 26 1 22 0;
diff --git a/externals/gridflow/doc/flow_classes/#line_to_polygon-help.pd b/externals/gridflow/doc/flow_classes/#line_to_polygon-help.pd
deleted file mode 100644
index 50133629..00000000
--- a/externals/gridflow/doc/flow_classes/#line_to_polygon-help.pd
+++ /dev/null
@@ -1,40 +0,0 @@
-#N canvas 623 73 632 537 10;
-#X obj 43 180 #draw_polygon put (255 255 255);
-#X obj 43 239 #out window;
-#X msg 43 161 240 320 3 #;
-#X obj 256 167 display;
-#X msg 125 102 2 2 # 10 10 229 309;
-#X obj 125 121 #line_to_polygon 4;
-#X obj 0 0 doc_h;
-#X obj 3 286 doc_c 1;
-#X obj 3 352 doc_i 2;
-#X obj 3 446 doc_o 1;
-#X obj 14 476 doc_oo 0;
-#X obj 14 382 doc_ii 0;
-#X obj 14 414 doc_ii 1;
-#X obj 14 316 doc_cc 0;
-#X obj 0 508 doc_f;
-#X obj 43 73 t b b;
-#X obj 43 46 bng 15 250 50 0 empty empty empty 17 7 0 10 -4034 -1 -1
-;
-#X obj 97 316 doc_m c0 float;
-#X text 232 316 Line width.;
-#X obj 97 392 doc_m i0 grid;
-#X obj 97 414 doc_m i1 float;
-#X text 232 414 Line width (same as argument 0);
-#X obj 97 476 doc_m o0;
-#X text 232 392 Grid containing a pair of coordinates.;
-#X text 232 476 Grid representing the vertices of the resulting polygon.
-;
-#X connect 0 0 1 0;
-#X connect 2 0 0 0;
-#X connect 4 0 5 0;
-#X connect 5 0 0 2;
-#X connect 5 0 3 0;
-#X connect 15 0 2 0;
-#X connect 15 1 4 0;
-#X connect 16 0 15 0;
-#X connect 17 1 18 0;
-#X connect 19 1 23 0;
-#X connect 20 1 21 0;
-#X connect 22 1 24 0;
diff --git a/externals/gridflow/doc/flow_classes/#make_arrow-help.pd b/externals/gridflow/doc/flow_classes/#make_arrow-help.pd
deleted file mode 100644
index 4fa076e6..00000000
--- a/externals/gridflow/doc/flow_classes/#make_arrow-help.pd
+++ /dev/null
@@ -1,20 +0,0 @@
-#N canvas 623 133 632 373 10;
-#X obj 0 0 doc_h;
-#X obj 0 344 doc_f;
-#X obj 55 53 #make_arrow;
-#X obj 3 180 doc_c 0;
-#X obj 3 220 doc_i 1;
-#X obj 3 282 doc_o 1;
-#X obj 14 250 doc_ii 0;
-#X obj 14 312 doc_oo 0;
-#X obj 97 250 doc_m i0 grid;
-#X obj 97 312 doc_m o0 grid;
-#X text 232 312 grid[;
-#X obj 58 77 display;
-#X msg 55 34 4 # 10 20 30 40;
-#X text 212 95 can anyone figure out what is this ?;
-#X text 232 250 grid[euh];
-#X connect 2 0 11 0;
-#X connect 8 1 14 0;
-#X connect 9 1 10 0;
-#X connect 12 0 2 0;
diff --git a/externals/gridflow/doc/flow_classes/#make_cross-help.pd b/externals/gridflow/doc/flow_classes/#make_cross-help.pd
deleted file mode 100644
index 0e0685be..00000000
--- a/externals/gridflow/doc/flow_classes/#make_cross-help.pd
+++ /dev/null
@@ -1,47 +0,0 @@
-#N canvas 444 135 632 419 10;
-#X obj 43 57 tgl 15 0 empty empty empty 17 7 0 10 -204786 -1 -1 0 1
-;
-#X obj 43 78 metro 100;
-#X obj 43 149 #out window;
-#X obj 43 130 #draw_polygon put (255 0 0);
-#X obj 202 111 #make_cross 120;
-#X msg 202 92 240 320;
-#X obj 202 57 loadbang;
-#X msg 289 92 150;
-#X obj 261 66 t b b;
-#X obj 261 44 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
--1;
-#X obj 43 101 #camera 0;
-#X text 319 90 change cross size;
-#X obj 0 0 doc_h;
-#X obj 3 182 doc_c 1;
-#X obj 3 244 doc_i 2;
-#X obj 14 274 doc_ii 0;
-#X obj 14 296 doc_ii 1;
-#X obj 3 328 doc_o 1;
-#X obj 14 358 doc_oo 0;
-#X obj 14 212 doc_cc 0;
-#X obj 0 390 doc_f;
-#X obj 97 296 doc_m i1;
-#X obj 97 274 doc_m i0;
-#X obj 97 212 doc_m c0;
-#X obj 97 358 doc_m o0 grid;
-#X text 232 358 polygon;
-#X text 232 274 position of centre;
-#X text 232 212 size (radius);
-#X text 232 296 same as arg 0;
-#X connect 0 0 1 0;
-#X connect 1 0 10 0;
-#X connect 3 0 2 0;
-#X connect 4 0 3 2;
-#X connect 5 0 4 0;
-#X connect 6 0 5 0;
-#X connect 7 0 4 1;
-#X connect 8 0 5 0;
-#X connect 8 1 7 0;
-#X connect 9 0 8 0;
-#X connect 10 0 3 0;
-#X connect 21 1 28 0;
-#X connect 22 1 26 0;
-#X connect 23 1 27 0;
-#X connect 24 1 25 0;
diff --git a/externals/gridflow/doc/flow_classes/#moment-help.pd b/externals/gridflow/doc/flow_classes/#moment-help.pd
deleted file mode 100644
index 0d47f338..00000000
--- a/externals/gridflow/doc/flow_classes/#moment-help.pd
+++ /dev/null
@@ -1,164 +0,0 @@
-#N canvas 663 46 632 642 10;
-#X obj 19 44 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 0 1;
-#X msg 234 48 4 2 # 1 1 1 -1 -1 -1 -1 1;
-#X obj 111 228 display;
-#X obj 43 258 display;
-#X obj 234 86 #rotate;
-#X obj 288 76 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -6 0 10
--241291 -1 -1 -1831 256;
-#X obj 288 92 * 100;
-#X obj 18 497 #out window;
-#X obj 67 181 #t;
-#X obj 110 207 #moment;
-#X msg 41 105 240 320 1 #;
-#X obj 41 124 #draw_polygon put (1 # 255);
-#X obj 426 123 #pack;
-#X obj 234 105 # +;
-#X obj 456 107 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -6 0 10
--241291 -1 -1 -45 256;
-#X obj 426 91 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -6 0 10
--241291 -1 -1 12 256;
-#X obj 426 72 #pack;
-#X obj 456 56 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -6 0 10
--241291 -1 -1 32 256;
-#X obj 426 40 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -6 0 10
--241291 -1 -1 49 256;
-#X obj 234 67 # *;
-#X obj 245 143 # inv+;
-#X obj 245 124 # +;
-#X obj 426 174 #pack;
-#X obj 456 158 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -6 0 10
--241291 -1 -1 149 256;
-#X obj 426 142 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -6 0 10
--241291 -1 -1 128 256;
-#X obj 41 143 #draw_polygon put (1 # 255);
-#X text 162 460 red filter;
-#X text 121 105 draw rectangles;
-#X text 238 31 rectangle polygon;
-#X obj 42 206 #moment 2;
-#X obj 269 192 #moment_polar;
-#X obj 356 212 display;
-#X obj 270 232 display;
-#X obj 5 81 bng 15 250 50 0 empty empty empty 0 -6 0 8 -24198 -1 -1
-;
-#X text 141 329 this is a fudge factor.;
-#X obj 18 516 fps;
-#X floatatom 18 535 5 0 0 0 - - -;
-#X text 143 341 depending on what you want to do \,;
-#X text 140 353 you set it to 2 \, 3 \, 4 \, whatever.;
-#X obj 402 314 #outer + (9000 0);
-#X obj 448 378 #transpose;
-#X obj 20 80 t b b b;
-#X obj 402 490 # + (120 160);
-#X obj 63 322 #cast f;
-#X obj 63 419 #inner \, seed (f #);
-#X obj 402 352 #cast f;
-#X obj 402 409 #inner \, seed (f #);
-#X obj 402 457 #cast i;
-#X obj 63 398 #swap;
-#X obj 402 276 #for 0 160 1;
-#X obj 63 379 # sqrt (f #);
-#X obj 63 341 # * (f # 3);
-#X obj 402 429 # / (f # 1000);
-#X obj 402 333 # cos* 1000;
-#X obj 402 295 # * 225;
-#X obj 18 459 #inner (1 3 # 1 0 0);
-#X obj 18 478 #draw_polygon + (0 255 255) (2 2 #);
-#X obj 19 61 metro 20;
-#X obj 18 164 #t;
-#X obj 63 360 cv/#SVD;
-#X obj 0 0 doc_h;
-#X obj 3 559 doc_c 0..1;
-#X obj 3 708 doc_i 2;
-#X obj 3 818 doc_o 1;
-#X obj 14 848 doc_oo 0;
-#X obj 14 738 doc_ii 0;
-#X obj 14 760 doc_ii 1;
-#X obj 14 589 doc_cc 0;
-#X obj 0 902 doc_f;
-#X obj 0 902 doc_f;
-#X obj 97 848 doc_m o0 grid;
-#X obj 97 760 doc_m i1 grid;
-#X obj 97 738 doc_m i0 grid;
-#X obj 97 589 doc_m c0 float;
-#X text 232 589 1: average index of the values in the grid \, weighted
-by the values themselves.;
-#X text 232 624 2: average square of index of the values in the grid
-\, weighted by the values themselves. this can be used to compute a
-variance (covariance) matrix \, which in turn can be fed to [#moment_polar]
-to figure out the standard deviation and the direction of the standard
-deviation.;
-#X text 232 848 mode 1: a grid[2];
-#X text 232 870 mode 2: a grid[2 \, 2];
-#X text 232 738 greyscale image;
-#X text 232 760 mode 2: alleged centroid (doesn't have to be the real
-centroid \, but when it is \, the output will be the variance matrix
-\; else it won't be a centred moment);
-#X connect 0 0 57 0;
-#X connect 1 0 19 0;
-#X connect 4 0 13 0;
-#X connect 5 0 6 0;
-#X connect 6 0 4 1;
-#X connect 7 0 35 0;
-#X connect 8 0 29 0;
-#X connect 8 1 9 0;
-#X connect 9 0 2 0;
-#X connect 9 0 29 1;
-#X connect 9 0 42 1;
-#X connect 10 0 11 0;
-#X connect 11 0 25 0;
-#X connect 12 0 13 1;
-#X connect 13 0 21 0;
-#X connect 13 0 20 0;
-#X connect 14 0 12 1;
-#X connect 15 0 12 0;
-#X connect 16 0 19 1;
-#X connect 17 0 16 1;
-#X connect 18 0 16 0;
-#X connect 19 0 4 0;
-#X connect 20 0 25 2;
-#X connect 21 0 11 2;
-#X connect 22 0 21 1;
-#X connect 22 0 20 1;
-#X connect 23 0 22 1;
-#X connect 24 0 22 0;
-#X connect 25 0 58 0;
-#X connect 29 0 3 0;
-#X connect 29 0 30 0;
-#X connect 29 0 43 0;
-#X connect 30 0 32 0;
-#X connect 30 1 31 0;
-#X connect 33 0 41 0;
-#X connect 35 0 36 0;
-#X connect 39 0 53 0;
-#X connect 40 0 46 1;
-#X connect 41 0 49 0;
-#X connect 41 1 10 0;
-#X connect 41 2 1 0;
-#X connect 42 0 56 2;
-#X connect 43 0 51 0;
-#X connect 44 0 40 0;
-#X connect 45 0 46 0;
-#X connect 46 0 52 0;
-#X connect 47 0 42 0;
-#X connect 48 0 44 0;
-#X connect 48 1 44 1;
-#X connect 49 0 54 0;
-#X connect 50 0 48 0;
-#X connect 51 0 59 0;
-#X connect 52 0 47 0;
-#X connect 53 0 45 0;
-#X connect 54 0 39 0;
-#X connect 55 0 56 0;
-#X connect 56 0 7 0;
-#X connect 57 0 41 0;
-#X connect 58 0 55 0;
-#X connect 58 1 8 0;
-#X connect 59 0 50 0;
-#X connect 59 1 48 1;
-#X connect 70 1 76 0;
-#X connect 70 1 77 0;
-#X connect 71 1 79 0;
-#X connect 72 1 78 0;
-#X connect 73 1 74 0;
-#X connect 73 1 75 0;
diff --git a/externals/gridflow/doc/flow_classes/#moment_polar-help.pd b/externals/gridflow/doc/flow_classes/#moment_polar-help.pd
deleted file mode 100644
index d68966a6..00000000
--- a/externals/gridflow/doc/flow_classes/#moment_polar-help.pd
+++ /dev/null
@@ -1,25 +0,0 @@
-#N canvas 455 225 632 371 10;
-#X text 232 226 must be a 2x2 symmetric matrix.;
-#X text 232 288 outlet 0: angle (only makes sense with a 2x2 matrix)
-as int;
-#X text 232 310 outlet 1: radiuses (from biggest to smallest) as float
-grid;
-#X text 30 61 please open this other help patch for a demo:;
-#X obj 0 0 doc_h;
-#X obj 3 121 doc_c 0;
-#X obj 3 161 doc_i 1;
-#X obj 3 258 doc_o 2;
-#X obj 14 288 doc_oo 0;
-#X obj 14 310 doc_oo 1;
-#X obj 14 191 doc_ii 0;
-#X obj 0 342 doc_f;
-#X obj 97 191 doc_m i0 grid;
-#X obj 97 288 doc_m o0 grid;
-#X obj 97 310 doc_m o1 grid;
-#X obj 37 77 #moment-help;
-#X text 232 191 inlet 0: variance matrix (aka covariance matrix) \,
-from [#moment 2] or compatible.;
-#X connect 12 1 16 0;
-#X connect 12 1 0 0;
-#X connect 13 1 1 0;
-#X connect 14 1 2 0;
diff --git a/externals/gridflow/doc/flow_classes/#motion_detection-help.pd b/externals/gridflow/doc/flow_classes/#motion_detection-help.pd
deleted file mode 100644
index 4acf4a15..00000000
--- a/externals/gridflow/doc/flow_classes/#motion_detection-help.pd
+++ /dev/null
@@ -1,83 +0,0 @@
-#N canvas 536 0 632 642 10;
-#X obj 47 40 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 0 1;
-#X obj 47 315 print;
-#X obj 47 292 fps detailed;
-#X obj 47 57 metro 33.3667;
-#X obj 47 76 #camera;
-#X obj 96 132 vradio 15 1 0 2 empty empty empty 0 -6 0 8 -241291 -1
--1 0;
-#X text 115 132 motion;
-#X text 116 146 presence;
-#X floatatom 223 237 7 0 0 0 - - -;
-#X obj 47 268 #out window;
-#X obj 209 168 tgl 15 0 empty empty empty 0 -6 0 8 -241291 -1 -1 0
-1;
-#X obj 74 105 hsl 128 15 0 127 0 0 empty empty empty -2 -6 0 8 -260818
--1 -1 0 1;
-#X text 208 104 reduce the noise in the image;
-#X obj 156 237 nbx 5 14 -1e+37 1e+37 0 0 empty empty y -10 4 0 10 -24198
--1 -1 0 256;
-#X obj 85 237 nbx 5 14 -1e+37 1e+37 0 0 empty empty x -10 4 0 10 -24198
--1 -1 0 256;
-#X obj 47 183 #motion_detection;
-#X text 279 236 total amount of change;
-#X obj 177 142 tgl 15 0 empty empty empty 0 -6 0 8 -241291 -1 -1 0
-1;
-#X text 195 142 fade;
-#X text 227 168 crosshair;
-#X obj 0 0 doc_h;
-#X obj 0 678 doc_f;
-#X obj 3 378 doc_i 5;
-#X obj 3 338 doc_c 0;
-#X obj 3 550 doc_o 4;
-#X obj 14 580 doc_oo 0;
-#X obj 14 602 doc_oo 1;
-#X obj 14 624 doc_oo 2;
-#X obj 14 646 doc_oo 3;
-#X obj 14 408 doc_ii 0;
-#X obj 14 430 doc_ii 1;
-#X obj 14 452 doc_ii 2;
-#X obj 14 496 doc_ii 3;
-#X obj 14 518 doc_ii 4;
-#X obj 97 518 doc_m i4;
-#X obj 97 496 doc_m i3;
-#X obj 97 452 doc_m i2;
-#X obj 97 430 doc_m i1;
-#X obj 97 408 doc_m i0;
-#X obj 97 646 doc_m o3 float;
-#X obj 97 624 doc_m o2 float;
-#X obj 97 602 doc_m o1 float;
-#X text 232 602 x;
-#X text 232 624 y;
-#X text 232 646 amount of change;
-#X obj 97 580 doc_m o0 grid;
-#X text 232 580 image;
-#X text 232 518 crosshair;
-#X text 232 496 fade;
-#X text 232 452 0: motion;
-#X text 232 474 1: presence;
-#X text 232 430 noise reduction;
-#X text 232 408 camera input;
-#X connect 0 0 3 0;
-#X connect 2 0 1 0;
-#X connect 3 0 4 0;
-#X connect 4 0 15 0;
-#X connect 5 0 15 2;
-#X connect 9 0 2 0;
-#X connect 10 0 15 4;
-#X connect 11 0 15 1;
-#X connect 15 0 9 0;
-#X connect 15 1 14 0;
-#X connect 15 2 13 0;
-#X connect 15 3 8 0;
-#X connect 17 0 15 3;
-#X connect 34 1 47 0;
-#X connect 35 1 48 0;
-#X connect 36 1 49 0;
-#X connect 36 1 50 0;
-#X connect 37 1 51 0;
-#X connect 38 1 52 0;
-#X connect 39 1 44 0;
-#X connect 40 1 43 0;
-#X connect 41 1 42 0;
-#X connect 45 1 46 0;
diff --git a/externals/gridflow/doc/flow_classes/#mouse-help.pd b/externals/gridflow/doc/flow_classes/#mouse-help.pd
deleted file mode 100644
index 648afc0f..00000000
--- a/externals/gridflow/doc/flow_classes/#mouse-help.pd
+++ /dev/null
@@ -1,99 +0,0 @@
-#N canvas 675 0 632 699 10;
-#X msg 59 113 setcursor 32;
-#X msg 40 90 hidecursor;
-#X text 125 88 <-- removes the cursor;
-#X text 159 110 <-- accepts 0 - 63;
-#X obj 136 148 print xy_clicked;
-#X obj 137 194 print xy_unclicked;
-#X obj 68 281 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
-;
-#X obj 85 281 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
-;
-#X obj 102 281 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
-1;
-#X floatatom 139 292 5 0 0 0 - - -;
-#X obj 139 273 +;
-#X obj 173 273 t a;
-#X obj 137 218 print xy_moved;
-#X obj 136 170 print xy_dragged;
-#X obj 340 175 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1
-1;
-#X obj 360 175 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1
-1;
-#X obj 380 175 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1
-1;
-#X obj 400 151 loadbang;
-#X text 232 422 select buttons to be considered in click/drag/unclick
-;
-#X obj 40 145 #out window;
-#X obj 340 201 #pack 3;
-#X obj 0 0 doc_h;
-#X obj 3 330 doc_c 0;
-#X obj 3 370 doc_i 2;
-#X obj 3 454 doc_o 8;
-#X obj 14 484 doc_oo 0;
-#X obj 14 506 doc_oo 1;
-#X obj 14 528 doc_oo 2;
-#X obj 14 550 doc_oo 3;
-#X obj 14 572 doc_oo 4;
-#X obj 14 594 doc_oo 5;
-#X obj 14 616 doc_oo 6;
-#X obj 14 638 doc_oo 7;
-#X obj 14 400 doc_ii 0;
-#X obj 14 422 doc_ii 1;
-#X text 19 32 How to get the mouse coordinates and hide / change the
-cursor;
-#X obj 40 247 #mouse \, \, \, \, \,;
-#X obj 97 400 doc_m i0 list;
-#X text 232 484 (y x) click;
-#X text 232 506 (y x) drag;
-#X text 232 528 (y x) unclick;
-#X text 232 550 (y x) move;
-#X text 232 572 0 \, 1 button 1 status;
-#X text 232 594 0 \, 1 button 2 status;
-#X text 232 616 0 \, 1 button 3 status;
-#X text 232 638 mouse wheel difference: -1=up +1=down;
-#X obj 340 230 #to_list;
-#X text 232 400 what comes out of [#out window];
-#X obj 97 422 doc_m i1 list;
-#X obj 97 484 doc_m o0 list;
-#X obj 97 506 doc_m o1 list;
-#X obj 97 528 doc_m o2 list;
-#X obj 97 550 doc_m o3 list;
-#X obj 97 572 doc_m o4 float;
-#X obj 97 594 doc_m o5 float;
-#X obj 97 616 doc_m o6 float;
-#X obj 97 638 doc_m o7 float;
-#X obj 0 670 doc_f;
-#X connect 0 0 19 0;
-#X connect 1 0 19 0;
-#X connect 10 0 11 0;
-#X connect 10 0 9 0;
-#X connect 11 0 10 1;
-#X connect 14 0 20 0;
-#X connect 15 0 20 1;
-#X connect 16 0 20 2;
-#X connect 17 0 14 0;
-#X connect 17 0 15 0;
-#X connect 17 0 16 0;
-#X connect 19 0 36 0;
-#X connect 20 0 46 0;
-#X connect 36 0 4 0;
-#X connect 36 1 13 0;
-#X connect 36 2 5 0;
-#X connect 36 3 12 0;
-#X connect 36 4 6 0;
-#X connect 36 5 7 0;
-#X connect 36 6 8 0;
-#X connect 36 7 10 0;
-#X connect 37 1 47 0;
-#X connect 46 0 36 1;
-#X connect 48 1 18 0;
-#X connect 49 1 38 0;
-#X connect 50 1 39 0;
-#X connect 51 1 40 0;
-#X connect 52 1 41 0;
-#X connect 53 1 42 0;
-#X connect 54 1 43 0;
-#X connect 55 1 44 0;
-#X connect 56 1 45 0;
diff --git a/externals/gridflow/doc/flow_classes/#noise_gate_yuvs-help.pd b/externals/gridflow/doc/flow_classes/#noise_gate_yuvs-help.pd
deleted file mode 100644
index a2003659..00000000
--- a/externals/gridflow/doc/flow_classes/#noise_gate_yuvs-help.pd
+++ /dev/null
@@ -1,26 +0,0 @@
-#N canvas 591 265 632 338 10;
-#X obj 0 0 doc_h;
-#X obj 0 309 doc_f;
-#X obj 76 49 #noise_gate_yuvs;
-#X obj 3 150 doc_i 2;
-#X obj 3 247 doc_o 1;
-#X obj 3 88 doc_c 1;
-#X obj 14 277 doc_oo 0;
-#X obj 14 180 doc_ii 0;
-#X obj 14 215 doc_ii 1;
-#X obj 14 118 doc_cc 0;
-#X obj 97 118 doc_m c0 float/int;
-#X obj 97 180 doc_m i0 grid;
-#X text 203 44 sets pixels to (0 \, 0 \, 0) if their first component
-is lower than a certain threshold.;
-#X text 232 180 picture in signed YUV format (or whatever else works
-for you);
-#X obj 97 215 doc_m i1 float;
-#X text 232 215 same as arg 0;
-#X obj 97 277 doc_m o0 grid;
-#X text 232 118 threshold;
-#X text 232 277 filtered picture in signed YUV format;
-#X connect 10 1 17 0;
-#X connect 11 1 13 0;
-#X connect 14 1 15 0;
-#X connect 16 1 18 0;
diff --git a/externals/gridflow/doc/flow_classes/#out-help.pd b/externals/gridflow/doc/flow_classes/#out-help.pd
deleted file mode 100644
index 17d9d2e8..00000000
--- a/externals/gridflow/doc/flow_classes/#out-help.pd
+++ /dev/null
@@ -1,139 +0,0 @@
-#N canvas 674 0 632 642 10;
-#X obj 15 325 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X text 10 71 Displaying a grid:;
-#X text 342 73 Saving a grid:;
-#X text 232 689 "rewind" rewinds to the beginning of a video file.
-Will overwrite previous data.;
-#X obj 15 100 bng 15 250 50 0 empty empty empty 0 -6 0 8 -24198 -1
--1;
-#X obj 15 221 #in;
-#X msg 65 227 open window;
-#X msg 65 252 close;
-#X text 232 597 "close" closes the file and hides the display \, must
-be accompanied by message "open window" to reopen the display.;
-#X text 232 764 A bang notifies when a complete grid has been received.
-;
-#X text 12 32 Displays or saves an incoming grid (usually an image
-or a video).;
-#X obj 15 302 #out window \, title example;
-#X obj 127 100 bng 15 250 50 0 empty empty empty 0 -6 0 8 -24198 -1
--1;
-#X obj 133 796 #record;
-#X msg 366 228 open somefile.jpg;
-#X text 232 654 "open filename.format" (ex: "open somefile.jpg") sets
-the filename to write to.;
-#X obj 351 96 bng 15 250 50 0 empty empty empty 0 -6 0 8 -24198 -1
--1;
-#X obj 351 190 #in;
-#X obj 351 266 #out;
-#X msg 127 262 hidecursor;
-#X text 196 261 <-- linux only;
-#X text 232 632 "hidecursor" (linux only) hides the mouse cursor.;
-#X obj 0 0 doc_h;
-#X obj 3 371 doc_c n;
-#X obj 3 796 doc_also;
-#X obj 3 734 doc_o 1;
-#N canvas 140 137 570 615 More 1;
-#X text 203 143 open default display for screenshot;
-#X msg 82 197 open videodev /dev/video0;
-#X text 277 196 open a video device;
-#X msg 187 388 open x11 here;
-#X msg 158 337 open x11 local 10;
-#X text 298 390 connect to default display;
-#X text 297 338 connect to display #10 on this machine;
-#X msg 65 313 open x11 remote.host.bla.net 0;
-#X text 297 315 connect to remote machine on display #0;
-#X text 202 114 open an image file;
-#X msg 242 437 close;
-#X msg 83 142 open x11 here;
-#X msg 200 413 open window;
-#X text 299 413 opens a window x11 \, quartz or sdl;
-#X obj 23 223 cnv 15 23 17 empty empty empty 20 12 0 14 -241291 -66577
-0;
-#X obj 23 223 #in;
-#X obj 5 13 cnv 15 500 18 empty empty empty 20 12 0 14 -228992 -66577
-0;
-#X obj 14 14 #out;
-#X obj 23 480 #out;
-#X msg 53 114 open sewing.jpg;
-#X obj 23 72 bng 15 250 50 0 empty empty empty 0 -6 0 8 -24198 -1 -1
-;
-#X obj 23 93 t b b;
-#X msg 83 170 open lsd.mov;
-#X text 203 169 open a quicktime video;
-#X obj 97 74 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X msg 165 363 open save_here.jpg;
-#X text 298 362 select file to write to in jpg format;
-#X text 14 36 #out communicating grids (images) to/from devices \,
-sockets \, files;
-#X text 37 502 An incoming file is sent through the opened device or
-file. In single file format \, a subsequent picture overwrites the
-preceeding one. There are many more options.;
-#X connect 1 0 15 0;
-#X connect 3 0 18 0;
-#X connect 4 0 18 0;
-#X connect 7 0 18 0;
-#X connect 10 0 18 0;
-#X connect 11 0 15 0;
-#X connect 12 0 18 0;
-#X connect 15 0 18 0;
-#X connect 19 0 15 0;
-#X connect 20 0 21 0;
-#X connect 21 0 15 0;
-#X connect 21 1 19 0;
-#X connect 22 0 15 0;
-#X connect 24 0 15 0;
-#X connect 25 0 18 0;
-#X restore 140 334 pd More info about this object class;
-#X obj 3 488 doc_i 1;
-#X obj 14 518 doc_ii 0;
-#X obj 14 764 doc_oo 0;
-#X obj 97 518 doc_m i0 grid;
-#X obj 97 654 doc_m i0 open;
-#X obj 97 597 doc_m i0 close;
-#X obj 97 632 doc_m i0 hidecursor;
-#X obj 97 689 doc_m i0 rewind;
-#X obj 103 796 #in;
-#X text 188 426 auto-open with auto-detect of the format-handler;
-#X text 226 451 auto-open with manual choice of the format-handler
-;
-#X text 88 406 nothing opened \, you have to open by yourself;
-#X obj 46 407 #out;
-#X obj 46 428 #out filename.suffix;
-#X obj 46 449 #out handler filename.suffix;
-#X obj 97 553 doc_m i0 autoclose;
-#X obj 0 816 doc_f;
-#X obj 97 764 doc_m o0 bang;
-#X msg 15 117 load working.jpg;
-#X msg 127 117 load sewing.jpg;
-#X msg 351 113 load sewing.jpg;
-#X text 232 553 "autoclose 1": close after incoming image is finished.
-;
-#X text 232 575 "autoclose 0": doesn't.;
-#X text 232 518 write one frame (or in the case of [#out grid] \, one
-grid of any kind).;
-#X connect 4 0 45 0;
-#X connect 5 0 11 0;
-#X connect 6 0 11 0;
-#X connect 7 0 11 0;
-#X connect 11 0 0 0;
-#X connect 12 0 46 0;
-#X connect 14 0 18 0;
-#X connect 16 0 47 0;
-#X connect 17 0 18 0;
-#X connect 19 0 11 0;
-#X connect 24 1 35 0;
-#X connect 24 1 13 0;
-#X connect 30 1 50 0;
-#X connect 31 1 15 0;
-#X connect 32 1 8 0;
-#X connect 33 1 21 0;
-#X connect 34 1 3 0;
-#X connect 42 1 48 0;
-#X connect 42 1 49 0;
-#X connect 44 1 9 0;
-#X connect 45 0 5 0;
-#X connect 46 0 5 0;
-#X connect 47 0 17 0;
diff --git a/externals/gridflow/doc/flow_classes/#outer-help.pd b/externals/gridflow/doc/flow_classes/#outer-help.pd
deleted file mode 100644
index b56f18f8..00000000
--- a/externals/gridflow/doc/flow_classes/#outer-help.pd
+++ /dev/null
@@ -1,105 +0,0 @@
-#N canvas 668 0 632 642 10;
-#X obj 19 39 bng 15 250 50 0 empty empty empty 0 -6 0 8 -233017 -1
--1;
-#X obj 19 130 spigot;
-#X obj 100 130 spigot;
-#X obj 67 130 == 0;
-#X obj 67 39 tgl 15 0 empty empty empty 0 -6 0 8 -233017 -1 -1 0 1
-;
-#X text 88 40 select pattern;
-#X text 17 296 combine channelless picture with gamma factors (r \,
-g \, b);
-#X obj 19 89 until;
-#X msg 19 68 128;
-#X obj 60 89 float 1;
-#X obj 115 89 + 1;
-#X obj 171 90 until;
-#X obj 212 90 float 1;
-#X obj 267 90 + 1;
-#X msg 171 69 4;
-#X obj 199 622 #finished;
-#X obj 103 622 #scan +;
-#X obj 265 622 #cast;
-#X obj 307 622 #ravel;
-#X obj 355 622 #grade;
-#X obj 403 622 #perspective;
-#X obj 171 111 #import (3);
-#X obj 171 132 # * 128;
-#X obj 19 109 #import (128);
-#X obj 19 162 #outer +;
-#X obj 100 161 #outer ^;
-#X obj 100 181 # * 2;
-#X obj 19 255 #outer gamma;
-#X obj 3 622 doc_also;
-#X obj 0 0 doc_h;
-#X obj 3 320 doc_c 1;
-#X obj 3 404 doc_i 2;
-#X obj 14 434 doc_ii 0;
-#X obj 14 530 doc_ii 1;
-#X obj 3 562 doc_o 1;
-#X obj 14 592 doc_oo 0;
-#X obj 19 277 #out window;
-#X obj 14 350 doc_cc 0;
-#X obj 97 434 doc_m i0 grid;
-#X obj 97 508 doc_m i0 op;
-#X obj 97 372 doc_m c0 op;
-#X obj 97 530 doc_m i1 grid;
-#X obj 97 592 doc_m o0 grid;
-#X obj 97 350 doc_m c0 grid;
-#X obj 157 622 #join;
-#X text 171 250 #outer does the same two-input operation between every
-possible pair of the left-side grid and the right side grid.;
-#X obj 392 102 display;
-#X text 387 32 Multiplication table:;
-#X obj 391 79 #outer * (1 2 3 4 5 6 7);
-#X msg 391 56 1 2 3 4 5;
-#X text 232 434 produces a grid of size Dim(anyA... \, anyB...) \,
-where numbers are the results of the operation on every element of
-A and every element of B. the resulting array can be very big. Don't
-try this on two pictures (the result will have 6 dimensions);
-#X text 232 508 same as arg 0;
-#X text 232 530 same as arg 1;
-#X text 232 350 grid B (see below);
-#X obj 0 642 doc_f;
-#X text 232 372 numop;
-#X connect 0 0 8 0;
-#X connect 0 0 14 0;
-#X connect 1 0 24 0;
-#X connect 1 0 24 1;
-#X connect 2 0 25 0;
-#X connect 2 0 25 1;
-#X connect 3 0 2 1;
-#X connect 4 0 1 1;
-#X connect 4 0 3 0;
-#X connect 7 0 9 0;
-#X connect 8 0 7 0;
-#X connect 9 0 10 0;
-#X connect 9 0 23 0;
-#X connect 10 0 9 1;
-#X connect 11 0 12 0;
-#X connect 12 0 13 0;
-#X connect 12 0 21 0;
-#X connect 13 0 12 1;
-#X connect 14 0 11 0;
-#X connect 21 0 22 0;
-#X connect 22 0 27 1;
-#X connect 23 0 1 0;
-#X connect 23 0 2 0;
-#X connect 24 0 27 0;
-#X connect 25 0 26 0;
-#X connect 26 0 27 0;
-#X connect 27 0 36 0;
-#X connect 28 1 16 0;
-#X connect 28 1 44 0;
-#X connect 28 1 15 0;
-#X connect 28 1 17 0;
-#X connect 28 1 18 0;
-#X connect 28 1 19 0;
-#X connect 28 1 20 0;
-#X connect 38 1 50 0;
-#X connect 39 1 51 0;
-#X connect 40 1 55 0;
-#X connect 41 1 52 0;
-#X connect 43 1 53 0;
-#X connect 48 0 46 0;
-#X connect 49 0 48 0;
diff --git a/externals/gridflow/doc/flow_classes/#pack-help.pd b/externals/gridflow/doc/flow_classes/#pack-help.pd
deleted file mode 100644
index 1f3614f4..00000000
--- a/externals/gridflow/doc/flow_classes/#pack-help.pd
+++ /dev/null
@@ -1,46 +0,0 @@
-#N canvas 379 12 632 544 10;
-#X obj 23 178 #color;
-#X floatatom 85 77 5 0 0 0 - - -;
-#X floatatom 107 96 5 0 0 0 - - -;
-#X floatatom 129 115 5 0 0 0 - - -;
-#X text 162 90 <--click and drag to place numbers in the grid.;
-#X text 232 463 Outputs values from each individual inlet into a grid.
-;
-#X obj 0 0 doc_h;
-#X obj 3 349 doc_i n;
-#X obj 3 252 doc_c 0..2;
-#X text 14 28 Creates a one-dimensional grid (a Dim(N) vector) from
-individual integers.;
-#X text 232 379 every inlet is hot.;
-#X text 232 401 inlet order corresponds to value order in the grid.
-;
-#X obj 3 433 doc_o 1;
-#X obj 14 463 doc_oo 0;
-#X obj 14 379 doc_ii any;
-#X obj 14 282 doc_cc 0;
-#X obj 14 317 doc_cc 1;
-#X obj 97 282 doc_m c0 float/int;
-#X obj 97 317 doc_m c1 numtype;
-#X obj 97 379 doc_m iany float;
-#X obj 97 463 doc_m o0 grid[n];
-#X obj 0 515 doc_f;
-#X text 232 317 number type (default: int32);
-#X obj 85 135 #pack 3 f;
-#X obj 3 495 doc_also;
-#X obj 103 495 pack;
-#X obj 139 495 #unpack;
-#X obj 263 180 display;
-#X text 232 282 number of elements in the vector to be built (aka number
-of dimensions in the vector space) (default: 2);
-#X connect 1 0 23 0;
-#X connect 2 0 23 1;
-#X connect 3 0 23 2;
-#X connect 17 1 28 0;
-#X connect 18 1 22 0;
-#X connect 19 1 10 0;
-#X connect 19 1 11 0;
-#X connect 20 1 5 0;
-#X connect 23 0 0 0;
-#X connect 23 0 27 0;
-#X connect 24 1 25 0;
-#X connect 24 1 26 0;
diff --git a/externals/gridflow/doc/flow_classes/#perspective-help.pd b/externals/gridflow/doc/flow_classes/#perspective-help.pd
deleted file mode 100644
index d67b92ac..00000000
--- a/externals/gridflow/doc/flow_classes/#perspective-help.pd
+++ /dev/null
@@ -1,49 +0,0 @@
-#N canvas 675 0 632 550 10;
-#X text 153 55 transforms a dim[a... \, b] grid into a dim[a... \,
-b-1] grid. there is a projection plane perpendicular to the last axis
-and whose position is given by the creation argument. each vector's
-length is adjusted so that it lies onto that plane. then the last dimension
-of each vector is dropped;
-#X obj 30 127 #pack 3;
-#X floatatom 75 82 5 0 0 0 - - -;
-#X obj 77 100 max 1;
-#X floatatom 12 95 5 0 0 0 - - -;
-#X floatatom 52 57 5 0 0 0 - - -;
-#X obj 30 190 #print;
-#X obj 79 182 #print;
-#X obj 79 163 #perspective;
-#X obj 103 501 #redim;
-#X obj 151 501 #ravel;
-#X obj 0 0 doc_h;
-#X obj 3 501 doc_also;
-#X obj 3 217 doc_c 1;
-#X obj 3 279 doc_i 1;
-#X obj 3 441 doc_o 1;
-#X obj 14 471 doc_oo 0;
-#X obj 14 309 doc_ii 0;
-#X obj 14 247 doc_cc 0;
-#X obj 97 309 doc_m i0 grid;
-#X obj 97 471 doc_m o0 grid;
-#X text 232 309 transforms a Dim[A... \, B] grid into a Dim[A... \,
-B-1] grid. There is a projection plane perpendicular to the last axis
-and whose position is given by the "depth" parameter. Each vector's
-length is adjusted so that it lies onto that plane. Then the last dimension
-of each vector is dropped.;
-#X text 232 383 useful for converting from 3-D geometry to 2-D geometry.
-Also useful for converting homogeneous 3-D into regular 3-D \, as homogeneous
-3-D is really just regular 4-D...(!);
-#X obj 97 247 doc_m c0 float;
-#X text 232 247 depth;
-#X obj 0 521 doc_f;
-#X connect 1 0 6 0;
-#X connect 1 0 8 0;
-#X connect 2 0 3 0;
-#X connect 3 0 1 2;
-#X connect 4 0 1 0;
-#X connect 5 0 1 1;
-#X connect 8 0 7 0;
-#X connect 12 1 9 0;
-#X connect 12 1 10 0;
-#X connect 19 1 21 0;
-#X connect 19 1 22 0;
-#X connect 23 1 24 0;
diff --git a/externals/gridflow/doc/flow_classes/#polygon_area-help.pd b/externals/gridflow/doc/flow_classes/#polygon_area-help.pd
deleted file mode 100644
index 6d7a661c..00000000
--- a/externals/gridflow/doc/flow_classes/#polygon_area-help.pd
+++ /dev/null
@@ -1,28 +0,0 @@
-#N canvas 628 15 632 522 10;
-#X obj 0 0 doc_h;
-#X obj 0 493 doc_f;
-#X obj 58 239 #polygon_area;
-#X obj 59 259 display;
-#X msg 58 96 4 2 # 10 10 10 310 230 310 230 10;
-#X text 93 116 220 x 300 rectangle;
-#X obj 79 146 display;
-#X text 11 36 Find area of a polygon in square pixels.;
-#X obj 3 309 doc_c 0;
-#X obj 3 349 doc_i 1;
-#X obj 3 418 doc_o 1;
-#X obj 58 77 loadbang;
-#X obj 14 379 doc_ii 0;
-#X obj 97 379 doc_m i0 grid;
-#X text 232 379 Vertices of the polygon.;
-#X obj 14 448 doc_oo 0;
-#X obj 97 448 doc_m o0 grid;
-#X text 232 448 Grid of only one element representing the area of the
-polygon received from inlet 0;
-#X obj 58 115 # +;
-#X connect 2 0 3 0;
-#X connect 4 0 18 0;
-#X connect 11 0 4 0;
-#X connect 13 1 14 0;
-#X connect 16 1 17 0;
-#X connect 18 0 2 0;
-#X connect 18 0 6 0;
diff --git a/externals/gridflow/doc/flow_classes/#polygon_comparator-help.pd b/externals/gridflow/doc/flow_classes/#polygon_comparator-help.pd
deleted file mode 100644
index 5dd99ec8..00000000
--- a/externals/gridflow/doc/flow_classes/#polygon_comparator-help.pd
+++ /dev/null
@@ -1,85 +0,0 @@
-#N canvas 566 0 632 642 10;
-#X obj 255 129 #outer + (0 9000);
-#X text 333 91 make regular triangle;
-#X obj 255 227 #rotate;
-#X obj 209 53 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
-;
-#X obj 308 227 * 100;
-#X floatatom 308 211 5 0 0 0 - - -;
-#X obj 268 72 t b b;
-#X obj 255 246 #polygon_comparator;
-#X obj 209 72 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 255 186 #t;
-#X obj 228 53 metro 1000;
-#X text 30 254 BUG: first try doesn't work;
-#X text 67 265 please bang twice;
-#X msg 381 149 4 2 # 1 1 1 -1 -1 -1 -1 1;
-#X obj 391 195 display;
-#X obj 255 110 # * 12000;
-#X obj 255 91 #for 0 3 1;
-#X obj 381 169 # * (100 100);
-#X obj 255 167 # + (0 0);
-#X obj 255 148 # cos* (100 100);
-#X obj 215 278 #fold min;
-#X obj 295 278 #fold max;
-#X obj 215 297 #to_float;
-#X obj 295 297 #to_float;
-#X obj 381 129 loadbang;
-#X obj 215 316 nbx 8 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 9
--262144 -1 -1 0 256;
-#X obj 295 316 nbx 8 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 9
--262144 -1 -1 0 256;
-#X text 232 453 or method "precision" for setting the size of the output
-grid.;
-#X text 232 510 in which the peak represents the amount of similarity
-between the two polygons \, and the position of the peak represents
-the optimal rotation for maximum overlapping of the polygons. The rotation
-origin is assumed to be the centroid (#moment 1);
-#X text 24 239 NOTE: requires [#fft];
-#X text 33 150 translations \, e.g. [# +];
-#X text 33 168 rotations \, e.g. [#rotate];
-#X obj 0 0 doc_h;
-#X obj 3 361 doc_c;
-#X obj 3 401 doc_i 2;
-#X obj 3 594 doc_o 1;
-#X text 232 488 a 2-D polygon as N by 2 grid;
-#X text 232 431 a 2-D polygon as N by 2 grid;
-#X obj 14 431 doc_ii 0;
-#X obj 14 488 doc_ii 1;
-#X obj 14 624 doc_oo 0;
-#X obj 0 654 doc_f;
-#X obj 97 431 doc_m i0 grid;
-#X obj 97 488 doc_m i1;
-#X text 8 114 Comparisons are meant to be invariant;
-#X text 8 126 to the following transformations:;
-#X text 33 186 scalar scalings \, e.g. [# *] with;
-#X text 33 198 only one value.;
-#X obj 97 624 doc_m o0 grid;
-#X connect 0 0 19 0;
-#X connect 2 0 7 0;
-#X connect 3 0 10 0;
-#X connect 4 0 2 1;
-#X connect 5 0 4 0;
-#X connect 6 1 16 0;
-#X connect 7 0 20 0;
-#X connect 7 0 21 0;
-#X connect 8 0 6 0;
-#X connect 9 0 2 0;
-#X connect 10 0 6 0;
-#X connect 13 0 17 0;
-#X connect 15 0 0 0;
-#X connect 16 0 15 0;
-#X connect 17 0 14 0;
-#X connect 17 0 7 1;
-#X connect 18 0 9 0;
-#X connect 19 0 18 0;
-#X connect 20 0 22 0;
-#X connect 21 0 23 0;
-#X connect 22 0 25 0;
-#X connect 23 0 26 0;
-#X connect 24 0 13 0;
-#X connect 42 1 37 0;
-#X connect 42 1 27 0;
-#X connect 43 1 36 0;
-#X connect 43 1 28 0;
diff --git a/externals/gridflow/doc/flow_classes/#polygon_each_edge-help.pd b/externals/gridflow/doc/flow_classes/#polygon_each_edge-help.pd
deleted file mode 100644
index 06afba8a..00000000
--- a/externals/gridflow/doc/flow_classes/#polygon_each_edge-help.pd
+++ /dev/null
@@ -1,22 +0,0 @@
-#N canvas 338 225 632 377 10;
-#X obj 51 139 #print;
-#X obj 51 83 # +;
-#X obj 51 102 #polygon_each_edge;
-#X obj 0 0 doc_h;
-#X obj 3 170 doc_c;
-#X obj 3 210 doc_i 1;
-#X obj 3 273 doc_o 1;
-#X obj 14 303 doc_oo 0;
-#X obj 14 240 doc_ii 0;
-#X obj 0 348 doc_f;
-#X msg 51 48 4 2 # 0 0 0 20 20 20 20 0;
-#X obj 97 240 doc_m i0 grid;
-#X obj 97 303 doc_m o0 grid;
-#X text 232 240 Vertices of the polygon;
-#X text 232 303 Returns a grid contaning a vertex pair for each edge
-of the polygon.;
-#X connect 1 0 2 0;
-#X connect 2 0 0 0;
-#X connect 10 0 1 0;
-#X connect 11 1 13 0;
-#X connect 12 1 14 0;
diff --git a/externals/gridflow/doc/flow_classes/#polygon_moment-help.pd b/externals/gridflow/doc/flow_classes/#polygon_moment-help.pd
deleted file mode 100644
index 41ee2986..00000000
--- a/externals/gridflow/doc/flow_classes/#polygon_moment-help.pd
+++ /dev/null
@@ -1,64 +0,0 @@
-#N canvas 678 0 632 610 10;
-#X msg 263 58 4 2 # 1 1 1 5 5 5 5 1;
-#X text 413 58 should give 3 3;
-#X obj 282 188 display;
-#X obj 203 219 #outer + (-4 4);
-#X obj 203 238 #transpose;
-#X obj 37 64 metro 42;
-#X obj 37 47 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
-;
-#X msg 37 83 240 320 3 #;
-#X obj 37 256 #out window;
-#X obj 37 122 #draw_polygon + (255 0 0);
-#X obj 37 219 #draw_rect + (255 255 0);
-#X obj 378 188 display;
-#X obj 377 168 #polygon_moment 2;
-#X obj 281 168 #polygon_moment;
-#X obj 263 77 # * (10 20);
-#X obj 263 96 #rotate;
-#X floatatom 316 98 5 0 0 0 - - -;
-#X obj 0 0 doc_h;
-#X obj 3 375 doc_i 2;
-#X obj 3 291 doc_c 1;
-#X obj 3 516 doc_o 1;
-#X obj 14 546 doc_oo 0;
-#X obj 14 405 doc_ii 0;
-#X obj 14 427 doc_ii 1;
-#X obj 14 321 doc_cc 0;
-#X obj 97 321 doc_m c0 float;
-#X text 232 321 1: first-order moment (average);
-#X text 232 343 2: second-order moment (standard-deviation);
-#X obj 97 546 doc_m o0 grid;
-#X obj 97 405 doc_m i0 grid;
-#X obj 97 427 doc_m i1 grid;
-#X text 232 427 centre to subtract from the input;
-#X text 232 449 in the case of an average \, you'd leave this unused
-;
-#X text 232 471 but in the case of a standard-deviation \, you'd put
-the average in here \, unless you want a nonstandard deviation.;
-#X text 232 546 polygon. size (N 2);
-#X text 232 405 polygon. size (N 2);
-#X obj 0 578 doc_f;
-#X connect 0 0 14 0;
-#X connect 3 0 4 0;
-#X connect 4 0 10 2;
-#X connect 5 0 7 0;
-#X connect 6 0 5 0;
-#X connect 7 0 9 0;
-#X connect 9 0 10 0;
-#X connect 10 0 8 0;
-#X connect 12 0 11 0;
-#X connect 13 0 2 0;
-#X connect 13 0 3 0;
-#X connect 14 0 15 0;
-#X connect 15 0 9 2;
-#X connect 15 0 13 0;
-#X connect 15 0 12 0;
-#X connect 16 0 15 1;
-#X connect 25 1 26 0;
-#X connect 25 1 27 0;
-#X connect 28 1 34 0;
-#X connect 29 1 35 0;
-#X connect 30 1 31 0;
-#X connect 30 1 32 0;
-#X connect 30 1 33 0;
diff --git a/externals/gridflow/doc/flow_classes/#polygon_perimetre-help.pd b/externals/gridflow/doc/flow_classes/#polygon_perimetre-help.pd
deleted file mode 100644
index 6409a635..00000000
--- a/externals/gridflow/doc/flow_classes/#polygon_perimetre-help.pd
+++ /dev/null
@@ -1,23 +0,0 @@
-#N canvas 335 118 632 342 10;
-#X obj 0 0 doc_h;
-#X obj 0 313 doc_f;
-#X obj 47 64 #polygon_perimetre;
-#X obj 3 129 doc_c 0;
-#X obj 3 169 doc_i 1;
-#X obj 3 231 doc_o 1;
-#X obj 14 261 doc_oo 0;
-#X obj 14 199 doc_ii 0;
-#X obj 97 261 doc_m o0 grid;
-#X obj 97 199 doc_m i0 grid;
-#X text 232 261 perimetre as grid[];
-#X text 232 199 polygon as grid[N \, 2] or any cyclic path as grid[N
-\, M];
-#X text 187 44 finds the perimetre of a sequence of points in which
-the last point is assumed to connect back to the first point. this
-not need be an actual polygon (because points don't need to be coplanar
-for this calculation to work).;
-#X obj 3 293 doc_also;
-#X obj 103 293 #polygon_area;
-#X connect 8 1 10 0;
-#X connect 9 1 11 0;
-#X connect 13 1 14 0;
diff --git a/externals/gridflow/doc/flow_classes/#polygon_radial_map-help.pd b/externals/gridflow/doc/flow_classes/#polygon_radial_map-help.pd
deleted file mode 100644
index e08e8017..00000000
--- a/externals/gridflow/doc/flow_classes/#polygon_radial_map-help.pd
+++ /dev/null
@@ -1,55 +0,0 @@
-#N canvas 486 64 632 526 10;
-#X obj 244 185 #polygon_radial_map;
-#X text 70 40 makes a 1-D panoramic (polar) rendering of a polygon.
-;
-#X text 69 57 if you want to make standardized (translation-independent)
-renderings of polygons \, first substract [#polygon_moment] (or a variant
-thereof) from the polygon.;
-#X obj 244 280 #outer * (255 255 255);
-#X obj 244 299 #out window;
-#X obj 24 193 t b a;
-#X obj 24 240 #draw_polygon put (255 224 200);
-#X msg 24 221 240 320 3 # 0 60 90;
-#X obj 244 242 #for 128 0 -1;
-#X obj 24 259 #out window;
-#X obj 244 140 #t;
-#X obj 274 141 #polygon_moment;
-#X obj 293 162 display;
-#X obj 244 166 # -;
-#X obj 392 184 display;
-#X msg 24 116 4 2 # 30 30 30 250 120 200 170 90;
-#X obj 244 204 t a a;
-#X obj 244 223 #finished;
-#X obj 244 261 #outer <;
-#X obj 0 0 doc_h;
-#X obj 3 333 doc_c 0;
-#X obj 3 373 doc_i 1;
-#X obj 3 435 doc_o 1;
-#X obj 14 465 doc_oo 0;
-#X obj 14 403 doc_ii 0;
-#X obj 0 497 doc_f;
-#X obj 97 465 doc_m o0 grid;
-#X obj 97 403 doc_m i0 grid;
-#X text 232 403 polygon;
-#X text 232 465 radial map;
-#X connect 0 0 16 0;
-#X connect 3 0 4 0;
-#X connect 5 0 7 0;
-#X connect 5 1 6 2;
-#X connect 6 0 9 0;
-#X connect 7 0 6 0;
-#X connect 8 0 18 0;
-#X connect 10 0 13 0;
-#X connect 10 1 11 0;
-#X connect 11 0 12 0;
-#X connect 11 0 13 1;
-#X connect 13 0 0 0;
-#X connect 13 0 14 0;
-#X connect 15 0 5 0;
-#X connect 15 0 10 0;
-#X connect 16 0 17 0;
-#X connect 16 1 18 1;
-#X connect 17 0 8 0;
-#X connect 18 0 3 0;
-#X connect 26 1 29 0;
-#X connect 27 1 28 0;
diff --git a/externals/gridflow/doc/flow_classes/#posterize-help.pd b/externals/gridflow/doc/flow_classes/#posterize-help.pd
deleted file mode 100644
index 3ca6cba7..00000000
--- a/externals/gridflow/doc/flow_classes/#posterize-help.pd
+++ /dev/null
@@ -1,63 +0,0 @@
-#N canvas 674 0 632 625 10;
-#X obj 178 114 bng 15 250 50 0 empty empty empty 0 -6 0 8 -4034 -1
--1;
-#X text 274 230 2 - 255;
-#X msg 217 157 open bluemarble.jpg;
-#X obj 197 179 #in;
-#X obj 178 203 #store;
-#X obj 178 251 #posterize;
-#X obj 103 570 #convolve;
-#X obj 169 570 #contrast;
-#X obj 235 570 #solarize;
-#X obj 301 570 #layer;
-#X obj 0 0 doc_h;
-#X obj 3 570 doc_also;
-#X obj 3 424 doc_i 2;
-#X obj 3 508 doc_o 1;
-#X obj 14 538 doc_oo 0;
-#X obj 14 454 doc_ii 0;
-#X obj 14 476 doc_ii 1;
-#X text 10 35 Reduces the number of possible intensities in an image:
-it rounds the color values. The effect is mostly apparent with a low
-number of levels.;
-#X obj 202 271 #out window \, title original;
-#X obj 178 291 #out window \, title modified;
-#X obj 178 136 t b b b;
-#X floatatom 235 230 5 0 0 0 - - -;
-#X msg 235 210 2;
-#X obj 235 190 loadbang;
-#X obj 97 454 doc_m i0 grid;
-#X obj 97 476 doc_m i1 float int;
-#X obj 97 538 doc_m o0 grid;
-#X text 232 538 posterised image;
-#X obj 3 323 doc_c 1;
-#X obj 14 353 doc_cc 0;
-#X obj 97 353 doc_m c0 float/int;
-#X text 11 75 example: simulate the 216-color "web" palette using 6
-levels. simulate a 15-bit display using 32 levels .;
-#X text 232 353 Number of possible levels per channel. The levels are
-equally spaced \, with the lowest at 0 and the highest at 255 the minimum
-number of levels is 2 and the default value is also 2;
-#X obj 0 590 doc_f;
-#X text 232 454 original image;
-#X text 232 476 same as arg 0;
-#X connect 0 0 20 0;
-#X connect 2 0 3 0;
-#X connect 3 0 4 1;
-#X connect 4 0 5 0;
-#X connect 4 0 18 0;
-#X connect 5 0 19 0;
-#X connect 11 1 6 0;
-#X connect 11 1 7 0;
-#X connect 11 1 8 0;
-#X connect 11 1 9 0;
-#X connect 20 0 4 0;
-#X connect 20 1 3 0;
-#X connect 20 2 2 0;
-#X connect 21 0 5 1;
-#X connect 22 0 21 0;
-#X connect 23 0 22 0;
-#X connect 24 1 34 0;
-#X connect 25 1 35 0;
-#X connect 26 1 27 0;
-#X connect 30 1 32 0;
diff --git a/externals/gridflow/doc/flow_classes/#print-help.pd b/externals/gridflow/doc/flow_classes/#print-help.pd
deleted file mode 100644
index b15e8ff4..00000000
--- a/externals/gridflow/doc/flow_classes/#print-help.pd
+++ /dev/null
@@ -1,73 +0,0 @@
-#N canvas 408 30 632 632 10;
-#X text 15 32 Displays the dimensions of a grid in the console. If
-the grid has less than two dimensions it will display all grid data.
-;
-#X floatatom 213 105 5 0 0 0 - - -;
-#X floatatom 235 126 5 0 0 0 - - -;
-#X floatatom 257 146 5 0 0 0 - - -;
-#X obj 71 116 #in;
-#X obj 100 158 #import (3 3 3);
-#X msg 100 110 3 3 3 # 27;
-#X obj 100 134 # rand;
-#X msg 71 88 load sewing.jpg;
-#X obj 71 251 #print paprika;
-#X text 232 409 Incoming grid.;
-#X obj 103 582 #dim;
-#X obj 139 582 #to_float;
-#X obj 205 582 #to_list;
-#X obj 265 582 print;
-#X text 232 431 select between base 2 \, 8 \, 10 \, 16;
-#X text 232 453 stop printing after that number of rows;
-#X text 232 475 stop printing after that number of characters on the
-same line;
-#X obj 213 165 #pack 3;
-#X msg 368 188 base 2;
-#X msg 368 208 base 8;
-#X msg 368 228 base 10;
-#X msg 368 248 base 16;
-#X msg 370 159 maxrows 10;
-#X msg 370 136 trunc 20;
-#X obj 0 0 doc_h;
-#X obj 3 379 doc_i 1;
-#X obj 3 295 doc_c 0..1;
-#X obj 3 582 doc_also;
-#X obj 14 550 doc_oo 0;
-#X obj 14 409 doc_ii 0;
-#X obj 3 520 doc_o 2;
-#X obj 14 325 doc_cc 0;
-#X obj 97 325 doc_m c0 float|symbol;
-#X text 232 325 prefix before the printed element in the console.;
-#X text 232 347 default: no prefix;
-#X obj 97 409 doc_m i0 grid;
-#X obj 97 431 doc_m i0 base int;
-#X obj 97 453 doc_m i0 maxrows int;
-#X obj 97 475 doc_m i0 trunc int;
-#X obj 97 550 doc_m o0 grid;
-#X text 232 550 probably unused;
-#X obj 0 603 doc_f;
-#X connect 1 0 18 0;
-#X connect 2 0 18 1;
-#X connect 3 0 18 2;
-#X connect 4 0 9 0;
-#X connect 5 0 9 0;
-#X connect 6 0 7 0;
-#X connect 7 0 5 0;
-#X connect 8 0 4 0;
-#X connect 18 0 9 0;
-#X connect 19 0 9 0;
-#X connect 20 0 9 0;
-#X connect 21 0 9 0;
-#X connect 22 0 9 0;
-#X connect 23 0 9 0;
-#X connect 24 0 9 0;
-#X connect 28 1 11 0;
-#X connect 28 1 12 0;
-#X connect 28 1 13 0;
-#X connect 28 1 14 0;
-#X connect 33 1 34 0;
-#X connect 33 1 35 0;
-#X connect 36 1 10 0;
-#X connect 37 1 15 0;
-#X connect 38 1 16 0;
-#X connect 39 1 17 0;
-#X connect 40 1 41 0;
diff --git a/externals/gridflow/doc/flow_classes/#ravel-help.pd b/externals/gridflow/doc/flow_classes/#ravel-help.pd
deleted file mode 100644
index 2f167e57..00000000
--- a/externals/gridflow/doc/flow_classes/#ravel-help.pd
+++ /dev/null
@@ -1,42 +0,0 @@
-#N canvas 691 0 632 493 10;
-#X obj 20 80 bng 15 250 50 0 empty empty empty 0 -6 0 8 -233017 -1
--1;
-#X obj 20 231 print before;
-#X obj 140 233 print after;
-#X obj 20 142 #in;
-#X obj 20 188 #dim;
-#X obj 103 444 #redim (1);
-#X obj 175 444 #perspective;
-#X obj 140 190 #dim;
-#X obj 140 169 #ravel;
-#X obj 0 0 doc_h;
-#X obj 3 267 doc_c 0;
-#X obj 3 307 doc_i 1;
-#X obj 3 444 doc_also;
-#X obj 3 382 doc_o 1;
-#X obj 14 412 doc_oo 0;
-#X obj 14 337 doc_ii 0;
-#X obj 97 337 doc_m i0 grid;
-#X obj 97 412 doc_m o0 grid;
-#X text 232 337 like [#redim] but always produce a 1-D grid with the
-same total number of elements.;
-#X obj 0 464 doc_f;
-#X msg 20 120 load bluemarble.jpg;
-#X obj 20 210 #to_list;
-#X obj 140 212 #to_list;
-#X text 143 55 like #redim but always produces a 1-D grid with the
-same total number of elements.;
-#X text 232 412 1-D grid;
-#X connect 0 0 20 0;
-#X connect 3 0 4 0;
-#X connect 3 0 8 0;
-#X connect 4 0 21 0;
-#X connect 7 0 22 0;
-#X connect 8 0 7 0;
-#X connect 12 1 5 0;
-#X connect 12 1 6 0;
-#X connect 16 1 18 0;
-#X connect 17 1 24 0;
-#X connect 20 0 3 0;
-#X connect 21 0 1 0;
-#X connect 22 0 2 0;
diff --git a/externals/gridflow/doc/flow_classes/#record-help.pd b/externals/gridflow/doc/flow_classes/#record-help.pd
deleted file mode 100644
index 2cbb9721..00000000
--- a/externals/gridflow/doc/flow_classes/#record-help.pd
+++ /dev/null
@@ -1,53 +0,0 @@
-#N canvas 525 0 632 584 10;
-#X obj 79 121 #camera;
-#X obj 79 70 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 0 1;
-#X obj 105 153 #out window;
-#X obj 154 70 hsl 128 15 20 300 0 0 empty empty empty -2 -6 0 8 -260818
--1 -1 0 1;
-#X obj 105 172 fps detailed;
-#X obj 105 191 print;
-#X obj 79 98 metro 100;
-#X obj 93 220 bng 15 250 50 0 empty empty empty 0 -6 0 8 -24198 -1
--1;
-#X obj 123 269 bng 15 250 50 0 empty empty empty 0 -6 0 8 -24198 -1
--1;
-#X obj 108 244 bng 15 250 50 0 empty empty empty 0 -6 0 8 -24198 -1
--1;
-#X obj 79 299 #record;
-#X text 232 461 Starts recording to the file.;
-#X text 232 483 Stops recording.;
-#X text 232 426 Opens a dialog window in which to type the filename
-to be recorded \, the defualt encoding is quicktime (raw).;
-#X text 22 33 Record a quicktime file with [#out];
-#X text 113 218 <-- 1 select filename;
-#X text 128 243 <-- 2 start recording;
-#X text 143 269 <-- 3 stop recording;
-#X text 142 298 <-- open for more options;
-#X obj 0 0 doc_h;
-#X obj 3 374 doc_i 4;
-#X obj 3 334 doc_c 0;
-#X obj 3 515 doc_o 0;
-#X obj 14 404 doc_ii 0;
-#X obj 14 426 doc_ii 1;
-#X obj 14 461 doc_ii 2;
-#X obj 14 483 doc_ii 3;
-#X obj 97 404 doc_m i0 grid;
-#X obj 97 426 doc_m i1 bang;
-#X obj 97 461 doc_m i2 bang;
-#X obj 97 483 doc_m i3 bang;
-#X obj 0 555 doc_f;
-#X text 232 404 images to be recorded go here.;
-#X connect 0 0 2 0;
-#X connect 0 0 10 0;
-#X connect 1 0 6 0;
-#X connect 2 0 4 0;
-#X connect 3 0 6 1;
-#X connect 4 0 5 0;
-#X connect 6 0 0 0;
-#X connect 7 0 10 1;
-#X connect 8 0 10 3;
-#X connect 9 0 10 2;
-#X connect 27 1 32 0;
-#X connect 28 1 13 0;
-#X connect 29 1 11 0;
-#X connect 30 1 12 0;
diff --git a/externals/gridflow/doc/flow_classes/#redim-help.pd b/externals/gridflow/doc/flow_classes/#redim-help.pd
deleted file mode 100644
index 6ccd005c..00000000
--- a/externals/gridflow/doc/flow_classes/#redim-help.pd
+++ /dev/null
@@ -1,59 +0,0 @@
-#N canvas 680 0 632 624 10;
-#X text 86 37 rearrange a grid's values according to new dimensions
-;
-#X obj 21 36 bng 15 250 50 0 empty empty empty 0 -6 0 8 -24198 -1 -1
-;
-#X obj 21 103 #in;
-#X obj 111 154 #out window;
-#X obj 103 575 #ravel;
-#X obj 151 575 #perspective;
-#X obj 21 154 #out window;
-#X obj 21 127 t a a;
-#X obj 111 124 #redim (120 160 3);
-#X text 232 443 Outputs the redimensioned data as a grid.;
-#X msg 232 131 240 320 3;
-#X msg 226 95 400 400 3;
-#X obj 0 0 doc_h;
-#X obj 3 277 doc_i 2;
-#X obj 3 193 doc_c 1;
-#X obj 3 575 doc_also;
-#X obj 3 413 doc_o 1;
-#X obj 14 307 doc_ii 0;
-#X obj 14 381 doc_ii 1;
-#X obj 14 443 doc_oo 0;
-#X obj 14 223 doc_cc 0;
-#X obj 97 223 doc_m c0 grid;
-#X text 232 223 dimension list \, (120 160 3) in this example.;
-#X obj 97 307 doc_m i0 grid;
-#X text 232 245 same as the dimension list of #import;
-#X text 232 307 the elements of this grid are serialized. if the resulting
-grid must be larger \, the sequence is repeated as much as necessary.
-if the resulting grid must be smaller \, the sequence is truncated.
-then the elements are deserialized to form the resulting grid.;
-#X obj 97 381 doc_m i1 grid;
-#X text 232 381 same as arg 0;
-#X obj 97 443 doc_m o0 grid;
-#X text 232 465 example: with a 240 320 RGB image \, [#redim 120 640
-3] will visually separate the even lines (left) from the odd lines
-(right). contrary to this \, [#redim 640 120 3] will split every line
-and put its left half on a even line and the right half on the following
-odd line. [#redim] 480 320 3 will repeat the input image twice in the
-output image. [#redim] 240 50 3 will only keep the 50 top lines.;
-#X obj 0 595 doc_f;
-#X msg 21 81 load working.jpg;
-#X connect 1 0 31 0;
-#X connect 2 0 7 0;
-#X connect 7 0 6 0;
-#X connect 7 1 8 0;
-#X connect 8 0 3 0;
-#X connect 10 0 8 1;
-#X connect 11 0 8 1;
-#X connect 15 1 4 0;
-#X connect 15 1 5 0;
-#X connect 21 1 22 0;
-#X connect 21 1 24 0;
-#X connect 23 1 25 0;
-#X connect 26 1 27 0;
-#X connect 28 1 9 0;
-#X connect 28 1 29 0;
-#X connect 31 0 2 0;
diff --git a/externals/gridflow/doc/flow_classes/#reinterval-help.pd b/externals/gridflow/doc/flow_classes/#reinterval-help.pd
deleted file mode 100644
index 7ec9082f..00000000
--- a/externals/gridflow/doc/flow_classes/#reinterval-help.pd
+++ /dev/null
@@ -1,33 +0,0 @@
-#N canvas 335 118 632 382 10;
-#X obj 0 0 doc_h;
-#X obj 0 353 doc_f;
-#X obj 98 61 #reinterval;
-#X obj 3 101 doc_c 0;
-#X obj 3 141 doc_i 5;
-#X obj 3 291 doc_o 1;
-#X obj 14 171 doc_ii 0;
-#X obj 14 193 doc_ii 1;
-#X obj 14 215 doc_ii 2;
-#X obj 14 237 doc_ii 3;
-#X obj 14 259 doc_ii 4;
-#X obj 14 321 doc_oo 0;
-#X obj 97 171 doc_m i0 grid;
-#X obj 97 193 doc_m i1 grid;
-#X obj 97 215 doc_m i2 grid;
-#X obj 97 237 doc_m i3 grid;
-#X obj 97 259 doc_m i4 grid;
-#X obj 97 321 doc_m o0 grid;
-#X text 232 171 values to be rescaled;
-#X text 232 321 rescaled values;
-#X text 232 193 old start;
-#X text 232 215 old end;
-#X text 232 237 new start;
-#X text 232 259 new end;
-#X text 187 46 multiply and add to values such that the old start becomes
-the new start \, and the old end becomes the new end.;
-#X connect 12 1 18 0;
-#X connect 13 1 20 0;
-#X connect 14 1 21 0;
-#X connect 15 1 22 0;
-#X connect 16 1 23 0;
-#X connect 17 1 19 0;
diff --git a/externals/gridflow/doc/flow_classes/#remap_image-help.pd b/externals/gridflow/doc/flow_classes/#remap_image-help.pd
deleted file mode 100644
index 0c704ab6..00000000
--- a/externals/gridflow/doc/flow_classes/#remap_image-help.pd
+++ /dev/null
@@ -1,53 +0,0 @@
-#N canvas 690 0 632 578 10;
-#X text 19 26 Transforms a grid by displacing pixels.;
-#X obj 27 154 bng 15 250 50 0 empty empty empty 0 -6 0 8 -24198 -1
--1;
-#X obj 46 179 #in;
-#X floatatom 156 201 5 0 0 0 - - -;
-#X obj 140 229 # +;
-#X msg 61 153 open sewing.jpg;
-#X text 201 199 <-- Modify value to see transformation.;
-#X text 178 152 <-- open image;
-#X obj 46 261 #out window \, title remapped;
-#X obj 46 97 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 0 1;
-#X obj 46 120 metro 33.3667;
-#X text 19 45 If you chain indexmap (coordinate) transformations from
-outlet 1 to inlet 1 \, then sending an image in inlet 0 will emit its
-deformation out of outlet 0;
-#X obj 46 229 #remap_image;
-#X text 187 229 <-- change the numop to change the transformation;
-#X obj 103 529 #rotate;
-#X obj 0 0 doc_h;
-#X obj 3 295 doc_c 0;
-#X obj 3 335 doc_i 2;
-#X obj 3 529 doc_also;
-#X obj 3 432 doc_o 2;
-#X obj 14 365 doc_ii 0;
-#X obj 14 387 doc_ii 1;
-#X obj 14 462 doc_oo 0;
-#X obj 14 497 doc_oo 1;
-#X obj 97 365 doc_m i0 grid;
-#X text 232 365 grid to be remapped;
-#X obj 97 497 doc_m o1 grid;
-#X text 232 497 indexmap of dummy coordinates \, to be deformed;
-#X obj 97 387 doc_m i1 grid;
-#X text 232 387 modified version of what came out of outlet 1 \, which
-will determine the remapping;
-#X obj 97 462 doc_m o0 grid;
-#X text 232 462 the grid from inlet 0 after being remapped using the
-grid from inlet 1;
-#X obj 0 549 doc_f;
-#X connect 1 0 2 0;
-#X connect 2 0 12 0;
-#X connect 3 0 4 1;
-#X connect 4 0 12 1;
-#X connect 5 0 2 0;
-#X connect 9 0 10 0;
-#X connect 10 0 2 0;
-#X connect 12 0 8 0;
-#X connect 12 1 4 0;
-#X connect 18 1 14 0;
-#X connect 24 1 25 0;
-#X connect 26 1 27 0;
-#X connect 28 1 29 0;
-#X connect 30 1 31 0;
diff --git a/externals/gridflow/doc/flow_classes/#reverse-help.pd b/externals/gridflow/doc/flow_classes/#reverse-help.pd
deleted file mode 100644
index 71c6fe6c..00000000
--- a/externals/gridflow/doc/flow_classes/#reverse-help.pd
+++ /dev/null
@@ -1,65 +0,0 @@
-#N canvas 668 0 632 642 10;
-#X obj 258 177 #color;
-#X obj 301 320 #color;
-#X obj 259 378 display;
-#X obj 258 319 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 257 #in;
-#X obj 22 176 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 22 371 #out window;
-#X obj 87 259 hradio 15 1 0 6 empty empty empty 0 -6 0 8 -260818 -1
--1 0;
-#X obj 87 277 - 3;
-#X floatatom 87 297 5 0 0 0 - - -;
-#X obj 22 314 #reverse 0;
-#X obj 258 300 #reverse 0;
-#X obj 323 245 hradio 15 1 0 6 empty empty empty 0 -6 0 8 -260818 -1
--1 0;
-#X obj 323 263 - 3;
-#X floatatom 323 283 5 0 0 0 - - -;
-#X obj 0 0 doc_h;
-#X obj 3 416 doc_c 1;
-#X obj 3 517 doc_i 2;
-#X obj 3 601 doc_o 1;
-#X obj 14 631 doc_oo 0;
-#X obj 14 547 doc_ii 0;
-#X obj 14 569 doc_ii 1;
-#X obj 14 446 doc_cc 0;
-#X obj 97 631 doc_m o0 grid;
-#X obj 97 547 doc_m i0 grid;
-#X obj 97 446 doc_m c0 float;
-#X obj 97 569 doc_m i1 float;
-#X text 232 569 same as arg 0;
-#X text 232 446 dimension number of the dimension by which the reverse
-will occur. For N-dimensional grids \, the dimensions are numbered
-from 0 to N-1. In addition \, negative numbers from -N to -1 may be
-used \, to which N will be added.;
-#X obj 0 663 doc_f;
-#X text 232 547 grid to be reversed;
-#X text 232 631 reversed grid;
-#X msg 22 226 load b001.jpg;
-#X text 16 92 for an image \, 0 or -3 does vertical flip \, 1 or -2
-does horizontal flip \, and 2 or -1 does channel flip. if you do this
-on something else than an image \, you may see why the negative numbers
-are supported: if you make a grid of multiple images \, then -1 will
-always refer to the channels dimension no matter what.;
-#X connect 0 0 12 0;
-#X connect 3 0 2 0;
-#X connect 3 1 1 0;
-#X connect 5 0 11 0;
-#X connect 6 0 33 0;
-#X connect 8 0 9 0;
-#X connect 9 0 10 0;
-#X connect 10 0 11 1;
-#X connect 11 0 7 0;
-#X connect 12 0 3 0;
-#X connect 13 0 14 0;
-#X connect 14 0 15 0;
-#X connect 15 0 12 1;
-#X connect 24 1 32 0;
-#X connect 25 1 31 0;
-#X connect 26 1 29 0;
-#X connect 27 1 28 0;
-#X connect 33 0 5 0;
diff --git a/externals/gridflow/doc/flow_classes/#rgb_to_greyscale-help.pd b/externals/gridflow/doc/flow_classes/#rgb_to_greyscale-help.pd
deleted file mode 100644
index c370a754..00000000
--- a/externals/gridflow/doc/flow_classes/#rgb_to_greyscale-help.pd
+++ /dev/null
@@ -1,27 +0,0 @@
-#N canvas 689 0 632 401 10;
-#X obj 166 183 #out window;
-#X obj 166 112 #in;
-#X obj 166 137 #rgb_to_greyscale;
-#X obj 174 91 bng 15 250 50 0 empty empty empty 0 -6 0 8 -24198 -1
--1;
-#X msg 166 68 open working.jpg;
-#X obj 166 160 #greyscale_to_rgb;
-#X obj 0 0 doc_h;
-#X obj 3 208 doc_c 0;
-#X obj 3 248 doc_i 1;
-#X obj 3 310 doc_o 1;
-#X obj 14 340 doc_oo 0;
-#X obj 14 278 doc_ii 0;
-#X text 15 27 Creates a greyscale image from a rgb color image.;
-#X obj 97 278 doc_m i0 grid;
-#X text 232 278 presumed to be an RGB image;
-#X obj 97 340 doc_m o0 grid;
-#X text 232 340 the image converted to greyscale.;
-#X obj 0 372 doc_f;
-#X connect 1 0 2 0;
-#X connect 2 0 5 0;
-#X connect 3 0 1 0;
-#X connect 4 0 1 0;
-#X connect 5 0 0 0;
-#X connect 13 1 14 0;
-#X connect 15 1 16 0;
diff --git a/externals/gridflow/doc/flow_classes/#rgb_to_yuv-help.pd b/externals/gridflow/doc/flow_classes/#rgb_to_yuv-help.pd
deleted file mode 100644
index cbb7ab1f..00000000
--- a/externals/gridflow/doc/flow_classes/#rgb_to_yuv-help.pd
+++ /dev/null
@@ -1,30 +0,0 @@
-#N canvas 205 69 632 421 10;
-#X obj 324 188 #out window;
-#X obj 273 87 bng 15 250 50 0 empty empty empty 0 -6 0 8 -24198 -1
--1;
-#X obj 255 107 #in;
-#X msg 255 61 open sewing.jpg;
-#X obj 324 150 #rgb_to_yuv;
-#X text 5 152 This displays the image as RGB:;
-#X text 99 190 This displays the image as YUV:;
-#X text 23 26 Converts an RGB color model image to a YUV color model
-image.;
-#X obj 226 152 #out window;
-#X obj 0 0 doc_h;
-#X obj 3 268 doc_i 1;
-#X obj 3 228 doc_c 0;
-#X obj 3 330 doc_o 1;
-#X obj 14 360 doc_oo 0;
-#X obj 14 298 doc_ii 0;
-#X obj 0 392 doc_f;
-#X obj 97 298 doc_m i0 grid;
-#X obj 97 360 doc_m o0 grid;
-#X text 232 298 image in RGB format.;
-#X text 232 360 image in YUV format.;
-#X connect 1 0 2 0;
-#X connect 2 0 4 0;
-#X connect 2 0 8 0;
-#X connect 3 0 2 0;
-#X connect 4 0 0 0;
-#X connect 16 1 18 0;
-#X connect 17 1 19 0;
diff --git a/externals/gridflow/doc/flow_classes/#rotate-help.pd b/externals/gridflow/doc/flow_classes/#rotate-help.pd
deleted file mode 100644
index f8167a45..00000000
--- a/externals/gridflow/doc/flow_classes/#rotate-help.pd
+++ /dev/null
@@ -1,49 +0,0 @@
-#N canvas 689 0 632 445 10;
-#X obj 180 121 #rotate;
-#X text 4 26 The [#rotate] performs rotations on indexmaps and polygons
-and such objects.;
-#X obj 163 83 bng 15 250 50 0 empty empty empty 0 -6 0 8 -24198 -1
--1;
-#X obj 80 98 #in;
-#X obj 227 99 hsl 40 15 0 35999 0 0 empty empty empty -2 -6 0 8 -262144
--1 -1 0 1;
-#X obj 80 121 #remap_image;
-#X obj 80 142 #out window \, title #rotate;
-#X obj 9 57 tgl 15 0 empty empty empty 0 -6 0 8 -233017 -1 -1 0 1;
-#X obj 9 76 metro 100;
-#X text 232 274 The Grid passed in inlet 0 will be the grid on which
-the rotation will be performed.;
-#X floatatom 243 123 7 0 0 0 - - -;
-#X msg 80 57 open b001.jpg;
-#X obj 0 0 doc_h;
-#X obj 3 244 doc_i 2;
-#X obj 3 169 doc_c 1;
-#X text 232 371 Outputs the result of the rotation and needs to be
-sent to a [#remap_image] to be visualised.;
-#X obj 3 341 doc_o 1;
-#X obj 14 371 doc_oo 0;
-#X obj 14 274 doc_ii 0;
-#X obj 14 309 doc_ii 1;
-#X obj 14 199 doc_cc 0;
-#X obj 97 199 doc_m c0 float;
-#X obj 97 274 doc_m i0 grid;
-#X obj 97 309 doc_m i1 float;
-#X text 232 309 same as arg 0;
-#X obj 97 371 doc_m o0 grid;
-#X obj 0 416 doc_f;
-#X text 232 199 integer number (0 to 35999) as a creation argument
-which initializes the first angle of rotation.;
-#X connect 0 0 5 1;
-#X connect 2 0 3 0;
-#X connect 3 0 5 0;
-#X connect 4 0 0 1;
-#X connect 4 0 10 0;
-#X connect 5 0 6 0;
-#X connect 5 1 0 0;
-#X connect 7 0 8 0;
-#X connect 8 0 3 0;
-#X connect 11 0 3 0;
-#X connect 21 1 27 0;
-#X connect 22 1 9 0;
-#X connect 23 1 24 0;
-#X connect 25 1 15 0;
diff --git a/externals/gridflow/doc/flow_classes/#rotatificator-help.pd b/externals/gridflow/doc/flow_classes/#rotatificator-help.pd
deleted file mode 100644
index e31066a3..00000000
--- a/externals/gridflow/doc/flow_classes/#rotatificator-help.pd
+++ /dev/null
@@ -1,50 +0,0 @@
-#N canvas 604 245 632 581 10;
-#X obj 0 0 doc_h;
-#X obj 0 552 doc_f;
-#X obj 20 64 #rotatificator;
-#X text 191 138 named in honour of Laszlo Zlotz (a character from Achille
-Talon);
-#X obj 3 532 doc_also;
-#X obj 103 532 #rotate;
-#X obj 3 286 doc_i 2;
-#X obj 3 418 doc_o 1;
-#X obj 14 448 doc_oo 0;
-#X obj 14 316 doc_ii 0;
-#X obj 14 386 doc_ii 1;
-#X obj 97 316 doc_m i0 float;
-#X obj 97 338 doc_m i0 axis;
-#X obj 3 180 doc_c 3;
-#X obj 14 210 doc_cc 0;
-#X obj 14 232 doc_cc 1;
-#X obj 14 254 doc_cc 2;
-#X obj 97 448 doc_m o0 grid;
-#X obj 97 386 doc_m i1;
-#X obj 97 210 doc_m c0 float/int;
-#X obj 97 232 doc_m c1 float/int;
-#X obj 97 254 doc_m c2 float/int;
-#X text 232 210 from;
-#X text 232 232 to;
-#X text 232 254 n;
-#X text 232 338 \$1=from (default:0) \; \$2=to (default: 1) \; \$3=n
-(default: 2);
-#X text 232 386 angle;
-#X text 232 316 scale;
-#X text 192 44 generates a N by N rotation matrix that rotates through
-two dimensions of your choice (from \, to) by a certain angle (in centidegrees).
-values produced are integers. the rotation matrix is multiplied by
-the given scale factor such that after an eventual [#inner] \, a division
-by the same amount would be performed. greater scale factors are more
-precise.;
-#X text 232 448 rotation matrix such that if rows 'from' and 'to' were
-deleted and columns 'from' and 'to' were deleted \, you'd have an identity
-matrix. in other words \, the rotation happens in a plane space made
-of the two dimensions represented by those two rows and two columns.
-;
-#X connect 4 1 5 0;
-#X connect 11 1 27 0;
-#X connect 12 1 25 0;
-#X connect 17 1 29 0;
-#X connect 18 1 26 0;
-#X connect 19 1 22 0;
-#X connect 20 1 23 0;
-#X connect 21 1 24 0;
diff --git a/externals/gridflow/doc/flow_classes/#saturation-help.pd b/externals/gridflow/doc/flow_classes/#saturation-help.pd
deleted file mode 100644
index f493dde7..00000000
--- a/externals/gridflow/doc/flow_classes/#saturation-help.pd
+++ /dev/null
@@ -1,52 +0,0 @@
-#N canvas 115 0 632 551 10;
-#X obj 47 267 print;
-#X obj 47 227 #out window;
-#X text 313 178 OR;
-#X text 295 140 global saturation;
-#X obj 47 248 fps detailed;
-#X text 260 197 per-channel saturation;
-#X msg 251 135 0;
-#X obj 251 114 loadbang;
-#X obj 254 156 hsl 137 15 -256 512 0 0 empty empty empty -2 -6 0 8
--260818 -128992 -1 4533 1;
-#X floatatom 212 157 5 0 0 0 - - -;
-#X obj 47 65 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 0 1;
-#X obj 47 99 metro 33.3667;
-#X msg 204 198 3 # \$1;
-#X obj 47 134 #in babbage.jpg;
-#X obj 204 224 #color -256 512 1;
-#X obj 47 203 #saturation -128;
-#X obj 0 0 doc_h;
-#X obj 3 376 doc_i 2;
-#X obj 3 301 doc_c 1;
-#X obj 3 460 doc_o 1;
-#X obj 14 406 doc_ii 0;
-#X obj 14 428 doc_ii 1;
-#X obj 14 490 doc_oo 0;
-#X obj 14 331 doc_cc 0;
-#X text 232 428 same as arg 0;
-#X obj 97 331 doc_m c0 float/int;
-#X obj 97 406 doc_m i0 grid;
-#X obj 97 428 doc_m i1 grid;
-#X obj 97 490 doc_m o0 grid;
-#X obj 0 522 doc_f;
-#X text 232 406 image to be modified;
-#X text 232 331 Saturation multiplier. 256 does nothing. 0 turns to
-greyscale. -256 does like [#hueshift 18000].;
-#X text 232 490 modified image;
-#X connect 1 0 4 0;
-#X connect 4 0 0 0;
-#X connect 6 0 8 0;
-#X connect 7 0 6 0;
-#X connect 8 0 9 0;
-#X connect 8 0 12 0;
-#X connect 10 0 11 0;
-#X connect 11 0 13 0;
-#X connect 12 0 14 0;
-#X connect 13 0 15 0;
-#X connect 14 0 15 1;
-#X connect 15 0 1 0;
-#X connect 25 1 31 0;
-#X connect 26 1 30 0;
-#X connect 27 1 24 0;
-#X connect 28 1 32 0;
diff --git a/externals/gridflow/doc/flow_classes/#scale_by-help.pd b/externals/gridflow/doc/flow_classes/#scale_by-help.pd
deleted file mode 100644
index 5b61d091..00000000
--- a/externals/gridflow/doc/flow_classes/#scale_by-help.pd
+++ /dev/null
@@ -1,57 +0,0 @@
-#N canvas 690 0 632 610 10;
-#X obj 11 82 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 0 1;
-#X obj 11 102 metro 100;
-#X obj 89 149 #in;
-#X obj 103 561 #scale_to;
-#X obj 169 561 #downscale_by;
-#X text 232 507 Outputs the resulting scaled image.;
-#X obj 89 207 #out window \, title #scale_by;
-#X msg 89 85 open bluemarble.jpg \, bang;
-#X obj 89 183 #scale_by 2;
-#X text 7 28 The [#scale_by] scales the image received by the row and
-column factors passed. A single value applies the scaling uniformly
-on the row and columns.;
-#X msg 227 129 2 # 2 1;
-#X msg 230 152 2 # 2 3;
-#X floatatom 181 131 5 0 0 0 - - -;
-#X text 232 362 The Grid on which the scale_to will be performed.;
-#X obj 0 0 doc_h;
-#X obj 3 332 doc_i 2;
-#X obj 3 477 doc_o 1;
-#X text 232 265 The scaling factor (defaults to 2).;
-#X obj 3 561 doc_also;
-#X obj 14 507 doc_oo 0;
-#X obj 14 362 doc_ii 0;
-#X obj 14 445 doc_ii 1;
-#X obj 14 265 doc_cc 0;
-#X obj 97 362 doc_m i0 grid;
-#X obj 97 265 doc_m c0 grid;
-#X obj 97 445 doc_m i1 grid;
-#X obj 3 235 doc_c 0..1;
-#X text 232 445 same as arg 0;
-#X text 232 287 if it's a single value \, then that factor is to be
-used for both rows and columns.;
-#X text 232 384 duplicates each pixel several times in width and several
-times in height \, where the number of times is determined by the factor
-described above. twice those of the incoming grid. It is several times
-faster.;
-#X text 232 529 grid((factor*y) (factor*x) channels);
-#X obj 97 507 doc_m o0 grid;
-#X obj 0 581 doc_f;
-#X connect 0 0 1 0;
-#X connect 1 0 2 0;
-#X connect 2 0 8 0;
-#X connect 7 0 2 0;
-#X connect 8 0 6 0;
-#X connect 10 0 8 1;
-#X connect 11 0 8 1;
-#X connect 12 0 8 1;
-#X connect 18 1 3 0;
-#X connect 18 1 4 0;
-#X connect 23 1 13 0;
-#X connect 23 1 29 0;
-#X connect 24 1 17 0;
-#X connect 24 1 28 0;
-#X connect 25 1 27 0;
-#X connect 31 1 5 0;
-#X connect 31 1 30 0;
diff --git a/externals/gridflow/doc/flow_classes/#scale_to-help.pd b/externals/gridflow/doc/flow_classes/#scale_to-help.pd
deleted file mode 100644
index 54adb77a..00000000
--- a/externals/gridflow/doc/flow_classes/#scale_to-help.pd
+++ /dev/null
@@ -1,66 +0,0 @@
-#N canvas 674 0 632 523 10;
-#X obj 11 75 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 0 1;
-#X obj 11 94 metro 100;
-#X obj 89 171 #scale_to (133 133);
-#X obj 89 133 #in;
-#X obj 284 159 #pack;
-#X obj 325 138 hsl 128 15 0 640 0 0 empty empty empty 0 -8 0 8 -260818
--1 -1 0 1;
-#X obj 325 158 hsl 128 15 0 640 0 0 empty empty empty 0 -8 0 8 -260818
--1 -1 0 1;
-#X obj 89 208 #out window \, title #scale_to;
-#X obj 169 474 #downscale_by;
-#X msg 89 73 open scissors.jpg \, bang;
-#X obj 300 183 #print;
-#X msg 284 75 2 # 500 500;
-#X obj 412 97 #print;
-#X msg 284 94 2 # 100 500;
-#X msg 285 115 2 # 500 100;
-#X text 460 133 height;
-#X text 460 155 width;
-#X text 232 442 Outputs the resulting scaled image.;
-#X text 232 270 A (height width) pair of integers indicating the size
-to scale to image to. This initial argument is required.;
-#X text 232 345 The Grid passed at inlet 0 will be the image on which
-the scale_to will be performed.;
-#X text 284 58 2 grid size values y=500 x=500;
-#X obj 103 474 #scale_by;
-#X text 9 22 The [#scale_to] scales the image received to the x and
-y values passed. Initial creation arguments are mandatory (0 0) otherwise.
-;
-#X obj 0 0 doc_h;
-#X obj 3 315 doc_i 2;
-#X obj 3 240 doc_c 1;
-#X obj 3 474 doc_also;
-#X obj 3 412 doc_o 1;
-#X obj 14 442 doc_oo 0;
-#X obj 14 345 doc_ii 0;
-#X obj 14 380 doc_ii 1;
-#X obj 14 270 doc_cc 0;
-#X obj 97 270 doc_m c0 (int int);
-#X obj 97 345 doc_m i0 grid;
-#X text 232 380 same as arg 0;
-#X obj 97 380 doc_m i1 (int int);
-#X obj 97 442 doc_m o0 grid;
-#X obj 0 494 doc_f;
-#X connect 0 0 1 0;
-#X connect 1 0 3 0;
-#X connect 2 0 7 0;
-#X connect 3 0 2 0;
-#X connect 4 0 2 1;
-#X connect 4 0 10 0;
-#X connect 5 0 4 0;
-#X connect 6 0 4 1;
-#X connect 9 0 3 0;
-#X connect 11 0 2 1;
-#X connect 11 0 12 0;
-#X connect 13 0 2 1;
-#X connect 13 0 12 0;
-#X connect 14 0 2 1;
-#X connect 14 0 12 0;
-#X connect 26 1 21 0;
-#X connect 26 1 8 0;
-#X connect 32 1 18 0;
-#X connect 33 1 19 0;
-#X connect 35 1 34 0;
-#X connect 36 1 17 0;
diff --git a/externals/gridflow/doc/flow_classes/#scan-help.pd b/externals/gridflow/doc/flow_classes/#scan-help.pd
deleted file mode 100644
index 06bad143..00000000
--- a/externals/gridflow/doc/flow_classes/#scan-help.pd
+++ /dev/null
@@ -1,48 +0,0 @@
-#N canvas 664 0 632 547 10;
-#X floatatom 17 76 5 0 0 0 - - -;
-#X floatatom 62 76 5 0 0 0 - - -;
-#X floatatom 109 76 5 0 0 0 - - -;
-#X floatatom 17 245 5 0 0 0 - - -;
-#X floatatom 56 245 5 0 0 0 - - -;
-#X floatatom 96 245 5 0 0 0 - - -;
-#X obj 17 116 #pack 3;
-#X obj 17 147 #scan +;
-#X obj 17 206 #unpack 3;
-#X obj 103 498 #fold +;
-#X obj 0 0 doc_h;
-#X obj 3 498 doc_also;
-#X obj 3 274 doc_c 1;
-#X obj 3 336 doc_i 1;
-#X obj 3 438 doc_o 1;
-#X obj 14 468 doc_oo 0;
-#X obj 14 304 doc_cc 0;
-#X text 69 35 computes subtotals and stuff;
-#X text 165 74 replaces every Dim(last) subgrid by all the results
-of cascading the operator on that subgrid \, producing a Dim(dims \,
-last) grid.;
-#X text 165 127 For example \, with base value 0 and operation + on
-grid "2 3 5 7" will compute 0+2=2 \, 2+3=5 \, 5+5=10 \, 10+7=17 \,
-and give the subtotals "2 5 10 17".;
-#X obj 14 366 doc_ii 0;
-#X obj 97 366 doc_m i0 grid;
-#X obj 97 386 doc_m i0 op;
-#X obj 97 408 doc_m i0 seed;
-#X text 165 191 [#scan +] computes subtotals \; this can be used \,
-for example \, to convert a regular probability distribution into a
-cumulative one. (or in general \, discrete integration);
-#X obj 0 518 doc_f;
-#X obj 97 468 doc_m o0 grid;
-#X obj 97 304 doc_m c0 symbol;
-#X text 232 304 numop;
-#X text 232 386 same as arg 0;
-#X connect 0 0 6 0;
-#X connect 1 0 6 1;
-#X connect 2 0 6 2;
-#X connect 6 0 7 0;
-#X connect 7 0 8 0;
-#X connect 8 0 3 0;
-#X connect 8 1 4 0;
-#X connect 8 2 5 0;
-#X connect 11 1 9 0;
-#X connect 22 1 29 0;
-#X connect 27 1 28 0;
diff --git a/externals/gridflow/doc/flow_classes/#seq_fold-help.pd b/externals/gridflow/doc/flow_classes/#seq_fold-help.pd
deleted file mode 100644
index df26fff8..00000000
--- a/externals/gridflow/doc/flow_classes/#seq_fold-help.pd
+++ /dev/null
@@ -1,55 +0,0 @@
-#N canvas 677 0 632 548 10;
-#X obj 125 63 route end;
-#X obj 126 162 display;
-#X obj 125 106 #seq_fold;
-#X obj 154 130 # +;
-#X msg 125 43 2 1 \, 3 2 \, 5 3 \, 7 4 \, end;
-#X msg 206 82 0 0;
-#X obj 206 63 loadbang;
-#X obj 92 193 #print AAA;
-#X obj 0 0 doc_h;
-#X obj 3 225 doc_c;
-#X obj 3 265 doc_i 4;
-#X obj 14 423 doc_oo 0;
-#X obj 14 445 doc_oo 1;
-#X obj 14 467 doc_oo 2;
-#X obj 3 393 doc_o 3;
-#X obj 14 295 doc_ii 0;
-#X obj 14 317 doc_ii 1;
-#X obj 14 339 doc_ii 2;
-#X obj 14 361 doc_ii 3;
-#X obj 0 519 doc_f;
-#X obj 97 295 doc_m i0 bang;
-#X obj 97 317 doc_m i1 grid;
-#X obj 97 339 doc_m i2 grid;
-#X obj 97 361 doc_m i3 grid;
-#X obj 97 423 doc_m o0 grid;
-#X obj 97 445 doc_m o1 grid;
-#X obj 97 467 doc_m o2 grid;
-#X obj 3 499 doc_also;
-#X obj 103 499 seq_fold;
-#X text 232 445 to outside left inlet;
-#X text 232 467 to outside right inlet;
-#X text 232 423 final result;
-#X text 232 361 from outside outlet;
-#X text 232 339 seed;
-#X text 232 295 output the final result;
-#X text 232 317 sequence of values to be folded;
-#X connect 0 0 2 0;
-#X connect 0 1 2 1;
-#X connect 2 0 1 0;
-#X connect 2 0 7 0;
-#X connect 2 1 3 0;
-#X connect 2 2 3 1;
-#X connect 3 0 2 3;
-#X connect 4 0 0 0;
-#X connect 5 0 2 2;
-#X connect 6 0 5 0;
-#X connect 20 1 34 0;
-#X connect 21 1 35 0;
-#X connect 22 1 33 0;
-#X connect 23 1 32 0;
-#X connect 24 1 31 0;
-#X connect 25 1 29 0;
-#X connect 26 1 30 0;
-#X connect 27 1 28 1;
diff --git a/externals/gridflow/doc/flow_classes/#slice-help.pd b/externals/gridflow/doc/flow_classes/#slice-help.pd
deleted file mode 100644
index df793231..00000000
--- a/externals/gridflow/doc/flow_classes/#slice-help.pd
+++ /dev/null
@@ -1,47 +0,0 @@
-#N canvas 206 135 632 525 10;
-#X obj 38 190 display;
-#X text 36 213 should print subgrid: 3 5 8 13 21;
-#X msg 37 145 0 1 1 2 3 5 8 13 21 34 55 89;
-#X obj 37 170 #slice 4 9;
-#X obj 256 109 #slice (1 1) (3 3);
-#X obj 257 130 display;
-#X obj 256 90 #redim (4 4);
-#X obj 256 71 #for 0 16 1;
-#X obj 256 54 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X text 259 177 should print subgrid: 2 2 # 5 6 9 10;
-#X obj 0 0 doc_h;
-#X obj 3 244 doc_c 2;
-#X obj 3 328 doc_i 3;
-#X obj 3 434 doc_o 1;
-#X obj 14 464 doc_oo 0;
-#X obj 14 380 doc_ii 1;
-#X obj 14 358 doc_ii 0;
-#X obj 14 402 doc_ii 2;
-#X obj 14 274 doc_cc 0;
-#X obj 14 296 doc_cc 1;
-#X obj 0 496 doc_f;
-#X obj 97 274 doc_m c0 grid;
-#X obj 97 296 doc_m c1 grid;
-#X obj 97 358 doc_m i0 grid;
-#X obj 97 380 doc_m i1 grid;
-#X obj 97 402 doc_m i2 grid;
-#X obj 97 464 doc_m o0 grid;
-#X text 232 380 same as arg 0;
-#X text 232 402 same as arg 1;
-#X text 232 464 slice;
-#X text 232 358 grid to be sliced;
-#X text 232 296 end positions (as in #for);
-#X text 232 274 start positions as in #for);
-#X connect 2 0 3 0;
-#X connect 3 0 0 0;
-#X connect 4 0 5 0;
-#X connect 6 0 4 0;
-#X connect 7 0 6 0;
-#X connect 8 0 7 0;
-#X connect 21 1 32 0;
-#X connect 22 1 31 0;
-#X connect 23 1 30 0;
-#X connect 24 1 27 0;
-#X connect 25 1 28 0;
-#X connect 26 1 29 0;
diff --git a/externals/gridflow/doc/flow_classes/#solarize-help.pd b/externals/gridflow/doc/flow_classes/#solarize-help.pd
deleted file mode 100644
index 02240cc0..00000000
--- a/externals/gridflow/doc/flow_classes/#solarize-help.pd
+++ /dev/null
@@ -1,39 +0,0 @@
-#N canvas 690 0 632 491 10;
-#X obj 170 140 bng 15 250 50 0 empty empty empty 0 -6 0 8 -4034 -1
--1;
-#X obj 170 219 #solarize;
-#X obj 170 183 #in;
-#X obj 103 442 #convolve;
-#X obj 169 442 #contrast;
-#X obj 235 442 #posterize;
-#X obj 307 442 #layer;
-#X obj 0 0 doc_h;
-#X obj 3 442 doc_also;
-#X obj 3 278 doc_c;
-#X obj 3 380 doc_o 1;
-#X obj 3 318 doc_i 1;
-#X obj 14 410 doc_oo 0;
-#X obj 14 348 doc_ii 0;
-#X obj 247 215 #out window \, title original;
-#X obj 170 240 #out window \, title modified;
-#X obj 97 410 doc_m o0 grid;
-#X obj 97 348 doc_m i0 grid;
-#X obj 0 462 doc_f;
-#X msg 170 157 load bluemarble.jpg;
-#X text 12 36 Makes medium intensities brightest. Formerly brightest
-colors become darkest \, formerly darkest stays darkest. This filter
-is non-linear (but piecewise-linear). It's like a 200% contrast \,
-except that overflows are mirrored instead of clipped or wrapped.;
-#X text 232 348 pixels;
-#X text 232 410 pixels;
-#X connect 0 0 19 0;
-#X connect 1 0 15 0;
-#X connect 2 0 1 0;
-#X connect 2 0 14 0;
-#X connect 8 1 3 0;
-#X connect 8 1 4 0;
-#X connect 8 1 5 0;
-#X connect 8 1 6 0;
-#X connect 16 1 22 0;
-#X connect 17 1 21 0;
-#X connect 19 0 2 0;
diff --git a/externals/gridflow/doc/flow_classes/#sort-help.pd b/externals/gridflow/doc/flow_classes/#sort-help.pd
deleted file mode 100644
index f2cdc61c..00000000
--- a/externals/gridflow/doc/flow_classes/#sort-help.pd
+++ /dev/null
@@ -1,45 +0,0 @@
-#N canvas 484 136 632 572 10;
-#X obj 28 250 #sort;
-#X msg 28 45 0 1 1 2 3 5 8 13 21 34 55 89;
-#X msg 28 102 12 # 666;
-#X obj 28 121 # rand;
-#X obj 28 178 #store;
-#X obj 28 140 #grade;
-#X obj 28 64 t a a;
-#X obj 28 83 #finished;
-#X obj 58 204 display;
-#X obj 28 159 #outer + (0);
-#X text 151 140 shuffle;
-#X obj 58 274 display;
-#X text 140 252 unshuffle;
-#X obj 0 0 doc_h;
-#X obj 3 311 doc_c 0;
-#X obj 3 351 doc_i 1;
-#X obj 3 461 doc_o 1;
-#X obj 3 523 doc_also;
-#X obj 103 523 #grade;
-#X obj 14 491 doc_oo 0;
-#X obj 14 381 doc_ii 0;
-#X obj 0 543 doc_f;
-#X obj 97 381 doc_m i0 grid;
-#X obj 97 491 doc_m o0 grid;
-#X text 232 491 sorted data;
-#X text 232 381 1-D grid to be sorted;
-#X text 232 403 this takes an average time proportional to N log N
-(a pass on the data takes N time \, and sorting something twice bigger
-takes an extra pass);
-#X connect 0 0 11 0;
-#X connect 1 0 6 0;
-#X connect 2 0 3 0;
-#X connect 3 0 5 0;
-#X connect 4 0 0 0;
-#X connect 4 0 8 0;
-#X connect 5 0 9 0;
-#X connect 6 0 7 0;
-#X connect 6 1 4 1;
-#X connect 7 0 2 0;
-#X connect 9 0 4 0;
-#X connect 17 1 18 0;
-#X connect 22 1 25 0;
-#X connect 22 1 26 0;
-#X connect 23 1 24 0;
diff --git a/externals/gridflow/doc/flow_classes/#spread-help.pd b/externals/gridflow/doc/flow_classes/#spread-help.pd
deleted file mode 100644
index 9c6fc31a..00000000
--- a/externals/gridflow/doc/flow_classes/#spread-help.pd
+++ /dev/null
@@ -1,79 +0,0 @@
-#N canvas 673 0 632 642 10;
-#X text 1 25 makes noise;
-#X obj 207 42 bng 15 250 50 0 empty empty empty 0 -6 0 8 -233017 -1
--1;
-#X obj 221 134 tgl 15 0 empty empty empty 0 -6 0 8 -233017 -1 -1 0
-1;
-#X floatatom 368 241 5 0 0 0 - - -;
-#X floatatom 78 163 5 0 0 0 - - -;
-#X obj 20 88 until;
-#X obj 20 51 bng 15 250 50 0 empty empty empty 0 -6 0 8 -233017 -1
--1;
-#X msg 20 69 65536;
-#X obj 61 88 float;
-#X obj 101 88 + 1;
-#X text 219 308 we limit here \, because the values might go out of
-range;
-#X obj 149 73 metro 50;
-#X obj 149 51 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
-;
-#X obj 20 129 #import (256 256 2);
-#X obj 195 269 #store;
-#X obj 195 341 #out window;
-#X obj 310 341 #out window;
-#X obj 310 291 #clip;
-#X obj 148 124 #in;
-#X obj 249 247 shunt;
-#X obj 0 0 doc_h;
-#X obj 3 491 doc_c 1;
-#X obj 3 633 doc_o 1;
-#X obj 3 551 doc_i 2;
-#X text 210 147 switch displays \, use this to get an image into the
-#store;
-#X obj 14 663 doc_oo 0;
-#X obj 14 581 doc_ii 0;
-#X obj 14 601 doc_ii 1;
-#X obj 14 521 doc_cc 0;
-#X obj 97 581 doc_m i0 grid;
-#X obj 97 663 doc_m o0 grid;
-#X text 326 33 typically you plug a [#for] into this object \, and
-you plug this object into the left side of a [#store]. it will scatter
-pixels around \, giving an "unpolished glass" effec.t;
-#X text 326 89 if you put a picture in it \, however \, it will add
-noise. The resulting values may be out of range \, so you may need
-to clip them using min/max.;
-#X text 54 364 [#spread] scatters the pixels in an image. Not all original
-pixels will appear \, and some may get duplicated (triplicated \, etc)
-randomly. Some wrap-around effect will occur close to the edges.;
-#X text 52 425 Sending an integer to inlet 1 sets the amount of spreading
-in maximum number of pixels + 1 even values translate the whole image
-by half a pixel due to rounding .;
-#X obj 0 693 doc_f;
-#X obj 97 601 doc_m i1 grid;
-#X obj 97 521 doc_m c0 grid;
-#X text 232 601 same as arg 0;
-#X obj 20 197 #spread 1;
-#X obj 310 270 #spread 1;
-#X msg 207 89 load r001.jpg;
-#X connect 1 0 41 0;
-#X connect 2 0 19 1;
-#X connect 3 0 40 1;
-#X connect 4 0 39 1;
-#X connect 5 0 8 0;
-#X connect 6 0 7 0;
-#X connect 7 0 5 0;
-#X connect 8 0 9 0;
-#X connect 8 0 13 0;
-#X connect 9 0 8 1;
-#X connect 11 0 18 0;
-#X connect 12 0 11 0;
-#X connect 13 0 39 0;
-#X connect 14 0 15 0;
-#X connect 17 0 16 0;
-#X connect 18 0 19 0;
-#X connect 19 0 14 1;
-#X connect 19 1 40 0;
-#X connect 36 1 38 0;
-#X connect 39 0 14 0;
-#X connect 40 0 17 0;
-#X connect 41 0 18 0;
diff --git a/externals/gridflow/doc/flow_classes/#store-help.pd b/externals/gridflow/doc/flow_classes/#store-help.pd
deleted file mode 100644
index bc4a52c0..00000000
--- a/externals/gridflow/doc/flow_classes/#store-help.pd
+++ /dev/null
@@ -1,111 +0,0 @@
-#N canvas 602 0 632 642 10;
-#X floatatom 132 89 5 0 0 0 - - -;
-#X floatatom 177 89 5 0 0 0 - - -;
-#X floatatom 20 160 5 0 0 0 - - -;
-#X floatatom 132 200 5 0 0 0 - - -;
-#X text 115 201 R:;
-#X floatatom 193 200 5 0 0 0 - - -;
-#X floatatom 253 200 5 0 0 0 - - -;
-#X text 176 201 G:;
-#X text 237 201 B:;
-#X floatatom 73 161 5 0 0 0 - - -;
-#X text 1 161 X:;
-#X text 58 162 Y:;
-#X obj 132 107 #pack;
-#X obj 296 134 #in;
-#X msg 296 115 load r001.jpg;
-#X obj 20 131 #unpack;
-#X obj 132 175 #unpack 3;
-#X obj 134 150 #store;
-#X text 129 54 this example allows you to select a single pixel from
-the loaded picture and view its rgb value.;
-#X text 8 24 The [#store] stores exactly one grid \, using the right
-inlet. You fetch it back \, or selected subparts using the left inlet.
-;
-#X obj 296 181 display;
-#X obj 86 94 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 296 161 display;
-#X obj 296 96 loadbang;
-#X obj 3 341 doc_i 2;
-#X obj 0 0 doc_h;
-#X obj 3 279 doc_c 1;
-#X obj 14 371 doc_ii 0;
-#X obj 14 571 doc_ii 1;
-#X obj 3 882 doc_o 1;
-#X obj 14 912 doc_oo 0;
-#X obj 14 309 doc_cc 0;
-#X obj 97 309 doc_m c0 grid;
-#X obj 97 406 doc_m i0 grid;
-#X obj 97 371 doc_m i0 bang;
-#X text 232 371 A bang at the left inlet will cause [#store] to send
-its value to the outlet.;
-#X obj 97 571 doc_m i1 grid;
-#X text 232 571 when in reassign mode \, this is same as arg 0;
-#X text 232 593 when it put_at mode \, it basically keeps the previous
-arg 0 or reassignment \, but replaces a selected part inside of it.
-;
-#X obj 97 824 doc_m i1 reassign;
-#X obj 97 663 doc_m i1 put_at;
-#X obj 97 912 doc_m o0 grid;
-#X text 232 406 in this grid \, the last dimension refers to subparts
-of the stored grid. sending a Dim(200 \, 200 \, 2) on a [#store] that
-holds a Dim(240 \, 320 \, 3) will cause the [#store] to handle the
-incoming grid as a Dim(200 \, 200) of Dim(2)'s \, where each Dim(2)
-represents a position in a Dim(240 \, 320) of Dim(3)'s. therefore the
-resulting grid will be a Dim(200 \, 200) of Dim(3) which is a Dim(200
-\, 200 \, 3). in practice this example would be used for generating
-a 200*200 RGB picture from a 200*200 XY map and a 240*320 RGB picture.
-this object can be logically used in the same way for many purposes
-including color palettes \, tables of probabilities \, tables of statistics
-\, whole animations \, etc.;
-#X text 232 824 makes it so that sending a grid to inlet 1 detaches
-the old buffer from [#store] and attaches a new one instead. This is
-the default.;
-#X text 232 663 makes it so that sending a grid to inlet 1 writes into
-the existing buffer of [#store].;
-#X text 232 698 example: suppose you have [#store 10 240 320 3]. then
-"put_at 3" will allow to write a Dim[240 \, 320 \, 3] grid in indices
-(3 \, y \, x \, c) where y \, x \, c are indices of the incoming grid.
-in other words \, if that's a buffer of 10 RGB frames \, you'd be replacing
-frame #3. Furthermore \, it also allows you to write a Dim[n \, 240
-\, 320 \, 3] grid at (3+f \, y \, x \, c) where f \, y \, x \, c are
-indices of the incoming grid \, replacing frame #3 \, #4 \, ... up
-to #3+n-1. Here n is at most 7 because the last frame in the buffer
-is #9.;
-#X text 194 227 that way of working extends to other kinds of data
-you'd put in Grids \, in any numbers of dimensions. because \, as usual
-\, [#store] wouldn't know the difference.;
-#X text 232 912 grids as stored \, as indexed \, or as assembled from
-multiple indexings.;
-#X obj 0 957 doc_f;
-#X text 232 309 initial value to be stored;
-#X obj 97 628 doc_m i1 op;
-#X text 232 628 recombination operator used by put_at \, just like
-arg 0 of [#draw_image];
-#X connect 0 0 12 0;
-#X connect 1 0 12 1;
-#X connect 12 0 15 0;
-#X connect 12 0 17 0;
-#X connect 12 0 22 0;
-#X connect 13 0 17 1;
-#X connect 14 0 13 0;
-#X connect 15 0 2 0;
-#X connect 15 1 9 0;
-#X connect 16 0 3 0;
-#X connect 16 1 5 0;
-#X connect 16 2 6 0;
-#X connect 17 0 16 0;
-#X connect 17 0 20 0;
-#X connect 21 0 17 0;
-#X connect 23 0 14 0;
-#X connect 32 1 49 0;
-#X connect 33 1 42 0;
-#X connect 34 1 35 0;
-#X connect 36 1 37 0;
-#X connect 36 1 38 0;
-#X connect 39 1 43 0;
-#X connect 40 1 44 0;
-#X connect 40 1 45 0;
-#X connect 41 1 47 0;
-#X connect 50 1 51 0;
diff --git a/externals/gridflow/doc/flow_classes/#swap-help.pd b/externals/gridflow/doc/flow_classes/#swap-help.pd
deleted file mode 100644
index 70263b36..00000000
--- a/externals/gridflow/doc/flow_classes/#swap-help.pd
+++ /dev/null
@@ -1,25 +0,0 @@
-#N canvas 335 118 632 379 10;
-#X obj 0 0 doc_h;
-#X obj 0 350 doc_f;
-#X obj 60 55 #swap;
-#X text 223 55 grid equivalent of [swap];
-#X obj 3 168 doc_i 2;
-#X obj 3 250 doc_o 2;
-#X obj 14 198 doc_ii 0;
-#X obj 14 218 doc_ii 1;
-#X obj 14 280 doc_oo 0;
-#X obj 14 300 doc_oo 1;
-#X obj 97 198 doc_m i0 grid;
-#X obj 97 218 doc_m i1 grid;
-#X obj 97 280 doc_m o0 grid;
-#X obj 97 300 doc_m o1 grid;
-#X obj 3 330 doc_also;
-#X obj 103 330 swap;
-#X obj 14 136 doc_cc 0;
-#X obj 3 106 doc_c 0..1;
-#X text 232 136 same as [#store];
-#X text 232 218 same as arg 0;
-#X obj 97 136 doc_m c0 grid;
-#X connect 11 1 19 0;
-#X connect 14 1 15 0;
-#X connect 20 1 18 0;
diff --git a/externals/gridflow/doc/flow_classes/#t-help.pd b/externals/gridflow/doc/flow_classes/#t-help.pd
deleted file mode 100644
index a8c4f064..00000000
--- a/externals/gridflow/doc/flow_classes/#t-help.pd
+++ /dev/null
@@ -1,58 +0,0 @@
-#N canvas 78 0 632 554 10;
-#X obj 10 134 #in teapot.png;
-#X obj 10 161 t a a;
-#X obj 40 181 #convolve (1 3 # -1 2 -1);
-#X obj 267 181 #convolve (1 3 # -1 2 -1);
-#X obj 10 112 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 237 161 #t;
-#X obj 237 205 # *>>8;
-#X obj 10 205 # *>>8;
-#X text 257 112 Works;
-#X text 8 64 In some situations \, a grid hasn't finished entering
-the right-hand side \, when an object begins receiving on the left-hand
-side. in those cases you should use #t.;
-#X obj 237 113 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 10 234 #out window \, title doesnt_work;
-#X obj 237 233 #out window \, title works;
-#X text 8 25 The [#t] trigger object sequences grid operations in a
-right-to-left order. It outputs its input from right to left.;
-#X text 28 112 Doesn't work (all black);
-#X obj 237 134 #in teapot.png;
-#X text 232 425 The same grid received in inlet 0 is first sent to
-the outlet 0;
-#X text 232 460 The same grid received in inlet 0 is sent to the outlet
-1 after it was sent to outlet 0;
-#X text 232 337 The Grid passed in inlet 0 will be first sent to the
-right most outlet and then to the second from the right (the left outlet
-in this case).;
-#X obj 0 0 doc_h;
-#X obj 3 307 doc_i 1;
-#X obj 3 395 doc_o 2;
-#X obj 3 267 doc_c 0;
-#X obj 3 505 doc_also;
-#X obj 14 337 doc_ii 0;
-#X obj 14 425 doc_oo 0;
-#X obj 14 460 doc_oo 1;
-#X obj 97 337 doc_m i0 grid;
-#X obj 97 425 doc_m o0 grid;
-#X obj 97 460 doc_m o1 grid;
-#X obj 0 525 doc_f;
-#X obj 103 505 t;
-#X connect 0 0 1 0;
-#X connect 1 0 7 0;
-#X connect 1 1 2 0;
-#X connect 2 0 7 1;
-#X connect 3 0 6 1;
-#X connect 4 0 0 0;
-#X connect 5 0 6 0;
-#X connect 5 1 3 0;
-#X connect 6 0 12 0;
-#X connect 7 0 11 0;
-#X connect 10 0 15 0;
-#X connect 15 0 5 0;
-#X connect 23 1 31 0;
-#X connect 27 1 18 0;
-#X connect 28 1 16 0;
-#X connect 29 1 17 0;
diff --git a/externals/gridflow/doc/flow_classes/#text_to_image-help.pd b/externals/gridflow/doc/flow_classes/#text_to_image-help.pd
deleted file mode 100644
index 238dab37..00000000
--- a/externals/gridflow/doc/flow_classes/#text_to_image-help.pd
+++ /dev/null
@@ -1,24 +0,0 @@
-#N canvas 685 0 632 345 10;
-#X obj 0 0 doc_h;
-#X obj 33 40 #text_to_image;
-#X obj 3 71 doc_c 0;
-#X obj 3 111 doc_i 3;
-#X obj 3 256 doc_o 1;
-#X obj 14 141 doc_ii 0;
-#X obj 14 176 doc_ii 1;
-#X obj 14 211 doc_ii 2;
-#X obj 97 141 doc_m i0 bang;
-#X text 232 141 transforming the data into an image suitable for #draw_image.
-;
-#X obj 14 286 doc_oo 0;
-#X obj 97 286 doc_m o0 grid;
-#X obj 97 211 doc_m i2 grid;
-#X obj 97 176 doc_m i1 grid;
-#X text 232 176 2 by 3 matrix representing the colours to use (e.g.
-(2 3 # 0 170 0 255 255 0) means yellow on green);
-#X obj 0 316 doc_f;
-#X text 232 211 font grid \, for example \, from [#in grid lucida-typewriter-12.grid]
-;
-#X connect 8 1 9 0;
-#X connect 12 1 16 0;
-#X connect 13 1 14 0;
diff --git a/externals/gridflow/doc/flow_classes/#to_float-help.pd b/externals/gridflow/doc/flow_classes/#to_float-help.pd
deleted file mode 100644
index 16886baf..00000000
--- a/externals/gridflow/doc/flow_classes/#to_float-help.pd
+++ /dev/null
@@ -1,29 +0,0 @@
-#N canvas 678 0 632 446 10;
-#X obj 15 188 cnv 15 55 17 empty empty empty 20 12 0 14 -241291 -66577
-0;
-#X obj 39 135 display;
-#X msg 15 73 1 2 3 4 5 6 7 8;
-#X text 138 73 <-- create the grid here;
-#X obj 15 188 #to_float;
-#X text 12 27 Produces sequences of floats from grid data. Useful for
-the integration into the rest of PureData.;
-#X obj 15 216 print converted_grid;
-#X obj 15 100 #import (2 2 2);
-#X obj 0 0 doc_h;
-#X obj 3 280 doc_i 1;
-#X obj 3 240 doc_c;
-#X obj 14 372 doc_oo 0;
-#X obj 14 310 doc_ii 0;
-#X obj 3 342 doc_o 1;
-#X obj 97 310 doc_m i0 grid;
-#X obj 97 372 doc_m o0 float;
-#X obj 0 417 doc_f;
-#X text 232 310 content to be finely chopped;
-#X text 232 372 a sequence of floats that the incoming grid is transformed
-into. they are output in normal grid order.;
-#X connect 2 0 7 0;
-#X connect 4 0 6 0;
-#X connect 7 0 1 0;
-#X connect 7 0 4 0;
-#X connect 14 1 17 0;
-#X connect 15 1 18 0;
diff --git a/externals/gridflow/doc/flow_classes/#to_list-help.pd b/externals/gridflow/doc/flow_classes/#to_list-help.pd
deleted file mode 100644
index 51a376ea..00000000
--- a/externals/gridflow/doc/flow_classes/#to_list-help.pd
+++ /dev/null
@@ -1,31 +0,0 @@
-#N canvas 544 108 632 450 10;
-#X obj 15 164 cnv 15 52 17 empty empty empty 20 12 0 14 -241291 -66577
-0;
-#X obj 50 115 display;
-#X msg 14 64 1 2 3 4 5 6 7 8;
-#X obj 161 217 display;
-#X text 12 27 Produces a list from grid data. Useful for the integration
-into the rest of PureData.;
-#X text 130 63 <-- create the grid here;
-#X obj 14 165 #to_list;
-#X obj 14 216 print converted_grid;
-#X obj 14 91 #import (2 2 2);
-#X obj 0 0 doc_h;
-#X obj 3 346 doc_o 1;
-#X obj 3 284 doc_i 1;
-#X obj 3 244 doc_c 0;
-#X text 232 376 The grid is transformed into a single message containing
-a sequence of floats.;
-#X obj 14 314 doc_ii 0;
-#X obj 14 376 doc_oo 0;
-#X obj 97 314 doc_m i0 grid;
-#X obj 97 376 doc_m o0 list;
-#X obj 0 421 doc_f;
-#X text 232 314 will be transformed into a list.;
-#X connect 2 0 8 0;
-#X connect 6 0 3 0;
-#X connect 6 0 7 0;
-#X connect 8 0 1 0;
-#X connect 8 0 6 0;
-#X connect 16 1 19 0;
-#X connect 17 1 13 0;
diff --git a/externals/gridflow/doc/flow_classes/#to_literal-help.pd b/externals/gridflow/doc/flow_classes/#to_literal-help.pd
deleted file mode 100644
index 15f076e8..00000000
--- a/externals/gridflow/doc/flow_classes/#to_literal-help.pd
+++ /dev/null
@@ -1,34 +0,0 @@
-#N canvas 556 102 632 540 10;
-#X obj 0 0 doc_h;
-#X obj 0 511 doc_f;
-#X obj 96 289 #to_literal;
-#X obj 102 312 display;
-#X obj 3 347 doc_c 0;
-#X obj 3 387 doc_i 1;
-#X obj 3 449 doc_o 1;
-#X obj 14 417 doc_ii 0;
-#X obj 14 479 doc_oo 0;
-#X obj 97 417 doc_m i0 grid;
-#X obj 102 146 display;
-#X obj 96 165 # +;
-#X text 123 166 "do nothing": just convert literal to grid;
-#X obj 102 224 display;
-#X msg 96 123 3 3 # 2 3 5 7 11 13 17 19 23;
-#X obj 97 479 doc_m o0 list;
-#X text 232 479 grid literal;
-#X msg 118 62 3 2 f # 0.1 0.333333 2.71828 3.14159 1.4142 1.61803;
-#X obj 118 103 # + (f #);
-#X obj 96 201 t a;
-#X obj 124 83 display;
-#X text 232 417 any grid;
-#X connect 2 0 3 0;
-#X connect 9 1 21 0;
-#X connect 11 0 19 0;
-#X connect 14 0 10 0;
-#X connect 14 0 11 0;
-#X connect 15 1 16 0;
-#X connect 17 0 18 0;
-#X connect 17 0 20 0;
-#X connect 18 0 19 0;
-#X connect 19 0 13 0;
-#X connect 19 0 2 0;
diff --git a/externals/gridflow/doc/flow_classes/#to_pix-help.pd b/externals/gridflow/doc/flow_classes/#to_pix-help.pd
deleted file mode 100644
index 199ab591..00000000
--- a/externals/gridflow/doc/flow_classes/#to_pix-help.pd
+++ /dev/null
@@ -1,107 +0,0 @@
-#N canvas 661 0 632 665 10;
-#X msg 365 61 create \, 1;
-#X obj 365 42 loadbang;
-#X msg 157 139 open violoncelle.mov;
-#X obj 130 72 tgl 15 0 empty empty empty 17 7 0 10 -4034 -1 -1 0 1
-;
-#X obj 45 52 gemhead;
-#X obj 45 272 pix_texture;
-#X obj 13 720 cnv 15 500 17 empty empty empty 20 12 0 14 -228992 -66577
-0;
-#X obj 13 720 cnv 15 500 17 empty empty empty 20 12 0 14 -228992 -66577
-0;
-#X obj 13 720 cnv 15 500 17 empty empty empty 20 12 0 14 -228992 -66577
-0;
-#X obj 13 720 cnv 15 500 17 empty empty empty 20 12 0 14 -228992 -66577
-0;
-#X text 19 721 see also :;
-#X text 102 720 [#import_pix];
-#X msg 429 62 destroy;
-#X obj 365 93 gemwin 30;
-#X obj 157 117 loadbang;
-#X text 150 69 <-- start playing the video;
-#X text 94 250 <-- imports gridflow grids into GEM;
-#X text 181 720 \, game_of_life_gem.pd in the examples folder;
-#X obj 45 253 #to_pix;
-#X text 232 591 Modified gemstate so that the pix is equal to the Grid
-of inlet 1;
-#X text 232 472 Something coming from [gemhead];
-#X msg 57 217 yflip \$1;
-#X obj 57 197 tgl 15 0 empty empty empty 17 7 0 10 -257985 -1 -1 0
-1;
-#X text 232 494 With one boolean argument that selects the order in
-which the y dimension of the Grid will be read \, defaults to '1';
-#X obj 45 291 rectangle 4 3;
-#X obj 0 0 doc_h;
-#X obj 3 442 doc_i 2;
-#X obj 3 561 doc_o 1;
-#X obj 3 402 doc_c 0;
-#X obj 14 472 doc_ii 0;
-#X obj 14 529 doc_ii 1;
-#X obj 14 591 doc_oo 0;
-#X obj 97 472 doc_m i0 gem_state;
-#X obj 97 494 doc_m i0 yflip;
-#X obj 97 529 doc_m i1 grid;
-#X obj 97 591 doc_m o0 gem_state;
-#X obj 0 636 doc_f;
-#X obj 397 243 b;
-#X obj 397 263 fps;
-#X floatatom 397 282 5 0 0 0 - - -;
-#X obj 130 162 #in;
-#X msg 310 134 cast b;
-#X msg 310 154 cast s;
-#X msg 310 174 cast i;
-#X obj 140 195 shunt;
-#X obj 176 196 tgl 15 0 empty empty empty 17 7 0 10 -257985 -1 -1 0
-1;
-#N canvas 0 22 458 308 to_rgba_if_not_already 0;
-#X obj 130 221 #rgb_to_rgba;
-#X obj 131 103 #dim;
-#X obj 103 173 shunt;
-#X obj 131 126 #unpack 3;
-#X obj 104 29 inlet;
-#X obj 104 56 t a a;
-#X obj 103 265 outlet;
-#X obj 131 150 == 3;
-#X connect 0 0 6 0;
-#X connect 1 0 3 0;
-#X connect 2 0 6 0;
-#X connect 2 1 0 0;
-#X connect 3 2 7 0;
-#X connect 4 0 5 0;
-#X connect 5 0 2 0;
-#X connect 5 1 1 0;
-#X connect 7 0 2 1;
-#X restore 167 214 pd to_rgba_if_not_already;
-#X text 40 353 Note : you can get some timebased 'moire' effects if
-the arguments to the [gemwin] and the [metro] are not synched;
-#X text 232 529 Grid with 3 or 4 channels (4th channel gets destroyed)
-;
-#X obj 130 93 metro 33.3667;
-#X connect 0 0 13 0;
-#X connect 1 0 0 0;
-#X connect 2 0 40 0;
-#X connect 3 0 49 0;
-#X connect 4 0 18 0;
-#X connect 5 0 24 0;
-#X connect 12 0 13 0;
-#X connect 14 0 2 0;
-#X connect 18 0 5 0;
-#X connect 21 0 18 0;
-#X connect 22 0 21 0;
-#X connect 32 1 20 0;
-#X connect 33 1 23 0;
-#X connect 34 1 48 0;
-#X connect 35 1 19 0;
-#X connect 37 0 38 0;
-#X connect 38 0 39 0;
-#X connect 40 0 37 0;
-#X connect 40 0 44 0;
-#X connect 41 0 40 0;
-#X connect 42 0 40 0;
-#X connect 43 0 40 0;
-#X connect 44 0 18 1;
-#X connect 44 1 46 0;
-#X connect 45 0 44 1;
-#X connect 46 0 18 1;
-#X connect 49 0 40 0;
diff --git a/externals/gridflow/doc/flow_classes/#to_symbol-help.pd b/externals/gridflow/doc/flow_classes/#to_symbol-help.pd
deleted file mode 100644
index f991d814..00000000
--- a/externals/gridflow/doc/flow_classes/#to_symbol-help.pd
+++ /dev/null
@@ -1,52 +0,0 @@
-#N canvas 648 0 632 642 10;
-#X obj 11 498 cnv 15 63 17 empty empty empty 20 12 0 14 -241291 -66577
-0;
-#X obj 176 469 display;
-#X obj 174 557 display;
-#X symbolatom 353 559 12 0 0 0 - - -;
-#X msg 11 409 72 101 108 108 111 32 87 111 114 108 100 33;
-#X obj 11 428 #import (3 2 2);
-#X text 324 409 <-- create the grid here;
-#X obj 11 498 #to_symbol;
-#X obj 11 557 print converted_grid;
-#X obj 0 0 doc_h;
-#X obj 3 691 doc_o 1;
-#X obj 3 629 doc_i 1;
-#X obj 3 589 doc_c 0;
-#X text 11 102 note that a zero value will cause pd to truncate the
-symbol there. thus a symbol may have less bytes than the grid it was
-made from.;
-#X text 10 147 remember that a byte is not necessarily a codepoint
-\, a codepoint is not necessarily a character \, and all characters
-don't always have the same width. these distinctions don't matter for
-all encodings.;
-#X text 11 32 Produces a symbol from grid data in its input. The values
-are expected to be valid in the character encoding that you are using
-\, but no check will be performed for that \, and additionally \, no
-check will be made that the generated symbol only contains characters
-that can be put in a symbol.;
-#X obj 14 659 doc_ii 0;
-#X obj 14 721 doc_oo 0;
-#X obj 97 659 doc_m i0 grid;
-#X obj 97 721 doc_m o0 symbol;
-#X obj 0 753 doc_f;
-#X text 232 659 will be transformed into a symbol.;
-#X text 232 721 symbol made of grid elements as bytes.;
-#X text 12 211 in the future \, this might work at the level of codepoints
-instead. thus with today's default UTF-8 (compact unicode) encoding
-\, &eacute \; has to be written as 195 169 \, you would be able to
-write it as just 233 (as with iso-latin-1) and it would get converted
-to 195 169 automatically. however there is still another form of this
-character that is made as two codepoints \, 101 (e) and the "dead acute"
-character \, separately \, on systems that support it.;
-#X text 14 342 at this point \, though \, most branches of pd still
-can't handle utf-8 properly \, so there isn't much of a hurry in adding
-utf-8 support to [#to_symbol]...;
-#X connect 4 0 5 0;
-#X connect 5 0 1 0;
-#X connect 5 0 7 0;
-#X connect 7 0 2 0;
-#X connect 7 0 3 0;
-#X connect 7 0 8 0;
-#X connect 18 1 21 0;
-#X connect 19 1 22 0;
diff --git a/externals/gridflow/doc/flow_classes/#transpose-help.pd b/externals/gridflow/doc/flow_classes/#transpose-help.pd
deleted file mode 100644
index 9537434a..00000000
--- a/externals/gridflow/doc/flow_classes/#transpose-help.pd
+++ /dev/null
@@ -1,37 +0,0 @@
-#N canvas 674 0 632 444 10;
-#X obj 3 150 doc_c 2;
-#X obj 36 65 #transpose;
-#X obj 3 234 doc_i 3;
-#X obj 3 353 doc_o 1;
-#X obj 0 0 doc_h;
-#X obj 14 180 doc_cc 0;
-#X obj 14 202 doc_cc 1;
-#X obj 14 264 doc_ii 0;
-#X obj 14 299 doc_ii 1;
-#X obj 14 321 doc_ii 2;
-#X obj 14 383 doc_oo 0;
-#X obj 97 180 doc_m c0 float;
-#X obj 97 202 doc_m c1 float;
-#X obj 97 264 doc_m i0 grid;
-#X obj 97 299 doc_m i1 float;
-#X obj 97 321 doc_m i2 float;
-#X obj 97 383 doc_m o0 grid;
-#X text 232 264 swaps the two specified dimensions \; dimension numbers
-are as in [#join].;
-#X text 232 180 dimension number;
-#X text 232 202 dimension number;
-#X text 232 299 same as arg 0;
-#X text 232 321 same as arg 1;
-#X obj 0 415 doc_f;
-#X text 226 58 remaps contents of a grid by swapping dimensions of
-indices. for example \, [#transpose 0 1] does the same as [#remap_image]x[#reverse].
-;
-#X text 232 383 remapped image;
-#X text 228 108 this is like matrix-transposition that you frequently
-read about in linear algebra books.;
-#X connect 11 1 18 0;
-#X connect 12 1 19 0;
-#X connect 13 1 17 0;
-#X connect 14 1 20 0;
-#X connect 15 1 21 0;
-#X connect 16 1 24 0;
diff --git a/externals/gridflow/doc/flow_classes/#type-help.pd b/externals/gridflow/doc/flow_classes/#type-help.pd
deleted file mode 100644
index 4f765f5f..00000000
--- a/externals/gridflow/doc/flow_classes/#type-help.pd
+++ /dev/null
@@ -1,26 +0,0 @@
-#N canvas 0 0 632 350 10;
-#X obj 3 117 doc_c 0;
-#X obj 3 157 doc_i 1;
-#X obj 3 217 doc_o 1;
-#X obj 14 247 doc_oo 0;
-#X obj 14 187 doc_ii 0;
-#X text 138 34 gives a symbol representing the numeric type of the
-grid received.;
-#X obj 97 247 doc_m o0 symbol;
-#X obj 97 187 doc_m i0 grid;
-#X obj 3 301 doc_also;
-#X obj 103 301 #dim;
-#X obj 139 301 #finished;
-#X obj 0 0 doc_h;
-#X obj 0 321 doc_f;
-#X obj 17 65 #type;
-#X symbolatom 17 84 10 0 0 0 - - -;
-#X msg 27 38 3 3 f # 10.4;
-#X text 232 247 numbertype in long form.;
-#X text 232 269 one of: uint8 int16 int32 int64 float32 float64;
-#X connect 6 1 16 0;
-#X connect 6 1 17 0;
-#X connect 8 1 9 0;
-#X connect 8 1 10 0;
-#X connect 13 0 14 0;
-#X connect 15 0 13 0;
diff --git a/externals/gridflow/doc/flow_classes/#unpack-help.pd b/externals/gridflow/doc/flow_classes/#unpack-help.pd
deleted file mode 100644
index 7068382a..00000000
--- a/externals/gridflow/doc/flow_classes/#unpack-help.pd
+++ /dev/null
@@ -1,28 +0,0 @@
-#N canvas 286 66 632 455 10;
-#X obj 17 61 #color;
-#X floatatom 17 195 5 0 0 0 - - -;
-#X floatatom 46 174 5 0 0 0 - - -;
-#X floatatom 75 152 5 0 0 0 - - -;
-#X text 196 84 <--click and drag to view grid values.;
-#X obj 17 128 #unpack 3;
-#X obj 0 0 doc_h;
-#X obj 3 304 doc_i 1;
-#X obj 3 364 doc_o n;
-#X text 12 28 Outputs individual values from a grid.;
-#X obj 3 228 doc_c 1;
-#X text 232 394 Outputs grid dimensions as individual numbers.;
-#X obj 14 334 doc_ii 0;
-#X obj 14 394 doc_oo any;
-#X obj 14 258 doc_cc 0;
-#X obj 97 259 doc_m c0 float/int;
-#X obj 97 334 doc_m i0 grid;
-#X obj 97 394 doc_m oany float;
-#X obj 0 426 doc_f;
-#X text 232 259 number of outlets. usually corresponds to the number
-of grid dimensions. (default: 2);
-#X connect 0 0 5 0;
-#X connect 5 0 1 0;
-#X connect 5 1 2 0;
-#X connect 5 2 3 0;
-#X connect 15 1 19 0;
-#X connect 17 1 11 0;
diff --git a/externals/gridflow/doc/flow_classes/#window-help.pd b/externals/gridflow/doc/flow_classes/#window-help.pd
deleted file mode 100644
index aec81f45..00000000
--- a/externals/gridflow/doc/flow_classes/#window-help.pd
+++ /dev/null
@@ -1,33 +0,0 @@
-#N canvas 514 151 632 415 10;
-#X obj 0 0 doc_h;
-#X obj 0 386 doc_f;
-#X obj 149 56 tgl 15 0 empty empty click_me 17 7 0 10 -4034 -1 -1 0
-1;
-#X obj 47 55 #window alakazou;
-#X obj 14 140 doc_cc 0;
-#X obj 3 110 doc_c 0..1;
-#X obj 97 140 doc_m c0 symbol;
-#X text 232 140 window title;
-#X obj 3 172 doc_i 2;
-#X obj 14 202 doc_ii 0;
-#X obj 14 272 doc_ii 1;
-#X obj 97 237 doc_m i0 state;
-#X text 232 272 same as 'state';
-#X obj 97 202 doc_m i0 grid;
-#X obj 97 272 doc_m i1 bool;
-#X obj 3 366 doc_also;
-#X obj 103 366 #out;
-#X text 232 202 as with #out window when state=1 \; else ignored when
-state=0;
-#X text 232 237 1 to open the window \; 0 to close it.;
-#X obj 3 304 doc_o 1;
-#X obj 14 334 doc_oo 0;
-#X obj 97 334 doc_m o0 ...;
-#X text 232 334 whatever [#out window] outputs.;
-#X connect 2 0 3 1;
-#X connect 6 1 7 0;
-#X connect 11 1 18 0;
-#X connect 13 1 17 0;
-#X connect 14 1 12 0;
-#X connect 15 1 16 0;
-#X connect 21 1 22 0;
diff --git a/externals/gridflow/doc/flow_classes/0x40complex_sq-help.pd b/externals/gridflow/doc/flow_classes/0x40complex_sq-help.pd
deleted file mode 100644
index 42ca0f5a..00000000
--- a/externals/gridflow/doc/flow_classes/0x40complex_sq-help.pd
+++ /dev/null
@@ -1,52 +0,0 @@
-#N canvas 648 0 632 537 10;
-#X obj 21 109 @complex_sq;
-#X text 176 59 this object computes the square of complex numbers.
-if seeing imaginary as Y and real as X \, then this operation squares
-the distance of a point from origin and doubles the angle between it
-and the +X half-axis clockwise. :);
-#X floatatom 21 58 5 0 0 0 - - -;
-#X floatatom 21 188 5 0 0 0 - - -;
-#X floatatom 64 58 5 0 0 0 - - -;
-#X floatatom 58 188 5 0 0 0 - - -;
-#X obj 21 78 #pack;
-#X obj 114 185 #print;
-#X obj 21 159 #unpack;
-#X obj 103 488 # +;
-#X obj 133 488 # abs-;
-#X obj 3 488 doc_also;
-#X obj 181 488 # C.sq-;
-#X obj 3 324 doc_c 0;
-#X obj 3 364 doc_i 1;
-#X obj 3 426 doc_o 1;
-#X obj 0 0 doc_h;
-#X obj 14 456 doc_oo 0;
-#X obj 14 394 doc_ii 0;
-#X obj 97 394 doc_m i0 grid;
-#X obj 97 456 doc_m o0 grid;
-#X text 232 394 grid of size (... \, 2);
-#X text 232 456 grid of same size;
-#X obj 0 508 doc_f;
-#X text 178 128 However \, this (old) object is backwards from the
-rest of GridFlow because it puts Imaginary before Real. [#fft] puts
-the Real part first. Open this abstraction to discover the new way
-to square a complex number. (The extra multiplication is the net result
-of swapping components before and after the squaring);
-#X text 178 212 used on an indexmap (#remap_image) \, this makes each
-thing appear twice \, each appearance spanning half of the original
-angle. straight lines become hyperbolic \, etc.;
-#X text 179 259 In the original version of GridFlow (aka Video4jmax
-0.2) \, the first example patch was feedback_fractal \, which used
-this operation with a [#remap_image] \, though it was expressed in
-much different terms back then.;
-#X connect 0 0 7 0;
-#X connect 0 0 8 0;
-#X connect 2 0 6 0;
-#X connect 4 0 6 1;
-#X connect 6 0 0 0;
-#X connect 8 0 3 0;
-#X connect 8 1 5 0;
-#X connect 11 1 9 1;
-#X connect 11 1 10 0;
-#X connect 11 1 12 0;
-#X connect 19 1 21 0;
-#X connect 20 1 22 0;
diff --git a/externals/gridflow/doc/flow_classes/args-demo.pd b/externals/gridflow/doc/flow_classes/args-demo.pd
deleted file mode 100644
index 54e3cfe7..00000000
--- a/externals/gridflow/doc/flow_classes/args-demo.pd
+++ /dev/null
@@ -1,27 +0,0 @@
-#N canvas 0 0 613 300 10;
-#X obj 152 20 args hello (world a 42) *;
-#X obj 43 96 print args;
-#X obj 152 3 bng 15 250 50 0 empty empty empty 17 7 0 10 -24198 -1
--1;
-#X obj 18 35 inlet;
-#X obj 18 233 outlet;
-#X obj 18 54 t a;
-#X obj 18 155 route temperature pression etc;
-#X obj 266 85 display;
-#X obj 209 105 display;
-#X text 270 69 rest of arguments (*);
-#X text 17 174 do whatever you want with those args;
-#X obj 223 230 t a;
-#X text 230 211 anything else coming from first inlet or named args
-;
-#X obj 153 125 display;
-#X text 157 106 hello;
-#X text 213 86 world;
-#X connect 0 0 13 0;
-#X connect 0 1 8 0;
-#X connect 0 2 7 0;
-#X connect 2 0 0 0;
-#X connect 3 0 5 0;
-#X connect 5 0 6 0;
-#X connect 5 0 1 0;
-#X connect 6 3 11 0;
diff --git a/externals/gridflow/doc/flow_classes/args-help.pd b/externals/gridflow/doc/flow_classes/args-help.pd
deleted file mode 100644
index d7f6a345..00000000
--- a/externals/gridflow/doc/flow_classes/args-help.pd
+++ /dev/null
@@ -1,50 +0,0 @@
-#N canvas 648 0 632 631 10;
-#X text 354 70 demo default args;
-#X text 354 90 demo rest of args;
-#X text 354 130 demo missing args;
-#X text 354 110 demo comma args;
-#X obj 0 0 doc_h;
-#X obj 3 352 doc_i 1;
-#X obj 3 153 doc_c n;
-#X obj 14 382 doc_ii 0;
-#X obj 3 518 doc_o 1..;
-#X obj 97 382 doc_m i0 bang;
-#X obj 14 183 doc_cc any;
-#X obj 97 183 doc_m cany symbol;
-#X text 232 183 "*" represents the rest of arguments;
-#X text 232 205 other symbols represent mandatory arguments;
-#X obj 0 602 doc_f;
-#X obj 14 548 doc_oo any;
-#X obj 97 548 doc_m oany <atom>;
-#X text 232 548 output of single argument;
-#X text 232 570 output of rest of arguments \, if last arg of [args]
-is a "*".;
-#X obj 97 570 doc_m oany <list>;
-#X text 232 382 sends one message per outlet right-to-left. if there
-is a wildcard (*) as the last argument \, any extra arguments go there
-as a list message. Then for any missing arguments that have default
-values \, the default values are sent \, right to left. Then for each
-present argument that is not extra \, that argument will be sent on
-its own outlet. Finally \, each init-message (comma-separated) is parsed
-from the arguments and sent (magically) to the first inlet of the abstraction
-itself.;
-#X obj 97 227 doc_m cany nested-list;
-#X text 232 227 represent optional arguments as nested-lists;
-#X text 232 249 inside the nested-list \, \$1 must be the name of the
-argument \, \$2 must be "a" (the single letter) \, and \$3 must be
-the default value. the "a" is actually for future use (type-checking).
-;
-#X text 97 314 the star can only occur once and at the end \, and all
-optionals must follow all mandatories.;
-#X obj 12 89 args-demo pommes poires ananas biscuits-soda;
-#X obj 12 129 args-demo;
-#X obj 12 69 args-demo blah;
-#X obj 12 109 args-demo dorval \, temperature -18 \, pression 99.5
-;
-#X connect 9 1 20 0;
-#X connect 11 1 12 0;
-#X connect 11 1 13 0;
-#X connect 16 1 17 0;
-#X connect 19 1 18 0;
-#X connect 21 1 22 0;
-#X connect 21 1 23 0;
diff --git a/externals/gridflow/doc/flow_classes/ascii-help.pd b/externals/gridflow/doc/flow_classes/ascii-help.pd
deleted file mode 100644
index b7ae57d5..00000000
--- a/externals/gridflow/doc/flow_classes/ascii-help.pd
+++ /dev/null
@@ -1,25 +0,0 @@
-#N canvas 442 305 632 357 10;
-#X obj 39 73 ascii;
-#X floatatom 39 41 5 0 0 0 - - -;
-#X obj 39 92 print;
-#X text 135 74 write integer as decimal in ascii codes;
-#X text 232 195 number to be converted into ascii codes;
-#X obj 0 0 doc_h;
-#X obj 3 227 doc_o 1;
-#X obj 3 165 doc_i 1;
-#X obj 14 195 doc_ii 0;
-#X obj 14 257 doc_oo 0;
-#X obj 3 125 doc_c 0;
-#X obj 97 195 doc_m i0 float int;
-#X obj 97 257 doc_m o0 float;
-#X obj 0 328 doc_f;
-#X msg 86 40 1e+06;
-#X text 232 257 a sequence of floats corresponding to the ascii codes
-of the input integer as written in decimal. the sign is written in
-the case of negative values. exponential notation is used for large
-numbers.;
-#X connect 0 0 2 0;
-#X connect 1 0 0 0;
-#X connect 11 1 4 0;
-#X connect 12 1 15 0;
-#X connect 14 0 0 0;
diff --git a/externals/gridflow/doc/flow_classes/ascii_to_f-help.pd b/externals/gridflow/doc/flow_classes/ascii_to_f-help.pd
deleted file mode 100644
index a506c274..00000000
--- a/externals/gridflow/doc/flow_classes/ascii_to_f-help.pd
+++ /dev/null
@@ -1,31 +0,0 @@
-#N canvas 335 118 632 388 10;
-#X obj 0 0 doc_h;
-#X obj 0 359 doc_f;
-#X obj 31 75 ascii_to_f;
-#X text 200 74 parser for floats written in ascii as sequences of floats
-;
-#X obj 3 134 doc_c 0;
-#X obj 3 174 doc_i 1;
-#X obj 3 236 doc_o 2;
-#X obj 14 266 doc_oo 0;
-#X obj 14 327 doc_oo 1;
-#X obj 14 204 doc_ii 0;
-#X obj 97 204 doc_m i0;
-#X obj 97 327 doc_m o1 float;
-#X obj 97 266 doc_m o0 float;
-#X text 232 327 integer coming from inlet 0 but unrecognised;
-#X text 232 204 ascii bytes (integer);
-#X floatatom 31 100 8 0 0 0 - - -;
-#X obj 90 100 display;
-#X msg 30 50 51 \, 46 \, 49 \, 52 \, 49 \, 53 \, 57 \, 51 \, 0;
-#X text 232 266 float value successfully parsed. note that this is
-output only when an unrecognised character is received \, because otherwise
-\, it can't be known for sure that the number is finished.;
-#X text 201 93 recognises plus \, minus \, period \, but no exponents
-\, infinities nor NaN.;
-#X connect 2 0 15 0;
-#X connect 2 1 16 0;
-#X connect 10 1 14 0;
-#X connect 11 1 13 0;
-#X connect 12 1 18 0;
-#X connect 17 0 2 0;
diff --git a/externals/gridflow/doc/flow_classes/cv/#CornerHarris-help.pd b/externals/gridflow/doc/flow_classes/cv/#CornerHarris-help.pd
deleted file mode 100644
index 6d4aaf9d..00000000
--- a/externals/gridflow/doc/flow_classes/cv/#CornerHarris-help.pd
+++ /dev/null
@@ -1,14 +0,0 @@
-#N canvas 599 185 568 336 10;
-#X obj 0 0 doc_h cv/;
-#X obj 0 307 doc_f;
-#X obj 73 53 cv/#CornerHarris;
-#X obj 3 87 doc_c 0;
-#X obj 3 127 doc_i 1;
-#X obj 14 157 doc_ii 0;
-#X obj 3 247 doc_o 1;
-#X obj 14 277 doc_oo 0;
-#X obj 97 277 doc_m o0 grid;
-#X obj 97 157 doc_m i0 grid;
-#X obj 97 197 doc_m i0 block_size;
-#X obj 97 177 doc_m i0 aperture_size;
-#X obj 97 217 doc_m i0 k;
diff --git a/externals/gridflow/doc/flow_classes/cv/#Ellipse-help.pd b/externals/gridflow/doc/flow_classes/cv/#Ellipse-help.pd
deleted file mode 100644
index be29f945..00000000
--- a/externals/gridflow/doc/flow_classes/cv/#Ellipse-help.pd
+++ /dev/null
@@ -1,24 +0,0 @@
-#N canvas 580 166 568 551 10;
-#X obj 0 0 doc_h cv/;
-#X obj 0 443 doc_f;
-#X obj 94 47 cv/#Ellipse;
-#X obj 3 81 doc_c 0;
-#X obj 3 121 doc_i 1;
-#X obj 3 361 doc_o 2;
-#X obj 14 151 doc_ii 0;
-#X obj 14 391 doc_oo 0;
-#X obj 14 411 doc_oo 1;
-#X obj 97 411 doc_m o1;
-#X obj 97 391 doc_m o0 grid;
-#X obj 97 151 doc_m i0 grid;
-#X obj 97 211 doc_m i0 center;
-#X obj 97 191 doc_m i0 axes;
-#X obj 97 171 doc_m i0 angle;
-#X obj 97 311 doc_m i0 start_angle;
-#X obj 97 251 doc_m i0 end_angle;
-#X obj 97 231 doc_m i0 color;
-#X obj 97 331 doc_m i0 thickness;
-#X obj 97 271 doc_m i0 line_type;
-#X obj 97 291 doc_m i0 shift;
-#X text 200 411 attributes;
-#X connect 9 1 21 0;
diff --git a/externals/gridflow/doc/flow_classes/cv/#Invert-help.pd b/externals/gridflow/doc/flow_classes/cv/#Invert-help.pd
deleted file mode 100644
index 095a6b4e..00000000
--- a/externals/gridflow/doc/flow_classes/cv/#Invert-help.pd
+++ /dev/null
@@ -1,32 +0,0 @@
-#N canvas 335 118 568 535 10;
-#X obj 0 0 doc_h cv/;
-#X obj 0 506 doc_f;
-#X text 88 75 just convert to grid;
-#X obj 55 157 cv/#Invert;
-#X obj 61 178 display;
-#X obj 22 75 # + (f #);
-#X msg 22 56 3 3 f # 1 2 0 3 0 4 5 6 0;
-#X obj 29 96 display;
-#X obj 3 366 doc_i 1;
-#X obj 3 426 doc_o 1;
-#X obj 3 486 doc_also;
-#X obj 100 486 cv/#SVD;
-#X obj 22 157 #t;
-#X obj 23 259 display;
-#X obj 14 396 doc_ii 0;
-#X obj 14 456 doc_oo 0;
-#X obj 3 326 doc_c;
-#X obj 97 396 doc_m i0 grid;
-#X obj 97 456 doc_m o0 grid;
-#X obj 22 239 #inner \, seed (f #);
-#X text 224 105 finds the float matrix that would cancel a given float
-matrix \, if both were to be put in [#inner] together.;
-#X connect 3 0 4 0;
-#X connect 3 0 19 1;
-#X connect 5 0 7 0;
-#X connect 5 0 12 0;
-#X connect 6 0 5 0;
-#X connect 10 1 11 0;
-#X connect 12 0 19 0;
-#X connect 12 1 3 0;
-#X connect 19 0 13 0;
diff --git a/externals/gridflow/doc/flow_classes/cv/#KMeans-help.pd b/externals/gridflow/doc/flow_classes/cv/#KMeans-help.pd
deleted file mode 100644
index 166e0aeb..00000000
--- a/externals/gridflow/doc/flow_classes/cv/#KMeans-help.pd
+++ /dev/null
@@ -1,29 +0,0 @@
-#N canvas 642 52 560 437 10;
-#X obj 20 190 #out window;
-#X obj 20 63 #in babbage.jpg;
-#X obj 20 46 bng 15 250 50 0 empty empty empty 17 7 0 10 -24198 -1
--1;
-#X obj 20 102 #cast f;
-#X obj 37 44 loadbang;
-#X obj 20 171 #inner (1 3 # 85 51 15);
-#X obj 42 150 #print;
-#X obj 102 93 #out window;
-#X msg 225 86 mode channels;
-#X obj 20 121 cv/#KMeans 8 \, termcrit (8 nil);
-#X obj 0 0 doc_h cv/;
-#X obj 3 221 doc_c 1;
-#X obj 3 280 doc_i 2;
-#X obj 3 369 doc_o 1;
-#X obj 14 304 doc_ii 0;
-#X obj 14 328 doc_ii 1;
-#X obj 14 393 doc_oo 0;
-#X obj 14 245 doc_cc 0;
-#X connect 1 0 3 0;
-#X connect 1 0 7 0;
-#X connect 2 0 1 0;
-#X connect 3 0 9 0;
-#X connect 4 0 1 0;
-#X connect 5 0 0 0;
-#X connect 8 0 9 0;
-#X connect 9 0 5 0;
-#X connect 9 0 6 0;
diff --git a/externals/gridflow/doc/flow_classes/cv/#SVD-help.pd b/externals/gridflow/doc/flow_classes/cv/#SVD-help.pd
deleted file mode 100644
index ba012df1..00000000
--- a/externals/gridflow/doc/flow_classes/cv/#SVD-help.pd
+++ /dev/null
@@ -1,44 +0,0 @@
-#N canvas 335 0 568 576 10;
-#X obj 0 0 doc_h cv/;
-#X obj 0 547 doc_f;
-#X obj 19 160 cv/#SVD;
-#X text 200 46 Singular Value Decomposition;
-#X obj 3 306 doc_c 0;
-#X obj 3 346 doc_i 1;
-#X obj 3 408 doc_o 3;
-#X obj 14 376 doc_ii 0;
-#X obj 14 438 doc_oo 0;
-#X obj 14 460 doc_oo 1;
-#X obj 14 482 doc_oo 2;
-#X obj 97 438 doc_m o0 grid;
-#X obj 97 460 doc_m o1 grid;
-#X obj 97 482 doc_m o2 grid;
-#X obj 28 88 display;
-#X text 82 65 just turn into a real grid;
-#X obj 210 161 display;
-#X obj 210 225 display;
-#X obj 20 225 display;
-#X msg 19 46 3 3 f # 1 0 0 0 2 3 0 3 -2;
-#X obj 19 65 # + (f #);
-#X text 287 89 for finding eigenvalues and eigenvectors.;
-#X obj 97 376 doc_m i0 grid;
-#X text 200 376 N by N matrix to decompose;
-#X text 200 438 N by N diagonal matrix containing eigenvalues;
-#X text 200 460 N by N matrix containing eigenvectors;
-#X text 200 482 N by N matrix containing fudge factors: typically contains
-only zeroes \, ones \, and minus ones.;
-#X obj 3 527 doc_also;
-#X obj 97 527 #extract_diagonal;
-#X obj 211 527 cv/#Invert;
-#X connect 2 0 18 0;
-#X connect 2 1 17 0;
-#X connect 2 2 16 0;
-#X connect 11 1 24 0;
-#X connect 12 1 25 0;
-#X connect 13 1 26 0;
-#X connect 19 0 20 0;
-#X connect 20 0 14 0;
-#X connect 20 0 2 0;
-#X connect 22 1 23 0;
-#X connect 27 1 28 0;
-#X connect 27 1 29 0;
diff --git a/externals/gridflow/doc/flow_classes/cv/#numop-help.pd b/externals/gridflow/doc/flow_classes/cv/#numop-help.pd
deleted file mode 100644
index d8a26a75..00000000
--- a/externals/gridflow/doc/flow_classes/cv/#numop-help.pd
+++ /dev/null
@@ -1,60 +0,0 @@
-#N canvas 683 36 568 668 10;
-#X obj 22 114 #print;
-#X msg 22 69 2 2 # 0 1 2 3;
-#X obj 22 92 cv/#Add (2 2 # 0 1 2 3);
-#X obj 22 189 #print;
-#X msg 22 144 2 2 # 0 1 2 3;
-#X obj 267 114 #print;
-#X msg 267 69 2 2 # 0 1 2 3;
-#X obj 267 191 #print;
-#X obj 22 167 cv/#Sub (2 2 # 0 1 2 3);
-#X obj 267 92 cv/#Mul (2 2 # 0 1 2 3);
-#X obj 267 169 cv/#Div (2 2 # 0 1 2 3);
-#X msg 396 146 2 2 # 0 1 42 666;
-#X msg 396 69 2 2 # 0 1 42 666;
-#X msg 151 144 2 2 # 0 1 42 666;
-#X msg 151 69 2 2 # 0 1 42 666;
-#X obj 0 0 doc_h cv/;
-#X msg 267 146 2 2 # 0 1 2 -3000;
-#X text 424 167 rounds towards zero;
-#X obj 3 412 doc_c 1;
-#X obj 14 442 doc_cc 0;
-#X obj 3 472 doc_i 2;
-#X obj 14 502 doc_ii 0;
-#X obj 14 522 doc_ii 1;
-#X obj 3 552 doc_o 1;
-#X obj 14 582 doc_oo 0;
-#X obj 0 612 doc_f;
-#X obj 22 261 #print;
-#X msg 22 213 2 2 # 0 1 2 3;
-#X msg 151 213 2 2 # 0 1 42 666;
-#X obj 22 237 cv/#And (2 2 # 0 1 2 3);
-#X obj 267 261 #print;
-#X msg 267 213 2 2 # 0 1 2 3;
-#X msg 396 213 2 2 # 0 1 42 666;
-#X obj 267 333 #print;
-#X msg 267 285 2 2 # 0 1 2 3;
-#X msg 396 285 2 2 # 0 1 42 666;
-#X obj 267 237 cv/#Or (2 2 # 0 1 2 3);
-#X obj 267 309 cv/#Xor (2 2 # 0 1 2 3);
-#X connect 1 0 2 0;
-#X connect 2 0 0 0;
-#X connect 4 0 8 0;
-#X connect 6 0 9 0;
-#X connect 8 0 3 0;
-#X connect 9 0 5 0;
-#X connect 10 0 7 0;
-#X connect 11 0 10 1;
-#X connect 12 0 9 1;
-#X connect 13 0 8 1;
-#X connect 14 0 2 1;
-#X connect 16 0 10 0;
-#X connect 27 0 29 0;
-#X connect 28 0 29 1;
-#X connect 29 0 26 0;
-#X connect 31 0 36 0;
-#X connect 32 0 36 1;
-#X connect 34 0 37 0;
-#X connect 35 0 37 1;
-#X connect 36 0 30 0;
-#X connect 37 0 33 0;
diff --git a/externals/gridflow/doc/flow_classes/display-help.pd b/externals/gridflow/doc/flow_classes/display-help.pd
deleted file mode 100644
index 9ed72fec..00000000
--- a/externals/gridflow/doc/flow_classes/display-help.pd
+++ /dev/null
@@ -1,24 +0,0 @@
-#N canvas 674 0 632 415 10;
-#X obj 90 185 display;
-#X msg 319 61 0 1 2 3 5 8 13;
-#X floatatom 319 89 5 0 0 0 - - -;
-#X obj 89 58 #color;
-#X obj 0 0 doc_h;
-#X obj 3 211 doc_c 0;
-#X obj 3 251 doc_i 1;
-#X obj 3 326 doc_o 0;
-#X obj 14 281 doc_ii 0;
-#X obj 3 366 doc_also;
-#X obj 103 366 print;
-#X obj 145 366 #print;
-#X obj 0 386 doc_f;
-#X obj 97 281 doc_m i0 <any>;
-#X text 294 142 GUI object equivalent to [print] and [#print].;
-#X text 232 281 Displays the received message in the box \, resizing
-the box so that the message fits exactly.;
-#X connect 1 0 0 0;
-#X connect 2 0 0 0;
-#X connect 3 0 0 0;
-#X connect 9 1 10 0;
-#X connect 9 1 11 0;
-#X connect 13 1 15 0;
diff --git a/externals/gridflow/doc/flow_classes/doc_add-help.pd b/externals/gridflow/doc/flow_classes/doc_add-help.pd
deleted file mode 100644
index d80f048a..00000000
--- a/externals/gridflow/doc/flow_classes/doc_add-help.pd
+++ /dev/null
@@ -1,23 +0,0 @@
-#N canvas 283 161 632 333 10;
-#X obj 0 0 doc_h;
-#X obj 0 304 doc_f;
-#X obj 108 45 doc_add;
-#X obj 3 154 doc_i 2;
-#X obj 3 264 doc_o 0;
-#X obj 14 184 doc_ii 0;
-#X obj 14 219 doc_ii 1;
-#X obj 97 219 doc_m i1 float;
-#X obj 97 184 doc_m i0 bang;
-#X obj 3 92 doc_c 1;
-#X obj 14 122 doc_cc 0;
-#X obj 97 122 doc_m c0 symbol;
-#X text 195 37 add one [doc_m] to a given subsection.;
-#X text 194 57 for use by [doc_c] [doc_i] [doc_o] only.;
-#X text 232 184 add one [doc_m] with a blank \$2 (will show up as "~unspecified~")
-;
-#X text 232 219 y position of top of the parent (as given by outlet
-1 of [doc_layout]);
-#X text 232 122 subsection id \, such as "c0" \, "i3" or "oany".;
-#X connect 7 1 15 0;
-#X connect 8 1 14 0;
-#X connect 11 1 16 0;
diff --git a/externals/gridflow/doc/flow_classes/doc_also-help.pd b/externals/gridflow/doc/flow_classes/doc_also-help.pd
deleted file mode 100644
index c88d7e85..00000000
--- a/externals/gridflow/doc/flow_classes/doc_also-help.pd
+++ /dev/null
@@ -1,18 +0,0 @@
-#N canvas 383 90 632 297 10;
-#X obj 0 0 doc_h;
-#X obj 0 268 doc_f;
-#X obj 3 84 doc_c 0;
-#X obj 3 124 doc_i 0;
-#X text 173 46 an auto-positioning documentation footer.;
-#X obj 3 164 doc_o 2;
-#X obj 14 194 doc_oo 0;
-#X obj 14 216 doc_oo 1;
-#X obj 97 194 doc_m o0 <none>;
-#X obj 97 216 doc_m o1 <evil>;
-#X text 232 194 this outlet is unused;
-#X text 232 216 this outlet is reserved for evil purposes;
-#X obj 3 248 doc_also;
-#X text 103 248 [doc_f];
-#X connect 8 1 10 0;
-#X connect 9 1 11 0;
-#X connect 12 1 13 0;
diff --git a/externals/gridflow/doc/flow_classes/doc_below-help.pd b/externals/gridflow/doc/flow_classes/doc_below-help.pd
deleted file mode 100644
index b4ac21cb..00000000
--- a/externals/gridflow/doc/flow_classes/doc_below-help.pd
+++ /dev/null
@@ -1,40 +0,0 @@
-#N canvas 335 118 632 420 10;
-#X obj 0 0 doc_h;
-#X obj 0 391 doc_f;
-#X obj 102 50 doc_below;
-#X obj 3 95 doc_c 3;
-#X obj 3 223 doc_i 3;
-#X obj 3 329 doc_o 1;
-#X obj 14 359 doc_oo 0;
-#X obj 14 253 doc_ii 0;
-#X obj 14 275 doc_ii 1;
-#X obj 14 297 doc_ii 2;
-#X obj 14 125 doc_cc 0;
-#X obj 14 147 doc_cc 1;
-#X obj 14 191 doc_cc 2;
-#X obj 97 297 doc_m i2;
-#X obj 97 253 doc_m i0 list;
-#X obj 97 359 doc_m o0 list;
-#X obj 97 125 doc_m c0 symbol;
-#X obj 97 275 doc_m i1 symbol;
-#X text 232 275 same as arg 0;
-#X text 232 297 same as arg 1;
-#X obj 97 191 doc_m c2 float;
-#X obj 97 147 doc_m c1 float;
-#X text 232 147 0: just this node;
-#X text 232 169 1: recursively;
-#X text 218 41 this is to appear directly in the body of an element
-that appears in a help patch (there should be no subpatches involved
-in this case \, because of the uplevels);
-#X text 232 125 relative name such as c/0 or o/any/float;
-#X text 232 191 extra padding in pixels;
-#X text 232 253 (x y) to transform;
-#X text 232 359 (x y) \, usually the same as what came in.;
-#X connect 13 1 19 0;
-#X connect 14 1 27 0;
-#X connect 15 1 28 0;
-#X connect 16 1 25 0;
-#X connect 17 1 18 0;
-#X connect 20 1 26 0;
-#X connect 21 1 22 0;
-#X connect 21 1 23 0;
diff --git a/externals/gridflow/doc/flow_classes/doc_bottom-help.pd b/externals/gridflow/doc/flow_classes/doc_bottom-help.pd
deleted file mode 100644
index b17f8b4a..00000000
--- a/externals/gridflow/doc/flow_classes/doc_bottom-help.pd
+++ /dev/null
@@ -1,27 +0,0 @@
-#N canvas 335 118 632 372 10;
-#X obj 0 0 doc_h;
-#X obj 0 343 doc_f;
-#X obj 114 54 doc_bottom;
-#X obj 3 162 doc_i 2;
-#X obj 3 281 doc_o 1;
-#X obj 14 311 doc_oo 0;
-#X obj 14 192 doc_ii 0;
-#X obj 14 236 doc_ii 1;
-#X obj 97 311 doc_m o0 float;
-#X text 232 311 y position;
-#X obj 97 236 doc_m i1 symbol;
-#X obj 97 192 doc_m i0 float;
-#X obj 97 214 doc_m i0 before;
-#X text 232 192 y position;
-#X obj 3 100 doc_c 1;
-#X obj 14 130 doc_cc 0;
-#X obj 97 130 doc_m c0 float;
-#X text 232 130 0 or 1 whether to use the "before" directive.;
-#X text 232 214 used for sorting by name (id);
-#X text 232 236 node whose direct children should be queried (specified
-without the \$0);
-#X connect 8 1 9 0;
-#X connect 10 1 19 0;
-#X connect 11 1 13 0;
-#X connect 12 1 18 0;
-#X connect 16 1 17 0;
diff --git a/externals/gridflow/doc/flow_classes/doc_c-help.pd b/externals/gridflow/doc/flow_classes/doc_c-help.pd
deleted file mode 100644
index 2362e2e8..00000000
--- a/externals/gridflow/doc/flow_classes/doc_c-help.pd
+++ /dev/null
@@ -1,17 +0,0 @@
-#N canvas 335 118 632 258 10;
-#X obj 0 0 doc_h;
-#X obj 0 229 doc_f;
-#X text 146 38 an auto-positioning documentation header;
-#X obj 3 67 doc_c 1;
-#X obj 3 129 doc_i 0;
-#X obj 3 169 doc_o 0;
-#X obj 14 97 doc_cc 0;
-#X obj 97 97 doc_m c0 float;
-#X text 232 97 number of creation arguments in the class being documented.
-;
-#X obj 3 209 doc_also;
-#X text 103 209 [doc_i];
-#X text 157 209 [doc_o];
-#X connect 7 1 8 0;
-#X connect 9 1 10 0;
-#X connect 9 1 11 0;
diff --git a/externals/gridflow/doc/flow_classes/doc_cc-help.pd b/externals/gridflow/doc/flow_classes/doc_cc-help.pd
deleted file mode 100644
index 041cf718..00000000
--- a/externals/gridflow/doc/flow_classes/doc_cc-help.pd
+++ /dev/null
@@ -1,15 +0,0 @@
-#N canvas 335 118 632 242 10;
-#X obj 0 0 doc_h;
-#X obj 3 73 doc_c;
-#X obj 3 113 doc_i;
-#X obj 3 153 doc_o;
-#X obj 0 213 doc_f;
-#X text 144 35 auto-positioning documentation subheader for a specific
-creation argument.;
-#X obj 3 193 doc_also;
-#X text 103 193 [doc_c];
-#X text 157 193 [doc_ii];
-#X text 217 193 [doc_oo];
-#X connect 6 1 7 0;
-#X connect 6 1 8 0;
-#X connect 6 1 9 0;
diff --git a/externals/gridflow/doc/flow_classes/doc_editmode-help.pd b/externals/gridflow/doc/flow_classes/doc_editmode-help.pd
deleted file mode 100644
index 3c69aa5d..00000000
--- a/externals/gridflow/doc/flow_classes/doc_editmode-help.pd
+++ /dev/null
@@ -1,16 +0,0 @@
-#N canvas 451 192 632 304 10;
-#X obj 0 0 doc_h;
-#X obj 0 275 doc_f;
-#X obj 103 51 doc_editmode;
-#X obj 3 113 doc_c 0;
-#X obj 3 153 doc_i 2;
-#X obj 3 235 doc_o 0;
-#X obj 14 183 doc_ii 0;
-#X obj 14 203 doc_ii 1;
-#X obj 97 183 doc_m i0 float;
-#X obj 97 203 doc_m i1 float;
-#X text 200 182 x position of the button to manage;
-#X text 232 203 1: also manage the rectangle;
-#X text 226 50 used for handling the changes that happen when switching
-from and to edit mode in GridFlow's documentation.;
-#X connect 9 1 11 0;
diff --git a/externals/gridflow/doc/flow_classes/doc_exist-help.pd b/externals/gridflow/doc/flow_classes/doc_exist-help.pd
deleted file mode 100644
index aaf53a39..00000000
--- a/externals/gridflow/doc/flow_classes/doc_exist-help.pd
+++ /dev/null
@@ -1,26 +0,0 @@
-#N canvas 215 276 632 354 10;
-#X obj 0 0 doc_h;
-#X obj 0 325 doc_f;
-#X obj 116 44 doc_exist;
-#X obj 3 82 doc_c 1;
-#X obj 3 157 doc_i 2;
-#X obj 3 241 doc_o 1;
-#X obj 14 271 doc_oo 0;
-#X obj 14 187 doc_ii 0;
-#X obj 14 209 doc_ii 1;
-#X obj 14 112 doc_cc 0;
-#X obj 97 112 doc_m c0 symbol;
-#X text 232 112 relative name of object to be checked for. the \$0
-of the parent will be automatically added (with a slash).;
-#X obj 97 187 doc_m i0 bang;
-#X obj 97 209 doc_m i1 symbol;
-#X text 232 209 same as arg 0;
-#X obj 97 271 doc_m o0 float;
-#X text 232 187 perform a check and output the result;
-#X text 232 271 0: not found;
-#X text 232 293 1: found;
-#X connect 10 1 11 0;
-#X connect 12 1 16 0;
-#X connect 13 1 14 0;
-#X connect 15 1 17 0;
-#X connect 15 1 18 0;
diff --git a/externals/gridflow/doc/flow_classes/doc_f-help.pd b/externals/gridflow/doc/flow_classes/doc_f-help.pd
deleted file mode 100644
index 3c210670..00000000
--- a/externals/gridflow/doc/flow_classes/doc_f-help.pd
+++ /dev/null
@@ -1,7 +0,0 @@
-#N canvas 335 118 632 227 10;
-#X obj 0 0 doc_h;
-#X obj 0 198 doc_f;
-#X obj 3 78 doc_c 0;
-#X obj 3 118 doc_i 0;
-#X obj 3 158 doc_o 0;
-#X text 173 46 an auto-positioning documentation footer.;
diff --git a/externals/gridflow/doc/flow_classes/doc_h-help.pd b/externals/gridflow/doc/flow_classes/doc_h-help.pd
deleted file mode 100644
index 00b71c86..00000000
--- a/externals/gridflow/doc/flow_classes/doc_h-help.pd
+++ /dev/null
@@ -1,13 +0,0 @@
-#N canvas 409 226 632 269 10;
-#X obj 0 0 doc_h;
-#X obj 0 240 doc_f;
-#X text 126 40 an auto-positioning documentation header;
-#X obj 3 160 doc_i 0;
-#X obj 3 200 doc_o 0;
-#X obj 3 72 doc_c 1;
-#X obj 14 102 doc_cc 0;
-#X obj 97 102 doc_m c0 symbol;
-#X text 232 102 namespace prefix (can't be figured out automatically
-for now). must include trailing slash. hopefully this is a temporary
-measure.;
-#X connect 7 1 8 0;
diff --git a/externals/gridflow/doc/flow_classes/doc_i-help.pd b/externals/gridflow/doc/flow_classes/doc_i-help.pd
deleted file mode 100644
index ba2cbbcb..00000000
--- a/externals/gridflow/doc/flow_classes/doc_i-help.pd
+++ /dev/null
@@ -1,10 +0,0 @@
-#N canvas 454 262 632 251 10;
-#X obj 0 0 doc_h;
-#X obj 0 222 doc_f;
-#X obj 3 80 doc_c 1;
-#X obj 3 142 doc_i 0;
-#X obj 3 182 doc_o 0;
-#X obj 14 110 doc_cc 0;
-#X obj 97 110 doc_m c0 float;
-#X text 232 110 number of inlets in the class being documented;
-#X connect 6 1 7 0;
diff --git a/externals/gridflow/doc/flow_classes/doc_ii-help.pd b/externals/gridflow/doc/flow_classes/doc_ii-help.pd
deleted file mode 100644
index 9858cce7..00000000
--- a/externals/gridflow/doc/flow_classes/doc_ii-help.pd
+++ /dev/null
@@ -1,15 +0,0 @@
-#N canvas 335 118 632 260 10;
-#X obj 0 0 doc_h;
-#X obj 3 91 doc_c;
-#X obj 3 131 doc_i;
-#X obj 3 171 doc_o;
-#X obj 0 231 doc_f;
-#X text 132 41 auto-positioning documentation subheader for a specific
-inlet.;
-#X text 103 211 doc_i;
-#X text 145 211 doc_cc;
-#X text 193 211 doc_oo;
-#X obj 3 211 doc_also;
-#X connect 9 1 6 0;
-#X connect 9 1 7 0;
-#X connect 9 1 8 0;
diff --git a/externals/gridflow/doc/flow_classes/doc_layout-help.pd b/externals/gridflow/doc/flow_classes/doc_layout-help.pd
deleted file mode 100644
index 6ddf5154..00000000
--- a/externals/gridflow/doc/flow_classes/doc_layout-help.pd
+++ /dev/null
@@ -1,46 +0,0 @@
-#N canvas 335 118 632 473 10;
-#X obj 0 0 doc_h;
-#X obj 0 444 doc_f;
-#X obj 3 91 doc_c 4;
-#X obj 14 121 doc_cc 0;
-#X obj 14 156 doc_cc 1;
-#X obj 14 178 doc_cc 2;
-#X obj 14 200 doc_cc 3;
-#X obj 97 200 doc_m c3 symbol;
-#X text 232 200 parent;
-#X text 232 178 height;
-#X text 232 156 width;
-#X text 232 121 relative id \, such as c0/hello \, to which the parent's
-\$0 will be automatically prefixed (with an extra slash);
-#X obj 3 232 doc_i 2;
-#X obj 3 360 doc_o 2;
-#X obj 14 390 doc_oo 0;
-#X obj 14 412 doc_oo 1;
-#X obj 97 390 doc_m o0 <none>;
-#X text 232 412 current (x y) position of the object;
-#X obj 97 412 doc_m o1 list;
-#X obj 97 328 doc_m i1 list;
-#X text 232 328 new (x y) position after processing the output of outlet
-1;
-#X obj 97 284 doc_m i0 name;
-#X obj 97 306 doc_m i0 parent;
-#X obj 97 262 doc_m i0 height;
-#X text 232 262 same as arg 2;
-#X text 232 284 same as arg 0;
-#X text 232 306 same as arg 3;
-#X obj 14 262 doc_ii 0;
-#X obj 14 328 doc_ii 1;
-#X obj 97 156 doc_m c1 float;
-#X obj 97 178 doc_m c2 float;
-#X obj 97 121 doc_m c0 symbol;
-#X text 109 49 used by all [doc_...] abstractions for their own positioning
-;
-#X connect 7 1 8 0;
-#X connect 18 1 17 0;
-#X connect 19 1 20 0;
-#X connect 21 1 25 0;
-#X connect 22 1 26 0;
-#X connect 23 1 24 0;
-#X connect 29 1 10 0;
-#X connect 30 1 9 0;
-#X connect 31 1 11 0;
diff --git a/externals/gridflow/doc/flow_classes/doc_m-help.pd b/externals/gridflow/doc/flow_classes/doc_m-help.pd
deleted file mode 100644
index 3a955e48..00000000
--- a/externals/gridflow/doc/flow_classes/doc_m-help.pd
+++ /dev/null
@@ -1,78 +0,0 @@
-#N canvas 335 0 632 700 10;
-#X obj 0 0 doc_h;
-#X obj 0 1031 doc_f;
-#X obj 3 347 doc_c 2;
-#X obj 3 911 doc_i 0;
-#X obj 3 951 doc_o 2;
-#X obj 14 981 doc_oo 0;
-#X obj 14 1001 doc_oo 1;
-#X obj 14 377 doc_cc 0;
-#X obj 14 425 doc_cc 1;
-#X obj 97 377 doc_m c0 symbol;
-#X obj 97 425 doc_m c1 symbol;
-#X text 232 377 code for associating to a specific [doc_c] \, [doc_i]
-or [doc_o]. for example \, to associate with [doc_c 3] \, the code
-is c3;
-#X text 232 425 in the case of [doc_i] or [doc_o] \, this is either
-a selector or a meta-selector.;
-#X text 232 556 the sorting order of [doc_m] elements in a given subsection
-is alphabetical except for those five at the beginning: bang \, float
-\, grid \, symbol \, pointer \, list. and this one at the very end:
-<any>.;
-#X text 232 617 a list of meta-selectors:;
-#X text 232 639 <any>: represents the anything-method;
-#X text 232 661 <none>: is for writing anything of interest (?) about
-nothing at all. when present \, this is usually the only entry in the
-given subsection \, and it usually just says that the inlet or outlet
-is meant to be useless. typically \, no messages are accepted in the
-inlet \, or else \, all messages are accepted without doing anything
-with them \, or in the case of outlet \, nothing ever comes out of
-it.;
-#X text 232 796 <evil>: is like <none> \, except that the outlet that
-bears it will do weird things to the object it gets connected to. things
-that are very different from sending mere messages.;
-#X text 232 866 <hpgl>: this stands for a pd message version of the
-HPGL protocol.;
-#X text 232 460 in the case of [doc_c] \, we're just faking that this
-is a selector \, but you better only use atom types here: float \,
-grid \, symbol \, pointer \, <atom>.;
-#X text 232 844 <atom>: this stands for float \, grid \, symbol \,
-or pointer.;
-#X obj 97 981 doc_m o0 <none>;
-#X obj 97 1001 doc_m o1 <evil>;
-#X text 232 761 <gone>: is like none \, except the inlet or outlet
-is completely missing.;
-#X text 190 37 style guide for comments:;
-#X text 190 59 do not say "accepts a grid that will do blah blah" \,
-because all methods are accepting messages anyway. but do not say "a
-grid that will do blah blah" \, because "grid" is already specified
-by the [doc_m]. in some sentence structures it will be clearer to say
-"the grid" in some places rather than not.;
-#X text 232 508 a meta-selector is a name written within <> marks.
-those represent special things that aren't really selectors \, as well
-as sets of several selectors (or of many of them).;
-#X text 190 142 say "image that will do blah blah" if an image is expected
-\, but note that not so many objects really require images as inputs.
-;
-#X text 192 186 there is also a difference between hard limitations
-\, and expected interpretations. for example \, if we say "an rgb image"
-and mean it and are right about it \, then only 3-dimensional grids
-will be accepted \, and only those with 3 elements in the last dimension
-will be accepted \, but it is up to us to think of that last dimension
-to represent rgb \, it is up to us to think that this last dimension
-is channels \, and that the other dimensions are rows and columns.
-however \, to ease the reading \, thinks like "(rows columns 3)" and
-"rgb image" will be said even though much of GridFlow itself doesn't
-care about it.;
-#X connect 9 1 11 0;
-#X connect 10 1 12 0;
-#X connect 10 1 26 0;
-#X connect 10 1 13 0;
-#X connect 10 1 14 0;
-#X connect 10 1 15 0;
-#X connect 10 1 16 0;
-#X connect 10 1 17 0;
-#X connect 10 1 18 0;
-#X connect 10 1 19 0;
-#X connect 10 1 20 0;
-#X connect 10 1 23 0;
diff --git a/externals/gridflow/doc/flow_classes/doc_make-help.pd b/externals/gridflow/doc/flow_classes/doc_make-help.pd
deleted file mode 100644
index 422e889c..00000000
--- a/externals/gridflow/doc/flow_classes/doc_make-help.pd
+++ /dev/null
@@ -1,25 +0,0 @@
-#N canvas 543 148 632 330 10;
-#X obj 0 0 doc_h;
-#X obj 0 301 doc_f;
-#X obj 93 51 doc_make;
-#X obj 3 177 doc_i 2;
-#X obj 3 261 doc_o 0;
-#X obj 14 207 doc_ii 0;
-#X obj 14 229 doc_ii 1;
-#X obj 14 123 doc_cc 0;
-#X obj 97 123 doc_m c0 symbol id;
-#X text 232 123 something like c0 \, i0 \, o0 \, just like the \$1
-of [doc_m];
-#X obj 97 207 doc_m i0 bang;
-#X obj 97 229 doc_m i1 float;
-#X text 232 207 generate subsections;
-#X obj 3 93 doc_c 2;
-#X obj 14 145 doc_cc 1;
-#X obj 97 145 doc_m c1 float;
-#X text 232 145 how many subsections;
-#X text 232 229 starting position of new subsections;
-#X text 169 51 reserved for use by [doc_c] \, [doc_i] and [doc_o];
-#X connect 8 1 9 0;
-#X connect 10 1 12 0;
-#X connect 11 1 17 0;
-#X connect 15 1 16 0;
diff --git a/externals/gridflow/doc/flow_classes/doc_o-help.pd b/externals/gridflow/doc/flow_classes/doc_o-help.pd
deleted file mode 100644
index 4481e7a5..00000000
--- a/externals/gridflow/doc/flow_classes/doc_o-help.pd
+++ /dev/null
@@ -1,11 +0,0 @@
-#N canvas 565 290 632 249 10;
-#X obj 0 0 doc_h;
-#X obj 0 220 doc_f;
-#X text 173 43 an auto-positioning documentation header;
-#X obj 3 78 doc_c 1;
-#X obj 3 140 doc_i 0;
-#X obj 14 108 doc_cc 0;
-#X obj 3 180 doc_o 0;
-#X obj 97 108 doc_m c0 float;
-#X text 232 108 number of outlets in the class being documented;
-#X connect 7 1 8 0;
diff --git a/externals/gridflow/doc/flow_classes/doc_oo-help.pd b/externals/gridflow/doc/flow_classes/doc_oo-help.pd
deleted file mode 100644
index 9ad3e905..00000000
--- a/externals/gridflow/doc/flow_classes/doc_oo-help.pd
+++ /dev/null
@@ -1,15 +0,0 @@
-#N canvas 546 210 632 258 10;
-#X obj 0 0 doc_h;
-#X obj 0 229 doc_f;
-#X text 103 209 doc_ii;
-#X text 151 209 doc_cc;
-#X text 199 209 doc_o;
-#X obj 3 89 doc_c 1;
-#X obj 3 129 doc_i 0;
-#X obj 3 169 doc_o 0;
-#X text 129 45 auto-positioning documentation subheader for a specific
-outlet.;
-#X obj 3 209 doc_also;
-#X connect 9 1 2 0;
-#X connect 9 1 3 0;
-#X connect 9 1 4 0;
diff --git a/externals/gridflow/doc/flow_classes/for-help.pd b/externals/gridflow/doc/flow_classes/for-help.pd
deleted file mode 100644
index 8868e367..00000000
--- a/externals/gridflow/doc/flow_classes/for-help.pd
+++ /dev/null
@@ -1,56 +0,0 @@
-#N canvas 480 175 632 542 10;
-#X obj 41 115 print;
-#X obj 41 73 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X text 40 135 should print 10 23 36 49 62 75 88 101;
-#X obj 41 91 for 10 114 13;
-#X obj 0 0 doc_h;
-#X obj 3 179 doc_c 3;
-#X obj 3 285 doc_i 3;
-#X obj 3 433 doc_o 1;
-#X obj 14 315 doc_ii 0;
-#X obj 14 379 doc_ii 1;
-#X obj 14 401 doc_ii 2;
-#X obj 14 463 doc_oo 0;
-#X obj 14 209 doc_cc 0;
-#X obj 14 231 doc_cc 1;
-#X obj 14 253 doc_cc 2;
-#X obj 0 513 doc_f;
-#X obj 97 463 doc_m o0 float;
-#X obj 97 401 doc_m i2 float;
-#X obj 97 379 doc_m i1 float;
-#X obj 97 335 doc_m i0 float;
-#X obj 97 357 doc_m i0 set;
-#X obj 97 315 doc_m i0 bang;
-#X obj 3 493 doc_also;
-#X obj 103 493 #for 0 0 1;
-#X obj 175 493 until;
-#X obj 97 209 doc_m c0 float;
-#X obj 97 231 doc_m c1 float;
-#X obj 97 253 doc_m c2 float;
-#X text 232 209 from;
-#X text 232 231 to;
-#X text 232 253 step;
-#X text 232 379 same as arg 1;
-#X text 232 401 same as arg 2;
-#X text 232 357 same as arg 0;
-#X text 232 335 same as set \$1 \, bang;
-#X text 41 151 note that 114 should not be included!;
-#X text 192 42 count from a value to another value. the latter value
-is excluded \, such that [for 0 10 1] and for [10 20 1] have no common
-outputs.;
-#X msg 72 68 set 0;
-#X msg 71 42 5;
-#X connect 1 0 3 0;
-#X connect 3 0 0 0;
-#X connect 17 1 32 0;
-#X connect 18 1 31 0;
-#X connect 19 1 34 0;
-#X connect 20 1 33 0;
-#X connect 22 1 23 0;
-#X connect 22 1 24 0;
-#X connect 25 1 28 0;
-#X connect 26 1 29 0;
-#X connect 27 1 30 0;
-#X connect 37 0 3 0;
-#X connect 38 0 3 0;
diff --git a/externals/gridflow/doc/flow_classes/foreach-help.pd b/externals/gridflow/doc/flow_classes/foreach-help.pd
deleted file mode 100644
index a7f5ff02..00000000
--- a/externals/gridflow/doc/flow_classes/foreach-help.pd
+++ /dev/null
@@ -1,19 +0,0 @@
-#N canvas 635 118 632 307 10;
-#X obj 0 0 doc_h;
-#X obj 31 51 foreach;
-#X obj 3 96 doc_c 0;
-#X obj 3 136 doc_i 1;
-#X obj 14 166 doc_ii 0;
-#X obj 97 166 doc_m i0 list;
-#X obj 3 198 doc_o 1;
-#X obj 14 228 doc_oo 0;
-#X text 232 166 Outputs N messages \, one per list element \, in order.
-;
-#X obj 0 278 doc_f;
-#X obj 97 228 doc_m o0 <atom>;
-#X obj 3 258 doc_also;
-#X obj 103 258 drip 0;
-#X text 183 49 split a message into separate atoms and output them
-all.;
-#X connect 5 1 8 0;
-#X connect 11 1 12 0;
diff --git a/externals/gridflow/doc/flow_classes/fps-help.pd b/externals/gridflow/doc/flow_classes/fps-help.pd
deleted file mode 100644
index 55ab816e..00000000
--- a/externals/gridflow/doc/flow_classes/fps-help.pd
+++ /dev/null
@@ -1,71 +0,0 @@
-#N canvas 648 0 632 642 10;
-#X obj 0 0 doc_h;
-#X obj 27 52 fps;
-#X obj 3 94 doc_c 1;
-#X obj 14 124 doc_cc 0;
-#X obj 97 124 doc_m c0 symbol;
-#X obj 3 178 doc_i 1;
-#X obj 14 208 doc_ii 0;
-#X obj 97 208 doc_m i0 bang;
-#X obj 97 291 doc_m i0 detailed;
-#X obj 97 335 doc_m i0 mode;
-#X obj 97 467 doc_m i0 period;
-#X obj 3 521 doc_o 1;
-#X obj 14 551 doc_oo 0;
-#X obj 97 551 doc_m o0 float;
-#X obj 97 573 doc_m o0 list;
-#X text 232 423 "logical" uses [timer];
-#X text 232 445 "process" uses [cputime];
-#X text 232 401 "cpu" uses [tsctime];
-#X text 232 335 "real" uses [realtime];
-#X text 232 357 "user" uses [usertime];
-#X text 232 379 "system" uses [systemtime];
-#X obj 3 666 doc_also;
-#X obj 103 666 realtime;
-#X obj 163 666 usertime;
-#X obj 223 666 systemtime;
-#X obj 295 666 tsctime;
-#X obj 349 666 timer;
-#X obj 391 666 cputime;
-#X text 232 208 Times at which bangs are received are stored until
-a large enough sample of those is accumulated. Large enough is defined
-to be whenever the timespan exceeds one second. Then a report is made
-through the outlet.;
-#X text 232 489 exceptionally \, anything else gets ignored.;
-#X text 232 551 (terse) this is the messages-per-second rating.;
-#X text 232 573 (detailed) this is: messages-per-second \, followed
-by five values of milliseconds-per-message: minimum \, median \, maximum
-\, average \, standard deviation.;
-#X text 232 621 (the average happens to be simply 1000 divided by the
-messages-per-second \, but it is convenient to have it anyway);
-#X obj 0 686 doc_f;
-#X obj 97 489 doc_m i0 <any>;
-#X text 232 146 "detailed": see outlet 0 list;
-#X text 232 124 "terse": see outlet 0 float;
-#X text 232 313 1: same as arg 0 detailed;
-#X text 232 291 0: same as arg 0 terse;
-#X text 232 467 minimum time between updates;
-#X text 185 52 measures frames per second... or bangs per second in
-general;
-#X connect 4 1 36 0;
-#X connect 4 1 35 0;
-#X connect 7 1 28 0;
-#X connect 8 1 37 0;
-#X connect 8 1 38 0;
-#X connect 9 1 18 0;
-#X connect 9 1 19 0;
-#X connect 9 1 20 0;
-#X connect 9 1 17 0;
-#X connect 9 1 15 0;
-#X connect 9 1 16 0;
-#X connect 10 1 39 0;
-#X connect 13 1 30 0;
-#X connect 14 1 32 0;
-#X connect 14 1 31 0;
-#X connect 21 1 22 0;
-#X connect 21 1 23 0;
-#X connect 21 1 24 0;
-#X connect 21 1 25 0;
-#X connect 21 1 26 0;
-#X connect 21 1 27 0;
-#X connect 34 1 29 0;
diff --git a/externals/gridflow/doc/flow_classes/gf.oneshot-help.pd b/externals/gridflow/doc/flow_classes/gf.oneshot-help.pd
deleted file mode 100644
index f207434d..00000000
--- a/externals/gridflow/doc/flow_classes/gf.oneshot-help.pd
+++ /dev/null
@@ -1,42 +0,0 @@
-#N canvas 680 22 632 504 10;
-#X text 29 34 Like [spigot] \, but turns itself off after each message
-\, so you have to turn it on again to making it pass another message.
-;
-#X msg 195 125 1;
-#X obj 171 125 bng 15 250 50 0 empty empty empty 0 -6 0 8 -24198 -1
--1;
-#X msg 127 88 test;
-#X obj 127 199 print;
-#X floatatom 168 90 5 0 0 0 - - -;
-#X floatatom 171 200 5 0 0 0 - - -;
-#X text 232 125 <-- both will reset the object;
-#X text 232 441 Outputs incoming message.;
-#X text 232 366 Resets the object so that the next mesage will be passed
-through.;
-#X obj 127 159 gf.oneshot;
-#X obj 3 301 doc_i 2;
-#X obj 0 0 doc_h;
-#X obj 14 366 doc_ii 1;
-#X obj 14 441 doc_oo 0;
-#X obj 3 411 doc_o 1;
-#X obj 14 331 doc_ii 0;
-#X obj 3 239 doc_c 1;
-#X obj 14 269 doc_cc 0;
-#X text 232 269 Whether to start open (default: 1);
-#X text 232 331 Incoming messages can be Grids \, Symbols \, Integers
-\, Lists \, etc.;
-#X obj 0 473 doc_f;
-#X obj 97 269 doc_m c0 bool;
-#X obj 97 366 doc_m i1 bang;
-#X obj 97 441 doc_m o0 <any>;
-#X obj 97 331 doc_m i0 <any>;
-#X connect 1 0 10 1;
-#X connect 2 0 10 1;
-#X connect 3 0 10 0;
-#X connect 5 0 10 0;
-#X connect 10 0 4 0;
-#X connect 10 0 6 0;
-#X connect 22 1 19 0;
-#X connect 23 1 9 0;
-#X connect 24 1 8 0;
-#X connect 25 1 20 0;
diff --git a/externals/gridflow/doc/flow_classes/hpgl_find_bbox-help.pd b/externals/gridflow/doc/flow_classes/hpgl_find_bbox-help.pd
deleted file mode 100644
index 758f6560..00000000
--- a/externals/gridflow/doc/flow_classes/hpgl_find_bbox-help.pd
+++ /dev/null
@@ -1,21 +0,0 @@
-#N canvas 335 118 632 322 10;
-#X obj 0 293 doc_f;
-#X obj 0 0 doc_h;
-#X obj 94 48 hpgl_find_bbox;
-#X obj 3 81 doc_c 0;
-#X obj 3 121 doc_i 2;
-#X obj 3 231 doc_o 1;
-#X obj 14 151 doc_ii 0;
-#X obj 14 173 doc_ii 1;
-#X obj 14 261 doc_oo 0;
-#X obj 97 151 doc_m i0 <hpgl>;
-#X obj 97 173 doc_m i1 bang;
-#X obj 97 261 doc_m o0 grid;
-#X text 232 261 (2 2)-grid representing bounding box.;
-#X text 232 151 HPGL stream to find the bounding box of.;
-#X text 232 173 outputs the bounding box of all coordinates used so
-far in PA \, PD \, PU commands. if no such coordinates have been used
-so far \, it will output funny nonsense values instead.;
-#X connect 9 1 13 0;
-#X connect 10 1 14 0;
-#X connect 11 1 12 0;
diff --git a/externals/gridflow/doc/flow_classes/hpgl_font_render-help.pd b/externals/gridflow/doc/flow_classes/hpgl_font_render-help.pd
deleted file mode 100644
index 2764f4a5..00000000
--- a/externals/gridflow/doc/flow_classes/hpgl_font_render-help.pd
+++ /dev/null
@@ -1,178 +0,0 @@
-#N canvas 604 0 632 642 10;
-#X obj 215 53 until;
-#X obj 215 36 bng 15 250 50 0 empty empty empty 17 7 0 10 -24198 -1
--1;
-#X obj 148 36 tgl 15 0 empty empty empty 17 7 0 10 -24198 -1 -1 0 1
-;
-#X msg 222 77 rewind;
-#X obj 312 171 print bogus;
-#X obj 112 317 loadbang;
-#X obj 220 171 print command;
-#X obj 132 256 #store;
-#X obj 303 195 loadbang;
-#X obj 220 152 spigot;
-#X obj 266 153 tgl 15 0 empty empty empty 17 7 0 10 -241291 -1 -1 0
-1;
-#X obj 33 503 fps;
-#X obj 306 38 bng 15 250 50 0 empty empty empty 17 7 0 10 -258699 -1
--1;
-#X obj 148 53 metro 1;
-#X obj 224 382 #pack;
-#X obj 254 366 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -8 0 10
--241291 -1 -1 0 256;
-#X obj 224 350 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -8 0 10
--241291 -1 -1 0 256;
-#X obj 280 382 #pack;
-#X obj 310 366 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -8 0 10
--241291 -1 -1 750 256;
-#X obj 280 350 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -8 0 10
--241291 -1 -1 1000 256;
-#X obj 109 283 gf.oneshot;
-#X obj 132 200 t b b;
-#X obj 33 522 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10
--225271 -1 -1 0 256;
-#X obj 33 192 gf.oneshot;
-#X obj 63 156 bng 15 250 50 0 empty empty empty 17 7 0 10 -24198 -1
--1;
-#X obj 63 173 t b b;
-#X obj 98 364 #draw_hpgl;
-#X obj 33 484 #out window;
-#X obj 130 157 f;
-#X obj 155 157 + 1;
-#X obj 130 176 sel;
-#X text 362 35 TODO: look for bug in [#in grid] code...;
-#X obj 215 131 plotter_parser;
-#X obj 312 152 spigot;
-#X obj 358 153 tgl 15 0 empty empty empty 17 7 0 10 -241291 -1 -1 0
-1;
-#X obj 128 440 # >> 4;
-#X msg 112 336 3 # 255 255 255;
-#X msg 303 214 480 640 3 #;
-#X obj 63 463 #gamma;
-#X obj 109 465 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -8 0 10
--241291 -1 -1 350 256;
-#X obj 128 402 #convolve (3 3 # 0 1 0 1 12 1);
-#X obj 128 421 # + 7;
-#X obj 98 440 t a;
-#X obj 137 384 tgl 15 0 empty empty empty 17 7 0 10 -241291 -1 -1 0
-1;
-#X obj 143 229 t a a;
-#X obj 33 444 shunt;
-#X obj 72 445 tgl 15 0 empty empty empty 17 7 0 10 -241291 -1 -1 0
-1;
-#X obj 98 383 shunt;
-#X obj 221 287 hpgl_find_bbox;
-#X obj 311 288 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
--1 -1;
-#X obj 221 306 #to_list;
-#X msg 221 325 PU \$1 \$2 \, PD \$3 \$2 \$3 \$4 \$1 \$4 \$1 \$2;
-#X obj 215 99 #in grid lots_of_text.hpgl \, headerless \, type b;
-#X obj 148 72 t b b b b;
-#X obj 215 252 hpgl_font_render images/hershey \, spacing 10 \, scaling
-0.12 \, rowheight 54 \, wrap 666;
-#X obj 155 176 % 16;
-#X obj 0 0 doc_h;
-#X obj 3 555 doc_c 1;
-#X obj 3 617 doc_i 2;
-#X obj 3 701 doc_o 1;
-#X obj 14 731 doc_oo 0;
-#X obj 14 647 doc_ii 0;
-#X obj 14 669 doc_ii 1;
-#X obj 14 585 doc_cc 0;
-#X obj 0 763 doc_f;
-#N canvas 0 0 450 300 tests 0;
-#X obj 15 242 outlet;
-#X msg 53 31 PU 0 10 \, PD 1000 10;
-#X msg 64 68 PU 0 0 \, print_from_ascii 116 114 97 98 111 117 108 105
-100 111 110;
-#X msg 77 123 PU 50 550 \, print_from_ascii 97 13 10 108 13 10 108
-13 10 244;
-#X msg 87 179 PU 0 0 \, LB world;
-#X connect 1 0 0 0;
-#X connect 2 0 0 0;
-#X connect 3 0 0 0;
-#X connect 4 0 0 0;
-#X restore 241 209 pd tests;
-#X obj 97 585 doc_m c0 symbol;
-#X text 232 585 font folder;
-#X obj 97 647 doc_m i0 <hpgl>;
-#X obj 97 731 doc_m o0 <hpgl>;
-#X text 232 647 containing LB or print_from_ascii commands;
-#X text 232 731 NOT containing LB or print_from_ascii commands anymore
-;
-#X obj 97 669 doc_m i1 symbol;
-#X text 232 669 same as arg 0;
-#X connect 0 0 52 0;
-#X connect 1 0 0 0;
-#X connect 2 0 13 0;
-#X connect 3 0 52 0;
-#X connect 5 0 36 0;
-#X connect 7 0 20 0;
-#X connect 8 0 37 0;
-#X connect 9 0 6 0;
-#X connect 10 0 9 1;
-#X connect 11 0 22 0;
-#X connect 12 0 3 0;
-#X connect 12 0 37 0;
-#X connect 13 0 53 0;
-#X connect 14 0 26 3;
-#X connect 15 0 14 1;
-#X connect 16 0 14 0;
-#X connect 17 0 26 4;
-#X connect 18 0 17 1;
-#X connect 19 0 17 0;
-#X connect 20 0 26 0;
-#X connect 21 0 7 0;
-#X connect 21 1 20 1;
-#X connect 21 1 28 0;
-#X connect 23 0 45 0;
-#X connect 24 0 25 0;
-#X connect 25 0 7 0;
-#X connect 25 1 23 1;
-#X connect 26 0 47 0;
-#X connect 26 1 21 0;
-#X connect 27 0 11 0;
-#X connect 28 0 29 0;
-#X connect 28 0 30 0;
-#X connect 29 0 55 0;
-#X connect 30 0 24 0;
-#X connect 32 0 9 0;
-#X connect 32 0 54 0;
-#X connect 32 1 33 0;
-#X connect 33 0 4 0;
-#X connect 34 0 33 1;
-#X connect 35 0 42 0;
-#X connect 36 0 26 1;
-#X connect 37 0 7 1;
-#X connect 38 0 27 0;
-#X connect 39 0 38 1;
-#X connect 40 0 41 0;
-#X connect 41 0 35 0;
-#X connect 42 0 44 0;
-#X connect 43 0 47 1;
-#X connect 44 0 23 0;
-#X connect 44 1 7 1;
-#X connect 45 0 27 0;
-#X connect 45 1 38 0;
-#X connect 46 0 45 1;
-#X connect 47 0 42 0;
-#X connect 47 1 40 0;
-#X connect 48 0 50 0;
-#X connect 49 0 48 1;
-#X connect 50 0 51 0;
-#X connect 52 0 32 0;
-#X connect 52 1 0 1;
-#X connect 52 1 2 0;
-#X connect 52 1 24 0;
-#X connect 53 0 52 0;
-#X connect 53 1 52 0;
-#X connect 53 2 52 0;
-#X connect 53 3 52 0;
-#X connect 54 0 26 2;
-#X connect 54 0 48 0;
-#X connect 55 0 28 1;
-#X connect 65 0 54 0;
-#X connect 66 1 67 0;
-#X connect 68 1 70 0;
-#X connect 69 1 71 0;
-#X connect 72 1 73 0;
diff --git a/externals/gridflow/doc/flow_classes/hpgl_op-help.pd b/externals/gridflow/doc/flow_classes/hpgl_op-help.pd
deleted file mode 100644
index 0ed87a04..00000000
--- a/externals/gridflow/doc/flow_classes/hpgl_op-help.pd
+++ /dev/null
@@ -1,30 +0,0 @@
-#N canvas 679 174 632 352 10;
-#X obj 0 0 doc_h;
-#X obj 0 323 doc_f;
-#X obj 93 42 hpgl_op;
-#X text 208 40 applies the same numop on all PA \, PD \, PU commands
-of the incoming HPGL stream;
-#X obj 3 80 doc_c 2;
-#X obj 3 164 doc_i 2;
-#X obj 3 248 doc_o 1;
-#X obj 14 110 doc_cc 0;
-#X obj 14 132 doc_cc 1;
-#X obj 14 194 doc_ii 0;
-#X obj 14 216 doc_ii 1;
-#X obj 14 278 doc_oo 0;
-#X obj 97 110 doc_m c0 symbol/numop;
-#X obj 97 132 doc_m c1 grid;
-#X obj 97 194 doc_m i0 <hpgl>;
-#X obj 97 278 doc_m o0 <hpgl>;
-#X obj 97 216 doc_m i1 grid;
-#X text 232 194 incoming HPGL commands;
-#X text 232 278 outgoing HPGL commands: same as incoming except coordinates
-of PA \, PU \, PD will have been changed.;
-#X text 232 216 same as argument 1;
-#X text 232 132 same as argument 1 of [#];
-#X text 232 110 same as argument 0 of [#];
-#X connect 12 1 21 0;
-#X connect 13 1 20 0;
-#X connect 14 1 17 0;
-#X connect 15 1 18 0;
-#X connect 16 1 19 0;
diff --git a/externals/gridflow/doc/flow_classes/hpgl_track_position-help.pd b/externals/gridflow/doc/flow_classes/hpgl_track_position-help.pd
deleted file mode 100644
index 17e987c6..00000000
--- a/externals/gridflow/doc/flow_classes/hpgl_track_position-help.pd
+++ /dev/null
@@ -1,21 +0,0 @@
-#N canvas 335 118 632 310 10;
-#X obj 0 281 doc_f;
-#X obj 0 0 doc_h;
-#X obj 43 52 hpgl_track_position;
-#X obj 3 133 doc_i 2;
-#X obj 3 217 doc_o 1;
-#X text 188 47 looks at PA \, PD \, PU in a HPGL stream to figure out
-what's the current position.;
-#X obj 3 93 doc_c 0;
-#X obj 14 163 doc_ii 0;
-#X obj 14 185 doc_ii 1;
-#X obj 14 247 doc_oo 0;
-#X obj 97 163 doc_m i0 <hpgl>;
-#X obj 97 185 doc_m i1 bang;
-#X obj 97 249 doc_m o0 grid;
-#X text 232 249 last position in the last PA \, PD or PU.;
-#X text 232 185 causes the last position to be output.;
-#X text 232 163 a HPGL stream.;
-#X connect 10 1 15 0;
-#X connect 11 1 14 0;
-#X connect 12 1 13 0;
diff --git a/externals/gridflow/doc/flow_classes/interval_overlap-help.pd b/externals/gridflow/doc/flow_classes/interval_overlap-help.pd
deleted file mode 100644
index 8956e701..00000000
--- a/externals/gridflow/doc/flow_classes/interval_overlap-help.pd
+++ /dev/null
@@ -1,46 +0,0 @@
-#N canvas 335 118 632 455 10;
-#X obj 0 0 doc_h;
-#X obj 0 426 doc_f;
-#X obj 77 49 interval_overlap;
-#X text 236 45 check whether two 1-D intervals overlap;
-#X obj 3 86 doc_c 4;
-#X obj 3 214 doc_i 4;
-#X obj 3 342 doc_o 1;
-#X obj 14 116 doc_cc 0;
-#X obj 14 138 doc_cc 1;
-#X obj 14 160 doc_cc 2;
-#X obj 14 182 doc_cc 3;
-#X obj 14 244 doc_ii 0;
-#X obj 14 266 doc_ii 1;
-#X obj 14 288 doc_ii 2;
-#X obj 14 310 doc_ii 3;
-#X obj 14 372 doc_oo 0;
-#X obj 97 116 doc_m c0 float;
-#X obj 97 138 doc_m c1 float;
-#X obj 97 160 doc_m c2 float;
-#X obj 97 182 doc_m c3 float;
-#X obj 97 244 doc_m i0 float;
-#X obj 97 266 doc_m i1 float;
-#X obj 97 288 doc_m i2 float;
-#X obj 97 310 doc_m i3 float;
-#X obj 97 372 doc_m o0 float;
-#X text 232 372 1: they overlap;
-#X text 232 394 0: they don't;
-#X text 232 116 start1;
-#X text 232 138 end1;
-#X text 232 160 start2;
-#X text 232 182 end2;
-#X text 232 244 same as arg 0;
-#X text 232 266 same as arg 1;
-#X text 232 310 same as arg 3;
-#X text 232 288 same as arg 2;
-#X connect 16 1 27 0;
-#X connect 17 1 28 0;
-#X connect 18 1 29 0;
-#X connect 19 1 30 0;
-#X connect 20 1 31 0;
-#X connect 21 1 32 0;
-#X connect 22 1 34 0;
-#X connect 23 1 33 0;
-#X connect 24 1 25 0;
-#X connect 24 1 26 0;
diff --git a/externals/gridflow/doc/flow_classes/inv0x2a-help.pd b/externals/gridflow/doc/flow_classes/inv0x2a-help.pd
deleted file mode 100644
index c0787d4b..00000000
--- a/externals/gridflow/doc/flow_classes/inv0x2a-help.pd
+++ /dev/null
@@ -1,78 +0,0 @@
-#N canvas 584 51 632 545 10;
-#X obj 219 121 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 219 163 #in;
-#X obj 263 164 tgl 15 0 empty empty empty 0 -6 0 8 -260818 -1 -1 0
-1;
-#X obj 219 82 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 0 1
-;
-#X obj 219 185 shunt 2;
-#X text 369 140 image loader;
-#X obj 219 101 metro 33.3667;
-#X obj 219 238 #out window \, title inv+;
-#X text 349 221 Outputs negated image;
-#X text 68 221 Outputs initial image;
-#X obj 338 188 hsl 128 15 1000 65000 0 0 empty empty empty -2 -6 0
-8 -262144 -1 -1 0 1;
-#X obj 187 496 swap;
-#X floatatom 34 102 5 0 0 0 - - -;
-#X floatatom 57 120 5 0 0 0 - - -;
-#X floatatom 34 176 5 0 0 0 - - -;
-#X floatatom 105 104 5 0 0 0 - - -;
-#X floatatom 149 121 5 0 0 0 - - -;
-#X floatatom 105 178 5 0 0 0 - - -;
-#X obj 105 147 inv* 10;
-#X obj 103 496 inv+;
-#X obj 139 496 # inv*;
-#X text 8 24 The [inv*] performs an inversion on the data passed to
-it. If you consider inlet 0 as the variable "a" and inlet 1 as variable
-"b" \, [inv*] performs the operation "b/a" on the values passed to
-it.;
-#X text 232 464 Outputs the result of the operation "b/a".;
-#X obj 263 209 # inv* 4000;
-#X text 288 163 inversion;
-#X obj 0 0 doc_h;
-#X obj 34 145 inv*;
-#X obj 3 350 doc_i 2;
-#X obj 3 434 doc_o 1;
-#X obj 3 288 doc_c 1;
-#X obj 3 496 doc_also;
-#X obj 14 380 doc_ii 0;
-#X obj 14 402 doc_ii 1;
-#X obj 14 464 doc_oo 0;
-#X obj 14 318 doc_cc 0;
-#X text 323 91 numerical operator of the Grid object;
-#X obj 97 318 doc_m c0 float;
-#X obj 97 380 doc_m i0 float;
-#X obj 97 402 doc_m i1 float;
-#X obj 97 464 doc_m o0 float;
-#X obj 0 516 doc_f;
-#X text 232 318 number that the left inlet values will be divided by.
-;
-#X msg 219 139 load r001.jpg;
-#X text 232 380 a: divisor;
-#X text 232 402 b: dividend;
-#X text 323 78 Another application: inv* as a;
-#X connect 0 0 42 0;
-#X connect 1 0 4 0;
-#X connect 2 0 4 1;
-#X connect 3 0 6 0;
-#X connect 4 0 7 0;
-#X connect 4 1 23 0;
-#X connect 6 0 0 0;
-#X connect 10 0 23 1;
-#X connect 12 0 26 0;
-#X connect 13 0 26 1;
-#X connect 15 0 18 0;
-#X connect 16 0 18 1;
-#X connect 18 0 17 0;
-#X connect 23 0 7 0;
-#X connect 26 0 14 0;
-#X connect 30 1 19 1;
-#X connect 30 1 20 0;
-#X connect 30 1 11 0;
-#X connect 36 1 41 0;
-#X connect 37 1 43 0;
-#X connect 38 1 44 0;
-#X connect 39 1 22 0;
-#X connect 42 0 1 0;
diff --git a/externals/gridflow/doc/flow_classes/inv0x2b-help.pd b/externals/gridflow/doc/flow_classes/inv0x2b-help.pd
deleted file mode 100644
index 99a05e09..00000000
--- a/externals/gridflow/doc/flow_classes/inv0x2b-help.pd
+++ /dev/null
@@ -1,75 +0,0 @@
-#N canvas 652 22 632 574 10;
-#X obj 219 121 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X text 288 163 negative;
-#X obj 219 163 #in;
-#X obj 263 164 tgl 15 0 empty empty empty 0 -6 0 8 -260818 -1 -1 0
-1;
-#X obj 219 82 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 0 1
-;
-#X obj 219 185 shunt 2;
-#X text 369 140 image loader;
-#X msg 219 139 open r001.jpg \, bang;
-#X obj 219 101 metro 33.3667;
-#X obj 219 238 #out window \, title inv+;
-#X text 349 221 Outputs negated image;
-#X text 68 221 Outputs initial image;
-#X obj 331 192 hsl 128 15 0 255 0 0 empty empty empty -2 -6 0 8 -262144
--1 -1 0 1;
-#X obj 151 525 swap;
-#X obj 154 525 swap;
-#X text 9 24 The [inv+] performs an inversion on the data passed to
-it. If you consider inlet 0 as the variable "a" and inlet 1 as variable
-"b" \, [inv+] performs the operation "b-a" on the values passed to
-it.;
-#X floatatom 34 102 5 0 0 0 - - -;
-#X floatatom 57 119 5 0 0 0 - - -;
-#X floatatom 34 176 5 0 0 0 - - -;
-#X obj 103 525 # inv+;
-#X obj 34 146 inv+;
-#X obj 263 211 # inv+ 255;
-#X text 232 493 Outputs the result of the operation "b-a".;
-#X floatatom 105 104 5 0 0 0 - - -;
-#X floatatom 149 121 5 0 0 0 - - -;
-#X floatatom 105 178 5 0 0 0 - - -;
-#X obj 105 145 inv+ 10;
-#X obj 3 353 doc_i 2;
-#X obj 0 0 doc_h;
-#X obj 3 525 doc_also;
-#X obj 14 383 doc_ii 0;
-#X obj 14 418 doc_ii 1;
-#X obj 3 463 doc_o 1;
-#X obj 14 493 doc_oo 0;
-#X obj 3 278 doc_c 1;
-#X obj 14 308 doc_cc 0;
-#X obj 97 308 doc_m c0 float;
-#X obj 97 383 doc_m i0 float;
-#X obj 97 418 doc_m i1 float;
-#X obj 97 493 doc_m o0 float;
-#X obj 0 545 doc_f;
-#X text 232 308 number that the left inlet values will be subtracted
-from.;
-#X text 232 383 a: the value to subtract;
-#X text 232 418 b: the value to subtract from;
-#X connect 0 0 7 0;
-#X connect 2 0 5 0;
-#X connect 3 0 5 1;
-#X connect 4 0 8 0;
-#X connect 5 0 9 0;
-#X connect 5 1 21 0;
-#X connect 7 0 2 0;
-#X connect 8 0 0 0;
-#X connect 12 0 21 1;
-#X connect 16 0 20 0;
-#X connect 17 0 20 1;
-#X connect 20 0 18 0;
-#X connect 21 0 9 0;
-#X connect 23 0 26 0;
-#X connect 24 0 26 1;
-#X connect 26 0 25 0;
-#X connect 29 1 19 0;
-#X connect 29 1 13 0;
-#X connect 36 1 41 0;
-#X connect 37 1 42 0;
-#X connect 38 1 43 0;
-#X connect 39 1 22 0;
diff --git a/externals/gridflow/doc/flow_classes/list.==-help.pd b/externals/gridflow/doc/flow_classes/list.==-help.pd
deleted file mode 100644
index 6e38a0a9..00000000
--- a/externals/gridflow/doc/flow_classes/list.==-help.pd
+++ /dev/null
@@ -1,23 +0,0 @@
-#N canvas 653 141 632 343 10;
-#X obj 0 0 doc_h;
-#X obj 0 314 doc_f;
-#X obj 84 56 list.==;
-#X text 174 49 compare two lists and tell whether they are exactly
-equal to each other.;
-#X obj 3 110 doc_c any;
-#X obj 14 140 doc_cc any;
-#X obj 97 140 doc_m cany <any>;
-#X obj 3 172 doc_i 2;
-#X obj 3 252 doc_o 1;
-#X obj 14 202 doc_ii 0;
-#X obj 14 222 doc_ii 1;
-#X obj 14 282 doc_oo 0;
-#X obj 97 202 doc_m i0 list;
-#X obj 97 222 doc_m i1 list;
-#X obj 97 282 doc_m o0 float bool;
-#X text 232 282 1 if lists are same \, 0 if they are different.;
-#X text 206 199 compare this list with the stored list;
-#X text 232 140 all arguments together form a list being stored;
-#X text 208 223 same as all arguments together;
-#X connect 6 1 17 0;
-#X connect 14 1 15 0;
diff --git a/externals/gridflow/doc/flow_classes/listappend-help.pd b/externals/gridflow/doc/flow_classes/listappend-help.pd
deleted file mode 100644
index 266738e8..00000000
--- a/externals/gridflow/doc/flow_classes/listappend-help.pd
+++ /dev/null
@@ -1,49 +0,0 @@
-#N canvas 624 22 632 469 10;
-#X obj 103 420 listappend;
-#X obj 175 420 listelement;
-#X obj 253 420 listfind;
-#X obj 313 420 listflatten;
-#X obj 391 420 listprepend;
-#X obj 469 420 listreverse;
-#X obj 547 420 listsublist;
-#X msg 90 110 1 3 hello 8 13;
-#X msg 258 107 1 12 a b c d e f g h i j k l;
-#X obj 91 184 display;
-#X msg 267 128 200 201 202 203 204 205 206;
-#X obj 90 152 listappend 1 2 3 4 5 6 7;
-#X text 11 35 The [listappend] combines two lists together. It takes
-the initial list (List1)(passed as an argument or to inlet 1) and appends
-to it the list passed to inlet 0 (List0). [listappend] combines List0
-followed by List1 in a new list.;
-#X obj 0 0 doc_h;
-#X obj 3 274 doc_i 2;
-#X obj 3 358 doc_o 1;
-#X obj 3 212 doc_c n;
-#X obj 3 420 doc_also;
-#X obj 14 304 doc_ii 0;
-#X obj 14 326 doc_ii 1;
-#X obj 14 388 doc_oo 0;
-#X obj 14 242 doc_cc any;
-#X obj 97 304 doc_m i0 list;
-#X obj 97 326 doc_m i1 list;
-#X obj 97 388 doc_m o0 list;
-#X obj 0 440 doc_f;
-#X obj 97 242 doc_m cany <any>;
-#X text 232 242 all arguments together form the list to be appended
-;
-#X text 232 304 a list that the stored list will be appended to.;
-#X text 232 326 same as all args together;
-#X connect 7 0 11 0;
-#X connect 8 0 11 1;
-#X connect 10 0 11 1;
-#X connect 11 0 9 0;
-#X connect 17 1 0 0;
-#X connect 17 1 1 0;
-#X connect 17 1 2 0;
-#X connect 17 1 3 0;
-#X connect 17 1 4 0;
-#X connect 17 1 5 0;
-#X connect 17 1 6 0;
-#X connect 22 1 28 0;
-#X connect 23 1 29 0;
-#X connect 26 1 27 0;
diff --git a/externals/gridflow/doc/flow_classes/listelement-help.pd b/externals/gridflow/doc/flow_classes/listelement-help.pd
deleted file mode 100644
index e30f98da..00000000
--- a/externals/gridflow/doc/flow_classes/listelement-help.pd
+++ /dev/null
@@ -1,39 +0,0 @@
-#N canvas 604 22 632 523 10;
-#X floatatom 262 160 5 0 0 0 - - -;
-#X floatatom 281 106 5 0 0 0 - - -;
-#X obj 195 158 print;
-#X msg 195 81 1 3 hello 8 13;
-#X obj 195 129 listelement 0;
-#X text 10 32 Outputs one element from a list as selected by an integer.
-;
-#X text 232 238 An integer acts as an index \, it selects the position
-of an element in a list. The selected element is output \, 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 232 387 Changes the value of the argument i.e. changes the
-index into the list to get a different element.;
-#X obj 0 0 doc_h;
-#X obj 3 335 doc_i 2;
-#X obj 3 432 doc_o 1;
-#X obj 14 365 doc_ii 0;
-#X obj 14 387 doc_ii 1;
-#X obj 14 462 doc_oo 0;
-#X obj 3 208 doc_c 1;
-#X obj 14 238 doc_cc 0;
-#X obj 97 238 doc_m c0 float/int;
-#X obj 97 365 doc_m i0 list;
-#X obj 97 387 doc_m i1 float/int;
-#X text 232 462 The element selected by the index is sent to the outlet
-;
-#X obj 0 494 doc_f;
-#X text 232 365 a list of numbers or symbols.;
-#X obj 97 462 doc_m o0 >any>;
-#X connect 1 0 4 1;
-#X connect 3 0 4 0;
-#X connect 4 0 0 0;
-#X connect 4 0 2 0;
-#X connect 16 1 6 0;
-#X connect 17 1 21 0;
-#X connect 18 1 7 0;
-#X connect 22 1 19 0;
diff --git a/externals/gridflow/doc/flow_classes/listfind-help.pd b/externals/gridflow/doc/flow_classes/listfind-help.pd
deleted file mode 100644
index de83d33c..00000000
--- a/externals/gridflow/doc/flow_classes/listfind-help.pd
+++ /dev/null
@@ -1,32 +0,0 @@
-#N canvas 527 144 632 394 10;
-#X obj 0 0 doc_h;
-#X obj 0 365 doc_f;
-#X obj 44 66 listfind 2 3 5 7 11 13;
-#X floatatom 44 48 5 0 0 0 - - -;
-#X floatatom 44 85 5 0 0 0 - - -;
-#X text 214 54 find the position of an element (float or symbol) in
-a list \, or -1 if it is not found. in case of duplicate elements \,
-it only tells the position of the first occurrence.;
-#X obj 3 113 doc_c any;
-#X obj 14 143 doc_cc any;
-#X obj 97 143 doc_m cany <any>;
-#X obj 3 173 doc_i 1;
-#X obj 14 203 doc_ii 0;
-#X obj 97 203 doc_m i0 float;
-#X obj 97 238 doc_m i0 symbol;
-#X text 232 238 look for a symbol.;
-#X text 232 203 look for a float. this has the same gotchas as using
-[==] and [sel] \, about the precision of numbers.;
-#X obj 3 270 doc_o 1;
-#X obj 14 300 doc_oo 0;
-#X obj 97 300 doc_m o0 float int;
-#X text 232 300 nonnegative list index of first occurrence \, or -1
-if not found.;
-#X obj 3 345 doc_also;
-#X obj 103 345 listread;
-#X connect 2 0 4 0;
-#X connect 3 0 2 0;
-#X connect 11 1 14 0;
-#X connect 12 1 13 0;
-#X connect 17 1 18 0;
-#X connect 19 1 20 0;
diff --git a/externals/gridflow/doc/flow_classes/listflatten-help.pd b/externals/gridflow/doc/flow_classes/listflatten-help.pd
deleted file mode 100644
index 6f253a92..00000000
--- a/externals/gridflow/doc/flow_classes/listflatten-help.pd
+++ /dev/null
@@ -1,39 +0,0 @@
-#N canvas 630 27 632 433 10;
-#X obj 103 384 listappend;
-#X obj 253 384 listelement;
-#X obj 409 384 listfind;
-#X obj 547 384 listflatten;
-#X obj 175 384 listprepend;
-#X obj 331 384 listreverse;
-#X obj 469 384 listsublist;
-#X obj 225 153 display;
-#X obj 224 120 listflatten;
-#X msg 209 84 1 (2 (3 4 5) 6 7) 8;
-#X obj 210 187 display;
-#X obj 0 0 doc_h;
-#X obj 3 260 doc_i 1;
-#X obj 3 322 doc_o 1;
-#X obj 3 220 doc_c 0;
-#X obj 3 384 doc_also;
-#X obj 14 290 doc_ii 0;
-#X obj 14 352 doc_oo 0;
-#X obj 97 290 doc_m i0 list;
-#X obj 97 352 doc_m o0 list;
-#X obj 0 404 doc_f;
-#X text 232 290 a (usually) nested list.;
-#X text 232 352 Outputs the flattened (not nested) list.;
-#X text 7 30 Takes nested lists and places their contents into a single
-list in the same order. this is just like removing all parentheses
-from the literal and doing nothing else.;
-#X connect 8 0 7 0;
-#X connect 9 0 8 0;
-#X connect 9 0 10 0;
-#X connect 15 1 0 0;
-#X connect 15 1 4 0;
-#X connect 15 1 1 0;
-#X connect 15 1 5 0;
-#X connect 15 1 2 0;
-#X connect 15 1 6 0;
-#X connect 15 1 3 0;
-#X connect 18 1 21 0;
-#X connect 19 1 22 0;
diff --git a/externals/gridflow/doc/flow_classes/listlength-help.pd b/externals/gridflow/doc/flow_classes/listlength-help.pd
deleted file mode 100644
index 32e2512a..00000000
--- a/externals/gridflow/doc/flow_classes/listlength-help.pd
+++ /dev/null
@@ -1,41 +0,0 @@
-#N canvas 637 22 632 432 10;
-#X text 10 33 The [listlength] outputs the number of elements in the
-incoming list.;
-#X obj 103 383 listappend;
-#X obj 253 383 listelement;
-#X obj 409 383 listfind;
-#X obj 547 383 listflatten;
-#X obj 175 383 listprepend;
-#X obj 331 383 listreverse;
-#X obj 469 383 listsublist;
-#X floatatom 206 160 5 0 0 0 - - -;
-#X obj 139 158 print;
-#X msg 139 81 1 3 hello 8 13;
-#X obj 139 120 listlength;
-#X msg 246 96 1 12 a b c d e f g h i j k l;
-#X text 232 276 The length of the list passed to the left inlet will
-be returned in the outlet.;
-#X obj 0 0 doc_h;
-#X obj 3 206 doc_c 0;
-#X obj 3 246 doc_i 1;
-#X obj 3 321 doc_o 1;
-#X obj 3 383 doc_also 1;
-#X obj 14 276 doc_ii 0;
-#X obj 14 351 doc_oo 0;
-#X obj 97 276 doc_m i0 list;
-#X obj 97 351 doc_m o0 float int;
-#X obj 0 403 doc_f;
-#X text 232 351 the number of elements in the list.;
-#X connect 10 0 11 0;
-#X connect 11 0 8 0;
-#X connect 11 0 9 0;
-#X connect 12 0 11 0;
-#X connect 18 1 1 0;
-#X connect 18 1 5 0;
-#X connect 18 1 2 0;
-#X connect 18 1 6 0;
-#X connect 18 1 3 0;
-#X connect 18 1 7 0;
-#X connect 18 1 4 0;
-#X connect 21 1 13 0;
-#X connect 22 1 24 0;
diff --git a/externals/gridflow/doc/flow_classes/listprepend-help.pd b/externals/gridflow/doc/flow_classes/listprepend-help.pd
deleted file mode 100644
index c71314af..00000000
--- a/externals/gridflow/doc/flow_classes/listprepend-help.pd
+++ /dev/null
@@ -1,51 +0,0 @@
-#N canvas 631 22 632 468 10;
-#X obj 103 419 listappend;
-#X obj 253 419 listelement;
-#X obj 409 419 listfind;
-#X obj 547 419 listflatten;
-#X obj 175 419 listprepend;
-#X obj 331 419 listreverse;
-#X obj 469 419 listsublist;
-#X msg 92 112 1 3 hello 8 13;
-#X msg 260 110 1 12 a b c d e f g h i j k l;
-#X obj 93 180 display;
-#X msg 269 131 200 201 202 203 204 205 206;
-#X obj 92 151 listprepend 1 2 3 4 5 6 7;
-#X text 232 387 Outputs the resulting list.;
-#X text 232 241 This optional argument can contain the initial list
-;
-#X text 8 35 The [listprepend] combines two lists together. It takes
-the initial list (List1)(passed as an argument or to inlet 1) and appends
-the list passed to inlet 0 (List0). [listprepend] combines List1 followed
-by List0 in a new list.;
-#X obj 0 0 doc_h;
-#X obj 3 273 doc_i 2;
-#X obj 3 357 doc_o 1;
-#X obj 3 211 doc_c n;
-#X obj 3 419 doc_also;
-#X obj 14 303 doc_ii 0;
-#X obj 14 325 doc_ii 1;
-#X obj 14 387 doc_oo 0;
-#X obj 14 241 doc_cc any;
-#X obj 97 303 doc_m i0 list;
-#X obj 97 325 doc_m i1 list;
-#X obj 97 387 doc_m o0 list;
-#X obj 0 439 doc_f;
-#X text 232 303 a list to be appended to initial list.;
-#X text 232 325 initial list to be appended to.;
-#X obj 97 241 doc_m cany <any>;
-#X connect 7 0 11 0;
-#X connect 8 0 11 1;
-#X connect 10 0 11 1;
-#X connect 11 0 9 0;
-#X connect 19 1 0 0;
-#X connect 19 1 4 0;
-#X connect 19 1 1 0;
-#X connect 19 1 5 0;
-#X connect 19 1 2 0;
-#X connect 19 1 6 0;
-#X connect 19 1 3 0;
-#X connect 24 1 28 0;
-#X connect 25 1 29 0;
-#X connect 26 1 12 0;
-#X connect 30 1 13 0;
diff --git a/externals/gridflow/doc/flow_classes/listread-help.pd b/externals/gridflow/doc/flow_classes/listread-help.pd
deleted file mode 100644
index a970e607..00000000
--- a/externals/gridflow/doc/flow_classes/listread-help.pd
+++ /dev/null
@@ -1,40 +0,0 @@
-#N canvas 623 251 632 454 10;
-#X obj 0 0 doc_h;
-#X obj 0 425 doc_f;
-#X floatatom 44 48 5 0 0 0 - - -;
-#X floatatom 44 85 5 0 0 0 - - -;
-#X obj 3 143 doc_c any;
-#X obj 14 173 doc_cc any;
-#X obj 97 173 doc_m cany <any>;
-#X obj 3 203 doc_i 1;
-#X obj 14 233 doc_ii 0;
-#X obj 97 233 doc_m i0 float;
-#X obj 3 330 doc_o 1;
-#X obj 14 360 doc_oo 0;
-#X obj 97 360 doc_m o0 float int;
-#X text 232 360 nonnegative list index of first occurrence \, or -1
-if not found.;
-#X obj 3 405 doc_also;
-#X obj 103 405 listread;
-#X obj 44 66 listread 2 3 5 7 11 13;
-#X text 188 41 like [tabread] \, this outputs an element when given
-an index \, but unlike [tabread] \, this uses a list instead of an
-array.;
-#X obj 44 103 listfind 2 3 5 7 11 13;
-#X floatatom 44 122 5 0 0 0 - - -;
-#X text 188 88 a [listfind] with the same content cancels the effect
-of a [listread] when the input of [listread] is nonnegative and is
-smaller than the list's length.;
-#X text 232 233 lookup an element. if the index is nonnegative \, then
-it must be less than the list length \, else no output will be produced.
-if the index is negative \, then it must be greater than or equal to
-minus the list length \, and this counts from the end of the list:
--1 will output the last element \, -2 will output the next to last
-\, etc.;
-#X connect 2 0 16 0;
-#X connect 3 0 18 0;
-#X connect 9 1 21 0;
-#X connect 12 1 13 0;
-#X connect 14 1 15 0;
-#X connect 16 0 3 0;
-#X connect 18 0 19 0;
diff --git a/externals/gridflow/doc/flow_classes/listreverse-help.pd b/externals/gridflow/doc/flow_classes/listreverse-help.pd
deleted file mode 100644
index f5174d55..00000000
--- a/externals/gridflow/doc/flow_classes/listreverse-help.pd
+++ /dev/null
@@ -1,13 +0,0 @@
-#N canvas 659 137 632 262 10;
-#X obj 40 40 listreverse;
-#X obj 0 0 doc_h;
-#X obj 3 73 doc_c 0;
-#X obj 3 113 doc_i 1;
-#X obj 3 173 doc_o 1;
-#X obj 14 143 doc_ii 0;
-#X obj 14 203 doc_oo 0;
-#X obj 97 143 doc_m i0 list;
-#X obj 97 203 doc_m o0 list;
-#X text 119 34 Outputs the incoming list \, from last element to first
-element.;
-#X obj 0 233 doc_f;
diff --git a/externals/gridflow/doc/flow_classes/listsublist-help.pd b/externals/gridflow/doc/flow_classes/listsublist-help.pd
deleted file mode 100644
index 900328f5..00000000
--- a/externals/gridflow/doc/flow_classes/listsublist-help.pd
+++ /dev/null
@@ -1,60 +0,0 @@
-#N canvas 628 22 632 580 10;
-#X obj 103 531 listappend;
-#X obj 175 531 listelement;
-#X obj 253 531 listfind;
-#X obj 313 531 listflatten;
-#X obj 391 531 listprepend;
-#X obj 469 531 listreverse;
-#X msg 173 112 1 3 hello 8 13;
-#X msg 182 136 1 12 a b c d e f g h i j k l;
-#X obj 174 211 display;
-#X text 232 486 Outputs the sublist as specified by the inlets or the
-arguments.;
-#X text 9 33 The [listsublist] outputs consecutive elements of the
-list \, as selected by index (inlet 1 or arg 1) and length (inlet 2
-or arg 2). A negative index will start from the end of the list (like
--1 means last element in the list).;
-#X floatatom 224 158 5 0 0 0 - - -;
-#X obj 0 0 doc_h;
-#X obj 3 350 doc_i 3;
-#X obj 3 456 doc_o 1;
-#X obj 3 253 doc_c 0..2;
-#X obj 3 531 doc_also;
-#X obj 14 380 doc_ii 0;
-#X obj 14 402 doc_ii 1;
-#X obj 14 424 doc_ii 2;
-#X obj 14 283 doc_cc 0;
-#X obj 14 305 doc_cc 1;
-#X obj 14 486 doc_oo 0;
-#X obj 547 531 listsublist;
-#X floatatom 267 158 5 0 0 0 - - -;
-#X obj 173 182 listsublist 2 3;
-#X text 232 283 The index in the list to start the sublist at.;
-#X text 232 305 The number of items wanted from the list starting at
-the index specified.;
-#X text 232 402 Index (See Argument 0);
-#X text 232 424 Number of items (See Argument 1);
-#X obj 97 283 doc_m c0 float/int;
-#X obj 97 305 doc_m c1 float/int;
-#X obj 97 380 doc_m i0 list;
-#X obj 97 402 doc_m i1 float int;
-#X obj 97 424 doc_m i2 float int;
-#X obj 97 486 doc_m o0 list;
-#X obj 0 551 doc_f;
-#X connect 6 0 25 0;
-#X connect 7 0 25 0;
-#X connect 11 0 25 1;
-#X connect 16 1 0 0;
-#X connect 16 1 1 0;
-#X connect 16 1 2 0;
-#X connect 16 1 3 0;
-#X connect 16 1 4 0;
-#X connect 16 1 5 0;
-#X connect 16 1 23 0;
-#X connect 24 0 25 2;
-#X connect 25 0 8 0;
-#X connect 30 1 26 0;
-#X connect 31 1 27 0;
-#X connect 33 1 28 0;
-#X connect 34 1 29 0;
-#X connect 35 1 9 0;
diff --git a/externals/gridflow/doc/flow_classes/norecurse-help.pd b/externals/gridflow/doc/flow_classes/norecurse-help.pd
deleted file mode 100644
index d0207c97..00000000
--- a/externals/gridflow/doc/flow_classes/norecurse-help.pd
+++ /dev/null
@@ -1,16 +0,0 @@
-#N canvas 335 118 632 297 10;
-#X obj 0 0 doc_h;
-#X obj 3 80 doc_c;
-#X obj 0 268 doc_f;
-#X obj 76 48 norecurse;
-#X text 237 45 this will stop any control-recursion.;
-#X obj 3 120 doc_i 1;
-#X obj 3 208 doc_o 1;
-#X obj 14 150 doc_ii 0;
-#X obj 14 238 doc_oo 0;
-#X obj 97 150 doc_m i0 <any>;
-#X obj 97 238 doc_m o0 <any>;
-#X text 232 150 any incoming message will be copied as-is to the output.
-but only if a message is not currently "being sent" by this same object.
-thus this prevents any "strange loops".;
-#X connect 9 1 11 0;
diff --git a/externals/gridflow/doc/flow_classes/parallel_port-help.pd b/externals/gridflow/doc/flow_classes/parallel_port-help.pd
deleted file mode 100644
index 9cb8916d..00000000
--- a/externals/gridflow/doc/flow_classes/parallel_port-help.pd
+++ /dev/null
@@ -1,96 +0,0 @@
-#N canvas 188 22 632 673 10;
-#X floatatom 7 380 5 0 0 0 - - -;
-#X floatatom 71 348 5 0 0 0 - - -;
-#X floatatom 136 323 5 0 0 0 - - -;
-#X obj 7 34 tgl 15 0 empty empty empty 17 7 0 10 -24198 -1 -1 0 1;
-#X text 215 206 * my system resets the owner of the printer port to
-'root.lp' so I need to issue as root 'chown myuser.lp';
-#X text 215 50 * you will need : a paper clip (or a 'high tech' solid
-core 22-18 awg wire) an led a button;
-#X text 215 176 * consult http://en.wikipedia.org/wiki/Parallel_Port
-for the pinouts + more;
-#X text 215 255 7 6 5 4 3 2 1 0 bit number;
-#X text 215 269 9 8 7 6 5 4 3 2 pin number;
-#X text 215 237 layout of bit to pin numbers;
-#X text 18 32 <-- This will send a 0 or a 1 to the first pin;
-#X text 14 243 Will accept values from 0-255;
-#X obj 7 132 tgl 15 0 empty empty empty 0 -6 0 8 -260818 -1 -1 0 1
-;
-#X obj 26 132 tgl 15 0 empty empty empty 0 -6 0 8 -260818 -1 -1 0 1
-;
-#X obj 45 132 tgl 15 0 empty empty empty 0 -6 0 8 -260818 -1 -1 0 1
-;
-#X obj 64 132 tgl 15 0 empty empty empty 0 -6 0 8 -260818 -1 -1 0 1
-;
-#X obj 83 132 tgl 15 0 empty empty empty 0 -6 0 8 -260818 -1 -1 0 1
-;
-#X obj 102 132 tgl 15 0 empty empty empty 0 -6 0 8 -260818 -1 -1 0
-1;
-#X obj 121 132 tgl 15 0 empty empty empty 0 -6 0 8 -260818 -1 -1 0
-1;
-#X obj 140 132 tgl 15 0 empty empty empty 0 -6 0 8 -260818 -1 -1 0
-1;
-#X obj 7 229 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10
--241291 -1 -1 0 256;
-#X obj 7 191 #fold +;
-#X obj 7 210 #to_float;
-#X obj 7 172 # << (0 1 2 3 4 5 6 7);
-#X obj 7 153 #pack 8 \, \, \, \, \, \, \, \, \, \, \, \, \, \, \, \,
-;
-#X text 19 274 takes the port as argument;
-#X text 44 -1 The cheapest digital i/o interface;
-#X obj 7 293 parallel_port /dev/lp0;
-#X obj 7 63 metro 1;
-#X text 215 286 Flags : PERRORP (active low) \, PSELECD (active high)
-\, POUTPA (active high) \, PACK (active low) \, PBUSY (active high)
-;
-#X obj 0 0 doc_h;
-#X text 215 80 1: break the paper clip in two and connect pin 11 (Busy)
-to pin 24 (GND) and pin 12 (Paper-Out) to 25 (GND). Those pins are
-normally 1 and grounding them opens the port for messages.;
-#X text 215 138 2: connect the led between pins 2 (Data0) and 23 (GND)
-;
-#X text 215 156 3: connect a button between pin 10 and 22 (GND);
-#X obj 3 416 doc_c 1;
-#X obj 3 478 doc_i 1;
-#X obj 14 508 doc_ii 0;
-#X obj 14 446 doc_cc 0;
-#X obj 0 644 doc_f;
-#X text 177 322 parallel port flags;
-#X text 110 348 status (pin 10);
-#X text 51 379 reserved for future use;
-#X obj 3 540 doc_o 3;
-#X obj 14 570 doc_oo 0;
-#X obj 14 590 doc_oo 1;
-#X obj 14 612 doc_oo 2;
-#X obj 97 612 doc_m o2 float;
-#X obj 97 590 doc_m o1 float;
-#X obj 97 570 doc_m o0 <none>;
-#X obj 97 508 doc_m i0 float;
-#X obj 97 446 doc_m c0 symbol;
-#X text 232 446 device name (Linux parallel port interface);
-#X text 232 508 bytes to send;
-#X text 232 590 status;
-#X text 232 612 flags;
-#X connect 3 0 28 0;
-#X connect 12 0 24 0;
-#X connect 13 0 24 1;
-#X connect 14 0 24 2;
-#X connect 15 0 24 3;
-#X connect 16 0 24 4;
-#X connect 17 0 24 5;
-#X connect 18 0 24 6;
-#X connect 19 0 24 7;
-#X connect 20 0 27 0;
-#X connect 21 0 22 0;
-#X connect 22 0 20 0;
-#X connect 23 0 21 0;
-#X connect 24 0 23 0;
-#X connect 27 0 0 0;
-#X connect 27 1 1 0;
-#X connect 27 2 2 0;
-#X connect 28 0 12 0;
-#X connect 46 1 54 0;
-#X connect 47 1 53 0;
-#X connect 49 1 52 0;
-#X connect 50 1 51 0;
diff --git a/externals/gridflow/doc/flow_classes/pingpong-help.pd b/externals/gridflow/doc/flow_classes/pingpong-help.pd
deleted file mode 100644
index 17b44f36..00000000
--- a/externals/gridflow/doc/flow_classes/pingpong-help.pd
+++ /dev/null
@@ -1,27 +0,0 @@
-#N canvas 680 0 632 383 10;
-#X obj 0 0 doc_h;
-#X obj 3 294 doc_o 1;
-#X text 148 44 Transforms linear counting (0 \, 1 \, 2 \, 3 \, 4 \,
-...) into a back-and-forth counting (0 \, 1 \, 2 \, 1 \, 0 \, ...)
-from 0 to a specified upper bound.;
-#X obj 34 47 pingpong;
-#X obj 14 324 doc_oo 0;
-#X obj 3 109 doc_c 1;
-#X obj 3 171 doc_i 2;
-#X obj 14 139 doc_cc 0;
-#X obj 14 201 doc_ii 0;
-#X obj 14 262 doc_ii 1;
-#X obj 97 139 doc_m c0 float;
-#X obj 97 262 doc_m i1 float;
-#X text 232 262 same as arg 0;
-#X text 232 139 "top";
-#X obj 97 201 doc_m i0 float;
-#X text 232 201 a value to be transformed. If \, for example \, top=10
-\, then values 0 thru 10 are left unchanged \, values 11 thru 19 are
-mapped to 9 thru 1 respectively \, and 20 thru 30 are mapped to 0 thru
-10 \, and so on.;
-#X obj 97 324 doc_m o0 float;
-#X obj 0 354 doc_f;
-#X connect 10 1 13 0;
-#X connect 11 1 12 0;
-#X connect 14 1 15 0;
diff --git a/externals/gridflow/doc/flow_classes/plotter_control-help.pd b/externals/gridflow/doc/flow_classes/plotter_control-help.pd
deleted file mode 100644
index 944a0e53..00000000
--- a/externals/gridflow/doc/flow_classes/plotter_control-help.pd
+++ /dev/null
@@ -1,79 +0,0 @@
-#N canvas 576 39 632 605 10;
-#X obj 22 162 r foo;
-#X msg 427 236 print_from_ascii $*;
-#X msg 427 115 print hello_world;
-#X msg 154 117 pu;
-#X msg 154 165 pd;
-#X msg 155 268 sp 0;
-#X msg 154 217 pa 120 160;
-#X obj 427 187 unix_time;
-#X obj 427 167 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 14 318 comport 0 9600;
-#X obj 6 192 plotter_control;
-#X obj 23 221 print hpgl_commands;
-#X obj 427 259 s foo;
-#X text 194 117 pen up;
-#X text 194 165 pen down;
-#X obj 427 137 s foo;
-#X text 238 217 move to absolute position;
-#N canvas 0 22 450 300 draw_a_rectangle 0;
-#X msg 31 156 pu \, sp 0;
-#X msg 138 191 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 msg 138 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 obj 31 52 t a a a;
-#X obj 138 153 # * (110 320);
-#X obj 138 172 #to_list;
-#X connect 0 0 3 0;
-#X connect 1 0 3 0;
-#X connect 2 0 3 0;
-#X connect 4 0 7 0;
-#X connect 5 0 6 0;
-#X connect 6 0 0 0;
-#X connect 6 1 4 0;
-#X connect 6 2 2 0;
-#X connect 7 0 8 0;
-#X connect 8 0 1 0;
-#X restore 427 291 pd draw_a_rectangle;
-#X text 74 343 use the comport object to interface to the plotter;
-#X obj 155 290 s foo;
-#X obj 154 239 s foo;
-#X obj 154 187 s foo;
-#X obj 154 139 s foo;
-#X text 198 270 (0...6) remove/change the pen;
-#X obj 0 0 doc_h;
-#X obj 3 379 doc_c 0;
-#X obj 3 419 doc_i 1;
-#X obj 3 494 doc_o 1;
-#X obj 14 524 doc_oo 0;
-#X obj 14 449 doc_ii 0;
-#X text 10 32 This object produces HPGL instructions in ASCII form
-that can be sent to the comport object in order to control an HPGL
-compatible plotter.;
-#X obj 0 576 doc_f;
-#X obj 427 211 #to_list;
-#X obj 97 449 doc_m i0 <hpgl>;
-#X obj 97 524 doc_m o0 float;
-#X text 232 524 serialised hpgl (as ascii codes);
-#X text 232 449 hpgl stream (note: most other hpgl inlets don't support
-lowercase);
-#X obj 3 556 doc_also;
-#X obj 103 556 plotter_parser;
-#X connect 0 0 10 0;
-#X connect 1 0 12 0;
-#X connect 2 0 15 0;
-#X connect 3 0 22 0;
-#X connect 4 0 21 0;
-#X connect 5 0 19 0;
-#X connect 6 0 20 0;
-#X connect 7 0 32 0;
-#X connect 8 0 7 0;
-#X connect 10 0 11 0;
-#X connect 32 0 1 0;
-#X connect 33 1 36 0;
-#X connect 34 1 35 0;
-#X connect 37 1 38 0;
diff --git a/externals/gridflow/doc/flow_classes/plotter_parser-help.pd b/externals/gridflow/doc/flow_classes/plotter_parser-help.pd
deleted file mode 100644
index 637d8211..00000000
--- a/externals/gridflow/doc/flow_classes/plotter_parser-help.pd
+++ /dev/null
@@ -1,116 +0,0 @@
-#N canvas 663 22 632 620 10;
-#X obj 195 161 plotter_parser;
-#X obj 195 63 until;
-#X obj 195 46 bng 15 250 50 0 empty empty empty 17 7 0 10 -24198 -1
--1;
-#X obj 128 46 tgl 15 0 empty empty empty 17 7 0 10 -24198 -1 -1 0 1
-;
-#X msg 202 87 rewind;
-#X obj 297 159 print bogus;
-#X obj 195 275 loadbang;
-#X obj 206 204 print command;
-#X obj 127 245 #store;
-#X obj 209 233 loadbang;
-#X obj 206 185 spigot;
-#X obj 252 186 tgl 15 0 empty empty empty 17 7 0 10 -241291 -1 -1 0
-1;
-#X obj 13 330 fps;
-#X obj 286 48 bng 15 250 50 0 empty empty empty 17 7 0 10 -258699 -1
--1;
-#X obj 128 63 metro 1;
-#X obj 195 109 #in grid plotter_parser_old.pd.hpgl \, headerless \,
-type b;
-#X obj 326 302 #pack;
-#X obj 356 286 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -8 0 10
--241291 -1 -1 0 256;
-#X obj 326 270 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -8 0 10
--241291 -1 -1 -1000 256;
-#X obj 326 353 #pack;
-#X obj 356 337 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -8 0 10
--241291 -1 -1 10333 256;
-#X obj 326 321 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -8 0 10
--241291 -1 -1 7000 256;
-#X obj 128 82 t b b;
-#X obj 104 282 gf.oneshot;
-#X obj 127 226 t b b;
-#X obj 13 349 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10
--225271 -1 -1 0 256;
-#X obj 13 282 gf.oneshot;
-#X obj 31 149 bng 15 250 50 0 empty empty empty 17 7 0 10 -24198 -1
--1;
-#X obj 31 166 t b b;
-#X obj 123 315 #draw_hpgl;
-#X obj 13 311 #out window;
-#X obj 125 166 f;
-#X obj 150 166 + 1;
-#X obj 125 185 sel;
-#X msg 209 252 600 800 3 b #;
-#X msg 195 294 3 b # 255 255 255;
-#X obj 150 185 % 8;
-#X obj 0 0 doc_h;
-#X obj 3 385 doc_c 0;
-#X obj 3 425 doc_i 1;
-#X obj 3 487 doc_o 2;
-#X obj 14 455 doc_ii 0;
-#X obj 14 517 doc_oo 0;
-#X obj 14 539 doc_oo 1;
-#X obj 0 591 doc_f;
-#X obj 3 571 doc_also;
-#X obj 103 571 plotter_control;
-#X obj 97 539 doc_m o1 float;
-#X text 232 539 unknown bytes;
-#X obj 97 455 doc_m i0 float;
-#X obj 97 517 doc_m o0 <hpgl>;
-#X text 232 455 bytes that are supposed to form HPGL commands;
-#X text 232 517 HPGL commands;
-#X connect 0 0 10 0;
-#X connect 0 0 29 2;
-#X connect 0 1 5 0;
-#X connect 1 0 15 0;
-#X connect 2 0 1 0;
-#X connect 3 0 14 0;
-#X connect 4 0 15 0;
-#X connect 6 0 35 0;
-#X connect 8 0 23 0;
-#X connect 8 0 26 0;
-#X connect 9 0 34 0;
-#X connect 10 0 7 0;
-#X connect 11 0 10 1;
-#X connect 12 0 25 0;
-#X connect 13 0 4 0;
-#X connect 13 0 34 0;
-#X connect 14 0 22 0;
-#X connect 15 0 0 0;
-#X connect 15 1 1 1;
-#X connect 15 1 3 0;
-#X connect 15 1 27 0;
-#X connect 16 0 29 3;
-#X connect 17 0 16 1;
-#X connect 18 0 16 0;
-#X connect 19 0 29 4;
-#X connect 20 0 19 1;
-#X connect 21 0 19 0;
-#X connect 22 0 15 0;
-#X connect 22 1 15 0;
-#X connect 23 0 29 0;
-#X connect 24 0 8 0;
-#X connect 24 1 23 1;
-#X connect 24 1 31 0;
-#X connect 26 0 30 0;
-#X connect 27 0 28 0;
-#X connect 28 0 8 0;
-#X connect 28 1 26 1;
-#X connect 29 0 8 1;
-#X connect 29 1 24 0;
-#X connect 30 0 12 0;
-#X connect 31 0 32 0;
-#X connect 31 0 33 0;
-#X connect 32 0 36 0;
-#X connect 33 0 27 0;
-#X connect 34 0 8 1;
-#X connect 35 0 29 1;
-#X connect 36 0 31 1;
-#X connect 45 1 46 0;
-#X connect 47 1 48 0;
-#X connect 49 1 51 0;
-#X connect 50 1 52 0;
diff --git a/externals/gridflow/doc/flow_classes/range-help.pd b/externals/gridflow/doc/flow_classes/range-help.pd
deleted file mode 100644
index 12415511..00000000
--- a/externals/gridflow/doc/flow_classes/range-help.pd
+++ /dev/null
@@ -1,28 +0,0 @@
-#N canvas 680 0 632 393 10;
-#X obj 0 0 doc_h;
-#X obj 3 99 doc_c 0..;
-#X obj 3 304 doc_o 1..;
-#X obj 14 169 doc_ii 0;
-#X text 232 169 a value to be sent to one of the outlets. The first
-outlet is for values smaller than the first argument \; else the second
-outlet is for values smaller than the second argument \; and so on
-\; and the last outlet is for values greater or equal to the last argument.
-;
-#X obj 14 334 doc_oo any;
-#X obj 97 334 doc_m oany float;
-#X obj 97 169 doc_m i0 float;
-#X obj 3 139 doc_i 1..;
-#X obj 14 169 doc_ii other;
-#X obj 97 270 doc_m iother float;
-#X text 232 270 sets the corresponding separator in the separator list.
-;
-#X obj 0 364 doc_f;
-#X obj 256 53 moses 1;
-#X obj 164 53 range 1 2 3;
-#X text 241 52 =;
-#X obj 306 53 moses 2;
-#X obj 356 53 moses 3;
-#X connect 7 1 4 0;
-#X connect 10 1 11 0;
-#X connect 13 1 16 0;
-#X connect 16 1 17 0;
diff --git a/externals/gridflow/doc/flow_classes/receives-help.pd b/externals/gridflow/doc/flow_classes/receives-help.pd
deleted file mode 100644
index 6284c1f9..00000000
--- a/externals/gridflow/doc/flow_classes/receives-help.pd
+++ /dev/null
@@ -1,38 +0,0 @@
-#N canvas 335 118 632 409 10;
-#X obj 0 0 doc_h;
-#X obj 0 380 doc_f;
-#X obj 3 93 doc_c 0..;
-#X obj 14 123 doc_cc 0;
-#X obj 14 165 doc_cc other;
-#X obj 97 123 doc_m c0 symbol;
-#X obj 97 165 doc_m cother symbol;
-#X text 232 123 the prefix that is going to be common to all receive-symbols.
-if omitted \, the blank symbol will be used (thus no prefix).;
-#X text 232 165 the suffix of each receive symbol that will be registered.
-;
-#X obj 3 195 doc_i 1;
-#X obj 3 296 doc_o 2;
-#X obj 14 225 doc_ii 0;
-#X obj 14 326 doc_oo 0;
-#X obj 14 348 doc_oo 1;
-#X obj 97 225 doc_m i0 list;
-#X text 232 225 list of symbols to register receive-symbols for. they
-will be prefixed. sending such a message unregisters all previous receive-symbols
-registered by this box (which may be reregistered immediately... if
-this is what you're doing);
-#X text 232 326 the message received;
-#X obj 97 326 doc_m o0 <any>;
-#X obj 97 348 doc_m o1 symbol;
-#X text 232 348 the receive-symbol that this message was received as.
-;
-#X obj 85 53 receives \$0- a b c;
-#X text 206 52 =;
-#X obj 223 54 r \$0-a;
-#X obj 265 54 r \$0-b;
-#X obj 307 54 r \$0-c;
-#X text 356 52 and more;
-#X connect 5 1 7 0;
-#X connect 6 1 8 0;
-#X connect 14 1 15 0;
-#X connect 17 1 16 0;
-#X connect 18 1 19 0;
diff --git a/externals/gridflow/doc/flow_classes/route2-help.pd b/externals/gridflow/doc/flow_classes/route2-help.pd
deleted file mode 100644
index c2dceaa5..00000000
--- a/externals/gridflow/doc/flow_classes/route2-help.pd
+++ /dev/null
@@ -1,33 +0,0 @@
-#N canvas 412 190 632 485 10;
-#X obj 11 140 route2 blah foo bar;
-#X msg 29 39 blah blah blah;
-#X msg 29 62 foo 42;
-#X msg 29 86 bar 3.14159;
-#X obj 140 160 display;
-#X obj 97 180 display;
-#X obj 54 200 display;
-#X obj 12 220 display;
-#X msg 29 114 pas rapport;
-#X text 176 29 just like [route];
-#X text 177 46 but preserves message as-is;
-#X obj 0 0 doc_h;
-#X obj 3 253 doc_c n;
-#X obj 3 313 doc_i 1;
-#X obj 3 373 doc_o n;
-#X obj 14 343 doc_ii 0;
-#X obj 14 403 doc_oo nonlast;
-#X obj 14 426 doc_oo last;
-#X obj 14 283 doc_cc any;
-#X obj 0 456 doc_f;
-#X obj 97 402 doc_m ononlast <any>;
-#X obj 97 426 doc_m olast <any>;
-#X obj 97 343 doc_m i0 <any>;
-#X obj 97 283 doc_m cany symbol;
-#X connect 0 0 7 0;
-#X connect 0 1 6 0;
-#X connect 0 2 5 0;
-#X connect 0 3 4 0;
-#X connect 1 0 0 0;
-#X connect 2 0 0 0;
-#X connect 3 0 0 0;
-#X connect 8 0 0 0;
diff --git a/externals/gridflow/doc/flow_classes/seq_fold-help.pd b/externals/gridflow/doc/flow_classes/seq_fold-help.pd
deleted file mode 100644
index fd21cebf..00000000
--- a/externals/gridflow/doc/flow_classes/seq_fold-help.pd
+++ /dev/null
@@ -1,46 +0,0 @@
-#N canvas 536 114 632 525 10;
-#X obj 125 126 seq_fold;
-#X msg 125 65 2 \, 3 \, 5 \, 7 \, end;
-#X obj 125 93 route end;
-#X obj 150 150 +;
-#X obj 126 179 display;
-#X obj 0 0 doc_h;
-#X obj 3 222 doc_c 0;
-#X obj 3 262 doc_i 4;
-#X obj 14 292 doc_ii 0;
-#X obj 14 314 doc_ii 1;
-#X obj 14 336 doc_ii 2;
-#X obj 14 358 doc_ii 3;
-#X obj 3 390 doc_o 3;
-#X obj 14 420 doc_oo 0;
-#X obj 14 442 doc_oo 1;
-#X obj 14 464 doc_oo 2;
-#X obj 0 496 doc_f;
-#X obj 97 292 doc_m i0 bang;
-#X obj 97 314 doc_m i1 <any>;
-#X obj 97 336 doc_m i2 <any>;
-#X obj 97 358 doc_m i3 <any>;
-#X obj 97 420 doc_m o0 <any>;
-#X obj 97 442 doc_m o1 <any>;
-#X obj 97 464 doc_m o2 <any>;
-#X text 232 442 to outside left inlet;
-#X text 232 464 to outside right inlet;
-#X text 232 420 final result;
-#X text 232 358 from outside outlet;
-#X text 232 336 seed;
-#X text 232 292 output the final result;
-#X text 232 314 sequence of values to be folded;
-#X connect 0 0 4 0;
-#X connect 0 1 3 0;
-#X connect 0 2 3 1;
-#X connect 1 0 2 0;
-#X connect 2 0 0 0;
-#X connect 2 1 0 1;
-#X connect 3 0 0 3;
-#X connect 17 1 29 0;
-#X connect 18 1 30 0;
-#X connect 19 1 28 0;
-#X connect 20 1 27 0;
-#X connect 21 1 26 0;
-#X connect 22 1 24 0;
-#X connect 23 1 25 0;
diff --git a/externals/gridflow/doc/flow_classes/shunt-help.pd b/externals/gridflow/doc/flow_classes/shunt-help.pd
deleted file mode 100644
index d2828f23..00000000
--- a/externals/gridflow/doc/flow_classes/shunt-help.pd
+++ /dev/null
@@ -1,70 +0,0 @@
-#N canvas 673 22 632 642 10;
-#X floatatom 121 151 5 0 0 0 - - -;
-#X floatatom 163 151 5 0 0 0 - - -;
-#X floatatom 205 151 5 0 0 0 - - -;
-#X floatatom 247 151 5 0 0 0 - - -;
-#X floatatom 166 85 5 0 0 0 - - -;
-#X obj 210 85 hradio 15 1 0 4 empty empty empty 0 -6 0 8 -260818 -1
--1 0;
-#X text 272 84 <-- select output here;
-#X text 65 84 vary this -->;
-#X obj 346 119 shunt;
-#X text 232 527 The integer passed to inlet 1 determines which outlet
-is active.;
-#X text 232 602 Outputs incoming message value according to the selector
-value.;
-#X text 7 29 The [shunt] routes any type of data to its active outlet.
-The number of outlets is defined by the argument at creation and the
-active outlet is defined by its right most inlet.;
-#X obj 0 0 doc_h;
-#X obj 3 286 doc_i 2;
-#X obj 3 572 doc_o n;
-#X obj 14 316 doc_ii 0;
-#X obj 14 527 doc_ii 1;
-#X obj 14 602 doc_oo any;
-#X obj 166 114 shunt 4;
-#X text 232 219 Defines the number of outlets desired. If [shunt] is
-created without an argument \, it will have 2 outlets.;
-#X text 232 254 Defines the initial active outlet.;
-#X obj 3 189 doc_c 2;
-#X obj 14 254 doc_cc 1;
-#X obj 14 219 doc_cc 0;
-#X obj 0 647 doc_f;
-#X obj 97 219 doc_m c0 float/int;
-#X obj 97 254 doc_m c1 float/int;
-#X obj 97 527 doc_m i1 float int;
-#X obj 97 602 doc_m oany <any>;
-#X obj 97 338 doc_m i0 index;
-#X obj 97 382 doc_m i0 mode;
-#X obj 97 316 doc_m i0 hi;
-#X obj 97 360 doc_m i0 lo;
-#X text 232 382 -2: going down \, pingpong;
-#X text 232 404 -1: going down \, cycling;
-#X obj 97 492 doc_m i0 <any>;
-#X text 232 426 0: not changing;
-#X text 232 448 1: going up \, cycling;
-#X text 232 470 2: going up \, pingpong;
-#X text 232 338 same as arg 1;
-#X text 232 360 min value for cycling and pingpong (default: 0);
-#X text 232 316 max value for cycling and pingpong (default: N-1);
-#X text 232 492 Incoming message can be Grids \, Symbols \, Floats
-\, Lists \, etc.;
-#X connect 4 0 18 0;
-#X connect 5 0 18 1;
-#X connect 18 0 0 0;
-#X connect 18 1 1 0;
-#X connect 18 2 2 0;
-#X connect 18 3 3 0;
-#X connect 25 1 19 0;
-#X connect 26 1 20 0;
-#X connect 27 1 9 0;
-#X connect 28 1 10 0;
-#X connect 29 1 39 0;
-#X connect 30 1 33 0;
-#X connect 30 1 34 0;
-#X connect 30 1 36 0;
-#X connect 30 1 37 0;
-#X connect 30 1 38 0;
-#X connect 31 1 41 0;
-#X connect 32 1 40 0;
-#X connect 35 1 42 0;
diff --git a/externals/gridflow/doc/flow_classes/systemtime-help.pd b/externals/gridflow/doc/flow_classes/systemtime-help.pd
deleted file mode 100644
index 7bcdbd51..00000000
--- a/externals/gridflow/doc/flow_classes/systemtime-help.pd
+++ /dev/null
@@ -1,33 +0,0 @@
-#N canvas 463 105 632 422 10;
-#X obj 0 0 doc_h;
-#X obj 3 187 doc_c;
-#X obj 0 393 doc_f;
-#X obj 3 373 doc_also;
-#X obj 103 373 cputime;
-#X obj 157 373 systemtime;
-#X text 186 108 What [usertime] and [systemtime] tell you together
-should add up to the amount that [cputime] tells you.;
-#X obj 3 311 doc_o 1;
-#X obj 3 227 doc_i 2;
-#X obj 14 257 doc_ii 0;
-#X obj 14 279 doc_ii 1;
-#X obj 14 341 doc_oo 0;
-#X obj 97 257 doc_m i0 bang;
-#X obj 97 279 doc_m i1 bang;
-#X obj 97 341 doc_m o0 float;
-#X text 232 257 reset timer;
-#X text 232 279 trigger output;
-#X text 232 341 value in milliseconds;
-#X text 188 38 While [cputime] gives you the total time spent in the
-pd process \, therefore excluding any time spent running any other
-programmes \, time spent running pd.tk \, and time spent doing nothing
-at all \, [systemtime] also excludes whatever is NOT run in the kernel.
-;
-#X text 188 142 In C language \, this is the "stime" feature of the
-times() command.;
-#X obj 61 66 systemtime;
-#X connect 3 1 4 0;
-#X connect 3 1 5 0;
-#X connect 12 1 15 0;
-#X connect 13 1 16 0;
-#X connect 14 1 17 0;
diff --git a/externals/gridflow/doc/flow_classes/tsctime-help.pd b/externals/gridflow/doc/flow_classes/tsctime-help.pd
deleted file mode 100644
index e53730a5..00000000
--- a/externals/gridflow/doc/flow_classes/tsctime-help.pd
+++ /dev/null
@@ -1,50 +0,0 @@
-#N canvas 508 124 632 550 10;
-#X obj 0 0 doc_h;
-#X obj 3 302 doc_c;
-#X obj 0 521 doc_f;
-#X obj 3 501 doc_also;
-#X obj 3 426 doc_o 1;
-#X obj 3 342 doc_i 2;
-#X obj 14 372 doc_ii 0;
-#X obj 14 394 doc_ii 1;
-#X obj 14 456 doc_oo 0;
-#X obj 97 372 doc_m i0 bang;
-#X obj 97 394 doc_m i1 bang;
-#X obj 97 456 doc_m o0 float;
-#X text 232 372 reset timer;
-#X text 232 394 trigger output;
-#X obj 103 501 realtime;
-#X obj 11 96 tsctime;
-#X text 188 38 This is a super-high-resolution version of the [realtime]
-class that does not look at the ordinary clock of the operating system
-\, and instead uses the clock tick of the CPU itself. However \, if
-you have a variable-clock CPU \, this will give you some kind of virtual
-time.;
-#X msg 50 45 bang;
-#X msg 11 45 bang;
-#X floatatom 14 122 10 0 0 0 - - -;
-#X obj 78 100 realtime;
-#X floatatom 78 122 10 0 0 0 - - -;
-#X text 190 114 It's also possible that this has some other bugs related
-to scaling. However \, even if it gives you really weird values \,
-this object will give you very precise values in what is really the
-wrong scale.;
-#X text 192 171 if you are trying to measure real time with this \,
-you should disable any CPU energy saving that may change the CPU's
-clock speed. However \, if you want to measure CPU usage \, [tsctime]
-is the ONLY of the time-objects to allow you to measure CPU usage reliably
-while your clock speed changes.;
-#X text 192 255 in assembly language \, [tsctime] is called "RDTSC"
-\, and this is where [tsctime] got its name from.;
-#X text 232 456 value in "milliseconds" (or lousy imitation thereof...
-see intro text above.);
-#X connect 3 1 14 0;
-#X connect 9 1 12 0;
-#X connect 10 1 13 0;
-#X connect 11 1 25 0;
-#X connect 15 0 19 0;
-#X connect 17 0 15 1;
-#X connect 17 0 20 1;
-#X connect 18 0 15 0;
-#X connect 18 0 20 0;
-#X connect 20 0 21 0;
diff --git a/externals/gridflow/doc/flow_classes/unix_time-help.pd b/externals/gridflow/doc/flow_classes/unix_time-help.pd
deleted file mode 100644
index 6e499216..00000000
--- a/externals/gridflow/doc/flow_classes/unix_time-help.pd
+++ /dev/null
@@ -1,50 +0,0 @@
-#N canvas 679 22 632 619 10;
-#X obj 109 184 unix_time;
-#X obj 109 153 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 26 243 #to_list;
-#X obj 109 111 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
-1;
-#X obj 27 321 display;
-#X obj 109 129 metro 500;
-#X text 32 302 <-- Ascii format for the date;
-#X obj 326 292 display;
-#X obj 141 242 display;
-#X obj 325 266 display;
-#X obj 324 241 sprintf %04d%02d%02d-%02d%02d%02d;
-#X obj 0 0 doc_h;
-#X obj 3 356 doc_c 0;
-#X obj 3 396 doc_i 1;
-#X obj 3 471 doc_o 3;
-#X obj 14 426 doc_ii 0;
-#X obj 14 501 doc_oo 0;
-#X obj 14 523 doc_oo 1;
-#X obj 14 545 doc_oo 2;
-#X text 9 32 This object returns the Unix timestamp. The first outlet
-does so with ASCII \, the second in seconds and the third outlet outputs
-the fractions of seconds up to 1/100 0 th of a second which is useful
-for creating filenames.;
-#X text 232 426 A bang at the left inlet will tell [unix_time] to get
-the current Unix timestamp and send it to the outlets.;
-#X text 232 501 Outputs the time and date in ASCII format.;
-#X text 232 523 Outputs the Unix timestamp in seconds.;
-#X text 232 545 Outputs the fractions of a second up to 10 microseconds
-(?) (actual precision is probably platform-dependent...);
-#X obj 97 426 doc_m i0 bang;
-#X obj 97 501 doc_m o0 list;
-#X obj 97 523 doc_m o1 list;
-#X obj 97 545 doc_m o2 list;
-#X obj 0 590 doc_f;
-#X connect 0 0 2 0;
-#X connect 0 1 8 0;
-#X connect 0 2 7 0;
-#X connect 0 2 10 0;
-#X connect 1 0 0 0;
-#X connect 2 0 4 0;
-#X connect 3 0 5 0;
-#X connect 5 0 1 0;
-#X connect 10 0 9 0;
-#X connect 24 1 20 0;
-#X connect 25 1 21 0;
-#X connect 26 1 22 0;
-#X connect 27 1 23 0;
diff --git a/externals/gridflow/doc/flow_classes/usertime-help.pd b/externals/gridflow/doc/flow_classes/usertime-help.pd
deleted file mode 100644
index 28d52a2c..00000000
--- a/externals/gridflow/doc/flow_classes/usertime-help.pd
+++ /dev/null
@@ -1,33 +0,0 @@
-#N canvas 508 124 632 412 10;
-#X obj 0 0 doc_h;
-#X obj 3 177 doc_c;
-#X obj 0 383 doc_f;
-#X obj 3 363 doc_also;
-#X obj 103 363 cputime;
-#X obj 157 363 systemtime;
-#X text 186 108 What [usertime] and [systemtime] tell you together
-should add up to the amount that [cputime] tells you.;
-#X obj 3 301 doc_o 1;
-#X obj 3 217 doc_i 2;
-#X obj 14 247 doc_ii 0;
-#X obj 14 269 doc_ii 1;
-#X obj 14 331 doc_oo 0;
-#X obj 97 247 doc_m i0 bang;
-#X obj 97 269 doc_m i1 bang;
-#X obj 97 331 doc_m o0 float;
-#X text 232 247 reset timer;
-#X text 232 269 trigger output;
-#X text 232 331 value in milliseconds;
-#X text 188 142 In C language \, this is the "utime" feature of the
-times() command.;
-#X obj 61 66 usertime;
-#X text 188 38 While [cputime] gives you the total time spent in the
-pd process \, therefore excluding any time spent running any other
-programmes \, time spent running pd.tk \, and time spent doing nothing
-at all \, [systemtime] also excludes whatever is run in the kernel.
-;
-#X connect 3 1 4 0;
-#X connect 3 1 5 0;
-#X connect 12 1 15 0;
-#X connect 13 1 16 0;
-#X connect 14 1 17 0;
diff --git a/externals/gridflow/doc/flow_classes/var.#-help.pd b/externals/gridflow/doc/flow_classes/var.#-help.pd
deleted file mode 100644
index 67f921ea..00000000
--- a/externals/gridflow/doc/flow_classes/var.#-help.pd
+++ /dev/null
@@ -1,21 +0,0 @@
-#N canvas 335 118 632 407 10;
-#X obj 0 0 doc_h;
-#X obj 0 378 doc_f;
-#X obj 125 58 var.#;
-#X text 189 44 somewhat like [#store] but designed to be most especially
-to grids what [f] is to floats and [symbol] is to symbols.;
-#X obj 3 218 doc_i 2;
-#X obj 3 318 doc_o 1;
-#X text 191 85 it was named that way because if you alias [f] to [var.f]
-\, and [s] to [var.s] \, then [var.\$1] will instantiate an object
-of that class-family. (this is related to the PureUnity project);
-#X obj 14 348 doc_oo 0;
-#X obj 14 288 doc_ii 1;
-#X obj 97 348 doc_m o0 grid;
-#X obj 97 288 doc_m i1 grid;
-#X obj 97 268 doc_m i0 grid;
-#X obj 97 248 doc_m i0 bang;
-#X obj 14 248 doc_ii 0;
-#X obj 14 188 doc_cc 0;
-#X obj 3 158 doc_c 0..1;
-#X obj 97 188 doc_m c0 grid;
diff --git a/externals/gridflow/doc/index.pd b/externals/gridflow/doc/index.pd
deleted file mode 100644
index c508cff9..00000000
--- a/externals/gridflow/doc/index.pd
+++ /dev/null
@@ -1,329 +0,0 @@
-#N canvas 0 0 560 480 10 ;
-#X obj 140 50 # +;
-#X text 180 50 plain numeric operators on grids: + - * / etc;
-#X obj -4 82 #apply_colormap_channelwise;
-#X text 180 82 ;
-#X obj 56 114 #background_model;
-#X text 180 114 make mask from learning to distinguish background from foreground;
-#X obj 116 146 #border;
-#X text 180 146 add padding on sides of a grid;
-#X obj 116 178 #camera;
-#X text 180 178 control panel for opening cameras;
-#X obj 116 210 #cast i;
-#X text 180 210 convert grid from one number type to another;
-#X obj 104 242 #centroid;
-#X text 180 242 find centroid (weighted average) of the coordinates of a grid;
-#X obj 116 274 #change;
-#X text 180 274 send grid only if different from previous grid;
-#X obj 104 306 #checkers;
-#X text 180 306 make image of chequered background in two tones of grey;
-#X obj 128 338 #clip;
-#X text 180 338 min and max;
-#X obj 86 370 #cluster_avg;
-#X text 180 370 ;
-#X obj 4 402 #color;
-#X text 180 402 GUI for selecting a colour;
-#X obj 104 474 #contrast;
-#X text 180 474 adjust contrast in two different ways;
-#X obj 104 506 #convolve;
-#X text 180 506 compute convolution product of a grid (blur and edge-detection);
-#X obj 134 538 #dim;
-#X text 180 538 get the size (dimensions) of a grid;
-#X obj 80 570 #downscale_by;
-#X text 180 570 reduce the size of an image by a whole factor;
-#X obj 98 602 #draw_hpgl;
-#X text 180 602 ;
-#X obj 92 634 #draw_image;
-#X text 180 634 picture-in-picture;
-#X obj 86 666 #draw_points;
-#X text 180 666 (future use);
-#X obj 80 698 #draw_polygon;
-#X text 180 698 draw polygon in an image;
-#X obj 98 730 #draw_rect;
-#X text 180 730 draw a rectangle in an image;
-#X obj 86 762 #draw_slider;
-#X text 180 762 draw a slider in an image;
-#X obj 80 794 #edit_polygon;
-#X text 180 794 draw a polygon in an image and react to mouse events;
-#X obj 56 826 #extract_diagonal;
-#X text 180 826 ;
-#X obj 128 858 #fade;
-#X text 180 858 fade in exponential-decay fashion (linear recurrence);
-#X obj 104 890 #fade_lin;
-#X text 180 890 fade in piecewise-linear fashion;
-#X obj 104 922 #fastblur;
-#X text 180 922 speedy shortcut for rectangular blur;
-#X obj 134 954 #fft;
-#X text 180 954 compute forward or inverse one-or-two-dimensional complex FFT of a grid;
-#X obj 104 986 #finished;
-#X text 180 986 bang when grid transmission has ended;
-#X obj 116 1018 #fold +;
-#X text 180 1018 compute the sum of each row \, product of each row, and other similar operations;
-#X obj 98 1050 #for 0 4 1;
-#X text 180 1050 make a grid from all numbers or coordinates in a certain range;
-#X obj 104 1082 #from_pix;
-#X text 180 1082 convert pix (GEM) to grid;
-#X obj 122 1114 #gamma;
-#X text 180 1114 apply gamma correction;
-#X obj 122 1146 #grade;
-#X text 180 1146 make an index of the sorting of a grid;
-#X obj 56 1178 #greyscale_to_rgb;
-#X text 180 1178 convert greyscale to RGB;
-#X obj 122 1210 #hello;
-#X text 180 1210 make 7 colour bars;
-#X obj 104 1242 #hueshift;
-#X text 180 1242 apply hue shift by rotating the color wheel;
-#X obj 116 1274 #import;
-#X text 180 1274 convert float \, list, or symbol ASCII codes, to a grid;
-#X obj 92 1306 #import_pix;
-#X text 180 1306 old name of #from_pix;
-#X obj 140 1338 #in;
-#X text 180 1338 open file or device for reading or download;
-#X obj 122 1370 #inner;
-#X text 180 1370 scalar ("dot") product \, matrix product, tensor contraction, image channel remapping, etc.;
-#X obj 104 1402 #io.aalib;
-#X text 180 1402 open an aalib window;
-#X obj 98 1434 #io.dc1394;
-#X text 180 1434 open a faiawaia "DC" camera (not DV) using a Linux-compatible OS;
-#X obj 110 1466 #io.grid;
-#X text 180 1466 read or write a .grid file (GridFlow storage format);
-#X obj 110 1498 #io.jpeg;
-#X text 180 1498 read or write a .jpeg file;
-#X obj 110 1530 #io.mpeg;
-#X text 180 1530 read a .mpeg video file;
-#X obj 116 1562 #io.png;
-#X text 180 1562 read a .png image file;
-#X obj 116 1594 #io.ppm;
-#X text 180 1594 read or write a .pbm or .pgm or .ppm image file;
-#X obj 80 1626 #io.quicktime;
-#X text 180 1626 read a .mov video file (or perhaps .avi);
-#X obj 116 1658 #io.sdl;
-#X text 180 1658 open a SDL window;
-#X obj 86 1690 #io.videodev;
-#X text 180 1690 open a V4L1 device (Linux interface for video cameras and video digitisers);
-#X obj 116 1722 #io.x11;
-#X text 180 1722 open a X11 window;
-#X obj 128 1754 #join;
-#X text 180 1754 join two grids together along any dimension;
-#X obj 98 1786 #labelling;
-#X text 180 1786 tag connected pixels with region numbers in a two-tone single-channel image;
-#X obj 122 1818 #layer;
-#X text 180 1818 layer two same-sized images;
-#X obj 62 1850 #line_to_polygon;
-#X text 180 1850 convert line (as point pair) to polygon (rotated rectangle);
-#X obj 92 1882 #make_cross;
-#X text 180 1882 make cross-shaped polygon;
-#X obj 116 1914 #moment;
-#X text 180 1914 find 1st or 2nd order moment (weighted average or variance) of the coordinates of a grid;
-#X obj 80 1946 #moment_polar;
-#X text 180 1946 convert covariance matrix to the longest and shortest radius of an ellipse and a rotation angle;
-#X obj 56 1978 #motion_detection;
-#X text 180 1978 frame difference with some options;
-#X obj 122 2010 #mouse;
-#X text 180 2010 converts mouse events to reports of clicks \, drags, unclicks, motions, and separate buttons and wheel;
-#X obj 62 2042 #noise_gate_yuvs;
-#X text 180 2042 replaces dark pixels by black pixels in signed YUV images;
-#X obj 134 2074 #out;
-#X text 180 2074 open file or device for writing or upload;
-#X obj 110 2106 #outer +;
-#X text 180 2106 apply numeric operator on all possible combinations of elements of one grid with elements of another;
-#X obj 128 2138 #pack;
-#X text 180 2138 combine floats on separate inlets to make a grid;
-#X obj 86 2170 #perspective;
-#X text 180 2170 divide each point by its depth;
-#X obj 80 2202 #polygon_area;
-#X text 180 2202 find area of a polygon in square pixels;
-#X obj 44 2234 #polygon_comparator;
-#X text 180 2234 find similarity between two polygons independently of rotation \, by radial maps and FFT;
-#X obj 50 2266 #polygon_each_edge;
-#X text 180 2266 convert a polygon to a sequence of overlapping 2-sided polygons representing edges;
-#X obj 68 2298 #polygon_moment;
-#X text 180 2298 find average of all points inside of a polygon;
-#X obj 50 2330 #polygon_perimetre;
-#X text 180 2330 find perimetre of a polygon in pixels (euclidian);
-#X obj 44 2362 #polygon_radial_map;
-#X text 180 2362 find radius of a polygon from a given origin \, sampled at equally spaced angles;
-#X obj 98 2394 #posterize;
-#X text 180 2394 quantise pixel values;
-#X obj 122 2426 #print;
-#X text 180 2426 print to console;
-#X obj 122 2458 #ravel;
-#X text 180 2458 do #redim so that a grid keeps same number of elements but just one dimension;
-#X obj 116 2490 #record;
-#X text 180 2490 wrapper around [#in quicktime];
-#X obj 104 2522 #redim ();
-#X text 180 2522 change the size of a grid by restreaming contents into a new shape;
-#X obj 92 2554 #reinterval;
-#X text 180 2554 ;
-#X obj 86 2586 #remap_image;
-#X text 180 2586 apply object chain on pixel positions to make new image from chosen pixels of the input image;
-#X obj 110 2618 #reverse;
-#X text 180 2618 mirror image of a grid along a dimension;
-#X obj 56 2650 #rgb_to_greyscale;
-#X text 180 2650 convert RGB to greyscale;
-#X obj 86 2682 #rgb_to_rgba;
-#X text 180 2682 convert RGB to RGBA (but setting alpha to 0);
-#X obj 92 2714 #rgb_to_yuv;
-#X text 180 2714 convert RGB to unsigned YUV;
-#X obj 86 2746 #rgba_to_rgb;
-#X text 180 2746 convert RGBA to RGB;
-#X obj 116 2778 #rotate;
-#X text 180 2778 rotate points through two axes (or rotate pixels as points in a colorspace);
-#X obj 74 2810 #rotatificator;
-#X text 180 2810 make rotation matrix for any two dimensions chosen from a space of any number of dimensions;
-#X obj 92 2842 #saturation;
-#X text 180 2842 multiply chroma by some value;
-#X obj 104 2874 #scale_by;
-#X text 180 2874 reduce the size of an image by a whole factor;
-#X obj 104 2906 #scale_to;
-#X text 180 2906 scale an image from one size to any other size by deleting or duplicating rows and columns;
-#X obj 116 2938 #scan +;
-#X text 180 2938 compute the cumulative sums of each row \, and other similar operations;
-#X obj 104 2970 #seq_fold;
-#X text 180 2970 cascade the use of an object on all elements of an incoming grid message sequence;
-#X obj 122 3002 #slice;
-#X text 180 3002 crop an image using a start point (top left) and end point (bottom right);
-#X obj 104 3034 #solarize;
-#X text 180 3034 like pingpong but on all pixel values of a grid;
-#X obj 128 3066 #sort;
-#X text 180 3066 sort each row of a grid;
-#X obj 116 3098 #spread;
-#X text 180 3098 add noise to each vector (point or pixel);
-#X obj 122 3130 #store;
-#X text 180 3130 store image in RAM \, in-place picture-in-picture, and make lookups in various ways;
-#X obj 128 3162 #swap;
-#X text 180 3162 like [swap] for grids;
-#X obj 140 3194 #t;
-#X text 180 3194 like [t a a] for grids;
-#X obj 74 3226 #text_to_image;
-#X text 180 3226 use a fixed-width font grid to make a tiling of characters as specified by a text string;
-#X obj 104 3258 #to_float;
-#X text 180 3258 convert grid to sequence of floats;
-#X obj 110 3290 #to_list;
-#X text 180 3290 convert grid to list;
-#X obj 92 3322 #to_literal;
-#X text 180 3322 convert grid to grid-literal (list with a # sign);
-#X obj 116 3354 #to_pix;
-#X text 180 3354 convert grid to pix (GEM);
-#X obj 98 3386 #to_symbol;
-#X text 180 3386 convert grid of ASCII codes to symbol;
-#X obj 98 3418 #transpose;
-#X text 180 3418 swap two dimensions out of any \, in a grid;
-#X obj 128 3450 #type;
-#X text 180 3450 get a symbol representing the number type of a grid;
-#X obj 116 3482 #unpack;
-#X text 180 3482 split a grid into floats on separate outlets;
-#X obj 116 3514 #window;
-#X text 180 3514 a [#out window] that can be toggled to appear and disappear;
-#X obj 92 3546 #yuv_to_rgb;
-#X text 180 3546 convert unsigned YUV to RGB;
-#X obj 134 3578 args;
-#X text 180 3578 pick up the arguments of an abstraction instance \, including nested lists and init-messages;
-#X obj 128 3610 ascii;
-#X text 180 3610 write integer as decimal in ascii codes;
-#X obj 98 3642 ascii_to_f;
-#X text 180 3642 converts a list of ascii codes to a float;
-#X obj 86 3674 class_exists;
-#X text 180 3674 figure out whether a class has been loaded by pd;
-#X obj 116 3706 cv/#Add;
-#X text 180 3706 OpenCV addition;
-#X obj 116 3738 cv/#And;
-#X text 180 3738 OpenCV bitwise AND;
-#X obj 74 3770 cv/#ApproxPoly;
-#X text 180 3770 ;
-#X obj 62 3802 cv/#CornerHarris;
-#X text 180 3802 ;
-#X obj 116 3834 cv/#Div;
-#X text 180 3834 OpenCV division;
-#X obj 92 3866 cv/#Ellipse;
-#X text 180 3866 OpenCV draw ellipse;
-#X obj 32 3898 cv/#HaarDetectObjects;
-#X text 180 3898 OpenCV (future use);
-#X obj 98 3930 cv/#Invert;
-#X text 180 3930 OpenCV invert matrix;
-#X obj 98 3962 cv/#KMeans;
-#X text 180 3962 OpenCV K-Means clusteriser;
-#X obj 98 3994 cv/#Kalman;
-#X text 180 3994 OpenCV (future use);
-#X obj 116 4026 cv/#Mul;
-#X text 180 4026 OpenCV multiplication;
-#X obj 122 4058 cv/#Or;
-#X text 180 4058 OpenCV bitwise OR;
-#X obj 116 4090 cv/#SVD;
-#X text 180 4090 OpenCV singular value decomposition (eigendecomposition);
-#X obj 116 4122 cv/#Sub;
-#X text 180 4122 OpenCV subtraction;
-#X obj 116 4154 cv/#Xor;
-#X text 180 4154 OpenCV bitwise XOR;
-#X obj 116 4186 display;
-#X text 180 4186 print message or grid inside of the patch;
-#X obj 122 4218 expect;
-#X text 180 4218 currently does like list.== (will do more than that in the future);
-#X obj 140 4250 for;
-#X text 180 4250 make sequence of float messages for each number in a range with specified stepping;
-#X obj 116 4282 foreach;
-#X text 180 4282 convert a list to a sequence of atom messages;
-#X obj 140 4314 fps;
-#X text 180 4314 measure frames per second and make statistics;
-#X obj 110 4346 gf.error;
-#X text 180 4346 emit error message from the perspective of the current abstraction instance in its parent patch;
-#X obj 74 4378 gf.io_generate;
-#X text 180 4378 for internal use by #in and #out;
-#X obj 98 4410 gf.oneshot;
-#X text 180 4410 spigot that shuts itself down after each message;
-#X obj 62 4442 gf.suffix_lookup;
-#X text 180 4442 find the objectclass corresponding ;
-#X obj 74 4474 hpgl_find_bbox;
-#X text 180 4474 ;
-#X obj 62 4506 hpgl_font_render;
-#X text 180 4506 ;
-#X obj 116 4538 hpgl_op;
-#X text 180 4538 ;
-#X obj 44 4570 hpgl_track_position;
-#X text 180 4570 ;
-#X obj 62 4602 interval_overlap;
-#X text 180 4602 ;
-#X obj 134 4634 inv*;
-#X text 180 4634 swapped /;
-#X obj 134 4666 inv+;
-#X text 180 4666 swapped -;
-#X obj 116 4698 list.==;
-#X text 180 4698 test two lists of floats and/or symbols for equality;
-#X obj 110 4730 listfind;
-#X text 180 4730 find index of an element in a list;
-#X obj 92 4762 listflatten;
-#X text 180 4762 merge all nested lists together \, depth-first;
-#X obj 110 4794 listread;
-#X text 180 4794 find element at an index in a list;
-#X obj 92 4826 listreverse;
-#X text 180 4826 mirror image of a list;
-#X obj 104 4858 norecurse;
-#X text 180 4858 ;
-#X obj 80 4890 parallel_port;
-#X text 180 4890 send to and receive from a DB25 parallel port;
-#X obj 110 4922 pingpong;
-#X text 180 4922 turns value of a counter into a zigzag between 0 and a given value;
-#X obj 68 4954 plotter_control;
-#X text 180 4954 make HPGL commands;
-#X obj 74 4986 plotter_parser;
-#X text 180 4986 interprets ascii codes as HPGL commands and output them as messages;
-#X obj 128 5018 range;
-#X text 180 5018 multiple moses in cascade;
-#X obj 86 5050 receives \$0-;
-#X text 180 5050 multiple receives with common outlet and other outlet telling the name of intended destination;
-#X obj 122 5082 route2;
-#X text 180 5082 route messages but keep them intact (does not remove selector);
-#X obj 110 5114 seq_fold;
-#X text 180 5114 cascade the use of an object on all elements of an incoming message sequence;
-#X obj 128 5146 shunt;
-#X text 180 5146 demultiplexer: send input to separately specified outlet;
-#X obj 98 5178 systemtime;
-#X text 180 5178 time spent by process in kernel mode \, as measured by the OS;
-#X obj 116 5210 tsctime;
-#X text 180 5210 high-resolution real time \, as measured by the CPU;
-#X obj 104 5242 unix_time;
-#X text 180 5242 real time as measured by the OS \, including date;
-#X obj 110 5274 usertime;
-#X text 180 5274 time spent by process in non-kernel mode \, as measured by the OS;
-#X obj 128 5306 var.#;
-#X text 180 5306 like [f] for grids;
diff --git a/externals/gridflow/doc/locale/english.tcl b/externals/gridflow/doc/locale/english.tcl
deleted file mode 100644
index 87324620..00000000
--- a/externals/gridflow/doc/locale/english.tcl
+++ /dev/null
@@ -1,210 +0,0 @@
-# this file will not contain any aliases, just the canonical names
-
-proc say2 {k v} {
- say [lindex $k 0] $v
- foreach kk [lrange $k 1 end] {say $k "old name of $k : $v"}
-}
-
-proc say3 {k v} {
- set kk [regsub ^# $k @]
- say2 [list k kk] $v
-}
-
-category "Stuff"
-say # "plain numeric operators on grids: + - * / etc"
-say #border "add padding on sides of a grid"
-say #cast "convert grid from one number type to another"
-say #centroid "find centroid (weighted average) of the coordinates of a grid"
-say #convolve "compute convolution product of a grid (blur and edge-detection)"
-say #dim "get the size (dimensions) of a grid"
-say #downscale_by "reduce the size of an image by a whole factor"
-say #draw_image "picture-in-picture"
-say #draw_points "(future use)"
-
-category "Data Conversion"
-say #to_literal "convert grid to grid-literal (list with a # sign)"
-say #to_float "convert grid to sequence of floats"
-say #to_list "convert grid to list"
-say #to_pix "convert grid to pix (GEM)"
-say #to_symbol "convert grid of ASCII codes to symbol"
-
-category "Stuff"
-say #fft "compute forward or inverse one-or-two-dimensional complex FFT of a grid"
-say #finished "bang when grid transmission has ended"
-say #fold "compute the sum of each row, product of each row, and other similar operations"
-say #for "make a grid from all numbers or coordinates in a certain range"
-say #from_pix "convert pix (GEM) to grid"
-say #import_pix "old name of #from_pix"
-say #grade "make an index of the sorting of a grid"
-say #import "convert float, list, or symbol ASCII codes, to a grid"
-say #inner "scalar (\"dot\") product, matrix product, tensor contraction, image channel remapping, etc."
-
-category "Hardware and Files"
-say #camera "control panel for opening cameras"
-say #io.aalib "open an aalib window"
-say #io.dc1394 "open a faiawaia \"DC\" camera (not DV) using a Linux-compatible OS"
-say #io.grid "read or write a .grid file (GridFlow storage format)"
-say #io.jpeg "read or write a .jpeg file"
-say #io.mpeg "read a .mpeg video file"
-say #io.png "read a .png image file"
-say #io.ppm "read or write a .pbm or .pgm or .ppm image file"
-say #io.quicktime "read a .mov video file (or perhaps .avi)"
-say #io.sdl "open a SDL window"
-say #io.videodev "open a V4L1 device (Linux interface for video cameras and video digitisers)"
-say #io.x11 "open a X11 window"
-say parallel_port "send to and receive from a DB25 parallel port"
-say plotter_control "make HPGL commands"
-
-category "Stuff"
-say #labelling "tag connected pixels with region numbers in a two-tone single-channel image"
-say #layer "layer two same-sized images"
-say #moment "find 1st or 2nd order moment (weighted average or variance) of the coordinates of a grid"
-say #noise_gate_yuvs "replaces dark pixels by black pixels in signed YUV images"
-say #outer "apply numeric operator on all possible combinations of elements of one grid with elements of another"
-say #pack "combine floats on separate inlets to make a grid"
-say #perspective "divide each point by its depth"
-say #polygonize "(future use)"
-say #print "print to console"
-say #redim "change the size of a grid by restreaming contents into a new shape"
-say #reverse "mirror image of a grid along a dimension"
-say #rotatificator "make rotation matrix for any two dimensions chosen from a space of any number of dimensions"
-say #scale_by "reduce the size of an image by a whole factor"
-say #scan "compute the cumulative sums of each row, and other similar operations"
-say #store "store image in RAM, in-place picture-in-picture, and make lookups in various ways"
-say #transpose "swap two dimensions out of any, in a grid"
-say #type "get a symbol representing the number type of a grid"
-say #unpack "split a grid into floats on separate outlets"
-say #join "join two grids together along any dimension"
-
-category "Lists"
-say foreach "convert a list to a sequence of atom messages"
-say listfind "find index of an element in a list"
-say listread "find element at an index in a list"
-say listflatten "merge all nested lists together, depth-first"
-say listreverse "mirror image of a list"
-
-category "Stuff"
-say args "pick up the arguments of an abstraction instance, including nested lists and init-messages"
-say ascii "write integer as decimal in ascii codes"
-say class_exists "figure out whether a class has been loaded by pd"
-say display "print message or grid inside of the patch"
-say gf.error "emit error message from the perspective of the current abstraction instance in its parent patch"
-say gf.suffix_lookup "find the objectclass corresponding "
-say range "multiple moses in cascade"
-say receives "multiple receives with common outlet and other outlet telling the name of intended destination"
-say route2 "route messages but keep them intact (does not remove selector)"
-say send39 "backward-compatibility crutch for dynamic patching in pd 0.39"
-say shunt "demultiplexer: send input to separately specified outlet"
-say systemtime "time spent by process in kernel mode, as measured by the OS"
-say tsctime "high-resolution real time, as measured by the CPU"
-say unix_time "real time as measured by the OS, including date"
-say usertime "time spent by process in non-kernel mode, as measured by the OS"
-
-category "Stuff"
-say #apply_colormap_channelwise "apply color correction tables separately on each channel"
-say #background_model "make mask from learning to distinguish background from foreground"
-say #change "send grid only if different from previous grid"
-say #checkers "make image of chequered background in two tones of grey"
-say #clip "min and max"
-say #color "GUI for selecting a colour"
-say condition "Castonguay rectangle bounds-checking"
-say #contrast "adjust contrast in two different ways"
-say count "Castonguay counter"
-say #fade_lin "fade in piecewise-linear fashion"
-say #fade "fade in exponential-decay fashion (linear recurrence)"
-say #fastblur "speedy shortcut for rectangular blur"
-say for "make sequence of float messages for each number in a range with specified stepping"
-say fps "measure frames per second and make statistics"
-say #gamma "apply gamma correction"
-say gf.io_generate "for internal use by #in and #out"
-say #hueshift "apply hue shift by rotating the color wheel"
-
-say #in "open file or device for reading or download"
-say #out "open file or device for writing or upload"
-
-say inv* "swapped /"
-say inv+ "swapped -"
-
-say #moment_polar "convert covariance matrix to the longest and shortest radius of an ellipse and a rotation angle"
-say #motion_detection "frame difference with some options"
-say #mouse "converts mouse events to reports of clicks, drags, unclicks, motions, and separate buttons and wheel"
-say gf.oneshot "spigot that shuts itself down after each message"
-say pingpong "turns value of a counter into a zigzag between 0 and a given value"
-
-category "Polygons"
-say #polygon_area "find area of a polygon in square pixels"
-say #polygon_comparator "find similarity between two polygons independently of rotation, by radial maps and FFT"
-say #polygon_each_edge "convert a polygon to a sequence of overlapping 2-sided polygons representing edges"
-say #polygon_moment "find average of all points inside of a polygon"
-say #polygon_perimetre "find perimetre of a polygon in pixels (euclidian)"
-say #polygon_radial_map "find radius of a polygon from a given origin, sampled at equally spaced angles"
-say #line_to_polygon "convert line (as point pair) to polygon (rotated rectangle)"
-say #draw_rect "draw a rectangle in an image"
-say #draw_slider "draw a slider in an image"
-say #edit_polygon "draw a polygon in an image and react to mouse events"
-say #make_cross "make cross-shaped polygon"
-say #draw_polygon "draw polygon in an image"
-
-category "Stuff"
-say #posterize "quantise pixel values"
-say #ravel "do #redim so that a grid keeps same number of elements but just one dimension"
-say #record "wrapper around \[#in quicktime\]"
-say #remap_image "apply object chain on pixel positions to make new image from chosen pixels of the input image"
-say #rotate "rotate points through two axes (or rotate pixels as points in a colorspace)"
-say #saturation "multiply chroma by some value"
-say #scale_to "scale an image from one size to any other size by deleting or duplicating rows and columns"
-say #seq_fold "cascade the use of an object on all elements of an incoming grid message sequence"
-say seq_fold "cascade the use of an object on all elements of an incoming message sequence"
-say #slice "crop an image using a start point (top left) and end point (bottom right)"
-say #solarize "like pingpong but on all pixel values of a grid"
-say #sort "sort each row of a grid"
-say #spread "add noise to each vector (point or pixel)"
-say #swap "like \[swap\] for grids"
-say #text_to_image "use a fixed-width font grid to make a tiling of characters as specified by a text string"
-say #t "like \[t a a\] for grids"
-say var.# "like \[f\] for grids"
-
-category "Colorspace Conversion"
-say #rgb_to_yuv "convert RGB to unsigned YUV"
-say #yuv_to_rgb "convert unsigned YUV to RGB"
-say #rgb_to_rgba "convert RGB to RGBA (but setting alpha to 0)"
-say #rgba_to_rgb "convert RGBA to RGB"
-say #greyscale_to_rgb "convert greyscale to RGB"
-say #rgb_to_greyscale "convert RGB to greyscale"
-
-category "OpenCV"
-say cv/#Add "OpenCV addition"
-say cv/#Div "OpenCV division"
-say cv/#Mul "OpenCV multiplication"
-say cv/#Sub "OpenCV subtraction"
-say cv/#And "OpenCV bitwise AND"
-say cv/#Or "OpenCV bitwise OR"
-say cv/#Xor "OpenCV bitwise XOR"
-say cv/#Invert "OpenCV invert matrix"
-say cv/#SVD "OpenCV singular value decomposition (eigendecomposition)"
-say cv/#Ellipse "OpenCV draw ellipse"
-say cv/#KMeans "OpenCV K-Means clusteriser"
-say cv/#HaarDetectObjects "OpenCV (future use)"
-say cv/#Kalman "OpenCV (future use)"
-say cv/#ApproxPoly ""
-say cv/#CornerHarris ""
-
-category "Stuff"
-say ascii_to_f "converts a list of ascii codes to a float"
-say plotter_parser "interprets ascii codes as HPGL commands and output them as messages"
-say list.== "test two lists of floats and/or symbols for equality"
-say expect "currently does like list.== (will do more than that in the future)"
-say #hello "make 7 colour bars"
-say #window "a \[#out window\] that can be toggled to appear and disappear"
-
-say #apply_colormap_channelwise ""
-say #cluster_avg ""
-say #draw_hpgl ""
-say #extract_diagonal ""
-say #reinterval ""
-say hpgl_find_bbox ""
-say hpgl_font_render ""
-say hpgl_op ""
-say hpgl_track_position ""
-say interval_overlap ""
-say norecurse ""
diff --git a/externals/gridflow/doc/make_index.tcl b/externals/gridflow/doc/make_index.tcl
deleted file mode 100644
index 8b95003e..00000000
--- a/externals/gridflow/doc/make_index.tcl
+++ /dev/null
@@ -1,29 +0,0 @@
-proc say {k v} {set ::say($k) $v}
-proc category {k} {}
-source locale/english.tcl
-puts "#N canvas 0 0 560 480 10 ;"
-set y 50
-foreach k [lsort [array names ::say *]] {
- set v $::say($k)
- if {$k == "#"} {set k "# +"}
- if {$k == "#fold"} {set k "#fold +"}
- if {$k == "#scan"} {set k "#scan +"}
- if {$k == "#outer"} {set k "#outer +"}
- if {$k == "#cast"} {set k "#cast i"}
- if {$k == "#for"} {set k "#for 0 4 1"}
- if {$k == "#redim"} {set k "#redim ()"}
- if {$k == "receives"} {set k "receives \$0-"}
- if {$k == "send39"} {set k "send39 \$0-patchname"}
- set w [string length $k]
- regsub "\\$" $k "\\$" k
- if {$w<3} {set w 3}
- set w [expr {$w*6+2}]
- if {$k == "#color"} {set w 156}
- puts "#X obj [expr 160-$w] $y $k;"
- regsub "," $v " \\, " v
- regsub ";" $v " \\; " v
- regsub "\\$" $v "\\$" v
- puts "#X text 180 $y $v;"
- if {$k == "#color"} {incr y 40}
- incr y 32
-}
diff --git a/externals/gridflow/doc/moulinette.tcl b/externals/gridflow/doc/moulinette.tcl
deleted file mode 100644
index 952459b3..00000000
--- a/externals/gridflow/doc/moulinette.tcl
+++ /dev/null
@@ -1,215 +0,0 @@
-#!/usr/bin/env tclsh
-
-proc mset {vars list} {uplevel 1 "foreach {$vars} {$list} {break}"}
-proc p {text} {write [list #X text 10 $::y $text]; incr ::y 60}
-proc write {list} {
- set v [join $list " "]
- regsub -all "," $v " \\, " v
- regsub -all ";" $v " \\; " v
- regsub -all "\\$" $v "\\$" v
- puts $::fh "$v;"
-}
-set oid 0
-proc obj {args} {write [concat [list #X obj ] $args]; incr ::oid}
-proc msg {args} {write [concat [list #X msg ] $args]; incr ::oid}
-proc text {args} {write [concat [list #X text] $args]; incr ::oid}
-
-set fh [open numop.pd w]
-write [list #N canvas 0 0 1024 768 10]
-set y 0
-set row 0
-set msgboxes {}
-set col1 96
-set col2 512
-set col3 768
-set col4 1024
-set rowsize 32
-
-obj 0 $y cnv 15 $col4 30 empty empty empty 20 12 0 14 20 -66577 0
-text 10 $y op name
-text $col1 $y description
-text $col2 $y "effect on pixels"
-text $col3 $y "effect on coords"
-incr y 32
-
-# onpixels = meaning in pixel context (pictures, palettes)
-# oncoords = meaning in spatial context (indexmaps, polygons)
-
-# for vecops, the two analogy-columns were labelled:
-# meaning in geometric context (indexmaps, polygons, in which each complex number is a point)
-# meaning in spectrum context (FFT) in which each number is a (cosine,sine) pair
-proc op {op desc {extra1 ""} {extra2 ""}} {
- global y
- if {$::row&1} {set bg -233280} {set bg -249792}
- obj 0 $y cnv 15 $::col4 [expr $::rowsize-2] empty empty empty 20 12 0 14 $bg -66577 0
- lappend ::msgboxes $::oid
- msg 10 $y op $op
- text $::col1 $y $desc
- if {$extra1 != ""} {text $::col2 $y $extra1}
- if {$extra2 != ""} {text $::col3 $y $extra2}
- incr ::row
- incr ::y $::rowsize
-}
-
-proc draw_columns {} {
- obj [expr $::col1-1] 0 cnv 0 0 $::y empty empty empty -1 12 0 14 0 -66577 0
- obj [expr $::col2-1] 0 cnv 0 0 $::y empty empty empty -1 12 0 14 0 -66577 0
- obj [expr $::col3-1] 0 cnv 0 0 $::y empty empty empty -1 12 0 14 0 -66577 0
-}
-
-proc numbertype {op desc {extra1 ""} {extra2 ""}} {op $op $desc $extra1 $extra2}
-
-set sections {}
-proc section {desc} {
- lappend ::sections [list $::y $desc]
- incr ::y 20
-}
-
-section {numops}
-op {ignore} { A } {no effect} {no effect}
-op {put} { B } {replace by} {replace by}
-op {+} { A + B } {brightness, crossfade} {move, morph}
-op {-} { A - B } {brightness, motion detection} {move, motion detection}
-op {inv+} { B - A } {negate then contrast} {180 degree rotate then move}
-op {*} { A * B } {contrast} {zoom out}
-op {/} { A / B, rounded towards zero } {contrast} {zoom in}
-op {div} { A / B, rounded downwards } {contrast} {zoom in}
-op {inv*} { B / A, rounded towards zero }
-op {swapdiv} { B / A, rounded downwards }
-op {%} { A % B, modulo (goes with div) } {--} {tile}
-op {swap%} { B % A, modulo (goes with div) }
-op {rem} { A % B, remainder (goes with /) }
-op {swaprem} { B % A, remainder (goes with /) }
-op {gcd} {greatest common divisor}
-op {lcm} {least common multiple}
-op {|} { A or B, bitwise } {bright munchies} {bottomright munchies}
-op {^} { A xor B, bitwise } {symmetric munchies (fractal checkers)} {symmetric munchies (fractal checkers)}
-op {&} { A and B, bitwise } {dark munchies} {topleft munchies}
-op {<<} { A * (2**(B % 32)), which is left-shifting } {like *} {like *}
-op {>>} { A / (2**(B % 32)), which is right-shifting } {like /,div} {like /,div}
-op {||} { if A is zero then B else A }
-op {&&} { if A is zero then zero else B}
-op {min} { the lowest value in A,B } {clipping} {clipping (of individual points)}
-op {max} { the highest value in A,B } {clipping} {clipping (of individual points)}
-op {cmp} { -1 when A&lt;B; 0 when A=B; 1 when A&gt;B. }
-op {==} { is A equal to B ? 1=true, 0=false }
-op {!=} { is A not equal to B ? }
-op {>} { is A greater than B ? }
-op {<=} { is A not greater than B ? }
-op {<} { is A less than B ? }
-op {>=} {is A not less than B ? }
-op {sin*} { B * sin(A) in centidegrees } {--} {waves, rotations}
-op {cos*} { B * cos(A) in centidegrees } {--} {waves, rotations}
-op {atan} { arctan(A/B) in centidegrees } {--} {find angle to origin (part of polar transform)}
-op {tanh*} { B * tanh(A) in centidegrees } {smooth clipping} {smooth clipping (of individual points), neural sigmoid, fuzzy logic}
-op {log*} { B * log(A) (in base e) }
-op {gamma} { floor(pow(a/256.0,256.0/b)*256.0) } {gamma correction}
-op {**} { A**B, that is, A raised to power B } {gamma correction}
-op {abs-} { absolute value of (A-B) }
-op {rand} { randomly produces a non-negative number below A }
-op {sqrt} { square root of A, rounded downwards }
-op {sq-} { (A-B) times (A-B) }
-op {avg} { (A+B)/2 }
-op {hypot} { distance function: square root of (A*A+B*B) }
-op {clip+} { like A+B but overflow causes clipping instead of wrapping around (coming soon) }
-op {clip-} { like A-B but overflow causes clipping instead of wrapping around (coming soon) }
-op {erf*} { integral of e^(-x*x) dx ... (coming soon; what ought to be the scaling factor?) }
-op {weight} { number of "1" bits in an integer}
-op {sin} {sin(A-B) in radians, float only}
-op {cos} {cos(A-B) in radians, float only}
-op {atan2} {atan2(A,B) in radians, float only}
-op {tanh} {tanh(A-B) in radians, float only}
-op {exp} {exp(A-B) in radians, float only}
-op {log} {log(A-B) in radians, float only}
-
-section {vecops for complex numbers}
-op {C.* } {A*B}
-op {C.*conj} {A*conj(B)}
-op {C./ } {A/B}
-op {C./conj} {A/conj(B)}
-op {C.sq- } {(A-B)*(A-B)}
-op {C.abs- } {abs(A-B)}
-op {C.sin } {sin(A-B)}
-op {C.cos } {cos(A-B)}
-op {C.tanh } {tanh(A-B)}
-op {C.exp } {exp(A-B)}
-op {C.log } {log(A-B)}
-
-#section {vecops for other things}
-#op {cart2pol}
-#op {pol2cart}
-
-incr y 10
-set outletid $oid
-obj 10 $y outlet
-incr y 20
-
-foreach msgbox $msgboxes {write [list #X connect $msgbox 0 $outletid 0]}
-
-draw_columns
-
-foreach section $sections {
- mset {y1 desc} $section
- obj 0 $y1 cnv 15 $::col4 18 empty empty empty 20 12 0 14 -248881 -66577 0
- text 10 $y1 $desc
-}
-
-p {
- note: a centidegree is 0.01 degree. There are 36000 centidegrees in a circle.
- Some angle operators use centidegrees, while some others use radians. To
- convert degrees into centidegrees, multiply by 100.
- To convert degrees into radians, divide by 57.2957 .
- Thus, to convert centidegrees into radians, divide by 5729.57 .
-}
-
-close $fh
-set fh [open numtype.pd w]
-write [list #N canvas 0 0 1024 768 10]
-set y 0
-set row 0
-set oid 0
-set col1 192
-set col2 384
-set col3 608
-set col4 1024
-set rowsize 64
-
-obj 0 $y cnv 15 $col4 30 empty empty empty 20 12 0 14 20 -66577 0
-text 10 $y op names
-text $col1 $y range
-text $col2 $y precision
-text $col3 $y description
-incr y 32
-
-numbertype {b u8 uint8} {0 to 255} {1} {
- unsigned 8-bit integer. this is the usual size of numbers taken from files and cameras, and
- written to files and to windows. (however #in converts to int32 unless otherwise specified.)}
-numbertype {s i16 int16} {-32768 to 32767} {1}
-numbertype {i i32 int32} {-(1<<31) to (1<<31)-1} {1} {
- signed 32-bit integer. this is used by default throughout GridFlow.
-}
-numbertype {l i64 int64} {-(1<<63) to (1<<63)-1} {1}
-numbertype {f f32 float32} {-(1<<128) to (1<<128)} {23 bits or 0.000012%}
-numbertype {d f64 float64} {-(1<<2048) to (1<<2048)} {52 bits or 0.000000000000022%}
-
-draw_columns
-
-p {High-performance computation requires precise and quite peculiar
- definitions of numbers and their representation.}
-p {Inside most programs, numbers are written down as strings of
- bits. A bit is either zero or one. Just like the decimal system
- uses units, tens, hundreds, the binary system uses units, twos,
- fours, eights, sixteens, and so on, doubling every time.}
-p {One notation, called integer allows for only integer values to be
- written (no fractions). when it is unsigned, no negative values may
- be written. when it is signed, one bit indicates whether the number
- is positive or negative. Integer storage is usually fixed-size, so you have
- bounds on the size of numbers, and if a result is too big it "wraps around", truncating the biggest
- bits.}
-p {Another notation, called floating point (or float) stores numbers using
- a fixed number of significant digits, and a scale factor that allows for huge numbers
- and tiny fractions at once. Note that 1/3 has periodic digits, but even 0.1 has periodic digits,
- in binary coding; so expect some slight roundings; the precision offered should be
- sufficient for most purposes. Make sure the errors of rounding don't accumulate, though.}
-
-close $fh
diff --git a/externals/gridflow/doc/numop.pd b/externals/gridflow/doc/numop.pd
deleted file mode 100644
index c1d8efbf..00000000
--- a/externals/gridflow/doc/numop.pd
+++ /dev/null
@@ -1,327 +0,0 @@
-#N canvas 0 0 1024 768 10;
-#X obj 0 0 cnv 15 1024 30 empty empty empty 20 12 0 14 20 -66577 0;
-#X text 10 0 op name;
-#X text 96 0 description;
-#X text 512 0 effect on pixels;
-#X text 768 0 effect on coords;
-#X obj 0 52 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0;
-#X msg 10 52 op ignore;
-#X text 96 52 A ;
-#X text 512 52 no effect;
-#X text 768 52 no effect;
-#X obj 0 84 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0;
-#X msg 10 84 op put;
-#X text 96 84 B ;
-#X text 512 84 replace by;
-#X text 768 84 replace by;
-#X obj 0 116 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0;
-#X msg 10 116 op +;
-#X text 96 116 A + B ;
-#X text 512 116 brightness \, crossfade;
-#X text 768 116 move \, morph;
-#X obj 0 148 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0;
-#X msg 10 148 op -;
-#X text 96 148 A - B ;
-#X text 512 148 brightness \, motion detection;
-#X text 768 148 move \, motion detection;
-#X obj 0 180 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0;
-#X msg 10 180 op inv+;
-#X text 96 180 B - A ;
-#X text 512 180 negate then contrast;
-#X text 768 180 180 degree rotate then move;
-#X obj 0 212 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0;
-#X msg 10 212 op *;
-#X text 96 212 A * B ;
-#X text 512 212 contrast;
-#X text 768 212 zoom out;
-#X obj 0 244 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0;
-#X msg 10 244 op /;
-#X text 96 244 A / B \, rounded towards zero ;
-#X text 512 244 contrast;
-#X text 768 244 zoom in;
-#X obj 0 276 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0;
-#X msg 10 276 op div;
-#X text 96 276 A / B \, rounded downwards ;
-#X text 512 276 contrast;
-#X text 768 276 zoom in;
-#X obj 0 308 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0;
-#X msg 10 308 op inv*;
-#X text 96 308 B / A \, rounded towards zero ;
-#X obj 0 340 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0;
-#X msg 10 340 op swapdiv;
-#X text 96 340 B / A \, rounded downwards ;
-#X obj 0 372 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0;
-#X msg 10 372 op %;
-#X text 96 372 A % B \, modulo (goes with div) ;
-#X text 512 372 --;
-#X text 768 372 tile;
-#X obj 0 404 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0;
-#X msg 10 404 op swap%;
-#X text 96 404 B % A \, modulo (goes with div) ;
-#X obj 0 436 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0;
-#X msg 10 436 op rem;
-#X text 96 436 A % B \, remainder (goes with /) ;
-#X obj 0 468 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0;
-#X msg 10 468 op swaprem;
-#X text 96 468 B % A \, remainder (goes with /) ;
-#X obj 0 500 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0;
-#X msg 10 500 op gcd;
-#X text 96 500 greatest common divisor;
-#X obj 0 532 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0;
-#X msg 10 532 op lcm;
-#X text 96 532 least common multiple;
-#X obj 0 564 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0;
-#X msg 10 564 op |;
-#X text 96 564 A or B \, bitwise ;
-#X text 512 564 bright munchies;
-#X text 768 564 bottomright munchies;
-#X obj 0 596 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0;
-#X msg 10 596 op ^;
-#X text 96 596 A xor B \, bitwise ;
-#X text 512 596 symmetric munchies (fractal checkers);
-#X text 768 596 symmetric munchies (fractal checkers);
-#X obj 0 628 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0;
-#X msg 10 628 op &;
-#X text 96 628 A and B \, bitwise ;
-#X text 512 628 dark munchies;
-#X text 768 628 topleft munchies;
-#X obj 0 660 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0;
-#X msg 10 660 op <<;
-#X text 96 660 A * (2**(B % 32)) \, which is left-shifting ;
-#X text 512 660 like *;
-#X text 768 660 like *;
-#X obj 0 692 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0;
-#X msg 10 692 op >>;
-#X text 96 692 A / (2**(B % 32)) \, which is right-shifting ;
-#X text 512 692 like / \, div;
-#X text 768 692 like / \, div;
-#X obj 0 724 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0;
-#X msg 10 724 op ||;
-#X text 96 724 if A is zero then B else A ;
-#X obj 0 756 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0;
-#X msg 10 756 op &&;
-#X text 96 756 if A is zero then zero else B;
-#X obj 0 788 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0;
-#X msg 10 788 op min;
-#X text 96 788 the lowest value in A \, B ;
-#X text 512 788 clipping;
-#X text 768 788 clipping (of individual points);
-#X obj 0 820 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0;
-#X msg 10 820 op max;
-#X text 96 820 the highest value in A \, B ;
-#X text 512 820 clipping;
-#X text 768 820 clipping (of individual points);
-#X obj 0 852 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0;
-#X msg 10 852 op cmp;
-#X text 96 852 -1 when A&lt \; B \; 0 when A=B \; 1 when A&gt \; B. ;
-#X obj 0 884 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0;
-#X msg 10 884 op ==;
-#X text 96 884 is A equal to B ? 1=true \, 0=false ;
-#X obj 0 916 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0;
-#X msg 10 916 op !=;
-#X text 96 916 is A not equal to B ? ;
-#X obj 0 948 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0;
-#X msg 10 948 op >;
-#X text 96 948 is A greater than B ? ;
-#X obj 0 980 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0;
-#X msg 10 980 op <=;
-#X text 96 980 is A not greater than B ? ;
-#X obj 0 1012 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0;
-#X msg 10 1012 op <;
-#X text 96 1012 is A less than B ? ;
-#X obj 0 1044 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0;
-#X msg 10 1044 op >=;
-#X text 96 1044 is A not less than B ? ;
-#X obj 0 1076 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0;
-#X msg 10 1076 op sin*;
-#X text 96 1076 B * sin(A) in centidegrees ;
-#X text 512 1076 --;
-#X text 768 1076 waves \, rotations;
-#X obj 0 1108 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0;
-#X msg 10 1108 op cos*;
-#X text 96 1108 B * cos(A) in centidegrees ;
-#X text 512 1108 --;
-#X text 768 1108 waves \, rotations;
-#X obj 0 1140 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0;
-#X msg 10 1140 op atan;
-#X text 96 1140 arctan(A/B) in centidegrees ;
-#X text 512 1140 --;
-#X text 768 1140 find angle to origin (part of polar transform);
-#X obj 0 1172 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0;
-#X msg 10 1172 op tanh*;
-#X text 96 1172 B * tanh(A) in centidegrees ;
-#X text 512 1172 smooth clipping;
-#X text 768 1172 smooth clipping (of individual points) \, neural sigmoid \, fuzzy logic;
-#X obj 0 1204 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0;
-#X msg 10 1204 op log*;
-#X text 96 1204 B * log(A) (in base e) ;
-#X obj 0 1236 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0;
-#X msg 10 1236 op gamma;
-#X text 96 1236 floor(pow(a/256.0 \, 256.0/b)*256.0) ;
-#X text 512 1236 gamma correction;
-#X obj 0 1268 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0;
-#X msg 10 1268 op **;
-#X text 96 1268 A**B \, that is \, A raised to power B ;
-#X text 512 1268 gamma correction;
-#X obj 0 1300 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0;
-#X msg 10 1300 op abs-;
-#X text 96 1300 absolute value of (A-B) ;
-#X obj 0 1332 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0;
-#X msg 10 1332 op rand;
-#X text 96 1332 randomly produces a non-negative number below A ;
-#X obj 0 1364 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0;
-#X msg 10 1364 op sqrt;
-#X text 96 1364 square root of A \, rounded downwards ;
-#X obj 0 1396 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0;
-#X msg 10 1396 op sq-;
-#X text 96 1396 (A-B) times (A-B) ;
-#X obj 0 1428 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0;
-#X msg 10 1428 op avg;
-#X text 96 1428 (A+B)/2 ;
-#X obj 0 1460 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0;
-#X msg 10 1460 op hypot;
-#X text 96 1460 distance function: square root of (A*A+B*B) ;
-#X obj 0 1492 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0;
-#X msg 10 1492 op clip+;
-#X text 96 1492 like A+B but overflow causes clipping instead of wrapping around (coming soon) ;
-#X obj 0 1524 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0;
-#X msg 10 1524 op clip-;
-#X text 96 1524 like A-B but overflow causes clipping instead of wrapping around (coming soon) ;
-#X obj 0 1556 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0;
-#X msg 10 1556 op erf*;
-#X text 96 1556 integral of e^(-x*x) dx ... (coming soon \; what ought to be the scaling factor?) ;
-#X obj 0 1588 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0;
-#X msg 10 1588 op weight;
-#X text 96 1588 number of "1" bits in an integer;
-#X obj 0 1620 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0;
-#X msg 10 1620 op sin;
-#X text 96 1620 sin(A-B) in radians \, float only;
-#X obj 0 1652 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0;
-#X msg 10 1652 op cos;
-#X text 96 1652 cos(A-B) in radians \, float only;
-#X obj 0 1684 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0;
-#X msg 10 1684 op atan2;
-#X text 96 1684 atan2(A \, B) in radians \, float only;
-#X obj 0 1716 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0;
-#X msg 10 1716 op tanh;
-#X text 96 1716 tanh(A-B) in radians \, float only;
-#X obj 0 1748 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0;
-#X msg 10 1748 op exp;
-#X text 96 1748 exp(A-B) in radians \, float only;
-#X obj 0 1780 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0;
-#X msg 10 1780 op log;
-#X text 96 1780 log(A-B) in radians \, float only;
-#X obj 0 1832 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0;
-#X msg 10 1832 op C.* ;
-#X text 96 1832 A*B;
-#X obj 0 1864 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0;
-#X msg 10 1864 op C.*conj;
-#X text 96 1864 A*conj(B);
-#X obj 0 1896 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0;
-#X msg 10 1896 op C./ ;
-#X text 96 1896 A/B;
-#X obj 0 1928 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0;
-#X msg 10 1928 op C./conj;
-#X text 96 1928 A/conj(B);
-#X obj 0 1960 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0;
-#X msg 10 1960 op C.sq- ;
-#X text 96 1960 (A-B)*(A-B);
-#X obj 0 1992 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0;
-#X msg 10 1992 op C.abs- ;
-#X text 96 1992 abs(A-B);
-#X obj 0 2024 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0;
-#X msg 10 2024 op C.sin ;
-#X text 96 2024 sin(A-B);
-#X obj 0 2056 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0;
-#X msg 10 2056 op C.cos ;
-#X text 96 2056 cos(A-B);
-#X obj 0 2088 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0;
-#X msg 10 2088 op C.tanh ;
-#X text 96 2088 tanh(A-B);
-#X obj 0 2120 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0;
-#X msg 10 2120 op C.exp ;
-#X text 96 2120 exp(A-B);
-#X obj 0 2152 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0;
-#X msg 10 2152 op C.log ;
-#X text 96 2152 log(A-B);
-#X obj 10 2194 outlet;
-#X connect 6 0 245 0;
-#X connect 11 0 245 0;
-#X connect 16 0 245 0;
-#X connect 21 0 245 0;
-#X connect 26 0 245 0;
-#X connect 31 0 245 0;
-#X connect 36 0 245 0;
-#X connect 41 0 245 0;
-#X connect 46 0 245 0;
-#X connect 49 0 245 0;
-#X connect 52 0 245 0;
-#X connect 57 0 245 0;
-#X connect 60 0 245 0;
-#X connect 63 0 245 0;
-#X connect 66 0 245 0;
-#X connect 69 0 245 0;
-#X connect 72 0 245 0;
-#X connect 77 0 245 0;
-#X connect 82 0 245 0;
-#X connect 87 0 245 0;
-#X connect 92 0 245 0;
-#X connect 97 0 245 0;
-#X connect 100 0 245 0;
-#X connect 103 0 245 0;
-#X connect 108 0 245 0;
-#X connect 113 0 245 0;
-#X connect 116 0 245 0;
-#X connect 119 0 245 0;
-#X connect 122 0 245 0;
-#X connect 125 0 245 0;
-#X connect 128 0 245 0;
-#X connect 131 0 245 0;
-#X connect 134 0 245 0;
-#X connect 139 0 245 0;
-#X connect 144 0 245 0;
-#X connect 149 0 245 0;
-#X connect 154 0 245 0;
-#X connect 157 0 245 0;
-#X connect 161 0 245 0;
-#X connect 165 0 245 0;
-#X connect 168 0 245 0;
-#X connect 171 0 245 0;
-#X connect 174 0 245 0;
-#X connect 177 0 245 0;
-#X connect 180 0 245 0;
-#X connect 183 0 245 0;
-#X connect 186 0 245 0;
-#X connect 189 0 245 0;
-#X connect 192 0 245 0;
-#X connect 195 0 245 0;
-#X connect 198 0 245 0;
-#X connect 201 0 245 0;
-#X connect 204 0 245 0;
-#X connect 207 0 245 0;
-#X connect 210 0 245 0;
-#X connect 213 0 245 0;
-#X connect 216 0 245 0;
-#X connect 219 0 245 0;
-#X connect 222 0 245 0;
-#X connect 225 0 245 0;
-#X connect 228 0 245 0;
-#X connect 231 0 245 0;
-#X connect 234 0 245 0;
-#X connect 237 0 245 0;
-#X connect 240 0 245 0;
-#X connect 243 0 245 0;
-#X obj 95 0 cnv 0 0 2214 empty empty empty -1 12 0 14 0 -66577 0;
-#X obj 511 0 cnv 0 0 2214 empty empty empty -1 12 0 14 0 -66577 0;
-#X obj 767 0 cnv 0 0 2214 empty empty empty -1 12 0 14 0 -66577 0;
-#X obj 0 32 cnv 15 1024 18 empty empty empty 20 12 0 14 -248881 -66577 0;
-#X text 10 32 numops;
-#X obj 0 1812 cnv 15 1024 18 empty empty empty 20 12 0 14 -248881 -66577 0;
-#X text 10 1812 vecops for complex numbers;
-#X text 10 2214
- note: a centidegree is 0.01 degree. There are 36000 centidegrees in a circle.
- Some angle operators use centidegrees \, while some others use radians. To
- convert degrees into centidegrees \, multiply by 100.
- To convert degrees into radians \, divide by 57.2957 .
- Thus \, to convert centidegrees into radians \, divide by 5729.57 .
-;
diff --git a/externals/gridflow/doc/numtype.pd b/externals/gridflow/doc/numtype.pd
deleted file mode 100644
index ce1cdc2f..00000000
--- a/externals/gridflow/doc/numtype.pd
+++ /dev/null
@@ -1,56 +0,0 @@
-#N canvas 0 0 1024 768 10;
-#X obj 0 0 cnv 15 1024 30 empty empty empty 20 12 0 14 20 -66577 0;
-#X text 10 0 op names;
-#X text 192 0 range;
-#X text 384 0 precision;
-#X text 608 0 description;
-#X obj 0 32 cnv 15 1024 62 empty empty empty 20 12 0 14 -249792 -66577 0;
-#X msg 10 32 op b u8 uint8;
-#X text 192 32 0 to 255;
-#X text 384 32 1;
-#X text 608 32
- unsigned 8-bit integer. this is the usual size of numbers taken from files and cameras \, and
- written to files and to windows. (however #in converts to int32 unless otherwise specified.);
-#X obj 0 96 cnv 15 1024 62 empty empty empty 20 12 0 14 -233280 -66577 0;
-#X msg 10 96 op s i16 int16;
-#X text 192 96 -32768 to 32767;
-#X text 384 96 1;
-#X obj 0 160 cnv 15 1024 62 empty empty empty 20 12 0 14 -249792 -66577 0;
-#X msg 10 160 op i i32 int32;
-#X text 192 160 -(1<<31) to (1<<31)-1;
-#X text 384 160 1;
-#X text 608 160
- signed 32-bit integer. this is used by default throughout GridFlow.
-;
-#X obj 0 224 cnv 15 1024 62 empty empty empty 20 12 0 14 -233280 -66577 0;
-#X msg 10 224 op l i64 int64;
-#X text 192 224 -(1<<63) to (1<<63)-1;
-#X text 384 224 1;
-#X obj 0 288 cnv 15 1024 62 empty empty empty 20 12 0 14 -249792 -66577 0;
-#X msg 10 288 op f f32 float32;
-#X text 192 288 -(1<<128) to (1<<128);
-#X text 384 288 23 bits or 0.000012%;
-#X obj 0 352 cnv 15 1024 62 empty empty empty 20 12 0 14 -233280 -66577 0;
-#X msg 10 352 op d f64 float64;
-#X text 192 352 -(1<<2048) to (1<<2048);
-#X text 384 352 52 bits or 0.000000000000022%;
-#X obj 191 0 cnv 0 0 416 empty empty empty -1 12 0 14 0 -66577 0;
-#X obj 383 0 cnv 0 0 416 empty empty empty -1 12 0 14 0 -66577 0;
-#X obj 607 0 cnv 0 0 416 empty empty empty -1 12 0 14 0 -66577 0;
-#X text 10 416 High-performance computation requires precise and quite peculiar
- definitions of numbers and their representation.;
-#X text 10 476 Inside most programs \, numbers are written down as strings of
- bits. A bit is either zero or one. Just like the decimal system
- uses units \, tens \, hundreds \, the binary system uses units \, twos \,
- fours \, eights \, sixteens \, and so on \, doubling every time.;
-#X text 10 536 One notation \, called integer allows for only integer values to be
- written (no fractions). when it is unsigned \, no negative values may
- be written. when it is signed \, one bit indicates whether the number
- is positive or negative. Integer storage is usually fixed-size \, so you have
- bounds on the size of numbers \, and if a result is too big it "wraps around" \, truncating the biggest
- bits.;
-#X text 10 596 Another notation \, called floating point (or float) stores numbers using
- a fixed number of significant digits \, and a scale factor that allows for huge numbers
- and tiny fractions at once. Note that 1/3 has periodic digits \, but even 0.1 has periodic digits \,
- in binary coding \; so expect some slight roundings \; the precision offered should be
- sufficient for most purposes. Make sure the errors of rounding don't accumulate \, though.;
diff --git a/externals/gridflow/doc/stuff.txt b/externals/gridflow/doc/stuff.txt
deleted file mode 100644
index 2a495735..00000000
--- a/externals/gridflow/doc/stuff.txt
+++ /dev/null
@@ -1,144 +0,0 @@
-Grid Literals
- In every grid-accepting inlet, a list may be sent instead; if
- it consists only of integers, it will be converted to a
- one-dimensional grid. Else it may contain a single "#" sign and
- integers on both sides of it, where the ones to the left of it are
- fed as arguments to an imaginary [#redim] object and the one to the
- right of it are fed through that [#redim].
- In every grid-accepting inlet, an integer or float may also be sent;
- it will be converted to a zero-dimensional grid (a scalar).
-
-Grid Protocol
- a grid has an associated number type that defines what are the possible values for its elements
- (and how much space it takes). the default is int32.
- a single-dimensional grid of 3 elements (a triplet) is called dim(3). a
- three-dimensional grid of 240 rows of 320 columns of triplets is called
- dim(240,320,3).
- There is a sequence in which elements of a Grid are stored and
- transmitted. Dimension 0 is called "first" and dimension N-1 is
- called "last". They are called so because if you select a
- position in the first dimension of a grid, the selected part is of the same
- shape minus the first dimension; so in dim(240,320,3) if you select
- row 51 (or whichever valid row number), you get a dim(320,3). if you select
- a subpart two more times you get to a single number.
- At each such level, elements are sent/stored in their numeric order,
- and are numbered using natural numbers starting at 0. This ordering usually
- does not matter, but sometimes it does. Most notably, [#import], [#export] and [#redim] care about it.
- On the other hand, order of dimensions usually does matter; this is
- what distinguishes rows from columns and channels, for example.
- Most objects care about the distinction.
- A grid with only 1 element in a given dimension is different from one
- lacking that dimension; it won't have the same meaning. You can use this
- property to your advantage sometimes.
- Zero-dimensional grids exist. They are called dim(). They can only contain
- a single number.
-Picture Protocol
- This section is useful if you want to know what a picture is in terms of a grid.
- A picture is a three-dimensional Grid: 0:rows 1:columns 2:channels
-
-Channels for the RGB color model are: 0:red 1:green 2:blue
- Because Grids are made of 32-bit integers, a three-channel picture uses
- 96 bpp (bits per pixel), and have to be downscaled to 24 bpp (or 16 bpp)
- for display. That huge amount of slack is there because when you create
- your own effects you often have intermediate results that need to be of
- higher precision than a normal picture. Especially, results of multiplications
- are big and should not overflow before you divide them back to normal;
- and similarly, you can have negative values all over, as long as you take
- care of them before they get to the display.
- In the final conversion, high bits are just ignored. This means: black is
- 0, maximum is 255, and values wrap like with % 256. If you want to
- clip them, you may use [# max 0] and [# min 255] objects.
-
-The following are called VecOps because each operation happens between more than just two numbers.
-A first kind of VecOp are those that arise when a pair of numbers (A0,A1) is considered as a single number A0+A1*sqrt(-1).
-If you need complex numbers but don't know yet how they work, learn them using a math tutorial and then those VecOps will begin to seem familiar.
-All the complex number operators are only for floats.
-TODO: fill the last two columns of this table.
-
-Synchronisation
-
-In GridFlow you cannot send two grids in different inlets at the
-same time. You have to use [#finished] together with (possibly) [fork] and [#store],
-which can be cumbersome. If you don't do this, the result is undefined
-behaviour (or crash!).
-There are two exceptions: [#store] and # allow right-inlet grids to be buffered if an operation is occuring on left inlet. This
-should make many programs simpler.
-
-
-Introduction
-
- The philosophy that guides PureData is a simple but powerful one:
- the software must first provide the user with generic tools
- rather than imposing pre-cooked effects. In other words the user
- should have total freedom.
-
- GridFlow follows that philosophy: it first defines elementary
- mathematical operations. Those can in turn be used as simple
- visual effects or be combined to produce more complex effects.
-
- The strategy followed by most video plugins for PureData and MAX/MSP, is
- to provide the user first with constructs for manipulating video
- streams at a fairly high level. The strategy put forward by GridFlow
- is different.
-
- It can be said that in all those video plugins there are three layers:
- the first, the low level, is not accessible to non-programmers (and fairly
- difficult of access even to programmers); the second, mathematical, where
- one needs not to be a C++ programmer, but still requires a good
- understanding of how numbers and pixels and colours and geometry work; and
- a third level that looks more like the software an artist would like to
- use.
-
- In other video plugins there is a fairly low emphasis on the second
- layer. In GridFlow that layer is very strong and opens many possibilities.
- Even though the third layer in GridFlow is not as developed as it could,
- the second layer may be used to produce third-layer object classes much
- more quickly.
-
- GridFlow provides a unifying view of multimedia information. Several
- kinds of data -- raster graphics in any number of channels, coordinate
- transforms, matrices, vectors -- may all be represented by Grids
- (also known as multi-dimensional arrays). Grids exist in several ways: they
- are usually streamed from object to object, but they can also be stored in
- memory, stored into a file, sent through the network.
-
- Here is an example of how things work in GridFlow. (if you want more
- information, consult the rest of this manual)
-
- A picture is a three-dimensional Grid:
- 0 : rows
- 1 : columns
- 2 : channels
-
- Pictures come in all sorts of heights and widths. The channels, however,
- are more limited in number. Usually it's three: Red, Green, Blue.
-
- A coordinate transform, when specified pixel by pixel, may be a
- three-dimensional Grid in which the two "channels" are Y and X,
- representing row-and-column positions in a separate picture.
-
- Other shapes of grids could be designed to represent various things;
- for example, configuration for blur effects. Grids could be useful for
- things not directly related to raster pictures (e.g. sound recordings).
- Those are all kinds of things you could actually develop _within_ the
- PureData / GridFlow framework. You don't need to wait for me.
-
-
-GridFlow Release
-
-dir=gridflow-0.9.6; tag=gridflow_0_9_6
-svn copy svn+ssh://gridflow.ca/home/svn/gridflow/trunk svn+ssh://gridflow.ca/home/svn/gridflow/tags/$tag/
-svn export svn+ssh://gridflow.ca/home/svn/gridflow/tags/$tag/ $dir
-chmod -R go=u-w $dir && tar cfzvv $dir.tar.gz $dir && rm -rf $dir
-scp $dir.tar.gz gridflow@artengine.ca:public_html/download
-mv $dir.tar.gz /home/matju/GridFlow
-cd doc/homepage; pico index.html; make install
-
-download somewhere else and try to compile
-pd-announce mlist : post release
-
-Committed revision 4239.
-Warning: 'post-commit' hook failed with error output:
-/home/svn/gridflow/hooks/post-commit: line 49: /home/svn/gridflow/hooks/svn-mailer.log: Permission denied
-
-svn copy svn+ssh://gridflow.ca/home/svn/gridflow/tags/$tag/ https://pure-data.svn.sourceforge.net/svnroot/pure-data/trunk/externals/gridflow/
diff --git a/externals/gridflow/doc/tutorials/gf_sampling_quantization.pd b/externals/gridflow/doc/tutorials/gf_sampling_quantization.pd
deleted file mode 100644
index 4f60217d..00000000
--- a/externals/gridflow/doc/tutorials/gf_sampling_quantization.pd
+++ /dev/null
@@ -1,57 +0,0 @@
-#N canvas 740 0 704 805 10;
-#X obj 2 5 cnv 15 650 15 empty empty empty 20 12 0 14 -228992 -66577
-0;
-#X obj 2 -30 cnv 15 700 30 empty empty empty 20 12 0 14 -233017 -66577
-0;
-#X obj 0 741 cnv 15 700 30 empty empty empty 20 12 0 14 -233017 -66577
-0;
-#X text 14 746 GridFlow 0.9.1;
-#X text 7 -23 Principles of new media;
-#X text 218 152 <-- reduces the size of the image;
-#X text 5 3 1.1 sampling;
-#X obj 4 314 cnv 15 650 15 empty empty empty 20 12 0 14 -228992 -66577
-0;
-#X text 7 313 1.2 quantization;
-#X text 330 85 <-- change the resampling factor (1 to 8);
-#X obj 55 80 #in;
-#X obj 55 32 tgl 15 0 empty empty empty 17 7 0 10 -4034 -1 -1 1 1;
-#X obj 75 259 #out window \, title sampling;
-#X obj 55 204 #scale_by;
-#X obj 202 86 hradio 15 1 0 8 empty empty empty 0 -8 0 10 -257985 -1
--1 0;
-#X obj 202 108 + 1;
-#X obj 202 130 t a a;
-#X text 218 152 <-- reduces the size of the image;
-#X msg 123 55 open babbage.jpg;
-#X obj 55 419 #out window \, title quantization;
-#X text 230 53 <-- open image first;
-#X floatatom 124 365 5 0 0 0 - - -;
-#X obj 24 449 #downscale_by 32 smoothly;
-#X obj 25 518 display;
-#X obj 34 470 #out window \, title really_small_window;
-#X text 133 385 <-- reduces the number of possible pixel values;
-#X text 121 201 <-- increases the image size by the same factor \,
-letting us see the loss of information from the original image;
-#X obj 55 152 #downscale_by \, smoothly;
-#X obj 127 343 hsl 128 15 2 16 0 0 empty empty empty -2 -8 0 10 -257985
--1 -1 3300 1;
-#X obj 55 54 metro 100;
-#X obj 55 385 #posterize 2;
-#X text 262 342 <-- number of tones per channel;
-#X connect 10 0 27 0;
-#X connect 11 0 29 0;
-#X connect 13 0 12 0;
-#X connect 13 0 30 0;
-#X connect 14 0 15 0;
-#X connect 15 0 16 0;
-#X connect 16 0 27 1;
-#X connect 16 1 13 1;
-#X connect 18 0 10 0;
-#X connect 21 0 30 1;
-#X connect 22 0 23 0;
-#X connect 22 0 24 0;
-#X connect 27 0 13 0;
-#X connect 28 0 21 0;
-#X connect 29 0 10 0;
-#X connect 30 0 19 0;
-#X connect 30 0 22 0;
diff --git a/externals/gridflow/doc/tutorials/gf_tutorial_grid_1.pd b/externals/gridflow/doc/tutorials/gf_tutorial_grid_1.pd
deleted file mode 100644
index e86ff88f..00000000
--- a/externals/gridflow/doc/tutorials/gf_tutorial_grid_1.pd
+++ /dev/null
@@ -1,25 +0,0 @@
-#N canvas 363 183 701 242 10;
-#X obj 2 5 cnv 15 430 15 empty empty empty 20 12 0 14 -228992 -66577
-0;
-#X obj 2 -30 cnv 15 700 30 empty empty empty 20 12 0 14 -233017 -66577
-0;
-#X text 5 5 1.1 What is a grid?;
-#X text 7 -23 1 Introduction to Grids;
-#X obj 0 178 cnv 15 700 30 empty empty empty 20 12 0 14 -233017 -66577
-0;
-#X obj 523 56 bng 15 250 50 0 empty empty empty 0 -6 0 8 -24198 -1
--1;
-#X obj 537 119 #out window;
-#X obj 537 88 #in david.jpg;
-#X text 14 183 GridFlow 0.9.0;
-#X text 5 28 A grid is composed of rows and columns that contain numeric
-data. GridFlow usually interprets images as three-dimensional grids
-with rows (height) and columns (width). Each channel is a single colour
-\, usually red \, green and blue (RGB). The channels make up the colour
-information of an image. Videos are also interpreted as grids since
-each frame is a still image.;
-#X text 5 125 GridFlow objects that accept or produce grids are identified
-by the number sign "#" (a mini grid). From now on \, the term "grid"
-is used to identify an image or video.;
-#X connect 5 0 7 0;
-#X connect 7 0 6 0;
diff --git a/externals/gridflow/doc/tutorials/gf_tutorial_grid_2.pd b/externals/gridflow/doc/tutorials/gf_tutorial_grid_2.pd
deleted file mode 100644
index 59aecb1a..00000000
--- a/externals/gridflow/doc/tutorials/gf_tutorial_grid_2.pd
+++ /dev/null
@@ -1,64 +0,0 @@
-#N canvas 376 138 1022 422 10;
-#X obj 1 14 cnv 15 460 15 empty empty empty 20 12 0 14 -228992 -66577
-0;
-#X text 4 14 1.2 How to create a grid.;
-#X obj 1 14 cnv 15 430 15 empty empty empty 20 12 0 14 -228992 -66577
-0;
-#X text 5 14 1.2 Creating a grid using the [#import] object.;
-#X text 5 40 GridFlow can create a grid from a list of numbers. The
-[#import] object permits you to set the desired amount of rows and
-columns. A message box must be connected to tell the grid which numbers
-to display.;
-#X text 6 109 Steps to create a grid:;
-#X text 7 134 1 - Create a list of numbers using a message box (the
-numbers must be seperated by a space). The list can have as many numbers
-as you want but only the amount defined by [#import] will be displayed.
-As you click on the message box the numbers will appear in the grid.
-Note how the numbers are positioned in the grid from left to right
-and from the top to the bottom.;
-#X text 7 229 2 - Create the [#import] object and indicate the parameters
-you want as grid dimensions. By indicating 3 3 in brackets following
-[#import] \, you are creating a grid that has 3 rows and 3 columns.
-A 3 by 3 grid will displays 9 numbers.;
-#X text 8 291 3 - Connect the objects to a [display] object or a [print]
-object to see the resulting grid. You can alter your grid without actually
-seeing the image.;
-#X obj 1 -30 cnv 15 1020 30 empty empty empty 20 12 0 14 -233017 -66577
-0;
-#X obj 1 -30 cnv 15 780 30 empty empty empty 20 12 0 14 -233017 -66577
-0;
-#X text 6 -23 1 Introduction to Grids;
-#X obj 1 356 cnv 15 1020 30 empty empty empty 20 12 0 14 -233017 -66577
-0;
-#X obj 479 285 display;
-#X msg 547 154 reset;
-#X obj 476 15 cnv 15 545 15 empty empty empty 20 12 0 14 -228992 -66577
-0;
-#X obj 476 15 cnv 15 430 15 empty empty empty 20 12 0 14 -228992 -66577
-0;
-#X obj 673 50 cnv 15 15 15 empty empty empty 20 12 0 14 -259603 -66577
-0;
-#X obj 478 223 cnv 15 92 15 empty empty empty 20 12 0 14 -241291 -66577
-0;
-#X obj 478 222 #import (3 3);
-#X msg 478 51 1 2 3 4 5 6 7 8 9;
-#X msg 535 99 1 2 3 4;
-#X text 483 15 1.2 Patch example.;
-#X text 610 155 <-- resets the grid to only display the numbers from
-the list;
-#X obj 652 217 cnv 15 15 15 empty empty empty 20 12 0 14 -259603 -66577
-0;
-#X text 610 97 <-- click here three times to see how [#import] only
-outputs a grid once it recieves the number of values associated with
-its dimensions;
-#X text 590 217 <-- step 2: click here to create a grid that has 3
-rows and 3 columns (try changing these numbers to alter the dimensions
-of the grid).;
-#X text 592 287 <-- the display object outputs results.;
-#X text 611 50 <-- step 1: click here to view the numbers from the
-list in a grid.;
-#X text 9 363 GridFlow 0.9.0;
-#X connect 14 0 19 0;
-#X connect 19 0 13 0;
-#X connect 20 0 19 0;
-#X connect 21 0 19 0;
diff --git a/externals/gridflow/doc/tutorials/gf_tutorial_grid_3.pd b/externals/gridflow/doc/tutorials/gf_tutorial_grid_3.pd
deleted file mode 100644
index 4e5e5778..00000000
--- a/externals/gridflow/doc/tutorials/gf_tutorial_grid_3.pd
+++ /dev/null
@@ -1,30 +0,0 @@
-#N canvas 106 132 652 402 10;
-#X obj 7 11 cnv 15 640 15 empty empty empty 20 12 0 14 -228992 -66577
-0;
-#X text 10 11 1.2 How to create a grid.;
-#X obj 7 11 cnv 15 430 15 empty empty empty 20 12 0 14 -228992 -66577
-0;
-#X text 11 11 1.3 Creating a grid using the [# + 0] object.;
-#X obj 7 -29 cnv 15 640 30 empty empty empty 20 12 0 14 -233017 -66577
-0;
-#X text 12 -22 1 Introduction to Grids;
-#X obj 279 117 cnv 15 15 15 empty empty empty 20 12 0 14 -259603 -66577
-0;
-#X text 216 255 <-- the display object outputs results.;
-#X text 217 116 <-- step 1: click on either message box to view the
-numbers from the list in a grid.;
-#X text 9 36 The [# + 0] object works like [#import] but allows you
-to put your grid parameters and values into one message box instead
-of having to insert them into the object box.;
-#X obj 5 337 cnv 15 640 30 empty empty empty 20 12 0 14 -233017 -66577
-0;
-#X msg 16 113 3 3 # 6 1 3 6 3 324 6 3 4;
-#X msg 37 159 3 3 # 1 0 0 0;
-#X obj 17 254 display;
-#X obj 16 204 cnv 15 37 15 empty empty empty 20 12 0 14 -241291 -66577
-0;
-#X obj 16 203 # + 0;
-#X text 14 345 GridFlow 0.8.4;
-#X connect 11 0 15 0;
-#X connect 12 0 15 0;
-#X connect 15 0 13 0;
diff --git a/externals/gridflow/doc/tutorials/gf_tutorial_image_1.pd b/externals/gridflow/doc/tutorials/gf_tutorial_image_1.pd
deleted file mode 100644
index 1c0fa483..00000000
--- a/externals/gridflow/doc/tutorials/gf_tutorial_image_1.pd
+++ /dev/null
@@ -1,65 +0,0 @@
-#N canvas 523 65 902 461 10;
-#X obj 4 323 cnv 15 900 30 empty empty empty 20 12 0 14 -233017 -66577
-0;
-#X obj 5 -67 cnv 15 430 15 empty empty empty 20 12 0 14 -228992 -66577
-0;
-#X obj 5 -106 cnv 15 900 30 empty empty empty 20 12 0 14 -233017 -66577
-0;
-#X obj 5 -106 cnv 15 780 30 empty empty empty 20 12 0 14 -233017 -66577
-0;
-#X text 12 -99 2 Introduction to Images;
-#X obj 450 -67 cnv 15 430 15 empty empty empty 20 12 0 14 -228992 -66577
-0;
-#X text 453 -67 1.2 How to create a grid.;
-#X obj 450 -67 cnv 15 430 15 empty empty empty 20 12 0 14 -228992 -66577
-0;
-#X obj 112 167 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 621 48 cnv 15 15 15 empty empty empty 20 12 0 14 -259603 -66577
-0;
-#X obj 621 100 cnv 15 15 15 empty empty empty 20 12 0 14 -259603 -66577
-0;
-#X text 557 99 <-- step #2 : click here to update the image;
-#X text 556 47 <-- step #1 : click here to load the image;
-#X text 8 169 step 3: Add a;
-#X text 7 136 step 2: Create [#in] object;
-#X text 8 202 step 4: Create a [#out window];
-#X text 6 98 step 1:;
-#X obj 450 264 cnv 15 25 15 empty empty empty 20 12 0 14 -260818 -66577
-0;
-#X text 449 264 Tip:;
-#X text 485 263 Remember \, as with the rest of PD \, you can obtain
-information regarding specific objects by right-clicking on it. Try
-this for [#in].;
-#X text 6 250 GridFlow accepts several image formats including .jpg
-\, .png \, .tiff.;
-#X text 449 213 The [#out window] object must be deleted in order to
-close the display window the image is in.;
-#X text 8 -46 The following steps outline the items that you need to
-open a grid. Whether it be an image or a video you want to open theses
-four steps are necessary.;
-#X text 8 2 In order for GridFlow to recognize your media files by
-file name you have to put them in the "images" folder (located within
-the GridFlow directory). Another way to locate an image is to specify
-the path to where it is saved on your hard drive in the message box.
-;
-#X text 452 -46 To view the image you must initialize the patch. Click
-on the message box \, and then on the bang (this must be done in the
-run mode). The image will appear in a display window \, off to the
-side of the patch. Sometimes the display window opens behind the patch
-\, try moving the patch if the display seems to be missing.;
-#X text 459 -66 2.1 Patch Example;
-#X text 8 -68 2.1 Opening an Image;
-#X obj 450 140 cnv 15 22 15 empty empty empty 20 12 0 14 -241291 -66577
-0;
-#X obj 450 180 #out window;
-#X msg 450 48 open b001.jpg;
-#X obj 534 99 bng 15 250 50 0 empty empty empty 0 -6 0 8 -24198 -1
--1;
-#X obj 450 139 #in;
-#X text 62 113 extension you want to open;
-#X text 63 99 Create message box [open< with the file name and;
-#X text 11 329 GridFlow 0.9.0;
-#X connect 29 0 31 0;
-#X connect 30 0 31 0;
-#X connect 31 0 28 0;
diff --git a/externals/gridflow/doc/tutorials/gf_tutorial_image_2.pd b/externals/gridflow/doc/tutorials/gf_tutorial_image_2.pd
deleted file mode 100644
index affb33b7..00000000
--- a/externals/gridflow/doc/tutorials/gf_tutorial_image_2.pd
+++ /dev/null
@@ -1,63 +0,0 @@
-#N canvas 257 0 660 624 10;
-#X obj 3 -37 cnv 15 653 15 empty empty empty 20 12 0 14 -228992 -66577
-0;
-#X obj 3 -72 cnv 15 653 30 empty empty empty 20 12 0 14 -233017 -355
-0;
-#X obj 3 517 cnv 15 653 30 empty empty empty 20 12 0 14 -233017 -66577
-0;
-#X obj 268 271 cnv 15 15 15 empty empty empty 20 12 0 14 -259603 -66577
-0;
-#X obj 152 134 cnv 15 15 15 empty empty empty 20 12 0 14 -259603 -66577
-0;
-#X text 88 133 <-- step #2 : start the metro;
-#X obj 203 363 cnv 15 15 15 empty empty empty 20 12 0 14 -259603 -66577
-0;
-#X obj 246 465 cnv 15 20 15 empty empty empty 20 12 0 14 -260818 -66577
-0;
-#X text 111 159 the metro refreshes the display window so you don't
-have to reload the grid every time it's altered.;
-#X text 204 271 <-- step #1 : load the image;
-#X text 245 464 Tip: try replacing this number box with a slider.;
-#X text 139 363 <-- step #3 : change the grid's vertical parameters
-;
-#X obj 247 405 cnv 15 15 15 empty empty empty 20 12 0 14 -259603 -66577
-0;
-#X text 15 -38 2.2 Resizing an image;
-#X text 10 82 [# pack] lets you resize grids by altering the vertical
-and horizontal parameters.;
-#X text 10 34 If you want to make your image four times its size \,
-you would have to insert a 4 into the object \; [#scale_by 4].;
-#X text 9 -10 [#scale_by] resizes grids by multiplying its parameters
-(width and height). To resize an image proportionatly a specific scaling
-size must be identified within the object.;
-#X text 183 405 <-- step #4 : change the grid's horizontal parameters
-;
-#X text 17 -67 2 Introduction to Images;
-#X obj 16 177 metro 10;
-#X obj 16 135 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 0 1
-;
-#X floatatom 74 368 5 1 4 0 - - -;
-#X obj 16 482 #out window;
-#X obj 53 295 #in;
-#X msg 53 272 load bluemarble.jpg;
-#X obj 74 431 #pack 2;
-#X obj 16 319 #store;
-#X obj 16 319 #store;
-#X obj 53 249 loadbang;
-#X obj 17 458 cnv 15 63 15 empty empty empty 20 12 0 14 -241291 -66577
-0;
-#X obj 16 457 #scale_by;
-#X floatatom 118 406 5 0 0 0 - - -;
-#X text 11 524 GridFlow 0.8.4;
-#X connect 19 0 26 0;
-#X connect 19 0 27 0;
-#X connect 20 0 19 0;
-#X connect 21 0 25 0;
-#X connect 23 0 26 1;
-#X connect 23 0 27 1;
-#X connect 24 0 23 0;
-#X connect 25 0 30 1;
-#X connect 27 0 30 0;
-#X connect 28 0 24 0;
-#X connect 30 0 22 0;
-#X connect 31 0 25 1;
diff --git a/externals/gridflow/doc/tutorials/gf_tutorial_image_3.pd b/externals/gridflow/doc/tutorials/gf_tutorial_image_3.pd
deleted file mode 100644
index 03d8c056..00000000
--- a/externals/gridflow/doc/tutorials/gf_tutorial_image_3.pd
+++ /dev/null
@@ -1,84 +0,0 @@
-#N canvas 0 87 993 482 10;
-#X obj 6 38 cnv 15 430 15 empty empty empty 20 12 0 14 -228992 -66577
-0;
-#X obj 6 3 cnv 15 1000 30 empty empty empty 20 12 0 14 -233017 -66577
-0;
-#X obj 5 149 cnv 15 430 15 empty empty empty 20 12 0 14 -228992 -66577
-0;
-#X obj 530 134 bng 15 250 50 0 empty empty empty 0 -6 0 8 -24198 -1
--1;
-#X obj 484 163 #in;
-#X obj 484 191 cnv 15 42 17 empty empty empty 20 12 0 14 -241291 -66577
-0;
-#X text 8 180 In this section we will introduce some very basic functions
-of the numeric operator \, one of the most common methods used for
-image transformation.;
-#X text 7 69 GridFlow performs high level grid processing \; in other
-words its main function is the manipulation of images and video. There
-are several ways to modify images in GridFlow \, some are very basic
-while others are more advanced.;
-#X text 9 234 Numeric Operators (numop): transform grids by applying
-a mathematical operation to each pixel value.;
-#X obj 6 455 cnv 15 1000 30 empty empty empty 20 12 0 14 -233017 -66577
-0;
-#X text 18 37 2.3 Image Manipulation;
-#X text 17 148 Image Manipulation Using Numeric Operators;
-#X text 8 277 To transform a grid the numop must first be given an
-argument. That argument will be applied to every pixel in the grid.
-The following three examples show some ways to give the numop an argument.
-;
-#X obj 460 38 cnv 15 430 15 empty empty empty 20 12 0 14 -228992 -66577
-0;
-#X text 465 62 Altering a grid by placing an argument directly into
-the numop object.;
-#X obj 560 343 cnv 15 42 17 empty empty empty 20 12 0 14 -241291 -66577
-0;
-#X obj 561 382 display;
-#X msg 483 278 1 2 3 4 5 6 7 8 9;
-#X obj 483 307 #import (3 3);
-#X obj 484 382 display;
-#X obj 10 38 cnv 15 430 15 empty empty empty 20 12 0 14 -228992 -66577
-0;
-#X text 22 37 2.3 Image Manipulation;
-#X obj 10 38 cnv 15 430 15 empty empty empty 20 12 0 14 -228992 -66577
-0;
-#X text 22 37 2.3 Image Manipulation;
-#X obj 672 103 cnv 15 15 15 empty empty empty 20 12 0 14 -259603 -66577
-0;
-#X obj 11 352 cnv 15 20 15 empty empty empty 20 12 0 14 -260818 -66577
-0;
-#X text 422 361 --->;
-#X text 608 103 <-- step #1 : click here to load the image;
-#X obj 672 133 cnv 15 15 15 empty empty empty 20 12 0 14 -259603 -66577
-0;
-#X obj 624 189 cnv 15 15 15 empty empty empty 20 12 0 14 -259603 -66577
-0;
-#X text 608 133 <-- step #2 : click here to view the image;
-#X text 658 201 the value (42);
-#X text 560 188 <-- step #3 : try altering the argument by changing
-;
-#X obj 691 276 cnv 15 15 15 empty empty empty 20 12 0 14 -259603 -66577
-0;
-#X obj 691 342 cnv 15 15 15 empty empty empty 20 12 0 14 -259603 -66577
-0;
-#X text 627 276 <-- step #1 : click here to load the grid;
-#X text 20 8 2 Introduction to Images;
-#X text 472 37 2.3 Patch Example 1;
-#X text 9 352 Tip: To understand how pixels are affected by the numop
-test out this numeric grid patch. Each grid value that is output is
-multiplied by 42;
-#X obj 484 220 #out window;
-#X obj 484 191 # * 42;
-#X text 727 360 by changing the value (42);
-#X text 628 342 <-- step #2 : try altering the argument;
-#X obj 560 343 # * 42;
-#X text 14 463 GridFlow 0.8.4;
-#X msg 484 106 open working.jpg;
-#X connect 3 0 4 0;
-#X connect 4 0 40 0;
-#X connect 17 0 18 0;
-#X connect 18 0 19 0;
-#X connect 18 0 43 0;
-#X connect 40 0 39 0;
-#X connect 43 0 16 0;
-#X connect 45 0 4 0;
diff --git a/externals/gridflow/doc/tutorials/gf_tutorial_image_4.pd b/externals/gridflow/doc/tutorials/gf_tutorial_image_4.pd
deleted file mode 100644
index ca6eae3f..00000000
--- a/externals/gridflow/doc/tutorials/gf_tutorial_image_4.pd
+++ /dev/null
@@ -1,49 +0,0 @@
-#N canvas 240 75 554 435 10;
-#X obj 23 -109 #in;
-#X obj 95 -59 cnv 15 25 17 empty empty empty 20 12 0 14 -241291 -66577
-0;
-#X obj 95 -84 cnv 15 25 17 empty empty empty 20 12 0 14 -241291 -66577
-0;
-#X obj 96 -34 cnv 15 25 17 empty empty empty 20 12 0 14 -241291 -66577
-0;
-#X msg 95 -59 67;
-#X msg 95 -84 2;
-#X msg 96 -34 199;
-#X text 146 -153 <--;
-#X text 145 -82 <--;
-#X text 145 -59 <--;
-#X text 145 -37 <--;
-#X obj 58 -148 bng 15 250 50 0 empty empty empty 0 -6 0 8 -24198 -1
--1;
-#X obj 4 -299 cnv 15 550 15 empty empty empty 20 12 0 14 -228992 -66577
-0;
-#X obj 4 -334 cnv 15 550 30 empty empty empty 20 12 0 14 -233017 -66577
-0;
-#X obj 5 69 cnv 15 550 30 empty empty empty 20 12 0 14 -233017 -66577
-0;
-#X text 18 -329 2 Introduction to Images;
-#X text 15 -301 2.3 Patch Example 2;
-#X text 12 -269 Altering a grid by sending numop an argument using
-a message box. This method allows you to send the numop several different
-arguments.;
-#X obj 209 -206 cnv 15 15 15 empty empty empty 20 12 0 14 -259603 -66577
-0;
-#X obj 210 -152 cnv 15 15 15 empty empty empty 20 12 0 14 -259603 -66577
-0;
-#X text 145 -206 <-- step #2 : click here to load the image;
-#X text 174 -153 Step #3: click on the bang to see the updated image
-;
-#X obj 215 -59 cnv 15 15 15 empty empty empty 20 12 0 14 -259603 -66577
-0;
-#X text 179 -59 step #1 : click on one of the arguments;
-#X text 14 77 GridFlow 0.8.4;
-#X obj 23 33 #out window;
-#X msg 23 -206 open working.jpg;
-#X obj 23 -35 # * 1;
-#X connect 0 0 27 0;
-#X connect 4 0 27 1;
-#X connect 5 0 27 1;
-#X connect 6 0 27 1;
-#X connect 11 0 0 0;
-#X connect 26 0 0 0;
-#X connect 27 0 25 0;
diff --git a/externals/gridflow/doc/tutorials/gf_tutorial_image_5.pd b/externals/gridflow/doc/tutorials/gf_tutorial_image_5.pd
deleted file mode 100644
index a0226c88..00000000
--- a/externals/gridflow/doc/tutorials/gf_tutorial_image_5.pd
+++ /dev/null
@@ -1,52 +0,0 @@
-#N canvas 559 20 560 533 10;
-#X obj 2 37 cnv 15 550 15 empty empty empty 20 12 0 14 -228992 -66577
-0;
-#X obj 2 2 cnv 15 550 30 empty empty empty 20 12 0 14 -233017 -66577
-0;
-#X obj 2 501 cnv 15 550 30 empty empty empty 20 12 0 14 -233017 -66577
-0;
-#X text 16 7 2 Introduction to Images;
-#X text 14 36 2.3 Patch Example 3;
-#X text 2 58 Altering a grid using numop with slider and metro. This
-combination allows you to scroll through values and modify a grid in
-real time.;
-#X obj 19 338 cnv 15 38 17 empty empty empty 20 12 0 14 -241291 -66577
-0;
-#X obj 225 207 cnv 15 15 15 empty empty empty 20 12 0 14 -259603 -66577
-0;
-#X obj 280 294 cnv 15 15 15 empty empty empty 20 12 0 14 -259603 -66577
-0;
-#X text 314 306 the slider;
-#X obj 223 122 cnv 15 15 15 empty empty empty 20 12 0 14 -259603 -66577
-0;
-#X obj 224 162 cnv 15 15 15 empty empty empty 20 12 0 14 -259603 -66577
-0;
-#X obj 21 252 #in;
-#X obj 54 295 hsl 128 15 0 255 0 0 empty empty empty -2 -6 0 8 -260818
--1 -1 0 1;
-#X obj 53 228 metro 33.3;
-#X obj 53 206 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 1 1
-;
-#X floatatom 72 326 5 0 0 0 - - -;
-#X obj 50 165 bng 15 250 50 0 empty empty empty 0 -6 0 8 -24198 -1
--1;
-#X obj 21 398 #out window;
-#X msg 21 121 open scissors.jpg;
-#X obj 21 338 # + 0;
-#X text 159 122 <-- step #1 : click here to load the image;
-#X text 161 206 <-- step #2 : start the metro;
-#X text 160 162 <-- step #2 : click here to view the image;
-#X text 223 184 or;
-#X text 216 294 <-- step #3 : try altering the argument by using;
-#X text 11 509 GridFlow 0.9.0;
-#X text 4 443 These examples use the [# +] numop. There are several
-numeric operators \; they can be found in the numeric operator help
-patch (right click on the [# + 0] and select help to view them).;
-#X connect 12 0 20 0;
-#X connect 13 0 16 0;
-#X connect 13 0 20 1;
-#X connect 14 0 12 0;
-#X connect 15 0 14 0;
-#X connect 17 0 12 0;
-#X connect 19 0 12 0;
-#X connect 20 0 18 0;
diff --git a/externals/gridflow/doc/tutorials/gf_tutorial_image_6.pd b/externals/gridflow/doc/tutorials/gf_tutorial_image_6.pd
deleted file mode 100644
index e595e5b1..00000000
--- a/externals/gridflow/doc/tutorials/gf_tutorial_image_6.pd
+++ /dev/null
@@ -1,66 +0,0 @@
-#N canvas 130 10 767 676 10;
-#X obj 7 -69 cnv 15 760 15 empty empty empty 20 12 0 14 -228992 -66577
-0;
-#X obj 2 425 cnv 15 760 30 empty empty empty 20 12 0 14 -233017 -66577
-0;
-#X obj 4 -220 cnv 15 760 30 empty empty empty 20 12 0 14 -233017 -66577
-0;
-#X text 18 -215 2 Introduction to Images;
-#X obj 5 -183 cnv 15 760 15 empty empty empty 20 12 0 14 -228992 -66577
-0;
-#X text 12 -155 When an image is represented as a grid every pixel
-value will vary between 0 and 255 Colour wrapping occurs when the result
-of an operation on the pixel value is higher than 255 Values above
-255 are counted from 0 For example: if a pixel has a red value of 240
-and 20 is added to it \, you get 5 instead of displaying 260 (240 +
-20 - 255 = 5).;
-#X text 17 -184 2.4 Colour Wrapping;
-#X text 15 -69 2.4 [#clip];
-#X text 11 -44 The [#clip] object is used with numops in order to set
-a lower and upper range to pixel values. This allows you to avoid over
-saturating the colours of your grid.;
-#X obj 163 83 cnv 15 15 15 empty empty empty 20 12 0 14 -259603 -66577
-0;
-#X obj 19 254 cnv 15 38 17 empty empty empty 20 12 0 14 -241291 -66577
-0;
-#X obj 53 161 hsl 128 15 0 255 0 0 empty empty empty -2 -6 0 8 -260818
--1 -1 0 1;
-#X obj 20 56 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 0 1;
-#X obj 50 353 #clip;
-#X obj 20 78 metro 33.3;
-#X obj 75 185 #color;
-#X obj 20 385 #out window;
-#X obj 20 314 shunt;
-#X obj 50 288 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 0 1
-;
-#X obj 3 107 bng 15 250 50 0 empty empty empty 0 -6 0 8 -24198 -1 -1
-;
-#X text 296 211 channel at a time;
-#X text 268 196 <-- use colour specific sliders to add values to one
-;
-#X obj 147 288 cnv 15 15 15 empty empty empty 20 12 0 14 -259603 -66577
-0;
-#X text 179 288 click here to redirect the flow of data using the [shunt]
-object and see the effect of [#clip];
-#X text 100 83 <-- step #1 : start the metro;
-#X text 199 160 <-- use slider to add values to all channels at once
-;
-#X text 9 432 GridFlow 0.8.4;
-#X obj 20 136 #store;
-#X obj 66 136 #in sewing.jpg;
-#X obj 20 254 # + 0;
-#X obj 66 117 loadbang;
-#X text 84 288 <-- step #2 :;
-#X connect 11 0 29 1;
-#X connect 12 0 14 0;
-#X connect 13 0 16 0;
-#X connect 14 0 27 0;
-#X connect 15 0 29 1;
-#X connect 17 0 16 0;
-#X connect 17 1 13 0;
-#X connect 18 0 17 1;
-#X connect 19 0 27 0;
-#X connect 27 0 29 0;
-#X connect 28 0 27 1;
-#X connect 29 0 17 0;
-#X connect 30 0 28 0;
diff --git a/externals/gridflow/doc/tutorials/gf_tutorial_image_7.pd b/externals/gridflow/doc/tutorials/gf_tutorial_image_7.pd
deleted file mode 100644
index d7704291..00000000
--- a/externals/gridflow/doc/tutorials/gf_tutorial_image_7.pd
+++ /dev/null
@@ -1,36 +0,0 @@
-#N canvas 79 206 438 353 10;
-#X obj 2 -37 cnv 15 430 15 empty empty empty 20 12 0 14 -228992 -66577
-0;
-#X obj 2 -72 cnv 15 430 30 empty empty empty 20 12 0 14 -233017 -66577
-0;
-#X obj 3 244 cnv 15 430 30 empty empty empty 20 12 0 14 -233017 -66577
-0;
-#X text 4 -15 To convert an image to greyscale use [#rgb_to_greyscale].
-It converts a colour information into a black to white gradient.;
-#X obj 12 207 cnv 15 25 15 empty empty empty 20 12 0 14 -260818 -66577
-0;
-#X text 11 207 Tip:;
-#X text 48 201 If you have trouble opening this image refer back to
-previous tutorials.;
-#X text 16 -67 2 Introduction to Images;
-#X text 16 -37 2.5 Greyscale;
-#X obj 14 125 cnv 15 110 16 empty empty empty 20 12 0 14 -241291 -66577
-0;
-#X obj 15 71 #in;
-#X obj 27 51 bng 15 250 50 0 empty empty empty 0 -6 0 8 -24198 -1 -1
-;
-#X msg 15 27 open working.jpg;
-#X text 11 252 GridFlow 0.9.0;
-#X obj 15 124 #rgb_to_greyscale;
-#X obj 15 145 #greyscale_to_rgb;
-#X obj 15 172 #out window \, title greyscale;
-#X obj 157 91 #out window \, title original;
-#X obj 15 94 t a a;
-#X text 124 144 [#out window] still only accepts rgb images;
-#X connect 10 0 18 0;
-#X connect 11 0 10 0;
-#X connect 12 0 10 0;
-#X connect 14 0 15 0;
-#X connect 15 0 16 0;
-#X connect 18 0 14 0;
-#X connect 18 1 17 0;
diff --git a/externals/gridflow/doc/tutorials/gf_tutorial_image_8.pd b/externals/gridflow/doc/tutorials/gf_tutorial_image_8.pd
deleted file mode 100644
index 1697e73b..00000000
--- a/externals/gridflow/doc/tutorials/gf_tutorial_image_8.pd
+++ /dev/null
@@ -1,61 +0,0 @@
-#N canvas 29 52 836 433 10;
-#X obj 3 347 cnv 15 830 30 empty empty empty 20 12 0 14 -233017 -66577
-0;
-#X obj 4 -18 cnv 15 830 15 empty empty empty 20 12 0 14 -228992 -66577
-0;
-#X obj 4 -52 cnv 15 830 30 empty empty empty 20 12 0 14 -233017 -66577
-0;
-#X text 11 -46 2 Introduction to Images;
-#X text 10 -18 2.6 Remap Image;
-#X obj 261 229 cnv 15 25 15 empty empty empty 20 12 0 14 -260818 -66577
-0;
-#X text 260 229 Tip:;
-#X text 290 228 This is a numeric operator. Right click on it for more
-information or go back to the tutorial about the numeric operator.
-;
-#X obj 272 77 cnv 15 15 15 empty empty empty 20 12 0 14 -259603 -66577
-0;
-#X obj 321 188 cnv 15 15 15 empty empty empty 20 12 0 14 -259603 -66577
-0;
-#X text 355 200 number box to transform image;
-#X obj 21 267 cnv 15 85 15 empty empty empty 20 12 0 14 -241291 -66577
-0;
-#X obj 20 77 bng 15 250 50 0 empty empty empty 0 -6 0 8 -24198 -1 -1
-;
-#X obj 20 166 #in;
-#X obj 20 104 t b b;
-#X obj 99 290 #print;
-#X obj 191 128 bng 15 250 50 0 empty empty empty 0 -6 0 8 -24198 -1
--1;
-#X floatatom 210 189 5 0 0 0 - - -;
-#X obj 180 152 #for (0 0) (240 320) (1 1);
-#X obj 180 102 metro 100;
-#X obj 180 77 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 1 1
-;
-#X obj 20 266 #remap_image;
-#X obj 180 227 # / 1;
-#X obj 20 315 #out window;
-#X text 231 228 <--;
-#X text 11 354 GridFlow 0.8.4;
-#X msg 50 135 open working.jpg;
-#X obj 110 77 cnv 15 15 15 empty empty empty 20 12 0 14 -259603 -66577
-0;
-#X text 12 7 Each numeric operator applies unique effects to a grid.
-The standard effect changes when numop is used in combination with
-the [#remap_image] object.;
-#X text 46 75 <-- step #1;
-#X text 207 77 <-- step #2 : start the metro;
-#X text 258 188 <-- step #3 : click and drag cursor over;
-#X connect 12 0 14 0;
-#X connect 13 0 21 0;
-#X connect 14 0 13 0;
-#X connect 14 1 26 0;
-#X connect 16 0 18 0;
-#X connect 17 0 22 1;
-#X connect 18 0 22 0;
-#X connect 19 0 18 0;
-#X connect 20 0 19 0;
-#X connect 21 0 23 0;
-#X connect 21 1 15 0;
-#X connect 22 0 21 1;
-#X connect 26 0 13 0;
diff --git a/externals/gridflow/doc/tutorials/gf_tutorial_image_9.pd b/externals/gridflow/doc/tutorials/gf_tutorial_image_9.pd
deleted file mode 100644
index b7684734..00000000
--- a/externals/gridflow/doc/tutorials/gf_tutorial_image_9.pd
+++ /dev/null
@@ -1,65 +0,0 @@
-#N canvas 157 13 867 556 10;
-#X obj -14 522 cnv 15 862 30 empty empty empty 20 12 0 14 -233017 -66577
-0;
-#X obj -14 34 cnv 15 865 15 empty empty empty 20 12 0 14 -228992 -66577
-0;
-#X obj -14 -1 cnv 15 870 30 empty empty empty 20 12 0 14 -233017 -66577
-0;
-#X text -9 5 2 Introduction to Images;
-#X text -9 33 2.6 [#convolve];
-#X obj 147 258 #store;
-#X obj 147 362 # / 9;
-#X msg 297 372 3 3 # 1 1 1 1 1 1 1 1 1;
-#X obj -5 353 #out window;
-#X obj -5 160 #in;
-#X obj 147 177 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 0 1
-;
-#X obj -5 119 loadbang;
-#X obj 147 206 metro 33.3667;
-#X obj -5 218 t a;
-#X obj 147 335 #convolve \, seed 4;
-#X obj 297 339 loadbang;
-#X obj 297 445 display;
-#X obj 147 411 #clip;
-#X obj 529 390 cnv 15 15 15 empty empty empty 20 12 0 14 -259603 -66577
-0;
-#X obj 228 141 cnv 15 15 15 empty empty empty 20 12 0 14 -259603 -66577
-0;
-#X obj 229 175 cnv 15 15 15 empty empty empty 20 12 0 14 -259603 -66577
-0;
-#X text 164 140 <-- step #1 : load image;
-#X text 166 175 <-- step #3 : start metro;
-#X obj 297 316 cnv 15 110 15 empty empty empty 20 12 0 14 -241291 -66577
-0;
-#X text 331 316 Blurs;
-#X text 562 389 apply effect by selecting a message box;
-#X text 202 253 <-- The [#store] object stores the last grid that [#convolve]
-was applied to. Everytime time the metro bangs \, [#convolve] is applied
-to the grid retained in this object \, therefore applying effect on
-top of effect.;
-#X text 465 390 <-- step #2 :;
-#X text -8 529 GridFlow 0.9.0;
-#X text -18 502 ((Source convolve.pd : Copyright Mathieu Bouchard 2002)
-;
-#X msg 296 415 3 3 # 4 0 -1 3 1 0 0 0 4;
-#X text -9 55 [#convolve] allows you to apply preset effects such as
-blur \, edge sharpen and emboss onto a grid. In this example you can
-create two different kinds of "blurs" on an image.;
-#X msg -5 140 load working.jpg;
-#X obj 147 387 # abs-;
-#X connect 5 0 14 0;
-#X connect 6 0 33 0;
-#X connect 7 0 14 1;
-#X connect 9 0 13 0;
-#X connect 10 0 12 0;
-#X connect 11 0 32 0;
-#X connect 12 0 5 0;
-#X connect 13 0 5 1;
-#X connect 13 0 8 0;
-#X connect 14 0 6 0;
-#X connect 15 0 7 0;
-#X connect 17 0 13 0;
-#X connect 30 0 14 1;
-#X connect 30 0 16 0;
-#X connect 32 0 9 0;
-#X connect 33 0 17 0;
diff --git a/externals/gridflow/doc/tutorials/gf_tutorial_intro.pd b/externals/gridflow/doc/tutorials/gf_tutorial_intro.pd
deleted file mode 100644
index 9113ebb0..00000000
--- a/externals/gridflow/doc/tutorials/gf_tutorial_intro.pd
+++ /dev/null
@@ -1,86 +0,0 @@
-#N canvas 160 16 884 589 10;
-#X obj 5 6 cnv 15 870 30 empty empty empty 20 12 0 14 -233017 -66577
-0;
-#X obj 5 550 cnv 15 870 30 empty empty empty 20 12 0 14 -233017 -66577
-0;
-#X obj 6 46 cnv 15 430 15 empty empty empty 20 12 0 14 -179884 -66577
-0;
-#X obj 4 232 cnv 15 430 145 empty empty empty 20 12 0 14 -179884 -66577
-0;
-#X obj 25 271 pddp_open pure-data-1;
-#X obj 25 294 pddp_open pure-data-2;
-#X obj 25 317 pddp_open pure-data-3;
-#X obj 25 340 pddp_open pure-data-4;
-#X text 200 271 Pure-Data Introduction;
-#X text 200 294 GUI Objects for Interaction;
-#X text 200 317 Creating your first patch;
-#X text 200 340 Control: metro \, random & counter;
-#X obj 444 233 cnv 15 430 145 empty empty empty 20 12 0 14 -179884
--66577 0;
-#X obj 5 391 cnv 15 430 145 empty empty empty 20 12 0 14 -179884 -66577
-0;
-#X obj 25 416 pddp_open pure-data-5;
-#X obj 25 439 pddp_open pure-data-6;
-#X text 200 439 The powerful message object;
-#X obj 25 462 pddp_open pure-data-7;
-#X text 200 462 More about lists;
-#X text 200 485 Nesting collections of objects;
-#X text 200 416 Connectionless communications;
-#X obj 25 485 pddp_open pure-data-8;
-#X text 200 509 Using GUI's in abstractions;
-#X obj 25 509 pddp_open pure-data-9;
-#X obj 445 391 cnv 15 430 145 empty empty empty 20 12 0 14 -179884
--66577 0;
-#X obj 468 271 pddp_open GridFlow-1;
-#X obj 468 294 pddp_open GridFlow-2;
-#X obj 468 317 pddp_open GridFlow-3;
-#X obj 468 340 pddp_open GridFlow-4;
-#X text 642 319 Introduction to video;
-#X obj 446 46 cnv 15 430 15 empty empty empty 20 12 0 14 -179884 -66577
-0;
-#X text 645 477 Interfacing with sensors;
-#X obj 467 426 pddp_open GridFlow-6;
-#X obj 467 452 pddp_open GridFlow-7;
-#X text 451 236 2 Introduction to GridFlow;
-#X obj 448 236 cnv 15 15 15 empty empty empty 20 12 0 14 -262144 -66577
-0;
-#X text 451 236 2 Introduction to GridFlow;
-#X obj 8 395 cnv 15 15 15 empty empty empty 20 12 0 14 -262144 -66577
-0;
-#X obj 449 395 cnv 15 15 15 empty empty empty 20 12 0 14 -262144 -66577
-0;
-#X obj 7 235 cnv 15 15 15 empty empty empty 20 12 0 14 -262144 -66577
-0;
-#X text 452 395 4 Intermediate GridFlow;
-#X text 10 235 1 Introduction to Pure-Data;
-#X text 11 395 3 Intermediate Pure-Data;
-#X text 582 563 Stephanie Brodeur and Darsha Hewitt 2006;
-#X text 451 46 What is GridFlow?;
-#X text 500 550 What is GridFlow? and GridFlow tutorials developed
-by;
-#X text 453 84 GridFlow is a plug-in for PureData that introduces the
-grid (#) data type into the PD environment. GridFlow allows you to
-work with live video \, still images and video files in a real-time
-environment.;
-#X text 11 46 What is PureData (aka PD)?;
-#X text 14 85 PureData is an open-source patching environment for multi-media
-(audio+image). PureData is a programming language where you create
-relationships by connecting visual boxes (rather than typing complex
-commands).;
-#X text 454 144 This section deals with the particular objects related
-to GridFlow. GridFlow uses the usual PD "control" objects \, as well
-as a set of GridFlow specific objects.;
-#X text 15 141 A basic understanding of PureData is useful when using
-GridFlow. If you are new to the PureData programming environment it
-is recommended that you follow the Introduction to PureData before
-you move onto the GridFlow tutorials.;
-#X text 10 13 Welcome to PureData;
-#X text 13 551 What is PureData? and PureData tutorials copyright Ben
-Bogart 2005 \; (See COPYING.TXT for details);
-#X text 642 340 Introduction to live video;
-#X text 641 273 Introduction to grids;
-#X text 639 296 Introduction to images;
-#X text 653 480;
-#X obj 467 477 pddp_open GridFlow-8;
-#X text 646 451 Motion detection;
-#X text 646 426 Advanced video effects;
diff --git a/externals/gridflow/doc/tutorials/grid-intro.pd b/externals/gridflow/doc/tutorials/grid-intro.pd
deleted file mode 100644
index fdbfdbbf..00000000
--- a/externals/gridflow/doc/tutorials/grid-intro.pd
+++ /dev/null
@@ -1,10 +0,0 @@
-#N canvas 0 0 476 213 10;
-#X text 29 30 GridFlow is a plug-in for PureData that introduces the
-grid (#) data type into the PD environment. GridFlow allows you to
-work with live video \, still images and video files in a rel-time
-environment.;
-#X text 32 97 This section deals with the particular objects related
-to GridFlow. GridFlow uses the usual PD "control" objects \, as well
-as a set of GridFlow specific objects. Before we get into the tutorials
-we will explain the grid "#" \, the most important concept in GridFlow.
-;
diff --git a/externals/gridflow/doc/tutorials/pure-data-1.pd b/externals/gridflow/doc/tutorials/pure-data-1.pd
deleted file mode 100644
index 7be2a91a..00000000
--- a/externals/gridflow/doc/tutorials/pure-data-1.pd
+++ /dev/null
@@ -1,71 +0,0 @@
-#N canvas 221 110 894 498 10;
-#N canvas 0 22 450 300 this 0;
-#X obj 192 128 inlet;
-#X obj 192 171 outlet;
-#X text 8 7 If you're looking at this you're just going to confuse
-yourself!;
-#X connect 0 0 1 0;
-#X restore 499 380 pd this is an object;
-#X text 509 358 <- This is a connection;
-#X msg 499 319 10;
-#X text 13 348 Objects are like filters \, they change the way messages
-flow through them.;
-#X text 13 153 You can think of a patch as plumbing. The way water
-flows through the plumbing of your house \, messages flow through the
-connections in your patch. Objects change the flow of the messages
-to allow different things to happen. Messages always go into objects
-at the top \, called the inlet \, and always come out at the bottom
-\, called the outlet. In PD messages flow from top to bottom.;
-#X text 458 236 This is a very simple example of a patch \, the message
-"10" can be sent through the "pd this is an object" and can be seen
-being passed out the outlet.;
-#X floatatom 499 416 5 0 0 0 - - -;
-#X text 539 415 <- This number box shows the float message;
-#X text 553 334 and watch the output!;
-#X obj 8 6 cnv 15 870 30 empty empty empty 20 12 0 14 -233017 -66577
-0;
-#X obj 8 46 cnv 15 430 15 empty empty empty 20 12 0 14 -179884 -66577
-0;
-#X text 13 252 You can work with PD in two ways \, the first is in
-"edit mode". Edit-mode is where you create your patch by adding objects
-and the connections between them. "Run mode" is when you're done with
-the construction of your patch \, and you wish to send messages through
-it. In run-mode your cursor is an arrow (as it is right now since we
-are in run-mode) \, in edit-mode your cursor is a pointing hand.;
-#X text 458 136 Messages are what allow objects to communicate with
-one and other. Messages can change the way an object acts \, and/or
-express the work the object is doing. Messages come in different types.
-They can contain words \, numbers and groups of these. The main types
-of messages we will be dealing with are floats (numbers). You can click
-on a message \, when in run-mode \, to send it through your patch.
-;
-#X obj 448 46 cnv 15 430 15 empty empty empty 20 12 0 14 -179884 -66577
-0;
-#X obj 448 290 cnv 15 430 15 empty empty empty 20 12 0 14 -179884 -66577
-0;
-#X obj 8 447 cnv 15 870 30 empty empty empty 20 12 0 14 -233017 -66577
-0;
-#X text 668 449 Copyright Ben Bogart 2005 \; (See COPYING.TXT for details)
-;
-#X text 12 20 DESCRIPTION: What is a patch? An object? A message?;
-#N canvas 0 22 466 316 META 0;
-#X text 12 5 CATEGORY: tutorial;
-#X text 12 15 KEYWORDS: metaphor object message GUI introduction;
-#X restore 16 453 pd META;
-#X text 457 67 GUI objects allow you to interact with your PD patch
-as it is running. They allow you to change what your patch is doing
-without reconnecting the objects. The simplest GUI object is the "Message"
-that simply contains a message you want to send in your patch.;
-#X text 453 290 A patch that connects a GUI to an object to a second
-GUI.;
-#X text 531 320 <- This GUI sends a float message (click on it);
-#X text 13 66 When working with PD you are dealing primarily with objects
-\, GUI (Graphical User Interface) objects \, connections and messages.
-These are the building blocks of PD programming. When you connect objects
-\, GUI objects \, and messages you are creating a "patch". Patching
-is making something complex out of smaller building blocks.;
-#X text 13 46 The "patch" \, "objects" and "connections";
-#X text 453 46 "GUI objects" and "messages";
-#X text 12 8 1 Introduction to Pure-Data & its Metaphors;
-#X connect 0 0 6 0;
-#X connect 2 0 0 0;
diff --git a/externals/gridflow/doc/tutorials/pure-data-2.pd b/externals/gridflow/doc/tutorials/pure-data-2.pd
deleted file mode 100644
index 151af26f..00000000
--- a/externals/gridflow/doc/tutorials/pure-data-2.pd
+++ /dev/null
@@ -1,73 +0,0 @@
-#N canvas 197 100 899 548 10;
-#X obj 8 6 cnv 15 870 30 empty empty empty 20 12 0 14 -233017 -66577
-0;
-#X obj 8 46 cnv 15 430 15 empty empty empty 20 12 0 14 -179884 -66577
-0;
-#X obj 448 46 cnv 15 430 15 empty empty empty 20 12 0 14 -179884 -66577
-0;
-#X obj 8 497 cnv 15 870 30 empty empty empty 20 12 0 14 -233017 -66577
-0;
-#X text 668 499 Copyright Ben Bogart 2005 \; (See COPYING.TXT for details)
-;
-#N canvas 0 22 470 320 META 0;
-#X text 12 5 CATEGORY: tutorial;
-#X text 12 15 KEYWORDS: GUI slider toggle number message introduction
-;
-#X restore 16 503 pd META;
-#X text 12 20 DESCRIPTION: Message \, slider \, toggle \, bang and
-number;
-#X msg 93 145 hello world;
-#X obj 93 168 print;
-#X text 181 146 <- Click on this message;
-#X text 18 74 Messages control the behavior of objects and it is the
-objects that change what a patch does. The first object we're going
-to learn is "print". All "print" does is print out the messages you
-send it to the terminal:;
-#X text 19 197 TIP: If you forget what an object does you can always
-double-click (on a mac) or right-click (on a PC) and then choose "help".
-;
-#X text 19 250 In this tutorial we will use two different types of
-objects: "objects" (of which "print" is an example) and GUI objects
-\, (of which "message" is an example). GUI objects allow you to interact
-with your patch \, control PD and change parameters of objects. We
-are going to learn four types of GUI objects (but there are many more):
-Slider \, Toggle \, Bang \, and Number.;
-#X obj 76 355 hsl 300 30 0 127 0 0 empty empty This_is_a_HSlider_(Horizontal)
-10 15 1 10 -262144 -1 -1 0 1;
-#X obj 73 393 print;
-#X text 21 421 This "hslider" is connected to the print object. This
-way we can see what messages the "hslider" sends. Try clicking and
-dragging in the Slider. You can change the scale (and other properties)
-of some GUI Objects by double-clicking (mac) or right-clicking (pc)
-and choosing "properties".;
-#X text 13 46 The "message" and "hslider" GUI Objects:;
-#X text 453 46 "toggle" \, "bang" \, "number";
-#X obj 519 176 tgl 30 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
-1;
-#X obj 629 176 bng 30 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 629 210 print Bang;
-#X obj 519 210 print Toggle;
-#X obj 739 210 print Number;
-#X floatatom 739 192 5 0 0 0 - - -;
-#X text 466 76 "slider" \, "toggle" and "number" all send messages
-made up of floats (numbers). "bang" is a special case and it only sends
-the message "bang". Below we're using an argument to the print object
-that tags each message sent to the terminal. This way when we have
-multiple "print" objects in one patch we can differenciate thier output.
-;
-#X text 465 268 "toggle" sends the message "1" or "0" \, "bang" always
-sends "bang" and if you click and drag on the "number" you can see
-it acts a lot like a Slider. With "number" you can also click once
-\, and then type a number to send.;
-#X text 467 335 TIP: You can send floating point numbers by holding
-down the SHIFT key as you click and drag on the "number".;
-#X text 467 375 There are other types of GUI objects not covered here.
-See the guis-about.pd PDDP patch:;
-#X text 12 8 2 PD Introduction - Some Useful GUI Objects in Pure-Data
-;
-#X connect 7 0 8 0;
-#X connect 13 0 14 0;
-#X connect 18 0 21 0;
-#X connect 19 0 20 0;
-#X connect 23 0 22 0;
diff --git a/externals/gridflow/doc/tutorials/pure-data-3.pd b/externals/gridflow/doc/tutorials/pure-data-3.pd
deleted file mode 100644
index 729b2dc7..00000000
--- a/externals/gridflow/doc/tutorials/pure-data-3.pd
+++ /dev/null
@@ -1,70 +0,0 @@
-#N canvas 261 121 900 544 10;
-#X obj 8 6 cnv 15 870 30 empty empty empty 20 12 0 14 -233017 -66577
-0;
-#X obj 8 46 cnv 15 430 15 empty empty empty 20 12 0 14 -179884 -66577
-0;
-#X obj 448 366 cnv 15 430 15 empty empty empty 20 12 0 14 -179884 -66577
-0;
-#X obj 8 497 cnv 15 870 30 empty empty empty 20 12 0 14 -233017 -66577
-0;
-#X text 668 499 Copyright Ben Bogart 2005 \; (See COPYING.TXT for details)
-;
-#N canvas 0 22 474 324 META 0;
-#X text 12 5 CATEGORY: tutorial;
-#X text 12 15 KEYWORDS: patch first connecting placing place connect
-;
-#X restore 16 503 pd META;
-#X text 12 20 DESCRIPTION: Using PD to create your first patch;
-#X text 13 46 Adding Objects:;
-#X text 19 75 In order to create a patch you need to first place objects
-and GUI objects \, and second make connections between these objects.
-To place an object you need to be in "edit-mode". You should now be
-in run mode \, so please go to the "Edit" pull-down menu and choose
-"Edit mode" at the bottom. You should see your cursor change from an
-arrow to a pointing hand.;
-#X text 19 175 SHORTCUT: You can press "Control" and "e" simultaneously
-in order to toggle (switch) between edit and Run modes.;
-#X obj 448 386 cnv 15 430 100 empty empty empty 20 12 0 14 -233017
--66577 0;
-#X floatatom 506 406 5 0 0 0 - - -;
-#X text 19 355 SHORTCUT: You can press "Control" and "3" simultaneously
-in order to place a number. All shortcuts are listed next to the items
-in the "Put" menu.;
-#X text 453 366 Patch work area:;
-#X text 19 215 Once you are in "edit-mode" you are now free to place
-objects. To place an object go to the "Put" pull-down menu and choose
-"Number". Once you have chosen this menu item you will see that a "number"
-gui is attached to your mouse pointer. In order to place the number
-into the patch move your pointer to the grey area to the right (in
-the "Patch work area" -> Click once to release it from your mouse.
-Note that the number is coloured blue. The blue colour shows that an
-item in your patch is selected. To unselect any item simply click once
-on the blank (white) space between items.;
-#X obj 520 440 print;
-#X obj 448 156 cnv 15 430 15 empty empty empty 20 12 0 14 -179884 -66577
-0;
-#X text 453 156 Connecting Objects:;
-#X text 19 411 Next we're going to place the familar "print" object
-beneath the "number" GUI. Press "Control" and "1" to place an object
-box. Again the object gets attached to your mouse and again click once
-to place it in the patch area somewhere under the "number".;
-#X text 459 41 While the number box is still selected (coloured blue)
-you can see a flashing cursor. Type the word "print" into the object
-box. The object will retain a dashed line while you type. In order
-to create the object you simply need to unselect \, by clicking somewhere
-outside the object. Note that once you have clicked to create the object
-the dashed line turns solid and an inlet (small rectangle) gets drawn
-around the word "print". The objects have now been created!;
-#X text 459 185 All connections between objects in PD are created from
-outlet to inlet (top to bottom). To start making a connection move
-your hand-pointer over the outlet of the "number" gui. When over the
-outlet your pointer will change to a circle. When you see the circle
-press and hold the mouse button. As you drag (holding the mouse button
-down) the pointer you see a line being drawn from the outlet to your
-pointer. To attach this connection to another object drag your mouse
-to an inlet of another object. The pointer will again change to a circle
-and at this point you can release the mouse button. Once released the
-objects are now connected! To play with your patch go back into run-mode
-and click and drag on the number-box while watching the terminal.;
-#X text 12 8 3 PD Introduction - Creating your first patch;
-#X connect 11 0 15 0;
diff --git a/externals/gridflow/doc/tutorials/pure-data-4.pd b/externals/gridflow/doc/tutorials/pure-data-4.pd
deleted file mode 100644
index 4d38f41d..00000000
--- a/externals/gridflow/doc/tutorials/pure-data-4.pd
+++ /dev/null
@@ -1,87 +0,0 @@
-#N canvas 183 61 890 531 10;
-#X obj 8 6 cnv 15 870 30 empty empty empty 20 12 0 14 -233017 -66577
-0;
-#X obj 8 96 cnv 15 430 15 empty empty empty 20 12 0 14 -179884 -66577
-0;
-#X obj 8 487 cnv 15 870 30 empty empty empty 20 12 0 14 -233017 -66577
-0;
-#X text 668 489 Copyright Ben Bogart 2005 \; (See COPYING.TXT for details)
-;
-#N canvas 0 22 478 328 META 0;
-#X text 12 5 CATEGORY: tutorial;
-#X text 12 15 KEYWORDS: metro counter random;
-#X restore 16 493 pd META;
-#X text 12 20 DESCRIPTION: Learning "metro" \, "counter" & "random"
-;
-#X text 13 96 Using the "metro" object:;
-#X text 21 47 In this section we will learn three new objects \, "metro"
-\, "counter" \, and "random". Metro sends a bang at regular intervals
-\, just like a metronome.;
-#X obj 164 142 metro 250;
-#X obj 164 123 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
-1;
-#X obj 164 163 bng 15 100 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X floatatom 222 123 5 0 0 0 - - -;
-#X text 21 187 You can turn a Metro on and off by sending it a "1"
-or "0" message. Because a toggle sends 0/1 messages \, we can simply
-connect it directly. Metro also accepts an argument (words or numbers
-wirtten after the object name). This argument is how fast the metro
-should send out bangs (in milliseconds). You can always change the
-speed of the metro by sending it number messages through the rightmost
-inlet.;
-#X obj 8 306 cnv 15 430 15 empty empty empty 20 12 0 14 -179884 -66577
-0;
-#X text 13 306 Using the "random" object:;
-#X text 21 277 For more info see the metro-help.pd patch.;
-#X obj 168 385 bng 15 100 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 168 425 print;
-#X obj 168 404 random 100;
-#X floatatom 233 385 5 0 0 0 - - -;
-#X text 20 327 The Random object returns a number between 0 and the
-(number) argument when it receives a bang message in the leftmost inlet.
-You can also change the upper limit by sending a message to the rightmost
-inlet.;
-#X obj 448 46 cnv 15 430 15 empty empty empty 20 12 0 14 -179884 -66577
-0;
-#X text 453 46 Using the "random" object:;
-#X obj 559 154 bng 15 100 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X floatatom 590 154 3 1 3 0 - - -;
-#X floatatom 621 174 3 0 0 0 - - -;
-#X floatatom 652 194 3 0 0 0 - - -;
-#X obj 652 234 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X floatatom 559 234 8 0 0 0 - - -;
-#X obj 559 213 counter 0 10 1;
-#X text 21 447 For more info see the random-help.pd patch.;
-#X text 461 77 "counter" is simply an object that counts. It can count
-up \, count down and count up and then down. Where it starts and where
-it stops are all definable. This is the counter that in included with
-Gem \, it is not compatible with other counter objects.;
-#X text 461 274 The first argument for counter is the lower limit (number
-to start counting at). The second is the upper limit to count to. The
-third argument is the direction in which to count. "1" means forward
-\, "2" means backward and "3" means forward and then backward. You
-can also use the three rightmost inlets to change the behaviour of
-counter. The rightmost inlet is the upper limit \, the second right-most
-the lower limit \, and the third right-most as the direction. The rightmost
-outlet sends out a bang message when the counter loops.;
-#X text 681 193 Rightmost inlet;
-#X text 651 173 Second Rightmost inlet;
-#X text 621 153 Third Rightmost inlet;
-#X text 461 407 For more info see the counter-help.pd patch.;
-#X text 12 8 4 Introduction to PD - More objects;
-#X connect 8 0 10 0;
-#X connect 9 0 8 0;
-#X connect 11 0 8 1;
-#X connect 16 0 18 0;
-#X connect 18 0 17 0;
-#X connect 19 0 18 1;
-#X connect 23 0 29 0;
-#X connect 24 0 29 1;
-#X connect 25 0 29 2;
-#X connect 26 0 29 3;
-#X connect 29 0 28 0;
-#X connect 29 1 27 0;
diff --git a/externals/gridflow/doc/tutorials/pure-data-5.pd b/externals/gridflow/doc/tutorials/pure-data-5.pd
deleted file mode 100644
index dc357bb1..00000000
--- a/externals/gridflow/doc/tutorials/pure-data-5.pd
+++ /dev/null
@@ -1,108 +0,0 @@
-#N canvas -235 0 891 673 10;
-#X obj 8 6 cnv 15 870 30 empty empty empty 20 12 0 14 -233017 -66577
-0;
-#X obj 8 46 cnv 15 430 15 empty empty empty 20 12 0 14 -179884 -66577
-0;
-#X obj 8 627 cnv 15 870 30 empty empty empty 20 12 0 14 -233017 -66577
-0;
-#X text 668 629 Copyright Ben Bogart 2005 \; (See COPYING.TXT for details)
-;
-#N canvas 0 22 482 332 META 0;
-#X text 12 5 CATEGORY: tutorial;
-#X text 12 15 KEYWORDS: send receive netsend netreceive cordless communication
-network TCP/IP UDP internet;
-#X restore 16 633 pd META;
-#X obj 448 46 cnv 15 430 15 empty empty empty 20 12 0 14 -179884 -66577
-0;
-#X text 12 20 DESCRIPTION: Communicating between objects w/out connections
-;
-#X text 13 46 "send" & "receive";
-#X obj 86 223 send invisible-link;
-#X obj 86 248 receive invisible-link;
-#X floatatom 86 273 5 0 0 0 - - -;
-#X msg 86 198 10;
-#X floatatom 266 273 5 0 0 0 - - -;
-#X floatatom 266 203 5 0 0 0 - - -;
-#X obj 266 223 s invisible-link2;
-#X obj 266 248 r invisible-link2;
-#X obj 102 483 r send-from-number;
-#X floatatom 102 508 5 0 0 0 - - -;
-#X floatatom 102 462 5 0 0 0 - - send-from-number;
-#X floatatom 242 462 5 0 0 0 - - -;
-#X obj 242 483 s send-to-number2;
-#X floatatom 242 508 5 0 0 0 - send-to-number2 -;
-#X text 19 385 Note: Many GUI objects have built-in send and receive
-objects. The tag names are specified in the GUI properties. Remeber
-to get the GUI properties Right-Click or Control-Click on the GUI object
-and select "Properties".;
-#X text 453 46 "netsend" & "netreceive";
-#X text 19 575 For more info see: send-help.pd \, receive-help.pd \,
-netsend-help.pd and netreceive-help.pd;
-#X text 459 75 While "send" and "receive" allow you to send messages
-without connecting objects with patch-cords "netsend" and "netreceive"
-do the same but communicate between objects using TCP/IP the internet
-protocol. This means that you can send messages from a patch running
-on one machine to a second patch running on a second machine on the
-same network \, or even over the internet.;
-#X text 19 545 You can also send messages using UDP rather than TCP/IP.
-See "more info" below for details.;
-#X obj 589 292 netreceive 8001;
-#X text 459 185 The first argument of "netreceive" is the port the
-netrecive should listen on. "netsend" can connect to this port from
-other machines. "netreceive" has two outlets. The first outlet sends
-out the messages it receives over network \, and the second argument
-send a "1" when netsend is connected and "0" when netsend disconnects.
-;
-#X obj 589 318 print;
-#X obj 689 318 tgl 16 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1
-1;
-#X obj 503 563 netsend;
-#X text 459 355 "netsend" is controlled using three messages: "connect"
-\, "disconnect" and "send". "connect" has two arguments \, the host
-or IP and the port number you wish to connect to. There needs to be
-a "netreceive" listening on the port you connect to. "disconnect" drops
-the current connection. "send" sends any arguments to the "netreceive"
-over the network. The single outlet of "netsend" prints "1" when a
-connection is made and "0" when the connection is lost.;
-#X obj 503 586 tgl 16 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1
-1;
-#X msg 503 486 connect localhost 8001;
-#X msg 516 511 disconnect;
-#X msg 525 537 send hello from the internet;
-#X text 602 510 Close connection;
-#X text 673 486 Connect to this machine;
-#X text 733 536 Send message;
-#X text 19 75 In some cases you will want to send messages without
-connecting objects. You may be sending one message to many different
-places that would make connections too laborious. "send" and "receive"
-both have a single argument. This argument is the tag name for the
-communication. "send" will always send any messages it gets in it inlet
-to any number of "receive" objects in a patch with the same tag name.
-"s" and "r" can be used in the place of "send" and "receive".;
-#X obj 86 336 s broadcast;
-#X floatatom 86 317 5 0 0 0 - - -;
-#X obj 176 316 r broadcast;
-#X floatatom 176 339 5 0 0 0 - - -;
-#X obj 266 316 r broadcast;
-#X floatatom 266 339 5 0 0 0 - - -;
-#X text 12 8 5 Intermediate Pure-Data - send and receive;
-#X msg 585 598 send \$1;
-#X floatatom 584 567 5 0 0 0 - - -;
-#X text 651 596 send variables to another computer;
-#X connect 9 0 10 0;
-#X connect 11 0 8 0;
-#X connect 13 0 14 0;
-#X connect 15 0 12 0;
-#X connect 16 0 17 0;
-#X connect 19 0 20 0;
-#X connect 27 0 29 0;
-#X connect 27 1 30 0;
-#X connect 31 0 33 0;
-#X connect 34 0 31 0;
-#X connect 35 0 31 0;
-#X connect 36 0 31 0;
-#X connect 42 0 41 0;
-#X connect 43 0 44 0;
-#X connect 45 0 46 0;
-#X connect 48 0 31 0;
-#X connect 49 0 48 0;
diff --git a/externals/gridflow/doc/tutorials/pure-data-6.pd b/externals/gridflow/doc/tutorials/pure-data-6.pd
deleted file mode 100644
index 01e6dcd7..00000000
--- a/externals/gridflow/doc/tutorials/pure-data-6.pd
+++ /dev/null
@@ -1,92 +0,0 @@
-#N canvas 304 98 891 675 10;
-#X obj 8 6 cnv 15 870 30 empty empty empty 20 12 0 14 -233017 -66577
-0;
-#X obj 8 627 cnv 15 870 30 empty empty empty 20 12 0 14 -233017 -66577
-0;
-#X text 668 629 Copyright Ben Bogart 2005 \; (See COPYING.TXT for details)
-;
-#N canvas 0 22 486 336 META 0;
-#X text 12 5 CATEGORY: tutorial;
-#X text 12 15 KEYWORDS: message comma semicolon dollersign receive
-list;
-#X restore 16 633 pd META;
-#X text 12 20 DESCRIPTION: Advanced uses for the message object;
-#X text 19 45 In Pure-Data there are two distinct concepts with the
-name "message". Messages are the data that gets send in PD from object
-to object. There is also the Messsage object that contains a message
-you want to send. The message object is the first GUI object we covered
-in this tutorial. The message is not the only way to send messages
-in a patch \, since all GUI objects also send messages. So what makes
-the message object different? The message object can sent messages
-of any type \, where a number for example can only send float (number)
-messages. There are a number of powerful features in the message object.
-We are familar with the "usual" way of using the message object:;
-#X msg 163 208 hello;
-#X msg 212 208 bye;
-#X obj 196 238 print messages;
-#X text 459 556 Note: It is a very common mistake to confuse the message
-object with an object box. The object box is framed in a rectangle.
-The message object has a notch removed from the right edge.;
-#X obj 106 385 print messages;
-#X msg 106 358 hello \, bye;
-#X text 19 305 You can send multiple messages in succession from a
-single message box by using a comma " \, " between the messages. The
-messages get send from left to right.;
-#X obj 8 276 cnv 15 430 15 empty empty empty 20 12 0 14 -179884 -66577
-0;
-#X obj 8 416 cnv 15 430 15 empty empty empty 20 12 0 14 -179884 -66577
-0;
-#X text 13 416 Semicolon in message boxes;
-#X text 13 276 Comma in message boxes;
-#X text 19 445 Just like you can specify receive tags directly in GUI
-objects you can also use a message box to send a message directly to
-a particular "receive".;
-#X obj 34 536 r myreceive;
-#X floatatom 34 560 5 0 0 0 - - -;
-#X text 189 360 Click to send both messages;
-#X text 136 502 send "10" to receive tag "myreceive";
-#X text 19 585 For more info see: message-help.pd 04.messages.pd 10.more.messages.pd
-;
-#X msg 34 498 \; myreceive 10;
-#X obj 448 46 cnv 15 430 15 empty empty empty 20 12 0 14 -179884 -66577
-0;
-#X text 453 46 Dollarsign in message boxes;
-#X msg 534 175 \$1 \$1 \$1;
-#X msg 534 154 10;
-#X text 459 75 In messages there are placeholders that start with "$".
-These placeholders are variables that get replaced with messages you
-send to the message box. In the example below we have a single message
-"10". Each "$1" in the message box gets replaced with the message "10".
-;
-#X text 601 175 \$1 placeholder gets replaced;
-#X text 570 154 message sent to message box;
-#X msg 534 304 list 1 2;
-#X text 600 304 a list with items "1" and "2";
-#X msg 534 325 \$2 \$1;
-#X text 584 325 \$1 becomes "1" and \$2 becomes "2";
-#X obj 534 347 print reverse-list;
-#X text 459 235 The "$1" placeholder refers to the first element of
-the list the message box gets from its inlet. We can use this to use
-a message box to reverse the order of elements (called atoms) in a
-list.;
-#X text 459 385 In this case the list "1 2" has two elements (called
-atoms) when this list gets sent to the inlet of a message box its atoms
-are available to the message box through the $ variables. \$1 gets
-replaced with the first element \, \$2 the second and so on.;
-#X obj 534 197 print repeated-message;
-#X obj 480 511 print complex-message;
-#X msg 480 468 list Fred Marcus;
-#X text 607 468 a list with two symbol atoms;
-#X msg 480 489 Hi \$1. \, Ya know \$2?;
-#X text 623 489 Becomes: "Hi Fred \, Ya know Marcus?";
-#X text 12 8 6 Intermediate Pure-Data - Using the message object;
-#X connect 6 0 8 0;
-#X connect 7 0 8 0;
-#X connect 11 0 10 0;
-#X connect 18 0 19 0;
-#X connect 26 0 38 0;
-#X connect 27 0 26 0;
-#X connect 31 0 33 0;
-#X connect 33 0 35 0;
-#X connect 40 0 42 0;
-#X connect 42 0 39 0;
diff --git a/externals/gridflow/doc/tutorials/pure-data-7.pd b/externals/gridflow/doc/tutorials/pure-data-7.pd
deleted file mode 100644
index 0d8360ec..00000000
--- a/externals/gridflow/doc/tutorials/pure-data-7.pd
+++ /dev/null
@@ -1,106 +0,0 @@
-#N canvas 280 89 936 678 10;
-#X obj 8 6 cnv 15 870 30 empty empty empty 20 12 0 14 -233017 -66577
-0;
-#X obj 8 627 cnv 15 870 30 empty empty empty 20 12 0 14 -233017 -66577
-0;
-#X text 668 629 Copyright Ben Bogart 2005 \; (See COPYING.TXT for details)
-;
-#N canvas 0 22 482 332 META 0;
-#X text 12 5 CATEGORY: tutorial;
-#X text 12 15 KEYWORDS: send receive netsend netreceive cordless communication
-network TCP/IP UDP internet;
-#X restore 16 633 pd META;
-#X obj 8 266 cnv 15 430 15 empty empty empty 20 12 0 14 -179884 -66577
-0;
-#X text 13 266 "pack" object;
-#X msg 96 543 2;
-#X msg 45 521 1;
-#X obj 45 588 print mylist;
-#X text 12 20 DESCRIPTION: Using pack \, unpack and route with lists
-;
-#X text 19 75 In the Pure-Data introduction we discussed the three
-different types of data in PD. These are floats (numbers) \, symbols
-(words) and lists (groups of floats and words). Floats and symbols
-are known as atoms. Atoms are single elements \, they do not contain
-spaces or other special characters. Atoms can be grouped into lists.
-;
-#X obj 8 46 cnv 15 430 15 empty empty empty 20 12 0 14 -179884 -66577
-0;
-#X text 13 46 What is a list?;
-#X msg 145 216 list one two three;
-#X obj 145 239 print this is a list;
-#X text 19 155 Lists can be created in a number of ways \, but we are
-going to cover the two most common ways of creating lists. The most
-simple way to create a list is to type the list into a message box
-starting with the word (symbol) "list":;
-#X text 19 295 The "pack" object is the second most common way to create
-a list. "pack" allows you to take individual atoms and combine them
-into a single list. "pack" accepts a number of arguments. Each argument
-defines the type of atom in the resulting list. The "f" argument creates
-an inlet that accepts float atoms. The "s" argument creates an inlet
-accepts symbol atoms. The number of arguments is the same as the number
-of elements in the resultant list.;
-#X text 19 405 "pack" is the first object we are going to learn that
-has a "cold" inlet. Some control objects in PD have "hot" and "cold"
-inlets. When you send a message to a "cold" inlet the object does not
-generate any output (it does not send any messages). When "hot" inlets
-get messages then the object does generate output. The leftmost inlet
-is always the "hot" inlet and all other inlets are "cold" or in some
-cases all inlets are "hot";
-#X text 75 521 sets the first atom "1" and then sends the list;
-#X text 132 543 sets the second atom "2";
-#X obj 45 566 pack f f;
-#X text 459 45 Note that if you do not set the second and onwards atoms
-via thier "cold" inlets and you generate the list by setting the first
-atom via the "hot" inlet then all float atoms will be set to "0" and
-all symbol atoms will be set to "symbol" in the resultant list.;
-#X obj 448 126 cnv 15 430 15 empty empty empty 20 12 0 14 -179884 -66577
-0;
-#X text 453 126 "unpack" object;
-#X obj 596 241 unpack f f f;
-#X msg 596 219 list 1 2 3;
-#X floatatom 596 294 5 0 0 0 - - -;
-#X floatatom 635 277 5 0 0 0 - - -;
-#X floatatom 675 262 5 0 0 0 - - -;
-#X text 639 293 First Atom;
-#X text 678 277 Second Atom;
-#X text 718 261 Third Atom;
-#X text 459 156 The "unpack" object is very similar to the "pack" object
-except it works in reverse. "unpack" takes a list and splits it up
-into a number of atoms. It uses the same arguments as "pack" but generates
-outlets rather than inlets.;
-#X obj 448 319 cnv 15 430 15 empty empty empty 20 12 0 14 -179884 -66577
-0;
-#X text 453 319 "route" object;
-#X text 459 349 The "route" object sorts lists based on the first atom
-of the list. It as a number of float or symbol arguments. For each
-argument "route" creates one outlet. "route" also creates one additional
-rightmost outlet for rejections. For each list route gets it compares
-the first atom to all its arguments. If the first atom matches one
-of the arguments it the rest of the list \, without the first atom
-\, gets send through the outlet corresponding to that argument. If
-the first atom of the list does not match any arguments the entire
-list \, including the first atom \, gets sent out the rejection outlet.
-;
-#X msg 688 493 rejection 1;
-#X obj 685 553 print rejection;
-#X msg 538 493 o1 2;
-#X msg 613 493 o2 3;
-#X obj 613 531 route o1 o2;
-#X obj 613 593 print o1;
-#X obj 649 573 print o2;
-#X text 12 8 7 Intermediate Pure-Data - Working with lists;
-#X connect 6 0 20 1;
-#X connect 7 0 20 0;
-#X connect 13 0 14 0;
-#X connect 20 0 8 0;
-#X connect 24 0 26 0;
-#X connect 24 1 27 0;
-#X connect 24 2 28 0;
-#X connect 25 0 24 0;
-#X connect 36 0 40 0;
-#X connect 38 0 40 0;
-#X connect 39 0 40 0;
-#X connect 40 0 41 0;
-#X connect 40 1 42 0;
-#X connect 40 2 37 0;
diff --git a/externals/gridflow/doc/tutorials/pure-data-8.pd b/externals/gridflow/doc/tutorials/pure-data-8.pd
deleted file mode 100644
index aa95c087..00000000
--- a/externals/gridflow/doc/tutorials/pure-data-8.pd
+++ /dev/null
@@ -1,89 +0,0 @@
-#N canvas 238 94 891 621 10;
-#X obj 8 6 cnv 15 870 30 empty empty empty 20 12 0 14 -233017 -66577
-0;
-#X obj 8 577 cnv 15 870 30 empty empty empty 20 12 0 14 -233017 -66577
-0;
-#X text 668 579 Copyright Ben Bogart 2005 \; (See COPYING.TXT for details)
-;
-#N canvas 0 22 482 332 META 0;
-#X text 12 5 CATEGORY: tutorial;
-#X text 12 15 KEYWORDS: send receive netsend netreceive cordless communication
-network TCP/IP UDP internet;
-#X restore 16 583 pd META;
-#X obj 8 46 cnv 15 430 15 empty empty empty 20 12 0 14 -179884 -66577
-0;
-#X text 12 20 DESCRIPTION: nested patches using abstractions & subpatches
-;
-#X text 13 46 What is an abstraction?;
-#X text 23 76 Since objects are very simple in Pure-Data doing complex
-tasks often leads to very complex patches. Often it is useful to use
-the same bit of patching you do for one project for another. Pure-Data
-has a facility to "nest" \, that is to take a number of objects in
-a collection and place them into a group that looks like a single object.
-This is also handy to make a complex patch look simple and clear by
-hiding the nitty-gritty details. There are two types of these collections
-\, the subpatch and the abstraction.;
-#X obj 8 216 cnv 15 430 15 empty empty empty 20 12 0 14 -179884 -66577
-0;
-#X text 13 216 The subpatch;
-#X text 23 246 Subpatches are collections of objects that get "hidden"
-inside a container that looks like a normal PD object. Subpatches are
-created by creating an object box \, and typing the word "pd" followed
-by whatever you want to describe the contents of the subpatch. Subpatches
-are saved at the same time as the "parent" patch. Here is a subpatch:
-;
-#N canvas 0 22 460 310 subpatch 0;
-#X obj 30 34 inlet;
-#X obj 30 77 outlet;
-#X text 99 35 This is inside the subpatch.;
-#X connect 0 0 1 0;
-#X restore 178 359 pd subpatch;
-#X floatatom 178 336 5 0 0 0 - - -;
-#X floatatom 178 387 5 0 0 0 - - -;
-#X text 23 416 To open a subpatch simply click once on the subpatch
-in run-mode or control-click (or right-click) and select open in edit-mode.
-Both subpatches and abstractions communicate with the parent patch
-through special objects called "inlet" and "outlet" for each "inlet"
-in a subpatch or abstraction an inlet is created on the subpatch. This
-example has one inlet and one outlet.;
-#X obj 448 46 cnv 15 430 15 empty empty empty 20 12 0 14 -179884 -66577
-0;
-#X text 453 46 The abstraction;
-#X text 463 76 Abstractions are very similar to subpatches. They are
-collections of objects that are "hidden" inside PD objects \, and they
-both use "inlet" and "outlet" objects to communicate with the parent
-patch. The difference between subpatches and abstractions is that abstractions
-are saved in a separate file from the parent. This means when you save
-the parent patch containing abstractions the abstractions are not saved.
-The abstractions are saved as separate files so that they can be used
-in multiple patches. A second feature that exists in abstractions and
-not in subpatches is the ability to use arguments. "send" and "receive"
-can be used inside abstractions to send data without connections (patch-cords).
-;
-#X obj 682 253 r output;
-#X obj 682 277 print;
-#X obj 564 253 abstraction 1 2;
-#X text 463 316 To create an abstraction all you need to do is create
-a new PD patch ("File" -> "New"). Create the contents of the abstraction
-and then save it in the same directory as the patch you want to use
-it in. In this case the abstraction is saved as "abstraction.pd". Once
-saved you can easily embed the abstraction simply by typing its name
-\, without the .pd extension \, into an object box.;
-#X obj 448 416 cnv 15 430 15 empty empty empty 20 12 0 14 -179884 -66577
-0;
-#X text 453 416 Dollarsign in object boxes;
-#X text 463 446 If you open the above example you will see that the
-familiar "pack" object has a number of "$" arguments. The "$" arguments
-in a object box differ entirely from the "$" used in message objects.
-When you use a "$" in an object box inside an abstraction the values
-get replaced with the arguments to that abstraction. In the case above
-the "pack" object's first argument "$1" gets replaced with the first
-argument of the abstraction "1" "$2" gets replaced with the second
-argument "2".;
-#X text 23 536 For more info see: 12.PART2.subpatch.pd 14.dollersign.pd
-;
-#X text 12 8 8 Intermediate Pure-Data - Using abstractions and subpacthes
-;
-#X connect 11 0 13 0;
-#X connect 12 0 11 0;
-#X connect 18 0 19 0;
diff --git a/externals/gridflow/doc/tutorials/pure-data-9.pd b/externals/gridflow/doc/tutorials/pure-data-9.pd
deleted file mode 100644
index e5188ee0..00000000
--- a/externals/gridflow/doc/tutorials/pure-data-9.pd
+++ /dev/null
@@ -1,43 +0,0 @@
-#N canvas 291 108 450 562 10;
-#X obj 8 6 cnv 15 430 30 empty empty empty 20 12 0 14 -233017 -66577
-0;
-#X obj 8 517 cnv 15 430 30 empty empty empty 20 12 0 14 -233017 -66577
-0;
-#X text 228 519 Copyright Ben Bogart 2005 \; (See COPYING.TXT for details)
-;
-#N canvas 0 22 486 336 META 0;
-#X text 12 5 CATEGORY: tutorial;
-#X text 12 15 KEYWORDS: GOP graph parent abstraction nesting ui interface
-;
-#X restore 16 523 pd META;
-#X obj 8 46 cnv 15 430 15 empty empty empty 20 12 0 14 -179884 -66577
-0;
-#X text 12 20 DESCRIPTION: Using Graph on Parent abstractions;
-#X text 13 46 What is Graph on Parent?;
-#X text 13 76 Graph on Parent is a feature of PD that allows you to
-show the GUI objects contained in an abstraction on the parent patch.
-This means that you can create abstractions that not only include a
-collection of objects but can also include a user interface. To use
-graph on parent you simply need to create an abstraction the usual
-way but before saving it you need should Control-Click (Right-Click)
-on the background (white area) in the abstraction and choose "properties".
-From the properties menu check the "graph on parent" option. Now when
-you save the patch and embed it in a second patch all GUI objects will
-be visible.;
-#X obj 154 250 gop_abstraction;
-#X text 13 331 In this simple example there is only one GUI object
-\, a slider. Inside the abstraction the slider is connected to an inlet
-and an outlet. If you move the slider you can see the result in the
-outlet. If you set a value in the inlet with the number GUI you can
-see the position of the slider change.;
-#X floatatom 154 231 5 0 0 0 - - -;
-#X floatatom 154 297 5 0 0 0 - - -;
-#X text 13 421 Note you can change the size of the abstractions bounding
-box by Control-Click (Right-Click) on the abstraction and choose "properties".
-The size of the bounding-box is specified by the "screen width" and
-"screen height".;
-#X text 13 487 For more info see:;
-#X text 12 8 9 Intermediate Pure-Data - Using GUI's in abstractions
-;
-#X connect 8 0 11 0;
-#X connect 10 0 8 0;