diff options
author | N.N. <matju@users.sourceforge.net> | 2009-11-06 18:37:00 +0000 |
---|---|---|
committer | N.N. <matju@users.sourceforge.net> | 2009-11-06 18:37:00 +0000 |
commit | 5a6bee4fe076e06514c6e4e538590dd3a2a5cdc3 (patch) | |
tree | ecf543b363457a0c861bfb187080a45fdeffc349 /externals/gridflow/doc/flow_classes | |
parent | 5e6bb4f4786dd39158ffe02913590cc3dea21ebd (diff) |
upgrade gridflow
svn path=/trunk/; revision=12728
Diffstat (limited to 'externals/gridflow/doc/flow_classes')
167 files changed, 8358 insertions, 0 deletions
diff --git a/externals/gridflow/doc/flow_classes/#-help.pd b/externals/gridflow/doc/flow_classes/#-help.pd new file mode 100644 index 00000000..8a546e31 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#-help.pd @@ -0,0 +1,55 @@ +#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 new file mode 100644 index 00000000..61c29ebf --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#apply_colormap_channelwise-help.pd @@ -0,0 +1,55 @@ +#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 new file mode 100644 index 00000000..04cc2648 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#background_model-help.pd @@ -0,0 +1,90 @@ +#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 new file mode 100644 index 00000000..5486c419 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#border-help.pd @@ -0,0 +1,44 @@ +#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 new file mode 100644 index 00000000..403f396f --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#camera-help.pd @@ -0,0 +1,49 @@ +#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 new file mode 100644 index 00000000..970a7647 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#cast-help.pd @@ -0,0 +1,67 @@ +#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 new file mode 100644 index 00000000..81a8718f --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#centroid-help.pd @@ -0,0 +1,29 @@ +#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 new file mode 100644 index 00000000..cbef68ef --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#change-help.pd @@ -0,0 +1,35 @@ +#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 new file mode 100644 index 00000000..1c737f08 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#checkers-help.pd @@ -0,0 +1,26 @@ +#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 new file mode 100644 index 00000000..9e494b44 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#clip-help.pd @@ -0,0 +1,70 @@ +#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 new file mode 100644 index 00000000..50e844a0 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#cluster_avg-help.pd @@ -0,0 +1,22 @@ +#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 new file mode 100644 index 00000000..2fd0b3b7 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#color-help.pd @@ -0,0 +1,44 @@ +#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 new file mode 100644 index 00000000..7136bd29 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#contrast-help.pd @@ -0,0 +1,72 @@ +#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 new file mode 100644 index 00000000..d644340d --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#convolve-help.pd @@ -0,0 +1,67 @@ +#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 new file mode 100644 index 00000000..d86aaa70 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#dim-help.pd @@ -0,0 +1,39 @@ +#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 new file mode 100644 index 00000000..14f427db --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#downscale_by-help.pd @@ -0,0 +1,63 @@ +#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 new file mode 100644 index 00000000..672e4689 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#draw_hpgl-help.pd @@ -0,0 +1,35 @@ +#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 new file mode 100644 index 00000000..a2fd7df4 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#draw_image-help.pd @@ -0,0 +1,102 @@ +#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 new file mode 100644 index 00000000..21e2c3d2 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#draw_points-help.pd @@ -0,0 +1,56 @@ +#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 new file mode 100644 index 00000000..a5afe5e9 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#draw_polygon-help.pd @@ -0,0 +1,116 @@ +#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 new file mode 100644 index 00000000..a66a4945 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#draw_rect-help.pd @@ -0,0 +1,40 @@ +#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 new file mode 100644 index 00000000..fa406625 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#draw_slider-help.pd @@ -0,0 +1,56 @@ +#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 new file mode 100644 index 00000000..8ebd5849 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#edit_polygon-help.pd @@ -0,0 +1,42 @@ +#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 new file mode 100644 index 00000000..f21b9272 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#extract_diagonal-help.pd @@ -0,0 +1,32 @@ +#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 new file mode 100644 index 00000000..fe3adfe5 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#fade-help.pd @@ -0,0 +1,57 @@ +#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 new file mode 100644 index 00000000..189ec0b9 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#fade_lin-help.pd @@ -0,0 +1,36 @@ +#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 new file mode 100644 index 00000000..12ce00a6 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#fastblur-help.pd @@ -0,0 +1,90 @@ +#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 new file mode 100644 index 00000000..1b240df9 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#fft-help.pd @@ -0,0 +1,73 @@ +#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 new file mode 100644 index 00000000..46a31bdb --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#finished-help.pd @@ -0,0 +1,54 @@ +#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 new file mode 100644 index 00000000..0120aad9 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#fold-help.pd @@ -0,0 +1,80 @@ +#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 new file mode 100644 index 00000000..28903e51 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#for-help.pd @@ -0,0 +1,83 @@ +#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 new file mode 100644 index 00000000..d92aa497 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#from_pix-help.pd @@ -0,0 +1,89 @@ +#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 new file mode 100644 index 00000000..adbec0dd --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#gamma-help.pd @@ -0,0 +1,29 @@ +#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 new file mode 100644 index 00000000..d05aeaea --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#grade-help.pd @@ -0,0 +1,45 @@ +#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 new file mode 100644 index 00000000..c98ea289 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#greyscale_to_rgb-help.pd @@ -0,0 +1,26 @@ +#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 new file mode 100644 index 00000000..d759b412 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#hello-help.pd @@ -0,0 +1,23 @@ +#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 new file mode 100644 index 00000000..7b5853d7 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#hueshift-help.pd @@ -0,0 +1,20 @@ +#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 new file mode 100644 index 00000000..2620c142 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#import-help.pd @@ -0,0 +1,88 @@ +#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 new file mode 100644 index 00000000..cbb4cd46 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#in-help.pd @@ -0,0 +1,236 @@ +#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 new file mode 100644 index 00000000..612a2c6a --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#inner-help.pd @@ -0,0 +1,56 @@ +#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 new file mode 100644 index 00000000..e97765d1 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#io.aalib-help.pd @@ -0,0 +1,45 @@ +#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 new file mode 100644 index 00000000..fc30e0cc --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#io.grid-help.pd @@ -0,0 +1,44 @@ +#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 new file mode 100644 index 00000000..363c48a7 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#io.jpeg-help.pd @@ -0,0 +1,16 @@ +#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 new file mode 100644 index 00000000..0a2f1d05 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#io.png-help.pd @@ -0,0 +1,18 @@ +#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 new file mode 100644 index 00000000..c4cb6713 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#io.quicktime-help.pd @@ -0,0 +1,69 @@ +#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 new file mode 100644 index 00000000..af431363 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#io.videodev-help.pd @@ -0,0 +1,77 @@ +#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 new file mode 100644 index 00000000..2ccd9a29 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#io.x11-help.pd @@ -0,0 +1,150 @@ +#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 +> \; 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 new file mode 100644 index 00000000..10e71f1c --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#join-help.pd @@ -0,0 +1,72 @@ +#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 new file mode 100644 index 00000000..053b6ee0 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#labelling-help.pd @@ -0,0 +1,55 @@ +#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 new file mode 100644 index 00000000..0cbedf0f --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#layer-help.pd @@ -0,0 +1,47 @@ +#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 new file mode 100644 index 00000000..50133629 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#line_to_polygon-help.pd @@ -0,0 +1,40 @@ +#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 new file mode 100644 index 00000000..4fa076e6 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#make_arrow-help.pd @@ -0,0 +1,20 @@ +#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 new file mode 100644 index 00000000..0e0685be --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#make_cross-help.pd @@ -0,0 +1,47 @@ +#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 new file mode 100644 index 00000000..0d47f338 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#moment-help.pd @@ -0,0 +1,164 @@ +#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 new file mode 100644 index 00000000..d68966a6 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#moment_polar-help.pd @@ -0,0 +1,25 @@ +#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 new file mode 100644 index 00000000..4acf4a15 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#motion_detection-help.pd @@ -0,0 +1,83 @@ +#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 new file mode 100644 index 00000000..648afc0f --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#mouse-help.pd @@ -0,0 +1,99 @@ +#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 new file mode 100644 index 00000000..a2003659 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#noise_gate_yuvs-help.pd @@ -0,0 +1,26 @@ +#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 new file mode 100644 index 00000000..17d9d2e8 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#out-help.pd @@ -0,0 +1,139 @@ +#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 new file mode 100644 index 00000000..b56f18f8 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#outer-help.pd @@ -0,0 +1,105 @@ +#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 new file mode 100644 index 00000000..1f3614f4 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#pack-help.pd @@ -0,0 +1,46 @@ +#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 new file mode 100644 index 00000000..d67b92ac --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#perspective-help.pd @@ -0,0 +1,49 @@ +#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 new file mode 100644 index 00000000..6d7a661c --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#polygon_area-help.pd @@ -0,0 +1,28 @@ +#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 new file mode 100644 index 00000000..5dd99ec8 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#polygon_comparator-help.pd @@ -0,0 +1,85 @@ +#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 new file mode 100644 index 00000000..06afba8a --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#polygon_each_edge-help.pd @@ -0,0 +1,22 @@ +#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 new file mode 100644 index 00000000..41ee2986 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#polygon_moment-help.pd @@ -0,0 +1,64 @@ +#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 new file mode 100644 index 00000000..6409a635 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#polygon_perimetre-help.pd @@ -0,0 +1,23 @@ +#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 new file mode 100644 index 00000000..e08e8017 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#polygon_radial_map-help.pd @@ -0,0 +1,55 @@ +#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 new file mode 100644 index 00000000..3ca6cba7 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#posterize-help.pd @@ -0,0 +1,63 @@ +#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 new file mode 100644 index 00000000..b15e8ff4 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#print-help.pd @@ -0,0 +1,73 @@ +#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 new file mode 100644 index 00000000..2f167e57 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#ravel-help.pd @@ -0,0 +1,42 @@ +#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 new file mode 100644 index 00000000..2cbb9721 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#record-help.pd @@ -0,0 +1,53 @@ +#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 new file mode 100644 index 00000000..6ccd005c --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#redim-help.pd @@ -0,0 +1,59 @@ +#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 new file mode 100644 index 00000000..7ec9082f --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#reinterval-help.pd @@ -0,0 +1,33 @@ +#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 new file mode 100644 index 00000000..0c704ab6 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#remap_image-help.pd @@ -0,0 +1,53 @@ +#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 new file mode 100644 index 00000000..71c6fe6c --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#reverse-help.pd @@ -0,0 +1,65 @@ +#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 new file mode 100644 index 00000000..c370a754 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#rgb_to_greyscale-help.pd @@ -0,0 +1,27 @@ +#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 new file mode 100644 index 00000000..cbb7ab1f --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#rgb_to_yuv-help.pd @@ -0,0 +1,30 @@ +#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 new file mode 100644 index 00000000..f8167a45 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#rotate-help.pd @@ -0,0 +1,49 @@ +#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 new file mode 100644 index 00000000..e31066a3 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#rotatificator-help.pd @@ -0,0 +1,50 @@ +#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 new file mode 100644 index 00000000..f493dde7 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#saturation-help.pd @@ -0,0 +1,52 @@ +#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 new file mode 100644 index 00000000..5b61d091 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#scale_by-help.pd @@ -0,0 +1,57 @@ +#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 new file mode 100644 index 00000000..54adb77a --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#scale_to-help.pd @@ -0,0 +1,66 @@ +#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 new file mode 100644 index 00000000..06bad143 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#scan-help.pd @@ -0,0 +1,48 @@ +#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 new file mode 100644 index 00000000..df26fff8 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#seq_fold-help.pd @@ -0,0 +1,55 @@ +#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 new file mode 100644 index 00000000..df793231 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#slice-help.pd @@ -0,0 +1,47 @@ +#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 new file mode 100644 index 00000000..02240cc0 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#solarize-help.pd @@ -0,0 +1,39 @@ +#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 new file mode 100644 index 00000000..f2cdc61c --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#sort-help.pd @@ -0,0 +1,45 @@ +#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 new file mode 100644 index 00000000..9c6fc31a --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#spread-help.pd @@ -0,0 +1,79 @@ +#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 new file mode 100644 index 00000000..bc4a52c0 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#store-help.pd @@ -0,0 +1,111 @@ +#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 new file mode 100644 index 00000000..70263b36 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#swap-help.pd @@ -0,0 +1,25 @@ +#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 new file mode 100644 index 00000000..a8c4f064 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#t-help.pd @@ -0,0 +1,58 @@ +#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 new file mode 100644 index 00000000..238dab37 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#text_to_image-help.pd @@ -0,0 +1,24 @@ +#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 new file mode 100644 index 00000000..16886baf --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#to_float-help.pd @@ -0,0 +1,29 @@ +#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 new file mode 100644 index 00000000..51a376ea --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#to_list-help.pd @@ -0,0 +1,31 @@ +#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 new file mode 100644 index 00000000..15f076e8 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#to_literal-help.pd @@ -0,0 +1,34 @@ +#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 new file mode 100644 index 00000000..199ab591 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#to_pix-help.pd @@ -0,0 +1,107 @@ +#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 new file mode 100644 index 00000000..f991d814 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#to_symbol-help.pd @@ -0,0 +1,52 @@ +#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 +\, é \; 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 new file mode 100644 index 00000000..9537434a --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#transpose-help.pd @@ -0,0 +1,37 @@ +#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 new file mode 100644 index 00000000..4f765f5f --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#type-help.pd @@ -0,0 +1,26 @@ +#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 new file mode 100644 index 00000000..7068382a --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#unpack-help.pd @@ -0,0 +1,28 @@ +#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 new file mode 100644 index 00000000..aec81f45 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/#window-help.pd @@ -0,0 +1,33 @@ +#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 new file mode 100644 index 00000000..42ca0f5a --- /dev/null +++ b/externals/gridflow/doc/flow_classes/0x40complex_sq-help.pd @@ -0,0 +1,52 @@ +#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 new file mode 100644 index 00000000..54e3cfe7 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/args-demo.pd @@ -0,0 +1,27 @@ +#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 new file mode 100644 index 00000000..d7f6a345 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/args-help.pd @@ -0,0 +1,50 @@ +#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 new file mode 100644 index 00000000..b7ae57d5 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/ascii-help.pd @@ -0,0 +1,25 @@ +#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 new file mode 100644 index 00000000..a506c274 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/ascii_to_f-help.pd @@ -0,0 +1,31 @@ +#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 new file mode 100644 index 00000000..6d4aaf9d --- /dev/null +++ b/externals/gridflow/doc/flow_classes/cv/#CornerHarris-help.pd @@ -0,0 +1,14 @@ +#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 new file mode 100644 index 00000000..be29f945 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/cv/#Ellipse-help.pd @@ -0,0 +1,24 @@ +#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 new file mode 100644 index 00000000..095a6b4e --- /dev/null +++ b/externals/gridflow/doc/flow_classes/cv/#Invert-help.pd @@ -0,0 +1,32 @@ +#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 new file mode 100644 index 00000000..166e0aeb --- /dev/null +++ b/externals/gridflow/doc/flow_classes/cv/#KMeans-help.pd @@ -0,0 +1,29 @@ +#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 new file mode 100644 index 00000000..ba012df1 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/cv/#SVD-help.pd @@ -0,0 +1,44 @@ +#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 new file mode 100644 index 00000000..d8a26a75 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/cv/#numop-help.pd @@ -0,0 +1,60 @@ +#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 new file mode 100644 index 00000000..9ed72fec --- /dev/null +++ b/externals/gridflow/doc/flow_classes/display-help.pd @@ -0,0 +1,24 @@ +#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 new file mode 100644 index 00000000..d80f048a --- /dev/null +++ b/externals/gridflow/doc/flow_classes/doc_add-help.pd @@ -0,0 +1,23 @@ +#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 new file mode 100644 index 00000000..c88d7e85 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/doc_also-help.pd @@ -0,0 +1,18 @@ +#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 new file mode 100644 index 00000000..b4ac21cb --- /dev/null +++ b/externals/gridflow/doc/flow_classes/doc_below-help.pd @@ -0,0 +1,40 @@ +#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 new file mode 100644 index 00000000..b17f8b4a --- /dev/null +++ b/externals/gridflow/doc/flow_classes/doc_bottom-help.pd @@ -0,0 +1,27 @@ +#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 new file mode 100644 index 00000000..2362e2e8 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/doc_c-help.pd @@ -0,0 +1,17 @@ +#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 new file mode 100644 index 00000000..041cf718 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/doc_cc-help.pd @@ -0,0 +1,15 @@ +#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 new file mode 100644 index 00000000..3c69aa5d --- /dev/null +++ b/externals/gridflow/doc/flow_classes/doc_editmode-help.pd @@ -0,0 +1,16 @@ +#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 new file mode 100644 index 00000000..aaf53a39 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/doc_exist-help.pd @@ -0,0 +1,26 @@ +#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 new file mode 100644 index 00000000..3c210670 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/doc_f-help.pd @@ -0,0 +1,7 @@ +#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 new file mode 100644 index 00000000..00b71c86 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/doc_h-help.pd @@ -0,0 +1,13 @@ +#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 new file mode 100644 index 00000000..ba2cbbcb --- /dev/null +++ b/externals/gridflow/doc/flow_classes/doc_i-help.pd @@ -0,0 +1,10 @@ +#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 new file mode 100644 index 00000000..9858cce7 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/doc_ii-help.pd @@ -0,0 +1,15 @@ +#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 new file mode 100644 index 00000000..6ddf5154 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/doc_layout-help.pd @@ -0,0 +1,46 @@ +#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 new file mode 100644 index 00000000..3a955e48 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/doc_m-help.pd @@ -0,0 +1,78 @@ +#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 new file mode 100644 index 00000000..422e889c --- /dev/null +++ b/externals/gridflow/doc/flow_classes/doc_make-help.pd @@ -0,0 +1,25 @@ +#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 new file mode 100644 index 00000000..4481e7a5 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/doc_o-help.pd @@ -0,0 +1,11 @@ +#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 new file mode 100644 index 00000000..9ad3e905 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/doc_oo-help.pd @@ -0,0 +1,15 @@ +#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 new file mode 100644 index 00000000..8868e367 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/for-help.pd @@ -0,0 +1,56 @@ +#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 new file mode 100644 index 00000000..a7f5ff02 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/foreach-help.pd @@ -0,0 +1,19 @@ +#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 new file mode 100644 index 00000000..55ab816e --- /dev/null +++ b/externals/gridflow/doc/flow_classes/fps-help.pd @@ -0,0 +1,71 @@ +#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 new file mode 100644 index 00000000..f207434d --- /dev/null +++ b/externals/gridflow/doc/flow_classes/gf.oneshot-help.pd @@ -0,0 +1,42 @@ +#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 new file mode 100644 index 00000000..758f6560 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/hpgl_find_bbox-help.pd @@ -0,0 +1,21 @@ +#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 new file mode 100644 index 00000000..2764f4a5 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/hpgl_font_render-help.pd @@ -0,0 +1,178 @@ +#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 new file mode 100644 index 00000000..0ed87a04 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/hpgl_op-help.pd @@ -0,0 +1,30 @@ +#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 new file mode 100644 index 00000000..17e987c6 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/hpgl_track_position-help.pd @@ -0,0 +1,21 @@ +#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 new file mode 100644 index 00000000..8956e701 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/interval_overlap-help.pd @@ -0,0 +1,46 @@ +#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 new file mode 100644 index 00000000..c0787d4b --- /dev/null +++ b/externals/gridflow/doc/flow_classes/inv0x2a-help.pd @@ -0,0 +1,78 @@ +#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 new file mode 100644 index 00000000..99a05e09 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/inv0x2b-help.pd @@ -0,0 +1,75 @@ +#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 new file mode 100644 index 00000000..6e38a0a9 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/list.==-help.pd @@ -0,0 +1,23 @@ +#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 new file mode 100644 index 00000000..266738e8 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/listappend-help.pd @@ -0,0 +1,49 @@ +#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 new file mode 100644 index 00000000..e30f98da --- /dev/null +++ b/externals/gridflow/doc/flow_classes/listelement-help.pd @@ -0,0 +1,39 @@ +#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 new file mode 100644 index 00000000..de83d33c --- /dev/null +++ b/externals/gridflow/doc/flow_classes/listfind-help.pd @@ -0,0 +1,32 @@ +#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 new file mode 100644 index 00000000..6f253a92 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/listflatten-help.pd @@ -0,0 +1,39 @@ +#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 new file mode 100644 index 00000000..32e2512a --- /dev/null +++ b/externals/gridflow/doc/flow_classes/listlength-help.pd @@ -0,0 +1,41 @@ +#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 new file mode 100644 index 00000000..c71314af --- /dev/null +++ b/externals/gridflow/doc/flow_classes/listprepend-help.pd @@ -0,0 +1,51 @@ +#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 new file mode 100644 index 00000000..a970e607 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/listread-help.pd @@ -0,0 +1,40 @@ +#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 new file mode 100644 index 00000000..f5174d55 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/listreverse-help.pd @@ -0,0 +1,13 @@ +#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 new file mode 100644 index 00000000..900328f5 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/listsublist-help.pd @@ -0,0 +1,60 @@ +#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 new file mode 100644 index 00000000..d0207c97 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/norecurse-help.pd @@ -0,0 +1,16 @@ +#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 new file mode 100644 index 00000000..9cb8916d --- /dev/null +++ b/externals/gridflow/doc/flow_classes/parallel_port-help.pd @@ -0,0 +1,96 @@ +#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 new file mode 100644 index 00000000..17b44f36 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/pingpong-help.pd @@ -0,0 +1,27 @@ +#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 new file mode 100644 index 00000000..944a0e53 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/plotter_control-help.pd @@ -0,0 +1,79 @@ +#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 new file mode 100644 index 00000000..637d8211 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/plotter_parser-help.pd @@ -0,0 +1,116 @@ +#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 new file mode 100644 index 00000000..12415511 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/range-help.pd @@ -0,0 +1,28 @@ +#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 new file mode 100644 index 00000000..6284c1f9 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/receives-help.pd @@ -0,0 +1,38 @@ +#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 new file mode 100644 index 00000000..c2dceaa5 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/route2-help.pd @@ -0,0 +1,33 @@ +#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 new file mode 100644 index 00000000..fd21cebf --- /dev/null +++ b/externals/gridflow/doc/flow_classes/seq_fold-help.pd @@ -0,0 +1,46 @@ +#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 new file mode 100644 index 00000000..d2828f23 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/shunt-help.pd @@ -0,0 +1,70 @@ +#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 new file mode 100644 index 00000000..7bcdbd51 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/systemtime-help.pd @@ -0,0 +1,33 @@ +#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 new file mode 100644 index 00000000..e53730a5 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/tsctime-help.pd @@ -0,0 +1,50 @@ +#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 new file mode 100644 index 00000000..6e499216 --- /dev/null +++ b/externals/gridflow/doc/flow_classes/unix_time-help.pd @@ -0,0 +1,50 @@ +#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 new file mode 100644 index 00000000..28d52a2c --- /dev/null +++ b/externals/gridflow/doc/flow_classes/usertime-help.pd @@ -0,0 +1,33 @@ +#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 new file mode 100644 index 00000000..67f921ea --- /dev/null +++ b/externals/gridflow/doc/flow_classes/var.#-help.pd @@ -0,0 +1,21 @@ +#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; |