diff options
author | N.N. <matju@users.sourceforge.net> | 2008-04-28 18:10:15 +0000 |
---|---|---|
committer | N.N. <matju@users.sourceforge.net> | 2008-04-28 18:10:15 +0000 |
commit | 91c0003b158e5f0ed9d0677fb136ae8bb6f86ec5 (patch) | |
tree | d413a48086819f6a2620cd27d030861d122d4f3f /externals/gridflow/doc | |
parent | 98dfdfa2fc1c92ba69e33fd77ed3392034297c1f (diff) |
this is an old gridflow, and there's already a svn repository at http://gridflow.ca/svn/trunk
svn path=/trunk/; revision=9739
Diffstat (limited to 'externals/gridflow/doc')
237 files changed, 0 insertions, 11787 deletions
diff --git a/externals/gridflow/doc/Makefile b/externals/gridflow/doc/Makefile deleted file mode 100644 index 9171db3f..00000000 --- a/externals/gridflow/doc/Makefile +++ /dev/null @@ -1,2 +0,0 @@ -all:: - ruby moulinette.rb
\ No newline at end of file diff --git a/externals/gridflow/doc/architecture.html b/externals/gridflow/doc/architecture.html deleted file mode 100644 index 009464a1..00000000 --- a/externals/gridflow/doc/architecture.html +++ /dev/null @@ -1,217 +0,0 @@ -<html><head> -<!-- $Id: architecture.html,v 1.2 2006-03-15 04:44:50 matju Exp $ --> -<title>GridFlow 0.8.1 - Reference Manual: Architecture</title> -<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> -<link rel="stylesheet" href="gridflow.css" type="text/css"> -</head> -<body bgcolor="#FFFFFF" - leftmargin="0" topmargin="0" - marginwidth="0" marginheight="0"> -<table width="100%" bgcolor="white" border="0" cellspacing="2"> -<tr><td colspan="4" bgcolor="#082069"> -<img src="images/titre_gridflow.png" width="253" height="23"> -</td></tr><tr><td> </td></tr> -<tr><td colspan="4" bgcolor="black"> -<img src="images/black.png" width="1" height="2"></td></tr> -<tr><td colspan="4" height="16"> - <h4>GridFlow 0.8.1 - Reference Manual: Architecture</h4> -</td></tr> -<tr> - <td width="5%" rowspan="2"> </td> - <td width="15%" height="23"> </td> - <td width="80%" height="23"> </td> - <td width="5%" height="23"> </td> -</tr> -<tr><td colspan="2"><div cols="1"><h4><a href="#Numbers">Numbers</a></h4><ul> -</ul> -<h4><a href="#Grid_Literals">Grid Literals</a></h4><ul> -</ul> -<h4><a href="#Grid_Protocol">Grid Protocol</a></h4><ul> -</ul> -<h4><a href="#Picture_Protocol">Picture Protocol</a></h4><ul> -</ul> -<h4><a href="#Numeric_Operators">Numeric Operators</a></h4><ul> -</ul> -<h4><a href="#Synchronisation">Synchronisation</a></h4><ul> -</ul> -<h4><a href="#Bridges">Bridges</a></h4><ul> -</ul> -<br><br> -</div></td></tr> <tr><td colspan="4" bgcolor="black"> -<img src="images/black.png" width="1" height="2"></td></tr> -<tr><td colspan="4"><a name="Numbers"></a><h4>Numbers</h4></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td></td><td></td><td><p>High-performance computation requires precise and quite peculiar - definitions of numbers and their representation.</p></td></tr> -<tr><td></td><td></td><td> </td></tr> -<tr><td></td><td></td><td><p>Inside most programs, numbers are written down as strings of - bits. A bit is either zero or one. Just like the decimal system - uses units, tens, hundreds, the binary system uses units, twos, - fours, eights, sixteens, and so on, doubling every time.</p></td></tr> -<tr><td></td><td></td><td> </td></tr> -<tr><td></td><td></td><td><p>One notation, called integer allows for only integer values to be - written (no fractions). when it is unsigned, no negative values may - be written. when it is signed, one bit indicates whether the number - is positive or negative. Integer storage is usually fixed-size, so you have - bounds on the size of numbers, and if a result is too big it "wraps around", truncating the biggest - bits.</p></td></tr> -<tr><td></td><td></td><td> </td></tr> -<tr><td></td><td></td><td><p>Another notation, called floating point (or float) stores numbers using - a fixed number of significant digits, and a scale factor that allows for huge numbers - and tiny fractions at once. Note that 1/3 has periodic digits, but even 0.1 has periodic digits, - in binary coding; so expect some slight roundings; the precision offered should be - sufficient for most purposes. Make sure the errors of rounding don't accumulate, though.</p></td></tr> -<tr><td></td><td></td><td> </td></tr> -<tr><td></td><td></td><td><p>This little program of mine prints 1/3 in base 2 (only digits after the period): <kbd><font color="#007777">ruby -e 'x=1/3.0;for i in 0..52 do x*=2;y=x.floor;print y;x-=y end;puts'</font></kbd></p></td></tr> -<tr><td></td><td></td><td> </td></tr> -<tr><td></td><td></td><td><p>In GridFlow, there are six kinds of numbers:</p></td></tr> -<tr><td></td><td></td><td> </td></tr> -<tr><td></td><td></td><td><tr><td></td><td></td><td><table border="0" bgcolor="black" cellspacing="1"><tr><td valign="top" align="left"><table bgcolor="white" border="0" cellpadding="4" cellspacing="1"><tr><td bgcolor="#808080"><font color="#ffffff"><b>name</b></font></td><td bgcolor="#808080"><font color="#ffffff"><b>aliases</b></font></td><td bgcolor="#808080"><font color="#ffffff"><b>range</b></font></td><td bgcolor="#808080"><font color="#ffffff"><b>size (bytes)</b></font></td><td bgcolor="#808080"><font color="#ffffff"><b>precision</b></font></td><td bgcolor="#808080"><font color="#ffffff"><b>description</b></font></td></tr> <tr><td bgcolor="#ffffff">uint8</td><td bgcolor="#ffffff">u8 b</td><td bgcolor="#ffffff">0..255</td><td bgcolor="#ffffff">1</td><td bgcolor="#ffffff">1</td><td bgcolor="#ffffff"> - unsigned 8-bit integer. - this is the usual size of numbers taken from files and cameras, and - written to files and to windows. (however this gets converted to <kbd><font color="#007777">int32</font></kbd> - unless otherwise specified.) </td></tr> <tr><td bgcolor="#f0f8ff">int16</td><td bgcolor="#f0f8ff">i16 s</td><td bgcolor="#f0f8ff">±2<sup>15</sup> = -32768..32767</td><td bgcolor="#f0f8ff">2</td><td bgcolor="#f0f8ff">1</td><td bgcolor="#f0f8ff">...</td></tr> <tr><td bgcolor="#ffffff">int32</td><td bgcolor="#ffffff">i32 i</td><td bgcolor="#ffffff">±2<sup>31</sup> = -2147483648..2147483647</td><td bgcolor="#ffffff">4</td><td bgcolor="#ffffff">1</td><td bgcolor="#ffffff"> - signed 32-bit integer. - this is used for most computations. </td></tr> <tr><td bgcolor="#f0f8ff">int64</td><td bgcolor="#f0f8ff">i64 l</td><td bgcolor="#f0f8ff">±2<sup>63</sup></td><td bgcolor="#f0f8ff">8</td><td bgcolor="#f0f8ff">1</td><td bgcolor="#f0f8ff">...</td></tr> <tr><td bgcolor="#ffffff">float32</td><td bgcolor="#ffffff">f32 f</td><td bgcolor="#ffffff">±10<sup>±38</sup></td><td bgcolor="#ffffff">4</td><td bgcolor="#ffffff">23 bits = 0.000012% (about 7 digits)</td><td bgcolor="#ffffff">...</td></tr> <tr><td bgcolor="#f0f8ff">float64</td><td bgcolor="#f0f8ff">f64 d</td><td bgcolor="#f0f8ff">±10<sup>±308</sup></td><td bgcolor="#f0f8ff">8</td><td bgcolor="#f0f8ff">52 bits (about 15 digits)</td><td bgcolor="#f0f8ff">...</td></tr> </table></td></tr></table></td></tr></td></tr> -<tr><td></td><td></td><td> </td></tr> -<tr><td> </td></tr> - <tr><td colspan="4" bgcolor="black"> -<img src="images/black.png" width="1" height="2"></td></tr> -<tr><td colspan="4"><a name="Grid_Literals"></a><h4>Grid Literals</h4></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td></td><td></td><td><p> - In every grid-accepting inlet, a list may be sent instead; if - it consists only of integers, it will be converted to a - one-dimensional grid. Else it may contain a single "#" sign and - integers on both sides of it, where the ones to the left of it are - fed as arguments to an imaginary <kbd><font color="#007777">[#redim]</font></kbd> object and the one to the - right of it are fed through that <kbd><font color="#007777">[#redim]</font></kbd>. </p></td></tr> -<tr><td></td><td></td><td> </td></tr> -<tr><td></td><td></td><td><p> - In every grid-accepting inlet, an integer or float may also be sent; - it will be converted to a zero-dimensional grid (a <b>scalar</b>). </p></td></tr> -<tr><td></td><td></td><td> </td></tr> -<tr><td> </td></tr> - <tr><td colspan="4" bgcolor="black"> -<img src="images/black.png" width="1" height="2"></td></tr> -<tr><td colspan="4"><a name="Grid_Protocol"></a><h4>Grid Protocol</h4></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td></td><td></td><td><p> - a grid has an associated number type that defines what are the possible values for its elements - (and how much space it takes). the default is <b>int32</b>. </p></td></tr> -<tr><td></td><td></td><td> </td></tr> -<tr><td></td><td></td><td><p> - a single-dimensional grid of 3 elements (a triplet) is called dim(3). a - three-dimensional grid of 240 rows of 320 columns of triplets is called - dim(240,320,3). </p></td></tr> -<tr><td></td><td></td><td> </td></tr> -<tr><td></td><td></td><td><p> - There is a sequence in which elements of a Grid are stored and - transmitted. Dimension 0 is called "first" and dimension N-1 is - called "last". They are called so because if you select a - position in the first dimension of a grid, the selected part is of the same - shape minus the first dimension; so in dim(240,320,3) if you select - row 51 (or whichever valid row number), you get a dim(320,3). if you select - a subpart two more times you get to a single number. </p></td></tr> -<tr><td></td><td></td><td> </td></tr> -<tr><td></td><td></td><td><p> - At each such level, elements are sent/stored in their numeric order, - and are numbered using natural numbers starting at 0. This ordering usually - does not matter, but sometimes it does. Most notably, <kbd><font color="#007777">[#import]</font></kbd>, <kbd><font color="#007777">[#export]</font></kbd> and <kbd><font color="#007777">[#redim]</font></kbd> care about it. </p></td></tr> -<tr><td></td><td></td><td> </td></tr> -<tr><td></td><td></td><td><p> - On the other hand, order of dimensions usually does matter; this is - what distinguishes rows from columns and channels, for example. - Most objects care about the distinction. </p></td></tr> -<tr><td></td><td></td><td> </td></tr> -<tr><td></td><td></td><td><p> - A grid with only 1 element in a given dimension is different from one - lacking that dimension; it won't have the same meaning. You can use this - property to your advantage sometimes. </p></td></tr> -<tr><td></td><td></td><td> </td></tr> -<tr><td></td><td></td><td><p> - Zero-dimensional grids exist. They are called dim(). They can only contain - a single number. </p></td></tr> -<tr><td></td><td></td><td> </td></tr> -<tr><td> </td></tr> - <tr><td colspan="4" bgcolor="black"> -<img src="images/black.png" width="1" height="2"></td></tr> -<tr><td colspan="4"><a name="Picture_Protocol"></a><h4>Picture Protocol</h4></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td></td><td></td><td><p><i>This section is useful if you want to know what a picture is - in terms of a grid. </i></p></td></tr> -<tr><td></td><td></td><td> </td></tr> -<tr><td></td><td></td><td><p>A picture is a three-dimensional Grid: <ul> <li><b>0</b> : rows</li> <li><b>1</b> : columns</li> <li><b>2</b> : channels</li> </ul> </p></td></tr> -<tr><td></td><td></td><td> </td></tr> -<tr><td></td><td></td><td><p>Channels for the RGB color model are: <ul> <li><b>0</b> : red</li> <li><b>1</b> : green</li> <li><b>2</b> : blue</li> </ul> </p></td></tr> -<tr><td></td><td></td><td> </td></tr> -<tr><td></td><td></td><td><p> - Because Grids are made of 32-bit integers, a three-channel picture uses - 96 bpp (bits per pixel), and have to be downscaled to 24 bpp (or 16 bpp) - for display. That huge amount of slack is there because when you create - your own effects you often have intermediate results that need to be of - higher precision than a normal picture. Especially, results of multiplications - are big and should not overflow before you divide them back to normal; - and similarly, you can have negative values all over, as long as you take - care of them before they get to the display. </p></td></tr> -<tr><td></td><td></td><td> </td></tr> -<tr><td></td><td></td><td><p> - In the final conversion, high bits are just ignored. This means: black is - 0, maximum is 255, and values wrap like with <kbd><font color="#007777">% 256</font></kbd>. If you want to - clip them, you may use <kbd><font color="#007777">[# max 0]</font></kbd> and <kbd><font color="#007777">[# min 255]</font></kbd> objects. </p></td></tr> -<tr><td></td><td></td><td> </td></tr> -<tr><td> </td></tr> - <tr><td colspan="4" bgcolor="black"> -<img src="images/black.png" width="1" height="2"></td></tr> -<tr><td colspan="4"><a name="Numeric_Operators"></a><h4>Numeric Operators</h4></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td></td><td></td><td><p>In the following table, A is the value entered to the - left, and B is the value entered to the right.</p></td></tr> -<tr><td></td><td></td><td> </td></tr> -<tr><td></td><td></td><td><p>Angles are in hundredths of degrees. This means a full circle - (two pi radians) is 36000. You convert from degrees to our angles - by multiplying by 100. You convert from radians to our angles by - multiplying by 18000/pi.</p></td></tr> -<tr><td></td><td></td><td> </td></tr> -<tr><td></td><td></td><td><p>Hyperbolic functions (tanh) work with our angles too, so the - same conversions apply.</p></td></tr> -<tr><td></td><td></td><td> </td></tr> -<tr><td></td><td></td><td><tr><td></td><td></td><td><table border="0" bgcolor="black" cellspacing="1"><tr><td valign="top" align="left"><table bgcolor="white" border="0" cellpadding="4" cellspacing="1"><tr><td bgcolor="#808080"><font color="#ffffff"><b>name</b></font></td><td bgcolor="#808080"><font color="#ffffff"><b>description</b></font></td><td bgcolor="#808080"><font color="#ffffff"><b>meaning in pixel context (pictures, palettes)</b></font></td><td bgcolor="#808080"><font color="#ffffff"><b>meaning in spatial context (indexmaps, polygons)</b></font></td></tr> <tr><td bgcolor="#ffffff"><img src="op/ignore-icon.png" border="0" alt="ignore"></td><td bgcolor="#ffffff"> A </td><td bgcolor="#ffffff">no effect</td><td bgcolor="#ffffff">no effect</td></tr> <tr><td bgcolor="#f0f8ff"><img src="op/put-icon.png" border="0" alt="put"></td><td bgcolor="#f0f8ff"> B </td><td bgcolor="#f0f8ff">replace by</td><td bgcolor="#f0f8ff">replace by</td></tr> <tr><td bgcolor="#ffffff"><img src="op/add-icon.png" border="0" alt="+"></td><td bgcolor="#ffffff"> A + B </td><td bgcolor="#ffffff">brightness, crossfade</td><td bgcolor="#ffffff">move, morph</td></tr> <tr><td bgcolor="#f0f8ff"><img src="op/sub-icon.png" border="0" alt="-"></td><td bgcolor="#f0f8ff"> A - B </td><td bgcolor="#f0f8ff">brightness, motion detection</td><td bgcolor="#f0f8ff">move, motion detection</td></tr> <tr><td bgcolor="#ffffff"><img src="op/bus-icon.png" border="0" alt="inv+"></td><td bgcolor="#ffffff"> B - A </td><td bgcolor="#ffffff">negate then contrast</td><td bgcolor="#ffffff">180 degree rotate then move</td></tr> <tr><td bgcolor="#f0f8ff"><img src="op/mul-icon.png" border="0" alt="*"></td><td bgcolor="#f0f8ff"> A * B </td><td bgcolor="#f0f8ff">contrast</td><td bgcolor="#f0f8ff">zoom out</td></tr> <tr><td bgcolor="#ffffff"><img src="op/div-icon.png" border="0" alt="/"></td><td bgcolor="#ffffff"> A / B, rounded towards zero </td><td bgcolor="#ffffff">contrast</td><td bgcolor="#ffffff">zoom in</td></tr> <tr><td bgcolor="#f0f8ff"><img src="op/div2-icon.png" border="0" alt="div"></td><td bgcolor="#f0f8ff"> A / B, rounded downwards </td><td bgcolor="#f0f8ff">contrast</td><td bgcolor="#f0f8ff">zoom in</td></tr> <tr><td bgcolor="#ffffff"><img src="op/vid-icon.png" border="0" alt="inv*"></td><td bgcolor="#ffffff"> B / A, rounded towards zero </td><td bgcolor="#ffffff">--</td><td bgcolor="#ffffff">--</td></tr> <tr><td bgcolor="#f0f8ff"><img src="op/vid2-icon.png" border="0" alt="swapdiv"></td><td bgcolor="#f0f8ff"> B / A, rounded downwards </td><td bgcolor="#f0f8ff">--</td><td bgcolor="#f0f8ff">--</td></tr> <tr><td bgcolor="#ffffff"><img src="op/mod-icon.png" border="0" alt="%"></td><td bgcolor="#ffffff"> A % B, modulo (goes with div) </td><td bgcolor="#ffffff">--</td><td bgcolor="#ffffff">tile</td></tr> <tr><td bgcolor="#f0f8ff"><img src="op/dom-icon.png" border="0" alt="swap%"></td><td bgcolor="#f0f8ff"> B % A, modulo (goes with div) </td><td bgcolor="#f0f8ff">--</td><td bgcolor="#f0f8ff">--</td></tr> <tr><td bgcolor="#ffffff"><img src="op/rem-icon.png" border="0" alt="rem"></td><td bgcolor="#ffffff"> A % B, remainder (goes with /) </td><td bgcolor="#ffffff">--</td><td bgcolor="#ffffff">--</td></tr> <tr><td bgcolor="#f0f8ff"><img src="op/mer-icon.png" border="0" alt="swaprem"></td><td bgcolor="#f0f8ff"> B % A, remainder (goes with /) </td><td bgcolor="#f0f8ff">--</td><td bgcolor="#f0f8ff">--</td></tr> <tr><td bgcolor="#ffffff"><img src="op/gcd-icon.png" border="0" alt="gcd"></td><td bgcolor="#ffffff"> - greatest common divisor</td><td bgcolor="#ffffff">--</td><td bgcolor="#ffffff">--</td></tr> <tr><td bgcolor="#f0f8ff"><img src="op/lcm-icon.png" border="0" alt="lcm"></td><td bgcolor="#f0f8ff"> - least common multiple</td><td bgcolor="#f0f8ff">--</td><td bgcolor="#f0f8ff">--</td></tr> <tr><td bgcolor="#ffffff"><img src="op/or-icon.png" border="0" alt="|"></td><td bgcolor="#ffffff"> A or B, bitwise </td><td bgcolor="#ffffff">bright munchies</td><td bgcolor="#ffffff">bottomright munchies</td></tr> <tr><td bgcolor="#f0f8ff"><img src="op/xor-icon.png" border="0" alt="^"></td><td bgcolor="#f0f8ff"> A xor B, bitwise </td><td bgcolor="#f0f8ff">symmetric munchies (fractal checkers)</td><td bgcolor="#f0f8ff">symmetric munchies (fractal checkers)</td></tr> <tr><td bgcolor="#ffffff"><img src="op/and-icon.png" border="0" alt="&"></td><td bgcolor="#ffffff"> A and B, bitwise </td><td bgcolor="#ffffff">dark munchies</td><td bgcolor="#ffffff">topleft munchies</td></tr> <tr><td bgcolor="#f0f8ff"><img src="op/shl-icon.png" border="0" alt="<<"></td><td bgcolor="#f0f8ff"> A * (2**(B % 32)), which is left-shifting </td><td bgcolor="#f0f8ff">like *</td><td bgcolor="#f0f8ff">like *</td></tr> <tr><td bgcolor="#ffffff"><img src="op/shr-icon.png" border="0" alt=">>"></td><td bgcolor="#ffffff"> A / (2**(B % 32)), which is right-shifting </td><td bgcolor="#ffffff">like /,div</td><td bgcolor="#ffffff">like /,div</td></tr> <tr><td bgcolor="#f0f8ff"><img src="op/sc_or-icon.png" border="0" alt="||"></td><td bgcolor="#f0f8ff"> if A is zero then B else A </td><td bgcolor="#f0f8ff">--</td><td bgcolor="#f0f8ff">--</td></tr> <tr><td bgcolor="#ffffff"><img src="op/sc_and-icon.png" border="0" alt="&&"></td><td bgcolor="#ffffff"> if A is zero then zero else B</td><td bgcolor="#ffffff">--</td><td bgcolor="#ffffff">--</td></tr> <tr><td bgcolor="#f0f8ff"><img src="op/min-icon.png" border="0" alt="min"></td><td bgcolor="#f0f8ff"> the lowest value in A,B </td><td bgcolor="#f0f8ff">clipping</td><td bgcolor="#f0f8ff">clipping (of individual points)</td></tr> <tr><td bgcolor="#ffffff"><img src="op/max-icon.png" border="0" alt="max"></td><td bgcolor="#ffffff"> the highest value in A,B </td><td bgcolor="#ffffff">clipping</td><td bgcolor="#ffffff">clipping (of individual points)</td></tr> <tr><td bgcolor="#f0f8ff"><img src="op/cmp-icon.png" border="0" alt="cmp"></td><td bgcolor="#f0f8ff"> -1 when A<B; 0 when A=B; 1 when A>B. </td><td bgcolor="#f0f8ff">--</td><td bgcolor="#f0f8ff">--</td></tr> <tr><td bgcolor="#ffffff"><img src="op/eq-icon.png" border="0" alt="=="></td><td bgcolor="#ffffff"> is A equal to B ? 1=true, 0=false </td><td bgcolor="#ffffff">--</td><td bgcolor="#ffffff">--</td></tr> <tr><td bgcolor="#f0f8ff"><img src="op/ne-icon.png" border="0" alt="!="></td><td bgcolor="#f0f8ff"> is A not equal to B ? </td><td bgcolor="#f0f8ff">--</td><td bgcolor="#f0f8ff">--</td></tr> <tr><td bgcolor="#ffffff"><img src="op/gt-icon.png" border="0" alt=">"></td><td bgcolor="#ffffff"> is A greater than B ? </td><td bgcolor="#ffffff">--</td><td bgcolor="#ffffff">--</td></tr> <tr><td bgcolor="#f0f8ff"><img src="op/le-icon.png" border="0" alt="<="></td><td bgcolor="#f0f8ff"> is A not greater than B ? </td><td bgcolor="#f0f8ff">--</td><td bgcolor="#f0f8ff">--</td></tr> <tr><td bgcolor="#ffffff"><img src="op/lt-icon.png" border="0" alt="<"></td><td bgcolor="#ffffff"> is A less than B ? </td><td bgcolor="#ffffff">--</td><td bgcolor="#ffffff">--</td></tr> <tr><td bgcolor="#f0f8ff"><img src="op/ge-icon.png" border="0" alt=">="></td><td bgcolor="#f0f8ff">is A not less than B ? </td><td bgcolor="#f0f8ff">--</td><td bgcolor="#f0f8ff">--</td></tr> <tr><td bgcolor="#ffffff"><img src="op/sin-icon.png" border="0" alt="sin*"></td><td bgcolor="#ffffff"> B * sin(A) </td><td bgcolor="#ffffff">--</td><td bgcolor="#ffffff">waves, rotations</td></tr> <tr><td bgcolor="#f0f8ff"><img src="op/cos-icon.png" border="0" alt="cos*"></td><td bgcolor="#f0f8ff"> B * cos(A) </td><td bgcolor="#f0f8ff">--</td><td bgcolor="#f0f8ff">waves, rotations</td></tr> <tr><td bgcolor="#ffffff"><img src="op/atan-icon.png" border="0" alt="atan"></td><td bgcolor="#ffffff"> arctan(A/B) </td><td bgcolor="#ffffff">--</td><td bgcolor="#ffffff">find angle to origin (part of polar transform)</td></tr> <tr><td bgcolor="#f0f8ff"><img src="op/tanh-icon.png" border="0" alt="tanh*"></td><td bgcolor="#f0f8ff"> B * tanh(A) </td><td bgcolor="#f0f8ff">smooth clipping</td><td bgcolor="#f0f8ff">smooth clipping (of individual points), neural sigmoid, fuzzy logic</td></tr> <tr><td bgcolor="#ffffff"><img src="op/log-icon.png" border="0" alt="log*"></td><td bgcolor="#ffffff"> B * log(A) (in base e) </td><td bgcolor="#ffffff">--</td><td bgcolor="#ffffff">--</td></tr> <tr><td bgcolor="#f0f8ff"><img src="op/gamma-icon.png" border="0" alt="gamma"></td><td bgcolor="#f0f8ff"> floor(pow(a/256.0,256.0/b)*256.0) </td><td bgcolor="#f0f8ff">gamma correction</td><td bgcolor="#f0f8ff">--</td></tr> <tr><td bgcolor="#ffffff"><img src="op/pow-icon.png" border="0" alt="**"></td><td bgcolor="#ffffff"> A**B, that is, A raised to power B </td><td bgcolor="#ffffff">gamma correction</td><td bgcolor="#ffffff">--</td></tr> <tr><td bgcolor="#f0f8ff"><img src="op/abs-icon.png" border="0" alt="abs-"></td><td bgcolor="#f0f8ff"> absolute value of (A-B) </td><td bgcolor="#f0f8ff">--</td><td bgcolor="#f0f8ff">--</td></tr> <tr><td bgcolor="#ffffff"><img src="op/rand-icon.png" border="0" alt="rand"></td><td bgcolor="#ffffff"> randomly produces a non-negative number below A </td><td bgcolor="#ffffff">--</td><td bgcolor="#ffffff">--</td></tr> <tr><td bgcolor="#f0f8ff"><img src="op/sqrt-icon.png" border="0" alt="sqrt"></td><td bgcolor="#f0f8ff"> square root of A, rounded downwards </td><td bgcolor="#f0f8ff">--</td><td bgcolor="#f0f8ff">--</td></tr> <tr><td bgcolor="#ffffff"><img src="op/sq-icon.png" border="0" alt="sq-"></td><td bgcolor="#ffffff"> (A-B) times (A-B) </td><td bgcolor="#ffffff">--</td><td bgcolor="#ffffff">--</td></tr> <tr><td bgcolor="#f0f8ff"><img src="op/clip+-icon.png" border="0" alt="clip+"></td><td bgcolor="#f0f8ff"> like A+B but overflow causes clipping instead of wrapping around (coming soon) </td><td bgcolor="#f0f8ff">--</td><td bgcolor="#f0f8ff">--</td></tr> <tr><td bgcolor="#ffffff"><img src="op/clip--icon.png" border="0" alt="clip-"></td><td bgcolor="#ffffff"> like A-B but overflow causes clipping instead of wrapping around (coming soon) </td><td bgcolor="#ffffff">--</td><td bgcolor="#ffffff">--</td></tr> <tr><td bgcolor="#f0f8ff"><img src="op/avg-icon.png" border="0" alt="avg"></td><td bgcolor="#f0f8ff"> (A+B)/2 </td><td bgcolor="#f0f8ff">--</td><td bgcolor="#f0f8ff">--</td></tr> <tr><td bgcolor="#ffffff"><img src="op/hypot-icon.png" border="0" alt="hypot"></td><td bgcolor="#ffffff"> square root of (A*A+B*B) </td><td bgcolor="#ffffff">--</td><td bgcolor="#ffffff">--</td></tr> <tr><td bgcolor="#f0f8ff"><img src="op/erf-icon.png" border="0" alt="erf*"></td><td bgcolor="#f0f8ff"> integral of e^(-x*x) dx ... (coming soon; what ought to be the scaling factor?) </td><td bgcolor="#f0f8ff">--</td><td bgcolor="#f0f8ff">--</td></tr> </table></td></tr></table></td></tr></td></tr> -<tr><td></td><td></td><td> </td></tr> -<tr><td> </td></tr> - <tr><td colspan="4" bgcolor="black"> -<img src="images/black.png" width="1" height="2"></td></tr> -<tr><td colspan="4"><a name="Synchronisation"></a><h4>Synchronisation</h4></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td></td><td></td><td><p>In GridFlow you cannot send two grids in different inlets at the -same time. You have to use <kbd><font color="#007777">[#finished]</font></kbd> together with (possibly) <kbd><font color="#007777">[fork]</font></kbd> and <kbd><font color="#007777">[#store]</font></kbd>, -which can be cumbersome. If you don't do this, the result is undefined -behaviour (or crash!).</p></td></tr> -<tr><td></td><td></td><td> </td></tr> -<tr><td></td><td></td><td><p>In GridFlow 0.7.1 this is beginning to change. <kbd><font color="#007777">[#store]</font></kbd> and # now allow -right-inlet grids to be buffered if an operation is occuring on left inlet. This -should make many circuits simpler. </p></td></tr> -<tr><td></td><td></td><td> </td></tr> -<tr><td></td><td></td><td><p>(more to come)</p></td></tr> -<tr><td></td><td></td><td> </td></tr> -<tr><td> </td></tr> - <tr><td colspan="4" bgcolor="black"> -<img src="images/black.png" width="1" height="2"></td></tr> -<tr><td colspan="4"><a name="Bridges"></a><h4>Bridges</h4></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td></td><td></td><td><p>Starting with version 0.6, GridFlow is Ruby-centric instead of jMax-centric. -jMax support has been added back as a <b>Bridge</b>.</p></td></tr> -<tr><td></td><td></td><td> </td></tr> -<tr><td></td><td></td><td><p>Bridges, for the most part, plug into the FObject class, which is the common -root of most of GridFlow's classes. Under the current design, the bridge is -compiled separately, and is directly loaded by the host software; then the -bridge starts Ruby and makes it load the main GridFlow; then the bridge hooks -with the main part. </p></td></tr> -<tr><td></td><td></td><td> </td></tr> -<tr><td> </td></tr> - <td colspan="4" bgcolor="black"> -<img src="images/black.png" width="1" height="2"></td></tr> -<tr><td colspan="4"> -<p><font size="-1"> -GridFlow 0.8.1 Documentation<br> -Copyright © 2001,2002,2003,2004,2005,2006 by Mathieu Bouchard -<a href="mailto:matju@artengine.ca">matju@artengine.ca</a> -</font></p> -</td></tr></table></body></html> - - diff --git a/externals/gridflow/doc/architecture.xml b/externals/gridflow/doc/architecture.xml deleted file mode 100644 index bf87474e..00000000 --- a/externals/gridflow/doc/architecture.xml +++ /dev/null @@ -1,395 +0,0 @@ -<?xml version="1.0" standalone="no" ?> -<!DOCTYPE documentation SYSTEM 'jmax.dtd'> -<documentation title="Reference Manual: Architecture"> -<!-- $Id: architecture.xml,v 1.2 2006-03-15 04:44:50 matju Exp $ --> -<!-- - GridFlow Reference Manual: Architecture - Copyright (c) 2001,2002,2003,2004 by Mathieu Bouchard ---> - -<!-- -<section name="Conventions of this Manual"> - (In this section, usage of Bold, Italic, Courier, etc. would be explained. - eventually I'd like those to have precise meanings consistent throughout - the whole documentation) -</section> ---> - -<!--write-me -<section name="Naming Conventions"> -</section> ---> - -<!--write-me -<section name="User-level Overview"> -<p>(this section is for all users)</p> -</section> ---> - -<section name="Numbers"> - - <p>High-performance computation requires precise and quite peculiar - definitions of numbers and their representation.</p> - - <p>Inside most programs, numbers are written down as strings of - bits. A bit is either zero or one. Just like the decimal system - uses units, tens, hundreds, the binary system uses units, twos, - fours, eights, sixteens, and so on, doubling every time.</p> - - <p>One notation, called integer allows for only integer values to be - written (no fractions). when it is unsigned, no negative values may - be written. when it is signed, one bit indicates whether the number - is positive or negative. Integer storage is usually fixed-size, so you have - bounds on the size of numbers, and if a result is too big it "wraps around", truncating the biggest - bits.</p> - - <p>Another notation, called floating point (or float) stores numbers using - a fixed number of significant digits, and a scale factor that allows for huge numbers - and tiny fractions at once. Note that 1/3 has periodic digits, but even 0.1 has periodic digits, - in binary coding; so expect some slight roundings; the precision offered should be - sufficient for most purposes. Make sure the errors of rounding don't accumulate, though.</p> - - <p>This little program of mine prints 1/3 in base 2 (only digits after the period): - <k>ruby -e 'x=1/3.0;for i in 0..52 do x*=2;y=x.floor;print y;x-=y end;puts'</k></p> - - - <p>In GridFlow, there are six kinds of numbers:</p> - - <table> - <column id="name">name</column> - <column id="aliases">aliases</column> - <column id="range">range</column> - <column id="size">size (bytes)</column> - <column id="precision">precision</column> - <column id="">description</column> - <row name="uint8" aliases="u8 b" size="1" - range="0..255" precision="1"> - unsigned 8-bit integer. - this is the usual size of numbers taken from files and cameras, and - written to files and to windows. (however this gets converted to <k>int32</k> - unless otherwise specified.) - </row> - <row name="int16" aliases="i16 s" size="2" - range="±2<sup>15</sup> = -32768..32767" precision="1" - >...</row> - <row name="int32" aliases="i32 i" size="4" - range="±2<sup>31</sup> = -2147483648..2147483647" precision="1"> - signed 32-bit integer. - this is used for most computations. - </row> - <row name="int64" aliases="i64 l" size="8" - range="±2<sup>63</sup>" precision="1" - >...</row> - <row name="float32" aliases="f32 f" size="4" - range="±10<sup>±38</sup>" - precision="23 bits = 0.000012% (about 7 digits)" - >...</row> - <row name="float64" aliases="f64 d" size="8" - range="±10<sup>±308</sup>" - precision="52 bits (about 15 digits)" - >...</row> - </table> -</section> - -<section name="Grid Literals"> -<p> - In every grid-accepting inlet, a list may be sent instead; if - it consists only of integers, it will be converted to a - one-dimensional grid. Else it may contain a single "#" sign and - integers on both sides of it, where the ones to the left of it are - fed as arguments to an imaginary <k>[#redim]</k> object and the one to the - right of it are fed through that <k>[#redim]</k>. -</p> -<p> - In every grid-accepting inlet, an integer or float may also be sent; - it will be converted to a zero-dimensional grid (a <b>scalar</b>). -</p> -</section> - -<section name="Grid Protocol"> - <p> - a grid has an associated number type that defines what are the possible values for its elements - (and how much space it takes). the default is <b>int32</b>. - </p> - <p> - a single-dimensional grid of 3 elements (a triplet) is called dim(3). a - three-dimensional grid of 240 rows of 320 columns of triplets is called - dim(240,320,3). - </p> - <p> - There is a sequence in which elements of a Grid are stored and - transmitted. Dimension 0 is called "first" and dimension N-1 is - called "last". They are called so because if you select a - position in the first dimension of a grid, the selected part is of the same - shape minus the first dimension; so in dim(240,320,3) if you select - row 51 (or whichever valid row number), you get a dim(320,3). if you select - a subpart two more times you get to a single number. - </p> - <p> - At each such level, elements are sent/stored in their numeric order, - and are numbered using natural numbers starting at 0. This ordering usually - does not matter, but sometimes it does. Most notably, <k>[#import]</k>, - <k>[#export]</k> and <k>[#redim]</k> care about it. - </p> - <p> - On the other hand, order of dimensions usually does matter; this is - what distinguishes rows from columns and channels, for example. - Most objects care about the distinction. - </p> - <p> - A grid with only 1 element in a given dimension is different from one - lacking that dimension; it won't have the same meaning. You can use this - property to your advantage sometimes. - </p> - <p> - Zero-dimensional grids exist. They are called dim(). They can only contain - a single number. - </p> -</section> - -<section name="Picture Protocol"> - <p><i>This section is useful if you want to know what a picture is - in terms of a grid. - </i></p> - - <p>A picture is a three-dimensional Grid: - <list start="0"> - <li>rows</li> - <li>columns</li> - <li>channels</li> - </list> - </p> - <p>Channels for the RGB color model are: - <list start="0"> - <li>red</li> - <li>green</li> - <li>blue</li> - </list> - </p> - <p> - Because Grids are made of 32-bit integers, a three-channel picture uses - 96 bpp (bits per pixel), and have to be downscaled to 24 bpp (or 16 bpp) - for display. That huge amount of slack is there because when you create - your own effects you often have intermediate results that need to be of - higher precision than a normal picture. Especially, results of multiplications - are big and should not overflow before you divide them back to normal; - and similarly, you can have negative values all over, as long as you take - care of them before they get to the display. - </p> - <p> - In the final conversion, high bits are just ignored. This means: black is - 0, maximum is 255, and values wrap like with <k>% 256</k>. If you want to - clip them, you may use <k>[# max 0]</k> and <k>[# min 255]</k> objects. - </p> -</section> - -<section name="Numeric Operators"> - <p>In the following table, A is the value entered to the - left, and B is the value entered to the right.</p> - - <p>Angles are in hundredths of degrees. This means a full circle - (two pi radians) is 36000. You convert from degrees to our angles - by multiplying by 100. You convert from radians to our angles by - multiplying by 18000/pi.</p> - - <p>Hyperbolic functions (tanh) work with our angles too, so the - same conversions apply.</p> - -<table> - <column id="name" type="icon">name</column> - <column id="">description</column> - <column id="color">meaning in pixel context (pictures, palettes)</column> - <column id="space">meaning in spatial context (indexmaps, polygons)</column> - - <!-- category: bogus --> - <row name="ignore" cname="ignore" - color="no effect" - space="no effect" - > A </row> - <row name="put" cname="put" - color="replace by" - space="replace by" - > B </row> - - <!-- category: additive --> - <row name="+" cname="add" - color="brightness, crossfade" - space="move, morph" - > A + B </row> - <row name="-" cname="sub" - color="brightness, motion detection" - space="move, motion detection" - > A - B </row> - <row name="inv+" cname="bus" - color="negate then contrast" - space="180 degree rotate then move" - > B - A </row> - - <!-- category: multiplicative --> - <row name="*" cname="mul" - color="contrast" - space="zoom out" - > A * B </row> - <row name="/" cname="div" - color="contrast" - space="zoom in" - > A / B, rounded towards zero </row> - <row name="div" cname="div2" - color="contrast" - space="zoom in" - > A / B, rounded downwards </row> - <row name="inv*" cname="vid" - > B / A, rounded towards zero </row> - <row name="swapdiv" cname="vid2" - > B / A, rounded downwards </row> - <row name="%" cname="mod" - space="tile" - > A % B, modulo (goes with div) </row> - <row name="swap%" cname="dom" - > B % A, modulo (goes with div) </row> - <row name="rem" cname="rem" - > A % B, remainder (goes with /) </row> - <row name="swaprem" cname="mer" - > B % A, remainder (goes with /) </row> - - <row name="gcd" cname="gcd"> - greatest common divisor</row> - - <row name="lcm" cname="lcm"> - least common multiple</row> - - <!-- bits --> - <row name="|" cname="or" - color="bright munchies" - space="bottomright munchies" - > A or B, bitwise </row> - <row name="^" cname="xor" - color="symmetric munchies (fractal checkers)" - space="symmetric munchies (fractal checkers)" - > A xor B, bitwise </row> - <row name="&" cname="and" - color="dark munchies" - space="topleft munchies" - > A and B, bitwise </row> - <row name="<<" cname="shl" - color="like *" - space="like *" - > A * (2**(B % 32)), which is left-shifting </row> - <row name=">>" cname="shr" - color="like /,div" - space="like /,div" - > A / (2**(B % 32)), which is right-shifting </row> - - <!-- decision --> - <row name="||" cname="sc_or" - > if A is zero then B else A </row> - <row name="&&" cname="sc_and" - > if A is zero then zero else B</row> - <row name="min" cname="min" - color="clipping" - space="clipping (of individual points)" - > the lowest value in A,B </row> - <row name="max" cname="max" - color="clipping" - space="clipping (of individual points)" - > the highest value in A,B </row> - - <!-- comparison --> - <row name="cmp" cname="cmp" - > -1 when A<B; 0 when A=B; 1 when A>B. </row> - <row name="==" cname="eq" - > is A equal to B ? 1=true, 0=false </row> - <row name="!=" cname="ne" - > is A not equal to B ? </row> - <row name=">" cname="gt" - > is A greater than B ? </row> - <row name="<=" cname="le" - > is A not greater than B ? </row> - <row name="<" cname="lt" - > is A less than B ? </row> - <row name=">=" cname="ge" - >is A not less than B ? </row> - - <!-- trigonometrics and exponentiation --> - <row name="sin*" cname="sin" - space="waves, rotations" - > B * sin(A) </row> - <row name="cos*" cname="cos" - space="waves, rotations" - > B * cos(A) </row> - <row name="atan" cname="atan" - space="find angle to origin (part of polar transform)" - > arctan(A/B) </row> - <row name="tanh*" cname="tanh" - color="smooth clipping" - space="smooth clipping (of individual points), neural sigmoid, fuzzy logic" - > B * tanh(A) </row> - <row name="log*" cname="log" - > B * log(A) (in base e) </row> - <row name="gamma" cname="gamma" - color="gamma correction" - > floor(pow(a/256.0,256.0/b)*256.0) </row> - <row name="**" cname="pow" - color="gamma correction" - > A**B, that is, A raised to power B </row> - - <!-- former one-input operators --> - <row name="abs-" cname="abs" - > absolute value of (A-B) </row> - <row name="rand" cname="rand" - > randomly produces a non-negative number below A </row> - <row name="sqrt" cname="sqrt" - > square root of A, rounded downwards </row> - <row name="sq-" cname="sq" - > (A-B) times (A-B) </row> - - <!-- 0.8.0 --> - <row name="clip+" cname="clip+" - > like A+B but overflow causes clipping instead of wrapping around (coming soon) </row> - <row name="clip-" cname="clip-" - > like A-B but overflow causes clipping instead of wrapping around (coming soon) </row> - <row name="avg" cname="avg" - > (A+B)/2 </row> - <row name="hypot" cname="hypot" - > square root of (A*A+B*B) </row> - <row name="erf*" cname="erf" - > integral of e^(-x*x) dx ... (coming soon; what ought to be the scaling factor?) </row> -</table> -</section> - -<!--write-me -<section name="Programmer-level Overview"> -<p>(this section is for people who want to mess with the internals or at least -understand them a bit)</p> -(move this section down?) -</section> ---> - -<section name="Synchronisation"> -<p>In GridFlow you cannot send two grids in different inlets at the -same time. You have to use <k>[#finished]</k> together with (possibly) <k>[fork]</k> and <k>[#store]</k>, -which can be cumbersome. If you don't do this, the result is undefined -behaviour (or crash!).</p> - -<p>In GridFlow 0.7.1 this is beginning to change. <k>[#store]</k> and # now allow -right-inlet grids to be buffered if an operation is occuring on left inlet. This -should make many circuits simpler. -</p> - -<p>(more to come)</p> -</section> - -<section name="Bridges"> -<p>Starting with version 0.6, GridFlow is Ruby-centric instead of jMax-centric. -jMax support has been added back as a <b>Bridge</b>.</p> - -<p>Bridges, for the most part, plug into the FObject class, which is the common -root of most of GridFlow's classes. Under the current design, the bridge is -compiled separately, and is directly loaded by the host software; then the -bridge starts Ruby and makes it load the main GridFlow; then the bridge hooks -with the main part. -</p> - -</section> - -</documentation> diff --git a/externals/gridflow/doc/flow_classes/#+-help.pd b/externals/gridflow/doc/flow_classes/#+-help.pd deleted file mode 100644 index 511d67c1..00000000 --- a/externals/gridflow/doc/flow_classes/#+-help.pd +++ /dev/null @@ -1,364 +0,0 @@ -#N canvas 165 32 693 623 10; -#X obj 8 3 cnv 15 90 578 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X text 36 326 INLETS:; -#X text 36 344 - LEFT:; -#X text 30 386 - RIGHT:; -#X text 29 469 OUTLETS:; -#X text 28 53 EXAMPLES:; -#X text 16 553 SEE ALSO:; -#N canvas 52 15 871 640 More_Info 0; -#X text 76 366 A + B; -#X text 77 510 A * B; -#X text 73 571 rounded towards zero; -#X text 14 73 angles are in hundredth of degrees \, so a full circle -(two pi radians) is 36000 you can convert from radians to our angles -by multiplying by 18000/pi.; -#X text 13 44 for all of these \, A refers to the left inlet and B -to the value on the right.; -#X text 15 27 Consult doc/architecture.html to see all the 40 of them. -; -#X text 902 31 GridFlow 0.8.0; -#X obj 479 70 #color; -#X obj 684 72 #color; -#X msg 15 366 op +; -#X msg 15 507 op *; -#X obj 15 385 s op; -#X obj 423 155 r op; -#X obj 15 526 s op; -#X obj 15 436 s op; -#X text 77 421 A - B; -#X msg 15 417 op -; -#X obj 15 761 s op; -#X msg 15 742 op %; -#X text 69 743 A % B; -#X obj 15 575 s op; -#X msg 15 556 op /; -#X text 79 557 A / B; -#X obj 14 809 s op; -#X text 83 790 B % A; -#X text 15 14 Numeric Operators: *whoa \, there's a lot of them; -#X obj 16 482 s op; -#X msg 16 463 op inv+; -#X text 79 464 B -A; -#X obj 15 623 s op; -#X text 79 605 A / B; -#X msg 15 604 op div; -#X text 75 621 rounded downwards; -#X obj 15 668 s op; -#X msg 15 649 op inv*; -#X text 80 650 B / A; -#X text 77 665 rounded towards 0; -#X obj 15 712 s op; -#X text 76 714 rounded downwards; -#X text 101 695 B / A; -#X text 68 760 modulo (goes with div); -#X text 65 809 modulo (goes with div); -#X msg 14 790 op swap%; -#X obj 15 286 s op; -#X obj 15 334 s op; -#X msg 15 267 op ignore; -#X text 90 268 A; -#X msg 15 315 op put; -#X text 76 315 B; -#X msg 15 693 op swapdiv; -#X obj 237 286 s op; -#X msg 237 267 op rem; -#X text 315 263 A % B; -#X obj 236 338 s op; -#X text 330 319 B % A; -#X text 314 278 remainder; -#X text 314 293 (goes with /); -#X msg 236 319 op swaprem; -#X text 327 333 remainder; -#X text 326 348 (goes with /); -#X obj 236 388 s op; -#X obj 236 435 s op; -#X msg 236 369 op gcd; -#X msg 236 416 op lcm; -#X text 298 373 greatest common divisor; -#X text 298 420 least common multiple; -#X obj 235 481 s op; -#X text 299 464 A or B \, bitwise; -#X msg 235 462 op; -#X obj 235 525 s op; -#X text 299 508 A xor B \, bitwise; -#X msg 235 506 op ^; -#X obj 235 578 s op; -#X msg 235 559 op &; -#X text 300 561 A and B \, bitwise; -#X obj 235 623 s op; -#X msg 235 604 op <<; -#X text 300 606 A * (2**(B % 32); -#X text 299 621 left-shifthing; -#X obj 235 669 s op; -#X msg 235 649 op >>; -#X text 299 666 right-shifthing; -#X text 300 652 A / (2**(B % 32); -#X obj 218 463 bng 15 250 50 0 empty empty empty 0 -6 0 8 -258699 -1 --1; -#X obj 235 714 s op; -#X msg 235 695 op; -#X obj 218 695 bng 15 250 50 0 empty empty empty 0 -6 0 8 -258699 -1 --1; -#X text 299 697 if A is zero then; -#X text 300 711 B else A; -#X obj 235 758 s op; -#X text 299 741 if A is zero then; -#X text 15 110 comment; -#X msg 235 739 op &&; -#X text 300 755 zero else B; -#X obj 236 807 s op; -#X msg 236 788 op min; -#X text 300 789 the lowest value; -#X text 301 804 in A \, B; -#X obj 500 287 s op; -#X msg 500 267 op max; -#X text 556 284 in A \, B; -#X text 557 268 the highest value; -#X obj 500 333 s op; -#X msg 500 313 op cmp; -#X text 551 310 -1 when A<B; -#X text 558 338 1 when A>B; -#X text 558 324 0 when A=B; -#X obj 500 386 s op; -#X msg 500 366 op ==; -#X text 557 367 is A equal to B ?; -#X text 556 385 1 = true \, 0 = false; -#X obj 500 433 s op; -#X msg 500 413 op !=; -#X text 557 414 is A not equal to B ?; -#X obj 500 477 s op; -#X msg 500 456 op >; -#X text 557 457 is A greater than B ?; -#X obj 500 523 s op; -#X msg 500 502 op <=; -#X text 557 503 is A not greater than B ?; -#X obj 500 572 s op; -#X msg 500 551 op <; -#X text 557 552 is A less than B ?; -#X obj 500 618 s op; -#X msg 500 597 op >=; -#X text 557 598 is A not less than B ?; -#X obj 500 666 s op; -#X msg 500 645 op sin*; -#X text 559 646 B * sin(A); -#X obj 500 713 s op; -#X msg 500 691 op cos*; -#X text 560 693 B * cos(A); -#X obj 500 758 s op; -#X msg 500 736 op atan; -#X text 560 737 arctan(A/B); -#X obj 499 805 s op; -#X msg 499 783 op tan*; -#X text 559 784 tanh(A); -#X obj 738 288 s op; -#X msg 738 268 op log*; -#X text 795 269 B*log(A); -#X text 794 286 in base e; -#X obj 738 334 s op; -#X msg 738 314 op gamma; -#X text 809 314 floor(pow(a/256.0 \, 256.0/b)*256.0); -#X obj 737 385 s op; -#X msg 737 366 op **; -#X text 799 368 A**B; -#X text 799 385 A raised to power B; -#X obj 737 431 s op; -#X msg 737 412 op abs-; -#X text 799 412 absolute value of (A-B); -#X obj 737 478 s op; -#X msg 737 459 op rand; -#X text 800 473 number below A; -#X text 799 458 randomly produces a non-negative; -#X obj 737 524 s op; -#X msg 737 505 op sqrt; -#X text 799 504 square root of A; -#X text 800 519 rounded downwards; -#X obj 737 566 s op; -#X msg 737 547 op sq-; -#X text 800 546 (A-B) times (A-B); -#X obj 740 614 s op; -#X obj 723 595 bng 15 250 50 0 empty empty empty 0 -6 0 8 -258699 -1 --1; -#X msg 740 595 op clip+; -#X text 808 595 A+B but output is clipped; -#X obj 740 660 s op; -#X obj 723 641 bng 15 250 50 0 empty empty empty 0 -6 0 8 -258699 -1 --1; -#X msg 740 641 op clip-; -#X text 808 641 A-B but output is clipped; -#X obj 740 706 s op; -#X obj 740 750 s op; -#X text 808 687 (A+B)/2; -#X msg 740 687 op avg; -#X msg 740 731 op hypot; -#X text 808 731 square root of (A*A+B*B); -#X obj 740 792 s op; -#X obj 723 773 bng 15 250 50 0 empty empty empty 0 -6 0 8 -258699 -1 --1; -#X msg 740 773 op erf; -#X text 807 773 integral of e^(-x*x)dx; -#N canvas 8 30 615 351 all_operators 0; -#X obj 174 99 # -; -#X obj 522 97 # swap%; -#X obj 186 177 # abs-; -#X obj 238 177 # rand; -#X obj 342 177 # sq-; -#X obj 290 177 # sqrt; -#X obj 144 99 # +; -#X obj 492 97 # %; -#X obj 260 99 # *; -#X obj 289 99 # /; -#X obj 206 99 # inv+; -#X obj 321 99 # div; -#X obj 367 98 # inv*; -#X obj 420 98 # swapdiv; -#X obj 35 99 # ignore; -#X obj 100 100 # put; -#X obj 35 125 # rem; -#X obj 78 125 # swaprem; -#X obj 149 125 # gcd; -#X obj 191 125 # lcm; -#X obj 234 125 # |; -#X obj 234 125 # |; -#X obj 263 125 # ^; -#X obj 293 125 # &; -#X obj 322 125 # <<; -#X obj 358 125 # >>; -#X obj 394 125 # ||; -#X obj 431 125 # &&; -#X obj 467 125 # min; -#X obj 35 151 # max; -#X obj 79 151 # cmp; -#X obj 124 151 # ==; -#X obj 162 151 # !=; -#X obj 199 151 # >; -#X obj 234 151 # <=; -#X obj 274 151 # <; -#X obj 304 152 # >=; -#X obj 341 152 # sin*; -#X obj 391 152 # cos*; -#X obj 442 152 # atan; -#X obj 493 152 # tanh*; -#X obj 35 177 # log*; -#X obj 87 177 # gamma; -#X obj 148 177 # **; -#X obj 388 177 # avg; -#X obj 433 177 # hypot; -#X restore 15 174 pd all_operators; -#X text 585 31 select values below; -#X text 14 233 select an operator below; -#X text 478 51 A; -#X text 683 53 B; -#X obj 479 182 # +; -#X obj 257 196 #color; -#X obj 297 162 #reverse; -#X obj 443 215 display; -#X obj 656 197 #unpack 3; -#X floatatom 605 244 5 0 0 0 - - -; -#X obj 642 150 t a a; -#X obj 597 191 display; -#X connect 7 0 186 0; -#X connect 7 0 188 0; -#X connect 7 0 192 0; -#X connect 8 0 186 1; -#X connect 9 0 11 0; -#X connect 10 0 13 0; -#X connect 12 0 186 0; -#X connect 16 0 14 0; -#X connect 18 0 17 0; -#X connect 21 0 20 0; -#X connect 27 0 26 0; -#X connect 31 0 29 0; -#X connect 34 0 33 0; -#X connect 42 0 23 0; -#X connect 45 0 43 0; -#X connect 47 0 44 0; -#X connect 49 0 37 0; -#X connect 51 0 50 0; -#X connect 57 0 53 0; -#X connect 62 0 60 0; -#X connect 63 0 61 0; -#X connect 68 0 66 0; -#X connect 71 0 69 0; -#X connect 73 0 72 0; -#X connect 76 0 75 0; -#X connect 80 0 79 0; -#X connect 85 0 84 0; -#X connect 92 0 89 0; -#X connect 95 0 94 0; -#X connect 99 0 98 0; -#X connect 103 0 102 0; -#X connect 108 0 107 0; -#X connect 112 0 111 0; -#X connect 115 0 114 0; -#X connect 118 0 117 0; -#X connect 121 0 120 0; -#X connect 124 0 123 0; -#X connect 127 0 126 0; -#X connect 130 0 129 0; -#X connect 133 0 132 0; -#X connect 136 0 135 0; -#X connect 139 0 138 0; -#X connect 143 0 142 0; -#X connect 146 0 145 0; -#X connect 150 0 149 0; -#X connect 153 0 152 0; -#X connect 157 0 156 0; -#X connect 161 0 160 0; -#X connect 165 0 163 0; -#X connect 169 0 167 0; -#X connect 174 0 171 0; -#X connect 175 0 172 0; -#X connect 179 0 177 0; -#X connect 188 0 187 0; -#X connect 188 0 189 0; -#X connect 190 0 191 0; -#X connect 192 0 193 0; -#X connect 192 1 190 0; -#X restore 115 574 pd More_Info; -#X text 36 492 - LEFT:; -#X text 412 575 updated for GridFlow version 0.8.0; -#X floatatom 151 163 5 0 0 0 - - -; -#X text 113 554 list of other operators; -#X obj 71 9 # +; -#X text 108 12 - OPERATORS ([# +] in this case) APPLY OPERATIONS ONTO -GRIDS; -#X text 109 345 Grid - accepts a grid that will be modified by the -operator according to the right inlet value. (list of operators in -[pd more_info]) ([# +] in this example.); -#X text 108 395 Grid - accepts grids that will modify the incoming -grid \, from the left inlet \, (preferably of the same dimensions.) -; -#X text 105 439 Integer - accepts integers that will modify the incoming -grid.; -#X text 107 492 Grid - outputs the modified data as a grid.; -#X obj 142 211 display; -#X obj 114 93 #color; -#X msg 114 60 255 0 0; -#X obj 114 253 #color; -#X obj 511 179 #in; -#X obj 511 249 #out window; -#X msg 541 156 open b001.jpg; -#X obj 511 113 t b b; -#X obj 511 58 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 -; -#X obj 511 79 metro 100; -#X obj 511 202 # +; -#X obj 511 226 #clip; -#X text 204 164 <-- change this value.; -#X obj 114 181 # + 42; -#X text 293 109 <-- modify color; -#X connect 10 0 31 1; -#X connect 19 0 31 0; -#X connect 20 0 19 0; -#X connect 22 0 28 0; -#X connect 24 0 22 0; -#X connect 25 0 22 0; -#X connect 25 1 24 0; -#X connect 26 0 27 0; -#X connect 27 0 25 0; -#X connect 28 0 29 0; -#X connect 29 0 23 0; -#X connect 31 0 18 0; -#X connect 31 0 21 0; diff --git a/externals/gridflow/doc/flow_classes/#-help.pd b/externals/gridflow/doc/flow_classes/#-help.pd deleted file mode 100644 index 3b891db4..00000000 --- a/externals/gridflow/doc/flow_classes/#-help.pd +++ /dev/null @@ -1,309 +0,0 @@ -#N canvas 291 30 1089 795 10; -#X text 76 366 A + B; -#X text 77 510 A * B; -#X text 73 571 rounded towards zero; -#X text 14 73 angles are in hundredth of degrees \, so a full circle -(two pi radians) is 36000 you can convert from radians to our angles -by multiplying by 18000/pi.; -#X text 13 44 for all of these \, A refers to the left inlet and B -to the value on the right.; -#X text 15 27 Consult doc/architecture.html to see all the 40 of them. -; -#X text 902 31 GridFlow 0.8.0; -#X obj 479 70 #color; -#X obj 684 72 #color; -#X msg 15 366 op +; -#X msg 15 507 op *; -#X obj 15 385 s op; -#X obj 423 155 r op; -#X obj 15 526 s op; -#X obj 15 436 s op; -#X text 77 421 A - B; -#X msg 15 417 op -; -#X obj 15 761 s op; -#X msg 15 742 op %; -#X text 69 743 A % B; -#X obj 15 575 s op; -#X msg 15 556 op /; -#X text 79 557 A / B; -#X obj 14 809 s op; -#X text 83 790 B % A; -#X text 15 14 Numeric Operators: *whoa \, there's a lot of them; -#X obj 16 482 s op; -#X msg 16 463 op inv+; -#X text 79 464 B -A; -#X obj 15 623 s op; -#X text 79 605 A / B; -#X msg 15 604 op div; -#X text 75 621 rounded downwards; -#X obj 15 668 s op; -#X msg 15 649 op inv*; -#X text 80 650 B / A; -#X text 77 665 rounded towards 0; -#X obj 15 712 s op; -#X text 76 714 rounded downwards; -#X text 101 695 B / A; -#X text 68 760 modulo (goes with div); -#X text 65 809 modulo (goes with div); -#X msg 14 790 op swap%; -#X obj 15 286 s op; -#X obj 15 334 s op; -#X msg 15 267 op ignore; -#X text 90 268 A; -#X msg 15 315 op put; -#X text 76 315 B; -#X msg 15 693 op swapdiv; -#X obj 237 286 s op; -#X msg 237 267 op rem; -#X text 315 263 A % B; -#X obj 236 338 s op; -#X text 330 319 B % A; -#X text 314 278 remainder; -#X text 314 293 (goes with /); -#X msg 236 319 op swaprem; -#X text 327 333 remainder; -#X text 326 348 (goes with /); -#X obj 236 388 s op; -#X obj 236 435 s op; -#X msg 236 369 op gcd; -#X msg 236 416 op lcm; -#X text 298 373 greatest common divisor; -#X text 298 420 least common multiple; -#X obj 235 481 s op; -#X text 299 464 A or B \, bitwise; -#X msg 235 462 op; -#X obj 235 525 s op; -#X text 299 508 A xor B \, bitwise; -#X msg 235 506 op ^; -#X obj 235 578 s op; -#X msg 235 559 op &; -#X text 300 561 A and B \, bitwise; -#X obj 235 623 s op; -#X msg 235 604 op <<; -#X text 300 606 A * (2**(B % 32); -#X text 299 621 left-shifthing; -#X obj 235 669 s op; -#X msg 235 649 op >>; -#X text 299 666 right-shifthing; -#X text 300 652 A / (2**(B % 32); -#X obj 218 463 bng 15 250 50 0 empty empty empty 0 -6 0 8 -258699 -1 --1; -#X obj 235 714 s op; -#X msg 235 695 op; -#X obj 218 695 bng 15 250 50 0 empty empty empty 0 -6 0 8 -258699 -1 --1; -#X text 299 697 if A is zero then; -#X text 300 711 B else A; -#X obj 235 758 s op; -#X text 299 741 if A is zero then; -#X text 15 110 comment; -#X msg 235 739 op &&; -#X text 300 755 zero else B; -#X obj 236 807 s op; -#X msg 236 788 op min; -#X text 300 789 the lowest value; -#X text 301 804 in A \, B; -#X obj 500 287 s op; -#X msg 500 267 op max; -#X text 556 284 in A \, B; -#X text 557 268 the highest value; -#X obj 500 333 s op; -#X msg 500 313 op cmp; -#X text 551 310 -1 when A<B; -#X text 558 338 1 when A>B; -#X text 558 324 0 when A=B; -#X obj 500 386 s op; -#X msg 500 366 op ==; -#X text 557 367 is A equal to B ?; -#X text 556 385 1 = true \, 0 = false; -#X obj 500 433 s op; -#X msg 500 413 op !=; -#X text 557 414 is A not equal to B ?; -#X obj 500 477 s op; -#X msg 500 456 op >; -#X text 557 457 is A greater than B ?; -#X obj 500 523 s op; -#X msg 500 502 op <=; -#X text 557 503 is A not greater than B ?; -#X obj 500 572 s op; -#X msg 500 551 op <; -#X text 557 552 is A less than B ?; -#X obj 500 618 s op; -#X msg 500 597 op >=; -#X text 557 598 is A not less than B ?; -#X obj 500 666 s op; -#X msg 500 645 op sin*; -#X text 559 646 B * sin(A); -#X obj 500 713 s op; -#X msg 500 691 op cos*; -#X text 560 693 B * cos(A); -#X obj 500 758 s op; -#X msg 500 736 op atan; -#X text 560 737 arctan(A/B); -#X obj 499 805 s op; -#X msg 499 783 op tan*; -#X text 559 784 tanh(A); -#X obj 738 288 s op; -#X msg 738 268 op log*; -#X text 795 269 B*log(A); -#X text 794 286 in base e; -#X obj 738 334 s op; -#X msg 738 314 op gamma; -#X text 809 314 floor(pow(a/256.0 \, 256.0/b)*256.0); -#X obj 737 385 s op; -#X msg 737 366 op **; -#X text 799 368 A**B; -#X text 799 385 A raised to power B; -#X obj 737 431 s op; -#X msg 737 412 op abs-; -#X text 799 412 absolute value of (A-B); -#X obj 737 478 s op; -#X msg 737 459 op rand; -#X text 800 473 number below A; -#X text 799 458 randomly produces a non-negative; -#X obj 737 524 s op; -#X msg 737 505 op sqrt; -#X text 799 504 square root of A; -#X text 800 519 rounded downwards; -#X obj 737 566 s op; -#X msg 737 547 op sq-; -#X text 800 546 (A-B) times (A-B); -#X obj 740 614 s op; -#X obj 723 595 bng 15 250 50 0 empty empty empty 0 -6 0 8 -258699 -1 --1; -#X msg 740 595 op clip+; -#X text 808 595 A+B but output is clipped; -#X obj 740 660 s op; -#X obj 723 641 bng 15 250 50 0 empty empty empty 0 -6 0 8 -258699 -1 --1; -#X msg 740 641 op clip-; -#X text 808 641 A-B but output is clipped; -#X obj 740 706 s op; -#X obj 740 750 s op; -#X text 808 687 (A+B)/2; -#X msg 740 687 op avg; -#X msg 740 731 op hypot; -#X text 808 731 square root of (A*A+B*B); -#X obj 740 792 s op; -#X obj 723 773 bng 15 250 50 0 empty empty empty 0 -6 0 8 -258699 -1 --1; -#X msg 740 773 op erf; -#X text 807 773 integral of e^(-x*x)dx; -#N canvas 8 30 615 351 all_operators 0; -#X obj 174 99 # -; -#X obj 522 97 # swap%; -#X obj 186 177 # abs-; -#X obj 238 177 # rand; -#X obj 342 177 # sq-; -#X obj 290 177 # sqrt; -#X obj 144 99 # +; -#X obj 492 97 # %; -#X obj 260 99 # *; -#X obj 289 99 # /; -#X obj 206 99 # inv+; -#X obj 321 99 # div; -#X obj 367 98 # inv*; -#X obj 420 98 # swapdiv; -#X obj 35 99 # ignore; -#X obj 100 100 # put; -#X obj 35 125 # rem; -#X obj 78 125 # swaprem; -#X obj 149 125 # gcd; -#X obj 191 125 # lcm; -#X obj 234 125 # |; -#X obj 234 125 # |; -#X obj 263 125 # ^; -#X obj 293 125 # &; -#X obj 322 125 # <<; -#X obj 358 125 # >>; -#X obj 394 125 # ||; -#X obj 431 125 # &&; -#X obj 467 125 # min; -#X obj 35 151 # max; -#X obj 79 151 # cmp; -#X obj 124 151 # ==; -#X obj 162 151 # !=; -#X obj 199 151 # >; -#X obj 234 151 # <=; -#X obj 274 151 # <; -#X obj 304 152 # >=; -#X obj 341 152 # sin*; -#X obj 391 152 # cos*; -#X obj 442 152 # atan; -#X obj 493 152 # tanh*; -#X obj 35 177 # log*; -#X obj 87 177 # gamma; -#X obj 148 177 # **; -#X obj 388 177 # avg; -#X obj 433 177 # hypot; -#X restore 15 174 pd all_operators; -#X text 585 31 select values below; -#X text 14 233 select an operator below; -#X text 478 51 A; -#X text 683 53 B; -#X obj 479 182 # +; -#X obj 257 196 #color; -#X obj 297 162 #reverse; -#X obj 443 215 display; -#X obj 656 197 #unpack 3; -#X floatatom 605 244 5 0 0 0 - - -; -#X obj 642 150 t a a; -#X obj 597 191 display; -#X connect 7 0 186 0; -#X connect 7 0 188 0; -#X connect 7 0 192 0; -#X connect 8 0 186 1; -#X connect 9 0 11 0; -#X connect 10 0 13 0; -#X connect 12 0 186 0; -#X connect 16 0 14 0; -#X connect 18 0 17 0; -#X connect 21 0 20 0; -#X connect 27 0 26 0; -#X connect 31 0 29 0; -#X connect 34 0 33 0; -#X connect 42 0 23 0; -#X connect 45 0 43 0; -#X connect 47 0 44 0; -#X connect 49 0 37 0; -#X connect 51 0 50 0; -#X connect 57 0 53 0; -#X connect 62 0 60 0; -#X connect 63 0 61 0; -#X connect 68 0 66 0; -#X connect 71 0 69 0; -#X connect 73 0 72 0; -#X connect 76 0 75 0; -#X connect 80 0 79 0; -#X connect 85 0 84 0; -#X connect 92 0 89 0; -#X connect 95 0 94 0; -#X connect 99 0 98 0; -#X connect 103 0 102 0; -#X connect 108 0 107 0; -#X connect 112 0 111 0; -#X connect 115 0 114 0; -#X connect 118 0 117 0; -#X connect 121 0 120 0; -#X connect 124 0 123 0; -#X connect 127 0 126 0; -#X connect 130 0 129 0; -#X connect 133 0 132 0; -#X connect 136 0 135 0; -#X connect 139 0 138 0; -#X connect 143 0 142 0; -#X connect 146 0 145 0; -#X connect 150 0 149 0; -#X connect 153 0 152 0; -#X connect 157 0 156 0; -#X connect 161 0 160 0; -#X connect 165 0 163 0; -#X connect 169 0 167 0; -#X connect 174 0 171 0; -#X connect 175 0 172 0; -#X connect 179 0 177 0; -#X connect 188 0 187 0; -#X connect 188 0 189 0; -#X connect 190 0 191 0; -#X connect 192 0 193 0; -#X connect 192 1 190 0; diff --git a/externals/gridflow/doc/flow_classes/#-icon.png b/externals/gridflow/doc/flow_classes/#-icon.png Binary files differdeleted file mode 100644 index b1fedc1b..00000000 --- a/externals/gridflow/doc/flow_classes/#-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/flow_classes/#apply_colormap_channelwise-icon.png b/externals/gridflow/doc/flow_classes/#apply_colormap_channelwise-icon.png Binary files differdeleted file mode 100644 index 155d68c3..00000000 --- a/externals/gridflow/doc/flow_classes/#apply_colormap_channelwise-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/flow_classes/#cast-help.pd b/externals/gridflow/doc/flow_classes/#cast-help.pd deleted file mode 100644 index 94246cc9..00000000 --- a/externals/gridflow/doc/flow_classes/#cast-help.pd +++ /dev/null @@ -1,45 +0,0 @@ -#N canvas 435 101 684 379 10; -#X text 108 14 returns a grid of the same dimensions containing all -the same values after type conversion. note that while casting to a -smaller type \, overflowing values will be truncated.; -#X text 109 53 numbertypes are: uint8 \, int16 \, int32 \, int64 \, -float32 \, float64. see doc/architecture.html for more info.; -#X obj 115 90 nbx 8 14 -1e+37 1e+37 0 1 empty empty empty 0 -6 0 10 --262144 -1 -1 3.1416 256; -#X obj 78 136 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 --1; -#X text 14 136 print it:; -#X obj 78 210 t a a a a; -#X obj 216 90 nbx 8 14 -1e+37 1e+37 0 1 empty empty empty 0 -6 0 10 --262144 -1 -1 42 256; -#X obj 126 110 nbx 8 14 -1e+37 1e+37 0 1 empty empty empty 0 -6 0 10 --262144 -1 -1 2005 256; -#X obj 215 110 nbx 8 14 -1e+37 1e+37 0 1 empty empty empty 0 -6 0 10 --262144 -1 -1 1e+10 256; -#X obj 115 136 #pack 4 float32; -#X obj 115 158 #redim ( 2 2 ); -#X obj 78 185 #store; -#X obj 136 234 #print; -#X obj 116 254 #cast uint8; -#X obj 116 274 #print; -#X obj 97 294 #cast int32; -#X obj 97 314 #print; -#X obj 78 334 #cast float64; -#X obj 78 354 #print; -#X text 14 14 [#cast]; -#X text 575 10 GridFlow 0.8.0; -#X connect 2 0 9 0; -#X connect 3 0 11 0; -#X connect 5 0 17 0; -#X connect 5 1 15 0; -#X connect 5 2 13 0; -#X connect 5 3 12 0; -#X connect 6 0 9 1; -#X connect 7 0 9 2; -#X connect 8 0 9 3; -#X connect 9 0 10 0; -#X connect 10 0 11 1; -#X connect 11 0 5 0; -#X connect 13 0 14 0; -#X connect 15 0 16 0; -#X connect 17 0 18 0; diff --git a/externals/gridflow/doc/flow_classes/#cast-icon.png b/externals/gridflow/doc/flow_classes/#cast-icon.png Binary files differdeleted file mode 100644 index 7abe3191..00000000 --- a/externals/gridflow/doc/flow_classes/#cast-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/flow_classes/#checkers-icon.png b/externals/gridflow/doc/flow_classes/#checkers-icon.png Binary files differdeleted file mode 100644 index e0ab0ad0..00000000 --- a/externals/gridflow/doc/flow_classes/#checkers-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/flow_classes/#clip-help.pd b/externals/gridflow/doc/flow_classes/#clip-help.pd deleted file mode 100644 index 490afbbc..00000000 --- a/externals/gridflow/doc/flow_classes/#clip-help.pd +++ /dev/null @@ -1,67 +0,0 @@ -#N canvas 693 131 606 601 10; -#X obj 360 381 #in; -#X obj 360 422 # + 42; -#X floatatom 404 400 5 0 0 0 - - -; -#X obj 360 528 #out window; -#X msg 390 358 open b001.jpg; -#X obj 360 335 t b b; -#X obj -1 0 cnv 15 90 600 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X obj 360 302 metro 100; -#X obj 360 281 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 0 1 -; -#X floatatom 384 452 5 0 0 0 - - -; -#X floatatom 434 452 5 0 0 0 - - -; -#X text 38 36 INLETS:; -#X text 38 51 - LEFT:; -#X text 32 143 - RIGHT:; -#X text 29 253 OUTLETS:; -#X text 15 194 ARGUMENTS:; -#X text 22 283 EXAMPLES:; -#X text 20 565 SEE ALSO:; -#X text 25 93 - CENTER:; -#X obj 47 10 #clip; -#X text 501 558 GridFlow 0.8.0; -#X floatatom 119 397 5 0 0 0 - - -; -#X floatatom 119 286 5 0 0 0 - - -; -#X text 205 339 creation arguments; -#X obj 119 342 #clip 255 0; -#X text 107 191 Two - [int] accepts two integers as creation arguments -which initializes the first values to be stored in the object and duplicate -the functions of the second and third inlet.; -#X obj 118 564 # min; -#X obj 165 564 # max; -#X obj 213 564 clip; -#X text 109 91 Integer - An integer at the second inlet is stored for -later use. It will be used as the high value at which to clip incoming -Grid values at that left inlet.; -#X text 109 142 Integer - An integer at the third inlet is stored for -later use. It will be used as the low value at which to clip incoming -Grid values at that left inlet.; -#X text 108 12 - FORCE THE GRID VALUES INTO A RANGE; -#X text 109 50 Grid - Grid values at the left inlet will be clipped -to the high and low values stored in the object.; -#X obj 360 485 #clip; -#X text 419 483 no arguments (defaults to 255 \, 0); -#X text 452 399 <-- change these; -#X obj 119 312 #import (1); -#X obj 119 370 #export; -#X text 107 191 Two - [int] accepts two integers as creation arguments -which initializes the first values to be stored in the object and duplicate -the functions of the second and third inlet.; -#X text 485 452 <--; -#X connect 0 0 1 0; -#X connect 1 0 33 0; -#X connect 2 0 1 1; -#X connect 4 0 0 0; -#X connect 5 0 0 0; -#X connect 5 1 4 0; -#X connect 7 0 5 0; -#X connect 8 0 7 0; -#X connect 9 0 33 1; -#X connect 10 0 33 2; -#X connect 22 0 36 0; -#X connect 24 0 37 0; -#X connect 33 0 3 0; -#X connect 36 0 24 0; -#X connect 37 0 21 0; diff --git a/externals/gridflow/doc/flow_classes/#color-icon.png b/externals/gridflow/doc/flow_classes/#color-icon.png Binary files differdeleted file mode 100644 index 0ca1b51c..00000000 --- a/externals/gridflow/doc/flow_classes/#color-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/flow_classes/#complex_sq-icon.png b/externals/gridflow/doc/flow_classes/#complex_sq-icon.png Binary files differdeleted file mode 100644 index 9ad2c3f5..00000000 --- a/externals/gridflow/doc/flow_classes/#complex_sq-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/flow_classes/#contrast-help.pd b/externals/gridflow/doc/flow_classes/#contrast-help.pd deleted file mode 100644 index 7e8b1734..00000000 --- a/externals/gridflow/doc/flow_classes/#contrast-help.pd +++ /dev/null @@ -1,46 +0,0 @@ -#N canvas 120 14 814 532 10; -#X obj 96 131 bng 15 250 50 0 empty empty empty 0 -6 0 8 -233017 -1 --1; -#X obj 22 151 metro 100; -#X obj 22 130 tgl 15 0 empty empty empty 0 -6 0 8 -233017 -1 -1 0 1 -; -#X obj 123 269 hsl 128 15 0 256 0 0 empty empty empty -2 -6 0 8 -262144 --1 -1 0 1; -#X obj 124 332 hsl 128 15 0 256 0 0 empty empty empty -2 -6 0 8 -262144 --1 -1 0 1; -#X text 15 57 adjusts the intensity in an image. resulting values outside -0-255 are automatically clipped.; -#X text 262 334 master contrast; -#X text 258 273 secondary contrast; -#X floatatom 51 343 5 0 0 0 - - -; -#X floatatom 80 375 5 0 0 0 - - -; -#X text 401 273 makes the incoming black correspond to a certain fraction -between output black and the master contrast value. no effect is 256 -this is also the default.; -#X text 402 334 makes the incoming white correspond to a certain fraction -between output black and output white. no effect is 256 this is also -the default.; -#X text 18 497 see also:; -#X msg 119 220 open bluemarble.jpg; -#X obj 96 151 fork; -#X obj 88 499 #convolve; -#X obj 158 499 #posterize; -#X obj 235 499 #solarize; -#X obj 305 499 #layer; -#X obj 22 423 #out window; -#X obj 22 397 #contrast; -#X obj 22 237 #in; -#X text 13 15 [#contrast]; -#X text 700 15 GridFlow 0.8.0; -#X connect 0 0 14 0; -#X connect 1 0 21 0; -#X connect 2 0 1 0; -#X connect 3 0 8 0; -#X connect 4 0 9 0; -#X connect 8 0 20 1; -#X connect 9 0 20 2; -#X connect 13 0 21 0; -#X connect 14 0 21 0; -#X connect 14 1 13 0; -#X connect 20 0 19 0; -#X connect 21 0 20 0; diff --git a/externals/gridflow/doc/flow_classes/#contrast-icon.png b/externals/gridflow/doc/flow_classes/#contrast-icon.png Binary files differdeleted file mode 100644 index 42717ad6..00000000 --- a/externals/gridflow/doc/flow_classes/#contrast-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/flow_classes/#convolve-icon.png b/externals/gridflow/doc/flow_classes/#convolve-icon.png Binary files differdeleted file mode 100644 index 476ad435..00000000 --- a/externals/gridflow/doc/flow_classes/#convolve-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/flow_classes/#dim-help.pd b/externals/gridflow/doc/flow_classes/#dim-help.pd deleted file mode 100644 index 49017c9b..00000000 --- a/externals/gridflow/doc/flow_classes/#dim-help.pd +++ /dev/null @@ -1,32 +0,0 @@ -#N canvas 449 187 546 331 10; -#X obj 26 83 bng 15 250 50 0 empty empty empty 0 -6 0 8 -233017 -1 --1; -#X obj 137 217 print dimension; -#X obj 18 241 print number_of_dimensions; -#X text 18 282 see also:; -#X obj 136 283 rubyprint; -#X obj 206 283 printargs; -#X msg 18 63 open bluemarble.jpg; -#X text 438 10 GridFlow 0.8.0; -#X obj 87 283 #print; -#X obj 276 283 #export; -#X obj 332 283 #export_list; -#X obj 137 196 #export; -#X obj 18 197 #dim; -#X obj 18 217 #export; -#X obj 18 127 #dim; -#X obj 18 103 #in; -#X text 14 15 [#dim]; -#X text 137 100 dim receives a grid \, doesn't look at the data within -but only the list of dimensions and turns it into a one dimension grid. -given a grid sized like dim(240 \, 320 \, 4) #dim will return a grid -like dim(3) whose values are 240 \, 320 \, 4; -#X connect 0 0 15 0; -#X connect 6 0 0 0; -#X connect 6 0 15 0; -#X connect 11 0 1 0; -#X connect 12 0 13 0; -#X connect 13 0 2 0; -#X connect 14 0 11 0; -#X connect 14 0 12 0; -#X connect 15 0 14 0; diff --git a/externals/gridflow/doc/flow_classes/#dim-icon.png b/externals/gridflow/doc/flow_classes/#dim-icon.png Binary files differdeleted file mode 100644 index 4c0462df..00000000 --- a/externals/gridflow/doc/flow_classes/#dim-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/flow_classes/#downscale_by-icon.png b/externals/gridflow/doc/flow_classes/#downscale_by-icon.png Binary files differdeleted file mode 100644 index 59b2bf23..00000000 --- a/externals/gridflow/doc/flow_classes/#downscale_by-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/flow_classes/#draw_image-icon.png b/externals/gridflow/doc/flow_classes/#draw_image-icon.png Binary files differdeleted file mode 100644 index 7f9a62b1..00000000 --- a/externals/gridflow/doc/flow_classes/#draw_image-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/flow_classes/#draw_polygon-icon.png b/externals/gridflow/doc/flow_classes/#draw_polygon-icon.png Binary files differdeleted file mode 100644 index 6945bd62..00000000 --- a/externals/gridflow/doc/flow_classes/#draw_polygon-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/flow_classes/#export-icon.png b/externals/gridflow/doc/flow_classes/#export-icon.png Binary files differdeleted file mode 100644 index 322e8d91..00000000 --- a/externals/gridflow/doc/flow_classes/#export-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/flow_classes/#export_list-icon.png b/externals/gridflow/doc/flow_classes/#export_list-icon.png Binary files differdeleted file mode 100644 index 11743525..00000000 --- a/externals/gridflow/doc/flow_classes/#export_list-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/flow_classes/#export_symbol-icon.png b/externals/gridflow/doc/flow_classes/#export_symbol-icon.png Binary files differdeleted file mode 100644 index 28c70df9..00000000 --- a/externals/gridflow/doc/flow_classes/#export_symbol-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/flow_classes/#fade-help.pd b/externals/gridflow/doc/flow_classes/#fade-help.pd deleted file mode 100644 index 551d8637..00000000 --- a/externals/gridflow/doc/flow_classes/#fade-help.pd +++ /dev/null @@ -1,80 +0,0 @@ -#N canvas 48 74 732 441 10; -#X obj 268 95 cnv 15 460 15 empty empty empty 20 12 0 14 -200249 -66577 -0; -#X obj 278 115 cnv 15 450 15 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X obj 8 406 cnv 15 720 30 empty empty empty 20 12 0 14 -200249 -66577 -0; -#X obj 8 3 cnv 15 720 15 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X obj 278 174 cnv 15 450 15 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X obj 268 25 cnv 15 460 15 empty empty empty 20 12 0 14 -200249 -66577 -0; -#X text 271 25 Arguments:; -#X obj 268 281 cnv 15 460 15 empty empty empty 20 12 0 14 -200249 -66577 -0; -#X text 271 281 Outlets:; -#X obj 8 25 cnv 15 250 15 empty empty empty 20 12 0 14 -200249 -66577 -0; -#X text 11 25 Usage:; -#X obj 8 45 cnv 15 250 30 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X obj 8 81 cnv 15 250 320 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X obj 268 343 cnv 15 460 15 empty empty empty 20 12 0 14 -200249 -66577 -0; -#X text 271 343 More Info:; -#X text 271 95 Inlets: (Read left to right \, inlet "0" being the leftmost) -; -#X text 281 115 0: (Leftmost); -#X text 281 174 1: (Rightmost); -#X obj 104 53 #fade; -#X obj 91 324 #fade; -#X obj 91 350 #out window; -#X msg 31 224 open b001.jpg; -#X obj 22 166 bng 15 250 50 0 empty empty empty 0 -6 0 8 -225271 -1 --1; -#X obj 22 252 #in; -#X obj 22 199 t b b; -#X obj 50 303 bng 15 250 50 0 empty empty empty 0 -6 0 8 -24198 -1 --1; -#X floatatom 134 305 5 0 0 0 - - -; -#X obj 22 139 metro 500; -#X obj 22 113 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 -; -#X obj 144 165 bng 15 250 50 0 empty empty empty 0 -6 0 8 -225271 -1 --1; -#X obj 144 251 #in; -#X obj 144 198 t b b; -#X msg 153 223 open r001.jpg; -#X obj 144 136 metro 500; -#X obj 144 111 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 -1; -#X text 16 413 GridFlow 0.8.0; -#X text 71 3 Fades a grids according to the argument you provide.; -#X text 10 4 SUMMARY:; -#X text 284 45 One - See inlet 0: (rightmost); -#X text 292 135 Grid - Accepts s grid and multiplies it with a fraction -of the previously outputted grid.; -#X text 292 195 Integer - accepts an integer that determines the amount -one grid is blended with another. For example: integer 5 takes 20% -of the first image and blends it with 80% of the following image.; -#X text 283 301 One - Outputs the fading images.; -#X connect 19 0 20 0; -#X connect 21 0 23 0; -#X connect 22 0 24 0; -#X connect 23 0 19 0; -#X connect 24 0 23 0; -#X connect 24 1 21 0; -#X connect 25 0 19 0; -#X connect 26 0 19 1; -#X connect 27 0 22 0; -#X connect 28 0 27 0; -#X connect 29 0 31 0; -#X connect 30 0 19 0; -#X connect 31 0 30 0; -#X connect 31 1 32 0; -#X connect 32 0 30 0; -#X connect 33 0 29 0; -#X connect 34 0 33 0; diff --git a/externals/gridflow/doc/flow_classes/#fade-icon.png b/externals/gridflow/doc/flow_classes/#fade-icon.png Binary files differdeleted file mode 100644 index 6b7f0fd1..00000000 --- a/externals/gridflow/doc/flow_classes/#fade-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/flow_classes/#fade_lin-icon.png b/externals/gridflow/doc/flow_classes/#fade_lin-icon.png Binary files differdeleted file mode 100644 index 086a8194..00000000 --- a/externals/gridflow/doc/flow_classes/#fade_lin-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/flow_classes/#finished-icon.png b/externals/gridflow/doc/flow_classes/#finished-icon.png Binary files differdeleted file mode 100644 index b4ec90ef..00000000 --- a/externals/gridflow/doc/flow_classes/#finished-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/flow_classes/#fold-icon.png b/externals/gridflow/doc/flow_classes/#fold-icon.png Binary files differdeleted file mode 100644 index 09898f18..00000000 --- a/externals/gridflow/doc/flow_classes/#fold-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/flow_classes/#for-icon.png b/externals/gridflow/doc/flow_classes/#for-icon.png Binary files differdeleted file mode 100644 index 607fe8cb..00000000 --- a/externals/gridflow/doc/flow_classes/#for-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/flow_classes/#grade-icon.png b/externals/gridflow/doc/flow_classes/#grade-icon.png Binary files differdeleted file mode 100644 index d94b8bf8..00000000 --- a/externals/gridflow/doc/flow_classes/#grade-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/flow_classes/#greyscale_to_rgb-icon.png b/externals/gridflow/doc/flow_classes/#greyscale_to_rgb-icon.png Binary files differdeleted file mode 100644 index 0a027327..00000000 --- a/externals/gridflow/doc/flow_classes/#greyscale_to_rgb-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/flow_classes/#import-icon.png b/externals/gridflow/doc/flow_classes/#import-icon.png Binary files differdeleted file mode 100644 index 7dc215ac..00000000 --- a/externals/gridflow/doc/flow_classes/#import-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/flow_classes/#in-help.pd b/externals/gridflow/doc/flow_classes/#in-help.pd deleted file mode 100644 index 6db03b52..00000000 --- a/externals/gridflow/doc/flow_classes/#in-help.pd +++ /dev/null @@ -1,135 +0,0 @@ -#N canvas 373 24 613 584 10; -#X obj 123 779 #out window; -#X obj 123 711 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 --1; -#X obj 5 -9 cnv 15 90 1100 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X obj 57 -1 #in; -#X text 35 37 INLETS:; -#X text 42 68 -LEFT:; -#X text 102 -1 -IMPORTS GRIDS (IMAGES OR MOVIES); -#X text 110 268 Message "close" closes the video input device. Only -necessary if you are using a live capture device.; -#X text 109 68 Bang sends a grid (static image or one frame of video) -to [#out]. Successive bangs advance through the grid (frames of video). -; -#X text 110 119 Message "open" follwed by the filename \, ex: "open -someimage.jpg" gives a grid (most often an image) to an [#out].; -#X text 108 226 Interger will display the frame number of the frame -just sent. Applies to formats that have frame numbers.; -#X text 109 173 Message "set" \, followed by a number \, will select -the video frame corresponding to the number. A bang must be sent in -order to display the frame.; -#X text 8 444 ARGUMENTS:; -#X text 107 444 filename \, [#in someimage.jpg] eliminates the need -for message "open someimage.jpg" but limits that image.; -#X text 23 500 OUTLETS:; -#X text 37 531 -LEFT:; -#X text 110 530 Displays the resulting grid when connected to [#out] -; -#X text 29 574 -RIGHT:; -#X text 109 574 Integer \, a numbner box will identify the frame number -corresponding to the frame currently displayed.Applies only to formats -that have frame numbers.; -#X text 16 676 EXAMPLES:; -#X text 112 313 Message "rewind" will rewind a video file to its beginning. -; -#X text 111 341 Message "loop 1" restarts a video each time it reaches -the end. The loop option is on by default.; -#X text 110 381 Message "loop 0" turns off the loop option. The video -stops once it reaches the end.; -#X text 110 624 Bang signals when a frame could not be read and signals -the end of a file.; -#X obj 123 755 #in; -#X floatatom 402 752 5 0 0 0 - - -; -#X msg 343 752 set 2; -#X msg 131 733 open b001.jpg; -#X text 137 685 for images:; -#X obj 320 880 #out window; -#X obj 320 711 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 --1; -#X obj 320 833 #in; -#X msg 326 730 open movie.mpeg; -#X msg 404 802 loop 0; -#X msg 466 804 loop 1; -#X floatatom 336 859 5 0 0 0 - - -; -#X msg 404 777 rewind; -#X text 323 686 for video files:; -#X obj 382 850 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 --1; -#X text 16 949 SEE ALSO:; -#X text 367 1067 updated for GridFlow version 0.8.0; -#N canvas 135 17 680 586 More_Info 0; -#X msg 52 283 option timelog \$1; -#X obj 52 263 tgl 15 0 empty empty empty 0 -6 0 8 -233017 -1 -1 0 1 -; -#X text 274 307 upload a grid; -#X text 261 80 upload a grid; -#X text 194 108 open default display for screenshot; -#X msg 73 134 open videodev /dev/video0; -#X text 260 136 open a video device; -#X msg 75 332 open x11 here; -#X msg 87 356 open x11 local 10; -#X text 182 285 show/hide timing statistics; -#X text 178 334 connect to default display; -#X text 218 358 connect to display #10 on this machine; -#X msg 100 380 open x11 remote.host.bla.net 0; -#X text 324 382 connect to remote machine on display #0; -#X text 290 161 open mpeg video stream; -#X text 272 155 *; -#X text 36 558 * path is where you started pd from. usually $home. -; -#X text 308 188 open an image file; -#X msg 114 450 close; -#X msg 90 161 open lsd.mpeg; -#X msg 55 107 open x11 here; -#X msg 35 80 open host.bla.net 7777; -#X msg 113 404 open img/bla.jpg; -#X text 300 405 open single file in jpg format; -#X msg 108 186 open ./img/bla.jpg; -#X text 35 481 incoming file is sent through the opened device/socket/file. -in single file formats subsequent pictures overwrite the preceeding -one. there are many more options. for more information see the reference -manual in the "formats" and "objects for input/output" sections.; -#X msg 65 307 open x.test.at 7777; -#X msg 125 426 open window; -#X text 228 426 opens a window x11 \, quartz or sdl; -#X text 577 15 comment; -#X obj 35 213 #in; -#X obj 35 441 #out; -#X text 14 15 #in \, #out communicating grids (pictures) to/from devices -\, sockets \, files; -#X connect 0 0 31 0; -#X connect 1 0 0 0; -#X connect 5 0 30 0; -#X connect 7 0 31 0; -#X connect 8 0 31 0; -#X connect 12 0 31 0; -#X connect 18 0 31 0; -#X connect 19 0 30 0; -#X connect 20 0 30 0; -#X connect 21 0 30 0; -#X connect 22 0 31 0; -#X connect 24 0 30 0; -#X connect 26 0 31 0; -#X connect 27 0 31 0; -#X connect 30 0 31 0; -#X restore 105 951 pd More_Info; -#X obj 105 990 #import ( 1 ); -#X obj 202 990 #export; -#X obj 257 990 #export_list; -#X obj 347 990 #export_symbol; -#X obj 453 989 #pack; -#X connect 1 0 24 0; -#X connect 24 0 0 0; -#X connect 25 0 31 0; -#X connect 26 0 31 0; -#X connect 27 0 24 0; -#X connect 30 0 31 0; -#X connect 31 0 29 0; -#X connect 31 1 35 0; -#X connect 31 1 38 0; -#X connect 32 0 31 0; -#X connect 33 0 31 0; -#X connect 34 0 31 0; -#X connect 36 0 31 0; diff --git a/externals/gridflow/doc/flow_classes/#inner-icon.png b/externals/gridflow/doc/flow_classes/#inner-icon.png Binary files differdeleted file mode 100644 index 6da9db08..00000000 --- a/externals/gridflow/doc/flow_classes/#inner-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/flow_classes/#join-icon.png b/externals/gridflow/doc/flow_classes/#join-icon.png Binary files differdeleted file mode 100644 index d13aefc0..00000000 --- a/externals/gridflow/doc/flow_classes/#join-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/flow_classes/#layer-icon.png b/externals/gridflow/doc/flow_classes/#layer-icon.png Binary files differdeleted file mode 100644 index 19a839fa..00000000 --- a/externals/gridflow/doc/flow_classes/#layer-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/flow_classes/#numop-help.pd b/externals/gridflow/doc/flow_classes/#numop-help.pd deleted file mode 100644 index 22e54eb0..00000000 --- a/externals/gridflow/doc/flow_classes/#numop-help.pd +++ /dev/null @@ -1,366 +0,0 @@ -#N canvas 106 82 735 448 10; -#X obj 278 136 cnv 15 450 15 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X obj 8 410 cnv 15 720 30 empty empty empty 20 12 0 14 -200249 -66577 -0; -#X obj 8 8 cnv 15 720 30 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X obj 278 222 cnv 15 450 15 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X obj 267 46 cnv 15 460 15 empty empty empty 20 12 0 14 -200249 -66577 -0; -#X text 270 45 Arguments:; -#X obj 268 292 cnv 15 460 15 empty empty empty 20 12 0 14 -200249 -66577 -0; -#X text 271 292 Outlets:; -#X obj 8 46 cnv 15 250 15 empty empty empty 20 12 0 14 -200249 -66577 -0; -#X text 11 46 Usage:; -#X obj 8 67 cnv 15 250 30 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X obj 8 104 cnv 15 250 300 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X obj 266 355 cnv 15 460 15 empty empty empty 20 12 0 14 -200249 -66577 -0; -#X text 269 355 More Info:; -#X text 281 136 0: (Leftmost); -#X text 281 222 1: (Rightmost); -#X text 12 8 SUMMARY:; -#X text 73 8 Transforms a grid by applying mathematical operations -in order to generate effects on a pixel by pixel basis.; -#X obj 109 76 # +; -#X floatatom 31 234 5 0 0 0 - - -; -#X obj 42 288 display; -#X obj 15 149 #color; -#X msg 15 116 255 0 0; -#X obj 15 331 #color; -#X text 281 74 One - see: inlet 1: (Rightmost); -#X obj 267 101 cnv 15 460 15 empty empty empty 20 12 0 14 -200249 -66577 -0; -#X text 270 101 Inlets: (Read left to right \, inlet "0" being the -leftmost); -#X text 283 313 One - outputs the transformed grid.; -#X text 16 417 GridFlow 0.8.0; -#X obj 15 258 # +; -#X text 292 242 Integer - Accepts integers that modify the incoming -grid.; -#N canvas 15 0 912 644 numop 0; -#X text 76 366 A + B; -#X text 77 510 A * B; -#X text 73 571 rounded towards zero; -#X text 14 73 angles are in hundredth of degrees \, so a full circle -(two pi radians) is 36000 you can convert from radians to our angles -by multiplying by 18000/pi.; -#X text 13 44 for all of these \, A refers to the left inlet and B -to the value on the right.; -#X text 15 27 Consult doc/architecture.html to see all the 40 of them. -; -#X text 902 31 GridFlow 0.8.0; -#X obj 479 70 #color; -#X obj 684 72 #color; -#X msg 15 366 op +; -#X msg 15 507 op *; -#X obj 15 385 s op; -#X obj 423 155 r op; -#X obj 15 526 s op; -#X obj 15 436 s op; -#X text 77 421 A - B; -#X msg 15 417 op -; -#X obj 15 761 s op; -#X msg 15 742 op %; -#X text 69 743 A % B; -#X obj 15 575 s op; -#X msg 15 556 op /; -#X text 79 557 A / B; -#X obj 14 809 s op; -#X text 83 790 B % A; -#X text 15 14 Numeric Operators: *whoa \, there's a lot of them; -#X obj 16 482 s op; -#X msg 16 463 op inv+; -#X text 79 464 B -A; -#X obj 15 623 s op; -#X text 79 605 A / B; -#X msg 15 604 op div; -#X text 75 621 rounded downwards; -#X obj 15 668 s op; -#X msg 15 649 op inv*; -#X text 80 650 B / A; -#X text 77 665 rounded towards 0; -#X obj 15 712 s op; -#X text 76 714 rounded downwards; -#X text 101 695 B / A; -#X text 68 760 modulo (goes with div); -#X text 65 809 modulo (goes with div); -#X msg 14 790 op swap%; -#X obj 15 286 s op; -#X obj 15 334 s op; -#X msg 15 267 op ignore; -#X text 90 268 A; -#X msg 15 315 op put; -#X text 76 315 B; -#X msg 15 693 op swapdiv; -#X obj 237 286 s op; -#X msg 237 267 op rem; -#X text 315 263 A % B; -#X obj 236 338 s op; -#X text 330 319 B % A; -#X text 314 278 remainder; -#X text 314 293 (goes with /); -#X msg 236 319 op swaprem; -#X text 327 333 remainder; -#X text 326 348 (goes with /); -#X obj 236 388 s op; -#X obj 236 435 s op; -#X msg 236 369 op gcd; -#X msg 236 416 op lcm; -#X text 298 373 greatest common divisor; -#X text 298 420 least common multiple; -#X obj 235 481 s op; -#X text 299 464 A or B \, bitwise; -#X msg 235 462 op; -#X obj 235 525 s op; -#X text 299 508 A xor B \, bitwise; -#X msg 235 506 op ^; -#X obj 235 578 s op; -#X msg 235 559 op &; -#X text 300 561 A and B \, bitwise; -#X obj 235 623 s op; -#X msg 235 604 op <<; -#X text 300 606 A * (2**(B % 32); -#X text 299 621 left-shifthing; -#X obj 235 669 s op; -#X msg 235 649 op >>; -#X text 299 666 right-shifthing; -#X text 300 652 A / (2**(B % 32); -#X obj 218 463 bng 15 250 50 0 empty empty empty 0 -6 0 8 -258699 -1 --1; -#X obj 235 714 s op; -#X msg 235 695 op; -#X obj 218 695 bng 15 250 50 0 empty empty empty 0 -6 0 8 -258699 -1 --1; -#X text 299 697 if A is zero then; -#X text 300 711 B else A; -#X obj 235 758 s op; -#X text 299 741 if A is zero then; -#X text 15 110 comment; -#X msg 235 739 op &&; -#X text 300 755 zero else B; -#X obj 236 807 s op; -#X msg 236 788 op min; -#X text 300 789 the lowest value; -#X text 301 804 in A \, B; -#X obj 500 287 s op; -#X msg 500 267 op max; -#X text 556 284 in A \, B; -#X text 557 268 the highest value; -#X obj 500 333 s op; -#X msg 500 313 op cmp; -#X text 551 310 -1 when A<B; -#X text 558 338 1 when A>B; -#X text 558 324 0 when A=B; -#X obj 500 386 s op; -#X msg 500 366 op ==; -#X text 557 367 is A equal to B ?; -#X text 556 385 1 = true \, 0 = false; -#X obj 500 433 s op; -#X msg 500 413 op !=; -#X text 557 414 is A not equal to B ?; -#X obj 500 477 s op; -#X msg 500 456 op >; -#X text 557 457 is A greater than B ?; -#X obj 500 523 s op; -#X msg 500 502 op <=; -#X text 557 503 is A not greater than B ?; -#X obj 500 572 s op; -#X msg 500 551 op <; -#X text 557 552 is A less than B ?; -#X obj 500 618 s op; -#X msg 500 597 op >=; -#X text 557 598 is A not less than B ?; -#X obj 500 666 s op; -#X msg 500 645 op sin*; -#X text 559 646 B * sin(A); -#X obj 500 713 s op; -#X msg 500 691 op cos*; -#X text 560 693 B * cos(A); -#X obj 500 758 s op; -#X msg 500 736 op atan; -#X text 560 737 arctan(A/B); -#X obj 499 805 s op; -#X msg 499 783 op tan*; -#X text 559 784 tanh(A); -#X obj 738 288 s op; -#X msg 738 268 op log*; -#X text 795 269 B*log(A); -#X text 794 286 in base e; -#X obj 738 334 s op; -#X msg 738 314 op gamma; -#X text 809 314 floor(pow(a/256.0 \, 256.0/b)*256.0); -#X obj 737 385 s op; -#X msg 737 366 op **; -#X text 799 368 A**B; -#X text 799 385 A raised to power B; -#X obj 737 431 s op; -#X msg 737 412 op abs-; -#X text 799 412 absolute value of (A-B); -#X obj 737 478 s op; -#X msg 737 459 op rand; -#X text 800 473 number below A; -#X text 799 458 randomly produces a non-negative; -#X obj 737 524 s op; -#X msg 737 505 op sqrt; -#X text 799 504 square root of A; -#X text 800 519 rounded downwards; -#X obj 737 566 s op; -#X msg 737 547 op sq-; -#X text 800 546 (A-B) times (A-B); -#X obj 740 614 s op; -#X obj 723 595 bng 15 250 50 0 empty empty empty 0 -6 0 8 -258699 -1 --1; -#X msg 740 595 op clip+; -#X text 808 595 A+B but output is clipped; -#X obj 740 660 s op; -#X obj 723 641 bng 15 250 50 0 empty empty empty 0 -6 0 8 -258699 -1 --1; -#X msg 740 641 op clip-; -#X text 808 641 A-B but output is clipped; -#X obj 740 706 s op; -#X obj 740 750 s op; -#X text 808 687 (A+B)/2; -#X msg 740 687 op avg; -#X msg 740 731 op hypot; -#X text 808 731 square root of (A*A+B*B); -#X obj 740 792 s op; -#X obj 723 773 bng 15 250 50 0 empty empty empty 0 -6 0 8 -258699 -1 --1; -#X msg 740 773 op erf; -#X text 807 773 integral of e^(-x*x)dx; -#N canvas 8 30 615 351 all_operators 0; -#X obj 174 99 # -; -#X obj 522 97 # swap%; -#X obj 186 177 # abs-; -#X obj 238 177 # rand; -#X obj 342 177 # sq-; -#X obj 290 177 # sqrt; -#X obj 144 99 # +; -#X obj 492 97 # %; -#X obj 260 99 # *; -#X obj 289 99 # /; -#X obj 206 99 # inv+; -#X obj 321 99 # div; -#X obj 367 98 # inv*; -#X obj 420 98 # swapdiv; -#X obj 35 99 # ignore; -#X obj 100 100 # put; -#X obj 35 125 # rem; -#X obj 78 125 # swaprem; -#X obj 149 125 # gcd; -#X obj 191 125 # lcm; -#X obj 234 125 # |; -#X obj 234 125 # |; -#X obj 263 125 # ^; -#X obj 293 125 # &; -#X obj 322 125 # <<; -#X obj 358 125 # >>; -#X obj 394 125 # ||; -#X obj 431 125 # &&; -#X obj 467 125 # min; -#X obj 35 151 # max; -#X obj 79 151 # cmp; -#X obj 124 151 # ==; -#X obj 162 151 # !=; -#X obj 199 151 # >; -#X obj 234 151 # <=; -#X obj 274 151 # <; -#X obj 304 152 # >=; -#X obj 341 152 # sin*; -#X obj 391 152 # cos*; -#X obj 442 152 # atan; -#X obj 493 152 # tanh*; -#X obj 35 177 # log*; -#X obj 87 177 # gamma; -#X obj 148 177 # **; -#X obj 388 177 # avg; -#X obj 433 177 # hypot; -#X restore 15 174 pd all_operators; -#X text 585 31 select values below; -#X text 14 233 select an operator below; -#X text 478 51 A; -#X text 683 53 B; -#X obj 479 182 # +; -#X obj 257 196 #color; -#X obj 297 162 #reverse; -#X obj 443 215 display; -#X obj 656 197 #unpack 3; -#X floatatom 605 244 5 0 0 0 - - -; -#X obj 642 150 t a a; -#X obj 597 191 display; -#X connect 7 0 186 0; -#X connect 7 0 188 0; -#X connect 7 0 192 0; -#X connect 8 0 186 1; -#X connect 9 0 11 0; -#X connect 10 0 13 0; -#X connect 12 0 186 0; -#X connect 16 0 14 0; -#X connect 18 0 17 0; -#X connect 21 0 20 0; -#X connect 27 0 26 0; -#X connect 31 0 29 0; -#X connect 34 0 33 0; -#X connect 42 0 23 0; -#X connect 45 0 43 0; -#X connect 47 0 44 0; -#X connect 49 0 37 0; -#X connect 51 0 50 0; -#X connect 57 0 53 0; -#X connect 62 0 60 0; -#X connect 63 0 61 0; -#X connect 68 0 66 0; -#X connect 71 0 69 0; -#X connect 73 0 72 0; -#X connect 76 0 75 0; -#X connect 80 0 79 0; -#X connect 85 0 84 0; -#X connect 92 0 89 0; -#X connect 95 0 94 0; -#X connect 99 0 98 0; -#X connect 103 0 102 0; -#X connect 108 0 107 0; -#X connect 112 0 111 0; -#X connect 115 0 114 0; -#X connect 118 0 117 0; -#X connect 121 0 120 0; -#X connect 124 0 123 0; -#X connect 127 0 126 0; -#X connect 130 0 129 0; -#X connect 133 0 132 0; -#X connect 136 0 135 0; -#X connect 139 0 138 0; -#X connect 143 0 142 0; -#X connect 146 0 145 0; -#X connect 150 0 149 0; -#X connect 153 0 152 0; -#X connect 157 0 156 0; -#X connect 161 0 160 0; -#X connect 165 0 163 0; -#X connect 169 0 167 0; -#X connect 174 0 171 0; -#X connect 175 0 172 0; -#X connect 179 0 177 0; -#X connect 188 0 187 0; -#X connect 188 0 189 0; -#X connect 190 0 191 0; -#X connect 192 0 193 0; -#X connect 192 1 190 0; -#X restore 265 380 pd numop; -#X text 290 157 Grid - Accepts a grid to be modified by an operator -consistent with the right inlet value (list of operators in [pd numop]). -In this example [# +] is used.; -#X text 72 234 <-- change this value to modify the operation.; -#X text 193 154 <--modify color with sliders.; -#X connect 19 0 29 1; -#X connect 21 0 29 0; -#X connect 22 0 21 0; -#X connect 29 0 20 0; -#X connect 29 0 23 0; diff --git a/externals/gridflow/doc/flow_classes/#outer-icon.png b/externals/gridflow/doc/flow_classes/#outer-icon.png Binary files differdeleted file mode 100644 index 7c9c4ed7..00000000 --- a/externals/gridflow/doc/flow_classes/#outer-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/flow_classes/#pack-help.pd b/externals/gridflow/doc/flow_classes/#pack-help.pd deleted file mode 100644 index b2bff45a..00000000 --- a/externals/gridflow/doc/flow_classes/#pack-help.pd +++ /dev/null @@ -1,75 +0,0 @@ -#N canvas 29 63 693 623 10; -#X obj 8 3 cnv 15 90 578 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X text 45 273 INLETS:; -#X text 42 304 - LEFT:; -#X text 33 410 OUTLETS:; -#X text 28 53 EXAMPLES:; -#X text 24 506 SEE ALSO:; -#N canvas 247 137 487 505 More_Info 0; -#X text 485 23 GridFlow 0.8.0; -#X obj 523 257 #unpack 3; -#X floatatom 513 305 5 0 0 0 - - -; -#X obj 416 190 t a a; -#X obj 333 301 display; -#X floatatom 552 305 5 0 0 0 - - -; -#X floatatom 591 305 5 0 0 0 - - -; -#X text -48 51 [#unpack]; -#X obj 530 352 #pack 3; -#X text -49 122 It takes an integer as an argument to specify the number -of Dimensions the incoming grid has.; -#X obj 416 76 #color; -#X obj 516 411 #color; -#X text -48 84 Accepts grids in its inlet and produces integers via -its outlet.; -#X text -39 349 [#pack]; -#X text -39 382 Accepts integers in its inlets and produces a corresponding -grid via its outlet.; -#X text -40 421 It takes an integer as an argument to specify the number -of incoming integers and the corresponding number of Dimensions the -outgoing grid will have.; -#X obj 483 332 - 127; -#X obj -31 190 trigger bang bang; -#X obj 166 178 metro 100; -#X obj 89 345 display; -#X obj 174 272 print blah; -#X obj 145 316 print blah2; -#X obj 122 155 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 -1; -#X connect 1 0 2 0; -#X connect 1 1 5 0; -#X connect 1 2 6 0; -#X connect 2 0 16 0; -#X connect 3 0 4 0; -#X connect 3 1 1 0; -#X connect 5 0 8 1; -#X connect 6 0 8 2; -#X connect 8 0 11 0; -#X connect 10 0 3 0; -#X connect 16 0 8 0; -#X connect 18 0 19 0; -#X connect 18 0 20 0; -#X connect 18 0 21 0; -#X connect 22 0 18 0; -#X restore 119 550 pd More_Info; -#X text 36 435 - LEFT:; -#X text 412 575 updated for GridFlow version 0.8.0; -#X obj 47 13 #pack; -#X text 183 183 comment; -#X obj 120 173 #color; -#X floatatom 120 65 5 0 0 0 - - -; -#X floatatom 142 93 5 0 0 0 - - -; -#X floatatom 164 121 5 0 0 0 - - -; -#X obj 120 147 #pack 3; -#X text 25 346 ARGUMENT:; -#X text 120 304 Grid - combination of inputs.; -#X text 104 436 Grid - combination of inputs given by inlets.; -#X text 114 344 Interger - defines the number of inlets and the amount -of outcoming grid dimensions.; -#X obj 121 511 #unpack 3; -#X text 114 13 Creates a vector (a list of numbers) from individual -integers.; -#X connect 12 0 15 0; -#X connect 13 0 15 1; -#X connect 14 0 15 2; -#X connect 15 0 11 0; diff --git a/externals/gridflow/doc/flow_classes/#pack-icon.png b/externals/gridflow/doc/flow_classes/#pack-icon.png Binary files differdeleted file mode 100644 index 21ee761b..00000000 --- a/externals/gridflow/doc/flow_classes/#pack-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/flow_classes/#pack_and_#unpack-help.pd b/externals/gridflow/doc/flow_classes/#pack_and_#unpack-help.pd deleted file mode 100644 index 87fa2694..00000000 --- a/externals/gridflow/doc/flow_classes/#pack_and_#unpack-help.pd +++ /dev/null @@ -1,85 +0,0 @@ -#N canvas 109 540 736 659 10; -#X obj 268 124 cnv 15 460 15 empty empty empty 20 12 0 14 -200249 -66577 -0; -#X obj 278 148 cnv 15 450 15 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X obj 8 641 cnv 15 720 30 empty empty empty 20 12 0 14 -200249 -66577 -0; -#X obj 7 5 cnv 15 720 30 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X obj 268 43 cnv 15 460 15 empty empty empty 20 12 0 14 -200249 -66577 -0; -#X text 271 43 Arguments:; -#X obj 268 267 cnv 15 460 15 empty empty empty 20 12 0 14 -200249 -66577 -0; -#X text 271 267 Outlets:; -#X obj 8 43 cnv 15 250 15 empty empty empty 20 12 0 14 -200249 -66577 -0; -#X text 11 43 Usage:; -#X obj 8 63 cnv 15 250 30 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X obj 8 100 cnv 15 250 200 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X text 271 124 Inlets: (Read left to right \, inlet "0" being the -leftmost); -#X obj 80 71 #pack; -#X text 11 5 SUMMARY:; -#X text 76 5 Creates a one dimentional grid (Dim(N) vector) from individual -integers.; -#X obj 30 222 #color; -#X floatatom 30 114 5 0 0 0 - - -; -#X floatatom 52 142 5 0 0 0 - - -; -#X floatatom 74 170 5 0 0 0 - - -; -#X obj 30 196 #pack 3; -#X text 283 63 One - [integer] defines the number of inlets and the -amount of grid dimensions.; -#X text 289 175 Integer - accepts multiple integers as defined by the -argument and creates a vector.; -#X text 283 287 One - outputs values from each individual inlet.; -#X obj 270 483 cnv 15 460 15 empty empty empty 20 12 0 14 -200249 -66577 -0; -#X obj 281 503 cnv 15 450 15 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X obj 7 335 cnv 15 720 30 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X obj 268 373 cnv 15 460 15 empty empty empty 20 12 0 14 -200249 -66577 -0; -#X text 271 373 Arguments:; -#X obj 268 595 cnv 15 460 15 empty empty empty 20 12 0 14 -200249 -66577 -0; -#X text 271 595 Outlets:; -#X obj 8 373 cnv 15 250 15 empty empty empty 20 12 0 14 -200249 -66577 -0; -#X text 11 373 Usage:; -#X obj 8 393 cnv 15 250 30 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X obj 8 430 cnv 15 250 200 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X text 273 482 Inlets: (Read left to right \, inlet "0" being the -leftmost); -#X text 11 335 SUMMARY:; -#X obj 79 400 #unpack; -#X obj 30 518 #unpack 3; -#X obj 30 451 #color; -#X floatatom 30 601 5 0 0 0 - - -; -#X floatatom 59 574 5 0 0 0 - - -; -#X floatatom 88 549 5 0 0 0 - - -; -#X text 283 393 One - [integer] defines the number of outlets and the -amount of grid dimensions.; -#X text 281 148 All:; -#X text 283 503 All:; -#X text 284 529 Grid - receives grids and outputs integers.; -#X text 289 218 Grid - receives grids and outputs integers.; -#X text 77 335 Outputs individual integers corresponding to the vector -dimensions (number of elements in a grid).; -#X text 284 615 All - outputs the vector dimensions as individual integers. -; -#X text 17 648 GridFlow 0.8.0; -#X connect 17 0 20 0; -#X connect 18 0 20 1; -#X connect 19 0 20 2; -#X connect 20 0 16 0; -#X connect 38 0 40 0; -#X connect 38 1 41 0; -#X connect 38 2 42 0; -#X connect 39 0 38 0; diff --git a/externals/gridflow/doc/flow_classes/#perspective-icon.png b/externals/gridflow/doc/flow_classes/#perspective-icon.png Binary files differdeleted file mode 100644 index 23d6f492..00000000 --- a/externals/gridflow/doc/flow_classes/#perspective-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/flow_classes/#posterize-icon.png b/externals/gridflow/doc/flow_classes/#posterize-icon.png Binary files differdeleted file mode 100644 index 0dd80c0f..00000000 --- a/externals/gridflow/doc/flow_classes/#posterize-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/flow_classes/#print-help.pd b/externals/gridflow/doc/flow_classes/#print-help.pd deleted file mode 100644 index cea6ebd8..00000000 --- a/externals/gridflow/doc/flow_classes/#print-help.pd +++ /dev/null @@ -1,68 +0,0 @@ -#N canvas 38 0 738 404 10; -#X obj 269 196 cnv 15 460 15 empty empty empty 20 12 0 14 -200249 -66577 -0; -#X obj 279 217 cnv 15 450 15 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X obj 7 369 cnv 15 720 30 empty empty empty 20 12 0 14 -200249 -66577 -0; -#X obj 8 6 cnv 15 720 40 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X obj 268 53 cnv 15 460 15 empty empty empty 20 12 0 14 -200249 -66577 -0; -#X text 271 53 Arguments:; -#X obj 8 53 cnv 15 250 15 empty empty empty 20 12 0 14 -200249 -66577 -0; -#X text 11 53 Usage:; -#X obj 8 73 cnv 15 250 30 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X obj 271 305 cnv 15 460 15 empty empty empty 20 12 0 14 -200249 -66577 -0; -#X text 272 196 Inlets: (Read left to right \, inlet "0" being the -leftmost); -#X text 282 217 0: (Leftmost); -#X obj 8 110 cnv 15 250 250 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X obj 105 79 #print; -#X text 12 6 SUMMARY:; -#X floatatom 167 212 5 0 0 0 - - -; -#X floatatom 189 233 5 0 0 0 - - -; -#X floatatom 211 253 5 0 0 0 - - -; -#X obj 34 202 until; -#X msg 34 176 27; -#X obj 34 226 random 27; -#X obj 167 272 #pack 3; -#X obj 34 251 #import ( 3 3 3 ); -#X msg 35 118 open r001.jpg; -#X obj 15 150 #in; -#X obj 12 118 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 --1; -#X text 155 189 view grid info; -#X text 101 344 view result in console; -#X text 274 305 Related objects:; -#X obj 460 336 rubyprint; -#X obj 530 329 printargs; -#X obj 279 336 #dim; -#X obj 314 336 #export; -#X obj 369 336 #export_list; -#X obj 600 329 print; -#X text 15 376 GridFLow 0.8.0; -#X text 73 6 Displays the dimensions of a grid in the console. If the -grid has less than two dimensions it will display all grid data.; -#X text 284 123 Symbol - Adds a symbol (text) as a prefix before the -printed element in the console.; -#X text 283 87 Integer - Adds a number as a prefix before the element -printed in the console. See here; -#X text 282 246 Grid - Receives and outputs the dimensions of a grid. -; -#X obj 15 319 #print paprika; -#X connect 15 0 21 0; -#X connect 16 0 21 1; -#X connect 17 0 21 2; -#X connect 18 0 20 0; -#X connect 19 0 18 0; -#X connect 20 0 22 0; -#X connect 21 0 40 0; -#X connect 22 0 40 0; -#X connect 23 0 24 0; -#X connect 24 0 40 0; -#X connect 25 0 24 0; diff --git a/externals/gridflow/doc/flow_classes/#print-help2.pd b/externals/gridflow/doc/flow_classes/#print-help2.pd deleted file mode 100644 index d06eeebc..00000000 --- a/externals/gridflow/doc/flow_classes/#print-help2.pd +++ /dev/null @@ -1,113 +0,0 @@ -#N canvas 186 33 771 654 10; -#X obj 268 45 cnv 15 460 15 empty empty empty 20 12 0 14 -158509 -66577 -0; -#X obj 278 65 cnv 15 450 15 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X obj 8 483 cnv 15 720 30 empty empty empty 20 12 0 14 -158509 -66577 -0; -#X obj 8 513 cnv 15 720 30 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X obj 8 5 cnv 15 720 30 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X text 12 525 KEYWORDS: control number float store; -#X text 12 515 CATAGORY: control; -#X text 281 65 Left:; -#X obj 268 305 cnv 15 460 15 empty empty empty 20 12 0 14 -158509 -66577 -0; -#X text 271 305 Arguments:; -#X text 283 325 One - [float] accepts a single float as a creation -argument which initializes the first value to be sent out the left -outlet.; -#X obj 268 375 cnv 15 460 15 empty empty empty 20 12 0 14 -158509 -66577 -0; -#X text 271 375 Outlets:; -#X text 283 395 One - outputs the stored floating point value of the -object.; -#X obj 8 45 cnv 15 250 15 empty empty empty 20 12 0 14 -158509 -66577 -0; -#X text 11 45 Usage:; -#X obj 8 65 cnv 15 250 30 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X obj 8 103 cnv 15 250 350 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X obj 150 73 f; -#X text 126 73 OR; -#X obj 452 489 pddp; -#N canvas 58 22 261 146 Related_Objects 0; -#X obj 3 87 cnv 15 250 15 empty empty empty 20 12 0 14 -158509 -66577 -0; -#X obj 5 6 cnv 15 250 15 empty empty empty 20 12 0 14 -158509 -66577 -0; -#X obj 3 107 cnv 15 250 30 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X obj 69 113 randomF; -#X obj 138 113 lister; -#X text 7 6 Native PD Objects (internals); -#X text 5 87 Externals and libraries; -#X obj 4 27 cnv 15 250 30 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X obj 70 34 int; -#X obj 137 34 symbol; -#X restore 15 490 pd Related_Objects; -#N canvas 57 22 517 577 More_Info 0; -#X text 43 24 All numbers in PD are kept in 32-bit floating point and -can represent real numbers between -8 \, 388608 and 8.388.608.00; -#X text 11 78 WHAT IS A FLOATING POINT NUMBER?; -#X text 41 267 The following are examples of floating point numbers: -; -#X text 61 293 3; -#X text 62 334 -111.5; -#X text 61 313 0.5; -#X text 40 387 3e-05 : This example is a computer shorthand for scientific -notation. It means 3*10-5 (or 10 to the negative 5th power multiplied -by 3).; -#X text 41 108 According to Webopedia.com \, "computers are integer -machines and are capable of representing real numbers only by using -complex codes." Hence \, real numbers must be 'approximated' by computers -using the "floating point standard". In such a number \, the decimal -point can "float" meaning that there is no fixed number of digits preceding -or following the decimal. A floating point number is therefore a computer's -approximation of a real number.; -#X text 43 453 Interesting side-note: In the early 1990's \, the Intel -80486 was shipped with a math coprocessor to help accelerate the process -of computing floating point numbers (which previously required a considerable -amount of CPU power.) Math coprocessors have since found there way -into nearly every graphics card and CPU available today.; -#X text 62 358 10000 to 1e-16; -#X restore 154 490 pd More_Info; -#X text 496 490 - Dave Sabine \, November 18 \, 2002; -#X text 10 459 doc/2.control.examples/sendnumber.pd - should be a bang/link -; -#X text 12 7 HELP: #print; -#X text 12 17 DESCRIPTION: Displays values in the console.; -#X obj 80 73 #print; -#X text 271 45 Inlet:; -#X text 301 111 Grid - receives a grid; -#X floatatom 71 221 5 0 0 0 - - -; -#X floatatom 93 242 5 0 0 0 - - -; -#X floatatom 115 262 5 0 0 0 - - -; -#X obj 133 349 until; -#X msg 133 323 27; -#X obj 133 373 random 27; -#X obj 71 281 #pack 3; -#X obj 133 398 #import ( 3 3 3 ); -#X obj 14 421 #print; -#X msg 39 139 open r001.jpg; -#X obj 39 167 #in; -#X obj 16 139 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 --1; -#X text 65 420 <-- view result in console; -#X text 12 106 view grid dimensions; -#X text 71 190 view grid info; -#X text 297 141 Integer - jhu; -#X connect 30 0 36 0; -#X connect 31 0 36 1; -#X connect 32 0 36 2; -#X connect 33 0 35 0; -#X connect 34 0 33 0; -#X connect 35 0 37 0; -#X connect 36 0 38 0; -#X connect 37 0 38 0; -#X connect 39 0 40 0; -#X connect 40 0 38 0; -#X connect 41 0 40 0; diff --git a/externals/gridflow/doc/flow_classes/#print-icon.png b/externals/gridflow/doc/flow_classes/#print-icon.png Binary files differdeleted file mode 100644 index 94952881..00000000 --- a/externals/gridflow/doc/flow_classes/#print-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/flow_classes/#ravel-icon.png b/externals/gridflow/doc/flow_classes/#ravel-icon.png Binary files differdeleted file mode 100644 index 0e407c9a..00000000 --- a/externals/gridflow/doc/flow_classes/#ravel-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/flow_classes/#redim-icon.png b/externals/gridflow/doc/flow_classes/#redim-icon.png Binary files differdeleted file mode 100644 index f931a2c9..00000000 --- a/externals/gridflow/doc/flow_classes/#redim-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/flow_classes/#remap_image-help.pd b/externals/gridflow/doc/flow_classes/#remap_image-help.pd deleted file mode 100644 index 95dab924..00000000 --- a/externals/gridflow/doc/flow_classes/#remap_image-help.pd +++ /dev/null @@ -1,73 +0,0 @@ -#N canvas 95 151 750 524 10; -#X obj 268 25 cnv 15 460 15 empty empty empty 20 12 0 14 -200249 -66577 -0; -#X obj 278 68 cnv 15 450 15 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X obj 8 442 cnv 15 720 30 empty empty empty 20 12 0 14 -200249 -66577 -0; -#X obj 8 5 cnv 15 720 15 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X obj 278 140 cnv 15 450 15 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X obj 268 259 cnv 15 460 15 empty empty empty 20 12 0 14 -200249 -66577 -0; -#X text 271 259 Outlets:; -#X obj 8 25 cnv 15 250 15 empty empty empty 20 12 0 14 -200249 -66577 -0; -#X text 11 25 Usage:; -#X obj 8 45 cnv 15 250 30 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X obj 8 81 cnv 15 250 355 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X text 271 25 Inlets: (Read left to right \, inlet "0" being the leftmost) -; -#X text 281 68 0: (Leftmost); -#X text 281 140 1: (Rightmost); -#X text 12 5 SUMMARY: Transforms a grid by displacing pixels.; -#X obj 84 51 #remap_image; -#X text 292 88 Grid - Receives a grid that is to be transformed by -the object connected to the rightmost inlet.; -#X text 291 159 Numop - Receives a numereic operator \, pixel positions -are displaced according to the mathematic operation. Click here for -more transformation options.; -#X msg 48 143 open b001.jpg; -#X obj 18 86 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 --1; -#X obj 18 174 #in; -#X obj 18 112 t b b; -#X obj 18 411 #out window; -#X obj 97 383 #print; -#X obj 57 213 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 --1; -#X floatatom 101 285 5 0 0 0 - - -; -#X obj 68 244 #for (0 0) (240 320) (1 1); -#X obj 82 212 metro 100; -#X obj 82 187 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 -; -#X obj 97 317 # /; -#X obj 18 352 #remap_image; -#X text 16 449 GridFlow 0.8.0; -#X text 281 295 comment; -#X text 285 294 comment; -#X obj 282 299 cnv 15 450 15 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X obj 281 355 cnv 15 450 15 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X text 285 299 0: (Leftmost); -#X text 284 355 1: (Rightmost); -#X text 296 323 Grid - Outputs the transformend image.; -#X text 288 375 Numop - Displays the displaced values.; -#X text 145 284 <-- Modify the value to see transformations.; -#X connect 18 0 20 0; -#X connect 19 0 21 0; -#X connect 20 0 30 0; -#X connect 21 0 20 0; -#X connect 21 1 18 0; -#X connect 24 0 26 0; -#X connect 25 0 29 1; -#X connect 26 0 29 0; -#X connect 27 0 26 0; -#X connect 28 0 27 0; -#X connect 29 0 30 1; -#X connect 30 0 22 0; -#X connect 30 1 23 0; diff --git a/externals/gridflow/doc/flow_classes/#remap_image-icon.png b/externals/gridflow/doc/flow_classes/#remap_image-icon.png Binary files differdeleted file mode 100644 index 6a22c134..00000000 --- a/externals/gridflow/doc/flow_classes/#remap_image-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/flow_classes/#reverse-help.pd b/externals/gridflow/doc/flow_classes/#reverse-help.pd deleted file mode 100644 index 441e9d40..00000000 --- a/externals/gridflow/doc/flow_classes/#reverse-help.pd +++ /dev/null @@ -1,46 +0,0 @@ -#N canvas 599 113 566 552 10; -#X text 428 11 GridFlow 0.8.0; -#X obj 258 207 #color; -#X obj 288 391 #color; -#X obj 259 476 display; -#X text 15 27 [#reverse]; -#X obj 258 359 t a a; -#X text 15 57 Swaps the values of incoming grids while preserving the -number of Dimensions between incoming and outgoing grids.; -#X obj 22 287 #in; -#X obj 22 206 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 --1; -#X msg 52 256 open b001.jpg; -#X obj 22 401 #out window; -#X obj 87 289 hradio 15 1 0 6 empty empty empty 0 -6 0 8 -260818 -1 --1 5; -#X obj 87 307 - 3; -#X floatatom 87 327 5 0 0 0 - - -; -#X text 16 107 0 vertical; -#X text 16 122 1 horizontal; -#X text 16 135 2 rgb <-> bgr; -#X text 16 150 -1 \, -2 \, -3 \, swaps the specicied dimensions; -#X text 16 92 An int argument changes the behavior in this way :; -#X obj 22 228 t b b; -#X obj 22 344 #reverse 0; -#X obj 258 330 #reverse 0; -#X obj 323 275 hradio 15 1 0 6 empty empty empty 0 -6 0 8 -260818 -1 --1 0; -#X obj 323 293 - 3; -#X floatatom 323 313 5 0 0 0 - - -; -#X connect 1 0 21 0; -#X connect 5 0 3 0; -#X connect 5 1 2 0; -#X connect 7 0 20 0; -#X connect 8 0 19 0; -#X connect 9 0 7 0; -#X connect 11 0 12 0; -#X connect 12 0 13 0; -#X connect 13 0 20 1; -#X connect 19 0 7 0; -#X connect 19 1 9 0; -#X connect 20 0 10 0; -#X connect 21 0 5 0; -#X connect 22 0 23 0; -#X connect 23 0 24 0; -#X connect 24 0 21 1; diff --git a/externals/gridflow/doc/flow_classes/#rgb_to_greyscale-icon.png b/externals/gridflow/doc/flow_classes/#rgb_to_greyscale-icon.png Binary files differdeleted file mode 100644 index f032691d..00000000 --- a/externals/gridflow/doc/flow_classes/#rgb_to_greyscale-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/flow_classes/#rgb_to_yuv-help.pd b/externals/gridflow/doc/flow_classes/#rgb_to_yuv-help.pd deleted file mode 100644 index 7ad7c3ec..00000000 --- a/externals/gridflow/doc/flow_classes/#rgb_to_yuv-help.pd +++ /dev/null @@ -1,11 +0,0 @@ -#N canvas 560 468 450 300 10; -#X msg 112 64 open lena.jpg; -#X obj 116 169 #out window; -#X obj 88 19 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 --1; -#X obj 52 84 #in; -#X obj 60 132 #yuv_to_rgb; -#X connect 0 0 3 0; -#X connect 2 0 3 0; -#X connect 3 0 4 0; -#X connect 4 0 1 0; diff --git a/externals/gridflow/doc/flow_classes/#rgb_to_yuv-icon.png b/externals/gridflow/doc/flow_classes/#rgb_to_yuv-icon.png Binary files differdeleted file mode 100644 index 63a4119c..00000000 --- a/externals/gridflow/doc/flow_classes/#rgb_to_yuv-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/flow_classes/#rgb_to_yuv_and_#yuv_to_rgb-help.pd b/externals/gridflow/doc/flow_classes/#rgb_to_yuv_and_#yuv_to_rgb-help.pd deleted file mode 100644 index 8be0a8c3..00000000 --- a/externals/gridflow/doc/flow_classes/#rgb_to_yuv_and_#yuv_to_rgb-help.pd +++ /dev/null @@ -1,44 +0,0 @@ -#N canvas 98 384 737 338 10; -#X obj 267 25 cnv 15 460 15 empty empty empty 20 12 0 14 -200249 -66577 -0; -#X obj 279 77 cnv 15 450 15 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X obj 8 306 cnv 15 720 30 empty empty empty 20 12 0 14 -200249 -66577 -0; -#X obj 8 5 cnv 15 720 15 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X obj 266 192 cnv 15 460 15 empty empty empty 20 12 0 14 -200249 -66577 -0; -#X text 269 191 Outlets:; -#X obj 8 25 cnv 15 250 15 empty empty empty 20 12 0 14 -200249 -66577 -0; -#X text 11 25 Usage:; -#X obj 8 45 cnv 15 250 30 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X obj 8 81 cnv 15 250 220 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X text 270 25 Inlets: (Read left to right \, inlet "0" being the leftmost) -; -#X text 282 77 0: (Leftmost); -#X text 12 5 SUMMARY:; -#X obj 42 51 #rgb_to_yuv; -#X obj 15 117 #for (0 0) (256 256) (1 1); -#X obj 15 90 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 --1; -#X obj 15 220 #clip; -#X obj 15 143 #inner (2 3 # 0 1 0 0 0 1); -#X obj 15 194 #yuv_to_rgb; -#X obj 15 168 # + (200 0 0); -#X obj 16 261 #peephole; -#X text 289 99 Grid - Receives a grid in RGB or YUV format.; -#X text 16 313 GridFlow 0.8.0; -#X obj 135 51 #yuv_to_rgb; -#X text 72 5 converts RGB colourspace to YUV colourspace or YUV to -RGB.; -#X text 291 224 One - outputs the converted grid.; -#X connect 14 0 17 0; -#X connect 15 0 14 0; -#X connect 16 0 20 0; -#X connect 17 0 19 0; -#X connect 18 0 16 0; -#X connect 19 0 18 0; diff --git a/externals/gridflow/doc/flow_classes/#rotate-icon.png b/externals/gridflow/doc/flow_classes/#rotate-icon.png Binary files differdeleted file mode 100644 index 5f7d0694..00000000 --- a/externals/gridflow/doc/flow_classes/#rotate-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/flow_classes/#scale_by-icon.png b/externals/gridflow/doc/flow_classes/#scale_by-icon.png Binary files differdeleted file mode 100644 index cf1c678b..00000000 --- a/externals/gridflow/doc/flow_classes/#scale_by-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/flow_classes/#scale_to-icon.png b/externals/gridflow/doc/flow_classes/#scale_to-icon.png Binary files differdeleted file mode 100644 index 06b45948..00000000 --- a/externals/gridflow/doc/flow_classes/#scale_to-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/flow_classes/#scan-icon.png b/externals/gridflow/doc/flow_classes/#scan-icon.png Binary files differdeleted file mode 100644 index fad5d0ba..00000000 --- a/externals/gridflow/doc/flow_classes/#scan-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/flow_classes/#solarize-icon.png b/externals/gridflow/doc/flow_classes/#solarize-icon.png Binary files differdeleted file mode 100644 index b5f95027..00000000 --- a/externals/gridflow/doc/flow_classes/#solarize-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/flow_classes/#spread-icon.png b/externals/gridflow/doc/flow_classes/#spread-icon.png Binary files differdeleted file mode 100644 index 7d8e7eee..00000000 --- a/externals/gridflow/doc/flow_classes/#spread-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/flow_classes/#store-icon.png b/externals/gridflow/doc/flow_classes/#store-icon.png Binary files differdeleted file mode 100644 index 73ffa715..00000000 --- a/externals/gridflow/doc/flow_classes/#store-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/flow_classes/#transpose-icon.png b/externals/gridflow/doc/flow_classes/#transpose-icon.png Binary files differdeleted file mode 100644 index eb911696..00000000 --- a/externals/gridflow/doc/flow_classes/#transpose-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/flow_classes/#type-icon.png b/externals/gridflow/doc/flow_classes/#type-icon.png Binary files differdeleted file mode 100644 index 6ff34e7c..00000000 --- a/externals/gridflow/doc/flow_classes/#type-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/flow_classes/#unpack-#pack-help.pd b/externals/gridflow/doc/flow_classes/#unpack-#pack-help.pd deleted file mode 100644 index cc78d8fb..00000000 --- a/externals/gridflow/doc/flow_classes/#unpack-#pack-help.pd +++ /dev/null @@ -1,45 +0,0 @@ -#N canvas 245 108 834 542 10; -#X text 485 23 GridFlow 0.8.0; -#X obj 523 257 #unpack 3; -#X floatatom 513 305 5 0 0 0 - - -; -#X obj 416 190 t a a; -#X obj 333 301 display; -#X floatatom 552 305 5 0 0 0 - - -; -#X floatatom 591 305 5 0 0 0 - - -; -#X text -48 51 [#unpack]; -#X obj 530 352 #pack 3; -#X text -49 122 It takes an integer as an argument to specify the number -of Dimensions the incoming grid has.; -#X obj 416 76 #color; -#X obj 516 411 #color; -#X text -48 84 Accepts grids in its inlet and produces integers via -its outlet.; -#X text -39 349 [#pack]; -#X text -39 382 Accepts integers in its inlets and produces a corresponding -grid via its outlet.; -#X text -40 421 It takes an integer as an argument to specify the number -of incoming integers and the corresponding number of Dimensions the -outgoing grid will have.; -#X obj 483 332 - 127; -#X obj -31 190 trigger bang bang; -#X obj 166 178 metro 100; -#X obj 89 345 display; -#X obj 174 272 print blah; -#X obj 145 316 print blah2; -#X obj 122 155 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 -1; -#X connect 1 0 2 0; -#X connect 1 1 5 0; -#X connect 1 2 6 0; -#X connect 2 0 16 0; -#X connect 3 0 4 0; -#X connect 3 1 1 0; -#X connect 5 0 8 1; -#X connect 6 0 8 2; -#X connect 8 0 11 0; -#X connect 10 0 3 0; -#X connect 16 0 8 0; -#X connect 18 0 19 0; -#X connect 18 0 20 0; -#X connect 18 0 21 0; -#X connect 22 0 18 0; diff --git a/externals/gridflow/doc/flow_classes/#yuv_to_rgb-icon.png b/externals/gridflow/doc/flow_classes/#yuv_to_rgb-icon.png Binary files differdeleted file mode 100644 index f5f10c8e..00000000 --- a/externals/gridflow/doc/flow_classes/#yuv_to_rgb-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/flow_classes/@complex_sq-icon.png b/externals/gridflow/doc/flow_classes/@complex_sq-icon.png Binary files differdeleted file mode 100644 index 7c9dd8d5..00000000 --- a/externals/gridflow/doc/flow_classes/@complex_sq-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/flow_classes/@global-icon.png b/externals/gridflow/doc/flow_classes/@global-icon.png Binary files differdeleted file mode 100644 index 5884d603..00000000 --- a/externals/gridflow/doc/flow_classes/@global-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/flow_classes/@join-icon.png b/externals/gridflow/doc/flow_classes/@join-icon.png Binary files differdeleted file mode 100644 index 461f626e..00000000 --- a/externals/gridflow/doc/flow_classes/@join-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/flow_classes/bindpatcher-icon.png b/externals/gridflow/doc/flow_classes/bindpatcher-icon.png Binary files differdeleted file mode 100644 index aed22ac1..00000000 --- a/externals/gridflow/doc/flow_classes/bindpatcher-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/flow_classes/demux-icon.png b/externals/gridflow/doc/flow_classes/demux-icon.png Binary files differdeleted file mode 100644 index d3937142..00000000 --- a/externals/gridflow/doc/flow_classes/demux-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/flow_classes/exec-help.pd b/externals/gridflow/doc/flow_classes/exec-help.pd deleted file mode 100644 index 816e29c2..00000000 --- a/externals/gridflow/doc/flow_classes/exec-help.pd +++ /dev/null @@ -1,13 +0,0 @@ -#N canvas 0 0 450 267 10; -#X text 259 22 GridFlow 0.8.0; -#X text 50 221 see also:; -#X obj 126 221 renamefile; -#X obj 241 221 unix_time; -#X obj 61 130 exec; -#X msg 35 78 shell xlogo &; -#X msg 144 78 shell ftp ac@artengine.ca &; -#X obj 209 221 ls; -#X text 141 121 Executes a program or script. It is not return a result -\, see the PureData shell after using the ftp command.; -#X connect 5 0 4 0; -#X connect 6 0 4 0; diff --git a/externals/gridflow/doc/flow_classes/exec-icon.png b/externals/gridflow/doc/flow_classes/exec-icon.png Binary files differdeleted file mode 100644 index 67cf913f..00000000 --- a/externals/gridflow/doc/flow_classes/exec-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/flow_classes/foreach-icon.png b/externals/gridflow/doc/flow_classes/foreach-icon.png Binary files differdeleted file mode 100644 index ccc9e766..00000000 --- a/externals/gridflow/doc/flow_classes/foreach-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/flow_classes/fork-icon.png b/externals/gridflow/doc/flow_classes/fork-icon.png Binary files differdeleted file mode 100644 index 4b4e8e00..00000000 --- a/externals/gridflow/doc/flow_classes/fork-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/flow_classes/fps-icon.png b/externals/gridflow/doc/flow_classes/fps-icon.png Binary files differdeleted file mode 100644 index e7e753f2..00000000 --- a/externals/gridflow/doc/flow_classes/fps-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/flow_classes/inv+-icon.png b/externals/gridflow/doc/flow_classes/inv+-icon.png Binary files differdeleted file mode 100644 index 37049db6..00000000 --- a/externals/gridflow/doc/flow_classes/inv+-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/flow_classes/inv_mul-icon.png b/externals/gridflow/doc/flow_classes/inv_mul-icon.png Binary files differdeleted file mode 100644 index 184203c2..00000000 --- a/externals/gridflow/doc/flow_classes/inv_mul-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/flow_classes/listappend-icon.png b/externals/gridflow/doc/flow_classes/listappend-icon.png Binary files differdeleted file mode 100644 index abf3316f..00000000 --- a/externals/gridflow/doc/flow_classes/listappend-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/flow_classes/listelement-help.pd b/externals/gridflow/doc/flow_classes/listelement-help.pd deleted file mode 100644 index 3b86fcf3..00000000 --- a/externals/gridflow/doc/flow_classes/listelement-help.pd +++ /dev/null @@ -1,61 +0,0 @@ -#N canvas 103 143 732 416 10; -#X obj 268 79 cnv 15 460 15 empty empty empty 20 12 0 14 -200249 -66577 -0; -#X obj 279 108 cnv 15 450 15 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X obj 8 381 cnv 15 720 30 empty empty empty 20 12 0 14 -200249 -66577 -0; -#X obj 8 5 cnv 15 720 15 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X obj 279 265 cnv 15 450 15 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X obj 268 25 cnv 15 460 15 empty empty empty 20 12 0 14 -200249 -66577 -0; -#X text 271 25 Arguments:; -#X obj 268 327 cnv 15 460 15 empty empty empty 20 12 0 14 -200249 -66577 -0; -#X text 271 327 Outlets:; -#X obj 8 25 cnv 15 250 15 empty empty empty 20 12 0 14 -200249 -66577 -0; -#X text 11 25 Usage:; -#X obj 8 46 cnv 15 250 30 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X obj 8 83 cnv 15 250 289 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X text 271 79 Inlets: (Read left to right \, inlet "0" being the leftmost) -; -#X text 282 108 0: (Leftmost); -#X text 282 265 1: (Rightmost); -#X text 12 5 SUMMERY:; -#X text 73 5 Outputs one element of a list as selected by an integer. -; -#X floatatom 23 320 5 0 0 0 - - -; -#X obj 23 251 listelement 0; -#X floatatom 109 216 5 0 0 0 - - -; -#X obj 100 320 display; -#X obj 159 320 print; -#X msg 61 166 1 3 hello 8 13; -#X obj 23 134 pack 0 0; -#X floatatom 74 103 5 0 0 0 - - -; -#X floatatom 23 103 5 0 0 0 - - -; -#X obj 87 52 listelement; -#X text 286 299 Integer - index (selects the position of an element). -; -#X text 16 387 GridFlow 0.8.0; -#X text 282 50 One - see inlet 0: (rightmost); -#X text 280 139 List - An element in a list is chosen by the index -(an integer that selects the position of an element). This element -is sent to the outlet and can be viewed in the console using the print -object or in a number box if displaying an integer. For example: integer -"0" selects and outputs the first element in a list \, integer "1" -selects and outputs the second element in a list \, integers "-1" selects -and outputs the last element in a list.; -#X text 287 356 One - see inlet 0: (leftmost); -#X connect 19 0 18 0; -#X connect 19 0 21 0; -#X connect 19 0 22 0; -#X connect 20 0 19 1; -#X connect 23 0 19 0; -#X connect 24 0 19 0; -#X connect 25 0 24 1; -#X connect 26 0 24 0; diff --git a/externals/gridflow/doc/flow_classes/listelement-icon.png b/externals/gridflow/doc/flow_classes/listelement-icon.png Binary files differdeleted file mode 100644 index 00a3a1c5..00000000 --- a/externals/gridflow/doc/flow_classes/listelement-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/flow_classes/listflatten-icon.png b/externals/gridflow/doc/flow_classes/listflatten-icon.png Binary files differdeleted file mode 100644 index e6e9679e..00000000 --- a/externals/gridflow/doc/flow_classes/listflatten-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/flow_classes/listlength-icon.png b/externals/gridflow/doc/flow_classes/listlength-icon.png Binary files differdeleted file mode 100644 index dbde632a..00000000 --- a/externals/gridflow/doc/flow_classes/listlength-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/flow_classes/listmake-icon.png b/externals/gridflow/doc/flow_classes/listmake-icon.png Binary files differdeleted file mode 100644 index 3e7c5f62..00000000 --- a/externals/gridflow/doc/flow_classes/listmake-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/flow_classes/listprepend-icon.png b/externals/gridflow/doc/flow_classes/listprepend-icon.png Binary files differdeleted file mode 100644 index a42afce0..00000000 --- a/externals/gridflow/doc/flow_classes/listprepend-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/flow_classes/listreverse-icon.png b/externals/gridflow/doc/flow_classes/listreverse-icon.png Binary files differdeleted file mode 100644 index ec4d2a04..00000000 --- a/externals/gridflow/doc/flow_classes/listreverse-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/flow_classes/listsublist-icon.png b/externals/gridflow/doc/flow_classes/listsublist-icon.png Binary files differdeleted file mode 100644 index 4f9c1535..00000000 --- a/externals/gridflow/doc/flow_classes/listsublist-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/flow_classes/ls-help.pd b/externals/gridflow/doc/flow_classes/ls-help.pd deleted file mode 100644 index 5bc04c39..00000000 --- a/externals/gridflow/doc/flow_classes/ls-help.pd +++ /dev/null @@ -1,21 +0,0 @@ -#N canvas 293 272 624 295 10; -#X text 259 22 GridFlow 0.8.0; -#X text 30 266 see also:; -#X obj 106 267 renamefile; -#X obj 189 267 unix_time; -#X obj 67 130 ls; -#X obj 67 48 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 --1; -#X obj 25 186 listlength; -#X floatatom 25 220 5 0 0 0 - - -; -#X obj 107 187 display; -#X obj 265 267 exec; -#X msg 67 81 symbol /home; -#X text 157 118 Similar to the Unix command 'ls'. Returns the filenames -in a directory. May be used with [listlength] to determine the number -of files in a directory.; -#X connect 4 0 6 0; -#X connect 4 0 8 0; -#X connect 5 0 10 0; -#X connect 6 0 7 0; -#X connect 10 0 4 0; diff --git a/externals/gridflow/doc/flow_classes/ls-icon.png b/externals/gridflow/doc/flow_classes/ls-icon.png Binary files differdeleted file mode 100644 index 162e080f..00000000 --- a/externals/gridflow/doc/flow_classes/ls-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/flow_classes/messageappend-icon.png b/externals/gridflow/doc/flow_classes/messageappend-icon.png Binary files differdeleted file mode 100644 index c8aecc6a..00000000 --- a/externals/gridflow/doc/flow_classes/messageappend-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/flow_classes/messageprepend-icon.png b/externals/gridflow/doc/flow_classes/messageprepend-icon.png Binary files differdeleted file mode 100644 index a398ff09..00000000 --- a/externals/gridflow/doc/flow_classes/messageprepend-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/flow_classes/oneshot-icon.png b/externals/gridflow/doc/flow_classes/oneshot-icon.png Binary files differdeleted file mode 100644 index be0b9829..00000000 --- a/externals/gridflow/doc/flow_classes/oneshot-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/flow_classes/pd_netreceive-icon.png b/externals/gridflow/doc/flow_classes/pd_netreceive-icon.png Binary files differdeleted file mode 100644 index 2a008238..00000000 --- a/externals/gridflow/doc/flow_classes/pd_netreceive-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/flow_classes/pd_netsend-icon.png b/externals/gridflow/doc/flow_classes/pd_netsend-icon.png Binary files differdeleted file mode 100644 index 1ba290b4..00000000 --- a/externals/gridflow/doc/flow_classes/pd_netsend-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/flow_classes/pingpong-icon.png b/externals/gridflow/doc/flow_classes/pingpong-icon.png Binary files differdeleted file mode 100644 index f84c9c2f..00000000 --- a/externals/gridflow/doc/flow_classes/pingpong-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/flow_classes/plotter_control-help.pd b/externals/gridflow/doc/flow_classes/plotter_control-help.pd deleted file mode 100644 index 1381d341..00000000 --- a/externals/gridflow/doc/flow_classes/plotter_control-help.pd +++ /dev/null @@ -1,64 +0,0 @@ -#N canvas 423 134 724 349 10; -#X text 557 11 GridFlow 0.8.0; -#X obj 92 99 r foo; -#X msg 557 173 print_from_ascii $*; -#X msg 557 52 print hello_world; -#X msg 284 54 pu; -#X msg 284 102 pd; -#X msg 285 205 sp 0; -#X msg 284 154 pa 120 160; -#X obj 557 124 unix_time; -#X obj 557 148 @export_list; -#X obj 557 104 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 --1; -#X obj 74 255 comport 0 9600; -#X obj 76 129 plotter_control; -#X obj 93 158 print hpgl_commands; -#X obj 557 196 s foo; -#X text 324 54 pen up; -#X text 324 102 pen down; -#X obj 557 74 s foo; -#X text 368 154 move to absolute position; -#N canvas 0 0 450 300 draw_a_rectangle 0; -#X obj 120 196 @export_list; -#X obj 128 159 @ * ( 110 320 ); -#X msg 31 156 pu \, sp 0; -#X obj 28 97 fork; -#X msg 114 222 pd \, pa \$2 \$1; -#X msg 129 100 sp 5 \, pu \, pa 0 0 \, other si 320 320; -#X obj 115 252 s foo; -#X obj 33 71 fork; -#X obj 30 126 fork; -#X msg 128 134 0 0 \, 0 1 \, 1 1 \, 1 0 \, 0 0; -#X obj 31 35 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 --1; -#X connect 0 0 4 0; -#X connect 1 0 0 0; -#X connect 2 0 6 0; -#X connect 3 0 8 0; -#X connect 3 1 9 0; -#X connect 4 0 6 0; -#X connect 7 0 3 0; -#X connect 7 1 5 0; -#X connect 8 0 2 0; -#X connect 9 0 1 0; -#X connect 10 0 7 0; -#X restore 557 228 pd draw_a_rectangle; -#X text 76 9 plotter_control; -#X text 74 280 use the comport object to interface to the plotter; -#X obj 285 227 s foo; -#X obj 284 176 s foo; -#X obj 284 124 s foo; -#X obj 284 76 s foo; -#X text 328 207 (0...6) remove/change the pen; -#X connect 1 0 12 0; -#X connect 2 0 14 0; -#X connect 3 0 17 0; -#X connect 4 0 25 0; -#X connect 5 0 24 0; -#X connect 6 0 22 0; -#X connect 7 0 23 0; -#X connect 8 0 9 0; -#X connect 9 0 2 0; -#X connect 10 0 8 0; -#X connect 12 0 13 0; diff --git a/externals/gridflow/doc/flow_classes/plotter_control-icon.png b/externals/gridflow/doc/flow_classes/plotter_control-icon.png Binary files differdeleted file mode 100644 index 3e33d7dd..00000000 --- a/externals/gridflow/doc/flow_classes/plotter_control-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/flow_classes/printargs-icon.png b/externals/gridflow/doc/flow_classes/printargs-icon.png Binary files differdeleted file mode 100644 index d8ed7ee2..00000000 --- a/externals/gridflow/doc/flow_classes/printargs-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/flow_classes/range-icon.png b/externals/gridflow/doc/flow_classes/range-icon.png Binary files differdeleted file mode 100644 index 45de1556..00000000 --- a/externals/gridflow/doc/flow_classes/range-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/flow_classes/renamefile-help.pd b/externals/gridflow/doc/flow_classes/renamefile-help.pd deleted file mode 100644 index 70d9937c..00000000 --- a/externals/gridflow/doc/flow_classes/renamefile-help.pd +++ /dev/null @@ -1,9 +0,0 @@ -#N canvas 383 288 441 244 10; -#X obj 50 120 renamefile; -#X msg 50 76 list current_name new_name; -#X obj 128 206 ls; -#X text 42 208 also see :; -#X text 313 21 GridFlow 0.8.0; -#X text 45 157 * The path should correspond to the location of the -file from where pd is started; -#X connect 1 0 0 0; diff --git a/externals/gridflow/doc/flow_classes/renamefile-icon.png b/externals/gridflow/doc/flow_classes/renamefile-icon.png Binary files differdeleted file mode 100644 index 58201e14..00000000 --- a/externals/gridflow/doc/flow_classes/renamefile-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/flow_classes/rubyarray.png b/externals/gridflow/doc/flow_classes/rubyarray.png Binary files differdeleted file mode 100644 index 2d3ad9e5..00000000 --- a/externals/gridflow/doc/flow_classes/rubyarray.png +++ /dev/null diff --git a/externals/gridflow/doc/flow_classes/rubyprint-icon.png b/externals/gridflow/doc/flow_classes/rubyprint-icon.png Binary files differdeleted file mode 100644 index 0ce6df14..00000000 --- a/externals/gridflow/doc/flow_classes/rubyprint-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/flow_classes/rubysprintf-icon.png b/externals/gridflow/doc/flow_classes/rubysprintf-icon.png Binary files differdeleted file mode 100644 index c7a5a249..00000000 --- a/externals/gridflow/doc/flow_classes/rubysprintf-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/flow_classes/shunt-icon.png b/externals/gridflow/doc/flow_classes/shunt-icon.png Binary files differdeleted file mode 100644 index ebf40bac..00000000 --- a/externals/gridflow/doc/flow_classes/shunt-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/flow_classes/unix_time-help.pd b/externals/gridflow/doc/flow_classes/unix_time-help.pd deleted file mode 100644 index d80b4c19..00000000 --- a/externals/gridflow/doc/flow_classes/unix_time-help.pd +++ /dev/null @@ -1,29 +0,0 @@ -#N canvas 134 38 639 312 10; -#X obj 91 113 unix_time; -#X obj 91 82 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 --1; -#X obj 8 172 #export_list; -#X obj 91 40 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1 -; -#X obj 9 246 display; -#X obj 91 58 metro 500; -#X text 60 243 <-- Ascii format for the date; -#X obj 308 221 display; -#X obj 123 171 display; -#X obj 307 195 display; -#X obj 306 170 rubysprintf %04d%02d%02d-%02d%02d%02d; -#X obj 8 282 cnv 15 720 30 empty empty empty 20 12 0 14 -200249 -66577 -0; -#X text 16 289 GridFlow 0.8.0; -#X obj 8 5 cnv 15 720 15 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X text 9 5 SUMMARY : the unixtime command; -#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; diff --git a/externals/gridflow/doc/flow_classes/unix_time-icon.png b/externals/gridflow/doc/flow_classes/unix_time-icon.png Binary files differdeleted file mode 100644 index 1d85db8d..00000000 --- a/externals/gridflow/doc/flow_classes/unix_time-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/format.html b/externals/gridflow/doc/format.html deleted file mode 100644 index 243e508e..00000000 --- a/externals/gridflow/doc/format.html +++ /dev/null @@ -1,485 +0,0 @@ -<html><head> -<!-- $Id: format.html,v 1.2 2006-03-15 04:44:50 matju Exp $ --> -<title>GridFlow 0.8.1 - Reference Manual: Format Classes</title> -<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> -<link rel="stylesheet" href="gridflow.css" type="text/css"> -</head> -<body bgcolor="#FFFFFF" - leftmargin="0" topmargin="0" - marginwidth="0" marginheight="0"> -<table width="100%" bgcolor="white" border="0" cellspacing="2"> -<tr><td colspan="4" bgcolor="#082069"> -<img src="images/titre_gridflow.png" width="253" height="23"> -</td></tr><tr><td> </td></tr> -<tr><td colspan="4" bgcolor="black"> -<img src="images/black.png" width="1" height="2"></td></tr> -<tr><td colspan="4" height="16"> - <h4>GridFlow 0.8.1 - Reference Manual: Format Classes</h4> -</td></tr> -<tr> - <td width="5%" rowspan="2"> </td> - <td width="15%" height="23"> </td> - <td width="80%" height="23"> </td> - <td width="5%" height="23"> </td> -</tr> -<tr><td colspan="2"><div cols="1"><h4><a href="#Objects_for_Input/Output">Objects for Input/Output</a></h4><ul> -<li><a href="##in"><img src="flow_classes/%23in-icon.png" alt="[#in]" border="0"></a></li> -<li><a href="##out"><img src="flow_classes/%23out-icon.png" alt="[#out]" border="0"></a></li> -<li><a href="##peephole"><img src="flow_classes/%23peephole-icon.png" alt="[#peephole]" border="0"></a></li> -<li><a href="##mouse"><img src="flow_classes/%23mouse-icon.png" alt="[#mouse]" border="0"></a></li> -<li><a href="##camera"><img src="flow_classes/%23camera-icon.png" alt="[#camera]" border="0"></a></li> -</ul> -<h4><a href="#Picture/Movie_Formats">Picture/Movie Formats</a></h4><ul> -<li><a href="#format ppm #in/#out"><img src="flow_classes/format ppm %23in/%23out-icon.png" alt="[format ppm #in/#out]" border="0"></a></li> -<li><a href="#format targa #in/#out"><img src="flow_classes/format targa %23in/%23out-icon.png" alt="[format targa #in/#out]" border="0"></a></li> -<li><a href="#format jpeg #in/#out"><img src="flow_classes/format jpeg %23in/%23out-icon.png" alt="[format jpeg #in/#out]" border="0"></a></li> -<li><a href="#format png #in"><img src="flow_classes/format png %23in-icon.png" alt="[format png #in]" border="0"></a></li> -<li><a href="#format quicktime #in/#out"><img src="flow_classes/format quicktime %23in/%23out-icon.png" alt="[format quicktime #in/#out]" border="0"></a></li> -<li><a href="#format mpeg #in"><img src="flow_classes/format mpeg %23in-icon.png" alt="[format mpeg #in]" border="0"></a></li> -<li><a href="#format grid #in/#out"><img src="flow_classes/format grid %23in/%23out-icon.png" alt="[format grid #in/#out]" border="0"></a></li> -</ul> -<h4><a href="#Acquisition_Devices">Acquisition Devices</a></h4><ul> -<li><a href="#format videodev #in"><img src="flow_classes/format videodev %23in-icon.png" alt="[format videodev #in]" border="0"></a></li> -</ul> -<h4><a href="#Window_Output">Window Output</a></h4><ul> -<li><a href="#format x11 #in/#out"><img src="flow_classes/format x11 %23in/%23out-icon.png" alt="[format x11 #in/#out]" border="0"></a></li> -<li><a href="#format quartz #out"><img src="flow_classes/format quartz %23out-icon.png" alt="[format quartz #out]" border="0"></a></li> -<li><a href="#format sdl #out"><img src="flow_classes/format sdl %23out-icon.png" alt="[format sdl #out]" border="0"></a></li> -<li><a href="#format aalib #out"><img src="flow_classes/format aalib %23out-icon.png" alt="[format aalib #out]" border="0"></a></li> -<li><a href="#format window #out"><img src="flow_classes/format window %23out-icon.png" alt="[format window #out]" border="0"></a></li> -</ul> -<br><br> -</div></td></tr> <tr><td colspan="4" bgcolor="black"> -<img src="images/black.png" width="1" height="2"></td></tr> -<tr><td colspan="4"><a name="Objects_for_Input/Output"></a><h4>Objects for Input/Output</h4></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="#in">#in</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/%23in-icon.png" alt="[#in]" border="0"><br clear="left"><br><br><a href="#inout"><img src="images/see_screenshot.png" border="0"></a><br clear="left"><br></td><td><br> - <br><b>method</b> init <b>(</b>format<b>, </b>format_specific_part...<b>)</b> - If no arguments given, creates an input object for an unspecified - format. You then need to use the <kbd><font color="#007777">"open"</font></kbd> command to link - a format handler to it. - If arguments given, the <kbd><font color="#007777">"open"</font></kbd> command is immediately called - with those arguments. - Remember that most formats produce Dim[rows,columns,3] grids with - 0-255 values. (Most.) <br> - <br><b>inlet 0 </b><b>method</b> open <b>(</b>format<b>, </b>format_specific_part...<b>)</b> - This is the command that gives a particular resource - to a <kbd><font color="#007777">[#out]</font></kbd> object. This is done through a "format" - (there is a list of formats in this manual). The other - arguments depend on the chosen format. The format may - be a file format or a protocol or a hardware device, etc. - The format called "file" is a special shortcut that autodetects the - type of file (by name suffix) and picks up the appropriate handler. <br> - <br><b>inlet 0 </b><b>method</b> open <b>(</b>filename<b>)</b> - This is a shortcut for <kbd><font color="#007777">"open file"</font></kbd> followed by a filename. - The filename must contain a dot, else it will be seen as a handler name. <br> - <br><b>inlet 0 </b><b>method</b> close <b>(</b><b>)</b> - close may be necessary if you operate on <kbd><font color="#007777">"/dev/video"</font></kbd>, - which can only be read by one at a time. otherwise it's - usually not necessary. <br> - <br><b>inlet 0 </b><b>method</b> int <b>(</b>frame_number<b>)</b> - selects one picture from a multi-picture format - and then does the same as a bang. <br> - <br><b>inlet 0 </b><b>method</b> set <b>(</b>frame_number<b>)</b> - selects one picture from a multi-picture format, - to be displayed by the next bang. <br> - <br><b>inlet 0 </b><b>method</b> bang <b>(</b><b>)</b> - sends a grid through the outlet. the grid may be the - result of reading from a file, acquiring from a device, - capturing from the screen etc. - this is format-specific. most formats - produce grid(rows columns {red green blue}). - 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. - see section "External Picture Formats". <br> - <br><b>inlet 0 </b><b>method</b> option <b>(</b><i>symbol</i> selector<b>, </b>stuff...<b>)</b> - Obsolete. the word "option" is optional now. <br> - <br><b>inlet 0 </b><b>method</b> rewind <b>(</b><b>)</b> - rewinds to beginning of file if applicable. <br> - <br><b>inlet 0 </b><b>method</b> loop <b>(</b><i>bool</i> flag<b>)</b> - controls the automatic looping of movies. <br> - <br><b>outlet 1 </b><b>method</b> int <b>(</b><b>)</b> - frame number of frame just sent, - for formats that have frame numbers. <br> - <br><b>outlet 1 </b><b>method</b> bang <b>(</b><b>)</b> - tried to read a frame that does not exist - (signals end of file) <br> - <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="#out">#out</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/%23out-icon.png" alt="[#out]" border="0"><br clear="left"><br><br><a href="#inout"><img src="images/see_screenshot.png" border="0"></a><br clear="left"><br></td><td><br> - <br><b>method</b> init <b>(</b>format<b>, </b>format_specific_part...<b>)</b> - If no arguments given, creates an output object for an unspecified - format. You then need to use the <kbd><font color="#007777">"open"</font></kbd> command to link - a format handler to it. - If arguments given, the <kbd><font color="#007777">"open"</font></kbd> command is immediately called - with those arguments. - Remember that most formats expect dim(rows,columns,3) grids with - 0-255 values. (Most.) <br> - <br><b>method</b> init <b>(</b><i>integer</i> rows<b>, </b><i>integer</i> columns<b>)</b> - This alternate way to create an <kbd><font color="#007777">[#out]</font></kbd> automatically calls <kbd><font color="#007777">"open window"</font></kbd> and <kbd><font color="#007777">"out_size <i>rows columns</i>"</font></kbd>. <br> - <br><b>inlet 0 </b><b>method</b> open <b>(</b>format<b>, </b>format_specific_part...<b>)</b> - This is the command that gives a particular resource - to a <kbd><font color="#007777">[#out]</font></kbd> object. This is done through a "format" - (there is a list of formats in this manual). The other - arguments depend on the chosen format. The format may - be a file format or a protocol or a hardware device, etc. <br> - <br><b>inlet 0 </b><b>method</b> open file <b>(</b><b>)</b> - The format called "file" is a special shortcut that autodetects the - type of file (by name suffix) and picks up the appropriate handler. <br> - <br><b>inlet 0 </b><b>method</b> open <b>(</b>filename<b>)</b> - This is a shortcut for "open file" followed by a filename. - The filename must contain a dot, else it will be seen as a handler name. <br> - <br><b>inlet 0 </b><b>method</b> grid <b>(</b><i>grid</i> grid<b>)</b> - this is format-specific. most formats - expect grid(rows columns {red green blue}). - In formats that write to a file, sending a 2nd picture - overwrites the first. - see section "External Picture Formats". <br> - <br><b>inlet 0 </b><b>method</b> close <b>(</b><b>)</b> - closes the file. usually not necessary. <br> - <br><b>inlet 0 </b><b>method</b> option <b>(</b><i>symbol</i> selector<b>, </b>stuff...<b>)</b> - Obsolete. Omit the word "option" now. <br> - <br><b>inlet 0 </b><b>method</b> timelog <b>(</b><i>0,1</i> status<b>)</b> - when status=1, current time (unix clock) and time since last - frame-end are printed in the console. when status=0, it is off. - default is 0. <br> - <br><b>inlet 0 </b><b>method</b> rewind <b>(</b><b>)</b> - rewinds to beginning of file if applicable. - will overwrite the previous data. <br> - <br><b>outlet 0 </b><b>method</b> bang <b>(</b><b>)</b> - sent when a complete grid has been received. <br> - <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="#peephole">#peephole</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/%23peephole-icon.png" alt="[#peephole]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> - <p> - This object class only works with a X11-based version of Pd. - (e.g. on Linux, BSD, but not MacOS X). </p> <p>Similar to <kbd><font color="#007777">[#out window]</font></kbd>, except it creates an inset in the patch you put it - in, and a scaled version of the picture appears in the inset. It also emits the same messages - as <kbd><font color="#007777">[#out window]</font></kbd> and automatically scales cursor position according to the current scale factor. - The scale factor is decided automatically. </p> <br><b>method</b> init <b>(</b><i>int</i> height<b>, </b><i>int</i> width<b>)</b> <br> - <p>All other methods are as in <kbd><font color="#007777">[#out window]</font></kbd>.</p> <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="#mouse">#mouse</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/%23mouse-icon.png" alt="[#mouse]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> - - This will process the "position" messages emitted by <kbd><font color="#007777">[#out]</font></kbd> or <kbd><font color="#007777">[#peephole]</font></kbd> in - useful ways. <br><b>outlet 0 </b><b>method</b> list <b>(</b><b>)</b> - y,x coords of a click <br> - <br><b>outlet 1 </b><b>method</b> list <b>(</b><b>)</b> - y,x coords of a drag (any button is kept pressed) <br> - <br><b>outlet 2 </b><b>method</b> list <b>(</b><b>)</b> - y,x coords of an unclick <br> - <br><b>outlet 3 </b><b>method</b> list <b>(</b><b>)</b> - y,x coords of a move (no button is pressed) <br> - <br><b>outlet 4 </b><b>method</b> float <b>(</b><b>)</b> button 1 status<br> - <br><b>outlet 5 </b><b>method</b> float <b>(</b><b>)</b> button 2 status<br> - <br><b>outlet 6 </b><b>method</b> float <b>(</b><b>)</b> button 3 status<br> - <br><b>outlet 7 </b><b>method</b> float <b>(</b><b>)</b> - wheel difference: -1 = roll up; 1 = roll down. <br> - <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="#camera">#camera</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/%23camera-icon.png" alt="[#camera]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> - - Works about like <kbd><font color="#007777">[#in videodev]</font></kbd> except you can right-click-open it to access all of the - camera settings visually. <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td> </td></tr> - <tr><td colspan="4" bgcolor="black"> -<img src="images/black.png" width="1" height="2"></td></tr> -<tr><td colspan="4"><a name="Picture/Movie_Formats"></a><h4>Picture/Movie Formats</h4></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="format ppm #in/#out">format ppm #in/#out</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/format ppm %23in/%23out-icon.png" alt="[format ppm #in/#out]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> - <p>Subformat P6 only. - Max-number can only be 255 (24-bit RGB). </p> <br><b>method</b> open ppm file <b>(</b><i>symbol</i> filename<b>)</b> - opens the specified file, taken from the current - directory. <br> - <br><b>method</b> open ppm gzfile <b>(</b><i>symbol</i> filename<b>)</b> - same but for .ppm.gz files <br> - <br><b>method</b> grid <b>(</b><i>grid(rows columns {r g b})</i> grid<b>)</b> - values 0-255 <br> - <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="format targa #in/#out">format targa #in/#out</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/format targa %23in/%23out-icon.png" alt="[format targa #in/#out]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> - <p>Support for RGB-24 (3 channels) and RGBA-32 (4 channels)</p> <br><b>method</b> open targa file <b>(</b><i>symbol</i> filename<b>)</b> - opens the specified file, taken from the current - directory. <br> - <br><b>method</b> open targa gzfile <b>(</b><i>symbol</i> filename<b>)</b> - same but for .tga.gz files <br> - <br><b>method</b> grid <b>(</b><i>grid(rows columns 3)</i> grid<b>)</b> RGB-24<br> - <br><b>method</b> grid <b>(</b><i>grid(rows columns 4)</i> grid<b>)</b> RGBA-32<br> - <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="format jpeg #in/#out">format jpeg #in/#out</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/format jpeg %23in/%23out-icon.png" alt="[format jpeg #in/#out]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> - <p>Support for RGB non-progressive</p> <br><b>method</b> open jpeg file <b>(</b><i>symbol</i> filename<b>)</b> - opens the specified file, taken from the current - directory. <br> - <br><b>method</b> grid <b>(</b><i>grid(rows columns 3)</i> grid<b>)</b> RGB-24 <br> - <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="format png #in">format png #in</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/format png %23in-icon.png" alt="[format png #in]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> - <p>Support for RGB non-progressive</p> <br><b>method</b> open png file <b>(</b><i>symbol</i> filename<b>)</b> - opens the specified file, taken from the current - directory. <br> - <br><b>method</b> grid <b>(</b><i>grid(rows columns 1)</i> grid<b>)</b> Y-8 (greyscale)<br> - <br><b>method</b> grid <b>(</b><i>grid(rows columns 2)</i> grid<b>)</b> YA-16 (greyscale and transparency)<br> - <br><b>method</b> grid <b>(</b><i>grid(rows columns 3)</i> grid<b>)</b> RGB-24 (colour)<br> - <br><b>method</b> grid <b>(</b><i>grid(rows columns 4)</i> grid<b>)</b> RGBA-32 (colour and transparency)<br> - <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="format quicktime #in/#out">format quicktime #in/#out</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/format quicktime %23in/%23out-icon.png" alt="[format quicktime #in/#out]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> - <p>Support for .mov files.</p> <p>This format supports frame-seek and frame-tell.</p> <p>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.</p> <p>Some versions of those libraries may include support for different codecs, - and some also may support entirely different wrapper formats such as AVI.</p> <p>On Macintosh, Apple QuickTime is used instead, but several of the following - messages may not be available.</p> <br><b>method</b> open quicktime file <b>(</b><i>symbol</i> filename<b>)</b> <br> - <br><b>method</b> codec <b>(</b><i>symbol</i> codec<b>)</b> - 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 <kbd><font color="#007777">[#out]</font></kbd>. 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. <br> - <br><b>method</b> parameter <b>(</b><i>symbol</i> key<b>, </b><i>int</i> value<b>)</b> - Sets special codec-specific settings. - For example: <kbd><font color="#007777">"parameter jpeg_quality 75"</font></kbd> <br> - <br><b>method</b> framerate <b>(</b><i>int</i> fps<b>)</b> - Sets the framerate of the file. - This is not used by GridFlow when reading a file, but other - programs usually care. <br> - <br><b>method</b> colorspace <b>(</b><i>symbol</i> colorspace<b>)</b> - Allowed values are rgb, rgba, bgr, bgra, yuv, yuva. - Normally you don't need this. <br> - <br><b>method</b> size <b>(</b><i>int</i> height<b>, </b><i>int</i> width<b>)</b> - Forces a window size when writing. Usually this has to be used <u>after</u> - setting the framerate and codec and <u>before</u> setting the codec-parameters. - (Strange. Sorry.) <br> - <br><b>method</b> force_size <b>(</b><i>int</i> height<b>, </b><i>int</i> width<b>)</b> - forces a window size when reading. - this is a workaround for a problem in HW-QuickTime. <br> - <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="format mpeg #in">format mpeg #in</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/format mpeg %23in-icon.png" alt="[format mpeg #in]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> - <p>support for .mpeg files</p> <p>this format supports frame-seek and frame-tell.</p> <p>Two different libraries are available for dealing with - MPEG files. Those have different details, capabilities and quirks.</p> <p>In any case, GridFlow does not support importing audio from - those files.</p> <p>If you use the HeroineWarrior library, you may open several - mpeg files at once, but not with the GregWard library.</p> <p>Libraries may scream error messages in a rude way.</p> <p>By opposition to PPM and TARGA, this format driver only - allows a single MPEG stream per file (you cannot "cat" - several MPEG files together). </p> <p>Supports Rewind and Frame Select.</p> <br><b>method</b> open mpeg file <b>(</b><i>symbol</i> filename<b>)</b> - opens the specified file, taken from the current - directory. <br> - <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="format grid #in/#out">format grid #in/#out</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/format grid %23in/%23out-icon.png" alt="[format grid #in/#out]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> - <p> - This is GridFlow's special file format. This is the only I/O - format that can hold anything that the <kbd><font color="#007777">[#store]</font></kbd> object can. </p> <p> - This is the picture format that would support TCP connections - if that feature actually worked. More on this later. </p> <br><b>method</b> open grid file <b>(</b><i>symbol</i> filename<b>)</b> - opens the specified file, taken from the current - directory. <br> - <br><b>method</b> open grid gzfile <b>(</b><i>symbol</i> filename<b>)</b> - same but for .grid.gz files <br> - <br><b>method</b> open grid tcp <b>(</b><i>symbol</i> hostname<b>, </b><i>integer</i> port<b>)</b> - dials an specified hostname/port on the InterNet or - compatible network. the TCP protocol is used. <br> - <br><b>method</b> open grid tcpserver <b>(</b><i>integer</i> port<b>)</b> - waits for a call (and answers) for this port on the - local machine via InterNet or compatible network. - Answers the call. <br> - <br><b>method</b> type int32 <b>(</b><b>)</b> - output will be as 32 bit signed integers. <br> - <br><b>method</b> type uint8 <b>(</b><b>)</b> - output will be as 8 bit unsigned integers. <br> - <br><b>method</b> headerful <b>(</b><b>)</b> - cancels "headerless" (and back to reading .grid) <br> - <br><b>method</b> headerless <b>(</b>dimensions...<b>)</b> - 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: <kbd><font color="#007777">type</font></kbd> and <kbd><font color="#007777">endian</font></kbd>. <br> - <p>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: <br><b>method</b> endian <b>(</b><b>)</b> <ul><li><b>1</b> : big: - A number will be written starting with the biggest digit. - This is the natural way on the Macintosh, Sun, Amiga, and so on. </li> <li><b>2</b> : little: - A number will be written starting with the smallest digit. - This is the natural way on the Intel 386/Pentium. </li> <li><b>3</b> : 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. </li> </ul> <br> - </p> <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td> </td></tr> - <tr><td colspan="4" bgcolor="black"> -<img src="images/black.png" width="1" height="2"></td></tr> -<tr><td colspan="4"><a name="Acquisition_Devices"></a><h4>Acquisition Devices</h4></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="format videodev #in">format videodev #in</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/format videodev %23in-icon.png" alt="[format videodev #in]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> - <br><b>method</b> open <b>(</b>device<b>)</b> <br> - <p>Video4Linux-1 devices, RGB-24 only. Variable picture size.</p> <p>We have been testing it using cards of the BT-848 family, - such as Miro DC10plus and Hauppauge WinTV, using the <kbd><font color="#007777">bttv.o</font></kbd> linux driver. - Also we have been testing using Logitech QuickCam (and similar Labtec hardware), - but don't use the <kbd><font color="#007777">qce-ga</font></kbd> driver, which is buggy and obsolete: the <kbd><font color="#007777">qc-usb</font></kbd> - works better.</p> <p>Some hardware doesn't support RGB, so you may have to select a YUV colorspace - (see below) and then use <kbd><font color="#007777">[#yuv_to_rgb]</font></kbd>. Don't forget to also do <kbd><font color="#007777">[# min 255]</font></kbd> and <kbd><font color="#007777">[# max 0]</font></kbd>. </p> <p>If for some reason there's a bug that causes a driver to produce BGR instead of RGB, - so that red and blue are swapped, you can swap them back by filtering through a RGB-BGR - converter, such as <kbd><font color="#007777">[#inner * + 0 {3 3 # 0 0 1 0 1 0 1 0 0}]</font></kbd>.</p> <p>color adjustments: <br><b>method</b> brightness <b>(</b><i>0-65535</i> level<b>)</b> <br> - <br><b>method</b> hue <b>(</b><i>0-65535</i> level<b>)</b> <br> - <br><b>method</b> colour <b>(</b><i>0-65535</i> level<b>)</b> <br> - <br><b>method</b> contrast <b>(</b><i>0-65535</i> level<b>)</b> <br> - <br><b>method</b> whiteness <b>(</b><i>0-65535</i> level<b>)</b> <br> - </p> <br><b>method</b> get <b>(</b><i>symbol</i> attr<b>)</b> - gets a specific attribute. a message is sent through right outlet. - valid attributes are: brightness, hue, colour, contrast, whiteness. <br> - <br><b>method</b> get <b>(</b><b>)</b> - gets all attributes. <br> - <p>other options: <br><b>method</b> channel <b>(</b><i>integer</i> <b>)</b> <br> - <br><b>method</b> tuner <b>(</b><i>integer</i> <b>)</b> <br> - <br><b>method</b> norm <b>(</b><i>integer</i> <b>)</b> <br> - <br><b>method</b> frequency <b>(</b><i>integer</i> <b>)</b> <br> - <br><b>method</b> transfer <b>(</b><i>symbol(read|mmap)</i> <b>, </b><i>integer</i> <b>)</b> <ul> <li><b>1</b> : mmap: - This is the normal (and fast) way of transferring pictures - from the camera. </li> <li><b>2</b> : read: - Some cameras/drivers only support this instead of mmap. </li></ul> - 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. <br> - <br><b>method</b> colorspace <b>(</b><i>symbol</i> colorspace<b>)</b> - Allowed values are: RGB24, YUV420P. - Use this if your driver doesn't support RGB24. <br> - <br><b>method</b> size <b>(</b>height<b>, </b>width<b>)</b> - sets the input size, especially when using a video digitalizer - device. <br> - </p> <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td> </td></tr> - <tr><td colspan="4" bgcolor="black"> -<img src="images/black.png" width="1" height="2"></td></tr> -<tr><td colspan="4"><a name="Window_Output"></a><h4>Window Output</h4></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="format x11 #in/#out">format x11 #in/#out</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/format x11 %23in/%23out-icon.png" alt="[format x11 #in/#out]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> - <p>supports 15,16,24,32-bit truecolor displays</p> <p>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.</p> <p>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.</p> <br><b>method</b> open x11 <b>(</b><b>)</b> - synonym of "open x11 here". <br> - <br><b>method</b> open x11 here <b>(</b><b>)</b> - connects to the default X11 server, - according to your environment variable "DISPLAY". <br> - <br><b>method</b> open x11 local <b>(</b><i>integer</i> display_number<b>)</b> - connects to a display server on this machine. <br> - <br><b>method</b> open x11 remote <b>(</b><i>symbol</i> host_name<b>, </b><i>integer</i> display_number<b>)</b> - connects to a remote X11 display server using TCP. - Sorry, IP addresses are not supported. - Port number will be 6000 plus the display number, because - of the X11 standard. <br> - <br><b>method</b> grid <b>(</b><i>grid(rows columns {red green blue})</i> grid<b>)</b> - 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". <br> - <p> - Destroying the object (or sending "close") should close the window. </p> <p>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.</p> <p>only one window may be used per connection (to simplify matters; - this doesn't reduce flexibility).</p> <p>there is an additional argument that may be added to every <kbd><font color="#007777">"open"</font></kbd> 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. <kbd><font color="#007777">0x28003ff</font></kbd>, you may connect to - an existing window; you can find out the number of a window by using - a tool like <kbd><font color="#007777">xwininfo</font></kbd>, part of X11 standard tools.</p> <br><b>method</b> out_size <b>(</b><i>integer</i> height<b>, </b><i>integer</i> width<b>)</b> - changes the window's size, just like sending a grid - dim(height,width,3) would. - this affects the size of screen captures too. <br> - <br><b>method</b> draw <b>(</b><b>)</b> - forces a redraw of the window's contents. <br> - <br><b>method</b> autodraw <b>(</b><i>0,1,2</i> level<b>)</b> <ul> <li><b>0</b> : draw() is never automatically invoked</li> <li><b>1</b> : draw() is invoked after each grid is finished</li> <li><b>2</b> : draw() is invoked incrementally after each row is - received. (but buffering may cause lines to come in groups - anyway)</li> </ul> <br> - <br><b>method</b> setcursor <b>(</b><i>0..63</i> cursor<b>)</b> - 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.) <br> - <br><b>method</b> hidecursor <b>(</b><b>)</b> - This makes the cursor invisible. <br> - <br><b>outlet 0 </b><b>method</b> position <b>(</b><i>integer</i> y<b>, </b><i>integer</i> x<b>, </b><i>integer</i> buttons<b>)</b> <p>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.</p> <p>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. - Button numbers normally are: <ul> <li><b>0</b> : Shift</li> <li><b>1</b> : CapsLock</li> <li><b>2</b> : Control</li> <li><b>3</b> : Alternate</li> <li><b>4</b> : NumLock</li> <li><b>5</b> : ???</li> <li><b>6</b> : Meta</li> <li><b>7</b> : ScrollLock</li> <li><b>8</b> : Left Button</li> <li><b>9</b> : Middle Button</li> <li><b>10</b> : Right Button</li> <li><b>11</b> : Wheel Up</li> <li><b>12</b> : Wheel Down</li> </ul></p> <p>NOTE: This message form may become longer in the future, but the already defined parts will stay the same.</p> <br> - <br><b>outlet 0 </b><b>method</b> keypress <b>(</b><i>integer</i> y<b>, </b><i>integer</i> x<b>, </b><i>integer</i> buttons<b>, </b><i>symbol</i> keyname<b>)</b> <p>Similar to <kbd><font color="#007777">position</font></kbd> 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.</p> <p>NOTE: This message form may become longer in the future, but the already defined parts will stay the same.</p> <br> - <br><b>outlet 0 </b><b>method</b> keyrelease <b>(</b><i>integer</i> y<b>, </b><i>integer</i> x<b>, </b><i>integer</i> buttons<b>, </b><i>symbol</i> keyname<b>)</b> - Same as keypress but when a key gets released instead. <p>NOTE: This message form may become longer in the future, but the already defined parts will stay the same.</p> <br> - <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="format quartz #out">format quartz #out</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/format quartz %23out-icon.png" alt="[format quartz #out]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> - - The equivalent of format x11 on MacOS 10.x, but with less features (sorry). <br><b>method</b> open <b>(</b><b>)</b> - opens a dim(240,320,3) rgb window (default). <br> - <br><b>method</b> grid <b>(</b><i>grid(rows columns {red green blue})</i> grid<b>)</b> - Sends image to screen. Window will be resized to fit the image exactly. <br> - <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="format sdl #out">format sdl #out</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/format sdl %23out-icon.png" alt="[format sdl #out]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> - <br><b>method</b> open <b>(</b><b>)</b> - Opens a dim(240,320,3) rgb window (default). <br> - <br><b>method</b> grid <b>(</b><i>grid(rows columns {red green blue})</i> grid<b>)</b> - Sends image to screen. Window will be resized to fit the image exactly. <br> - <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="format aalib #out">format aalib #out</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/format aalib %23out-icon.png" alt="[format aalib #out]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> - <br><b>method</b> open aalib <b>(</b>driver<b>, </b>args...<b>)</b> <br> - <br><b>method</b> grid <b>(</b><i>grid(rows columns {white})</i> grid<b>)</b> - 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. <br> - <br><b>method</b> grid <b>(</b><i>grid(rows columns {ascii attr})</i> grid<b>)</b> - the inverse of "dump". Both together in a loop allow to - post-process aalib's buffer before displaying. Goes well - with "draw", "autodraw". <br> - <br><b>method</b> print <b>(</b><i>int</i> y<b>, </b><i>int</i> x<b>, </b><i>int</i> attr<b>, </b><i>symbol</i> text<b>)</b> <br> - <br><b>method</b> autodraw <b>(</b><b>)</b> - like X11's autodraw. <br> - <br><b>method</b> draw <b>(</b><b>)</b> - like X11's draw. <br> - <br><b>method</b> dump <b>(</b><b>)</b> - produces a Dim[y,x,2] grid whose two channels are - ascii character codes and character attributes. <br> - <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="format window #out">format window #out</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/format window %23out-icon.png" alt="[format window #out]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> - <br><b>method</b> open window <b>(</b><b>)</b> - Equivalent to "open x11", but this can be set by putting a line like - this in the config file: <kbd><font color="#007777">GridFlow.formats[:window] = GridFlow.formats[:x11]</font></kbd> - (and similarly other aliases can be created too) <br> - <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td> </td></tr> - <td colspan="4" bgcolor="black"> -<img src="images/black.png" width="1" height="2"></td></tr> -<tr><td colspan="4"> -<p><font size="-1"> -GridFlow 0.8.1 Documentation<br> -Copyright © 2001,2002,2003,2004,2005,2006 by Mathieu Bouchard -<a href="mailto:matju@artengine.ca">matju@artengine.ca</a> -</font></p> -</td></tr></table></body></html> - - diff --git a/externals/gridflow/doc/format.xml b/externals/gridflow/doc/format.xml deleted file mode 100644 index 030a777d..00000000 --- a/externals/gridflow/doc/format.xml +++ /dev/null @@ -1,780 +0,0 @@ -<?xml version="1.0" standalone="no" ?> -<!DOCTYPE documentation SYSTEM 'jmax.dtd'> -<documentation title="Reference Manual: Format Classes"> -<!-- $Id: format.xml,v 1.2 2006-03-15 04:44:50 matju Exp $ --> -<!-- - GridFlow Reference Manual: Format Handler Reference - Copyright (c) 2001,2002,2003,2004,2005 by Mathieu Bouchard ---> - -<section name="Objects for Input/Output"> - - <class name="#in"> - <icon text="[#in]"/> - <help text="[#in]" image="#inout"/> - - <method name="init" min="0"> - <arg name="format"/> - <rest name="format_specific_part"/> - - If no arguments given, creates an input object for an unspecified - format. You then need to use the <k>"open"</k> command to link - a format handler to it. - - If arguments given, the <k>"open"</k> command is immediately called - with those arguments. - - Remember that most formats produce Dim[rows,columns,3] grids with - 0-255 values. (Most.) - </method> - - <inlet id="0"> - <method name="open" min="1"> - <arg name="format"/> - <rest name="format_specific_part"/> - This is the command that gives a particular resource - to a <k>[#out]</k> object. This is done through a "format" - (there is a list of formats in this manual). The other - arguments depend on the chosen format. The format may - be a file format or a protocol or a hardware device, etc. - - The format called "file" is a special shortcut that autodetects the - type of file (by name suffix) and picks up the appropriate handler. - </method> - <method name="open"> - <arg name="filename"/> - This is a shortcut for <k>"open file"</k> followed by a filename. - The filename must contain a dot, else it will be seen as a handler name. - </method> - <method name="close"> - close may be necessary if you operate on <k>"/dev/video"</k>, - which can only be read by one at a time. otherwise it's - usually not necessary. - </method> - <method name="int"> - <arg name="frame_number"/> - selects one picture from a multi-picture format - and then does the same as a bang. - </method> - <method name="set"> - <arg name="frame_number"/> - selects one picture from a multi-picture format, - to be displayed by the next bang. - </method> - <method name="bang"> - sends a grid through the outlet. the grid may be the - result of reading from a file, acquiring from a device, - capturing from the screen etc. - - this is format-specific. most formats - produce grid(rows columns {red green blue}). - - 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. - - see section "External Picture Formats". - - </method> - <method name="option"> - <arg name="selector" type="symbol"/> - <rest name="stuff"/> - Obsolete. the word "option" is optional now. - </method> - <method name="rewind"> - rewinds to beginning of file if applicable. - </method> - <method name="loop"> - <arg name="flag" type="bool"/> - controls the automatic looping of movies. - </method> - </inlet> - - <outlet id="1"> - <method name="int"> - frame number of frame just sent, - for formats that have frame numbers. - </method> - - <method name="bang"> - tried to read a frame that does not exist - (signals end of file) - </method> - </outlet> - </class> - - <class name="#out"> - <icon text="[#out]"/> - <help text="[#out]" image="#inout"/> - - <method name="init" min="0"> - <arg name="format"/> - <rest name="format_specific_part"/> - - If no arguments given, creates an output object for an unspecified - format. You then need to use the <k>"open"</k> command to link - a format handler to it. - - If arguments given, the <k>"open"</k> command is immediately called - with those arguments. - - Remember that most formats expect dim(rows,columns,3) grids with - 0-255 values. (Most.) - </method> - <method name="init"> - <arg name="rows" type="integer"/> - <arg name="columns" type="integer"/> - - This alternate way to create an <k>[#out]</k> automatically calls - <k>"open window"</k> and <k>"out_size <i>rows columns</i>"</k>. - </method> - <inlet id="0"> - <method name="open" min="1"> - <arg name="format"/> - <rest name="format_specific_part"/> - This is the command that gives a particular resource - to a <k>[#out]</k> object. This is done through a "format" - (there is a list of formats in this manual). The other - arguments depend on the chosen format. The format may - be a file format or a protocol or a hardware device, etc. - </method> - <method name="open file"> - The format called "file" is a special shortcut that autodetects the - type of file (by name suffix) and picks up the appropriate handler. - </method> - <method name="open"> - <arg name="filename"/> - This is a shortcut for "open file" followed by a filename. - The filename must contain a dot, else it will be seen as a handler name. - </method> - <method name="grid"><arg name="grid" type="grid"/> - this is format-specific. most formats - expect grid(rows columns {red green blue}). - - In formats that write to a file, sending a 2nd picture - overwrites the first. - - see section "External Picture Formats". - </method> - <method name="close"> - closes the file. usually not necessary. - </method> - <method name="option"> - <arg name="selector" type="symbol"/> - <rest name="stuff"/> - Obsolete. Omit the word "option" now. - </method> - <method name="timelog"> - <arg name="status" type="0,1"/> - when status=1, current time (unix clock) and time since last - frame-end are printed in the console. when status=0, it is off. - default is 0. - </method> - <method name="rewind"> - rewinds to beginning of file if applicable. - will overwrite the previous data. - </method> - </inlet> - <outlet id="0"> - <method name="bang"> - sent when a complete grid has been received. - </method> - </outlet> - </class> - - <class name="#peephole"> - <p> - This object class only works with a X11-based version of Pd. - (e.g. on Linux, BSD, but not MacOS X). - </p> - <p>Similar to <k>[#out window]</k>, except it creates an inset in the patch you put it - in, and a scaled version of the picture appears in the inset. It also emits the same messages - as <k>[#out window]</k> and automatically scales cursor position according to the current scale factor. - The scale factor is decided automatically. - </p> - <method name="init"> - <arg name="height" type="int"/> - <arg name="width" type="int"/> - </method> - <p>All other methods are as in <k>[#out window]</k>.</p> - </class> - <class name="#mouse"> - This will process the "position" messages emitted by <k>[#out]</k> or <k>[#peephole]</k> in - useful ways. - <outlet id="0"><method name="list"> - y,x coords of a click - </method></outlet> - <outlet id="1"><method name="list"> - y,x coords of a drag (any button is kept pressed) - </method></outlet> - <outlet id="2"><method name="list"> - y,x coords of an unclick - </method></outlet> - <outlet id="3"><method name="list"> - y,x coords of a move (no button is pressed) - </method></outlet> - <outlet id="4"><method name="float" type="0,1">button 1 status</method></outlet> - <outlet id="5"><method name="float" type="0,1">button 2 status</method></outlet> - <outlet id="6"><method name="float" type="0,1">button 3 status</method></outlet> - <outlet id="7"><method name="float" type="-1,1"> - wheel difference: -1 = roll up; 1 = roll down. - </method></outlet> - </class> - <class name="#camera"> - Works about like <k>[#in videodev]</k> except you can right-click-open it to access all of the - camera settings visually. - </class> -</section> - -<section name="Picture/Movie Formats"> - - <class name="format ppm #in/#out"> - <icon image="format_ppm" text="[open filename.ppm]"/> - - <p>Subformat P6 only. - Max-number can only be 255 (24-bit RGB). - </p> - - <method name="open ppm file"> - <arg name="filename" type="symbol"/> - opens the specified file, taken from the current - directory. - </method> - - <method name="open ppm gzfile"> - <arg name="filename" type="symbol"/> - same but for .ppm.gz files - </method> - - <method name="grid"> - <arg name="grid" type="grid(rows columns {r g b})"/> - values 0-255 - </method> - </class> - - <class name="format targa #in/#out"> - <icon image="format_targa" text="[open filename.tga]"/> - <p>Support for RGB-24 (3 channels) and RGBA-32 (4 channels)</p> - - <method name="open targa file"> - <arg name="filename" type="symbol"/> - opens the specified file, taken from the current - directory. - </method> - - <method name="open targa gzfile"> - <arg name="filename" type="symbol"/> - same but for .tga.gz files - </method> - - <method name="grid"><arg name="grid" type="grid(rows columns 3)"/>RGB-24</method> - <method name="grid"><arg name="grid" type="grid(rows columns 4)"/>RGBA-32</method> - </class> - - <class name="format jpeg #in/#out"> - <!--<icon image="format_jpeg" text="[open foo.jpg]"/>--> - <p>Support for RGB non-progressive</p> - - <method name="open jpeg file"> - <arg name="filename" type="symbol"/> - opens the specified file, taken from the current - directory. - </method> - - <method name="grid"> - <arg name="grid" type="grid(rows columns 3)"/>RGB-24 - </method> - </class> - - <class name="format png #in"> - <!--<icon image="format_jpeg" text="[open foo.jpg]"/>--> - <p>Support for RGB non-progressive</p> - - <method name="open png file"> - <arg name="filename" type="symbol"/> - opens the specified file, taken from the current - directory. - </method> - - <method name="grid"><arg name="grid" type="grid(rows columns 1)"/>Y-8 (greyscale)</method> - <method name="grid"><arg name="grid" type="grid(rows columns 2)"/>YA-16 (greyscale and transparency)</method> - <method name="grid"><arg name="grid" type="grid(rows columns 3)"/>RGB-24 (colour)</method> - <method name="grid"><arg name="grid" type="grid(rows columns 4)"/>RGBA-32 (colour and transparency)</method> - </class> - - <class name="format quicktime #in/#out"> - <p>Support for .mov files.</p> - <p>This format supports frame-seek and frame-tell.</p> - <p>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.</p> - <p>Some versions of those libraries may include support for different codecs, - and some also may support entirely different wrapper formats such as AVI.</p> - <p>On Macintosh, Apple QuickTime is used instead, but several of the following - messages may not be available.</p> - - <method name="open quicktime file"> - <arg name="filename" type="symbol" /> - </method> - <method name="codec"> - <arg name="codec" type="symbol"/> - 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 <k>[#out]</k>. 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. - </method> - <method name="parameter"> - <arg name="key" type="symbol"/> - <arg name="value" type="int"/> - Sets special codec-specific settings. - For example: <k>"parameter jpeg_quality 75"</k> - </method> - <method name="framerate"> - <arg name="fps" type="int"/> - Sets the framerate of the file. - This is not used by GridFlow when reading a file, but other - programs usually care. - </method> - - <method name="colorspace"> - <arg name="colorspace" type="symbol"/> - Allowed values are rgb, rgba, bgr, bgra, yuv, yuva. - Normally you don't need this. - </method> - <method name="size"> - <arg name="height" type="int"/> - <arg name="width" type="int"/> - Forces a window size when writing. Usually this has to be used <u>after</u> - setting the framerate and codec and <u>before</u> setting the codec-parameters. - (Strange. Sorry.) - </method> - <method name="force_size"> - <arg name="height" type="int"/> - <arg name="width" type="int"/> - forces a window size when reading. - this is a workaround for a problem in HW-QuickTime. - </method> - </class> - - <class name="format mpeg #in"> - <icon image="format_mpeg" text="[open mpeg file filename.mpeg]"/> - <p>support for .mpeg files</p> - <p>this format supports frame-seek and frame-tell.</p> - <p>Two different libraries are available for dealing with - MPEG files. Those have different details, capabilities and quirks.</p> - <p>In any case, GridFlow does not support importing audio from - those files.</p> - <p>If you use the HeroineWarrior library, you may open several - mpeg files at once, but not with the GregWard library.</p> - <p>Libraries may scream error messages in a rude way.</p> - <p>By opposition to PPM and TARGA, this format driver only - allows a single MPEG stream per file (you cannot "cat" - several MPEG files together). - </p> - <p>Supports Rewind and Frame Select.</p> - <method name="open mpeg file"> - <arg name="filename" type="symbol"/> - opens the specified file, taken from the current - directory. - </method> - </class> - - <class name="format grid #in/#out"> - <icon image="format_grid" text="[open grid file filename.grid]"/> - <icon image="format_grid_tcp" text="[open grid tcp artengine.ca 4242]"/> - <icon image="format_grid_tcpserver" text="[open grid tcpserver 4242]"/> - - <p> - This is GridFlow's special file format. This is the only I/O - format that can hold anything that the <k>[#store]</k> object can. - </p> - <p> - This is the picture format that would support TCP connections - if that feature actually worked. More on this later. - </p> - - <method name="open grid file"> - <arg name="filename" type="symbol"/> - opens the specified file, taken from the current - directory. - </method> - <method name="open grid gzfile"> - <arg name="filename" type="symbol"/> - same but for .grid.gz files - </method> - <method name="open grid tcp"> - <arg name="hostname" type="symbol"/> - <arg name="port" type="integer"/> - dials an specified hostname/port on the InterNet or - compatible network. the TCP protocol is used. - </method> - <method name="open grid tcpserver"> - <arg name="port" type="integer"/> - waits for a call (and answers) for this port on the - local machine via InterNet or compatible network. - Answers the call. - </method> - <method name="type int32"> - output will be as 32 bit signed integers. - </method> - <method name="type uint8"> - output will be as 8 bit unsigned integers. - </method> - <method name="headerful"> - cancels "headerless" (and back to reading .grid) - </method> - <method name="headerless"> - <rest name="dimensions" type="integer"/> - 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: - <k>type</k> and <k>endian</k>. - </method> - - <p>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: - - <method name="endian" type="symbol(big|endian|same)"> - <list><li>big: - A number will be written starting with the biggest digit. - This is the natural way on the Macintosh, Sun, Amiga, and so on. - </li> - <li>little: - A number will be written starting with the smallest digit. - This is the natural way on the Intel 386/Pentium. - </li> - <li>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. - </li> - </list> - </method> - </p> - </class> -</section> - -<section name="Acquisition Devices"> - - <class name="format videodev #in"> - <icon image="format_videodev" text="[open /dev/video0]"/> - - <method name="open"> - <arg name="device"/> - </method> - - <p>Video4Linux-1 devices, RGB-24 only. Variable picture size.</p> - - <p>We have been testing it using cards of the BT-848 family, - such as Miro DC10plus and Hauppauge WinTV, using the <k>bttv.o</k> linux driver. - Also we have been testing using Logitech QuickCam (and similar Labtec hardware), - but don't use the <k>qce-ga</k> driver, which is buggy and obsolete: the <k>qc-usb</k> - works better.</p> - - <p>Some hardware doesn't support RGB, so you may have to select a YUV colorspace - (see below) and then use <k>[#yuv_to_rgb]</k>. Don't forget to also do - <k>[# min 255]</k> and <k>[# max 0]</k>. - </p> - - <p>If for some reason there's a bug that causes a driver to produce BGR instead of RGB, - so that red and blue are swapped, you can swap them back by filtering through a RGB-BGR - converter, such as <k>[#inner * + 0 {3 3 # 0 0 1 0 1 0 1 0 0}]</k>.</p> - - <p>color adjustments: - <method name="brightness"><arg name="level" type="0-65535"/></method> - <method name="hue" ><arg name="level" type="0-65535"/></method> - <method name="colour" ><arg name="level" type="0-65535"/></method> - <method name="contrast" ><arg name="level" type="0-65535"/></method> - <method name="whiteness" ><arg name="level" type="0-65535"/></method> - </p> - <method name="get"> - <arg name="attr" type="symbol"/> - gets a specific attribute. a message is sent through right outlet. - valid attributes are: brightness, hue, colour, contrast, whiteness. - </method> - <method name="get"> - gets all attributes. - </method> - - <p>other options: - <method name="channel" ><arg type="integer"/></method> - <method name="tuner" ><arg type="integer"/></method> - <method name="norm" ><arg type="integer"/></method> - <method name="frequency" ><arg type="integer"/></method> - <method name="transfer" > - <arg type="symbol(read|mmap)"/> - <arg type="integer" default="2"/> - <list> - <li>mmap: - This is the normal (and fast) way of transferring pictures - from the camera. - </li> - <li>read: - Some cameras/drivers only support this instead of mmap. - </li></list> - 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. - </method> - - <method name="colorspace"> - <arg name="colorspace" type="symbol"/> - Allowed values are: RGB24, YUV420P. - Use this if your driver doesn't support RGB24. - </method> - - <method name="size"> - <arg name="height"/> - <arg name="width"/> - sets the input size, especially when using a video digitalizer - device. - </method> - </p> - </class> -</section> - -<section name="Window Output"> - - <class name="format x11 #in/#out"> - <icon image="format_x11" text="[open window]"/> - <icon image="format_x11_remote" text="[open x11 remote artengine.ca 10]"/> - - <p>supports 15,16,24,32-bit truecolor displays</p> - - <p>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.</p> - - <p>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.</p> - - <method name="open x11"> - synonym of "open x11 here". - </method> - - <method name="open x11 here"> - connects to the default X11 server, - according to your environment variable "DISPLAY". - </method> - - <method name="open x11 local"> - <arg name="display_number" type="integer"/> - connects to a display server on this machine. - </method> - - <method name="open x11 remote"> - <arg name="host_name" type="symbol"/> - <arg name="display_number" type="integer"/> - connects to a remote X11 display server using TCP. - Sorry, IP addresses are not supported. - Port number will be 6000 plus the display number, because - of the X11 standard. - </method> - - <method name="grid"> - <arg name="grid" type="grid(rows columns {red green blue})"/> - 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". - </method> - - <p> - Destroying the object (or sending "close") should close the window. - </p> - - <p>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.</p> - - <p>only one window may be used per connection (to simplify matters; - this doesn't reduce flexibility).</p> - - <p>there is an additional argument that may be added to every - <k>"open"</k> 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. <k>0x28003ff</k>, you may connect to - an existing window; you can find out the number of a window by using - a tool like <k>xwininfo</k>, part of X11 standard tools.</p> - - <method name="out_size"> - <arg name="height" type="integer"/> - <arg name="width" type="integer"/> - changes the window's size, just like sending a grid - dim(height,width,3) would. - - this affects the size of screen captures too. - </method> - - <method name="draw"> - forces a redraw of the window's contents. - </method> - - <method name="autodraw"> - <arg name="level" type="0,1,2"/> - <list start="0"> - <li>draw() is never automatically invoked</li> - <li>draw() is invoked after each grid is finished</li> - <li>draw() is invoked incrementally after each row is - received. (but buffering may cause lines to come in groups - anyway)</li> - </list> - </method> - - <method name="setcursor"> - <arg name="cursor" type="0..63"/> - 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.) - </method> - - <method name="hidecursor"> - This makes the cursor invisible. - </method> - - <outlet id="0"> - <method name="position"> - <arg name="y" type="integer"/> - <arg name="x" type="integer"/> - <arg name="buttons" type="integer"/> - - <p>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.</p> - - <p>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. - Button numbers normally are: - <list start="0"> - <li>Shift</li> - <li>CapsLock</li> - <li>Control</li> - <li>Alternate</li> - <li>NumLock</li> - <li>???</li> - <li>Meta</li> - <li>ScrollLock</li> - <li>Left Button</li> - <li>Middle Button</li> - <li>Right Button</li> - <li>Wheel Up</li> - <li>Wheel Down</li> - </list></p> - <p>NOTE: This message form may become longer in the future, but the already defined parts will stay the same.</p> - </method> - <method name="keypress"> - <arg name="y" type="integer"/> - <arg name="x" type="integer"/> - <arg name="buttons" type="integer"/> - <arg name="keyname" type="symbol"/> - <p>Similar to <k>position</k> 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.</p> - <p>NOTE: This message form may become longer in the future, but the already defined parts will stay the same.</p> - </method> - <method name="keyrelease"> - <arg name="y" type="integer"/> - <arg name="x" type="integer"/> - <arg name="buttons" type="integer"/> - <arg name="keyname" type="symbol"/> - Same as keypress but when a key gets released instead. - <p>NOTE: This message form may become longer in the future, but the already defined parts will stay the same.</p> - </method> - </outlet> - </class> - - <class name="format quartz #out"> - The equivalent of format x11 on MacOS 10.x, but with less features (sorry). - <method name="open"> - opens a dim(240,320,3) rgb window (default). - </method> - <method name="grid"> - <arg name="grid" type="grid(rows columns {red green blue})"/> - Sends image to screen. Window will be resized to fit the image exactly. - </method> - </class> - - <class name="format sdl #out"> - <method name="open"> - Opens a dim(240,320,3) rgb window (default). - </method> - <method name="grid"> - <arg name="grid" type="grid(rows columns {red green blue})"/> - Sends image to screen. Window will be resized to fit the image exactly. - </method> - </class> - - <class name="format aalib #out"> - <method name="open aalib"> - <arg name="driver"> - Normally "X11" with uppercase X; else consult - the AALib manual. - </arg> - <rest name="args"> - You can pass "commandline options" of AALib here. - </rest> - </method> - <method name="grid"> - <arg name="grid" type="grid(rows columns {white})"/> - 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. - </method> - <method name="grid"> - <arg name="grid" type="grid(rows columns {ascii attr})"/> - the inverse of "dump". Both together in a loop allow to - post-process aalib's buffer before displaying. Goes well - with "draw", "autodraw". - </method> - <method name="print"> - <arg name="y" type="int"/> - <arg name="x" type="int"/> - <arg name="attr" type="int"/> - <arg name="text" type="symbol"/> - </method> - <method name="autodraw"> - like X11's autodraw. - </method> - <method name="draw"> - like X11's draw. - </method> - <method name="dump"> - produces a Dim[y,x,2] grid whose two channels are - ascii character codes and character attributes. - </method> - </class> - - <class name="format window #out"> - <method name="open window"> - Equivalent to "open x11", but this can be set by putting a line like - this in the config file: <k>GridFlow.formats[:window] = GridFlow.formats[:x11]</k> - (and similarly other aliases can be created too) - </method> - </class> -</section> - -</documentation> diff --git a/externals/gridflow/doc/format/#camera-icon.png b/externals/gridflow/doc/format/#camera-icon.png Binary files differdeleted file mode 100644 index 994f5a54..00000000 --- a/externals/gridflow/doc/format/#camera-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/format/#in-help.pd b/externals/gridflow/doc/format/#in-help.pd deleted file mode 100644 index 4287c2ff..00000000 --- a/externals/gridflow/doc/format/#in-help.pd +++ /dev/null @@ -1,189 +0,0 @@ -#N canvas 63 0 743 682 10; -#X obj 268 100 cnv 15 460 15 empty empty empty 20 12 0 14 -200249 -66577 -0; -#X obj 278 120 cnv 15 450 15 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X obj 6 682 cnv 15 720 30 empty empty empty 20 12 0 14 -200249 -66577 -0; -#X obj 8 5 cnv 15 720 15 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X obj 268 25 cnv 15 460 15 empty empty empty 20 12 0 14 -200249 -66577 -0; -#X text 271 25 Arguments:; -#X obj 271 513 cnv 15 460 15 empty empty empty 20 12 0 14 -200249 -66577 -0; -#X text 274 512 Outlets:; -#X obj 8 25 cnv 15 250 15 empty empty empty 20 12 0 14 -200249 -66577 -0; -#X text 11 25 Usage:; -#X obj 8 45 cnv 15 250 30 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X obj 8 85 cnv 15 250 130 empty empty empty 5 11 0 12 -233017 -1 0 -; -#X obj 8 223 cnv 15 250 400 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X obj 269 610 cnv 15 460 15 empty empty empty 20 12 0 14 -200249 -66577 -0; -#X text 271 100 Inlets: (Read left to right \, inlet "0" being the -leftmost); -#X text 281 120 0: (Leftmost); -#X text 12 5 SUMMARY:; -#X text 76 6 Imports a grid \, usually an image \, video or live stream. -; -#X obj 121 51 #in; -#X obj 14 179 #out window; -#X obj 14 112 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 --1; -#X floatatom 114 348 5 0 0 0 - - -; -#X msg 55 348 set 2; -#X msg 22 133 open b001.jpg; -#X text 13 86 for images:; -#X obj 23 564 #out window; -#X obj 13 285 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 --1; -#X msg 45 326 open movie.mpeg; -#X msg 116 398 loop 0; -#X msg 129 426 loop 1; -#X floatatom 47 537 5 0 0 0 - - -; -#X msg 116 373 rewind; -#X text 14 226 for video files:; -#X obj 68 516 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 --1; -#X obj 14 156 #in; -#X obj 161 143 #in b001.jpg; -#X obj 161 107 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 --1; -#X obj 161 179 #out window; -#X obj 23 501 #in; -#X text 274 411 Message "loop 0" - turns off the loop option. The video -stops once it reaches the end.; -#X text 278 148 Grid - Bang sends a grid to [#out]. Since frames from -video and live stream are read as a series of individual grids \, successive -bangs advance through the frames.; -#X text 277 368 Message "loop 1" - Restarts a video each time it reaches -the end \, "loop 1" is the default setting.; -#X obj 277 643 #import ( 1 ); -#X obj 380 643 #export; -#X obj 442 644 #export_list; -#X obj 539 644 #export_symbol; -#X obj 648 644 #pack; -#X text 282 45 One - [Filename] like [#in b001.jpg] eliminates the -need for an "open someimege.jpg" message but limits the action to one -specified grid.; -#X text 277 199 Message "open" - followed by the filename \, sends -a grid to [#out]. For example: "open b001.jpg".; -#X text 275 456 Interger - Displays the frame number of the frame just -sent. Applies to formats that have frame numbers \, i.e. video.; -#X text 275 566 Bang- Signals the end of a file and when a file is -unreadable.; -#X text 276 337 Message "rewind" - Will rewind video to the beginning. -; -#X text 277 296 Message "close" - Closes the video input device. Only -necessary when you are using a live capture device.; -#X text 273 536 See Inlet: 1: (leftmost); -#X text 12 689 GridFlow 0.8.0; -#X text 272 610 See also:; -#N canvas 0 0 656 649 more 0; -#X msg 225 70 codec jpg; -#X msg 220 340 framerate 33; -#X msg 220 550 colorspace rgb; -#X msg 221 264 size 400 600; -#X msg 219 404 force_size 400 600; -#X obj 23 591 #in; -#X msg 220 607 open quicktime.mov; -#X text 221 18 The following messages can be used to set parameters -for video (.mov) files.; -#X text 219 364 Number of frames per second.; -#X text 221 145 different versions of LibQuickTime may include support -for different codecs \, and some may also support entirely different -wrapper formats such as AVI.; -#X text 222 230 Codecs must be set before first frame is written.; -#X msg 219 465 parameter jpeg_quality 85; -#X text 218 572 Other colrspaces include rgba \, bgr \, bgra \, yuv -\, yuva.; -#X text 219 425 Determines window size when reading a video file.; -#X text 580 93 comment; -#X text 222 92 quicktime library for linux accepts LibQuickTime (libquicktime.so). -codecs currently available are: Raw \, jpeg \, png \, mipa \, yuv2 -\, yuv4.; -#X text 221 192 QuickTime library for Macintosh: Apple QuickTime (some -codecs/features may not be available).; -#X text 219 288 Sets height and width. Must be set before setting the -codec parameters and after setting framerate and codec.; -#X text 219 486 Sets compression quality (100 being the highest quality -but a large file. 75-85 is the standard setting).; -#X connect 0 0 5 0; -#X connect 1 0 5 0; -#X connect 2 0 5 0; -#X connect 3 0 5 0; -#X connect 4 0 5 0; -#X connect 6 0 5 0; -#X connect 11 0 5 0; -#X restore 5 632 pd more info about quicktime files; -#N canvas 0 0 874 655 more 0; -#X msg 338 499 open videodev \$1 \, get; -#X msg 53 273 brightness 1000; -#X msg 42 250 hue 1000; -#X msg 27 227 color 1000; -#X msg 66 297 contrast 1000; -#X msg 15 204 whiteness 1000; -#X msg 537 76 channel 2; -#X msg 537 106 tuner 2; -#X msg 538 136 norm 2; -#X msg 538 164 frequency 2; -#X msg 465 267 transfer mmap 4; -#X msg 464 390 transfer read; -#X msg 341 612 colorspace RGB24; -#X msg 340 555 size 400 600; -#X obj 110 521 #in; -#X obj 193 299 #contrast; -#X text 167 298 or; -#X text 339 575 Sets height and width of the input.; -#X text 465 328 In the case of mmap \, the extra numeric argument sets -the queue length in number of frames \, so you can select an appropriate -tradeoff between efficiency and latency.; -#X text 339 16 Grid Settings; -#X text 465 291 This is the standard and fastest way to receive pictures -from the camera.; -#X text 465 413 Some cameras/drivers only support "transfer read" and -not mmap.; -#X text 13 147 Message "get brightness" or "get" followed by any of -the other colour attributes will display its values in the console. -; -#X text 337 521 Opens video device.; -#X text 341 632 Supported values are RGB24 or YUV420P.; -#X text 10 88 Color Adjustments; -#X text 12 115 Values from 0 to 65535; -#X connect 0 0 14 0; -#X connect 1 0 14 0; -#X connect 2 0 14 0; -#X connect 3 0 14 0; -#X connect 4 0 14 0; -#X connect 5 0 14 0; -#X connect 6 0 14 0; -#X connect 7 0 14 0; -#X connect 8 0 14 0; -#X connect 9 0 14 0; -#X connect 10 0 14 0; -#X connect 11 0 14 0; -#X connect 12 0 14 0; -#X connect 13 0 14 0; -#X restore 5 657 pd more info about video devices; -#X text 276 242 Message "set" - followed by a number will select the -corresponding video frame. A bang must be sent to [#in] in order to -display the frame.; -#X connect 20 0 34 0; -#X connect 21 0 38 0; -#X connect 22 0 38 0; -#X connect 23 0 34 0; -#X connect 26 0 38 0; -#X connect 27 0 38 0; -#X connect 28 0 38 0; -#X connect 29 0 38 0; -#X connect 31 0 38 0; -#X connect 34 0 19 0; -#X connect 35 0 37 0; -#X connect 36 0 35 0; -#X connect 38 0 25 0; -#X connect 38 1 30 0; -#X connect 38 1 33 0; diff --git a/externals/gridflow/doc/format/#in-icon.png b/externals/gridflow/doc/format/#in-icon.png Binary files differdeleted file mode 100644 index a4c06bef..00000000 --- a/externals/gridflow/doc/format/#in-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/format/#mouse-icon.png b/externals/gridflow/doc/format/#mouse-icon.png Binary files differdeleted file mode 100644 index e8bc94bd..00000000 --- a/externals/gridflow/doc/format/#mouse-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/format/#out-icon.png b/externals/gridflow/doc/format/#out-icon.png Binary files differdeleted file mode 100644 index c64c94b5..00000000 --- a/externals/gridflow/doc/format/#out-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/format/#peephole-icon.png b/externals/gridflow/doc/format/#peephole-icon.png Binary files differdeleted file mode 100644 index 809e93ab..00000000 --- a/externals/gridflow/doc/format/#peephole-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/format/#quicktime-help.pd b/externals/gridflow/doc/format/#quicktime-help.pd deleted file mode 100644 index 22a6c9d0..00000000 --- a/externals/gridflow/doc/format/#quicktime-help.pd +++ /dev/null @@ -1,10 +0,0 @@ -#N canvas 328 114 500 300 10; -#X msg 93 60 codec jpg; -#X msg 94 92 parameter jpeg_quality 75; -#X msg 309 255 framerate 33; -#X msg 182 229 colorspace rgb; -#X msg 285 165 size 400 600; -#X msg 294 92 force_size 400 600; -#X obj 117 261 #in; -#X msg 107 194 open quicktime.mov; -#X connect 7 0 6 0; diff --git a/externals/gridflow/doc/format/#videodev-help.pd b/externals/gridflow/doc/format/#videodev-help.pd deleted file mode 100644 index 948b4ae4..00000000 --- a/externals/gridflow/doc/format/#videodev-help.pd +++ /dev/null @@ -1,15 +0,0 @@ -#N canvas 442 389 450 300 10; -#X msg 114 236 open videodev \$1 \, get; -#X msg 106 12 brightness 1000; -#X msg 106 35 hue 1000; -#X msg 107 64 color 1000; -#X msg 107 87 contrast 1000; -#X msg 107 120 whiteness 1000; -#X msg 288 59 channel 2; -#X msg 287 84 tuner 2; -#X msg 287 107 norm 2; -#X msg 291 138 frequency 2; -#X msg 108 156 transfer mmap 4; -#X msg 103 184 transfer read; -#X msg 283 210 colorspace RGB24; -#X msg 288 167 size 400 600; diff --git a/externals/gridflow/doc/format/aalib-icon.png b/externals/gridflow/doc/format/aalib-icon.png Binary files differdeleted file mode 100644 index f649f20a..00000000 --- a/externals/gridflow/doc/format/aalib-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/format/jpeg-icon.png b/externals/gridflow/doc/format/jpeg-icon.png Binary files differdeleted file mode 100644 index 9d2c40b1..00000000 --- a/externals/gridflow/doc/format/jpeg-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/format/opengrid-icon.png b/externals/gridflow/doc/format/opengrid-icon.png Binary files differdeleted file mode 100644 index 3999ef2a..00000000 --- a/externals/gridflow/doc/format/opengrid-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/format/openmpeg-icon.png b/externals/gridflow/doc/format/openmpeg-icon.png Binary files differdeleted file mode 100644 index ad277155..00000000 --- a/externals/gridflow/doc/format/openmpeg-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/format/openppm-icon.png b/externals/gridflow/doc/format/openppm-icon.png Binary files differdeleted file mode 100644 index 124127fb..00000000 --- a/externals/gridflow/doc/format/openppm-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/format/opentarga-icon.png b/externals/gridflow/doc/format/opentarga-icon.png Binary files differdeleted file mode 100644 index 5141a8ab..00000000 --- a/externals/gridflow/doc/format/opentarga-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/format/openx11-icon.png b/externals/gridflow/doc/format/openx11-icon.png Binary files differdeleted file mode 100644 index 83aa5a69..00000000 --- a/externals/gridflow/doc/format/openx11-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/format/png-icon.png b/externals/gridflow/doc/format/png-icon.png Binary files differdeleted file mode 100644 index d055ce24..00000000 --- a/externals/gridflow/doc/format/png-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/format/quartz-icon.png b/externals/gridflow/doc/format/quartz-icon.png Binary files differdeleted file mode 100644 index 943d9161..00000000 --- a/externals/gridflow/doc/format/quartz-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/format/quicktime-icon.png b/externals/gridflow/doc/format/quicktime-icon.png Binary files differdeleted file mode 100644 index 999e13aa..00000000 --- a/externals/gridflow/doc/format/quicktime-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/format/sdl-icon.png b/externals/gridflow/doc/format/sdl-icon.png Binary files differdeleted file mode 100644 index 959d2e8e..00000000 --- a/externals/gridflow/doc/format/sdl-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/format/videodev-icon.png b/externals/gridflow/doc/format/videodev-icon.png Binary files differdeleted file mode 100644 index cd5b30d8..00000000 --- a/externals/gridflow/doc/format/videodev-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/format/window-icon.png b/externals/gridflow/doc/format/window-icon.png Binary files differdeleted file mode 100644 index aab7d110..00000000 --- a/externals/gridflow/doc/format/window-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/format/window2-icon.png b/externals/gridflow/doc/format/window2-icon.png Binary files differdeleted file mode 100644 index 54c925e1..00000000 --- a/externals/gridflow/doc/format/window2-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/gridflow.css b/externals/gridflow/doc/gridflow.css deleted file mode 100644 index eae50bfa..00000000 --- a/externals/gridflow/doc/gridflow.css +++ /dev/null @@ -1,15 +0,0 @@ -P {color:#000000; font-family: Arial, Helvetica, sans-serif; font-size:12px;} -B {color:#336699;} -A {color:#003366; font-family: Arial, Helvetica, sans-serif;} -A:link {color:#003366;} -A:active {color:#336699;} -A:visited {color:#336699;} -BODY {background-color:#FFFFFF;} -H1 {color:#336699; font-family: Arial, Helvetica, sans-serif;} -H2 {color:#336699; font-family: Arial, Helvetica, sans-serif;} -H3 {color:#336699; font-family: Arial, Helvetica, sans-serif;} -H4 {color:#004060; font-family: Arial, Helvetica, sans-serif;; font-size: 16px} -H5 {color:#004060; font-family: Arial, Helvetica, sans-serif;; font-size: 16px} -LI {font-family: Arial, Helvetica, sans-serif;} -.text {font-family: Arial, Helvetica, sans-serif; font-size:10px;; background-color: #FFFFFF}h5 { color:#336699; font-family: Arial, Helvetica, sans-serif; ; font-size: 14px} -dt { font-weight: bold; color: #006699} diff --git a/externals/gridflow/doc/images/black.png b/externals/gridflow/doc/images/black.png Binary files differdeleted file mode 100644 index ce34e740..00000000 --- a/externals/gridflow/doc/images/black.png +++ /dev/null diff --git a/externals/gridflow/doc/images/crop_icons b/externals/gridflow/doc/images/crop_icons deleted file mode 100644 index 4aa06499..00000000 --- a/externals/gridflow/doc/images/crop_icons +++ /dev/null @@ -1,12 +0,0 @@ -if [ "z$1" = "zall" ]; then - foo="\@*.png format*.png" -else - foo="$1" -fi - -for z in $foo; do \ - echo $z - pngtopnm $z | pnmcrop | pnmtopng -background black -transparent =red -compress 9 > $z.new - mv $z.new $z -done - diff --git a/externals/gridflow/doc/images/pingpong.png b/externals/gridflow/doc/images/pingpong.png Binary files differdeleted file mode 100644 index 949ddd02..00000000 --- a/externals/gridflow/doc/images/pingpong.png +++ /dev/null diff --git a/externals/gridflow/doc/images/see_screenshot.png b/externals/gridflow/doc/images/see_screenshot.png Binary files differdeleted file mode 100644 index 821f3c65..00000000 --- a/externals/gridflow/doc/images/see_screenshot.png +++ /dev/null diff --git a/externals/gridflow/doc/images/titre_gridflow.png b/externals/gridflow/doc/images/titre_gridflow.png Binary files differdeleted file mode 100644 index 049857a8..00000000 --- a/externals/gridflow/doc/images/titre_gridflow.png +++ /dev/null diff --git a/externals/gridflow/doc/index.html b/externals/gridflow/doc/index.html deleted file mode 100644 index d223442b..00000000 --- a/externals/gridflow/doc/index.html +++ /dev/null @@ -1,149 +0,0 @@ -<html> -<head> -<title>GridFlow 0.8.0</title> -<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> -<link rel="stylesheet" href="gridflow.css" type="text/css"> -</head> - -<body bgcolor="#FFFFFF" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0"> -<br> -<table width="100%" border="0" cellspacing="5"> - <tr><td colspan="4" bgcolor="#082069"> - <img src="images/titre_gridflow.png" width="253" height="23"></td></tr> - - <tr> - <td rowspan="2" width="14%"> </td> - <td colspan="2" width="100%"> </td> - <td rowspan="10" width="12%"> </td> - </tr> - - <tr> - <td colspan="2"> - <p> - a multi-dimensional dataflow processing library - for PureData and Ruby, specialized in image and video<br> - </p> - </td> - </tr> - - <tr><td> </td></tr> - <tr><td colspan="4" bgcolor="black"><img src="images/black.png" width="1" height="2"></td></tr> - <tr><td colspan="3" height="16"> - <h4>GridFlow 0.8.0 - documentation index</h4> - </td></tr> - - <tr> - <td width="14%" rowspan=2> </td> - <td colspan="2"><ul> - <li><a href="license.html">License</a></li> - <li><a href="introduction.html">Introduction</a></li> - <li><a href="install.html">Installation</a></li> - <li><a href="architecture.html">Reference Manual: Architecture and Concepts</a></li> - <li><a href="reference.html">Reference Manual: Flow Classes</a></li> - <li><a href="format.html">Reference Manual: Format Handlers</a></li> - <li><a href="internals.html">Reference Manual: C++/Ruby Internals</a></li> - <li><a href="profiling.html">Profiling</a></li> - <!-- <p> <a href="project_policy.html">Project Policy</a></p> --> - </ul></td></tr> - - <tr><td> </td></tr> - <tr><td colspan="4" bgcolor="black"><img src="images/black.png" width="1" height="2"></td></tr> - <tr><td colspan="4"><h4>GridFlow On The Net</h4></td></tr> - <tr><td rowspan=2> </td><td><ul> - <li><a href="http://gridflow.ca/latest"> - Browse GridFlow documentation and source code on the web - </a></li> - <li><a href="http://www.artengine.ca/gridflow/download"> - Download GridFlow and related files - </a></li> - <li>Or checkout using the CVS protocol (no password): - <kbd>cvs -d :pserver:anonymous@artengine.ca:/home/cvs/gridflow checkout .</kbd> - </li> - <li><a href="http://www.artengine.ca/viewcvs/gridflow/"> - Browse GridFlow CVS on the Web - </a></li> - <li><a href="http://artengine.ca/~tiki/tiki-view_faq.php?faqId=1"> - GridFlow Frequently Asked Questions (on wiki) - </a></li> - <li>Mailing Lists (Subscription and Archives): <ul> - <li><a href="http://ns.artengine.ca/mailman/listinfo/gridflow-dev"> - <kbd>gridflow-dev</kbd>: GridFlow Contributors - </a></li> - <li><a href="http://ns.artengine.ca/mailman/listinfo/gridflow-cvs"> - <kbd>gridflow-cvs</kbd>: GridFlow CVS Reports - </a></li> - <li><a href="http://ns.artengine.ca/mailman/listinfo/pdmtl"> - <kbd>pdmtl</kbd>: PureData Montréal Users Group - </a></li> - </ul> - <li><a href="http://www.puredata.org">PureData Community Site</a></li> - <li><a href="http://www.ruby-lang.org/">Ruby Home Page</a></li> - <li> - Join us on IRC at - <table bgcolor="black" border="0"><tr><td> - <table bgcolor="white" border="0" cellpadding="4" cellspacing="1"> - <tr><td width=1><b>host</b></td><td width=1><kbd>irc.freenode.net</kbd></td></tr> - <tr><td><b>port</b></td><td><kbd>6667</kbd></td></tr> - <tr><td><b>channel</b></td><td><kbd>#dataflow</kbd></td></tr> - </table> - </table> - </li> - - <li>See also : - <ul> - <li>Danks/Geiger/Zmölnig's <a href="http://GEM.iem.at/GEM">GEM (video plugin for PureData)</a> - </li> - <li>Tom Schouten's <a href="http://zwizwa.fartit.com/pd/">PDP (video plugin for PureData)</a></li> - <li><a href="http://www.opendragon.ca/">OpenDragon (externals collection for Max)</a></li> - <li>NATO (QuickTime library wrapper for Max)</li> - <li>David Rokeby's SoftVNS (for Max)</li> - <li>JKClayton/Cycling74's - <a href="http://www.cycling74.com/products/jitter.html">Jitter (for Max)</a></li> - <li>APL (Array Programming Language)</li> - <li>J (modern APL)</li> - <li><a href="http://pdl.perl.org/">PDL (APL for Perl)</a></li> - <li>Ruby NArray: - <a href="http://www.ir.isas.ac.jp/~masa/ruby/index.html">japanese page</a>; - <a href="http://www.ir.isas.ac.jp/~masa/ruby/index-e.html">english page</a></li> - <li><a href="http://www.gstreamer.net/">gstreamer (video for Gnome/Kde)</a></li> - <li><a href="http://www.arts-project.org/">aRts (audio for Kde)</a></li> - <li><a href="http://www.dai.ed.ac.uk/HIPR2/wksheets.htm"> - Image Processing Operator Worksheets</a></li> - <li><a href="http://freej.dyne.org/">FreeJ</a></li> - </ul> - -</ul></li> - <tr><td> </td></tr> - <tr><td colspan="4" bgcolor="black"><img src="images/black.png" width="1" height="2"></td></tr> - <tr><td colspan="4"><h4>Credits</h4></td></tr> - <tr><td rowspan=2> </td><td> - - C++/Ruby Programming : Mathieu Bouchard<br> - Pd Examples : Mathieu Bouchard, Alexandre Castonguay<br> - MacOS 10 version : Mathieu Bouchard, James Tittle, Adam Lindsay<br> - Windows version (upcoming) : Carmen Rocco<br> - - <tr><td> </td></tr> - <tr><td colspan="4" bgcolor="black"><img src="images/black.png" width="1" height="2"></td></tr> - <tr><td colspan="4"><h4>Sponsors</h4></td></tr> - <tr><td rowspan=2> </td><td> - - <p>GridFlow is sponsored by - <a href="http://www.artengine.org">Artengine</a></p> - - <p>Development of GridFlow 0.3.0 - 0.5.0 was made possible in part by a grant from the - <a href="http://www.hrdc-drhc.gc.ca/">HRDC</a> to <a href="http://www.artengine.org">Artengine</a></p> - - <tr><td> </td></tr> - <tr><td colspan="4" bgcolor="black"><img src="images/black.png" width="1" height="2"></td></tr> - - <tr><td colspan="4"> - <p><font size="-1">GridFlow 0.8.0 Documentation<br> - by Mathieu Bouchard <a href="mailto:matju@sympatico.ca">matju@sympatico.ca</a> - and<br> - Alexandre Castonguay <a href="mailto:acastonguay@artengine.ca">acastonguay@artengine.ca</a></font></p> - </td> - </tr> -</table> -</body> -</html> diff --git a/externals/gridflow/doc/install.html b/externals/gridflow/doc/install.html deleted file mode 100644 index 6127c79c..00000000 --- a/externals/gridflow/doc/install.html +++ /dev/null @@ -1,122 +0,0 @@ -<html><head> -<!-- $Id: install.html,v 1.2 2006-03-15 04:44:50 matju Exp $ --> -<title>GridFlow 0.8.1 - Installation</title> -<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> -<link rel="stylesheet" href="gridflow.css" type="text/css"> -</head> -<body bgcolor="#FFFFFF" - leftmargin="0" topmargin="0" - marginwidth="0" marginheight="0"> -<table width="100%" bgcolor="white" border="0" cellspacing="2"> -<tr><td colspan="4" bgcolor="#082069"> -<img src="images/titre_gridflow.png" width="253" height="23"> -</td></tr><tr><td> </td></tr> -<tr><td colspan="4" bgcolor="black"> -<img src="images/black.png" width="1" height="2"></td></tr> -<tr><td colspan="4" height="16"> - <h4>GridFlow 0.8.1 - Installation</h4> -</td></tr> -<tr> - <td width="5%" rowspan="2"> </td> - <td width="15%" height="23"> </td> - <td width="80%" height="23"> </td> - <td width="5%" height="23"> </td> -</tr> -<tr><td colspan="2"><div cols="1"><h4><a href="#Hardware_and_Software_you_Probably_Need">Hardware and Software you Probably Need</a></h4><ul> -</ul> -<h4><a href="#Downloading_from_CVS">Downloading from CVS</a></h4><ul> -</ul> -<h4><a href="#Installation_instructions_(incl._compilation)">Installation instructions (incl. compilation)</a></h4><ul> -</ul> -<h4><a href="#Other_Tips">Other Tips</a></h4><ul> -</ul> -<br><br> -</div></td></tr> <tr><td colspan="4" bgcolor="black"> -<img src="images/black.png" width="1" height="2"></td></tr> -<tr><td colspan="4"><a name="Hardware_and_Software_you_Probably_Need"></a><h4>Hardware and Software you Probably Need</h4></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td></td><td></td><td><p>Required Computer/Processor (one of...):<ul> <li><b>1</b> : PC : AMD K6/K7/K8 or Intel P2/P3/P4 (absolute minimum is 386)</li> <li><b>2</b> : Macintosh : G3/G4/G5</li> <li><b>3</b> : Corel NetWinder : StrongARM V4L</li> <li><b>4</b> : HP iPaq : some processor that works like the NetWinder</li> <li><b>5</b> : could work on SiliconGraphics and SPARCstation with a little nurture.</li> </ul></p></td></tr> -<tr><td></td><td></td><td> </td></tr> -<tr><td></td><td></td><td><p>Required OS (one of...):<ul> <li><b>1</b> : Linux (most any variant) (recommended)</li> <li><b>2</b> : MacOS 10.2 or later (experimental)</li> <li><b>3</b> : Windows with MinGW (very experimental)</li> </ul></p></td></tr> -<tr><td></td><td></td><td> </td></tr> -<tr><td></td><td></td><td><p>Required Software:<ul> <li><b>1</b> : Ruby 1.6.6 or more recent (1.8.0 recommended) (make sure you have the *.so and *.h files) - (on MacOS you may have to remove or hide the existing one and install a more complete package)</li> </ul></p></td></tr> -<tr><td></td><td></td><td> </td></tr> -<tr><td></td><td></td><td><p>Dataflow Software :<ul> <li><b>1</b> : PureData 0.36 or later (recommended)</li> </ul></p></td></tr> -<tr><td></td><td></td><td> </td></tr> -<tr><td></td><td></td><td><p>Multimedia Components (optional):<ul> <li><b>1</b> : libSDL (Simple Directmedia Layer)</li> <li><b>2</b> : libjpeg</li> <li><b>3</b> : libpng</li> <li><b>4</b> : libmpeg3 (.mpg reader, HeroineWarrior's)</li> <li><b>5</b> : libquicktime (.mov reader/writer, Burkhard Plaum's or HeroineWarrior's) </li> <li><b>6</b> : libmpeg (.mpg reader, Greg Ward's, old)</li> <li><b>7</b> : Apple QuickTime (.mov reader/writer)</li> <li><b>8</b> : Ascii Art Library (aalib)</li> <li><b>9</b> : PCI video digitizer card (and Video4linux 1 driver)</li> <li><b>10</b> : USB camera (and Video4linux 1 driver)</li> </ul></p></td></tr> -<tr><td></td><td></td><td> </td></tr> -<tr><td></td><td></td><td><p>Developer Tools (roll-your-own):<ul> <li><b>1</b> : GNU C++ Compiler (gcc/g++) version 3.x or maybe 2.95</li> <li><b>2</b> : GNU Make (gmake)</li> <li><b>3</b> : CVS (for upgrading/collaboration)</li> <li><b>4</b> : Ruby library "xmlparser" (optional, for editing documentation)</li> <li><b>5</b> : Developer Tools CD dec 2002 (if MacOS 10.2)</li> <li><b>6</b> : XCODE (if MacOS 10.3)</li> <li><b>7</b> : FINK (if MacOS 10)</li> </ul></p></td></tr> -<tr><td></td><td></td><td> </td></tr> -<tr><td></td><td></td><td><p>NOTE: Apparently GCC 2.x has problems dealing with *.a components; if that -affects you, use *.so files instead.</p></td></tr> -<tr><td></td><td></td><td> </td></tr> -<tr><td> </td></tr> - <tr><td colspan="4" bgcolor="black"> -<img src="images/black.png" width="1" height="2"></td></tr> -<tr><td colspan="4"><a name="Downloading_from_CVS"></a><h4>Downloading from CVS</h4></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td></td><td></td><td><p>The CVS has the absolute latest version of GridFlow, but it's not guaranteed to be working, whereas -the actual releases are more tested.</p></td></tr> -<tr><td></td><td></td><td> </td></tr> -<tr><td></td><td></td><td><p>However you may have various reasons to use the CVS edition, so here's how:</p></td></tr> -<tr><td></td><td></td><td> </td></tr> -<tr><td></td><td></td><td><p>Make sure you have the <kbd><font color="#007777">cvs</font></kbd> program installed.</p></td></tr> -<tr><td></td><td></td><td> </td></tr> -<tr><td></td><td></td><td><p><kbd><font color="#007777">mkdir -p ~/src/gridflow</font></kbd> (make a directory; it could be called otherwise if you like)</p></td></tr> -<tr><td></td><td></td><td> </td></tr> -<tr><td></td><td></td><td><p><kbd><font color="#007777">cd ~/src/gridflow</font></kbd> (go in that directory)</p></td></tr> -<tr><td></td><td></td><td> </td></tr> -<tr><td></td><td></td><td><p><kbd><font color="#007777">cvs -d :pserver:anonymous@cvs.gridflow.ca:/home/cvs/gridflow login</font></kbd> (the password is blank)</p></td></tr> -<tr><td></td><td></td><td> </td></tr> -<tr><td></td><td></td><td><p><kbd><font color="#007777">cvs -d :pserver:anonymous@cvs.gridflow.ca:/home/cvs/gridflow checkout .</font></kbd> (download the first time)</p></td></tr> -<tr><td></td><td></td><td> </td></tr> -<tr><td></td><td></td><td><p>And the subsequent times, you only do this:</p></td></tr> -<tr><td></td><td></td><td> </td></tr> -<tr><td></td><td></td><td><p><kbd><font color="#007777">cd ~/src/gridflow</font></kbd></p></td></tr> -<tr><td></td><td></td><td> </td></tr> -<tr><td></td><td></td><td><p><kbd><font color="#007777">cvs update -dP</font></kbd></p></td></tr> -<tr><td></td><td></td><td> </td></tr> -<tr><td> </td></tr> - <tr><td colspan="4" bgcolor="black"> -<img src="images/black.png" width="1" height="2"></td></tr> -<tr><td colspan="4"><a name="Installation_instructions_(incl._compilation)"></a><h4>Installation instructions (incl. compilation)</h4></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td></td><td></td><td><ul> <li><b>1</b> : Install Ruby. Make sure it contains <kbd><font color="#007777">ruby.h</font></kbd> and <kbd><font color="#007777">intern.h</font></kbd> and related files. It's also -recommended to have <kbd><font color="#007777">libruby.so</font></kbd>. Those extra files may be in a package called <kbd><font color="#007777">ruby-dev</font></kbd> -if you are using RPM or DEB/FINK. If you are building Ruby yourself, it's better to configure ruby with <kbd><font color="#007777">--enable-shared</font></kbd>. If you install into a system directory, you may have to run <kbd><font color="#007777">ldconfig</font></kbd> -after installing Ruby.</li> <li><b>2</b> : Download GridFlow from the website and uncompress it, or get it from the CVS server.</li> <li><b>3</b> : Run <kbd><font color="#007777">./configure</font></kbd> from the <kbd><font color="#007777">gridflow</font></kbd> directory. Make sure it detects all the components -you want to use with GridFlow. In MacOS you would normally use FINK to install: <kbd><font color="#007777">libjpeg libjpeg-shlibs libpng-shlibs libpng3 libpng3-shlibs libmpeg libmpeg-shlibs</font></kbd> </li> <li><b>4</b> : Note: you may have to set <kbd><font color="#007777">CPLUS_INCLUDE_PATH</font></kbd> to indicate where to find *.h files, and you -may have to set both <kbd><font color="#007777">LIBRARY_PATH</font></kbd> and <kbd><font color="#007777">LD_LIBRARY_PATH</font></kbd> to indicate where to find -*.so or *.aor *.dylib or *.bundle or *.dll or *.lib files.</li> <li><b>5</b> : Note: you can do <kbd><font color="#007777">./configure --help</font></kbd> to get a list of supported -options. You can use them to ignore the presence of troublesome libraries -and select debugging level. With <kbd><font color="#007777">--use-compiler</font></kbd> you should use a version of <kbd><font color="#007777">g++</font></kbd>, not -directly a version of <kbd><font color="#007777">gcc</font></kbd>, else you get <kbd><font color="#007777">undefined symbol</font></kbd> problems. Some versions of gcc/g++ -are troublesome.</li> <li><b>6</b> : Run <kbd><font color="#007777">make</font></kbd> to produce the executables <kbd><font color="#007777">gridflow.so</font></kbd> and <kbd><font color="#007777">gridflow.pd_linux</font></kbd> or similar</li> <li><b>7</b> : Run <kbd><font color="#007777">make install</font></kbd> to copy those executables and related files to their final locations.</li> <li><b>8</b> : Run <kbd><font color="#007777">make test</font></kbd> just to verify that GridFlow isn't working too bad.</li> <li><b>9</b> : With a text editor, create <kbd><font color="#007777">~/.gridflow_startup</font></kbd> and write something like <kbd><font color="#007777">GridFlow.data_path << "/home/myself/gridflow/images"</font></kbd> to tell GridFlow where to find the -images used in the examples. You may add more lines like that one if you have folders containing images -or movies you want to use with GridFlow.</li> <li><b>10</b> : Loading GridFlow:<ul> <li><b>1</b> : PureData : With a text editor, modify or create <kbd><font color="#007777">~/.pdrc</font></kbd> and write <kbd><font color="#007777">-lib gridflow</font></kbd>. </li> <li><b>2</b> : ImpureData : In the ".pdrc editor", add <kbd><font color="#007777">gridflow</font></kbd> to the list of libraries.</li> <li><b>3</b> : plain Ruby : the command <kbd><font color="#007777">require "gridflow"</font></kbd> will load gridflow.so.</li> </ul> -Note that on MacOS the dot-files are invisible in the Finder but you do <kbd><font color="#007777">cd ~/Desktop; ln -s ../.pdrc "PureData Configuration"</font></kbd> to make an alias on the Desktop. -Note also that on Windows the dot-files are even more trouble.</li> </ul></td></tr> -<tr><td></td><td></td><td> </td></tr> -<tr><td> </td></tr> - <tr><td colspan="4" bgcolor="black"> -<img src="images/black.png" width="1" height="2"></td></tr> -<tr><td colspan="4"><a name="Other_Tips"></a><h4>Other Tips</h4></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td></td><td></td><td><ul> <li><b>1</b> : you just did a CVS update and now the program does not compile, or -crashes, or changes didn't go through. <ul> <li><b>1</b> : Did you forget the "make install" step?</li> <li><b>2</b> : If a new directory is created, you need to do <kbd><font color="#007777">cvs update -d</font></kbd>. - Many people just add that option to their configuration of the CVS software.</li> <li><b>3</b> : When some kinds of changes have happened, you may have to rerun the <kbd><font color="#007777">configure</font></kbd> - program before redoing <kbd><font color="#007777">make</font></kbd>. If you had previously reconfigured with specific options, - don't forget to use them again in this case.</li> <li><b>4</b> : Maybe matju forgot to upload part of an important change. Tell him.</li> </ul></li> <li><b>2</b> : PureData Crashing: <ul> <li><b>1</b> : you can start the debugger like <kbd><font color="#007777">gdb `which pd` core.24255</font></kbd> where the latter part - is the name of a RAM dump file. You can enable those dumps using the shell command <kbd><font color="#007777">ulimit -c unlimited</font></kbd>. To avoid dumping, you can also start Pd from within the debugger - using <kbd><font color="#007777">gdb `which pd`</font></kbd> then <kbd><font color="#007777">run</font></kbd> then cause the crash.</li> <li><b>2</b> : In GDB, after a crash, you can use the <kbd><font color="#007777">where</font></kbd> to find out what Pd was doing at the moment - of the crash. If instead Pd is frozen, you can force it to crash using Ctrl+C in the terminal. </li> <li><b>3</b> : To quit GDB use the <kbd><font color="#007777">quit</font></kbd> command. (really.)</li> </ul></li> </ul></td></tr> -<tr><td></td><td></td><td> </td></tr> -<tr><td> </td></tr> - <td colspan="4" bgcolor="black"> -<img src="images/black.png" width="1" height="2"></td></tr> -<tr><td colspan="4"> -<p><font size="-1"> -GridFlow 0.8.1 Documentation<br> -Copyright © 2001,2002,2003,2004,2005,2006 by Mathieu Bouchard -<a href="mailto:matju@artengine.ca">matju@artengine.ca</a> -</font></p> -</td></tr></table></body></html> - - diff --git a/externals/gridflow/doc/install.xml b/externals/gridflow/doc/install.xml deleted file mode 100644 index e1f1c434..00000000 --- a/externals/gridflow/doc/install.xml +++ /dev/null @@ -1,140 +0,0 @@ -<?xml version="1.0" standalone="no" ?> -<!DOCTYPE documentation SYSTEM 'jmax.dtd'> -<documentation title="Installation"> -<!-- $Id: install.xml,v 1.2 2006-03-15 04:44:50 matju Exp $ --> -<!-- - GridFlow Installation - Copyright (c) 2001,2002,2003,2004,2005 by Mathieu Bouchard ---> -<section name="Hardware and Software you Probably Need"> -<p>Required Computer/Processor (one of...):<list> - <li>PC : AMD K6/K7/K8 or Intel P2/P3/P4 (absolute minimum is 386)</li> - <li>Macintosh : G3/G4/G5</li> - <li>Corel NetWinder : StrongARM V4L</li> - <li>HP iPaq : some processor that works like the NetWinder</li> - <li>could work on SiliconGraphics and SPARCstation with a little nurture.</li> -</list></p> -<p>Required OS (one of...):<list> - <li>Linux (most any variant) (recommended)</li> - <li>MacOS 10.2 or later (experimental)</li> - <li>Windows with MinGW (very experimental)</li> -</list></p> -<p>Required Software:<list> - <li>Ruby 1.6.6 or more recent (1.8.0 recommended) (make sure you have the *.so and *.h files) - (on MacOS you may have to remove or hide the existing one and install a more complete package)</li> -</list></p> -<p>Dataflow Software :<list> - <li>PureData 0.36 or later (recommended)</li> -</list></p> -<p>Multimedia Components (optional):<list> - <li>libSDL (Simple Directmedia Layer)</li> - <li>libjpeg</li> - <li>libpng</li> - <li>libmpeg3 (.mpg reader, HeroineWarrior's)</li> - <li>libquicktime (.mov reader/writer, Burkhard Plaum's or HeroineWarrior's) </li> - <li>libmpeg (.mpg reader, Greg Ward's, old)</li> - <li>Apple QuickTime (.mov reader/writer)</li> - <li>Ascii Art Library (aalib)</li> - <li>PCI video digitizer card (and Video4linux 1 driver)</li> - <li>USB camera (and Video4linux 1 driver)</li> -</list></p> -<p>Developer Tools (roll-your-own):<list> - <li>GNU C++ Compiler (gcc/g++) version 3.x or maybe 2.95</li> - <li>GNU Make (gmake)</li> - <li>CVS (for upgrading/collaboration)</li> - <li>Ruby library "xmlparser" (optional, for editing documentation)</li> - <li>Developer Tools CD dec 2002 (if MacOS 10.2)</li> - <li>XCODE (if MacOS 10.3)</li> - <li>FINK (if MacOS 10)</li> -</list></p> -<p>NOTE: Apparently GCC 2.x has problems dealing with *.a components; if that -affects you, use *.so files instead.</p> -</section> - -<section name="Downloading from CVS"> -<p>The CVS has the absolute latest version of GridFlow, but it's not guaranteed to be working, whereas -the actual releases are more tested.</p> -<p>However you may have various reasons to use the CVS edition, so here's how:</p> -<p>Make sure you have the <k>cvs</k> program installed.</p> -<p><k>mkdir -p ~/src/gridflow</k> (make a directory; it could be called otherwise if you like)</p> -<p><k>cd ~/src/gridflow</k> (go in that directory)</p> -<p><k>cvs -d :pserver:anonymous@cvs.gridflow.ca:/home/cvs/gridflow login</k> (the password is blank)</p> -<p><k>cvs -d :pserver:anonymous@cvs.gridflow.ca:/home/cvs/gridflow checkout .</k> (download the first time)</p> -<p>And the subsequent times, you only do this:</p> -<p><k>cd ~/src/gridflow</k></p> -<p><k>cvs update -dP</k></p> -</section> - -<section name="Installation instructions (incl. compilation)"> -<list> -<li>Install Ruby. Make sure it contains <k>ruby.h</k> and <k>intern.h</k> and related files. It's also -recommended to have <k>libruby.so</k>. Those extra files may be in a package called <k>ruby-dev</k> -if you are using RPM or DEB/FINK. If you are building Ruby yourself, it's better to configure ruby with -<k>--enable-shared</k>. If you install into a system directory, you may have to run <k>ldconfig</k> -after installing Ruby.</li> - -<li>Download GridFlow from the website and uncompress it, or get it from the CVS server.</li> - -<li>Run <k>./configure</k> from the <k>gridflow</k> directory. Make sure it detects all the components -you want to use with GridFlow. In MacOS you would normally use FINK to install: - <k>libjpeg libjpeg-shlibs libpng-shlibs libpng3 libpng3-shlibs libmpeg libmpeg-shlibs</k> -</li> - -<li>Note: you may have to set <k>CPLUS_INCLUDE_PATH</k> to indicate where to find *.h files, and you -may have to set both <k>LIBRARY_PATH</k> and <k>LD_LIBRARY_PATH</k> to indicate where to find -*.so or *.aor *.dylib or *.bundle or *.dll or *.lib files.</li> - -<li>Note: you can do <k>./configure --help</k> to get a list of supported -options. You can use them to ignore the presence of troublesome libraries -and select debugging level. With <k>--use-compiler</k> you should use a version of <k>g++</k>, not -directly a version of <k>gcc</k>, else you get <k>undefined symbol</k> problems. Some versions of gcc/g++ -are troublesome.</li> - -<li>Run <k>make</k> to produce the executables <k>gridflow.so</k> and <k>gridflow.pd_linux</k> or similar</li> -<li>Run <k>make install</k> to copy those executables and related files to their final locations.</li> -<li>Run <k>make test</k> just to verify that GridFlow isn't working too bad.</li> -<li>With a text editor, create <k>~/.gridflow_startup</k> and write something like -<k>GridFlow.data_path << "/home/myself/gridflow/images"</k> to tell GridFlow where to find the -images used in the examples. You may add more lines like that one if you have folders containing images -or movies you want to use with GridFlow.</li> -<li>Loading GridFlow:<list> - <li>PureData : With a text editor, modify or create <k>~/.pdrc</k> and write <k>-lib gridflow</k>. </li> - <li>ImpureData : In the ".pdrc editor", add <k>gridflow</k> to the list of libraries.</li> - <li>plain Ruby : the command <k>require "gridflow"</k> will load gridflow.so.</li> -</list> -Note that on MacOS the dot-files are invisible in the Finder but you do -<k>cd ~/Desktop; ln -s ../.pdrc "PureData Configuration"</k> to make an alias on the Desktop. -Note also that on Windows the dot-files are even more trouble.</li> -</list> -</section> - -<section name="Other Tips"> -<list> - -<li>you just did a CVS update and now the program does not compile, or -crashes, or changes didn't go through. - <list> - <li>Did you forget the "make install" step?</li> - <li>If a new directory is created, you need to do <k>cvs update -d</k>. - Many people just add that option to their configuration of the CVS software.</li> - <li>When some kinds of changes have happened, you may have to rerun the <k>configure</k> - program before redoing <k>make</k>. If you had previously reconfigured with specific options, - don't forget to use them again in this case.</li> - <li>Maybe matju forgot to upload part of an important change. Tell him.</li> - </list></li> - - -<li>PureData Crashing: - <list> - <li>you can start the debugger like <k>gdb `which pd` core.24255</k> where the latter part - is the name of a RAM dump file. You can enable those dumps using the shell command - <k>ulimit -c unlimited</k>. To avoid dumping, you can also start Pd from within the debugger - using <k>gdb `which pd`</k> then <k>run</k> then cause the crash.</li> - <li>In GDB, after a crash, you can use the <k>where</k> to find out what Pd was doing at the moment - of the crash. If instead Pd is frozen, you can force it to crash using Ctrl+C in the terminal. - </li> - <li>To quit GDB use the <k>quit</k> command. (really.)</li> -</list></li> -</list> -</section> -</documentation> diff --git a/externals/gridflow/doc/internals.html b/externals/gridflow/doc/internals.html deleted file mode 100644 index 4a2e7978..00000000 --- a/externals/gridflow/doc/internals.html +++ /dev/null @@ -1,206 +0,0 @@ -<html><head> -<!-- $Id: internals.html,v 1.2 2006-03-15 04:44:50 matju Exp $ --> -<title>GridFlow 0.8.1 - C++/Ruby Internals</title> -<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> -<link rel="stylesheet" href="gridflow.css" type="text/css"> -</head> -<body bgcolor="#FFFFFF" - leftmargin="0" topmargin="0" - marginwidth="0" marginheight="0"> -<table width="100%" bgcolor="white" border="0" cellspacing="2"> -<tr><td colspan="4" bgcolor="#082069"> -<img src="images/titre_gridflow.png" width="253" height="23"> -</td></tr><tr><td> </td></tr> -<tr><td colspan="4" bgcolor="black"> -<img src="images/black.png" width="1" height="2"></td></tr> -<tr><td colspan="4" height="16"> - <h4>GridFlow 0.8.1 - C++/Ruby Internals</h4> -</td></tr> -<tr> - <td width="5%" rowspan="2"> </td> - <td width="15%" height="23"> </td> - <td width="80%" height="23"> </td> - <td width="5%" height="23"> </td> -</tr> -<tr><td colspan="2"><div cols="1"><h4><a href="#notes">notes</a></h4><ul> -</ul> -<h4><a href="#Objects_for_Scripting">Objects for Scripting</a></h4><ul> -<li><a href="#ruby class FObject extending Data"><img src="flow_classes/ruby class FObject extending Data-icon.png" alt="[ruby class FObject extending Data]" border="0"></a></li> -<li><a href="#ruby class GridObject extending FObject"><img src="flow_classes/ruby class GridObject extending FObject-icon.png" alt="[ruby class GridObject extending FObject]" border="0"></a></li> -<li><a href="#ruby class BitPacking"><img src="flow_classes/ruby class BitPacking-icon.png" alt="[ruby class BitPacking]" border="0"></a></li> -<li><a href="#ruby FPatcher extending FObject"><img src="flow_classes/ruby FPatcher extending FObject-icon.png" alt="[ruby FPatcher extending FObject]" border="0"></a></li> -<li><a href="#ruby GridFlow::USB"><img src="flow_classes/ruby GridFlow::USB-icon.png" alt="[ruby GridFlow::USB]" border="0"></a></li> -<li><a href="#ruby GridFlow::USB::Device"><img src="flow_classes/ruby GridFlow::USB::Device-icon.png" alt="[ruby GridFlow::USB::Device]" border="0"></a></li> -<li><a href="#ruby GridFlow::USB::Config"><img src="flow_classes/ruby GridFlow::USB::Config-icon.png" alt="[ruby GridFlow::USB::Config]" border="0"></a></li> -<li><a href="#ruby GridFlow::USB::Interface"><img src="flow_classes/ruby GridFlow::USB::Interface-icon.png" alt="[ruby GridFlow::USB::Interface]" border="0"></a></li> -<li><a href="#ruby GridFlow::USB::Endpoint"><img src="flow_classes/ruby GridFlow::USB::Endpoint-icon.png" alt="[ruby GridFlow::USB::Endpoint]" border="0"></a></li> -</ul> -<h4><a href="#Objects_for_Internals">Objects for Internals</a></h4><ul> -<li><a href="#C++ class GridInlet"><img src="flow_classes/C++ class GridInlet-icon.png" alt="[C++ class GridInlet]" border="0"></a></li> -<li><a href="#C++ class GridOutlet"><img src="flow_classes/C++ class GridOutlet-icon.png" alt="[C++ class GridOutlet]" border="0"></a></li> -<li><a href="#C++ class Dim"><img src="flow_classes/C++ class Dim-icon.png" alt="[C++ class Dim]" border="0"></a></li> -<li><a href="#C++ class Grid"><img src="flow_classes/C++ class Grid-icon.png" alt="[C++ class Grid]" border="0"></a></li> -<li><a href="#C++ class Numop1"><img src="flow_classes/C++ class Numop1-icon.png" alt="[C++ class Numop1]" border="0"></a></li> -<li><a href="#C++ class Numop2"><img src="flow_classes/C++ class Numop2-icon.png" alt="[C++ class Numop2]" border="0"></a></li> -<li><a href="#C++ class GridClass"><img src="flow_classes/C++ class GridClass-icon.png" alt="[C++ class GridClass]" border="0"></a></li> -<li><a href="#C++ class GFBridge"><img src="flow_classes/C++ class GFBridge-icon.png" alt="[C++ class GFBridge]" border="0"></a></li> -</ul> -<br><br> -</div></td></tr> <tr><td colspan="4" bgcolor="black"> -<img src="images/black.png" width="1" height="2"></td></tr> -<tr><td colspan="4"><a name="notes"></a><h4>notes</h4></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td></td><td></td><td><p>In Ruby, GridFlow defines a namespace (module) called GridFlow. Most of the -constants it defines are part of that namespace.</p></td></tr> -<tr><td></td><td></td><td> </td></tr> -<tr><td></td><td></td><td><p>Ruby does not have the same concept of object as PD. In GridFlow, object classes may -inherit features from other object classes, and also there is no concept of inlet nor outlet, which are instead -provided by <kbd><font color="#007777">GridFlow::FObject</font></kbd>, which also has the purpose of exporting functionality to -PD.</p></td></tr> -<tr><td></td><td></td><td> </td></tr> -<tr><td></td><td></td><td><p>In this document (and in many others) the phrase "a Potato" will be a shorthand for "an object of the class -called Potato", which is often used in modern software design and is a nice convention borrowed from -biology.</p></td></tr> -<tr><td></td><td></td><td> </td></tr> -<tr><td></td><td></td><td><p> -A FObject is normally in two or three parts: a (Ruby) GridFlow::FObject -that is the central part; a (C++) FObject; a (C++) BFObject. -The GridFlow::FObject is created as a RData kind of box (T_DATA) -using Ruby-C's Data_Make_Struct on a GridObject. This is -how most Ruby-C programs inherit from Ruby classes. Note that -Ruby's boxed objects have a maximum of five fields, and they're usually -taken, so additional fields have to be outside of it. This is why RData exists. </p></td></tr> -<tr><td></td><td></td><td> </td></tr> -<tr><td></td><td></td><td><p> -So basically you have a C++ FObject that is "part of" a GridFlow::FObject -and they point to each other using "peer pointers". - The BFObject links back to the RData box through a pointer called peer. </p></td></tr> -<tr><td></td><td></td><td> </td></tr> -<tr><td> </td></tr> - <tr><td colspan="4" bgcolor="black"> -<img src="images/black.png" width="1" height="2"></td></tr> -<tr><td colspan="4"><a name="Objects_for_Scripting"></a><h4>Objects for Scripting</h4></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="ruby class FObject extending Data">ruby class FObject extending Data</a></td></tr><tr><td></td><td valign="top"><br> -<br clear="left"><br><br><br clear="left"><br></td><td><br> - - Provides inlets and outlets to Ruby Objects. <br><b>method</b> init <b>(</b><b>)</b> <br> - <br><b>method</b> send_in <b>(</b><i>int</i> inlet<b>, </b>message...<b>)</b> <br> - <br><b>method</b> send_out <b>(</b><i>int</i> outlet<b>, </b>message...<b>)</b> <br> - <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="ruby class GridObject extending FObject">ruby class GridObject extending FObject</a></td></tr><tr><td></td><td valign="top"><br> -<br clear="left"><br><br><br clear="left"><br></td><td><br> - - Provides grid support to FObjects. <br><b>method</b> inlet_dim <b>(</b><i>Integer</i> inlet<b>)</b> - gives an array of Integers (dimension list) <br> - <br><b>method</b> inlet_nt <b>(</b><i>Integer</i> inlet<b>)</b> - gives a Symbol (number type) <br> - <br><b>method</b> inlet_set_factor <b>(</b><i>Integer</i> inlet<b>, </b><i>Integer</i> factor<b>)</b> - ensures received packets have a size that is - a whole multiple of this size. - must be called from rgrid_begin. <br> - <br><b>method</b> send_out_grid_begin <b>(</b><i>Integer</i> outlet<b>, </b><i>Array of Integer</i> dimensions<b>, </b><i>number type</i> nt<b>)</b> - establishes grid streams between an outlet and all inlets - connected to it. <br> - <br><b>method</b> send_out_grid_flow <b>(</b><i>Integer</i> outlet<b>, </b><i>String</i> data<b>)</b> - for sending a grid data packet through that outlet. <br> - <br><b>method</b> send_out_grid_end <b>(</b><i>Integer</i> outlet<b>)</b> - (isn't this one obsolete?) <br> - <br><b>inlet 0 </b><b>method</b> rgrid_begin <b>(</b><b>)</b> <br> - <br><b>inlet 0 </b><b>method</b> rgrid_flow <b>(</b><i>String</i> data<b>)</b> <br> - <br><b>inlet 0 </b><b>method</b> rgrid_end <b>(</b><b>)</b> <br> - <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="ruby class BitPacking">ruby class BitPacking</a></td></tr><tr><td></td><td valign="top"><br> -<br clear="left"><br><br><br clear="left"><br></td><td><br> - - A BitPacking is a simple two-way converter between different - numeric layouts. <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="ruby FPatcher extending FObject">ruby FPatcher extending FObject</a></td></tr><tr><td></td><td valign="top"><br> -<br clear="left"><br><br><br clear="left"><br></td><td><br> - <p>This class is much like PureData's abstractions.</p> <p>This is a container for objects. Its proper objects are numbered - starting with zero. The wire list is given in terms of those numbers: - (sourceobject,sourceinlet,destobject,destinlet). There is a - pseudo-object numbered #-1 which map to the container's own inlets - and outlets.</p> <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="ruby GridFlow::USB">ruby GridFlow::USB</a></td></tr><tr><td></td><td valign="top"><br> -<br clear="left"><br><br><br clear="left"><br></td><td><br> -<p>wrapper for struct usb_dev_handle</p> <br><b>attr</b> .busses <b>(</b><b>.busses</b><b>)</b> <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="ruby GridFlow::USB::Device">ruby GridFlow::USB::Device</a></td></tr><tr><td></td><td valign="top"><br> -<br clear="left"><br><br><br clear="left"><br></td><td><br> - <p>wrapper for struct usb_device and struct usb_device_descriptor</p> <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="ruby GridFlow::USB::Config">ruby GridFlow::USB::Config</a></td></tr><tr><td></td><td valign="top"><br> -<br clear="left"><br><br><br clear="left"><br></td><td><br> - <p>wrapper for struct usb_config_descriptor, struct usb_interface</p> <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="ruby GridFlow::USB::Interface">ruby GridFlow::USB::Interface</a></td></tr><tr><td></td><td valign="top"><br> -<br clear="left"><br><br><br clear="left"><br></td><td><br> - <p>wrapper for struct usb_interface_descriptor</p> <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="ruby GridFlow::USB::Endpoint">ruby GridFlow::USB::Endpoint</a></td></tr><tr><td></td><td valign="top"><br> -<br clear="left"><br><br><br clear="left"><br></td><td><br> - <p>wrapper for struct usb_endpoint_descriptor</p> <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td> </td></tr> - <tr><td colspan="4" bgcolor="black"> -<img src="images/black.png" width="1" height="2"></td></tr> -<tr><td colspan="4"><a name="Objects_for_Internals"></a><h4>Objects for Internals</h4></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="C++ class GridInlet">C++ class GridInlet</a></td></tr><tr><td></td><td valign="top"><br> -<br clear="left"><br><br><br clear="left"><br></td><td><br> - - GridInlets represent inlets that accept grids. <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="C++ class GridOutlet">C++ class GridOutlet</a></td></tr><tr><td></td><td valign="top"><br> -<br clear="left"><br><br><br clear="left"><br></td><td><br> - - GridOutlets represent outlets that send grids. <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="C++ class Dim">C++ class Dim</a></td></tr><tr><td></td><td valign="top"><br> -<br clear="left"><br><br><br clear="left"><br></td><td><br> - - Dim represents a list of dimensions. <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="C++ class Grid">C++ class Grid</a></td></tr><tr><td></td><td valign="top"><br> -<br clear="left"><br><br><br clear="left"><br></td><td><br> - - Grid represents a grid that is fully stored in memory. <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="C++ class Numop1">C++ class Numop1</a></td></tr><tr><td></td><td valign="top"><br> -<br clear="left"><br><br><br clear="left"><br></td><td><br> - - This represents a one-input operator. - Such an object contains a map() function that applies the operator - over a memory segment. <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="C++ class Numop2">C++ class Numop2</a></td></tr><tr><td></td><td valign="top"><br> -<br clear="left"><br><br><br clear="left"><br></td><td><br> - - This represents a two-input operator. - Such an object contains four functions for each T, where - T is one of the types uint8, int16, int32, float32. <br><b>method</b> map <b>(</b><i>integer</i> n<b>, </b><i>Pt<T></i> as<b>, </b><i>T</i> b<b>)</b> - for i in 0...n, - as[i] := f(as[i],b); - This is like <kbd><font color="#007777">[#]</font></kbd> with a scalar righthand <br> - <br><b>method</b> zip <b>(</b><i>integer</i> n<b>, </b><i>Pt<T></i> as<b>, </b><i>Pt<T></i> bs<b>)</b> - for i in 0...n, - as[i] := f(as[i],bs[i]); - bs is not modified. - (This is like <kbd><font color="#007777">[#]</font></kbd> with a nonscalar righthand) <br> - <br><b>method</b> fold <b>(</b><i>integer</i> an<b>, </b><i>integer</i> n<b>, </b><i>Pt<T></i> as<b>, </b><i>Pt<T></i> bs<b>)</b> <p> - for i in 0...n, - for j in 0...an, - as[j] := f(as[j],bs[i*an+j]); </p> - (this is like <kbd><font color="#007777">[#fold]</font></kbd>) <br> - <br><b>method</b> scan <b>(</b><i>integer</i> an<b>, </b><i>integer</i> n<b>, </b><i>Pt<T></i> as<b>, </b><i>Pt<T></i> bs<b>)</b> <p> for j in 0...an: bs[j] := f(as[j],bs[j]); </p> <p> for i in 1...n: for j in 0...an: - bs[j] := f(bs[(i-1)*an+j],bs[i*an+j]); </p> - (this is like <kbd><font color="#007777">[#scan]</font></kbd>) <br> - <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="C++ class GridClass">C++ class GridClass</a></td></tr><tr><td></td><td valign="top"><br> -<br clear="left"><br><br><br clear="left"><br></td><td><br> - - This represents a class of GridObjects. <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="C++ class GFBridge">C++ class GFBridge</a></td></tr><tr><td></td><td valign="top"><br> -<br clear="left"><br><br><br clear="left"><br></td><td><br> - - This holds linkage information about PureData. <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td> </td></tr> - <td colspan="4" bgcolor="black"> -<img src="images/black.png" width="1" height="2"></td></tr> -<tr><td colspan="4"> -<p><font size="-1"> -GridFlow 0.8.1 Documentation<br> -Copyright © 2001,2002,2003,2004,2005,2006 by Mathieu Bouchard -<a href="mailto:matju@artengine.ca">matju@artengine.ca</a> -</font></p> -</td></tr></table></body></html> - - diff --git a/externals/gridflow/doc/internals.xml b/externals/gridflow/doc/internals.xml deleted file mode 100644 index 952d0507..00000000 --- a/externals/gridflow/doc/internals.xml +++ /dev/null @@ -1,228 +0,0 @@ -<?xml version="1.0" standalone="no" ?> -<!DOCTYPE documentation SYSTEM 'jmax.dtd'> -<documentation title="C++/Ruby Internals"> -<!-- $Id: internals.xml,v 1.2 2006-03-15 04:44:50 matju Exp $ --> -<!-- - GridFlow Reference Manual: Internals - Copyright (c) 2001,2002,2003,2004,2005 by Mathieu Bouchard ---> -<section name="notes"> - -<p>In Ruby, GridFlow defines a namespace (module) called GridFlow. Most of the -constants it defines are part of that namespace.</p> -<p>Ruby does not have the same concept of object as PD. In GridFlow, object classes may -inherit features from other object classes, and also there is no concept of inlet nor outlet, which are instead -provided by <k>GridFlow::FObject</k>, which also has the purpose of exporting functionality to -PD.</p> -<p>In this document (and in many others) the phrase "a Potato" will be a shorthand for "an object of the class -called Potato", which is often used in modern software design and is a nice convention borrowed from -biology.</p> - -<p> -A FObject is normally in two or three parts: a (Ruby) GridFlow::FObject -that is the central part; a (C++) FObject; a (C++) BFObject. -The GridFlow::FObject is created as a RData kind of box (T_DATA) -using Ruby-C's Data_Make_Struct on a GridObject. This is -how most Ruby-C programs inherit from Ruby classes. Note that -Ruby's boxed objects have a maximum of five fields, and they're usually -taken, so additional fields have to be outside of it. This is why RData exists. -</p> - -<p> -So basically you have a C++ FObject that is "part of" a GridFlow::FObject -and they point to each other using "peer pointers". - The BFObject links back to the RData box through a pointer called peer. -</p> - -</section> - -<section name="Objects for Scripting"> - <class name="ruby class FObject extending Data"> - Provides inlets and outlets to Ruby Objects. - - <method name="init"> - </method> - - <method name="send_in"> - <arg name="inlet" type="int"/> - <rest name="message"/> - </method> - - <method name="send_out"> - <arg name="outlet" type="int"/> - <rest name="message"/> - </method> - - </class> - - <class name="ruby class GridObject extending FObject"> - Provides grid support to FObjects. - - <method name="inlet_dim"> - <arg name="inlet" type="Integer"/> - gives an array of Integers (dimension list) - </method> - - <method name="inlet_nt"> - <arg name="inlet" type="Integer"/> - gives a Symbol (number type) - </method> - - <method name="inlet_set_factor"> - <arg name="inlet" type="Integer"/> - <arg name="factor" type="Integer"/> - ensures received packets have a size that is - a whole multiple of this size. - must be called from rgrid_begin. - </method> - - <method name="send_out_grid_begin"> - <arg name="outlet" type="Integer"/> - <arg name="dimensions" type="Array of Integer"/> - <arg name="nt" type="number type" default="int32"/> - establishes grid streams between an outlet and all inlets - connected to it. - </method> - - <method name="send_out_grid_flow"> - <arg name="outlet" type="Integer"/> - <arg name="data" type="String"/> - for sending a grid data packet through that outlet. - </method> - - <method name="send_out_grid_end"> - <arg name="outlet" type="Integer"/> - (isn't this one obsolete?) - </method> - - <inlet id="0"> - <method name="rgrid_begin"/> - <method name="rgrid_flow"> - <arg name="data" type="String"/> - </method> - <method name="rgrid_end"/> - </inlet> - </class> - - <class name="ruby class BitPacking"> - A BitPacking is a simple two-way converter between different - numeric layouts. - </class> - - <class name="ruby FPatcher extending FObject"> - <p>This class is much like PureData's abstractions.</p> - <p>This is a container for objects. Its proper objects are numbered - starting with zero. The wire list is given in terms of those numbers: - (sourceobject,sourceinlet,destobject,destinlet). There is a - pseudo-object numbered #-1 which map to the container's own inlets - and outlets.</p> - </class> - - <class name="ruby GridFlow::USB"><p>wrapper for struct usb_dev_handle</p> - <attr name=".busses">wrapper for struct usb_bus and usb_get_busses()</attr> - </class> - - <class name="ruby GridFlow::USB::Device"> - <p>wrapper for struct usb_device and struct usb_device_descriptor</p> - </class> - - <class name="ruby GridFlow::USB::Config"> - <p>wrapper for struct usb_config_descriptor, struct usb_interface</p> - </class> - - <class name="ruby GridFlow::USB::Interface"> - <p>wrapper for struct usb_interface_descriptor</p> - </class> - - <class name="ruby GridFlow::USB::Endpoint"> - <p>wrapper for struct usb_endpoint_descriptor</p> - </class> -</section> - -<section name="Objects for Internals"> - <class name="C++ class GridInlet"> - GridInlets represent inlets that accept grids. - </class> - - <class name="C++ class GridOutlet"> - GridOutlets represent outlets that send grids. - </class> - - <class name="C++ class Dim"> - Dim represents a list of dimensions. - </class> - - <class name="C++ class Grid"> - Grid represents a grid that is fully stored in memory. - </class> - - <class name="C++ class Numop1"> - This represents a one-input operator. - Such an object contains a map() function that applies the operator - over a memory segment. - </class> - - <class name="C++ class Numop2"> - This represents a two-input operator. - Such an object contains four functions for each T, where - T is one of the types uint8, int16, int32, float32. - - <method name="map"> - <arg name="n" type="integer"/> - <arg name="as" type="Pt<T>"/> - <arg name="b" type="T"/> - for i in 0...n, - as[i] := f(as[i],b); - This is like <k>[#]</k> with a scalar righthand - </method> - - <method name="zip"> - <arg name="n" type="integer"/> - <arg name="as" type="Pt<T>"/> - <arg name="bs" type="Pt<T>"/> - for i in 0...n, - as[i] := f(as[i],bs[i]); - bs is not modified. - (This is like <k>[#]</k> with a nonscalar righthand) - </method> - - <method name="fold"> - <arg name="an" type="integer"/> - <arg name="n" type="integer"/> - <arg name="as" type="Pt<T>"/> - <arg name="bs" type="Pt<T>"/> - - <p> - for i in 0...n, - for j in 0...an, - as[j] := f(as[j],bs[i*an+j]); - </p> - - (this is like <k>[#fold]</k>) - </method> - - <method name="scan"> - <arg name="an" type="integer"/> - <arg name="n" type="integer"/> - <arg name="as" type="Pt<T>"/> - <arg name="bs" type="Pt<T>"/> - - <p> for j in 0...an: bs[j] := f(as[j],bs[j]); </p> - <p> for i in 1...n: for j in 0...an: - bs[j] := f(bs[(i-1)*an+j],bs[i*an+j]); </p> - - (this is like <k>[#scan]</k>) - </method> - </class> - - <class name="C++ class GridClass"> - This represents a class of GridObjects. - </class> - - <class name="C++ class GFBridge"> - This holds linkage information about PureData. - </class> - -</section> - -</documentation> diff --git a/externals/gridflow/doc/introduction.html b/externals/gridflow/doc/introduction.html deleted file mode 100644 index 8adf4ead..00000000 --- a/externals/gridflow/doc/introduction.html +++ /dev/null @@ -1,125 +0,0 @@ -<html> -<head> -<title>GridFlow 0.7.7 - Introduction</title> -<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> -<link rel="stylesheet" href="gridflow.css" type="text/css"> -</head> - -<body bgcolor="#FFFFFF" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0"> -<br> -<table width="100%" border="0" cellspacing="5"> - <tr><td colspan="4" bgcolor="#082069"> - <img src="images/titre_gridflow.png" width="253" height="23"></td></tr> - - <tr><td> </td></tr> - <tr><td colspan="4" bgcolor="black"><img src="images/black.png" width="1" height="2"></td></tr> - - <tr><td colspan="3" height="16"> - <h4>GridFlow 0.7.7 - introduction</h4> - </td></tr> - - <tr> - <td width="12%" height="4"> </td> - <td width="80%" height="4"> </td> - <td width="12%" height="4"> </td> - </tr> - - <tr> - <td width="13%"> </td> - <td width="82%"> - - <p> The philosophy that guides PureData is a simple but powerful one: - the software must first provide the user with generic tools - rather than imposing pre-cooked effects. In other words the user - should have total freedom. - - <p> GridFlow follows that philosophy: it first defines elementary - mathematical operations. Those can in turn be used as simple - visual effects or be combined to produce more complex effects. - - <p> The strategy followed by most video plugins for PureData, jMax, and MAX/MSP, is - to provide the user first with constructs for manipulating video - streams at a fairly high level. The strategy put forward by GridFlow - is different. - - <p> It can be said that in all those video plugins there are three layers: - the first, the low level, is not accessible to non-programmers (and fairly - difficult of access even to programmers); the second, mathematical, where - one needs not to be a C++ programmer, but still requires a good - understanding of how numbers and pixels and colours and geometry work; and - a third level that looks more like the software an artist would like to - use. - - <p> In other video plugins there is a fairly low emphasis on the second - layer. In GridFlow that layer is very strong and opens many possibilities. - Even though the third layer in GridFlow is not as developed as it could, - the second layer may be used to produce third-layer object classes much - more quickly. - - <p> GridFlow provides a unifying view of multimedia information. Several - kinds of data -- raster graphics in any number of channels, coordinate - transforms, matrices, vectors -- may all be represented by <b>Grids</b> - (also known as multi-dimensional arrays). Grids exist in several ways: they - are usually streamed from object to object, but they can also be stored in - memory, stored into a file, sent through the network. - - <p> The new GridFlow (0.6) also provides scripting, which inserts itself - between the first and second layer to provide additional functionality. The - language that has been chosen is Ruby, designed by Yukihiro Matsumoto - during the 90's. This new layer is used for portability between host - software (PureData vs jMax), for portability between platforms (Windows/Mac - versions do not exist but would be farther ahead if it wasn't for Ruby), - for independency from host software (GridFlow can be tested and used - independently of PureData/jMax), for quick extensibility (you can create - PureData/jMax object classes directly in GridFlow's configuration file), - and so on. - - <p> In short, GridFlow is a whole new world of possibilities for - the multimedia artist and programmer. - - <p>- matju</p> -</td></tr> - - <tr><td> </td></tr> - <tr><td colspan="4" bgcolor="black"><img src="images/black.png" width="1" height="2"></td></tr> - <tr> - <td width="13%"> </td> - <td width="82%"> - - <p> Here is an example of how things work in GridFlow. (if you want more - information, consult the rest of this manual) - - <p> A picture is a three-dimensional Grid:<br> - <b>0</b> : rows <br> - <b>1</b> : columns <br> - <b>2</b> : channels <br> - - <p> - Pictures come in all sorts of heights and widths. The channels, however, - are more limited in number. Usually it's three: Red, Green, Blue. - - <p> A coordinate transform, when specified pixel by pixel, may be a - three-dimensional Grid in which the two "channels" are Y and X, - representing row-and-column positions in a separate picture. - - <p> Other shapes of grids could be designed to represent various things; - for example, configuration for blur effects. Grids could be useful for - things not directly related to raster pictures (e.g. sound recordings). - Those are all kinds of things you could actually develop <i>within</i> the - PureData / GridFlow framework. You don't need to wait for me. -</td> - - <tr><td> </td></tr> - <tr><td colspan="4" bgcolor="black"><img src="images/black.png" width="1" height="2"></td></tr> - - <tr><td colspan="4"> - <p><font size="-1">GridFlow 0.7.7 Documentation<br> - by Mathieu Bouchard <a href="mailto:matju@sympatico.ca">matju@sympatico.ca</a> - and<br> - Alexandre Castonguay <a href="mailto:acastonguay@artengine.ca">acastonguay@artengine.ca</a></font></p> - </td> - </tr> - -</table> -</body> -</html> diff --git a/externals/gridflow/doc/license.html b/externals/gridflow/doc/license.html deleted file mode 100644 index 0414218f..00000000 --- a/externals/gridflow/doc/license.html +++ /dev/null @@ -1,75 +0,0 @@ -<html> -<head> -<!-- $Id: license.html,v 1.2 2006-03-15 04:44:50 matju Exp $ --> -<!-- - GridFlow Reference Manual: Architecture - Copyright (c) 2001,2002,2003,2004 by Mathieu Bouchard ---> -<title>GridFlow 0.7.7 - License</title> -<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> -<link rel="stylesheet" href="gridflow.css" type="text/css"> -</head> - -<body bgcolor="#FFFFFF" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0"> -<br> -<table width="100%" border="0" cellspacing="5"> - <tr><td colspan="4" bgcolor="#082069"> - <img src="images/titre_gridflow.png" width="253" height="23"></td></tr> - - <tr><td> </td></tr> - <tr><td colspan="4" bgcolor="black"><img src="images/black.png" width="1" height="2"></td></tr> - - <tr><td colspan="3" height="16"> - <h4>GridFlow 0.7.7 - License</h4> - </td></tr> - - <tr> - <td rowspan="2" width="12%"> </td> - <td colspan="2" width="80%"> </td> - <td rowspan="10" width="12%"> </td> - </tr> - - <tr><td colspan="2"> - <table cellspacing="1" cellpadding="0"><tr><td bgcolor="black"> - <table cellspacing="1" cellpadding="20"><tr><td bgcolor="white"> - <p> - Copyright (c) 2001,2002,2003,2004 by Mathieu Bouchard - - <p> - This program is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public License - as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - <p> - See file LICENSE for further informations on licensing terms. - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied - warranty of MERCHANTABILITY or FITNESS FOR A - PARTICULAR PURPOSE. See the GNU General Public - License for more details. - - <p> - You should have received a copy of the GNU General Public - License along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place - Suite 330, Boston, - MA 02111-1307, USA. - - </td></tr></table> - </td></tr></table> - </td> - </tr> - <tr><td> </td></tr> - <tr><td colspan="4" bgcolor="black"><img src="images/black.png" width="1" height="2"></td></tr> - - <tr><td colspan="4"> - <p><font size="-1">GridFlow 0.7.7 Documentation<br> - by Mathieu Bouchard <a href="mailto:matju@sympatico.ca">matju@sympatico.ca</a> - and<br> - Alexandre Castonguay <a href="mailto:acastonguay@artengine.ca">acastonguay@artengine.ca</a></font></p> - </td> - </tr> - -</table> -</body> -</html> diff --git a/externals/gridflow/doc/moulinette.rb b/externals/gridflow/doc/moulinette.rb deleted file mode 100644 index c74933d6..00000000 --- a/externals/gridflow/doc/moulinette.rb +++ /dev/null @@ -1,660 +0,0 @@ -=begin - $Id: moulinette.rb,v 1.2 2006-03-15 04:44:50 matju Exp $ - convert GridFlow Documentation XML to HTML with special formatting. - - GridFlow - Copyright (c) 2001,2002,2003,2004,2005 by Mathieu Bouchard - - This program is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public License - as published by the Free Software Foundation; either version 2 - of the License, or (at your option) any later version. - - See file ../../COPYING for further informations on licensing terms. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -=end - -GF_VERSION = "0.8.1" - -#$use_rexml = true -$use_rexml = false - -require "gridflow" - -if $use_rexml - # this is a pure ruby xml-parser - begin - require "rexml/sax2parser" - rescue LoadError - require "rexml/parsers/sax2parser" - include REXML::Parsers - end - include REXML -else - # this uses libexpat.so - require "xmlparser" -end - -=begin todo - - [ ] make it use the mk() function as much as possible. - [ ] make it validate - [ ] make it find the size of the pictures (and insert width/height attrs) - [ ] tune the output - [ ] fix the header of the page - -=end - -if nil - alias real_print print - alias real_puts puts - def print(*x); real_print "[#{caller[0]}]"; real_print *x; end - def puts (*x); real_print "[#{caller[0]}]"; real_puts *x; end -end - -def warn(text) - STDERR.print "\e[1;031mWARNING:\e[0m " - STDERR.puts text -end - -$escape_map={ - "<" => "<", - ">" => ">", - "&" => "&", -} - -# hackish transcoding from unicode to iso-8859-1 -def multicode(text); text.gsub(/\xc2(.)/) { $1 } end - -def html_quote(text) - return nil if not text - text = text.gsub(/[<>&]/) {|x| $escape_map[x] } - text = multicode(text) if /\xc2/ =~ text - text -end - -def mk(tag,*values,&block) - raise "value-list's length must be even" if values.length % 2 != 0 - print "<#{tag}" - i=0 - while i<values.length - print " #{values[i]}=\"#{values[i+1]}\"" - i+=2 - end - print ">" - (block[]; mke tag) if block -end -def mke(tag) - print "</#{tag}>" -end - -def mkimg(parent,alt=nil,prefix=nil) - #STDERR.puts parent.to_s - icon = parent.contents.find {|x| XNode===x and x.tag == 'icon' } - name = parent.att["name"] - url = prefix+"/"+name+"-icon.png" - if icon and icon.att["src"] - url = icon.att["src"] - STDERR.puts "overriding #{url} with #{icon.att["src"]}" - end - url = url.sub(/,.*$/,"") # what's this for again? - warn "icon #{url} not found" if not File.exist? url - url = url.gsub(%r"#") {|x| sprintf "%%%02x", x[0] } - alt = icon.att["text"] if icon and not alt - alt = "[#{name}]" - mk(:img, :src, url, :alt, alt, :border, 0) -end - -class XString < String - def show - print html_quote(gsub(/[\r\n\t ]+$/," ")) - end -end - -module HasOwnLayout; end - -class XNode - # subclass interface: - # #show_index : print as html in index - # #show : print as html in main part of the doc - - @valid_tags = {} - class<<self - attr_reader :valid_tags - def register(*args,&b) - qlass = (if b then Class.new self else self end) - qlass.class_eval(&b) if b - for k in args do XNode.valid_tags[k]=qlass end - #qlass.class_eval { - # public :show - # public :show_index - #} - end - def [](tag,att,*contents) - self.valid_tags[tag].new(tag,att,*contents) - end - end - - def initialize tag, att, *contents - @tag,@att,@contents = - tag, att, contents - contents.each {|c| c.parent = self if XNode===c } - end - - attr_reader :tag, :att, :contents - attr_accessor :parent - def [] i; contents[i] end - - def show_index - contents.each {|x| next unless XNode===x; x.show_index } - end - - # this method segfaults in ruby 1.8 - # because of method lookup on Qundef or whatever. - def show - #STDERR.puts GridFlow.get_id(contents) - #STDERR.puts self - contents.each {|x| - # STDERR.puts GridFlow.get_id(x) - x.show - } - end - def inspect; "#<XNode #{tag}>"; end - def to_s; inspect; end - def << x; contents << x; x.parent=self end -end - -XNode.register("documentation") {} - -XNode.register(*%w( icon help arg rest )) {public - def show; end -} - -XNode.register("section") {public - def show - write_black_ruler - mk(:tr) { mk(:td,:colspan,4) { - mk(:a,:name,att["name"].gsub(/ /,'_')) {} - mk(:h4) { print att["name"] }}} - - contents.each {|x| - if HasOwnLayout===x then - x.show - else - mk(:tr) { mk(:td) {}; mk(:td) {}; mk(:td) { x.show }} - puts "" - end - } - - mk(:tr) { mk(:td) { print " " }} - puts "" - end - def show_index - mk(:h4) { - mk(:a,:href,"#"+att["name"].gsub(/ /,'_')) { - print att["name"] }} - print "<ul>\n" - super - print "</ul>\n" - end -} - -# basic text formatting nodes. -XNode.register(*%w( p i u b sup )) {public - def show - print "<#{tag}>" - super - print "</#{tag}>" - end -} - -XNode.register("k") {public - def show - print "<kbd><font color=\"#007777\">" # oughta be in stylesheet? - super - print "</font></kbd>" - end -} - -# explicit hyperlink on the web. -XNode.register("link") {public - def show - STDERR.puts "att = #{att.inspect}" - raise if not att['to'] - print "<a href='#{att['to']}'>" - super - print att[:to] if contents.length==0 - print "</a>" - end -} - -XNode.register("list") {public - attr_accessor :counter - def show - self.counter = att.fetch("start"){"1"}.to_i - mk(:ul) { - super # method call on Qundef ??? - } - end -} - -XNode.register("li") {public - def show - mk(:li) { - print "<b>#{parent.counter}</b>", " : " - parent.counter += 1 - super - } - end -} - -# and "macro", "enum", "type", "use" -XNode.register("class") {public - include HasOwnLayout - def show - tag = self.tag - name = att['name'] or raise - mk(:tr) { - mk(:td,:colspan,4,:bgcolor,"#ffb080") { - mk(:b) { print " "*2, "#{tag} " } - mk(:a,:name,name) { print name } - } - } - mk(:tr) { - mk(:td) {} - mk(:td,:valign,:top) { - print "<br>\n" - help = contents.find {|x| XNode===x and x.tag == 'help' } - mkimg(self,nil,"flow_classes") if /reference|format/ =~ $file - mk(:br,:clear,"left") - 2.times { mk(:br) } - if help - big = help.att['image'] || att['name'] - if big[0]==?@ then big="images/help_#{big}.png" end - warn "help #{big} not found" if not File.exist?(big) - #small = big.gsub(/png$/, 'jpg').gsub(/\//, '/ic_') - mk(:a,:href,big) { - #mk(:img,:src,small,:border,0) - mk(:img,:src,"images/see_screenshot.png",:border,0) - } - end - mk(:br,:clear,"left") - mk(:br) - }#/td - mk(:td) { - print "<br>\n" - super - print "<br>" - }#/td - }#/tr - end - def show_index - icon = contents.find {|x| XNode===x && x.tag == "icon" } - if not att["name"] then - raise "name tag missing?" - end - mk(:li) { mk(:a,:href,"\#"+att["name"]) { - mkimg(self,att["cname"],"flow_classes") - }} - puts - super - end -} - -def nice_table - mk(:table,:border,0,:bgcolor,:black,:cellspacing,1) { - mk(:tr) { - mk(:td,:valign,:top,:align,:left) { - mk(:table,:bgcolor,:white,:border,0, - :cellpadding,4,:cellspacing,1) { - yield }}}} -end - -XNode.register("attr") {public - def show - print "<br>" - if parent.tag == "inlet" or parent.tag == "outlet" - mk(:b) { - print "#{parent.tag} #{parent.att['id']} " - - } - end - print "<b>#{tag}</b> " - print "#{html_quote att['name']} <b>(</b>" - s=html_quote(att["name"]) - s="<i>#{att['type']}</i> #{s}" if att['type'] - print "<b>#{s}</b>" - print "<b>)</b> " - end -} - -XNode.register("method") {public -if true # - def show - print "<br>" - if parent.tag == "inlet" or parent.tag == "outlet" - mk(:b) { - print "#{parent.tag} #{parent.att['id']} " - - } - end - print "<b>#{tag}</b> " - print "#{html_quote att['name']} <b>(</b>" - print contents.map {|x| - next unless XNode===x - case x.tag - when "arg" - s=html_quote(x.att["name"]) - s="<i>#{x.att['type']}</i> #{s}" if x.att['type'] - s - when "rest" - (x.att["name"]||"") + "..." - end - }.compact.join("<b>, </b>") - print "<b>)</b> " - super - print "<br>\n" - end -else # - def show - print "<br>" - mk(:table) { mk(:tr) { mk(:td) { - name = "" - name << "#{parent.tag} #{parent.att['id']} " if \ - parent.tag == "inlet" or parent.tag == "outlet" - name << tag.to_s - mk(:b) { print name.gsub(/ /," ") } - }; mk(:td) { - nice_table { mk(:tr) { - mk(:td,:width,1) { print html_quote(att['name']) } - contents.each {|x| - next unless XNode===x - case x.tag - when "arg" - mk(:td,:bgcolor,:pink) { - s = "" - if x.att["type"] - s << "<i>" << html_quote(x.att["type"]) << "</i>" - end - if x.att["name"] - s << " " << html_quote(x.att["name"]) - end - s<<" " if s.length==0 - mk(:b) { puts s } - } - when "rest" - mk(:td,:bgcolor,:pink) { - mk(:b) { print html_quote(x.att["name"]), "..."} - } - end - } - }} - }; mk(:td) { - super - }}} - end -end # -} - -XNode.register("table") {public - def show - colors = ["#ffffff","#f0f8ff",] - rows = contents.find_all {|x| XNode===x && x.tag=="row" } - rows.each_with_index {|x,i| x.bgcolor = colors[i%2] } - mk(:tr) { - 2.times { mk(:td) {} } - mk(:td) { - nice_table { - mk(:tr) { - columns = contents.find_all {|x| XNode===x && x.tag=="column" } - columns.each {|x| mk(:td,:bgcolor,"#808080") { - mk(:font,:color,"#ffffff") { - mk(:b) { - x.contents.each {|y| y.show }}}}} - } - super - }}} - end -} - -XNode.register("column") {public - def show; end -} - -XNode.register("row") {public - attr_accessor :bgcolor - def show - columns = parent.contents.find_all {|x| XNode===x && x.tag=="column" } - mk(:tr) { columns.each {|x| mk(:td,:bgcolor,bgcolor) { - id = x.att["id"] - case x.att["type"] - when "icon" # should fix this for non-op icons - x = "op/#{att['cname']}-icon.png" - if not File.exist? x - warn "no icon for #{att['name']} (#{x})\n" - end - mk(:img,:src,x,:border,0,:alt,att["name"]) - else - if id=="" - then contents.each {|x| x.show } - else -# print html_quote(att[id] || "--") - print multicode(att[id] || "--") - end - end - }}} - end -} - -XNode.register("inlet","outlet") {} - -#----------------------------------------------------------------# - -if $use_rexml - class GFDocParser - def initialize(file) - @sax = SAX2Parser.new(File.open(file)) - @xml_lists = [] - @stack = [[]] - @sax.listen(:start_element) {|a,b,c,d| startElement(b,d) } - @sax.listen( :end_element) {|a,b,c| endElement(b) } - @sax.listen( :characters) {|a| @gfdoc.character(a) } - end - def do_it; @sax.parse; end - end -else - class GFDocParser - def initialize(file) - @xml = XMLParser.new("ISO-8859-1") - foo=self; @xml.instance_eval { @gfdoc=foo } - def @xml.startElement(tag,attrs) @gfdoc.startElement(tag,attrs) end - def @xml.endElement(tag) @gfdoc.endElement(tag) end - def @xml.character(text) @gfdoc.character(text) end - @file = File.open file - @xml_lists = [] - @stack = [[]] - end - def do_it; @xml.parse(@file.readlines.join("\n"), true) end - def method_missing(sel,*args) @xml.send(sel,*args) end - end -end - -class GFDocParser - attr_reader :stack - def startElement(tag,attrs) - if not XNode.valid_tags[tag] then - raise XMLParserError, "unknown tag #{tag}" - end - @stack<<[tag,attrs] - end - def endElement(tag) - node = XNode.valid_tags[tag].new(*@stack.pop) - @stack.last << node - end - def character(text) - if not String===@stack.last.last then - @stack.last << XString.new("") - end - @stack.last.last << text - end -end - -#----------------------------------------------------------------# - -def write_header(tree) -puts <<EOF -<html><head> -<!-- #{"$"}Id#{"$"} --> -<title>GridFlow #{GF_VERSION} - #{tree.att['title']}</title> -<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> -<link rel="stylesheet" href="gridflow.css" type="text/css"> -</head> -<body bgcolor="#FFFFFF" - leftmargin="0" topmargin="0" - marginwidth="0" marginheight="0"> -<table width="100%" bgcolor="white" border="0" cellspacing="2"> -<tr><td colspan="4" bgcolor="#082069"> -<img src="images/titre_gridflow.png" width="253" height="23"> -</td></tr><tr><td> </td></tr> -EOF -write_black_ruler -puts <<EOF -<tr><td colspan="4" height="16"> - <h4>GridFlow #{GF_VERSION} - #{tree.att['title']}</h4> -</td></tr> -<tr> - <td width="5%" rowspan="2"> </td> - <td width="15%" height="23"> </td> - <td width="80%" height="23"> </td> - <td width="5%" height="23"> </td> -</tr> -EOF -end - -def write_black_ruler -puts <<EOF -<tr><td colspan="4" bgcolor="black"> -<img src="images/black.png" width="1" height="2"></td></tr> -EOF -end - -def write_footer -puts <<EOF -<td colspan="4" bgcolor="black"> -<img src="images/black.png" width="1" height="2"></td></tr> -<tr><td colspan="4"> -<p><font size="-1"> -GridFlow #{GF_VERSION} Documentation<br> -Copyright © 2001,2002,2003,2004,2005,2006 by Mathieu Bouchard -<a href="mailto:matju@artengine.ca">matju@artengine.ca</a> -</font></p> -</td></tr></table></body></html> -EOF -end - -#----------------------------------------------------------------# - -$nodes = {} -XMLParserError = Exception if $use_rexml - -def harvest_doc_of_class xclass, v, way - doc = case way; when:in:v.doc; when:out:v.doc_out end - tag = case way; when:in:"inlet"; when:out:"outlet" end - doc.keys.each {|sel| - text = v.doc[sel] - m=/^_(\d+)_(\w+)/.match sel.to_s - if m then - xclass << XNode[tag,{"id"=>Integer(m[1])}, - XNode["method",{"name"=>m[2]},XString.new(text)]] - else - xclass << XNode["method",{"name"=>sel.to_s},XString.new(text)] - end - } -end - -def harvest_doc tree - kla = {} - tree.contents.find_all {|x| XNode===x and x.tag=="section" }.each {|sex| - sex.contents.each {|y| - next unless XNode===y and y.tag=="class" - kla[y.att["name"]] = y - } - } - #STDERR.puts kla.inspect - tree << (nu=XNode["section",{"name"=>"(new documentation)"}]) - tree << (un=XNode["section",{"name"=>"(undocumented)"}]) - alph = GridFlow.fclasses.keys.sort - alph.each {|k| - next if /^@/=~k and GridFlow.fclasses[k.gsub(/^@/,"#")] - v = GridFlow.fclasses[k] - if v.doc then - nu << (xclass=XNode["class",{"name"=>k}]) - harvest_doc_of_class xclass, v, :in - harvest_doc_of_class xclass, v, :out - elsif not kla[k] then - un << XNode["p",{},XString.new("[#{k}]")] - end - } -end - -def read_one_page file - begin - STDERR.puts "reading #{file}" - parser = GFDocParser.new(file) - parser.do_it - $nodes[file] = parser.stack[0][0] - if file=="reference.xml" then harvest_doc $nodes[file] end - rescue Exception => e - puts "" - puts "" - STDERR.puts e.inspect - i = parser.stack.length-1 - (STDERR.puts "\tinside <#{parser.stack[i][0]}>"; i-=1) until i<1 - # strange that line numbers are doubled. - # also the byte count is offset by the line count !?!?!? - STDERR.puts "\tinside #{file}:#{parser.line/2 + 1}" + - " (column #{parser.column}," + - " byte #{parser.byteIndex - parser.line/2})" - raise "why don't you fix the documentation" - end -end - -def write_one_page file - begin - $file = file - output_name = file.sub(/\.xml/,".html") - STDERR.puts "writing #{output_name}" - STDOUT.flush # bug in 1.9 ? - STDOUT.reopen output_name, "w" - tree = $nodes[file] -# tree.contents.each {|x| STDERR.puts x.inspect } - write_header(tree) - mk(:tr) { mk(:td,:colspan,2) { mk(:div,:cols,tree.att["indexcols"]||1) { - tree.show_index - puts "<br><br>" - }}} - tree.show - write_footer - puts "" - puts "" - rescue Exception => e - STDERR.puts "#{e.class}: #{e.message}" - STDERR.puts e.backtrace - end -end - -$files = %w( - install.xml - reference.xml format.xml internals.xml architecture.xml) -# project_policy.xml - -$files.each {|input_name| read_one_page input_name } -$files.each {|input_name| write_one_page input_name } diff --git a/externals/gridflow/doc/op/abs-icon.png b/externals/gridflow/doc/op/abs-icon.png Binary files differdeleted file mode 100644 index 6e728ebd..00000000 --- a/externals/gridflow/doc/op/abs-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/op/add-icon.png b/externals/gridflow/doc/op/add-icon.png Binary files differdeleted file mode 100644 index 5dc6b7bb..00000000 --- a/externals/gridflow/doc/op/add-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/op/and-icon.png b/externals/gridflow/doc/op/and-icon.png Binary files differdeleted file mode 100644 index bf24dada..00000000 --- a/externals/gridflow/doc/op/and-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/op/atan-icon.png b/externals/gridflow/doc/op/atan-icon.png Binary files differdeleted file mode 100644 index 06cf2576..00000000 --- a/externals/gridflow/doc/op/atan-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/op/avg-icon.png b/externals/gridflow/doc/op/avg-icon.png Binary files differdeleted file mode 100644 index bdc6ed47..00000000 --- a/externals/gridflow/doc/op/avg-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/op/bus-icon.png b/externals/gridflow/doc/op/bus-icon.png Binary files differdeleted file mode 100644 index acbdb4c1..00000000 --- a/externals/gridflow/doc/op/bus-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/op/clip+-icon.png b/externals/gridflow/doc/op/clip+-icon.png Binary files differdeleted file mode 100644 index 58412e7e..00000000 --- a/externals/gridflow/doc/op/clip+-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/op/clip--icon.png b/externals/gridflow/doc/op/clip--icon.png Binary files differdeleted file mode 100644 index 43471ac2..00000000 --- a/externals/gridflow/doc/op/clip--icon.png +++ /dev/null diff --git a/externals/gridflow/doc/op/cmp-icon.png b/externals/gridflow/doc/op/cmp-icon.png Binary files differdeleted file mode 100644 index 3b69b149..00000000 --- a/externals/gridflow/doc/op/cmp-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/op/cos-icon.png b/externals/gridflow/doc/op/cos-icon.png Binary files differdeleted file mode 100644 index 503e3b9f..00000000 --- a/externals/gridflow/doc/op/cos-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/op/div-icon.png b/externals/gridflow/doc/op/div-icon.png Binary files differdeleted file mode 100644 index 80487cac..00000000 --- a/externals/gridflow/doc/op/div-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/op/div2-icon.png b/externals/gridflow/doc/op/div2-icon.png Binary files differdeleted file mode 100644 index 7d15db6a..00000000 --- a/externals/gridflow/doc/op/div2-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/op/dom-icon.png b/externals/gridflow/doc/op/dom-icon.png Binary files differdeleted file mode 100644 index f090034b..00000000 --- a/externals/gridflow/doc/op/dom-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/op/eq-icon.png b/externals/gridflow/doc/op/eq-icon.png Binary files differdeleted file mode 100644 index 28883199..00000000 --- a/externals/gridflow/doc/op/eq-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/op/gamma-icon.png b/externals/gridflow/doc/op/gamma-icon.png Binary files differdeleted file mode 100644 index f1c2c42d..00000000 --- a/externals/gridflow/doc/op/gamma-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/op/gcd-icon.png b/externals/gridflow/doc/op/gcd-icon.png Binary files differdeleted file mode 100644 index 2660d79c..00000000 --- a/externals/gridflow/doc/op/gcd-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/op/ge-icon.png b/externals/gridflow/doc/op/ge-icon.png Binary files differdeleted file mode 100644 index 7c6d2928..00000000 --- a/externals/gridflow/doc/op/ge-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/op/gt-icon.png b/externals/gridflow/doc/op/gt-icon.png Binary files differdeleted file mode 100644 index 643f97fb..00000000 --- a/externals/gridflow/doc/op/gt-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/op/hypot-icon.png b/externals/gridflow/doc/op/hypot-icon.png Binary files differdeleted file mode 100644 index 3e9483db..00000000 --- a/externals/gridflow/doc/op/hypot-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/op/ignore-icon.png b/externals/gridflow/doc/op/ignore-icon.png Binary files differdeleted file mode 100644 index 5e0654de..00000000 --- a/externals/gridflow/doc/op/ignore-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/op/lcm-icon.png b/externals/gridflow/doc/op/lcm-icon.png Binary files differdeleted file mode 100644 index 81e6a078..00000000 --- a/externals/gridflow/doc/op/lcm-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/op/le-icon.png b/externals/gridflow/doc/op/le-icon.png Binary files differdeleted file mode 100644 index f69a8800..00000000 --- a/externals/gridflow/doc/op/le-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/op/log-icon.png b/externals/gridflow/doc/op/log-icon.png Binary files differdeleted file mode 100644 index d75b15a4..00000000 --- a/externals/gridflow/doc/op/log-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/op/lt-icon.png b/externals/gridflow/doc/op/lt-icon.png Binary files differdeleted file mode 100644 index c57ad9bb..00000000 --- a/externals/gridflow/doc/op/lt-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/op/max-icon.png b/externals/gridflow/doc/op/max-icon.png Binary files differdeleted file mode 100644 index b9b932e0..00000000 --- a/externals/gridflow/doc/op/max-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/op/mer-icon.png b/externals/gridflow/doc/op/mer-icon.png Binary files differdeleted file mode 100644 index 6fe4c1d3..00000000 --- a/externals/gridflow/doc/op/mer-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/op/min-icon.png b/externals/gridflow/doc/op/min-icon.png Binary files differdeleted file mode 100644 index c2a114a5..00000000 --- a/externals/gridflow/doc/op/min-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/op/mod-icon.png b/externals/gridflow/doc/op/mod-icon.png Binary files differdeleted file mode 100644 index 852ca172..00000000 --- a/externals/gridflow/doc/op/mod-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/op/mul-icon.png b/externals/gridflow/doc/op/mul-icon.png Binary files differdeleted file mode 100644 index a2826621..00000000 --- a/externals/gridflow/doc/op/mul-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/op/ne-icon.png b/externals/gridflow/doc/op/ne-icon.png Binary files differdeleted file mode 100644 index a3dd4712..00000000 --- a/externals/gridflow/doc/op/ne-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/op/or-icon.png b/externals/gridflow/doc/op/or-icon.png Binary files differdeleted file mode 100644 index b672d11a..00000000 --- a/externals/gridflow/doc/op/or-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/op/pow-icon.png b/externals/gridflow/doc/op/pow-icon.png Binary files differdeleted file mode 100644 index 7c385ce6..00000000 --- a/externals/gridflow/doc/op/pow-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/op/put-icon.png b/externals/gridflow/doc/op/put-icon.png Binary files differdeleted file mode 100644 index 71edae17..00000000 --- a/externals/gridflow/doc/op/put-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/op/rand-icon.png b/externals/gridflow/doc/op/rand-icon.png Binary files differdeleted file mode 100644 index cd3d9408..00000000 --- a/externals/gridflow/doc/op/rand-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/op/rem-icon.png b/externals/gridflow/doc/op/rem-icon.png Binary files differdeleted file mode 100644 index 5628f326..00000000 --- a/externals/gridflow/doc/op/rem-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/op/sc_and-icon.png b/externals/gridflow/doc/op/sc_and-icon.png Binary files differdeleted file mode 100644 index 8f62fa83..00000000 --- a/externals/gridflow/doc/op/sc_and-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/op/sc_or-icon.png b/externals/gridflow/doc/op/sc_or-icon.png Binary files differdeleted file mode 100644 index 0554d392..00000000 --- a/externals/gridflow/doc/op/sc_or-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/op/shl-icon.png b/externals/gridflow/doc/op/shl-icon.png Binary files differdeleted file mode 100644 index b89946c6..00000000 --- a/externals/gridflow/doc/op/shl-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/op/shr-icon.png b/externals/gridflow/doc/op/shr-icon.png Binary files differdeleted file mode 100644 index b9178d14..00000000 --- a/externals/gridflow/doc/op/shr-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/op/sin-icon.png b/externals/gridflow/doc/op/sin-icon.png Binary files differdeleted file mode 100644 index d9d686ca..00000000 --- a/externals/gridflow/doc/op/sin-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/op/sq-icon.png b/externals/gridflow/doc/op/sq-icon.png Binary files differdeleted file mode 100644 index da103479..00000000 --- a/externals/gridflow/doc/op/sq-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/op/sqrt-icon.png b/externals/gridflow/doc/op/sqrt-icon.png Binary files differdeleted file mode 100644 index 53e88d13..00000000 --- a/externals/gridflow/doc/op/sqrt-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/op/sub-icon.png b/externals/gridflow/doc/op/sub-icon.png Binary files differdeleted file mode 100644 index 5eda4af7..00000000 --- a/externals/gridflow/doc/op/sub-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/op/tanh-icon.png b/externals/gridflow/doc/op/tanh-icon.png Binary files differdeleted file mode 100644 index 6ce79396..00000000 --- a/externals/gridflow/doc/op/tanh-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/op/vid-icon.png b/externals/gridflow/doc/op/vid-icon.png Binary files differdeleted file mode 100644 index 8afd9d7b..00000000 --- a/externals/gridflow/doc/op/vid-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/op/vid2-icon.png b/externals/gridflow/doc/op/vid2-icon.png Binary files differdeleted file mode 100644 index 2a062699..00000000 --- a/externals/gridflow/doc/op/vid2-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/op/xor-icon.png b/externals/gridflow/doc/op/xor-icon.png Binary files differdeleted file mode 100644 index 68771820..00000000 --- a/externals/gridflow/doc/op/xor-icon.png +++ /dev/null diff --git a/externals/gridflow/doc/profiling.html b/externals/gridflow/doc/profiling.html deleted file mode 100644 index f804e87d..00000000 --- a/externals/gridflow/doc/profiling.html +++ /dev/null @@ -1,151 +0,0 @@ -<html> -<head> -<!-- $Id: profiling.html,v 1.2 2006-03-15 04:44:50 matju Exp $ --> -<!-- - GridFlow Reference Manual: Architecture - Copyright (c) 2001,2002,2003,2004 by Mathieu Bouchard ---> -<title>GridFlow 0.7.7 - Profiling Execution Speed</title> -<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> -<link rel="stylesheet" href="gridflow.css" type="text/css"> -</head> - -<body bgcolor="#FFFFFF" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0"> -<br> -<table width="100%" border="0" cellspacing="5"> - <tr><td colspan="4" bgcolor="#082069"> - <img src="images/titre_gridflow.png" width="253" height="23"></td></tr> - - <tr><td> </td></tr> - <tr><td colspan="4" bgcolor="black"><img src="images/black.png" width="1" height="2"></td></tr> - - <tr><td colspan="3" height="16"> - <h4>GridFlow 0.7.7 - Profiling Execution Speed</h4> - </td></tr> - - <tr> - <td width="12%" height="4"> </td> - <td width="80%" height="4"> </td> - <td width="12%" height="4"> </td> - </tr> - - <tr> - <td width="13%"> </td> - <td width="82%"> - - <h4>What is profiling?</h4> - <p> - It is about getting empiric metrics about the execution of a program. - For example, find out which parts of a program consume the most time - and/or memory. Usually it's about the time, and this is what GridFlow - allows you to measure. - </p> - - <h4>How to get those stats from GridFlow ?</h4> - <ul> - <li>create a "@global" object and connect two - messageboxes to it, "profiler_reset" and "profiler_dump". The first - one resets all counters to zero. The second one gives a top of - the busiest objects, with percentages.</li> - <li>note that those results are global to a process. That is, if you load - several patches in the same process (program instance), then all those patches - will be monitored at once. But if you open jMax (or PD) several times at once, then - the profiler will not see everything happening on that machine. - </li> - <h4>How do i interpret those stats?</h4> - <li>Note that some operations may not be monitored, and some of the - monitoring may be buggy. I think it's not buggy as it is now, but I may be wrong. - </li> - <li> - The current profiler uses a thing called RDTSC (Pentium only). This is a very high - precision clock that is very fast to use. However, *major* imprecisions - may come from the fact that an ordinary multitasking OS will run other - tasks without stopping/resuming the clock. This may happen randomly; - however, it has a much bigger chance of happening in [@in] or [@out], because that's - where all the communication with other stuff is (files, sockets, windows, etc). - </li> - <li> - If you make sure that only the bare minimum is actively running on your - computer, then [@out] (using x11) would still include the time spent in the x11 - server, except in some conditions. This applies to every kind of window output too, - because however the data trickles through libraries (sdl, aalib), it has to reach the x11 server - and the display driver. - </li> - <li> - The profiler has an impact on the results of the profiler. The profiler - includes half of its own influence in its own results, and disregards the - other half (or so). Profiling shouldn't add more than 100-300 ticks per - message (of which half is counted). - </li> - <li> - Message-passing time is not counted at all. Only time actually spent - inside GridFlow objects is counted. This may skew results. - Transmission of a grid requires one message, thus we may speak of "grid messages". - However, when the message is received, one or several packets may get transmitted, which - is done outside of the message system. Each packet contains at most 2048 numbers - (adjustable limit), and normally a packet should be at least one quarter of that size unless it is the last one. - On RGB grids of widths 640,320,160, the packet size will usually be 1920. - </li> - </ul> - </p> - - <h4>Getting a frames-per-second measure</h4> - <p>This section formerly was describing what can now be obtained using the [fps] object class.</p> - - <h4>acceleration tricks</h4> - <ul> - <li>try the profiler and see what it says.</li> - <li>i mean really.</li> - <li>you can lose a lot of your time accelerating something - that isn't really taking execution time.</li> - <li>it's faster to work on big grids than on small grids, - for the amount of number-crunching you can do. - </li> - <li>about numbertypes: uint8 is the fastest, followed by int16, int32, float32. - (and the first two are faster when MMX is enabled). However it - may be difficult to make some effects use int16 - or smaller without overflow happening.</li> - <li>[@ <<] is a very fast multiplication by powers of two (1, 2, 4, 8, 16, ...). - [@ >>] is a very fast division by powers of two. - <p> - from my little experience, normal integer multiplication and division are - rather slow, especially on Intel brand. The gap between *,/ and - <<,>> is smaller on Cyrix/AMD brand CPUs, but still, try it - yourself. (my experience has been on specific models and may not reflect currently common models) - </p> - </li> - <li>[@ & 255] is a very fast [@ % 256], and likewise for other - powers of two.</li> - <li>for do-nothing operations, "ignore" and "put" are faster than - "+ 0" and such...</li> - <li>remember that an image twice smaller in height <u>and</u> twice - smaller in height will be processed <u>four</u> times as fast (for - most effects) so you can get four times more frames per second. - It's the "rows*columns*channels" value that makes the biggest - difference (usually).</li> - - <li>If all fails you may recode a jMax/PD/Ruby abstraction into - plain Ruby code or C++ code. If your new class is of generic - usefulness then maybe it should be added to the releases of - GridFlow. Contact me if you need help extending GridFlow.</li> - - <li>Put often-used files on fast drives. This means don't use NFS - (networked file system) for that. The file-to-ram cache can compensate for - that up to a certain amount, but the larger the file is, and the most used - the file is, the more important it is to put it on a local drive. </li> - </ul> -</td> - - <tr><td> </td></tr> - <tr><td colspan="4" bgcolor="black"><img src="images/black.png" width="1" height="2"></td></tr> - - <tr><td colspan="4"> - <p><font size="-1">GridFlow 0.7.7 Documentation<br> - by Mathieu Bouchard <a href="mailto:matju@sympatico.ca">matju@sympatico.ca</a> - </font></p> - </td> - </tr> - -</table> -</body> -</html> diff --git a/externals/gridflow/doc/project_policy.html b/externals/gridflow/doc/project_policy.html deleted file mode 100644 index 38790844..00000000 --- a/externals/gridflow/doc/project_policy.html +++ /dev/null @@ -1,98 +0,0 @@ -<html><head> -<!-- $Id: project_policy.html,v 1.1 2005-10-04 02:09:43 matju Exp $ --> -<title>GridFlow 0.8.0 - </title> -<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> -<link rel="stylesheet" href="gridflow.css" type="text/css"> -</head> -<body bgcolor="#FFFFFF" - leftmargin="0" topmargin="0" - marginwidth="0" marginheight="0"> -<table width="100%" bgcolor="white" border="0" cellspacing="2"> -<tr><td colspan="4" bgcolor="#082069"> -<img src="images/titre_gridflow.png" width="253" height="23"> -</td></tr><tr><td> </td></tr> -<tr><td colspan="4" bgcolor="black"> -<img src="images/black.png" width="1" height="2"></td></tr> -<tr><td colspan="4" height="16"> - <h4>GridFlow 0.8.0 - </h4> -</td></tr> -<tr> - <td width="5%" rowspan="2"> </td> - <td width="15%" height="23"> </td> - <td width="80%" height="23"> </td> - <td width="5%" height="23"> </td> -</tr> -<tr><td colspan="2"><div cols="1"><h4><a href="#Note">Note</a></h4><ul> -</ul> -<h4><a href="#Release">Release</a></h4><ul> -</ul> -<h4><a href="#Documentation">Documentation</a></h4><ul> -</ul> -<h4><a href="#CVS">CVS</a></h4><ul> -</ul> -<br><br> -</div></td></tr> <tr><td colspan="4" bgcolor="black"> -<img src="images/black.png" width="1" height="2"></td></tr> -<tr><td colspan="4"><a name="Note"></a><h4>Note</h4></td></tr><tr><td></td><td></td><td> - first consult the file ../README for a vague idea on the meaning of - subdirectories. </td></tr> -<tr><td> </td></tr> - <tr><td colspan="4" bgcolor="black"> -<img src="images/black.png" width="1" height="2"></td></tr> -<tr><td colspan="4"><a name="Release"></a><h4>Release</h4></td></tr><tr><td></td><td></td><td> -Compatibility: </td></tr> -<tr><td></td><td></td><td><ul><li><b>1</b> : - Should work with Ruby 1.6.6 and PureData 0.36, 0.37, 0.38 </li></ul></td></tr> -<tr><td></td><td></td><td> -Release steps (</td></tr> -<tr><td></td><td></td><td><b>OPERATE WITH CAUTION</b></td></tr> -<tr><td></td><td></td><td>): </td></tr> -<tr><td></td><td></td><td><ul> <li><b>1</b> : make vvtest # leak detection </li><li><b>2</b> : ruby base/test.rb formats </li><li><b>3</b> : cvs tag gridflow_0_7_7 . </li><li><b>4</b> : mkdir gridflow </li><li><b>5</b> : cvs -d :pserver:anonymous@cvs.gridflow.ca:/home/cvs/gridflow - export -r gridflow_0_7_7 -d gridflow . </li><li><b>6</b> : cd gridflow </li><li><b>7</b> : rm -rf CVS CVSROOT </li><li><b>8</b> : chmod -R go=u-w . </li><li><b>9</b> : cd .. </li><li><b>10</b> : tar cfzvv gridflow-0.7.7.tar.gz gridflow </li><li><b>11</b> : rm -rf gridflow # caution!!! </li><li><b>12</b> : scp gridflow*gz gridflow@artengine.ca:download </li><li><b>13</b> : mv gridflow*gz /home/matju/net/GridFlow </li><li><b>14</b> : ssh gridflow@artengine.ca : expand tarball into public_html/latest </li><li><b>15</b> : download somewhere else and try to compile </li><li><b>16</b> : update main page </li><li><b>17</b> : jmax/pd/ruby-talk mlists : post release (note: prefix subject with [ANN] !!!!) </li><li><b>18</b> : freshmeat.net : post release </li><li><b>19</b> : RAA : post release </li> </ul></td></tr> -<tr><td></td><td></td><td> </td></tr> -<tr><td> </td></tr> - <tr><td colspan="4" bgcolor="black"> -<img src="images/black.png" width="1" height="2"></td></tr> -<tr><td colspan="4"><a name="Documentation"></a><h4>Documentation</h4></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td></td><td></td><td><ul> <li><b>1</b> : - Pictures identified as "<help>" should be screenshots of the - help files. They shouldn't be screenshots of the template. </li> <li><b>2</b> : - A Help file is a visual summary of what an object does. It should be - interactive and allow the user to understand what the object does. - Sample inputs are provided and sample results can be seen. </li> <li><b>3</b> : - All modifications to the documentation must be done in the XML. The - HTML must be kept up-to-date by rerunning "make" in the "doc/" directory. </li> <li><b>4</b> : - Help-wise, Formats are considered objects. - Operators are to be documented as part of [@] and [@!]. </li> <li><b>5</b> : - Images grabbed directly from a jMax window should be encoded in PNG. - This includes "icons" (object boxes, message boxes, etc). If they are - in JPEG, only change to PNG when the image has to change anyway. - Distinguish "icons" from "thumbnails", the latter of which are <b>scaled-down</b> grabs, which should be encoded in JPEG. </li> <li><b>6</b> : - There are not help-thumbnails anymore in the reference manual - because they were not helpful. </li> <li><b>7</b> : - Large images should be kept out of the release. The release itself must - be small enough not to discourage us from doing releases and keeping - them all. It also should be downloadable on a bad modem. =) - Let's keep it under 500k please. </li> </ul></td></tr> -<tr><td></td><td></td><td> -in doc do: -for z in images/*.* images/*/*.*; do fgrep -q $z *.html || echo "$z"; done </td></tr> -<tr><td> </td></tr> - <tr><td colspan="4" bgcolor="black"> -<img src="images/black.png" width="1" height="2"></td></tr> -<tr><td colspan="4"><a name="CVS"></a><h4>CVS</h4></td></tr><tr><td></td><td></td><td> - environment variables - CVSEDITOR=pico - CVS_RSH=ssh2 </td></tr> -<tr><td> </td></tr> - <td colspan="4" bgcolor="black"> -<img src="images/black.png" width="1" height="2"></td></tr> -<tr><td colspan="4"> -<p><font size="-1"> -GridFlow 0.8.0 Documentation<br> -Copyright © 2001,2002,2003,2004,2005 by Mathieu Bouchard -<a href="mailto:matju@sympatico.ca">matju@artengine.ca</a> -</font></p> -</td></tr></table></body></html> - - diff --git a/externals/gridflow/doc/project_policy.xml b/externals/gridflow/doc/project_policy.xml deleted file mode 100644 index 3bf7368e..00000000 --- a/externals/gridflow/doc/project_policy.xml +++ /dev/null @@ -1,99 +0,0 @@ -<?xml version="1.0" standalone="no" ?> -<!DOCTYPE documentation SYSTEM 'jmax.dtd'> -<documentation> -<!-- $Id: project_policy.xml,v 1.1 2005-10-04 02:09:43 matju Exp $ --> -<!-- - GridFlow Reference Manual: Project Policy - Copyright (c) 2001,2002,2003,2004 by Mathieu Bouchard and Alexandre Castonguay ---> - -<section name="Note"> - first consult the file ../README for a vague idea on the meaning of - subdirectories. -</section> - -<section name="Release"> - -Compatibility: - -<list><li> - Should work with Ruby 1.6.6 and PureData 0.36, 0.37, 0.38 -</li></list> - -Release steps (<b>OPERATE WITH CAUTION</b>): - -<list> - <li>make vvtest # leak detection - </li><li>ruby base/test.rb formats - </li><li>cvs tag gridflow_0_7_7 . - </li><li>mkdir gridflow - </li><li>cvs -d :pserver:anonymous@cvs.gridflow.ca:/home/cvs/gridflow - export -r gridflow_0_7_7 -d gridflow . - </li><li>cd gridflow - </li><li>rm -rf CVS CVSROOT - </li><li>chmod -R go=u-w . - </li><li>cd .. - </li><li>tar cfzvv gridflow-0.7.7.tar.gz gridflow - </li><li>rm -rf gridflow # caution!!! - </li><li>scp gridflow*gz gridflow@artengine.ca:download - </li><li>mv gridflow*gz /home/matju/net/GridFlow - </li><li>ssh gridflow@artengine.ca : expand tarball into public_html/latest - </li><li>download somewhere else and try to compile - </li><li>update main page - </li><li>jmax/pd/ruby-talk mlists : post release (note: prefix subject with [ANN] !!!!) - </li><li>freshmeat.net : post release - </li><li>RAA : post release - </li> -</list> -</section> - -<section name="Documentation"> -<list> -<li> - Pictures identified as "<help>" should be screenshots of the - help files. They shouldn't be screenshots of the template. -</li> -<li> - A Help file is a visual summary of what an object does. It should be - interactive and allow the user to understand what the object does. - Sample inputs are provided and sample results can be seen. -</li> -<li> - All modifications to the documentation must be done in the XML. The - HTML must be kept up-to-date by rerunning "make" in the "doc/" directory. -</li> -<li> - Help-wise, Formats are considered objects. - Operators are to be documented as part of [@] and [@!]. -</li> -<li> - Images grabbed directly from a jMax window should be encoded in PNG. - This includes "icons" (object boxes, message boxes, etc). If they are - in JPEG, only change to PNG when the image has to change anyway. - Distinguish "icons" from "thumbnails", the latter of which are - <b>scaled-down</b> grabs, which should be encoded in JPEG. -</li> -<li> - There are not help-thumbnails anymore in the reference manual - because they were not helpful. -</li> -<li> - Large images should be kept out of the release. The release itself must - be small enough not to discourage us from doing releases and keeping - them all. It also should be downloadable on a bad modem. =) - Let's keep it under 500k please. -</li> -</list> - -in doc do: -for z in images/*.* images/*/*.*; do fgrep -q $z *.html || echo "$z"; done - -</section> - -<section name="CVS"> - environment variables - CVSEDITOR=pico - CVS_RSH=ssh2 -</section> - -</documentation> diff --git a/externals/gridflow/doc/reference.html b/externals/gridflow/doc/reference.html deleted file mode 100644 index 8dce72ec..00000000 --- a/externals/gridflow/doc/reference.html +++ /dev/null @@ -1,1165 +0,0 @@ -<html><head> -<!-- $Id: reference.html,v 1.2 2006-03-15 04:44:50 matju Exp $ --> -<title>GridFlow 0.8.1 - Reference Manual: Flow Classes</title> -<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> -<link rel="stylesheet" href="gridflow.css" type="text/css"> -</head> -<body bgcolor="#FFFFFF" - leftmargin="0" topmargin="0" - marginwidth="0" marginheight="0"> -<table width="100%" bgcolor="white" border="0" cellspacing="2"> -<tr><td colspan="4" bgcolor="#082069"> -<img src="images/titre_gridflow.png" width="253" height="23"> -</td></tr><tr><td> </td></tr> -<tr><td colspan="4" bgcolor="black"> -<img src="images/black.png" width="1" height="2"></td></tr> -<tr><td colspan="4" height="16"> - <h4>GridFlow 0.8.1 - Reference Manual: Flow Classes</h4> -</td></tr> -<tr> - <td width="5%" rowspan="2"> </td> - <td width="15%" height="23"> </td> - <td width="80%" height="23"> </td> - <td width="5%" height="23"> </td> -</tr> -<tr><td colspan="2"><div cols="3"><h4><a href="#Objects_for_making_grids_and_breaking_them_down">Objects for making grids and breaking them down</a></h4><ul> -<li><a href="##import"><img src="flow_classes/%23import-icon.png" alt="[#import]" border="0"></a></li> -<li><a href="##export"><img src="flow_classes/%23export-icon.png" alt="[#export]" border="0"></a></li> -<li><a href="##export_list"><img src="flow_classes/%23export_list-icon.png" alt="[#export_list]" border="0"></a></li> -<li><a href="##export_symbol"><img src="flow_classes/%23export_symbol-icon.png" alt="[#export_symbol]" border="0"></a></li> -<li><a href="##pack"><img src="flow_classes/%23pack-icon.png" alt="[#pack]" border="0"></a></li> -<li><a href="##color"><img src="flow_classes/%23color-icon.png" alt="[#color]" border="0"></a></li> -<li><a href="##unpack"><img src="flow_classes/%23unpack-icon.png" alt="[#unpack]" border="0"></a></li> -<li><a href="##centroid"><img src="flow_classes/%23centroid-icon.png" alt="[#centroid]" border="0"></a></li> -<li><a href="##centroid2"><img src="flow_classes/%23centroid2-icon.png" alt="[#centroid2]" border="0"></a></li> -<li><a href="##for"><img src="flow_classes/%23for-icon.png" alt="[#for]" border="0"></a></li> -</ul> -<h4><a href="#Objects_for_Computing">Objects for Computing</a></h4><ul> -<li><a href="##"><img src="flow_classes/%23-icon.png" alt="[#]" border="0"></a></li> -<li><a href="#@complex_sq"><img src="flow_classes/@complex_sq-icon.png" alt="[@complex_sq]" border="0"></a></li> -<li><a href="##fold"><img src="flow_classes/%23fold-icon.png" alt="[#fold]" border="0"></a></li> -<li><a href="##scan"><img src="flow_classes/%23scan-icon.png" alt="[#scan]" border="0"></a></li> -<li><a href="##outer"><img src="flow_classes/%23outer-icon.png" alt="[#outer]" border="0"></a></li> -<li><a href="##inner"><img src="flow_classes/%23inner-icon.png" alt="[#inner]" border="0"></a></li> -<li><a href="#@join"><img src="flow_classes/@join-icon.png" alt="[@join]" border="0"></a></li> -<li><a href="##finished"><img src="flow_classes/%23finished-icon.png" alt="[#finished]" border="0"></a></li> -<li><a href="##cast"><img src="flow_classes/%23cast-icon.png" alt="[#cast]" border="0"></a></li> -<li><a href="##ravel"><img src="flow_classes/%23ravel-icon.png" alt="[#ravel]" border="0"></a></li> -<li><a href="##grade"><img src="flow_classes/%23grade-icon.png" alt="[#grade]" border="0"></a></li> -<li><a href="##perspective"><img src="flow_classes/%23perspective-icon.png" alt="[#perspective]" border="0"></a></li> -<li><a href="##transpose"><img src="flow_classes/%23transpose-icon.png" alt="[#transpose]" border="0"></a></li> -<li><a href="##fade"><img src="flow_classes/%23fade-icon.png" alt="[#fade]" border="0"></a></li> -<li><a href="##fade_lin"><img src="flow_classes/%23fade_lin-icon.png" alt="[#fade_lin]" border="0"></a></li> -<li><a href="##reverse"><img src="flow_classes/%23reverse-icon.png" alt="[#reverse]" border="0"></a></li> -</ul> -<h4><a href="#Objects_for_Coordinate_Transforms">Objects for Coordinate Transforms</a></h4><ul> -<li><a href="##redim"><img src="flow_classes/%23redim-icon.png" alt="[#redim]" border="0"></a></li> -<li><a href="##store"><img src="flow_classes/%23store-icon.png" alt="[#store]" border="0"></a></li> -<li><a href="##scale_to"><img src="flow_classes/%23scale_to-icon.png" alt="[#scale_to]" border="0"></a></li> -<li><a href="##scale_by"><img src="flow_classes/%23scale_by-icon.png" alt="[#scale_by]" border="0"></a></li> -<li><a href="##downscale_by"><img src="flow_classes/%23downscale_by-icon.png" alt="[#downscale_by]" border="0"></a></li> -<li><a href="##spread"><img src="flow_classes/%23spread-icon.png" alt="[#spread]" border="0"></a></li> -<li><a href="##rotate"><img src="flow_classes/%23rotate-icon.png" alt="[#rotate]" border="0"></a></li> -<li><a href="##remap_image"><img src="flow_classes/%23remap_image-icon.png" alt="[#remap_image]" border="0"></a></li> -</ul> -<h4><a href="#Objects_for_Reporting">Objects for Reporting</a></h4><ul> -<li><a href="##dim"><img src="flow_classes/%23dim-icon.png" alt="[#dim]" border="0"></a></li> -<li><a href="##type"><img src="flow_classes/%23type-icon.png" alt="[#type]" border="0"></a></li> -<li><a href="##print"><img src="flow_classes/%23print-icon.png" alt="[#print]" border="0"></a></li> -<li><a href="#rubyprint"><img src="flow_classes/rubyprint-icon.png" alt="[rubyprint]" border="0"></a></li> -<li><a href="#printargs"><img src="flow_classes/printargs-icon.png" alt="[printargs]" border="0"></a></li> -<li><a href="#display"><img src="flow_classes/display-icon.png" alt="[display]" border="0"></a></li> -</ul> -<h4><a href="#Objects_for_Color_Conversion">Objects for Color Conversion</a></h4><ul> -<li><a href="##apply_colormap_channelwise"><img src="flow_classes/%23apply_colormap_channelwise-icon.png" alt="[#apply_colormap_channelwise]" border="0"></a></li> -<li><a href="##rgb_to_greyscale"><img src="flow_classes/%23rgb_to_greyscale-icon.png" alt="[#rgb_to_greyscale]" border="0"></a></li> -<li><a href="##greyscale_to_rgb"><img src="flow_classes/%23greyscale_to_rgb-icon.png" alt="[#greyscale_to_rgb]" border="0"></a></li> -<li><a href="##yuv_to_rgb"><img src="flow_classes/%23yuv_to_rgb-icon.png" alt="[#yuv_to_rgb]" border="0"></a></li> -<li><a href="##rgb_to_yuv"><img src="flow_classes/%23rgb_to_yuv-icon.png" alt="[#rgb_to_yuv]" border="0"></a></li> -</ul> -<h4><a href="#Objects_for_Miscellaneous_Picture_Processing">Objects for Miscellaneous Picture Processing</a></h4><ul> -<li><a href="##convolve"><img src="flow_classes/%23convolve-icon.png" alt="[#convolve]" border="0"></a></li> -<li><a href="##contrast"><img src="flow_classes/%23contrast-icon.png" alt="[#contrast]" border="0"></a></li> -<li><a href="##posterize"><img src="flow_classes/%23posterize-icon.png" alt="[#posterize]" border="0"></a></li> -<li><a href="##solarize"><img src="flow_classes/%23solarize-icon.png" alt="[#solarize]" border="0"></a></li> -<li><a href="##checkers"><img src="flow_classes/%23checkers-icon.png" alt="[#checkers]" border="0"></a></li> -<li><a href="##layer"><img src="flow_classes/%23layer-icon.png" alt="[#layer]" border="0"></a></li> -<li><a href="##draw_image"><img src="flow_classes/%23draw_image-icon.png" alt="[#draw_image]" border="0"></a></li> -<li><a href="##draw_polygon"><img src="flow_classes/%23draw_polygon-icon.png" alt="[#draw_polygon]" border="0"></a></li> -<li><a href="##text_to_image"><img src="flow_classes/%23text_to_image-icon.png" alt="[#text_to_image]" border="0"></a></li> -<li><a href="##hueshift"><img src="flow_classes/%23hueshift-icon.png" alt="[#hueshift]" border="0"></a></li> -</ul> -<h4><a href="#Other_Objects">Other Objects</a></h4><ul> -<li><a href="#rtmetro"><img src="flow_classes/rtmetro-icon.png" alt="[rtmetro]" border="0"></a></li> -<li><a href="#bindpatcher"><img src="flow_classes/bindpatcher-icon.png" alt="[bindpatcher]" border="0"></a></li> -<li><a href="#pingpong"><img src="flow_classes/pingpong-icon.png" alt="[pingpong]" border="0"></a></li> -<li><a href="##global"><img src="flow_classes/%23global-icon.png" alt="[#global]" border="0"></a></li> -<li><a href="#fps"><img src="flow_classes/fps-icon.png" alt="[fps]" border="0"></a></li> -<li><a href="#unix_time"><img src="flow_classes/unix_time-icon.png" alt="[unix_time]" border="0"></a></li> -<li><a href="#ls"><img src="flow_classes/ls-icon.png" alt="[ls]" border="0"></a></li> -<li><a href="#exec"><img src="flow_classes/exec-icon.png" alt="[exec]" border="0"></a></li> -<li><a href="#renamefile"><img src="flow_classes/renamefile-icon.png" alt="[renamefile]" border="0"></a></li> -<li><a href="#plotter_control"><img src="flow_classes/plotter_control-icon.png" alt="[plotter_control]" border="0"></a></li> -<li><a href="#rubyarray"><img src="flow_classes/rubyarray-icon.png" alt="[rubyarray]" border="0"></a></li> -</ul> -<h4><a href="#jMax_emulation">jMax emulation</a></h4><ul> -<li><a href="#fork"><img src="flow_classes/fork-icon.png" alt="[fork]" border="0"></a></li> -<li><a href="#jmax_udpsend"><img src="flow_classes/jmax_udpsend-icon.png" alt="[jmax_udpsend]" border="0"></a></li> -<li><a href="#jmax_udpreceive"><img src="flow_classes/jmax_udpreceive-icon.png" alt="[jmax_udpreceive]" border="0"></a></li> -<li><a href="#foreach"><img src="flow_classes/foreach-icon.png" alt="[foreach]" border="0"></a></li> -<li><a href="#rubysprintf"><img src="flow_classes/rubysprintf-icon.png" alt="[rubysprintf]" border="0"></a></li> -<li><a href="#listflatten"><img src="flow_classes/listflatten-icon.png" alt="[listflatten]" border="0"></a></li> -<li><a href="#listmake"><img src="flow_classes/listmake-icon.png" alt="[listmake]" border="0"></a></li> -<li><a href="#listlength"><img src="flow_classes/listlength-icon.png" alt="[listlength]" border="0"></a></li> -<li><a href="#listelement"><img src="flow_classes/listelement-icon.png" alt="[listelement]" border="0"></a></li> -<li><a href="#listsublist"><img src="flow_classes/listsublist-icon.png" alt="[listsublist]" border="0"></a></li> -<li><a href="#listprepend"><img src="flow_classes/listprepend-icon.png" alt="[listprepend]" border="0"></a></li> -<li><a href="#listappend"><img src="flow_classes/listappend-icon.png" alt="[listappend]" border="0"></a></li> -<li><a href="#listreverse"><img src="flow_classes/listreverse-icon.png" alt="[listreverse]" border="0"></a></li> -<li><a href="#oneshot"><img src="flow_classes/oneshot-icon.png" alt="[oneshot]" border="0"></a></li> -<li><a href="#inv+"><img src="flow_classes/inv+-icon.png" alt="[inv+]" border="0"></a></li> -<li><a href="#inv*"><img src="flow_classes/inv*-icon.png" alt="[inv*]" border="0"></a></li> -<li><a href="#messageprepend"><img src="flow_classes/messageprepend-icon.png" alt="[messageprepend]" border="0"></a></li> -<li><a href="#messageappend"><img src="flow_classes/messageappend-icon.png" alt="[messageappend]" border="0"></a></li> -<li><a href="#shunt"><img src="flow_classes/shunt-icon.png" alt="[shunt]" border="0"></a></li> -<li><a href="#demux"><img src="flow_classes/demux-icon.png" alt="[demux]" border="0"></a></li> -<li><a href="#range"><img src="flow_classes/range-icon.png" alt="[range]" border="0"></a></li> -</ul> -<h4><a href="#PureData_emulation">PureData emulation</a></h4><ul> -<li><a href="#pd_netsend"><img src="flow_classes/pd_netsend-icon.png" alt="[pd_netsend]" border="0"></a></li> -<li><a href="#pd_netreceive"><img src="flow_classes/pd_netreceive-icon.png" alt="[pd_netreceive]" border="0"></a></li> -</ul> -<h4><a href="#(new_documentation)">(new documentation)</a></h4><ul> -<li><a href="#listfind"><img src="flow_classes/listfind-icon.png" alt="[listfind]" border="0"></a></li> -<li><a href="#memstat"><img src="flow_classes/memstat-icon.png" alt="[memstat]" border="0"></a></li> -<li><a href="#regsub"><img src="flow_classes/regsub-icon.png" alt="[regsub]" border="0"></a></li> -<li><a href="#sendgui"><img src="flow_classes/sendgui-icon.png" alt="[sendgui]" border="0"></a></li> -<li><a href="#sys_vgui"><img src="flow_classes/sys_vgui-icon.png" alt="[sys_vgui]" border="0"></a></li> -</ul> -<h4><a href="#(undocumented)">(undocumented)</a></h4><ul> -</ul> -<br><br> -</div></td></tr> <tr><td colspan="4" bgcolor="black"> -<img src="images/black.png" width="1" height="2"></td></tr> -<tr><td colspan="4"><a name="Objects_for_making_grids_and_breaking_them_down"></a><h4>Objects for making grids and breaking them down</h4></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="#import">#import</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/%23import-icon.png" alt="[#import]" border="0"><br clear="left"><br><br><a href="#importexport"><img src="images/see_screenshot.png" border="0"></a><br clear="left"><br></td><td><br> - <p>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.</p> <br><b>attr</b> shape <b>(</b><b><i>GridShape|symbol(per_message)</i> shape</b><b>)</b> <br><b>attr</b> cast <b>(</b><b><i>NumberType</i> cast</b><b>)</b> <br><b>method</b> init <b>(</b>shape<b>, </b>cast<b>)</b> <br> - <br><b>inlet 0 </b><b>method</b> int <b>(</b><b>)</b> - 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. <br> - <br><b>inlet 0 </b><b>method</b> list <b>(</b><b>)</b> - just like a sequence of ints sent one after another, - except in a single message. <br> - <br><b>inlet 0 </b><b>method</b> symbol <b>(</b><b>)</b> - considered as a list of ascii characters. <br> - <br><b>inlet 0 </b><b>method</b> reset <b>(</b><b>)</b> - aborts the current grid if there is one. <br> - <br><b>inlet 0 </b><b>method</b> grid <b>(</b><i>grid(dims...)</i> grid<b>)</b> - this is the equivalent of filtering this grid through - an <kbd><font color="#007777">[#export]</font></kbd> object and sending the resulting integers - to this <kbd><font color="#007777">[#import]</font></kbd> object, except that it's over - 10 times faster. <br> - <br><b>inlet 1 </b><b>method</b> per_message <b>(</b><b>)</b> - old synonym for "shape per_message" <br> - <br><b>outlet 0 </b><b>method</b> grid <b>(</b><i>grid</i> grid<b>)</b> - the grid produced from incoming integers and/or grids. <br> - <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="#export">#export</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/%23export-icon.png" alt="[#export]" border="0"><br clear="left"><br><br><a href="#importexport"><img src="images/see_screenshot.png" border="0"></a><br clear="left"><br></td><td><br> - <p>this object is the opposite of #import.</p> <br><b>method</b> init <b>(</b><b>)</b> - this object is not configurable because there isn't - anything that could possibly be configured here. <br> - <br><b>inlet 0 </b><b>method</b> grid <b>(</b><i>grid(dims...)</i> grid<b>)</b> - transforms this grid into a sequence of integer messages. <br> - <br><b>outlet 0 </b><b>method</b> int <b>(</b><b>)</b> - elements of the incoming grid. <br> - <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="#export_list">#export_list</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/%23export_list-icon.png" alt="[#export_list]" border="0"><br clear="left"><br><br><a href="#importexport"><img src="images/see_screenshot.png" border="0"></a><br clear="left"><br></td><td><br> - <p>this object is another opposite of <kbd><font color="#007777">[#import]</font></kbd>, which puts - all of its values in a list.</p> <br><b>method</b> init <b>(</b><b>)</b> <br> - <br><b>inlet 0 </b><b>method</b> grid <b>(</b><i>grid(dims...)</i> grid<b>)</b> - transforms this grid into a single message containing - a list of integers. <br> - <br><b>outlet 0 </b><b>method</b> list <b>(</b><b>)</b> - elements of the incoming grid. <br> - <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="#export_symbol">#export_symbol</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/%23export_symbol-icon.png" alt="[#export_symbol]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> - <p>this object is another opposite of #import, which constructs a symbol - from its input. The values are expected to be valid ASCII codes, 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.</p> <br><b>method</b> init <b>(</b><b>)</b> <br> - <br><b>inlet 0 </b><b>method</b> grid <b>(</b><i>grid(dims...)</i> grid<b>)</b> - transforms this grid into a single message containing - a list of integers. <br> - <br><b>outlet 0 </b><b>method</b> symbol <b>(</b><b>)</b> generated symbol<br> - <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="#pack">#pack</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/%23pack-icon.png" alt="[#pack]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> - <p>Similar to <kbd><font color="#007777">[#join]</font></kbd>, but takes individual integers, and builds a Dim(N) vector out of it. </p> <br><b>attr</b> trigger_by <b>(</b><b><i>TriggerBy</i> trigger_by</b><b>)</b> <br><b>method</b> init <b>(</b><i>integer</i> inputs<b>)</b> <br> - <br><b>inlet * </b><b>method</b> int <b>(</b><b>)</b> <br> - <br><b>outlet 0 </b><b>method</b> grid <b>(</b><b>)</b> - combination of inputs given in all inlets. - this is produced according to the value of the trigger attribute. <br> - <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="#color">#color</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/%23color-icon.png" alt="[#color]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> - <p>Triple slider for the selection of RGB values.</p> <br><b>method</b> init <b>(</b><i>float</i> min<b>, </b><i>float</i> max<b>, </b><i>0,1</i> hidepreview<b>)</b> <br> - <br><b>inlet 0 </b><b>method</b> grid <b>(</b><b>)</b> - changes all three values (R,G,B). The grid must - be a Dim(3). <br> - <br><b>inlet 0 </b><b>method</b> delegate <b>(</b><b>)</b> - sends the rest of the message to each of the three sliders. - this relies on the fact that [#color] is implemented using - three [hsl] and this might not still work in the far future. <br> - <br><b>outlet 0 </b><b>method</b> grid <b>(</b><b>)</b> - Produces a Dim(3) grid of RGB values. <br> - <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="#unpack">#unpack</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/%23unpack-icon.png" alt="[#unpack]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> - <br><b>method</b> init <b>(</b><i>integer</i> outputs<b>)</b> <br> - <br><b>inlet 0 </b><b>method</b> grid(N) <b>(</b><b>)</b> - the input vector is split in N parts containing one number each. - numbers are sent left-to-right, that is, outlet 0 is triggered first, then outlet 1, etc. <br> - <br><b>outlet * </b><b>method</b> int <b>(</b><b>)</b> <br> - <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="#centroid">#centroid</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/%23centroid-icon.png" alt="[#centroid]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> - <br><b>method</b> init <b>(</b><b>)</b> <br> - <br><b>inlet 0 </b><b>method</b> grid(rows,columns,1) <b>(</b><b>)</b> - will compute the centroid of the given grid, which - is a weighted average, namely, the average position weighted - by the pixel values. <br> - <br><b>outlet 0 </b><b>method</b> grid(2) <b>(</b><b>)</b> - result <br> - <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="#centroid2">#centroid2</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/%23centroid2-icon.png" alt="[#centroid2]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> - - a new experimental and faster version of #centroid. <br><b>method</b> init <b>(</b><b>)</b> <br> - <br><b>inlet 0 </b><b>method</b> grid(rows,columns,1) <b>(</b><b>)</b> - will compute the centroid of the given grid, which - is a weighted average, namely, the average position weighted - by the pixel values. <br> - <br><b>outlet 0 </b><b>method</b> grid(2) <b>(</b><b>)</b> - result <br> - <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="#for">#for</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/%23for-icon.png" alt="[#for]" border="0"><br clear="left"><br><br><a href="#for"><img src="images/see_screenshot.png" border="0"></a><br clear="left"><br></td><td><br> - <p>when given scalar bounds, works like a regular <kbd><font color="#007777">[for]</font></kbd> object plugged - to a <kbd><font color="#007777">[#import]</font></kbd> tuned for a Dim(size) where size is the number of values - produced by a bang to that <kbd><font color="#007777">[for]</font></kbd>.</p> <p>when given vector bounds, will work like any number of [for] objects - producing all possible combinations of their values in the proper order. - This replaces the old <kbd><font color="#007777">[#identity_transform]</font></kbd> object.</p> <br><b>method</b> init <b>(</b><i>integer</i> from<b>, </b><i>integer</i> to<b>, </b><i>integer</i> step<b>)</b> <br> - <br><b>inlet 0 </b><b>method</b> grid <b>(</b><i>grid(index)</i> grid<b>)</b> - replaces the "from" value and produces output. <br> - <br><b>inlet 1 </b><b>method</b> grid <b>(</b><i>grid(index)</i> grid<b>)</b> - replaces the "to" value. <br> - <br><b>inlet 2 </b><b>method</b> grid <b>(</b><i>grid(index_steps)</i> grid<b>)</b> - replaces the "step" value. <br> - <br><b>outlet 0 </b><b>method</b> grid <b>(</b><i>grid(size)</i> grid<b>)</b> - where size is floor((to-from+1)/step) - [for scalar bounds] <br> - <br><b>outlet 0 </b><b>method</b> grid <b>(</b><i>grid(*size,dimension)</i> grid<b>)</b> - where *size is floor((to-from+1)/step) - [for vector bounds] <br> - <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td> </td></tr> - <tr><td colspan="4" bgcolor="black"> -<img src="images/black.png" width="1" height="2"></td></tr> -<tr><td colspan="4"><a name="Objects_for_Computing"></a><h4>Objects for Computing</h4></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="#">#</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/%23-icon.png" alt="[#]" border="0"><br clear="left"><br><br><a href="#"><img src="images/see_screenshot.png" border="0"></a><br clear="left"><br></td><td><br> - <br><b>attr</b> op <b>(</b><b><i>grid</i> op</b><b>)</b> <br><b>attr</b> right_hand <b>(</b><b><i>grid</i> right_hand</b><b>)</b> <p>This object outputs a grid by computing "in parallel" a same - operation on each left-hand element with its corresponding right-hand - element. </p> <br><b>method</b> init <b>(</b>op<b>, </b>right_hand<b>)</b> <br> - <br><b>inlet 0 </b><b>method</b> grid <b>(</b><i>grid(dims...)</i> grid<b>)</b> - 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 1 - are called "B". the resulting grid is the same size as the - one in inlet 0. <br> - <br><b>inlet 1 </b><b>method</b> grid <b>(</b><i>grid(dims...)</i> grid<b>)</b> - 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) <br> - <br><b>inlet 1 </b><b>method</b> int <b>(</b><b>)</b> - stores a single int in the right inlet; the same int will - be applied in all computations; this is like sending a - Dim(1) or Dim() grid with that number in it. <br> - <br><b>outlet 0 </b><b>method</b> grid <b>(</b><i>grid</i> grid<b>)</b> <br> - <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="@complex_sq">@complex_sq</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/@complex_sq-icon.png" alt="[@complex_sq]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> - <p>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. (fun, eh?) </p> <p>used on an indexmap, this makes each thing appear twice, - each apparition spanning half of the original angle.</p> <br><b>inlet 0 </b><b>method</b> grid <b>(</b><i>grid(dims... {imaginary real})</i> grid<b>)</b> <br> - <br><b>outlet 0 </b><b>method</b> grid <b>(</b><i>grid(dims... {imaginary real})</i> grid<b>)</b> <br> - <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="#fold">#fold</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/%23fold-icon.png" alt="[#fold]" border="0"><br clear="left"><br><br><a href="#foldinnerouter"><img src="images/see_screenshot.png" border="0"></a><br clear="left"><br></td><td><br> - <p><ul> <li><b>1</b> : <kbd><font color="#007777">[#fold +]</font></kbd> computes totals</li> <li><b>2</b> : <kbd><font color="#007777">[#fold inv+]</font></kbd> is an alternated sum (+/-)</li> <li><b>3</b> : <kbd><font color="#007777">[#fold * 1]</font></kbd> can compute the size of a grid using its dimension list</li> <li><b>4</b> : <kbd><font color="#007777">[#fold & 1]</font></kbd> can mean "for all"</li> <li><b>5</b> : <kbd><font color="#007777">[#fold | 0]</font></kbd> can mean "there exists (at least one)"</li> <li><b>6</b> : <kbd><font color="#007777">[#fold ^ 0]</font></kbd> can mean "there exists an odd number of..."</li> <li><b>7</b> : <kbd><font color="#007777">[#fold ^ 1]</font></kbd> can mean "there exists an even number of...".</li> </ul></p> <br><b>method</b> init <b>(</b><i>numop2</i> operator<b>, </b><i>grid</i> seed<b>, </b><i>grid</i> right_hand<b>)</b> <br> - <br><b>inlet 0 </b><b>method</b> grid <b>(</b><i>grid(dims..., last)</i> grid<b>)</b> - replaces every Dim(last) 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". - produces a Dim(dims) grid. <br> - <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="#scan">#scan</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/%23scan-icon.png" alt="[#scan]" border="0"><br clear="left"><br><br><a href="#scan"><img src="images/see_screenshot.png" border="0"></a><br clear="left"><br></td><td><br> - <p><kbd><font color="#007777">[#scan +]</font></kbd> computes subtotals; this can be used, for example, - to convert a regular probability distribution into a cumulative one. - (or in general, discrete integration) </p> <br><b>method</b> init <b>(</b><i>numop2</i> operator<b>, </b><i>grid</i> seed<b>)</b> <br> - <br><b>inlet 0 </b><b>method</b> grid <b>(</b><i>grid(dims..., last)</i> grid<b>)</b> - replaces every Dim(last) subgrid by all the results of - cascading the operator on that subgrid, - producing a Dim(dims,last) grid. - 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". <br> - <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="#outer">#outer</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/%23outer-icon.png" alt="[#outer]" border="0"><br clear="left"><br><br><a href="#foldinnerouter"><img src="images/see_screenshot.png" border="0"></a><br clear="left"><br></td><td><br> - <br><b>method</b> init <b>(</b><i>numop2</i> operator<b>, </b><i>grid</i> value<b>)</b> - the operator must be picked from the table of two-input operators. - the grid is optional and corresponds to inlet 1. <br> - <br><b>inlet 0 </b><b>method</b> grid <b>(</b><i>grid(anyA...)</i> grid<b>)</b> <br> - - 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) <br><b>inlet 1 </b><b>method</b> grid <b>(</b><i>grid(anyB...)</i> grid<b>)</b> <br> - - stores the specified grid, to be used when inlet 0 is activated. <p>When given a grid of Dim(3) and a grid of Dim(5) <kbd><font color="#007777">[#outer]</font></kbd> will - produce a grid of Dim(3,5) with the selected two-input operation - applied on each of the possible pairs combinations between numbers - from the left grid and the ones from the right. for example : - (10,20,30) [#outer +] (1,2,3) will give : - ((11,12,13),(21,22,23),(31,32,33)) </p> <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="#inner">#inner</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/%23inner-icon.png" alt="[#inner]" border="0"><br clear="left"><br><br><a href="#inner"><img src="images/see_screenshot.png" border="0"></a><br clear="left"><br></td><td><br> - <p>think of this one as a special combination of <kbd><font color="#007777">[#outer]</font></kbd>, <kbd><font color="#007777">[#]</font></kbd> and <kbd><font color="#007777">[#fold]</font></kbd>. 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 <kbd><font color="#007777">[#inner * + - 0]</font></kbd>. <kbd><font color="#007777">[#inner]</font></kbd> also does dot product and other funny operations.</p> <br><b>method</b> init <b>(</b><i>numop2</i> op_para<b>, </b><i>numop2</i> op_fold<b>, </b><i>integer</i> base<b>, </b><i>grid</i> right_hand<b>)</b> - op_para and op_fold are two operators picked from the table - of two-input operators. - the base value has to be specified (has no default value yet). <br> - <br><b>inlet 0 </b><b>method</b> grid <b>(</b><i>grid(anyA..., lastA)</i> grid<b>)</b> - Splits the Dim(anyA...,lastA) left-hand grid into Dim(anyA...) - pieces of Dim(lastA) size. - Splits the Dim(firstB,anyB...) right-hand grid into - Dim(anyB...) pieces of Dim(firstB) size. - On every piece pair, does <kbd><font color="#007777">[#]</font></kbd> using the specified - op_para operation, followed by a <kbd><font color="#007777">[#fold]</font></kbd> using - the specified op_fold operator and base value. - creates a Dim(anyA...,anyB...) grid by assembling all - the results together. - (note: lastA must be equal to firstB.) <br> - <br><b>inlet 1 </b><b>method</b> int <b>(</b><b>)</b> - changes the base value to that. <br> - <br><b>inlet 2 </b><b>method</b> grid <b>(</b><i>grid(anyB..., lastB)</i> grid<b>)</b> - changes the right-hand side grid to that. <br> - <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="@join">@join</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/@join-icon.png" alt="[@join]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> - <br><b>method</b> init <b>(</b>which_dim<b>)</b> - 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. <br> - <br><b>inlet 0 </b><b>method</b> grid <b>(</b><i>grid</i> grid<b>)</b> - 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. <p>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. </p> <br> - <br><b>inlet 1 </b><b>method</b> grid <b>(</b><i>grid</i> grid<b>)</b> <br> - <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="#finished">#finished</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/%23finished-icon.png" alt="[#finished]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> - <br><b>inlet 0 </b><b>method</b> grid <b>(</b><i>grid</i> grid<b>)</b> any grid<br> - - a bang is emitted every time a grid transmission ends. <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="#cast">#cast</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/%23cast-icon.png" alt="[#cast]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> - <br><b>method</b> init <b>(</b><i>numbertype</i> numbertype<b>)</b> <br> - <br><b>inlet 0 </b><b>method</b> grid <b>(</b><i>grid</i> grid<b>)</b> any grid<br> - <br><b>outlet 0 </b><b>method</b> grid <b>(</b><i>grid</i> grid<b>)</b> a grid of the same shape containing all the same - values after type conversion. note that while casting to - a smaller type, values that are overflowing will be truncated. <br> - <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="#ravel">#ravel</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/%23ravel-icon.png" alt="[#ravel]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> - <br><b>inlet 0 </b><b>method</b> grid <b>(</b><i>grid</i> grid<b>)</b> any grid<br> - <br><b>outlet 0 </b><b>method</b> grid <b>(</b><i>grid</i> grid<b>)</b> - like <kbd><font color="#007777">[#redim]</font></kbd> but always produce a 1-D grid - with the same total number of elements. <br> - <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="#grade">#grade</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/%23grade-icon.png" alt="[#grade]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> - <br><b>inlet 0 </b><b>method</b> grid <b>(</b><i>grid</i> grid<b>)</b> any grid<br> - <br><b>outlet 0 </b><b>method</b> grid <b>(</b><i>grid</i> grid<b>)</b> <p>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.</p> <p>for example, connecting a [#grade] to a <kbd><font color="#007777">[#outer ignore {0}]</font></kbd> - to a <kbd><font color="#007777">[#store]</font></kbd> object, storing a single vector into <kbd><font color="#007777">[#store]</font></kbd>, and - sending the same vector to <kbd><font color="#007777">[#grade]</font></kbd>, will sort the values of the - vector. however for higher-dimensional grids, what should go - between <kbd><font color="#007777">[#store]</font></kbd> and <kbd><font color="#007777">[#grade]</font></kbd> to achieve the same result would - be more complex.</p> <p>you may achieve different kinds of sorting by applying various - filters before <kbd><font color="#007777">[#grade]</font></kbd>. the possibilities are unlimited.</p> <p>if you plug <kbd><font color="#007777">[#grade]</font></kbd> directly into another <kbd><font color="#007777">[#grade]</font></kbd>, 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.</p> <br> - <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="#perspective">#perspective</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/%23perspective-icon.png" alt="[#perspective]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> - <br><b>method</b> init <b>(</b><i>integer</i> depth<b>)</b> <br> - <br><b>inlet 0 </b><b>method</b> grid <b>(</b><i>grid</i> grid<b>)</b> any grid<br> - <br><b>outlet 0 </b><b>method</b> grid <b>(</b><i>grid</i> grid<b>)</b> <p>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.</p> <p>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...(!)</p> <br> - <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="#transpose">#transpose</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/%23transpose-icon.png" alt="[#transpose]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> - <br><b>method</b> init <b>(</b><i>integer</i> dim1<b>, </b><i>integer</i> dim2<b>)</b> <br> - <br><b>inlet 0 </b><b>method</b> grid <b>(</b><i>grid</i> grid<b>)</b> - swaps the two specified dimensions; dimension numbers are as in <kbd><font color="#007777">[#join]</font></kbd>. <br> - <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="#fade">#fade</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/%23fade-icon.png" alt="[#fade]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> - <br><b>method</b> init <b>(</b><i>integer</i> rate<b>)</b> <br> - <br><b>inlet 0 </b><b>method</b> grid <b>(</b><i>grid</i> grid<b>)</b> - produces on outlet 0 a linear recurrent fading according to the flow of - incoming messages. For example, if rate=5, then 20% (one fifth) - of each new message will be blended with 80% of the previous output. <br> - <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="#fade_lin">#fade_lin</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/%23fade_lin-icon.png" alt="[#fade_lin]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> - <br><b>method</b> init <b>(</b><i>integer</i> maxraise<b>, </b><i>integer</i> maxdrop<b>)</b> <br> - <br><b>inlet 0 </b><b>method</b> grid <b>(</b><i>grid</i> grid<b>)</b> - 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. <br> - <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="#reverse">#reverse</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/%23reverse-icon.png" alt="[#reverse]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> - <br><b>method</b> init <b>(</b>whichdim<b>)</b> - Whichdim is the 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. <br> - <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td> </td></tr> - <tr><td colspan="4" bgcolor="black"> -<img src="images/black.png" width="1" height="2"></td></tr> -<tr><td colspan="4"><a name="Objects_for_Coordinate_Transforms"></a><h4>Objects for Coordinate Transforms</h4></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="#redim">#redim</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/%23redim-icon.png" alt="[#redim]" border="0"><br clear="left"><br><br><a href="#redim"><img src="images/see_screenshot.png" border="0"></a><br clear="left"><br></td><td><br> - <br><b>method</b> init <b>(</b><i>dim_list</i> dims<b>)</b> - a list specifying a grid shape that the numbers - will fit into. - (same as with <kbd><font color="#007777">[#import]</font></kbd>) <br> - <br><b>inlet 0 </b><b>method</b> grid <b>(</b><i>grid(dims...)</i> grid<b>)</b> - 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. <br> - <br><b>inlet 1 </b><b>method</b> grid <b>(</b><i>grid(rank)</i> grid<b>)</b> - this grid is a dimension list that replaces the one - specified in the constructor. - (same as with <kbd><font color="#007777">[#import]</font></kbd>) <br> - <br><b>outlet 0 </b><b>method</b> grid <b>(</b><i>grid</i> grid<b>)</b> - redimensioned grid potentially containing repeating data. <br> - <p>example: with a 240 320 RGB image, <kbd><font color="#007777">[#redim 120 640 3]</font></kbd> will visually - separate the even lines (left) from the odd lines (right). contrary - to this, <kbd><font color="#007777">[#redim 640 120 3]</font></kbd> will split every line and put its left half - on a even line and the right half on the following odd line. <kbd><font color="#007777">[#redim]</font></kbd> - 480 320 3 will repeat the input image twice in the output image. <kbd><font color="#007777">[#redim]</font></kbd> 240 50 3 will only keep the 50 top lines.</p> <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="#store">#store</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/%23store-icon.png" alt="[#store]" border="0"><br clear="left"><br><br><a href="#store"><img src="images/see_screenshot.png" border="0"></a><br clear="left"><br></td><td><br> - <p>A <kbd><font color="#007777">[#store]</font></kbd> object can store exactly one grid, using the right - inlet. You fetch it back, or selected subparts thereof, using the left - inlet.</p> <br><b>method</b> init <b>(</b><i>grid</i> contents<b>)</b> <br> - <br><b>inlet 0 </b><b>method</b> bang <b>(</b><b>)</b> - the stored grid is fully sent to the outlet. <br> - <br><b>inlet 0 </b><b>method</b> grid <b>(</b><i>grid(dims..., indices)</i> grid<b>)</b> - in this grid, the last dimension refers to subparts of - the stored grid. sending a Dim(200,200,2) on a <kbd><font color="#007777">[#store]</font></kbd> - that holds a Dim(240,320,3) will cause the <kbd><font color="#007777">[#store]</font></kbd> 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. <br> - <br><b>inlet 1 </b><b>method</b> grid <b>(</b><i>grid(dims...)</i> grid<b>)</b> - replace the whole grid, or a subpart of it (see other options on inlet 1) <br> - <br><b>inlet 1 </b><b>method</b> reassign <b>(</b><b>)</b> (Future Use): - 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. <br> - <br><b>inlet 1 </b><b>method</b> put_at <b>(</b>indices...<b>)</b> (Future Use): - makes it so that sending a grid to inlet 1 writes into the existing buffer of [#store]. <p> - example: suppose you have <kbd><font color="#007777">[#store {10 240 320 3}]</font></kbd>. 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. </p> <p>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. </p> <br> - - grids as stored, as indexed, or as assembled from multiple - indexings. <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="#scale_to">#scale_to</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/%23scale_to-icon.png" alt="[#scale_to]" border="0"><br clear="left"><br><br><a href="#scale_to"><img src="images/see_screenshot.png" border="0"></a><br clear="left"><br></td><td><br> - <br><b>method</b> init <b>(</b>size<b>)</b> <br> - <br><b>inlet 0 </b><b>method</b> grid <b>(</b><i>grid</i> grid<b>)</b> a 3-channel picture to be scaled.<br> - <br><b>inlet 1 </b><b>method</b> int <b>(</b><b>)</b> a {height width} pair.<br> - <br><b>outlet 0 </b><b>method</b> grid <b>(</b><i>grid</i> grid<b>)</b> a scaled 3-channel picture.<br> - <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="#scale_by">#scale_by</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/%23scale_by-icon.png" alt="[#scale_by]" border="0"><br clear="left"><br><br><a href="#scale_by"><img src="images/see_screenshot.png" border="0"></a><br clear="left"><br></td><td><br> - <br><b>method</b> init <b>(</b><i>grid dim() or dim(2)</i> factor<b>)</b> - factor is optional (default is 2). - if it's a single value, then that factor is to be used - for both rows and columns. <br> - <br><b>inlet 0 </b><b>method</b> grid <b>(</b><i>grid(y x channels)</i> grid<b>)</b> - 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. <br> - <br><b>inlet 1 </b><b>method</b> grid <b>(</b><i>grid(1 or 2)</i> grid<b>)</b> sets factor<br> - <br><b>outlet 0 </b><b>method</b> grid <b>(</b><i>grid((factor*y) (factor*x) channels)</i> grid<b>)</b> <br> - <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="#downscale_by">#downscale_by</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/%23downscale_by-icon.png" alt="[#downscale_by]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> - <br><b>method</b> init <b>(</b><i>+integer</i> factor<b>, </b><i>optional symbol(smoothly)</i> how<b>)</b> - factor is optional (default is 2). - if it's a single value, then that factor is to be used - for both rows and columns. <br> - <br><b>inlet 0 </b><b>method</b> grid <b>(</b><i>grid(y x channels)</i> grid<b>)</b> - Scales down picture by specified amount. (See scale factor above) <br> - <br><b>inlet 1 </b><b>method</b> grid <b>(</b><i>grid(1 or 2)</i> grid<b>)</b> sets scale factor<br> - <br><b>outlet 0 </b><b>method</b> grid <b>(</b><i>grid((factor/y) (factor/x) channels)</i> grid<b>)</b> <br> - <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="#spread">#spread</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/%23spread-icon.png" alt="[#spread]" border="0"><br clear="left"><br><br><a href="#spread"><img src="images/see_screenshot.png" border="0"></a><br clear="left"><br></td><td><br> - <p>typically you plug a <kbd><font color="#007777">[#for]</font></kbd> into this object, - and you plug this object into the left side of a <kbd><font color="#007777">[#store]</font></kbd>. it will - scatter pixels around, giving an "unpolished glass" effect.</p> <p>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.</p> <br><b>method</b> init <b>(</b>factor<b>)</b> <br> - <br><b>inlet 0 </b><b>method</b> grid <b>(</b><i>grid</i> grid<b>)</b> a coordinate map.<br> - <br><b>inlet 1 </b><b>method</b> int <b>(</b><b>)</b> a spread factor.<br> - <br><b>outlet 0 </b><b>method</b> grid <b>(</b><i>grid</i> grid<b>)</b> a coordinate map.<br> - <p><kbd><font color="#007777">[#spread]</font></kbd> 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. </p> <p> 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.</p> <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="#rotate">#rotate</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/%23rotate-icon.png" alt="[#rotate]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> - <p>performs rotations on indexmaps and polygons and such.</p> <br><b>method</b> init <b>(</b><i>0...35999</i> angle<b>)</b> <br> - <br><b>inlet 0 </b><b>method</b> grid <b>(</b><i>grid(anyA 2)</i> grid<b>)</b> <br> - <br><b>inlet 1 </b><b>method</b> int <b>(</b><b>)</b> rotation angle; 0...36000<br> - <br><b>outlet 0 </b><b>method</b> grid <b>(</b><i>grid(anyA 2)</i> grid<b>)</b> <br> - <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="#remap_image">#remap_image</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/%23remap_image-icon.png" alt="[#remap_image]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> - <p>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.</p> <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td> </td></tr> - <tr><td colspan="4" bgcolor="black"> -<img src="images/black.png" width="1" height="2"></td></tr> -<tr><td colspan="4"><a name="Objects_for_Reporting"></a><h4>Objects for Reporting</h4></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="#dim">#dim</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/%23dim-icon.png" alt="[#dim]" border="0"><br clear="left"><br><br><a href="#dim"><img src="images/see_screenshot.png" border="0"></a><br clear="left"><br></td><td><br> - <p>Returns list of dimensions as a grid. Given a grid sized like Dim(240,320,4), <kbd><font color="#007777">[#dim]</font></kbd> will return a grid like Dim(3), whose values are 240, 320, 4. </p> <br><b>method</b> init <b>(</b><b>)</b> - no arguments. <br> - <br><b>inlet 0 </b><b>method</b> grid <b>(</b><i>grid(dims...)</i> grid<b>)</b> - ignores any data contained within. - sends a grid dim(length of dims) containing dims. <br> - <br><b>outlet 0 </b><b>method</b> grid <b>(</b><i>grid(rank)</i> grid<b>)</b> - the list of dimensions of the incoming grid. <br> - <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="#type">#type</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/%23type-icon.png" alt="[#type]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> - <p>gives a symbol representing the numeric type of the grid received. </p> <br><b>outlet 0 </b><b>method</b> <numeric type symbol> <b>(</b><b>)</b> <br> - <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="#print">#print</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/%23print-icon.png" alt="[#print]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> - <br><b>method</b> init <b>(</b><b>)</b> <br> - <br><b>inlet 0 </b><b>method</b> grid <b>(</b><i>grid(dims...)</i> grid<b>)</b> - prints the dimensions of the grid. - prints all the grid data if there are 2 dimensions or less. <br> - <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="rubyprint">rubyprint</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/rubyprint-icon.png" alt="[rubyprint]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> - - This is only for testing the translation from PD to Ruby. <br><b>method</b> init <b>(</b><b>)</b> <br> - <br><b>inlet 0 </b><b>method</b> (any) <b>(</b><b>)</b> - prints the message to the console. <br> - <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="printargs">printargs</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/printargs-icon.png" alt="[printargs]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> - - This is only for testing the translation from PD to Ruby. <br><b>method</b> init <b>(</b>any...<b>)</b> - prints everything. <br> - <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="display">display</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/display-icon.png" alt="[display]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> - - GUI object equivalent to [print] and [#print]. <br><b>method</b> (any) <b>(</b><b>)</b> - Displays the received message in the box, resizing the box so that the message fits exactly. <br> - <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td> </td></tr> - <tr><td colspan="4" bgcolor="black"> -<img src="images/black.png" width="1" height="2"></td></tr> -<tr><td colspan="4"><a name="Objects_for_Color_Conversion"></a><h4>Objects for Color Conversion</h4></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="#apply_colormap_channelwise">#apply_colormap_channelwise</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/%23apply_colormap_channelwise-icon.png" alt="[#apply_colormap_channelwise]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> - <p>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. You may also color-correct - colormaps themselves.</p> <p>Only works for things that have 3 channels.</p> <p>Note: if you just need to apply a palette on an indexed-color - picture, you don't need this. Just use #store instead.</p> <br><b>inlet 0 </b><b>method</b> grid <b>(</b><i>grid(rows columns channels)</i> grid<b>)</b> - picture <br> - <br><b>inlet 1 </b><b>method</b> grid <b>(</b><i>grid(intensities channels)</i> grid<b>)</b> - colormap ("palette") <br> - <br><b>outlet 0 </b><b>method</b> grid <b>(</b><i>grid(rows columns channels)</i> grid<b>)</b> - picture <br> - <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="#rgb_to_greyscale">#rgb_to_greyscale</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/%23rgb_to_greyscale-icon.png" alt="[#rgb_to_greyscale]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> - <br><b>inlet 0 </b><b>method</b> grid <b>(</b><i>grid(rows columns {red green blue})</i> grid<b>)</b> <br> - <br><b>outlet 0 </b><b>method</b> grid <b>(</b><i>grid(rows columns {white})</i> grid<b>)</b> <br> - <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="#greyscale_to_rgb">#greyscale_to_rgb</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/%23greyscale_to_rgb-icon.png" alt="[#greyscale_to_rgb]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> - <br><b>inlet 0 </b><b>method</b> grid <b>(</b><i>grid(rows columns {white})</i> grid<b>)</b> <br> - <br><b>outlet 0 </b><b>method</b> grid <b>(</b><i>grid(rows columns {red green blue})</i> grid<b>)</b> <br> - <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="#yuv_to_rgb">#yuv_to_rgb</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/%23yuv_to_rgb-icon.png" alt="[#yuv_to_rgb]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> - <p>note: may change slightly to adapt to actual video standards.</p> <br><b>inlet 0 </b><b>method</b> grid <b>(</b><i>grid(rows columns {y u v})</i> grid<b>)</b> <br> - <br><b>outlet 0 </b><b>method</b> grid <b>(</b><i>grid(rows columns {red green blue})</i> grid<b>)</b> <br> - <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="#rgb_to_yuv">#rgb_to_yuv</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/%23rgb_to_yuv-icon.png" alt="[#rgb_to_yuv]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> - <p>note: may change slightly to adapt to actual video standards.</p> <br><b>inlet 0 </b><b>method</b> grid <b>(</b><i>grid(rows columns {red green blue})</i> grid<b>)</b> <br> - <br><b>outlet 0 </b><b>method</b> grid <b>(</b><i>grid(rows columns {y u v})</i> grid<b>)</b> <br> - <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td> </td></tr> - <tr><td colspan="4" bgcolor="black"> -<img src="images/black.png" width="1" height="2"></td></tr> -<tr><td colspan="4"><a name="Objects_for_Miscellaneous_Picture_Processing"></a><h4>Objects for Miscellaneous Picture Processing</h4></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="#convolve">#convolve</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/%23convolve-icon.png" alt="[#convolve]" border="0"><br clear="left"><br><br><a href="#convolve"><img src="images/see_screenshot.png" border="0"></a><br clear="left"><br></td><td><br> - <p>this is the object for blurring, sharpening, finding edges, - embossing, cellular automata, and many other uses.</p> <br><b>method</b> init <b>(</b><i>numop2</i> op_para<b>, </b><i>numop2</i> op_fold<b>, </b><i>grid</i> seed<b>, </b><i>grid</i> right_hand<b>)</b> <br> - <br><b>inlet 0 </b><b>method</b> grid <b>(</b><i>grid(rows columns rest...)</i> grid<b>)</b> - 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 <kbd><font color="#007777">[#]</font></kbd> of operation op_para. Then - each such result is folded like <kbd><font color="#007777">[#fold]</font></kbd> 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. <br> - <br><b>inlet 1 </b><b>method</b> grid <b>(</b><i>grid(rows2 columns2)</i> grid<b>)</b> - this is the convolution grid and it gets stored in - the object. if rows2 and/or columns2 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 cells of the grid. <br> - <br><b>outlet 0 </b><b>method</b> grid <b>(</b><i>grid(rows columns rest...)</i> grid<b>)</b> <br> - <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="#contrast">#contrast</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/%23contrast-icon.png" alt="[#contrast]" border="0"><br clear="left"><br><br><a href="#contrast"><img src="images/see_screenshot.png" border="0"></a><br clear="left"><br></td><td><br> - <br><b>method</b> init <b>(</b>iwhiteness<b>, </b>contrast<b>)</b> <br> - <br><b>inlet 0 </b><b>method</b> grid <b>(</b><i>grid(rows columns channels)</i> grid<b>)</b> - produces a grid like the incoming grid but with - different constrast. <br> - <p><kbd><font color="#007777">[#contrast]</font></kbd> adjusts the intensity in an image. - resulting values outside 0-255 are automatically clipped.</p> <br><b>inlet 1 </b><b>method</b> int <b>(</b><b>)</b> - this is the secondary contrast (inverse whiteness). - it makes the incoming black - correspond to a certain fraction between output black and the - master contrast value. no effect is 256. default value is 256. <br> - <br><b>inlet 2 </b><b>method</b> int <b>(</b><b>)</b> - this is the master contrast. it makes the incoming white - correspond to a certain fraction between output black and output - white. no effect is 256. default value is 256. <br> - <br><b>outlet </b><b>method</b> grid <b>(</b><i>grid(rows columns channels)</i> grid<b>)</b> <br> - <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="#posterize">#posterize</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/%23posterize-icon.png" alt="[#posterize]" border="0"><br clear="left"><br><br><a href="#posterize"><img src="images/see_screenshot.png" border="0"></a><br clear="left"><br></td><td><br> - <p><kbd><font color="#007777">[#posterize]</font></kbd> 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.</p> <br><b>method</b> init <b>(</b>levels<b>)</b> <br> - <br><b>inlet 0 </b><b>method</b> grid <b>(</b><i>grid(rows columns channels)</i> grid<b>)</b> - produces a posterized picture from the input picture. <br> - <br><b>inlet 1 </b><b>method</b> int <b>(</b><b>)</b> - this is the 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 2. <br> - <p>example: simulate the 216-color "web" palette using 6 levels. - simulate a 15-bit display using 32 levels.</p> <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="#solarize">#solarize</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/%23solarize-icon.png" alt="[#solarize]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> - <p>makes medium intensities brightest; formerly brightest colours - become darkest; formerly darkest stays darkest. This filter is linear: - it's like a 200% contrast except that overflows are <i>mirrored</i> - instead of clipped or wrapped.</p> <br><b>inlet 0 </b><b>method</b> grid <b>(</b><i>grid(rows columns channels)</i> grid<b>)</b> <br> - <br><b>outlet 0 </b><b>method</b> grid <b>(</b><i>grid(rows columns channels)</i> grid<b>)</b> <br> - <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="#checkers">#checkers</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/%23checkers-icon.png" alt="[#checkers]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> - <br><b>inlet 0 </b><b>method</b> grid <b>(</b><i>grid(y x {y x})</i> grid<b>)</b> - result from a <kbd><font color="#007777">[#for {0 0} {height width} {1 1}]</font></kbd> <br> - <br><b>outlet 0 </b><b>method</b> grid <b>(</b><i>grid(y x {r g b})</i> grid<b>)</b> - checkered pattern of 50%/75% greys - in 8x8 squares <br> - <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="#layer">#layer</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/%23layer-icon.png" alt="[#layer]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> - <br><b>inlet 0 </b><b>method</b> grid <b>(</b><i>grid(y x {r g b a})</i> grid<b>)</b> - a picture that has an opacity channel. - will be used as foreground. <br> - <br><b>inlet 1 </b><b>method</b> grid <b>(</b><i>grid(y x {r g b})</i> grid<b>)</b> - a picture that has NO opacity channel. - will be used as background. <br> - <br><b>outlet 0 </b><b>method</b> grid <b>(</b><i>grid(y x {r g b})</i> grid<b>)</b> - a picture that has NO opacity channel. - the opacity channel of the foreground is used as - a weighting of how much of either picture is seen - in the result. <br> - <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="#draw_image">#draw_image</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/%23draw_image-icon.png" alt="[#draw_image]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> - <br><b>method</b> init <b>(</b><i>numop2</i> operator<b>, </b><i>grid(y,x,channels)</i> picture<b>, </b><i>grid({y x})</i> position<b>)</b> <br> - <br><b>inlet 0 </b><b>method</b> grid <b>(</b><i>grid(y x channels)</i> grid<b>)</b> - picture onto which another picture will be superimposed. <br> - <br><b>inlet 0 </b><b>method</b> tile <b>(</b><i>0 or 1</i> flag<b>)</b> - if enabled, inlet 1 picture will be repeated to cover the inlet 0 picture. <br> - <br><b>inlet 0 </b><b>method</b> alpha <b>(</b><i>0 or 1</i> flag<b>)</b> - if enabled, inlet 1 picture will be combined with inlet 0 picture using - the selected operator, - and then blended with inlet 0 picture according to transparency of - the inlet 1 picture, and then inserted in the result. - if disabled, the blending doesn't occur, as the transparency level - is considered to be "opaque". note that with alpha enabled, - the last channel of inlet 1 picture is considered to represent transparency. <br> - <br><b>inlet 1 </b><b>method</b> grid <b>(</b><i>grid(y x channels)</i> grid<b>)</b> - picture that will be superimposed onto another picture. <br> - <br><b>inlet 2 </b><b>method</b> grid <b>(</b><i>grid({y x})</i> grid<b>)</b> - position of the inlet 0 picture corresponding to top-left corner - of inlet 1 picture. <br> - <br><b>outlet 0 </b><b>method</b> grid <b>(</b><i>grid(y x channels)</i> grid<b>)</b> - resulting picture. <br> - <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="#draw_polygon">#draw_polygon</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/%23draw_polygon-icon.png" alt="[#draw_polygon]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> - <br><b>method</b> init <b>(</b><i>numop2</i> operator<b>, </b><i>grid(channels)</i> color<b>, </b><i>grid(vertices,{y x})</i> vertices<b>)</b> <br> - <br><b>inlet 0 </b><b>method</b> grid <b>(</b><i>grid(y x channels)</i> grid<b>)</b> - picture on which the polygon will be superimposed. <br> - <br><b>inlet 1 </b><b>method</b> grid <b>(</b><i>grid(channels)</i> grid<b>)</b> - color of each pixel <br> - <br><b>inlet 2 </b><b>method</b> grid <b>(</b><i>grid(vertices {y x})</i> grid<b>)</b> - vertices of the polygon. <br> - <br><b>outlet 0 </b><b>method</b> grid <b>(</b><i>grid(y x channels)</i> grid<b>)</b> - modified picture. - note: starting with 0.7.2, drawing a 1-by-1 - square really generates a 1-by-1 square, and - so on. This is because the right-hand border of a - polygon is excluded, whereas it was included - before, leading to slightly-wider-than-expected polygons. <br> - <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="#text_to_image">#text_to_image</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/%23text_to_image-icon.png" alt="[#text_to_image]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> - <p>inlet 2 receives a font grid, for example, [#in grid file lucida-typewriter-12.grid.gz]</p> <p>inlet 1 receives a 2 by 3 matrix representing the colours to use (e.g. (2 3 # 0 170 0 255 255 0) means yellow on green)</p> <p>inlet 0 receives a bang, transforming the data into an image suitable for #draw_image.</p> <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="#hueshift">#hueshift</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/%23hueshift-icon.png" alt="[#hueshift]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> - <p>inlet 1 receives an angle (0..36000)</p> <p>inlet 0 receives a RGB picture that gets hueshifted by a rotation in the colorwheel by the specified angle; it gets sent to outlet 0.</p> <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td> </td></tr> - <tr><td colspan="4" bgcolor="black"> -<img src="images/black.png" width="1" height="2"></td></tr> -<tr><td colspan="4"><a name="Other_Objects"></a><h4>Other Objects</h4></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="rtmetro">rtmetro</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/rtmetro-icon.png" alt="[rtmetro]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> -This class has been removed (0.7.7).<br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="bindpatcher">bindpatcher</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/bindpatcher-icon.png" alt="[bindpatcher]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> - <p>sets the receive-symbol for the Pd patcher it is in.</p> <p>has no inlets, no outlets.</p> <p>EXPERIMENTAL.</p> <br><b>method</b> init <b>(</b><i>symbol</i> symbol<b>)</b> <br> - <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="pingpong">pingpong</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/pingpong-icon.png" alt="[pingpong]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> - - 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. <br><b>method</b> init <b>(</b><i>int</i> top<b>)</b> <br> - <br><b>inlet 1 </b><b>method</b> float <b>(</b><i>float</i> top<b>)</b> <br> - <br><b>inlet 0 </b><b>method</b> float <b>(</b><b>)</b> - 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. <br> - <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="#global">#global</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/%23global-icon.png" alt="[#global]" border="0"><br clear="left"><br><br><a href="#global"><img src="images/see_screenshot.png" border="0"></a><br clear="left"><br></td><td><br> - <p> - objects of this class do nothing by themselves and are just - an access point to features that don't belong to any object in - particular. </p> <br><b>method</b> profiler_reset <b>(</b><b>)</b> - resets all the time counters. <br> - <br><b>method</b> profiler_dump <b>(</b><b>)</b> - displays the time counters in decreasing order, with - the names of the classes those objects are in. this is - an experimental feature. like most statistics, - it could be vaguely relied upon if - only you knew to which extent it is unreliable. more on this - in a future section called "profiling". <br> - <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="fps">fps</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/fps-icon.png" alt="[fps]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> - <br><b>method</b> init <b>(</b><i>symbol(real|user|system|cpu)</i> clocktype<b>, </b><i>symbol(detailed)</i> detailed<b>)</b> <br> - <br><b>method</b> init detailed <b>(</b><b>)</b> <br> - <br><b>inlet 0 </b><b>method</b> bang <b>(</b><b>)</b> - 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. <br> - <br><b>inlet 0 </b><b>method</b> (else) <b>(</b><b>)</b> - messages other than bangs are ignored. <br> - <br><b>outlet 0 </b><b>method</b> float <b>(</b><b>)</b> - non-detailed mode only. - this is the messages-per-second rating. <br> - <br><b>outlet 0 </b><b>method</b> list(float,6) <b>(</b><b>)</b> - detailed mode only. - this is: messages-per-second, followed by five values of - milliseconds-per-message: minimum, median, maximum, average, - standard deviation. - (the average happens to be simply 1000 divided by the - messages-per-second, but it is convenient to have it anyway) <br> - <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="unix_time">unix_time</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/unix_time-icon.png" alt="[unix_time]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> - <p> - 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 000 th of a second which is useful for creating - filenames. </p> <br><b>inlet 0 </b><b>method</b> bang <b>(</b><b>)</b> <br> - <br><b>outlet 0 </b><b>method</b> symbol <b>(</b><b>)</b> <br> -Outputs the time and date in ASCII format <br><b>outlet 1 </b><b>method</b> float <b>(</b><b>)</b> <br> -Outputs the Unix timestamp in seconds <br><b>outlet 2 </b><b>method</b> float <b>(</b><b>)</b> <br> -Outputs the fractions of a second up to 10 microseconds (?) (actual precision is platform-dependent afaik) <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="ls">ls</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/ls-icon.png" alt="[ls]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> - <p> - This object is similar to the Unix list command - 'ls'. It returns the names of files in a given - directory. May be used with [listlength] to retrieve the number of files. - Hidden files are displayed. </p> <br><b>inlet 0 </b><b>method</b> symbol <b>(</b><b>)</b> - lists all files in a given directory <br> - <br><b>inlet 0 </b><b>method</b> glob <b>(</b><b>)</b> - lists all files matching a given pattern. - "symbol hello" is like "glob hello/*" <br> - <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="exec">exec</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/exec-icon.png" alt="[exec]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> - <p> - This object launches a Unix shell program or script. </p> <br><b>inlet 0 </b><b>method</b> symbol <b>(</b><b>)</b> <br> - <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="renamefile">renamefile</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/renamefile-icon.png" alt="[renamefile]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> - <p> - This object accepts a list of two elements as arguments. - The current file name being the first and the second is the desired change - in name. </p> <br><b>inlet 0 </b><b>method</b> list <b>(</b><b>)</b> <br> - <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="plotter_control">plotter_control</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/plotter_control-icon.png" alt="[plotter_control]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> - <p> - This object produces HPGL instructions in ASCII form - that can be sent to the comport object in order to control an HPGL - compatible plotter. </p> <br><b>inlet 0 </b><b>method</b> symbol <b>(</b><b>)</b> <br> - <br><b>outlet 0 </b><b>method</b> symbol <b>(</b><b>)</b> <br> -Outputs the HPGL commands in ASCII format <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="rubyarray">rubyarray</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/rubyarray-icon.png" alt="[rubyarray]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> - <p>inlet 0 float : sends the specified array entry to outlet 0</p> <p>inlet 1 list: writes that list as an array entry in position last specified by inlet 0.</p> <p>inlet 0 save(symbol filename): writes the array contents to a file of the given filename as a CSV</p> <p>inlet 0 save(symbol filename, symbol format): same thing but using a sprintf string such as %x,%f or whatever</p> <p>inlet 0 load(symbol filename): replace all array contents by the contents of a CSV file</p> <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td> </td></tr> - <tr><td colspan="4" bgcolor="black"> -<img src="images/black.png" width="1" height="2"></td></tr> -<tr><td colspan="4"><a name="jMax_emulation"></a><h4>jMax emulation</h4></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td></td><td></td><td><p>those classes emulate jMax functionality, - for use within PureData and Ruby.</p></td></tr> -<tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="fork">fork</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/fork-icon.png" alt="[fork]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> - <p>Every incoming message is sent to inlet 1 and then sent to - inlet 0 as well. Messages remain completely unaltered. Contrast - with PureData's "t a a" objects, which have the same purpose but - transform bangs into zeros and such.</p> <br><b>inlet 0 </b><b>method</b> (any) <b>(</b><b>)</b> <br> - <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="jmax_udpsend">jmax_udpsend</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/jmax_udpsend-icon.png" alt="[jmax_udpsend]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> - - Sends messages (but not grids nor dspsignals) via UDP (which - does not involve a connection, and may lose packets in case of - network overload or noise or etc). <p>This works with jMax 2.5 and 4.1 but not 4.0.</p> <br><b>method</b> init <b>(</b><i>host</i> host<b>, </b><i>integer</i> port<b>)</b> <br> - <br><b>inlet 0 </b><b>method</b> <any> <b>(</b><b>)</b> <br> - <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="jmax_udpreceive">jmax_udpreceive</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/jmax_udpreceive-icon.png" alt="[jmax_udpreceive]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> - <p>Counterpart of jmax_udpsend</p> <p>This works with jMax 2.5 and 4.1 but not 4.0.</p> <br><b>method</b> init <b>(</b><i>integer</i> port<b>)</b> <br> - <br><b>outlet 0 </b><b>method</b> <any> <b>(</b><b>)</b> <br> - <br><b>outlet 1 </b><b>method</b> list <b>(</b>protocol_name<b>, </b>sender_port<b>, </b>sender_host<b>, </b>sender_ip_address<b>)</b> <br> - <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="foreach">foreach</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/foreach-icon.png" alt="[foreach]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> - <br><b>inlet 0 </b><b>method</b> list <b>(</b>...<b>)</b> - Outputs N messages, one per list element, in order. <br> - <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="rubysprintf">rubysprintf</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/rubysprintf-icon.png" alt="[rubysprintf]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> - <br><b>method</b> init <b>(</b><i>symbol</i> format<b>)</b> <br> - <br><b>inlet 0 </b><b>method</b> list <b>(</b><b>)</b> - Outputs the format string with %-codes replaced - by elements of the list formatted as the %-codes say. - To get a list of those codes, consult a Ruby manual - (Equivalently, Perl, Python, Tcl and C all have equivalents of this, - and it's almost always called sprintf, or the % operator, or both) <br> - <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="listflatten">listflatten</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/listflatten-icon.png" alt="[listflatten]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> - <br><b>inlet 0 </b><b>method</b> list <b>(</b>...<b>)</b> <br> - <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="listmake">listmake</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/listmake-icon.png" alt="[listmake]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> - - Emulation of jMax's [list] (but there cannot be a class named [list] in Pd) <br><b>method</b> init <b>(</b>list...<b>)</b> <br> - <br><b>inlet 0 </b><b>method</b> bang <b>(</b><b>)</b> send "list" to outlet 0<br> - <br><b>inlet 0 </b><b>method</b> list <b>(</b><b>)</b> as sending to inlet 1 and then banging; that is, passes thru and remembers.<br> - <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="listlength">listlength</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/listlength-icon.png" alt="[listlength]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> - <br><b>inlet 0 </b><b>method</b> list <b>(</b><b>)</b> - outputs the number of elements in the incoming list. <br> - <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="listelement">listelement</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/listelement-icon.png" alt="[listelement]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> - <br><b>method</b> init <b>(</b><i>int</i> index<b>)</b> <br> - <br><b>inlet 0 </b><b>method</b> list <b>(</b>...<b>)</b> - Outputs one element of the list, as selected by "index". - Also accepts negative indices (e.g.: -1 means "last"), like Ruby, but unlike jMax. <br> - <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="listsublist">listsublist</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/listsublist-icon.png" alt="[listsublist]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> - <br><b>method</b> init <b>(</b><i>int</i> index<b>, </b><i>int</i> length<b>)</b> <br> - <br><b>inlet 0 </b><b>method</b> list <b>(</b>...<b>)</b> - Outputs consecutive elements of the list, as selected by "index" and "length". - Also accepts negative indices (e.g.: -1 means "last"), like Ruby, but unlike jMax. <br> - <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="listprepend">listprepend</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/listprepend-icon.png" alt="[listprepend]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> - <br><b>method</b> init <b>(</b>list...<b>)</b> <br> - <br><b>inlet 0 </b><b>method</b> list <b>(</b>...<b>)</b> - Outputs the stored list followed by the incoming list, all in one message. <br> - <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="listappend">listappend</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/listappend-icon.png" alt="[listappend]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> - <br><b>method</b> init <b>(</b>list...<b>)</b> <br> - <br><b>inlet 0 </b><b>method</b> list <b>(</b>...<b>)</b> - Outputs the incoming list followed by the stored list, all in one message. <br> - <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="listreverse">listreverse</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/listreverse-icon.png" alt="[listreverse]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> - <br><b>inlet 0 </b><b>method</b> list <b>(</b>...<b>)</b> - Outputs the incoming list, from last element to first element. <br> - <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="oneshot">oneshot</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/oneshot-icon.png" alt="[oneshot]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> - - Like [spigot], but turns itself off after each message, so you have to turn it on - again to making it pass another message. <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="inv+">inv+</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/inv+-icon.png" alt="[inv+]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> - <br><b>method</b> init <b>(</b><i>float</i> b<b>)</b> <br> - <br><b>inlet 0 </b><b>method</b> float <b>(</b><i>float</i> a<b>)</b> - outputs b-a <br> - <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="inv*">inv*</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/inv*-icon.png" alt="[inv*]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> - <br><b>method</b> init <b>(</b><i>float</i> b<b>)</b> <br> - <br><b>inlet 0 </b><b>method</b> float <b>(</b><i>float</i> a<b>)</b> - outputs b/a <br> - <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="messageprepend">messageprepend</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/messageprepend-icon.png" alt="[messageprepend]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> - - (This is not in jMax, but is there to help port $* messageboxes) <br><b>method</b> init <b>(</b>list...<b>)</b> <br> - <br><b>inlet 0 </b><b>method</b> <any> <b>(</b>...<b>)</b> - Like [listprepend], but operates on whole messages, that is, including the selector. <br> - <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="messageappend">messageappend</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/messageappend-icon.png" alt="[messageappend]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> - - (This is not in jMax, but is there to help port $* messageboxes) <br><b>method</b> init <b>(</b>list...<b>)</b> <br> - <br><b>inlet 0 </b><b>method</b> <any> <b>(</b>...<b>)</b> - Like [listappend], but operates on whole messages, that is, including the selector. <br> - <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="shunt">shunt</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/shunt-icon.png" alt="[shunt]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> - - Compatible with jMax's [demux]. <br><b>method</b> init <b>(</b>n<b>, </b>i<b>)</b> <br> - <br><b>inlet 0 </b><b>method</b> <any> <b>(</b>...<b>)</b> - Routes a message to the active outlet. <br> - <br><b>inlet 1 </b><b>method</b> int <b>(</b><i>int</i> i<b>)</b> - Selects which outlet is active. <br> - <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="demux">demux</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/demux-icon.png" alt="[demux]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> - - please use shunt instead (name conflict with another Pd external) <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="range">range</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/range-icon.png" alt="[range]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> - <br><b>method</b> init <b>(</b>separators...<b>)</b> <br> - <br><b>inlet 0 </b><b>method</b> float <b>(</b><b>)</b> - 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. <br> - <br><b>inlet 1..n </b><b>method</b> float <b>(</b><b>)</b> - sets the corresponding separator in the separator list. <br> - <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td> </td></tr> - <tr><td colspan="4" bgcolor="black"> -<img src="images/black.png" width="1" height="2"></td></tr> -<tr><td colspan="4"><a name="PureData_emulation"></a><h4>PureData emulation</h4></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="pd_netsend">pd_netsend</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/pd_netsend-icon.png" alt="[pd_netsend]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> - - same as jmax_udpsend but for PureData UDP connections. <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="pd_netreceive">pd_netreceive</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/pd_netreceive-icon.png" alt="[pd_netreceive]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> - - same as jmax_udpreceive but for PureData UDP connections. <br></td></tr><tr><td></td><td></td><td> </td></tr> -<tr><td> </td></tr> - <tr><td colspan="4" bgcolor="black"> -<img src="images/black.png" width="1" height="2"></td></tr> -<tr><td colspan="4"><a name="(new_documentation)"></a><h4>(new documentation)</h4></td></tr><tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="listfind">listfind</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/listfind-icon.png" alt="[listfind]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> -<br><b>method</b> _1_list <b>(</b><b>)</b> list to search into<br> -<br><b>method</b> _0_float <b>(</b><b>)</b> float to find in that list<br> -<br><b>method</b> _1_float <b>(</b><b>)</b> position of the incoming float in the stored list<br> -<br></td></tr><tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="memstat">memstat</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/memstat-icon.png" alt="[memstat]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> -<br><b>method</b> _0_bang <b>(</b><b>)</b> lookup process stats for the currently running pd+ruby and figure out how much RAM it uses.<br> -<br><b>method</b> _0_float <b>(</b><b>)</b> virtual size of RAM in kilobytes (includes swapped out and shared memory)<br> -<br></td></tr><tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="regsub">regsub</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/regsub-icon.png" alt="[regsub]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> -<br><b>method</b> _1_symbol <b>(</b><b>)</b> a regexp pattern to be found inside of the string<br> -<br><b>method</b> _0_symbol <b>(</b><b>)</b> a string to transform<br> -<br><b>method</b> _2_symbol <b>(</b><b>)</b> a replacement for the found pattern<br> -<br><b>method</b> _0_symbol <b>(</b><b>)</b> the transformed string<br> -<br></td></tr><tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="sendgui">sendgui</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/sendgui-icon.png" alt="[sendgui]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> -<br><b>method</b> _0_list <b>(</b><b>)</b> a Tcl/Tk command to send to the pd client.<br> -<br></td></tr><tr><td colspan="4" bgcolor="#ffb080"><b> class </b><a name="sys_vgui">sys_vgui</a></td></tr><tr><td></td><td valign="top"><br> -<img src="flow_classes/sys_vgui-icon.png" alt="[sys_vgui]" border="0"><br clear="left"><br><br><br clear="left"><br></td><td><br> -<br><b>method</b> _0_list <b>(</b><b>)</b> a Tcl/Tk command to send to the pd client.<br> -<br></td></tr><tr><td> </td></tr> -<tr><td colspan="4" bgcolor="black"> -<img src="images/black.png" width="1" height="2"></td></tr> -<tr><td colspan="4"><a name="(undocumented)"></a><h4>(undocumented)</h4></td></tr><tr><td></td><td></td><td><p>[#edit]</p></td></tr> -<tr><td></td><td></td><td><p>[#in]</p></td></tr> -<tr><td></td><td></td><td><p>[#in:aalib]</p></td></tr> -<tr><td></td><td></td><td><p>[#io:file]</p></td></tr> -<tr><td></td><td></td><td><p>[#io:grid]</p></td></tr> -<tr><td></td><td></td><td><p>[#io:jpeg]</p></td></tr> -<tr><td></td><td></td><td><p>[#io:mpeg]</p></td></tr> -<tr><td></td><td></td><td><p>[#io:opengl]</p></td></tr> -<tr><td></td><td></td><td><p>[#io:png]</p></td></tr> -<tr><td></td><td></td><td><p>[#io:ppm]</p></td></tr> -<tr><td></td><td></td><td><p>[#io:quicktime]</p></td></tr> -<tr><td></td><td></td><td><p>[#io:sdl]</p></td></tr> -<tr><td></td><td></td><td><p>[#io:targa]</p></td></tr> -<tr><td></td><td></td><td><p>[#io:tk]</p></td></tr> -<tr><td></td><td></td><td><p>[#io:videodev]</p></td></tr> -<tr><td></td><td></td><td><p>[#io:window]</p></td></tr> -<tr><td></td><td></td><td><p>[#io:x11]</p></td></tr> -<tr><td></td><td></td><td><p>[#matrix_solve]</p></td></tr> -<tr><td></td><td></td><td><p>[#out]</p></td></tr> -<tr><td></td><td></td><td><p>[#peephole]</p></td></tr> -<tr><td></td><td></td><td><p>[@!]</p></td></tr> -<tr><td></td><td></td><td><p>[@eight]</p></td></tr> -<tr><td></td><td></td><td><p>[@four]</p></td></tr> -<tr><td></td><td></td><td><p>[@global]</p></td></tr> -<tr><td></td><td></td><td><p>[@scale_to]</p></td></tr> -<tr><td></td><td></td><td><p>[@three]</p></td></tr> -<tr><td></td><td></td><td><p>[@two]</p></td></tr> -<tr><td></td><td></td><td><p>[GridObject]</p></td></tr> -<tr><td></td><td></td><td><p>[SoundMixer]</p></td></tr> -<tr><td></td><td></td><td><p>[ascii]</p></td></tr> -<tr><td></td><td></td><td><p>[broken]</p></td></tr> -<tr><td></td><td></td><td><p>[button]</p></td></tr> -<tr><td></td><td></td><td><p>[delcomusb]</p></td></tr> -<tr><td></td><td></td><td><p>[for]</p></td></tr> -<tr><td></td><td></td><td><p>[gfmessagebox]</p></td></tr> -<tr><td></td><td></td><td><p>[gridflow]</p></td></tr> -<tr><td></td><td></td><td><p>[jcomment]</p></td></tr> -<tr><td></td><td></td><td><p>[jmax4_udpreceive]</p></td></tr> -<tr><td></td><td></td><td><p>[jmax4_udpsend]</p></td></tr> -<tr><td></td><td></td><td><p>[joystick_port]</p></td></tr> -<tr><td></td><td></td><td><p>[jpatcher]</p></td></tr> -<tr><td></td><td></td><td><p>[klippeltronics]</p></td></tr> -<tr><td></td><td></td><td><p>[loadbang]</p></td></tr> -<tr><td></td><td></td><td><p>[messbox]</p></td></tr> -<tr><td></td><td></td><td><p>[parallel_port]</p></td></tr> -<tr><td></td><td></td><td><p>[pd_netsocket]</p></td></tr> -<tr><td></td><td></td><td><p>[system]</p></td></tr> -<tr><td></td><td></td><td><p>[toggle]</p></td></tr> -<tr><td> </td></tr> -<td colspan="4" bgcolor="black"> -<img src="images/black.png" width="1" height="2"></td></tr> -<tr><td colspan="4"> -<p><font size="-1"> -GridFlow 0.8.1 Documentation<br> -Copyright © 2001,2002,2003,2004,2005,2006 by Mathieu Bouchard -<a href="mailto:matju@artengine.ca">matju@artengine.ca</a> -</font></p> -</td></tr></table></body></html> - - diff --git a/externals/gridflow/doc/reference.xml b/externals/gridflow/doc/reference.xml deleted file mode 100644 index e7bf94a1..00000000 --- a/externals/gridflow/doc/reference.xml +++ /dev/null @@ -1,1607 +0,0 @@ -<?xml version="1.0" standalone="no" ?> -<!DOCTYPE documentation SYSTEM 'gridflow.dtd'> -<documentation title="Reference Manual: Flow Classes" indexcols="3"> -<!-- $Id: reference.xml,v 1.2 2006-03-15 04:44:50 matju Exp $ --> -<!-- - GridFlow Reference Manual: Class Reference - Copyright (c) 2001,2002,2003,2004,2005,2006 - by Mathieu Bouchard and Alexandre Castonguay ---> - -<section name="Objects for making grids and breaking them down"> - <class name="#import"> - <icon text="[#import {240 320 3}]"/> - <help text="[#import {240 320 3}]" image="#importexport" /> - <p>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.</p> - <attr name="shape" type="GridShape|symbol(per_message)" default="per_message"> - a list specifying a grid shape that the numbers - will fit into; or "per_message" indicating each incoming message - will be turned into a vector. - </attr> - <attr name="cast" type="NumberType" default="int32"/> - <method name="init"> - <arg name="shape" isattr="yes"/> - <arg name="cast" isattr="yes"/> - </method> - <inlet id="0"> - <method name="int"> - 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. - </method> - <method name="list"> - just like a sequence of ints sent one after another, - except in a single message. - </method> - <method name="symbol"> - considered as a list of ascii characters. - </method> - <method name="reset"> - aborts the current grid if there is one. - </method> - <method name="grid"> - <arg name="grid" type="grid(dims...)"/> - this is the equivalent of filtering this grid through - an <k>[#export]</k> object and sending the resulting integers - to this <k>[#import]</k> object, except that it's over - 10 times faster. - </method> - </inlet> - <inlet id="1" attr="shape"> - <method name="per_message"> - old synonym for "shape per_message" - </method> - </inlet> - <outlet id="0"> - <method name="grid"><arg name="grid" type="grid"/> - the grid produced from incoming integers and/or grids. - </method> - </outlet> - </class> - - <class name="#export"> - <help text="[#export]" image="#importexport" /> - - <p>this object is the opposite of #import.</p> - <method name="init"> - this object is not configurable because there isn't - anything that could possibly be configured here. - </method> - <inlet id="0"> - <method name="grid"><arg name="grid" type="grid(dims...)"/> - transforms this grid into a sequence of integer messages. - </method> - </inlet> - <outlet id="0"> - <method name="int"> - elements of the incoming grid. - </method> - </outlet> - </class> - - <class name="#export_list"> - <help text="[#export_list]" image="#importexport" /> - - <p>this object is another opposite of <k>[#import]</k>, which puts - all of its values in a list.</p> - <method name="init" /> - <inlet id="0"> - <method name="grid"><arg name="grid" type="grid(dims...)"/> - transforms this grid into a single message containing - a list of integers. - </method> - </inlet> - <outlet id="0"> - <method name="list"> - elements of the incoming grid. - </method> - </outlet> - </class> - - <class name="#export_symbol"> - <p>this object is another opposite of #import, which constructs a symbol - from its input. The values are expected to be valid ASCII codes, 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.</p> - <method name="init" /> - <inlet id="0"> - <method name="grid"><arg name="grid" type="grid(dims...)"/> - transforms this grid into a single message containing - a list of integers. - </method> - </inlet> - <outlet id="0"><method name="symbol">generated symbol</method></outlet> - </class> - - <class name="#pack"> - <p>Similar to <k>[#join]</k>, but takes individual integers, and builds a Dim(N) vector out of it. - </p> - - <attr name="trigger_by" type="TriggerBy" default="any"> - The value "any" (and the only available value for now) causes an output - to produced when an integer is received thru any inlet, contrary to most - other object classes, that only act upon reception of a value thru inlet 0. - </attr> - - <method name="init"> - <arg name="inputs" type="integer">how many inlets the object should have.</arg> - </method> - <inlet id="*"><method name="int"/></inlet> - <outlet id="0"><method name="grid"> - combination of inputs given in all inlets. - this is produced according to the value of the trigger attribute. - </method></outlet> - </class> - - <class name="#color"> - <p>Triple slider for the selection of RGB values.</p> - <method name="init"> - <arg name="min" type="float"></arg> - <arg name="max" type="float"></arg> - <arg name="hidepreview" type="0,1"></arg> - </method> - <inlet id="0"><method name="grid"> - changes all three values (R,G,B). The grid must - be a Dim(3). - </method> - <method name="delegate"> - sends the rest of the message to each of the three sliders. - this relies on the fact that [#color] is implemented using - three [hsl] and this might not still work in the far future. - </method></inlet> - <outlet id="0"><method name="grid"> - Produces a Dim(3) grid of RGB values. - </method></outlet> - </class> - - <class name="#unpack"> - <method name="init"> - <arg name="outputs" type="integer"> - how many outlets the object should have. - (depending on the version of the software, the number of visible outlets - may have been frozen to 4. If it is so, then the value of this argument - must not exceed 4; and if it is below 4, then don't use the extraneous outlets.) - </arg> - </method> - <inlet id="0"><method name="grid(N)"> - the input vector is split in N parts containing one number each. - numbers are sent left-to-right, that is, outlet 0 is triggered first, then outlet 1, etc. - </method></inlet> - <outlet id="*"><method name="int"> - </method></outlet> - </class> - - <class name="#centroid"> - <method name="init"/> - <inlet id="0"><method name="grid(rows,columns,1)"> - will compute the centroid of the given grid, which - is a weighted average, namely, the average position weighted - by the pixel values. - </method></inlet> - <outlet id="0"> - <method name="grid(2)"> - result - </method> - </outlet> - </class> - <class name="#centroid2"> - a new experimental and faster version of #centroid. - <method name="init"/> - <inlet id="0"><method name="grid(rows,columns,1)"> - will compute the centroid of the given grid, which - is a weighted average, namely, the average position weighted - by the pixel values. - </method></inlet> - <outlet id="0"> - <method name="grid(2)"> - result - </method> - </outlet> - </class> - - <class name="#for"> - <icon text="[#for 0 320 1]"/> - <help text="[#for 0 320 1]"/> - - <p>when given scalar bounds, works like a regular <k>[for]</k> object plugged - to a <k>[#import]</k> tuned for a Dim(size) where size is the number of values - produced by a bang to that <k>[for]</k>.</p> - - <p>when given vector bounds, will work like any number of [for] objects - producing all possible combinations of their values in the proper order. - This replaces the old <k>[#identity_transform]</k> object.</p> - - <method name="init"> - <arg name="from" type="integer"/> - <arg name="to" type="integer"/> - <arg name="step" type="integer"/> - </method> - <inlet id="0"><method name="grid"><arg name="grid" type="grid(index)"/> - replaces the "from" value and produces output. - </method></inlet> - <inlet id="1"><method name="grid"><arg name="grid" type="grid(index)"/> - replaces the "to" value. - </method></inlet> - <inlet id="2"><method name="grid"><arg name="grid" type="grid(index_steps)"/> - replaces the "step" value. - </method></inlet> - <outlet id="0"> - <method name="grid"><arg name="grid" type="grid(size)"/> - where size is floor((to-from+1)/step) - [for scalar bounds] - </method> - <method name="grid"><arg name="grid" type="grid(*size,dimension)"/> - where *size is floor((to-from+1)/step) - [for vector bounds] - </method> - </outlet> - </class> -</section> - -<section name="Objects for Computing"> - <class name="#"> - <icon text="[# +]" image="images/op/add.png" /> - <help text="two-input operators"/> - - <attr name="op" type="grid"/> - <attr name="right_hand" type="grid" default="0"> - - </attr> - - <p>This object outputs a grid by computing "in parallel" a same - operation on each left-hand element with its corresponding right-hand - element. - </p> - - <method name="init"> - <arg name="op" isattr="yes"/> - <arg name="right_hand" isattr="yes"/> - </method> - - <inlet id="0"> - <method name="grid"><arg name="grid" type="grid(dims...)"/> - 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 1 - are called "B". the resulting grid is the same size as the - one in inlet 0. - </method> - </inlet> - <inlet id="1"> - <method name="grid"><arg name="grid" type="grid(dims...)"/> - 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) - </method> - <method name="int"> - stores a single int in the right inlet; the same int will - be applied in all computations; this is like sending a - Dim(1) or Dim() grid with that number in it. - </method> - </inlet> - <outlet id="0"> - <method name="grid"><arg name="grid" type="grid"/> - </method> - </outlet> - - </class> - - <class name="@complex_sq"> - <p>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. (fun, eh?) - </p> - <p>used on an indexmap, this makes each thing appear twice, - each apparition spanning half of the original angle.</p> - <inlet id="0"><method name="grid"> - <arg name="grid" type="grid(dims... {imaginary real})"/> - </method></inlet> - <outlet id="0"><method name="grid"> - <arg name="grid" type="grid(dims... {imaginary real})"/> - </method></outlet> - </class> - - <class name="#fold"> - <icon text="[#fold +]"/> - <help text="[#fold +]" image="#foldinnerouter"/> - - <p><list> - <li><k>[#fold +]</k> computes totals</li> - <li><k>[#fold inv+]</k> is an alternated sum (+/-)</li> - <li><k>[#fold * 1]</k> can compute the size of a grid using its dimension list</li> - <li><k>[#fold & 1]</k> can mean "for all"</li> - <li><k>[#fold | 0]</k> can mean "there exists (at least one)"</li> - <li><k>[#fold ^ 0]</k> can mean "there exists an odd number of..."</li> - <li><k>[#fold ^ 1]</k> can mean "there exists an even number of...".</li> - </list></p> - - <method name="init"> - <arg name="operator" type="numop2"/> - <arg name="seed" type="grid" default="0"/> - <arg name="right_hand" type="grid"/> - </method> - - <inlet id="0"> - <method name="grid"><arg name="grid" type="grid(dims..., last)"/> - replaces every Dim(last) 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". - produces a Dim(dims) grid. - </method> - </inlet> - <inlet id="1" attr="seed"/> - <outlet id="0"></outlet> - </class> - - <class name="#scan"> - <icon text="[#scan +]"/> - <help text="[#scan +]"/> - - <p><k>[#scan +]</k> computes subtotals; this can be used, for example, - to convert a regular probability distribution into a cumulative one. - (or in general, discrete integration) - </p> - - <method name="init"> - <arg name="operator" type="numop2"/> - <arg name="seed" type="grid" default="0"/> - </method> - - <inlet id="0"> - <method name="grid"><arg name="grid" type="grid(dims..., last)"/> - - replaces every Dim(last) subgrid by all the results of - cascading the operator on that subgrid, - producing a Dim(dims,last) grid. - - 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". - - </method> - </inlet> - <inlet id="1" attr="seed"/> - <outlet id="0"> - </outlet> - - </class> - - <class name="#outer"> - <icon text="[#outer +]"/> - <help text="[#outer +]" image="#foldinnerouter"/> - - <method name="init"> - <arg name="operator" type="numop2"/> - <arg name="value" type="grid"/> - the operator must be picked from the table of two-input operators. - the grid is optional and corresponds to inlet 1. - </method> - - <inlet id="0"> - <method name="grid"><arg name="grid" type="grid(anyA...)"/></method> - 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) - </inlet> - <inlet id="1"> - <method name="grid"><arg name="grid" type="grid(anyB...)"/></method> - stores the specified grid, to be used when inlet 0 is activated. - </inlet> - <outlet id="0"> - </outlet> - - <p>When given a grid of Dim(3) and a grid of Dim(5) <k>[#outer]</k> will - produce a grid of Dim(3,5) with the selected two-input operation - applied on each of the possible pairs combinations between numbers - from the left grid and the ones from the right. for example : - (10,20,30) [#outer +] (1,2,3) will give : - ((11,12,13),(21,22,23),(31,32,33)) </p> - - </class> - - <class name="#inner"> - <help text="[#inner]"/> - - <p>think of this one as a special combination of <k>[#outer]</k>, <k>[#]</k> and - <k>[#fold]</k>. 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 <k>[#inner * + - 0]</k>. <k>[#inner]</k> also does dot product and other funny operations.</p> - - <method name="init"> - <arg name="op_para" type="numop2"/> - <arg name="op_fold" type="numop2"/> - <arg name="base" type="integer"/> - <arg name="right_hand" type="grid"/> - op_para and op_fold are two operators picked from the table - of two-input operators. - the base value has to be specified (has no default value yet). - </method> - <inlet id="0"> - <method name="grid"><arg name="grid" type="grid(anyA..., lastA)"/> - - Splits the Dim(anyA...,lastA) left-hand grid into Dim(anyA...) - pieces of Dim(lastA) size. - - Splits the Dim(firstB,anyB...) right-hand grid into - Dim(anyB...) pieces of Dim(firstB) size. - - On every piece pair, does <k>[#]</k> using the specified - op_para operation, followed by a <k>[#fold]</k> using - the specified op_fold operator and base value. - - creates a Dim(anyA...,anyB...) grid by assembling all - the results together. - - (note: lastA must be equal to firstB.) - </method> - </inlet> - <inlet id="1"> - <method name="int"> - changes the base value to that. - </method> - </inlet> - <inlet id="2"> - <method name="grid"><arg name="grid" type="grid(anyB..., lastB)"/> - changes the right-hand side grid to that. - </method> - </inlet> - <outlet id="0"> - </outlet> - </class> - - <class name="@join"> - <method name="init"> - <arg name="which_dim"/> - 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. - </method> - <inlet id="0"> - <method name="grid"><arg name="grid" type="grid"/> - 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. - - <p>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. - </p> - </method> - </inlet> - <inlet id="1"><method name="grid"><arg name="grid" type="grid"/></method></inlet> - <outlet id="0"> - </outlet> - </class> - - <class name="#finished"> - <inlet id="0"> - <method name="grid"><arg name="grid" type="grid"/>any grid</method> - </inlet> - <outlet id="0"> - a bang is emitted every time a grid transmission ends. - </outlet> - </class> - - <class name="#cast"> - <method name="init"> - <arg name="numbertype" type="numbertype"/> - </method> - <inlet id="0"> - <method name="grid"><arg name="grid" type="grid"/>any grid</method> - </inlet> - <outlet id="0"> - <method name="grid"><arg name="grid" type="grid"/>a grid of the same shape containing all the same - values after type conversion. note that while casting to - a smaller type, values that are overflowing will be truncated. - </method> - </outlet> - </class> - - <class name="#ravel"> - <inlet id="0"><method name="grid"><arg name="grid" type="grid"/>any grid</method></inlet> - <outlet id="0"><method name="grid"><arg name="grid" type="grid"/> - like <k>[#redim]</k> but always produce a 1-D grid - with the same total number of elements. - </method></outlet> - </class> - - <class name="#grade"> - <inlet id="0"><method name="grid"><arg name="grid" type="grid"/>any grid</method></inlet> - <outlet id="0"><method name="grid"><arg name="grid" type="grid"/> - <p>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.</p> - <p>for example, connecting a [#grade] to a <k>[#outer ignore {0}]</k> - to a <k>[#store]</k> object, storing a single vector into <k>[#store]</k>, and - sending the same vector to <k>[#grade]</k>, will sort the values of the - vector. however for higher-dimensional grids, what should go - between <k>[#store]</k> and <k>[#grade]</k> to achieve the same result would - be more complex.</p> - <p>you may achieve different kinds of sorting by applying various - filters before <k>[#grade]</k>. the possibilities are unlimited.</p> - <p>if you plug <k>[#grade]</k> directly into another <k>[#grade]</k>, 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.</p> - </method></outlet> - </class> - - <class name="#perspective"> - <method name="init"> - <arg name="depth" type="integer"/> - </method> - <inlet id="0"><method name="grid"><arg name="grid" type="grid"/>any grid</method></inlet> - <outlet id="0"><method name="grid"><arg name="grid" type="grid"/> - <p>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.</p> - - <p>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...(!)</p> - </method></outlet> - </class> - - <class name="#transpose"> - <method name="init"> - <arg name="dim1" type="integer"/> - <arg name="dim2" type="integer"/> - </method> - <inlet id="0"><method name="grid"><arg name="grid" type="grid"/> - swaps the two specified dimensions; dimension numbers are as in <k>[#join]</k>. - </method></inlet> - </class> - - <class name="#fade"> - <method name="init"> - <arg name="rate" type="integer"/> - </method> - <inlet id="0"><method name="grid"><arg name="grid" type="grid"/> - produces on outlet 0 a linear recurrent fading according to the flow of - incoming messages. For example, if rate=5, then 20% (one fifth) - of each new message will be blended with 80% of the previous output. - </method></inlet> - </class> - - <class name="#fade_lin"> - <method name="init"> - <arg name="maxraise" type="integer"/> - <arg name="maxdrop" type="integer"/> - </method> - <inlet id="0"><method name="grid"><arg name="grid" type="grid"/> - 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. - </method></inlet> - </class> - - <class name="#reverse"> - <method name="init"> - <arg name="whichdim"/> - Whichdim is the 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. - </method> - </class> -</section> - -<section name="Objects for Coordinate Transforms"> - <class name="#redim"> - <icon text="[#redim {2}]"/> - <help text="[#redim 2]"/> - - <method name="init"> - <arg name="dims" type="dim_list"/> - a list specifying a grid shape that the numbers - will fit into. - (same as with <k>[#import]</k>) - </method> - <inlet id="0"> - <method name="grid"><arg name="grid" type="grid(dims...)"/> - 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. - </method> - </inlet> - <inlet id="1"> - <method name="grid"><arg name="grid" type="grid(rank)"/> - this grid is a dimension list that replaces the one - specified in the constructor. - (same as with <k>[#import]</k>) - </method> - </inlet> - <outlet id="0"> - <method name="grid"><arg name="grid" type="grid"/> - redimensioned grid potentially containing repeating data. - </method> - </outlet> - - <p>example: with a 240 320 RGB image, <k>[#redim 120 640 3]</k> will visually - separate the even lines (left) from the odd lines (right). contrary - to this, <k>[#redim 640 120 3]</k> will split every line and put its left half - on a even line and the right half on the following odd line. <k>[#redim]</k> - 480 320 3 will repeat the input image twice in the output image. - <k>[#redim]</k> 240 50 3 will only keep the 50 top lines.</p> - - </class> - <class name="#store"> - <help text="[#store]"/> - - <p>A <k>[#store]</k> object can store exactly one grid, using the right - inlet. You fetch it back, or selected subparts thereof, using the left - inlet.</p> - - <method name="init"> - <arg name="contents" type="grid"/> - </method> - - <inlet id="0"> - <method name="bang"> - the stored grid is fully sent to the outlet. - </method> - <method name="grid"><arg name="grid" type="grid(dims..., indices)"/> - in this grid, the last dimension refers to subparts of - the stored grid. sending a Dim(200,200,2) on a <k>[#store]</k> - that holds a Dim(240,320,3) will cause the <k>[#store]</k> 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. - </method> - </inlet> - <inlet id="1"> - <method name="grid"><arg name="grid" type="grid(dims...)"/> - replace the whole grid, or a subpart of it (see other options on inlet 1) - </method> - </inlet> - <inlet id="1"> - <method name="reassign">(Future Use): - 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. - </method> - <method name="put_at"><rest name="indices"/>(Future Use): - makes it so that sending a grid to inlet 1 writes into the existing buffer of [#store]. - <p> - example: suppose you have <k>[#store {10 240 320 3}]</k>. 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. - </p> - <p>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. - </p> - </method> - </inlet> - <outlet id="0"> - grids as stored, as indexed, or as assembled from multiple - indexings. - </outlet> - </class> - - <class name="#scale_to"> - <help text="[#scale_to]"/> - - <method name="init"> - <arg name="size">{height width} pair.</arg> - </method> - - <inlet id="0"> - <method name="grid"><arg name="grid" type="grid"/>a 3-channel picture to be scaled.</method> - </inlet> - <inlet id="1"> - <method name="int">a {height width} pair.</method> - </inlet> - <outlet id="0"> - <method name="grid"><arg name="grid" type="grid"/>a scaled 3-channel picture.</method> - </outlet> - </class> - - <class name="#scale_by"> - <help text="[#scale_by]"/> - - <method name="init"> - <arg name="factor" type="grid dim() or dim(2)"/> - factor is optional (default is 2). - if it's a single value, then that factor is to be used - for both rows and columns. - </method> - <inlet id="0"> - <method name="grid"><arg name="grid" type="grid(y x channels)"/> - 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. - </method> - </inlet> - <inlet id="1"><method name="grid"><arg name="grid" type="grid(1 or 2)"/>sets factor</method></inlet> - <outlet id="0"> - <method name="grid"> - <arg name="grid" type="grid((factor*y) (factor*x) channels)"/> - </method> - </outlet> - </class> - - <class name="#downscale_by"> - <method name="init"> - <arg name="factor" type="+integer"/> - <arg name="how" type="optional symbol(smoothly)"/> - factor is optional (default is 2). - if it's a single value, then that factor is to be used - for both rows and columns. - </method> - <inlet id="0"> - <method name="grid"><arg name="grid" type="grid(y x channels)"/> - Scales down picture by specified amount. (See scale factor above) - </method> - </inlet> - <inlet id="1"><method name="grid"> - <arg name="grid" type="grid(1 or 2)"/>sets scale factor</method></inlet> - <outlet id="0"> - <method name="grid"> - <arg name="grid" type="grid((factor/y) (factor/x) channels)"/> - </method> - </outlet> - </class> - - <class name="#spread"> - <help text="[#spread]"/> - - <p>typically you plug a <k>[#for]</k> into this object, - and you plug this object into the left side of a <k>[#store]</k>. it will - scatter pixels around, giving an "unpolished glass" effect.</p> - - <p>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.</p> - - <method name="init"> - <arg name="factor">same as inlet 1</arg> - </method> - - <inlet id="0"> - <method name="grid"><arg name="grid" type="grid"/>a coordinate map.</method> - </inlet> - <inlet id="1"> - <method name="int">a spread factor.</method> - </inlet> - <outlet id="0"> - <method name="grid"><arg name="grid" type="grid"/>a coordinate map.</method> - </outlet> - - - <p><k>[#spread]</k> 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. - </p> - - <p> 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.</p> - - </class> - - <class name="#rotate"> - <p>performs rotations on indexmaps and polygons and such.</p> - - <method name="init"> - <arg name="angle" type="0...35999"/> - </method> - <inlet id="0"><method name="grid"> - <arg name="grid" type="grid(anyA 2)"/></method></inlet> - <inlet id="1"><method name="int">rotation angle; 0...36000</method> - </inlet> - <outlet id="0"><method name="grid"> - <arg name="grid" type="grid(anyA 2)"/> - </method></outlet> - </class> - - <class name="#remap_image"> - <p>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.</p> - - <inlet id="0"/> - <inlet id="1"/> - <outlet id="0"/> - <outlet id="1"/> - </class> -</section> - -<section name="Objects for Reporting"> - <class name="#dim"> - <help text="[#dim]"/> - - <p>Returns list of dimensions as a grid. Given a grid sized like Dim(240,320,4), - <k>[#dim]</k> will return a grid like Dim(3), whose values are 240, 320, 4. </p> - - <method name="init"> - no arguments. - </method> - <inlet id="0"> - <method name="grid"><arg name="grid" type="grid(dims...)"/> - ignores any data contained within. - sends a grid dim(length of dims) containing dims. - </method> - </inlet> - <outlet id="0"> - <method name="grid"><arg name="grid" type="grid(rank)"/> - the list of dimensions of the incoming grid. - </method> - </outlet> - </class> - - <class name="#type"> - <p>gives a symbol representing the numeric type of the grid received. - </p> - <outlet id="0"><method name="<numeric type symbol>"/></outlet> - </class> - - <class name="#print"> - <method name="init"/> - <inlet id="0"> - <method name="grid"><arg name="grid" type="grid(dims...)"/> - prints the dimensions of the grid. - prints all the grid data if there are 2 dimensions or less. - </method> - </inlet> - </class> - - <class name="rubyprint"> - This is only for testing the translation from PD to Ruby. - <method name="init"/> - <inlet id="0"> - <method name="(any)"> - prints the message to the console. - </method> - </inlet> - </class> - - <class name="printargs"> - This is only for testing the translation from PD to Ruby. - <method name="init"> - <rest name="any"/> - prints everything. - </method> - </class> - - <class name="display"> - GUI object equivalent to [print] and [#print]. - <method name="(any)"> - Displays the received message in the box, resizing the box so that the message fits exactly. - </method> - </class> -</section> - -<section name="Objects for Color Conversion"> - <class name="#apply_colormap_channelwise"> - <p>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. You may also color-correct - colormaps themselves.</p> - - <p>Only works for things that have 3 channels.</p> - - <p>Note: if you just need to apply a palette on an indexed-color - picture, you don't need this. Just use #store instead.</p> - - <inlet id="0"><method name="grid"> - <arg name="grid" type="grid(rows columns channels)"/> - picture - </method></inlet> - <inlet id="1"> - <method name="grid"> - <arg name="grid" type="grid(intensities channels)"/> - colormap ("palette") - </method></inlet> - <outlet id="0"><method name="grid"> - <arg name="grid" type="grid(rows columns channels)"/> - picture - </method></outlet> - </class> - - <class name="#rgb_to_greyscale"> - <inlet id="0"><method name="grid"> - <arg name="grid" type="grid(rows columns {red green blue})"/> - </method></inlet> - <outlet id="0"><method name="grid"> - <arg name="grid" type="grid(rows columns {white})"/></method> - </outlet> - </class> - - <class name="#greyscale_to_rgb"> - <inlet id="0"><method name="grid"> - <arg name="grid" type="grid(rows columns {white})"/></method> - </inlet> - <outlet id="0"><method name="grid"> - <arg name="grid" type="grid(rows columns {red green blue})"/> - </method></outlet> - </class> - - <class name="#yuv_to_rgb"> - <p>note: may change slightly to adapt to actual video standards.</p> - <inlet id="0"><method name="grid"> - <arg name="grid" type="grid(rows columns {y u v})"/></method> - </inlet> - <outlet id="0"><method name="grid"> - <arg name="grid" type="grid(rows columns {red green blue})"/> - </method></outlet> - </class> - - <class name="#rgb_to_yuv"> - <p>note: may change slightly to adapt to actual video standards.</p> - <inlet id="0"><method name="grid"> - <arg name="grid" type="grid(rows columns {red green blue})"/></method> - </inlet> - <outlet id="0"><method name="grid"> - <arg name="grid" type="grid(rows columns {y u v})"/> - </method></outlet> - </class> -</section> - -<section name="Objects for Miscellaneous Picture Processing"> - <class name="#convolve"> - <help text="[#convolve]"/> - - <p>this is the object for blurring, sharpening, finding edges, - embossing, cellular automata, and many other uses.</p> -<!--NYI - <attr name="seed"> - - </attr> ---> - <method name="init"> - <arg name="op_para" type="numop2"/> - <arg name="op_fold" type="numop2"/> - <arg name="seed" type="grid"/> - <arg name="right_hand" type="grid" default="none"/> - </method> - <inlet id="0"> - <method name="grid"> - <arg name="grid" type="grid(rows columns rest...)"/> - 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 <k>[#]</k> of operation op_para. Then - each such result is folded like <k>[#fold]</k> 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. - </method> - </inlet> - <inlet id="1"> - <method name="grid"> - <arg name="grid" type="grid(rows2 columns2)"/> - this is the convolution grid and it gets stored in - the object. if rows2 and/or columns2 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 cells of the grid. - </method> - </inlet> - <outlet id="0"> - <method name="grid"> - <arg name="grid" type="grid(rows columns rest...)"/> - </method> - </outlet> - </class> - - <class name="#contrast"> - <help text="[#contrast]"/> - - <method name="init"> - <arg name="iwhiteness" default="256">same as inlet 1.</arg> - <arg name="contrast" default="256">same as inlet 2.</arg> - </method> - - <inlet id="0"> - <method name="grid"> - <arg name="grid" type="grid(rows columns channels)"/> - produces a grid like the incoming grid but with - different constrast. - </method> - <p><k>[#contrast]</k> adjusts the intensity in an image. - resulting values outside 0-255 are automatically clipped.</p> - </inlet> - <inlet id="1"> - <method name="int"> - this is the secondary contrast (inverse whiteness). - it makes the incoming black - correspond to a certain fraction between output black and the - master contrast value. no effect is 256. default value is 256. - </method> - </inlet> - <inlet id="2"> - <method name="int"> - this is the master contrast. it makes the incoming white - correspond to a certain fraction between output black and output - white. no effect is 256. default value is 256. - </method> - </inlet> - <outlet> - <method name="grid"> - <arg name="grid" type="grid(rows columns channels)"/> - </method> - </outlet> - </class> - - <class name="#posterize"> - <help text="[#posterize]"/> - - <p><k>[#posterize]</k> 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.</p> - - <method name="init"> - <arg name="levels">same as inlet 1</arg> - </method> - - <inlet id="0"> - <method name="grid"> - <arg name="grid" type="grid(rows columns channels)"/> - produces a posterized picture from the input picture. - </method> - </inlet> - - <inlet id="1"> - <method name="int"> - this is the 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 2. - </method> - </inlet> - - <outlet id="0"> - </outlet> - - <p>example: simulate the 216-color "web" palette using 6 levels. - simulate a 15-bit display using 32 levels.</p> - </class> - - <class name="#solarize"> - <p>makes medium intensities brightest; formerly brightest colours - become darkest; formerly darkest stays darkest. This filter is linear: - it's like a 200% contrast except that overflows are <i>mirrored</i> - instead of clipped or wrapped.</p> - <inlet id="0"> - <method name="grid"> - <arg name="grid" type="grid(rows columns channels)"/></method> - </inlet> - <outlet id="0"> - <method name="grid"> - <arg name="grid" type="grid(rows columns channels)"/></method> - </outlet> - </class> - - <class name="#checkers"> - <inlet id="0"> - <method name="grid"> - <arg name="grid" type="grid(y x {y x})"/> - result from a <k>[#for {0 0} {height width} {1 1}]</k> - </method> - </inlet> - <outlet id="0"> - <method name="grid"> - <arg name="grid" type="grid(y x {r g b})"/> - checkered pattern of 50%/75% greys - in 8x8 squares - </method> - </outlet> - </class> - - <class name="#layer"> - <inlet id="0"> - <method name="grid"> - <arg name="grid" type="grid(y x {r g b a})"/> - a picture that has an opacity channel. - will be used as foreground. - </method> - </inlet> - <inlet id="1"> - <method name="grid"> - <arg name="grid" type="grid(y x {r g b})"/> - a picture that has NO opacity channel. - will be used as background. - </method> - </inlet> - <outlet id="0"> - <method name="grid"> - <arg name="grid" type="grid(y x {r g b})"/> - a picture that has NO opacity channel. - the opacity channel of the foreground is used as - a weighting of how much of either picture is seen - in the result. - </method> - </outlet> - </class> - - <class name="#draw_image"> - <method name="init"> - <arg name="operator" type="numop2"> - Normally you would use the "put" operator here; - but abnormally I recommend + and ^ for psychedelic effects. - </arg> - <arg name="picture" type="grid(y,x,channels)"/> - <arg name="position" type="grid({y x})"/> - </method> - <inlet id="0"> - <method name="grid"><arg name="grid" type="grid(y x channels)"/> - picture onto which another picture will be superimposed. - </method> - <method name="tile"><arg name="flag" type="0 or 1"/> - if enabled, inlet 1 picture will be repeated to cover the inlet 0 picture. - </method> - <method name="alpha"><arg name="flag" type="0 or 1"/> - if enabled, inlet 1 picture will be combined with inlet 0 picture using - the selected operator, - and then blended with inlet 0 picture according to transparency of - the inlet 1 picture, and then inserted in the result. - if disabled, the blending doesn't occur, as the transparency level - is considered to be "opaque". note that with alpha enabled, - the last channel of inlet 1 picture is considered to represent transparency. - </method> - </inlet> - <inlet id="1"> - <method name="grid"><arg name="grid" type="grid(y x channels)"/> - picture that will be superimposed onto another picture. - </method> - </inlet> - <inlet id="2"> - <method name="grid"><arg name="grid" type="grid({y x})"/> - position of the inlet 0 picture corresponding to top-left corner - of inlet 1 picture. - </method> - </inlet> - <outlet id="0"> - <method name="grid"><arg name="grid" type="grid(y x channels)"/> - resulting picture. - </method> - </outlet> - </class> - - <class name="#draw_polygon"> - <method name="init"> - <arg name="operator" type="numop2"> - Normally you would use the "put" operator here; - but abnormally I recommend + and ^ for psychedelic effects. - </arg> - <arg name="color" type="grid(channels)"/> - <arg name="vertices" type="grid(vertices,{y x})"/> - </method> - <inlet id="0"> - <method name="grid"><arg name="grid" type="grid(y x channels)"/> - picture on which the polygon will be superimposed. - </method> - </inlet> - <inlet id="1"> - <method name="grid"><arg name="grid" type="grid(channels)"/> - color of each pixel - </method> - </inlet> - <inlet id="2"> - <method name="grid"><arg name="grid" type="grid(vertices {y x})"/> - vertices of the polygon. - </method> - </inlet> - <outlet id="0"> - <method name="grid"> - <arg name="grid" type="grid(y x channels)"/> - modified picture. - note: starting with 0.7.2, drawing a 1-by-1 - square really generates a 1-by-1 square, and - so on. This is because the right-hand border of a - polygon is excluded, whereas it was included - before, leading to slightly-wider-than-expected polygons. - </method> - </outlet> - </class> - - <class name="#text_to_image"> - <p>inlet 2 receives a font grid, for example, [#in grid file lucida-typewriter-12.grid.gz]</p> - <p>inlet 1 receives a 2 by 3 matrix representing the colours to use (e.g. (2 3 # 0 170 0 255 255 0) means yellow on green)</p> - <p>inlet 0 receives a bang, transforming the data into an image suitable for #draw_image.</p> - </class> - <class name="#hueshift"> - <p>inlet 1 receives an angle (0..36000)</p> - <p>inlet 0 receives a RGB picture that gets hueshifted by a rotation in the colorwheel by the specified angle; it gets sent to outlet 0.</p> - </class> -</section> - -<section name="Other Objects"> - <class name="rtmetro">This class has been removed (0.7.7).</class> - - <class name="bindpatcher"> - <p>sets the receive-symbol for the Pd patcher it is in.</p> - <p>has no inlets, no outlets.</p> - <p>EXPERIMENTAL.</p> - <method name="init"> - <arg name="symbol" type="symbol"/> - </method> - </class> - - <class name="pingpong"> - 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. - <method name="init"> - <arg name="top" type="int"/> - </method> - <inlet id="1"> - <method name="float"><arg name="top" type="float"/></method> - </inlet> - <inlet id="0"> - <method name="float"> - 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. - </method> - </inlet> - </class> - - <class name="#global"> - <help text="[#global]" /> - - <p> - objects of this class do nothing by themselves and are just - an access point to features that don't belong to any object in - particular. - </p> - <method name="profiler_reset"> - resets all the time counters. - </method> - <method name="profiler_dump"> - displays the time counters in decreasing order, with - the names of the classes those objects are in. this is - an experimental feature. like most statistics, - it could be vaguely relied upon if - only you knew to which extent it is unreliable. more on this - in a future section called "profiling". - </method> - </class> - - <class name="fps"> - <method name="init"> - <arg name="clocktype" type="symbol(real|user|system|cpu)"> - which clock to use. "real" uses wallclock time. "user" uses - the amount of time spent in the process. "system" uses the - amount of time spent in the kernel on behalf of the process. - "cpu" uses the Pentium clock, which is like a more precise - version of "real" if you have a Pentium. - </arg> - <arg name="detailed" type="symbol(detailed)">optional</arg> - </method> - <method name="init detailed"> - </method> - <inlet id="0"> - <method name="bang"> - 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. - </method> - <method name="(else)"> - messages other than bangs are ignored. - </method> - </inlet> - <outlet id="0"> - <method name="float"> - non-detailed mode only. - this is the messages-per-second rating. - </method> - <method name="list(float,6)"> - detailed mode only. - this is: messages-per-second, followed by five values of - milliseconds-per-message: minimum, median, maximum, average, - standard deviation. - (the average happens to be simply 1000 divided by the - messages-per-second, but it is convenient to have it anyway) - </method> - </outlet> - </class> - - <class name="unix_time"> - <p> - 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 000 th of a second which is useful for creating - filenames. - </p> - <inlet id="0"><method name="bang"/></inlet> - <outlet id="0"><method name="symbol"/>Outputs the time and date in ASCII format</outlet> - <outlet id="1"><method name="float"/>Outputs the Unix timestamp in seconds</outlet> - <outlet id="2"><method name="float"/>Outputs the fractions of a second up to 10 microseconds (?) (actual precision is platform-dependent afaik)</outlet> - </class> - - <class name="ls"> - <p> - This object is similar to the Unix list command - 'ls'. It returns the names of files in a given - directory. May be used with [listlength] to retrieve the number of files. - Hidden files are displayed. - </p> - <inlet id="0"><method name="symbol"> - lists all files in a given directory - </method> - <method name="glob"> - lists all files matching a given pattern. - "symbol hello" is like "glob hello/*" - </method></inlet> - </class> - - <class name="exec"> - <p> - This object launches a Unix shell program or script. - </p> - <inlet id="0"><method name="symbol"/></inlet> - </class> - - <class name="renamefile"> - <p> - This object accepts a list of two elements as arguments. - The current file name being the first and the second is the desired change - in name. - </p> - <inlet id="0"><method name="list"/></inlet> - </class> - - <class name="plotter_control"> - <p> - This object produces HPGL instructions in ASCII form - that can be sent to the comport object in order to control an HPGL - compatible plotter. - </p> - <inlet id="0"><method name="symbol"/></inlet> - <outlet id="0"><method name="symbol"/>Outputs the HPGL commands in ASCII format</outlet> - </class> - - <class name="rubyarray"> - <p>inlet 0 float : sends the specified array entry to outlet 0</p> - <p>inlet 1 list: writes that list as an array entry in position last specified by inlet 0.</p> - <p>inlet 0 save(symbol filename): writes the array contents to a file of the given filename as a CSV</p> - <p>inlet 0 save(symbol filename, symbol format): same thing but using a sprintf string such as %x,%f or whatever</p> - <p>inlet 0 load(symbol filename): replace all array contents by the contents of a CSV file</p> - </class> -</section> - -<section name="jMax emulation"> - <p>those classes emulate jMax functionality, - for use within PureData and Ruby.</p> - - <class name="fork"> - <p>Every incoming message is sent to inlet 1 and then sent to - inlet 0 as well. Messages remain completely unaltered. Contrast - with PureData's "t a a" objects, which have the same purpose but - transform bangs into zeros and such.</p> - - <inlet id="0"><method name="(any)"/></inlet> - <outlet id="0"/> - <outlet id="1"/> - </class> - <class name="jmax_udpsend"> - Sends messages (but not grids nor dspsignals) via UDP (which - does not involve a connection, and may lose packets in case of - network overload or noise or etc). - - <p>This works with jMax 2.5 and 4.1 but not 4.0.</p> - - <method name="init"> - <arg name="host" type="host"/> - <arg name="port" type="integer"/> - </method> - - <inlet id="0"><method name="<any>"/></inlet> - </class> - <class name="jmax_udpreceive"> - <p>Counterpart of jmax_udpsend</p> - - <p>This works with jMax 2.5 and 4.1 but not 4.0.</p> - - <method name="init"> - <arg name="port" type="integer"/> - </method> - <outlet id="0"><method name="<any>"/></outlet> - <outlet id="1"><method name="list"> - <arg name="protocol_name"/> - <arg name="sender_port"/> - <arg name="sender_host"/> - <arg name="sender_ip_address"/> - </method> - </outlet> - </class> - <class name="foreach"> - <inlet id="0"><method name="list"><rest/> - Outputs N messages, one per list element, in order. - </method></inlet> - </class> - <class name="rubysprintf"> - <method name="init"> - <arg name="format" type="symbol"/> - </method> - <inlet id="0"><method name="list"> - Outputs the format string with %-codes replaced - by elements of the list formatted as the %-codes say. - To get a list of those codes, consult a Ruby manual - (Equivalently, Perl, Python, Tcl and C all have equivalents of this, - and it's almost always called sprintf, or the % operator, or both) - </method></inlet> - <inlet id="1" attr="format" type="symbol"/> - </class> - <class name="listflatten"> - <inlet id="0"><method name="list"><rest/> - </method></inlet> - </class> - <class name="listmake"> - Emulation of jMax's [list] (but there cannot be a class named [list] in Pd) - <method name="init"> - <rest name="list" isattr="yes"/> - </method> - <inlet id="0"> - <method name="bang">send "list" to outlet 0</method> - <method name="list">as sending to inlet 1 and then banging; that is, passes thru and remembers.</method> - </inlet> - <inlet id="1" attr="list"/> - </class> - <class name="listlength"> - <inlet id="0"><method name="list"> - outputs the number of elements in the incoming list. - </method></inlet> - </class> - <class name="listelement"> - <method name="init"> - <arg name="index" type="int" isattr="yes"/> - </method> - <inlet id="0"><method name="list"><rest/> - Outputs one element of the list, as selected by "index". - Also accepts negative indices (e.g.: -1 means "last"), like Ruby, but unlike jMax. - </method></inlet> - <inlet id="1" attr="index"/> - </class> - <class name="listsublist"> - <method name="init"> - <arg name="index" type="int" isattr="yes"/> - <arg name="length" type="int" isattr="yes"/> - </method> - <inlet id="0"><method name="list"><rest/> - Outputs consecutive elements of the list, as selected by "index" and "length". - Also accepts negative indices (e.g.: -1 means "last"), like Ruby, but unlike jMax. - </method></inlet> - <inlet id="1" attr="index"/> - <inlet id="2" attr="length"/> - </class> - <class name="listprepend"> - <method name="init"> - <rest name="list" isattr="yes"/> - </method> - <inlet id="0"><method name="list"><rest/> - Outputs the stored list followed by the incoming list, all in one message. - </method></inlet> - <inlet id="1" attr="list"/> - </class> - <class name="listappend"> - <method name="init"> - <rest name="list" isattr="yes"/> - </method> - <inlet id="0"><method name="list"><rest/> - Outputs the incoming list followed by the stored list, all in one message. - </method></inlet> - <inlet id="1" attr="list"/> - </class> - <class name="listreverse"> - <inlet id="0"><method name="list"><rest/> - Outputs the incoming list, from last element to first element. - </method></inlet> - </class> - <class name="oneshot"> - Like [spigot], but turns itself off after each message, so you have to turn it on - again to making it pass another message. - </class> - <class name="inv+"> - <method name="init"> - <arg name="b" type="float" isattr="yes"/> - </method> - <inlet id="0"><method name="float"><arg name="a" type="float"/> - outputs b-a - </method></inlet> - <inlet id="1" attr="b"/> - </class> - <class name="inv*"> - <method name="init"> - <arg name="b" type="float" isattr="yes"/> - </method> - <inlet id="0"><method name="float"><arg name="a" type="float"/> - outputs b/a - </method></inlet> - <inlet id="1" attr="b"/> - </class> - <class name="messageprepend"> - (This is not in jMax, but is there to help port $* messageboxes) - <method name="init"><rest name="list" isattr="yes"/></method> - <inlet id="0"><method name="<any>"><rest/> - Like [listprepend], but operates on whole messages, that is, including the selector. - </method></inlet> - <inlet id="1" attr="list"/> - </class> - <class name="messageappend"> - (This is not in jMax, but is there to help port $* messageboxes) - <method name="init"><rest name="list" isattr="yes"/></method> - <inlet id="0"><method name="<any>"><rest/> - Like [listappend], but operates on whole messages, that is, including the selector. - </method> - </inlet> - <inlet id="1" attr="list"/> - </class> - <class name="shunt"> - Compatible with jMax's [demux]. - <method name="init"> - <arg name="n">number of outlets</arg> - <arg name="i" default="0">initial selected outlet</arg> - </method> - <inlet id="0"><method name="<any>"><rest/> - Routes a message to the active outlet. - </method></inlet> - <inlet id="1"><method name="int"><arg name="i" type="int"/> - Selects which outlet is active. - </method></inlet> - </class> - <class name="demux"> - please use shunt instead (name conflict with another Pd external) - </class> - <class name="range"> - <method name="init"> - <rest name="separators" type="float"></rest> - </method> - <inlet id="0"><method name="float"> - 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. - </method></inlet> - <inlet id="1..n"><method name="float"> - sets the corresponding separator in the separator list. - </method></inlet> - </class> -</section> - -<section name="PureData emulation"> - <class name="pd_netsend"> - same as jmax_udpsend but for PureData UDP connections. - </class> - <class name="pd_netreceive"> - same as jmax_udpreceive but for PureData UDP connections. - </class> -</section> - -</documentation> diff --git a/externals/gridflow/doc/tutorials/0-0-intro_page.pd b/externals/gridflow/doc/tutorials/0-0-intro_page.pd deleted file mode 100755 index 3ac9fb86..00000000 --- a/externals/gridflow/doc/tutorials/0-0-intro_page.pd +++ /dev/null @@ -1,89 +0,0 @@ -#N canvas 226 0 429 638 10; -#X obj -22 -68 cnv 1 430 80 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X obj -24 49 cnv 1 430 520 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X obj -24 82 cnv 1 430 2 empty empty empty 20 12 0 14 -228992 -66577 -0; -#X obj -24 57 cnv 1 430 2 empty empty empty 20 12 0 14 -228992 -66577 -0; -#X obj -17 49 cnv 1 2 480 empty empty empty 20 12 0 14 -228992 -66577 -0; -#X obj 390 50 cnv 1 2 480 empty empty empty 20 12 0 14 -228992 -66577 -0; -#X obj -24 144 cnv 1 430 2 empty empty empty 20 12 0 14 -228992 -66577 -0; -#X obj -24 168 cnv 1 430 2 empty empty empty 20 12 0 14 -228992 -66577 -0; -#X text 26 98 1.1 What is a grid?; -#X obj 41 534 cnv 15 300 30 empty empty empty 20 12 0 14 -228992 -66577 -0; -#X text 53 539 Stephanie Brodeur & Darsha Hewitt 2005; -#X obj -22 7 cnv 15 430 30 empty empty empty 20 12 0 14 -228992 -66577 -0; -#X obj 88 -3 cnv 15 100 17 empty empty empty 20 12 0 14 -228992 -66577 -0; -#X obj 88 -5 GridFlow 0.8.0; -#X obj -22 -68 cnv 1 430 1 empty empty empty 20 12 0 14 -66577 -66577 -0; -#X obj -23 37 cnv 1 430 1 empty empty empty 20 12 0 14 -66577 -66577 -0; -#X obj 189 11 cnv 15 63 17 empty empty empty 20 12 0 14 -228992 -66577 -0; -#X obj 188 8 Tutorials; -#X obj -24 48 cnv 1 430 1 empty empty empty 20 12 0 14 -66577 -66577 -0; -#X obj -24 528 cnv 1 430 1 empty empty empty 20 12 0 14 -66577 -66577 -0; -#X text 14 63 1; -#X obj 32 62 Introduction to Grids; -#X text 26 178 2.1 How does GridFlow understand images?; -#X text 15 150 2; -#X obj 36 147 Introduction to Images; -#X text 419 224 2.3 Different options on how to open an image.; -#X text 445 241 2.3.1 Opening different images in one window.; -#X text 445 258 2.3.2 Opening images using send and receive.; -#X obj -24 310 cnv 1 430 2 empty empty empty 20 12 0 14 -228992 -66577 -0; -#X obj -24 334 cnv 1 430 2 empty empty empty 20 12 0 14 -228992 -66577 -0; -#X text 18 317 3; -#X obj 39 315 Introduction to Video; -#X text 482 201 REMOVE 2.3 -- see pd tuts; -#X text 17 405 4; -#X obj 38 405 Introduction to Live Feed; -#X obj 37 481 Putting it all Together; -#X text 20 482 5; -#X text 30 430 4.1 Opening a live video feed; -#X text 30 446 4.2 Motion Detection; -#X text 29 372 3.3 Recording video; -#X obj -24 310 cnv 1 430 2 empty empty empty 20 12 0 14 -228992 -66577 -0; -#X obj -24 334 cnv 1 430 2 empty empty empty 20 12 0 14 -228992 -66577 -0; -#X obj -24 400 cnv 1 430 2 empty empty empty 20 12 0 14 -228992 -66577 -0; -#X obj -24 424 cnv 1 430 2 empty empty empty 20 12 0 14 -228992 -66577 -0; -#X obj -24 400 cnv 1 430 2 empty empty empty 20 12 0 14 -228992 -66577 -0; -#X obj -24 424 cnv 1 430 2 empty empty empty 20 12 0 14 -228992 -66577 -0; -#X obj -24 476 cnv 1 430 2 empty empty empty 20 12 0 14 -228992 -66577 -0; -#X obj -24 500 cnv 1 430 2 empty empty empty 20 12 0 14 -228992 -66577 -0; -#X obj -24 476 cnv 1 430 2 empty empty empty 20 12 0 14 -228992 -66577 -0; -#X obj -24 500 cnv 1 430 2 empty empty empty 20 12 0 14 -228992 -66577 -0; -#X text 26 114 1.2 How to create a grid; -#X text 26 197 2.2 Opening an image; -#X text 26 214 2.3 Image manipulation; -#X text 55 244 2.3.2 Resizing an image; -#X text 55 228 2.3.1 Numop; -#X text 55 273 2.3.4 Remap image; -#X text 55 259 2.3.3 Greyscale; -#X text 55 286 2.3.5 Convolve; -#X text 29 342 3.1 Opening a video; -#X text 29 358 3.2 Video manipulation; diff --git a/externals/gridflow/doc/tutorials/2-3-4-image-modification-2-remap-image.pd b/externals/gridflow/doc/tutorials/2-3-4-image-modification-2-remap-image.pd deleted file mode 100755 index b6e4755d..00000000 --- a/externals/gridflow/doc/tutorials/2-3-4-image-modification-2-remap-image.pd +++ /dev/null @@ -1,55 +0,0 @@ -#N canvas 41 17 876 618 10; -#X obj 10 519 cnv 15 720 30 empty empty empty 20 12 0 14 -200249 -66577 -0; -#X msg 53 173 open b001.jpg; -#X obj 23 116 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 --1; -#X obj 23 204 #in; -#X obj 23 142 t b b; -#X obj 23 351 #out window; -#X obj 102 323 #print; -#X obj 184 160 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 --1; -#X floatatom 203 225 5 0 0 0 - - -; -#X obj 173 184 #for (0 0) (240 320) (1 1); -#X obj 173 134 metro 100; -#X obj 173 109 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 -1; -#X obj 23 292 #remap_image; -#X text 18 526 GridFlow 0.8.0; -#X text 243 224 <-- Modify the value to see transformations.; -#X obj 173 257 # / 1; -#X text 227 261 The remap object works with numops.; -#X obj 9 -17 cnv 15 430 15 empty empty empty 20 12 0 14 -228992 -66577 -0; -#X obj 9 -52 cnv 15 430 30 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X text 15 -17 2.4 Image Manipulation; -#X text 16 -46 2 Introduction to Images; -#X text 15 2 2.4.4 Remap Image; -#X text 26 408 Remap image permits you to modify an image using numeric -operators. Different numeric Operators have different effects ton the -image and can be changed to give the desired effect. The multiplication -operator multiplies the values and distorts the image. The division -operator does the same but shrinks the operator...; -#X text 467 24 Have the list of operators and what they do in order -to know the various effects.; -#X text 468 77 example:; -#X obj 474 121 # / 2; -#X text 523 114 multiplication multiplies the numbers in the grid and -distorts the image.; -#N canvas 0 0 450 300 META 0; -#X restore 130 527 pd META; -#X connect 1 0 3 0; -#X connect 2 0 4 0; -#X connect 3 0 12 0; -#X connect 4 0 3 0; -#X connect 4 1 1 0; -#X connect 7 0 9 0; -#X connect 8 0 15 1; -#X connect 9 0 15 0; -#X connect 10 0 9 0; -#X connect 11 0 10 0; -#X connect 12 0 5 0; -#X connect 12 1 6 0; -#X connect 15 0 12 1; diff --git a/externals/gridflow/doc/tutorials/2-3-5-image-modification-2-convolve.pd b/externals/gridflow/doc/tutorials/2-3-5-image-modification-2-convolve.pd deleted file mode 100755 index 4a099537..00000000 --- a/externals/gridflow/doc/tutorials/2-3-5-image-modification-2-convolve.pd +++ /dev/null @@ -1,120 +0,0 @@ -#N canvas 47 0 787 658 10; -#X msg 468 148 3 3 # 0 4 0 4 9 -4 0 -4 0; -#X msg 467 100 3 3 # 4 0 0 0 1 0 0 0 4; -#X obj 80 219 #store; -#X obj 80 270 # / 9; -#X msg 467 75 3 3 # 1 1 1 1 1 1 1 1 1; -#X obj -13 201 #out window; -#X msg 470 263 1 3 # 0 9 -9; -#X obj -21 117 #in; -#X msg 468 124 3 3 # 2 2 2 2 -7 2 2 2 2; -#X obj 80 145 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 0 1 -; -#X obj 70 325 @! abs; -#X obj -21 77 loadbang; -#X obj 80 182 metro 33.3667; -#X obj -21 139 t a; -#X obj 80 244 #convolve \, seed 4; -#X obj 401 78 loadbang; -#X obj 80 299 shunt 2; -#X obj 124 270 tgl 15 0 empty empty empty 0 -6 0 8 -241291 -1 -1 0 -1; -#X msg 170 280 0; -#X obj 124 351 # + 128; -#X msg 170 304 1; -#X obj 469 174 display; -#X obj -13 225 fps; -#X obj -13 250 print; -#X obj -50 466 cnv 15 780 30 empty empty empty 20 12 0 14 -200249 -66577 -0; -#X text -42 473 GridFlow 0.8.0; -#X text -42 473 GridFlow 0.8.0; -#X msg 470 242 1 3 # 0 2 -2; -#X msg 470 325 3 3 # 0 -1 0 -1 4 -1 0 -1 0; -#X msg 470 348 3 3 # -1 -1 -1 -1 8 -1 -1 -1 -1; -#X msg 470 416 3 3 # 0 -1 0 -1 13 -1 0 -1 0; -#X obj 124 325 # << 4; -#X msg -21 97 open babbage.jpg \, bang; -#X obj -49 -111 cnv 15 780 15 empty empty empty 20 12 0 14 -228992 --66577 0; -#X obj -49 -146 cnv 15 780 30 empty empty empty 20 12 0 14 -233017 --66577 0; -#X obj 470 218 cnv 15 100 15 empty empty empty 20 12 0 14 -260818 -66577 -0; -#X obj 468 52 cnv 15 37 15 empty empty empty 20 12 0 14 -260818 -66577 -0; -#X text 470 218 Edge detection; -#X obj 470 303 cnv 15 110 15 empty empty empty 20 12 0 14 -260818 -66577 -0; -#X text 472 303 Laplacian masks; -#X obj 470 393 cnv 15 50 15 empty empty empty 20 12 0 14 -260818 -66577 -0; -#X text 470 393 Sharpen; -#X obj -21 383 #clip; -#X obj 190 118 cnv 15 15 15 empty empty empty 20 12 0 14 -259603 -66577 -0; -#X obj 210 97 cnv 15 15 15 empty empty empty 20 12 0 14 -259603 -66577 -0; -#X text 146 97 <-- step #1: load image; -#X obj 173 141 cnv 15 15 15 empty empty empty 20 12 0 14 -259603 -66577 -0; -#X text 109 141 <-- step #3: start metro; -#X text 154 118 step #2: select transformation -->; -#X text 468 52 Blurs; -#N canvas 0 0 450 300 META 0; -#X restore 69 473 pd META; -#X text -44 -140 2 Introduction to Images; -#X text -44 -112 2.4 Image Manipulation; -#X obj -49 24 cnv 15 780 15 empty empty empty 20 12 0 14 -228992 -66577 -0; -#X text -49 23 (Source convolve.pd : Copyright Mathieu Bouchard 2002) -; -#X text -16 -67 Convolve is an abstraction used for modifying an image. -In this patch you can choose to create a "blur" \, to view "edge detection" -\, to add a "laplacian mask" or to "sharpen" an image. The image must -be loaded \, the transformation selected and the metro started before -seeing the transformation applied to the image.; -#X obj -17 -89 cnv 15 100 15 empty empty empty 20 12 0 14 -228992 -66577 -0; -#X text -17 -90 2.4.4 Convolve; -#X connect 0 0 18 0; -#X connect 0 0 14 1; -#X connect 0 0 21 0; -#X connect 1 0 18 0; -#X connect 1 0 14 1; -#X connect 2 0 14 0; -#X connect 3 0 16 0; -#X connect 4 0 18 0; -#X connect 4 0 14 1; -#X connect 5 0 22 0; -#X connect 6 0 14 1; -#X connect 6 0 20 0; -#X connect 7 0 13 0; -#X connect 8 0 18 0; -#X connect 8 0 14 1; -#X connect 9 0 12 0; -#X connect 10 0 42 0; -#X connect 11 0 32 0; -#X connect 12 0 2 0; -#X connect 13 0 2 1; -#X connect 13 0 5 0; -#X connect 14 0 3 0; -#X connect 15 0 4 0; -#X connect 16 0 10 0; -#X connect 16 1 31 0; -#X connect 17 0 16 1; -#X connect 18 0 17 0; -#X connect 19 0 42 0; -#X connect 20 0 17 0; -#X connect 22 0 23 0; -#X connect 27 0 18 0; -#X connect 27 0 14 1; -#X connect 28 0 14 1; -#X connect 28 0 20 0; -#X connect 29 0 20 0; -#X connect 29 0 14 1; -#X connect 30 0 18 0; -#X connect 30 0 14 1; -#X connect 31 0 19 0; -#X connect 32 0 7 0; -#X connect 42 0 13 0; diff --git a/externals/gridflow/doc/tutorials/2-3-6-image-modification-2-cross-fade.pd b/externals/gridflow/doc/tutorials/2-3-6-image-modification-2-cross-fade.pd deleted file mode 100755 index 6b8fe50a..00000000 --- a/externals/gridflow/doc/tutorials/2-3-6-image-modification-2-cross-fade.pd +++ /dev/null @@ -1,93 +0,0 @@ -#N canvas 92 129 774 521 10; -#X text 24 355 note: the #layer/#join objects can make the crossfade -process simpler but it's still not faster.; -#X obj 14 95 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 0 1; -#X obj 14 120 metro 33.3667; -#X obj 14 140 float; -#X obj 26 169 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10 --262144 -1 -1 0 256; -#X obj 58 139 + 4; -#X obj 14 190 pingpong 256; -#X obj 25 212 hsl 129 15 0 256 0 0 empty empty empty -2 -6 0 8 -260818 --1 -1 0 1; -#X text 25 393 also #draw_image/#join is a possibility; -#X obj 13 40 cnv 15 680 30 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X text 27 53 Copyright 2002 Mathieu Bouchard; -#X text 27 37 cross_fade.pd; -#X obj 6 324 cnv 15 680 30 empty empty empty 20 12 0 14 -200249 -66577 -0; -#X text 18 326 GridFlow 0.8.0; -#N canvas 515 126 450 300 cross_fade 0; -#X obj 40 198 # *>>8; -#X text 67 242 first picture plus a fraction of the difference; -#X obj 40 240 # +; -#X obj 40 177 #store; -#X obj 264 137 # inv+; -#X obj 95 261 tgl 15 0 empty empty empty 0 -6 0 8 -241291 -1 -1 0 1 -; -#X msg 422 195 open r001.jpg \, cast int16 \, bang; -#X obj 321 156 #in; -#X obj 40 156 #finished; -#X text 116 264 click to clip out-of-range colours; -#X text 89 197 multiply by a N/256 fraction; -#X obj 88 302 # max 0; -#X obj 254 89 #in; -#X obj 88 281 # min 255; -#X obj 44 337 #out window; -#X obj 40 116 #cast int16; -#X text 88 177 keep the difference between both pictures; -#X obj 447 99 t b b; -#X obj 445 74 loadbang; -#X obj 40 260 shunt 2; -#X obj 40 135 t a a; -#X msg 459 137 open g001.jpg \, cast int16 \, bang; -#X obj 30 75 inlet; -#X connect 0 0 2 0; -#X connect 2 0 19 0; -#X connect 3 0 0 0; -#X connect 4 0 3 1; -#X connect 5 0 19 1; -#X connect 6 0 7 0; -#X connect 7 0 4 1; -#X connect 8 0 3 0; -#X connect 11 0 14 0; -#X connect 12 0 4 0; -#X connect 12 0 2 1; -#X connect 13 0 11 0; -#X connect 15 0 20 0; -#X connect 17 0 21 0; -#X connect 17 1 6 0; -#X connect 18 0 17 0; -#X connect 19 0 14 0; -#X connect 19 1 13 0; -#X connect 20 0 8 0; -#X connect 20 1 0 1; -#X connect 21 0 12 0; -#X connect 22 0 15 0; -#X restore 13 261 pd cross_fade; -#X obj 15 11 cnv 15 430 15 empty empty empty 20 12 0 14 -228992 -66577 -0; -#X text 18 11 What is a grid?; -#X obj 15 -24 cnv 15 430 30 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X text 20 -25 2 Images; -#X text 22 -11 Description: opening multiple images from one window. -; -#X obj 11 416 cnv 15 430 30 empty empty empty 20 12 0 14 -200249 -66577 -0; -#X text 19 423 GridFlow 0.8.0; -#X text 219 118 some objects have been created to perform specoific -tasks. One of these is the crossfade patch it permits you to fade from -one image to another. you can chose the images you want to ping pong -between \, to get a nice steady fade between two images.; -#N canvas 0 0 450 300 META 0; -#X restore 146 428 pd META; -#X connect 1 0 2 0; -#X connect 2 0 3 0; -#X connect 3 0 4 0; -#X connect 3 0 5 0; -#X connect 3 0 6 0; -#X connect 5 0 3 1; -#X connect 6 0 7 0; -#X connect 6 0 14 0; diff --git a/externals/gridflow/doc/tutorials/2nd-part-numop.pd b/externals/gridflow/doc/tutorials/2nd-part-numop.pd deleted file mode 100755 index a6f96f9c..00000000 --- a/externals/gridflow/doc/tutorials/2nd-part-numop.pd +++ /dev/null @@ -1,80 +0,0 @@ -#N canvas 66 33 927 601 10; -#X obj 16 -206 cnv 15 200 170 empty empty empty 20 12 0 14 -228992 --66577 0; -#X obj 38 -178 bng 15 250 50 0 empty empty empty 0 -6 0 8 -24198 -1 --1; -#X obj 24 -127 #in; -#X obj 82 -114 hsl 128 15 0 255 0 0 empty empty empty -2 -6 0 8 -241291 --1 -1 0 1; -#X obj 24 -88 # + \$1; -#X obj 125 -157 metro 33.3; -#X obj 125 -177 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 0 -1; -#X obj 462 -153 cnv 15 400 350 empty empty empty 20 12 0 14 -228992 --66577 0; -#X obj 482 -109 bng 15 250 50 0 empty empty empty 0 -6 0 8 -24198 -1 --1; -#X obj 468 -30 #in; -#X msg 468 -132 open b001.jpg; -#X obj 508 -49 hsl 128 15 0 255 0 0 empty empty empty -2 -6 0 8 -241291 --1 -1 0 1; -#X obj 468 84 # + \$1; -#X obj 514 -109 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 1 -1; -#X obj 468 128 #clip; -#X obj 24 -60 s slider_metro; -#X obj 468 154 s slider_metro_clip; -#X floatatom 79 -86 5 0 0 0 - - -; -#X text 10 210 In all these examples the [# +] numop is used. All the -numeric operators can be found in the numeric operator help patch (right -click on the [# +] and select help to view them). If you want to see -what effects other numops can do \, try replacing the [# +] numop with -another one (either cut and past a different numop from the help file -or create the object in the current canvas.; -#X obj 514 -89 metro 33.3; -#X obj 552 -21 #color; -#X msg 552 44 255 0 0; -#X text 614 44 donner une liste changer couleurs; -#X obj 552 88 #scale_by (8 8); -#X msg 552 66 2 2 3 # 255 0 0 0 255 0 0 0 255 191 191 191; -#X obj 834 211 r slider_metro; -#X obj 843 238 r slider_metro_clip; -#X obj 834 265 #out window; -#X obj 16 -284 cnv 15 70 15 empty empty empty 20 12 0 14 -260818 -66577 -0; -#X text 15 -284 Example #4; -#X text 15 -261 Will demonstrate how to use the metro (see pd_intro -#4) and the slider which allows you to scroll through values and modify -a grid in real-time.; -#X msg 24 -202 open b001.jpg; -#X obj 456 -281 cnv 15 70 15 empty empty empty 20 12 0 14 -260818 -66577 -0; -#X text 455 -281 Example #5; -#X text 457 -260 We introduce the [#clip] object. It is used with numops -in order to set constraints on the pixel to eliminate color wrapping. -Colour wrapping occurs when the individual pixel values in a grid exceed -255 which results in over-saturation of colour. GridFlow reads colours -as values from 0 (black) to 255 (white). Refer to glossary for more -information on colour.; -#X connect 1 0 2 0; -#X connect 2 0 4 0; -#X connect 3 0 4 1; -#X connect 3 0 17 0; -#X connect 4 0 15 0; -#X connect 5 0 2 0; -#X connect 6 0 5 0; -#X connect 8 0 9 0; -#X connect 9 0 12 0; -#X connect 10 0 9 0; -#X connect 11 0 12 1; -#X connect 12 0 14 0; -#X connect 13 0 19 0; -#X connect 14 0 16 0; -#X connect 19 0 9 0; -#X connect 20 0 12 1; -#X connect 21 0 12 1; -#X connect 23 0 12 1; -#X connect 24 0 23 0; -#X connect 25 0 27 0; -#X connect 26 0 27 0; -#X connect 31 0 2 0; diff --git a/externals/gridflow/doc/tutorials/3-1-0-open-video.pd b/externals/gridflow/doc/tutorials/3-1-0-open-video.pd deleted file mode 100755 index 2abf0e74..00000000 --- a/externals/gridflow/doc/tutorials/3-1-0-open-video.pd +++ /dev/null @@ -1,38 +0,0 @@ -#N canvas 48 56 545 431 10; -#X obj 100 156 #in; -#X obj 100 222 #out window; -#X obj 124 33 openpanel; -#X obj 124 9 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 --1; -#X msg 124 58 open \$1; -#X obj 17 11 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 0 1; -#X obj 17 45 metro 33.33; -#X floatatom 317 190 5 0 0 0 - - -; -#X obj 401 166 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 --1; -#X obj 401 193 print go; -#X msg 201 124 loop 0; -#X msg 201 97 loop 1; -#X msg 283 13 open home/steph/Desktop/PDDP_summer; -#X obj 7 -37 cnv 15 430 15 empty empty empty 20 12 0 14 -228992 -66577 -0; -#X text 10 -37 What is a grid?; -#X obj 7 -72 cnv 15 430 30 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X text 12 -73 2 Images; -#X text 14 -59 Description: opening multiple images from one window. -; -#X obj 8 320 cnv 15 430 30 empty empty empty 20 12 0 14 -200249 -66577 -0; -#X text 16 327 GridFlow 0.8.0; -#X connect 0 0 1 0; -#X connect 0 1 7 0; -#X connect 2 0 4 0; -#X connect 3 0 2 0; -#X connect 4 0 0 0; -#X connect 5 0 6 0; -#X connect 6 0 0 0; -#X connect 8 0 9 0; -#X connect 10 0 0 0; -#X connect 11 0 0 0; -#X connect 12 0 0 0; diff --git a/externals/gridflow/doc/tutorials/3-2-video-manipulation.pd b/externals/gridflow/doc/tutorials/3-2-video-manipulation.pd deleted file mode 100755 index 78a7b427..00000000 --- a/externals/gridflow/doc/tutorials/3-2-video-manipulation.pd +++ /dev/null @@ -1 +0,0 @@ -#N canvas 0 0 450 300 10; diff --git a/externals/gridflow/doc/tutorials/3-3-record-video.pd b/externals/gridflow/doc/tutorials/3-3-record-video.pd deleted file mode 100755 index ff158554..00000000 --- a/externals/gridflow/doc/tutorials/3-3-record-video.pd +++ /dev/null @@ -1,51 +0,0 @@ -#N canvas 151 21 517 609 10; -#X obj 15 320 #camera; -#X obj 15 260 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 0 1 -; -#X obj 142 370 #out window; -#X obj 90 260 hsl 128 15 20 300 0 0 empty empty empty -2 -6 0 8 -260818 --1 -1 0 1; -#X obj 142 395 fps detailed; -#X obj 142 419 print; -#X obj 15 294 metro 100; -#X obj 53 473 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 --1; -#X obj 129 506 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 --1; -#X text 149 505 stop recording; -#X text 73 471 select filename; -#X text 111 488 start recording; -#X obj 91 489 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 --1; -#X obj 15 528 #record_quicktime; -#X text 21 54 To record a video from a live stream or a video... you -can use this patch.; -#X text 224 315 xinitrc ssh pdrc bach rc export bookmarks; -#X text 11 110 The outside of the patch uses objects seen in previous -patches. The [#record_quicktime] object is an abstraction in which -the settings and the optins are situated. to contruct the patch ... -Do we explain how to do it if it is in an abstraction???; -#X text 86 198 we don't nec have to explain how to build it since its -available to them through the pd_examples and they have been through -enough patvhes to easily understand what's going on.; -#X obj 11 29 cnv 15 430 15 empty empty empty 20 12 0 14 -228992 -66577 -0; -#X text 14 29 What is a grid?; -#X obj 11 -6 cnv 15 430 30 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X text 21 -7 2 Images; -#X text 18 7 Description: opening multiple images from one window. -; -#X obj 13 561 cnv 15 430 30 empty empty empty 20 12 0 14 -200249 -66577 -0; -#X text 21 568 GridFlow 0.8.0; -#X connect 0 0 2 0; -#X connect 0 0 13 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 13 1; -#X connect 8 0 13 3; -#X connect 12 0 13 2; diff --git a/externals/gridflow/doc/tutorials/4-0-open-live-stream.pd b/externals/gridflow/doc/tutorials/4-0-open-live-stream.pd deleted file mode 100755 index 7ce60b4d..00000000 --- a/externals/gridflow/doc/tutorials/4-0-open-live-stream.pd +++ /dev/null @@ -1,24 +0,0 @@ -#N canvas 286 99 571 305 10; -#X obj 91 104 #camera; -#X obj 40 40 bng 15 250 50 0 empty empty empty 0 -6 0 8 -24198 -1 -1 -; -#X obj 91 12 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 0 1; -#X obj 91 59 metro 50; -#X obj 91 151 #out window; -#X text 162 103 In this case there is no need for the [#in] objec. -Thereis one in the [#camera] object already.; -#X obj 7 -37 cnv 15 430 15 empty empty empty 20 12 0 14 -228992 -66577 -0; -#X text 10 -37 What is a grid?; -#X obj 7 -72 cnv 15 430 30 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X text 12 -73 2 Images; -#X text 14 -59 Description: opening multiple images from one window. -; -#X obj 10 197 cnv 15 430 30 empty empty empty 20 12 0 14 -200249 -66577 -0; -#X text 18 204 GridFlow 0.8.0; -#X connect 0 0 4 0; -#X connect 1 0 0 0; -#X connect 2 0 3 0; -#X connect 3 0 0 0; diff --git a/externals/gridflow/doc/tutorials/4-1-2-simple-motion-detection-absolute-value.pd b/externals/gridflow/doc/tutorials/4-1-2-simple-motion-detection-absolute-value.pd deleted file mode 100755 index a4021d41..00000000 --- a/externals/gridflow/doc/tutorials/4-1-2-simple-motion-detection-absolute-value.pd +++ /dev/null @@ -1,31 +0,0 @@ -#N canvas 452 202 450 438 10; -#X obj 91 104 #camera; -#X obj 40 40 bng 15 250 50 0 empty empty empty 0 -6 0 8 -24198 -1 -1 -; -#X obj 91 12 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 0 1; -#X obj 91 59 metro 50; -#X obj 100 253 #out window; -#X obj 88 134 trigger anything anything; -#X obj 133 162 # -; -#X obj 133 201 #clip; -#X obj 343 223 @! abs; -#X obj 343 254 # + 50; -#X obj 7 -37 cnv 15 430 15 empty empty empty 20 12 0 14 -228992 -66577 -0; -#X text 10 -37 What is a grid?; -#X obj 7 -72 cnv 15 430 30 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X text 12 -73 2 Images; -#X text 14 -59 Description: opening multiple images from one window. -; -#X obj 8 320 cnv 15 430 30 empty empty empty 20 12 0 14 -200249 -66577 -0; -#X text 16 327 GridFlow 0.8.0; -#X connect 0 0 5 0; -#X connect 1 0 0 0; -#X connect 2 0 3 0; -#X connect 3 0 0 0; -#X connect 5 0 6 1; -#X connect 5 1 6 0; -#X connect 6 0 7 0; -#X connect 7 0 4 0; diff --git a/externals/gridflow/doc/tutorials/4-1-3-motion-detection-more-advanced-and-more-options.pd b/externals/gridflow/doc/tutorials/4-1-3-motion-detection-more-advanced-and-more-options.pd deleted file mode 100755 index 112d2f8c..00000000 --- a/externals/gridflow/doc/tutorials/4-1-3-motion-detection-more-advanced-and-more-options.pd +++ /dev/null @@ -1,49 +0,0 @@ -#N canvas 476 26 450 542 10; -#X obj 91 104 #camera; -#X obj 248 302 #out window; -#X obj 40 40 bng 15 250 50 0 empty empty empty 0 -6 0 8 -24198 -1 -1 -; -#X text 167 102 there is an [#in] within [#camera]; -#X obj 80 12 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 0 1; -#X obj 248 325 fps detailed; -#X obj 248 351 print; -#X obj 108 20 metro 50; -#X obj 248 198 # -; -#X obj 248 269 #clip; -#X obj 248 220 @! abs; -#X obj 248 244 # + 50; -#X obj 164 141 trigger anything anything; -#X text 281 197 230400 (240x320x3); -#X obj 101 303 #rgb_to_greyscale; -#X obj 101 326 #centroid; -#X floatatom 154 404 5 0 0 0 - - -; -#X floatatom 200 403 5 0 0 0 - - -; -#X obj 85 375 display; -#X obj 7 -37 cnv 15 430 15 empty empty empty 20 12 0 14 -228992 -66577 -0; -#X text 10 -37 What is a grid?; -#X obj 7 -72 cnv 15 430 30 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X text 12 -73 2 Images; -#X text 14 -59 Description: opening multiple images from one window. -; -#X obj 6 432 cnv 15 430 30 empty empty empty 20 12 0 14 -200249 -66577 -0; -#X text 14 439 GridFlow 0.8.0; -#X connect 0 0 12 0; -#X connect 1 0 5 0; -#X connect 2 0 0 0; -#X connect 4 0 7 0; -#X connect 5 0 6 0; -#X connect 7 0 0 0; -#X connect 8 0 10 0; -#X connect 9 0 1 0; -#X connect 9 0 14 0; -#X connect 10 0 11 0; -#X connect 11 0 9 0; -#X connect 12 0 8 1; -#X connect 12 1 8 0; -#X connect 14 0 15 0; -#X connect 15 0 18 0; -#X connect 15 1 16 0; -#X connect 15 2 17 0; diff --git a/externals/gridflow/doc/tutorials/4-1-simple-motion-detection.pd b/externals/gridflow/doc/tutorials/4-1-simple-motion-detection.pd deleted file mode 100755 index bb3962a1..00000000 --- a/externals/gridflow/doc/tutorials/4-1-simple-motion-detection.pd +++ /dev/null @@ -1,37 +0,0 @@ -#N canvas 83 181 707 437 10; -#X obj 91 104 #camera; -#X obj 40 40 bng 15 250 50 0 empty empty empty 0 -6 0 8 -24198 -1 -1 -; -#X obj 91 12 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 0 1; -#X obj 91 59 metro 50; -#X obj 100 253 #out window; -#X obj 40 136 trigger anything anything; -#X obj 89 187 # -; -#X obj 89 226 #clip; -#X text 245 235 as a short cut you can use [t a a]. The values of one -frame are substracted from the previous frame only keeps the difference -and gives allows you to see the movement that occured between the first -seconde frame in relation to the first one.; -#X text 242 38 Motion detection is a way to view only the movement -in a space. Movement can be detected in darkness and seen as a video -image. the detection occurs when one frame it substractes the current -frame froom the last frame.; -#X obj 7 -37 cnv 15 430 15 empty empty empty 20 12 0 14 -228992 -66577 -0; -#X text 10 -37 What is a grid?; -#X obj 7 -72 cnv 15 430 30 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X text 12 -73 2 Images; -#X text 14 -59 Description: opening multiple images from one window. -; -#X obj 8 320 cnv 15 430 30 empty empty empty 20 12 0 14 -200249 -66577 -0; -#X text 16 327 GridFlow 0.8.0; -#X connect 0 0 5 0; -#X connect 1 0 0 0; -#X connect 2 0 3 0; -#X connect 3 0 0 0; -#X connect 5 0 6 1; -#X connect 5 1 6 0; -#X connect 6 0 7 0; -#X connect 7 0 4 0; diff --git a/externals/gridflow/doc/tutorials/PD-GF-Lecture.pd b/externals/gridflow/doc/tutorials/PD-GF-Lecture.pd deleted file mode 100755 index 1f7b6d52..00000000 --- a/externals/gridflow/doc/tutorials/PD-GF-Lecture.pd +++ /dev/null @@ -1,80 +0,0 @@ -#N canvas 23 16 880 578 10; -#X obj 5 6 cnv 15 870 30 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X obj 5 550 cnv 15 870 30 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X text 666 549 Copyright Ben Bogart 2005 \; (See COPYING.TXT for details) -; -#X text 9 13 Welcome to Pure-Data...; -#X obj 6 46 cnv 15 430 15 empty empty empty 20 12 0 14 -179884 -66577 -0; -#X text 11 46 What is Pure-Data (aka PD)?; -#X obj 4 233 cnv 15 430 145 empty empty empty 20 12 0 14 -179884 -66577 -0; -#X obj 25 271 pddp_open pure-data-1; -#X obj 25 294 pddp_open pure-data-2; -#X obj 25 317 pddp_open pure-data-3; -#X obj 25 340 pddp_open pure-data-4; -#X text 200 271 Pure-Data Introduction; -#X text 200 294 GUI Objects for Interaction; -#X text 200 317 Creating your first patch; -#X text 200 340 Control: metro \, random & counter; -#X obj 444 233 cnv 15 430 145 empty empty empty 20 12 0 14 -179884 --66577 0; -#X obj 5 391 cnv 15 430 145 empty empty empty 20 12 0 14 -179884 -66577 -0; -#X obj 25 416 pddp_open pure-data-5; -#X obj 25 439 pddp_open pure-data-6; -#X text 200 439 The powerful message object; -#X obj 25 462 pddp_open pure-data-7; -#X text 200 462 More about lists; -#X text 200 485 Nesting collections of objects; -#X text 200 416 Connectionless communications; -#X obj 25 485 pddp_open pure-data-8; -#X text 200 509 Using GUI's in abstractions; -#X obj 25 509 pddp_open pure-data-9; -#X obj 445 391 cnv 15 430 145 empty empty empty 20 12 0 14 -179884 --66577 0; -#X text 642 296 Introduction to Images; -#X obj 468 271 pddp_open GridFlow-1; -#X obj 468 294 pddp_open GridFlow-2; -#X obj 468 317 pddp_open GridFlow-3; -#X obj 468 340 pddp_open GridFlow-4; -#X text 642 319 Introduction to video; -#X text 642 342 Introduction to Live Feeds; -#X obj 446 46 cnv 15 430 15 empty empty empty 20 12 0 14 -179884 -66577 -0; -#X text 451 46 What is GridFLow?; -#X text 642 457 Putting it all together; -#X text 641 428 Interfacing with sensors; -#X text 642 273 Introduction to Grids; -#X obj 467 429 pddp_open GridFlow-6; -#X obj 467 452 pddp_open GridFlow-7; -#X text 451 236 2 Introduction to GridFlow; -#X text 454 144 This section deals with the particular objects related -to GridFlow. GridFlow uses the usual PD "control" objects \, as well -as a set of GridFlow specific objects. Before we get into the tutorials -we will explain the grid "#" \, the most important concept in GridFlow. -; -#X text 453 84 GridFlow is a plug-in for PureData that introduces the -frid (#) data type into the PD environment. GridFlow allows you to -work with live video \, still images and video files in a real-time -environment.; -#X text 14 85 Pure-Data is an open-source patching environment for -multi-media (audio+image). Pure-Data is a programming language where -you create relationships by connecting visual boxes (rather than typing -complex commands). This lecture is separated into three sections: An -Introduction to Pure-Data \, An introduction to GridFlow and intermediate -PD and GridFlow.; -#X obj 448 236 cnv 15 15 15 empty empty empty 20 12 0 14 -262144 -66577 -0; -#X text 451 236 2 Introduction to GridFlow; -#X obj 8 395 cnv 15 15 15 empty empty empty 20 12 0 14 -262144 -66577 -0; -#X obj 449 395 cnv 15 15 15 empty empty empty 20 12 0 14 -262144 -66577 -0; -#X obj 7 236 cnv 15 15 15 empty empty empty 20 12 0 14 -262144 -66577 -0; -#X text 452 395 4 Intermediate GridFlow; -#X text 10 236 1 Introduction to Pure-Data; -#X text 11 395 3 Intermediate Pure-Data; diff --git a/externals/gridflow/doc/tutorials/PD-Lecture.pd b/externals/gridflow/doc/tutorials/PD-Lecture.pd deleted file mode 100755 index e2f269c5..00000000 --- a/externals/gridflow/doc/tutorials/PD-Lecture.pd +++ /dev/null @@ -1,64 +0,0 @@ -#N canvas 116 102 890 501 10; -#X obj 8 6 cnv 15 870 30 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X obj 8 457 cnv 15 870 30 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X text 668 459 Copyright Ben Bogart 2005 \; (See COPYING.TXT for details) -; -#X text 12 13 Welcome to Pure-Data...; -#X obj 8 46 cnv 15 430 15 empty empty empty 20 12 0 14 -179884 -66577 -0; -#X text 13 46 What is Pure-Data (aka PD)?; -#X text 28 74 Pure-Data is an open-source patching environment for -multi-media (audio+image). Pure-Data is a programming language where -you create relationships by connecting visual boxes (rather than typing -complex commands). This lecture is separated into three sections: An -Introduction to Pure-Data \, An introduction to Gem and intermediate -PD and Gem.; -#X obj 8 176 cnv 15 430 120 empty empty empty 20 12 0 14 -179884 -66577 -0; -#X obj 22 198 pddp_open pure-data-1; -#X obj 22 221 pddp_open pure-data-2; -#X obj 22 244 pddp_open pure-data-3; -#X obj 22 267 pddp_open pure-data-4; -#X text 197 198 Pure-Data Introduction; -#X text 197 221 GUI Objects for Interaction; -#X text 197 244 Creating your first patch; -#X text 197 267 Control: metro \, random & counter; -#X obj 8 306 cnv 15 430 145 empty empty empty 20 12 0 14 -179884 -66577 -0; -#X text 13 176 Introduction to Pure-Data; -#X text 13 306 Introduction to Gem (Graphics Environment for Multimedia) -; -#X obj 22 328 pddp_open gem-1; -#X obj 22 351 pddp_open gem-2; -#X obj 22 374 pddp_open gem-3; -#X obj 22 397 pddp_open gem-4; -#X obj 22 421 pddp_open gem-5; -#X text 197 328 Gem Introduction; -#X text 197 351 What are gemchains?; -#X text 197 374 translate \, rotate and scale; -#X text 197 397 Texturing using pix objects; -#X text 197 421 Video & Free Exploration; -#X obj 448 46 cnv 15 430 145 empty empty empty 20 12 0 14 -179884 -66577 -0; -#X text 453 46 Intermediate Pure-Data; -#X obj 462 68 pddp_open pure-data-5; -#X obj 462 91 pddp_open pure-data-6; -#X text 637 91 The powerful message object; -#X obj 462 114 pddp_open pure-data-7; -#X text 637 114 More about lists; -#X text 637 137 Nesting collections of objects; -#X text 637 68 Connectionless communications; -#X obj 462 137 pddp_open pure-data-8; -#X text 637 161 Using GUI's in abstractions; -#X obj 462 161 pddp_open pure-data-9; -#X obj 448 200 cnv 15 430 95 empty empty empty 20 12 0 14 -179884 -66577 -0; -#X text 637 222 Grouping Gem entities; -#X text 637 245 Gem render order; -#X text 453 200 Intermediate Gem; -#X obj 462 222 pddp_open gem-6; -#X obj 462 245 pddp_open gem-7; -#X obj 462 268 pddp_open gem-8; -#X text 637 268 Video Tracking & Pixel Operations; diff --git a/externals/gridflow/doc/tutorials/colors.pd b/externals/gridflow/doc/tutorials/colors.pd deleted file mode 100755 index 39582d52..00000000 --- a/externals/gridflow/doc/tutorials/colors.pd +++ /dev/null @@ -1,12 +0,0 @@ -#N canvas 50 148 450 206 10; -#X obj -10 -171 #pack 3; -#X obj 46 -203 hsl 128 15 0 255 0 0 empty empty empty -2 -6 0 8 -241291 --1 -1 0 1; -#X obj 46 -223 hsl 128 15 0 255 0 0 empty empty empty -2 -6 0 8 -241291 --1 -1 0 1; -#X obj 46 -243 hsl 128 15 0 255 0 0 empty empty empty -2 -6 0 8 -241291 --1 -1 0 1; -#X obj -6 -132 #color; -#X connect 1 0 0 2; -#X connect 2 0 0 1; -#X connect 3 0 0 0; diff --git a/externals/gridflow/doc/tutorials/d_gf_2_0-Intro_to_images_open_image.pd b/externals/gridflow/doc/tutorials/d_gf_2_0-Intro_to_images_open_image.pd deleted file mode 100644 index a95ac185..00000000 --- a/externals/gridflow/doc/tutorials/d_gf_2_0-Intro_to_images_open_image.pd +++ /dev/null @@ -1,62 +0,0 @@ -#N canvas 0 0 887 417 10; -#X obj 4 278 cnv 15 868 30 empty empty empty 20 12 0 14 -200249 -66577 -0; -#X text 12 285 GridFlow 0.8.0; -#X obj 5 -67 cnv 15 430 15 empty empty empty 20 12 0 14 -228992 -66577 -0; -#X obj 5 -106 cnv 15 868 30 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X obj 5 -106 cnv 15 780 30 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X text 12 -99 2 Introduction to Images; -#X text 556 86 <--- click here; -#N canvas 0 0 450 300 META 0; -#X restore 126 285 pd META; -#X obj 452 191 #out window; -#X msg 452 84 open b001.jpg; -#X obj 473 107 bng 15 250 50 0 empty empty empty 0 -6 0 8 -24198 -1 --1; -#X text 13 84 step 3: Add a [bang<.; -#X text 13 105 step 4: Create a [#out window].; -#X text 13 63 step 2: Create [#in] object.; -#X text 14 27 step 1: create message box [open< with the file name -and extension you want to open.; -#X text 506 110 <--- then click here; -#X obj 447 -67 cnv 15 430 15 empty empty empty 20 12 0 14 -228992 -66577 -0; -#X text 450 -67 1.2 How to create a grid.; -#X obj 447 -67 cnv 15 430 15 empty empty empty 20 12 0 14 -228992 -66577 -0; -#X text 8 -68 2.1 Opening an image.; -#X text 456 -66 2.1 Patch example.; -#X obj 452 130 cnv 15 22 15 empty empty empty 20 12 0 14 -241291 -66577 -0; -#X obj 452 129 #in; -#X text 12 150 Tip: In order for GridFlow to be able to find your images -you have to specify the correct path.; -#X obj 14 151 cnv 15 25 15 empty empty empty 20 12 0 14 -260818 -66577 -0; -#X text 12 -33 One of the first things you need to know when working -with GridFlow is how to open an image. GridFlow accepts several image -formats (.jpg \, .png \, .tiff etc.).; -#X text 12 150 Tip: In order for GridFlow to be able to find your images -you have to specify the correct path. Gridflow has an "images" folder -\, put them there to access them by filename only.; -#X obj 451 38 cnv 15 25 15 empty empty empty 20 12 0 14 -260818 -66577 -0; -#X text 450 38 Tip: Sometimes the display window opens behind the patch -\, try moving the patch if the display seems to be missing.; -#X text 447 -45 To view the image you must initialize the patch. This -is done in "run mode" by clicking on the message box \, and then on -the bang. The image will be displayed in a display window \, off to -the side of the patch.; -#X text 476 216 In order to close the parent window displaying your -image \, the [#out window] object must be deleted.; -#X obj 512 133 cnv 15 25 15 empty empty empty 20 12 0 14 -260818 -66577 -0; -#X text 489 132 <--Tip: remember \, as with the rest of PD \, you can -obtain information regarding specific objects by right-clicking on -it. Try this for [#in].; -#X connect 9 0 22 0; -#X connect 10 0 22 0; -#X connect 22 0 8 0; diff --git a/externals/gridflow/doc/tutorials/d_gf_2_2_1-image-modification-1-numop-all-in-one2.pd b/externals/gridflow/doc/tutorials/d_gf_2_2_1-image-modification-1-numop-all-in-one2.pd deleted file mode 100644 index ddf83eb1..00000000 --- a/externals/gridflow/doc/tutorials/d_gf_2_2_1-image-modification-1-numop-all-in-one2.pd +++ /dev/null @@ -1,127 +0,0 @@ -#N canvas 53 0 670 470 10; -#X obj 20 -34 cnv 15 130 150 empty empty empty 20 12 0 14 -228992 -66577 -0; -#X obj 70 2 bng 15 250 50 0 empty empty empty 0 -6 0 8 -24198 -1 -1 -; -#X obj 35 41 #in; -#X msg 35 -28 open b001.jpg; -#X obj 35 91 # +; -#X obj 21 231 cnv 15 185 150 empty empty empty 20 12 0 14 -228992 -66577 -0; -#X obj 29 313 #in; -#X msg 29 239 open b001.jpg; -#X obj 96 323 hsl 128 15 0 255 0 0 empty empty empty -2 -6 0 8 -260818 --1 -1 4300 1; -#X obj 29 349 # + \$1; -#X obj 54 287 metro 33.3; -#X obj 54 265 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 0 1 -; -#X obj 82 64 cnv 15 25 17 empty empty empty 20 12 0 14 -241291 -66577 -0; -#X obj 82 42 cnv 15 25 17 empty empty empty 20 12 0 14 -241291 -66577 -0; -#X obj 83 86 cnv 15 25 17 empty empty empty 20 12 0 14 -241291 -66577 -0; -#X msg 82 64 67; -#X msg 82 42 2; -#X msg 83 86 199; -#X floatatom 93 349 5 0 0 0 - - -; -#X text 21 -501 Numeric Operators (numop): transform an image or video -by applying a mathematical operation to each pixel value in the grid. -; -#X obj 21 -522 cnv 15 430 15 empty empty empty 20 12 0 14 -228992 -66577 -0; -#X obj 23 -678 cnv 15 430 30 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X obj 18 606 cnv 15 430 30 empty empty empty 20 12 0 14 -200249 -66577 -0; -#X text 27 614 GridFlow 0.8.0; -#X obj 339 -267 cnv 15 130 150 empty empty empty 20 12 0 14 -228992 --66577 0; -#X obj 404 -228 bng 15 250 50 0 empty empty empty 0 -6 0 8 -24198 -1 --1; -#X obj 358 -199 #in; -#X msg 358 -260 open b001.jpg; -#X obj 378 -171 cnv 15 25 17 empty empty empty 20 12 0 14 -241291 -66577 -0; -#X obj 20 -352 cnv 15 50 15 empty empty empty 20 12 0 14 -228992 -66577 -0; -#X obj 23 -86 cnv 15 430 15 empty empty empty 20 12 0 14 -228992 -66577 -0; -#X text 26 -87 Example #2 demonstrates how to send the numop an argument -using a message box. This method allows you to send the numop several -different arguments.; -#X text 35 -671 2.4 Image manipulation; -#X text 57 -523 2.4.1 Numop; -#X text 25 -445 To transform a grid (in this case an image) using numop -\, it must first be given an argument (a number value). That value -will be applied by numop to every value in the grid. The following -examples show you the three methods that can be used to give the numop -an argument.; -#X obj 35 121 s to_out_window; -#X obj 358 -142 s to_out_window; -#X obj 29 382 s to_out_window; -#X obj 246 546 r to_out_window; -#X msg 498 547 close; -#X msg 393 544 open window; -#X obj 30 -294 cnv 15 200 180 empty empty empty 20 12 0 14 -228992 --66577 0; -#X obj 161 -215 cnv 15 25 17 empty empty empty 20 12 0 14 -241291 -66577 -0; -#X obj 199 -318 display; -#X msg 79 -282 1 2 3 4 5 6 7 8 9; -#X obj 79 -253 #import (3 3); -#X obj 179 -479 display; -#X obj 140 -215 # + 42; -#X obj 358 -171 # + 42; -#X text 337 -288 Here is an example with an image.; -#X text 19 -352 Example 1: shows how values in a grid are altered when -an argument is placed directly into the numeric operator object.; -#X text 157 63 1 click on the argument; -#X text 124 6 2 click on the bang to see the updated image; -#X text 94 8 <--; -#X text 116 42 <--; -#X text 116 65 <--; -#X text 116 87 <--; -#X text 194 -221 <-- argument in this case is 42; -#X obj 353 581 #out window; -#X text 22 433 In all these examples the [# +] numop is used. All the -numeric operators can be found in the numeric operator help patch (right -click on the [# +] and select help to view them). If you want to see -what effects other numops can do \, try replacing the [# +] numop with -another one (either cut and paste a different numop from the help file -or create the object in the current canvas.; -#X obj 20 181 cnv 15 430 15 empty empty empty 20 12 0 14 -228992 -66577 -0; -#X text 26 179 Example #3 using the slider and metro.; -#X text 467 -617 split into 3 patches using ben's switch arrange canvases -and colors; -#X text 24 -635 GridFlow performs high level grid processing \; in -other words its main function is the manipulation of images and video. -The numeric operators is one of the most common ways to modify an image. -; -#X connect 1 0 2 0; -#X connect 2 0 4 0; -#X connect 3 0 2 0; -#X connect 4 0 35 0; -#X connect 6 0 9 0; -#X connect 7 0 6 0; -#X connect 8 0 9 1; -#X connect 8 0 18 0; -#X connect 9 0 37 0; -#X connect 10 0 6 0; -#X connect 11 0 10 0; -#X connect 15 0 4 1; -#X connect 16 0 4 1; -#X connect 17 0 4 1; -#X connect 25 0 26 0; -#X connect 26 0 48 0; -#X connect 27 0 26 0; -#X connect 38 0 58 0; -#X connect 39 0 58 0; -#X connect 40 0 58 0; -#X connect 44 0 45 0; -#X connect 45 0 46 0; -#X connect 45 0 47 0; -#X connect 47 0 43 0; -#X connect 48 0 36 0; diff --git a/externals/gridflow/doc/tutorials/d_gf_2_2_2.pd b/externals/gridflow/doc/tutorials/d_gf_2_2_2.pd deleted file mode 100644 index a918d620..00000000 --- a/externals/gridflow/doc/tutorials/d_gf_2_2_2.pd +++ /dev/null @@ -1,68 +0,0 @@ -#N canvas 38 0 687 415 10; -#X obj 31 -223 cnv 15 243 358 empty empty empty 20 12 0 14 -228992 --66577 0; -#X obj 39 -141 #in; -#X msg 39 -215 open b001.jpg; -#X obj 79 -132 hsl 128 15 0 255 0 0 empty empty empty -2 -6 0 8 -260818 --1 -1 0 1; -#X obj 39 -18 # + \$1; -#X obj 62 -189 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 1 1 -; -#X obj 69 76 #clip; -#X obj 28 -322 cnv 15 430 15 empty empty empty 20 12 0 14 -228992 -66577 -0; -#X obj 62 -167 metro 33.3; -#X obj 94 -99 #color; -#X obj 23 -678 cnv 15 430 30 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X obj 36 168 cnv 15 430 30 empty empty empty 20 12 0 14 -200249 -66577 -0; -#X text 44 175 GridFlow 0.8.0; -#X obj 39 108 #out window; -#X text 35 -671 2.2 Image manipulation \, colour wrapping; -#X obj 12 -518 cnv 15 430 15 empty empty empty 20 12 0 14 -228992 -66577 -0; -#X text 18 -519 Example #1 colour wrapping; -#X msg 74 -491 240 0 0; -#X obj 179 -368 display; -#X obj 74 -457 # + 20; -#X obj 178 -423 #cast uint8; -#X obj 23 -368 display; -#X text 274 -429 <-- This transforms the grid into 8 bit values \, -that corresponds to the way that images are usually shown in images -and video; -#X text 42 -323 Example #2 clipping the values; -#X text 10 -545 Tip: Refer to glossary for more information on colour. -; -#X text 215 -132 <-- add value to all channels at once; -#X obj 39 37 shunt; -#X obj 69 11 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 1 1; -#X text 93 12 <-- switch to see clip's effect; -#X text 96 38 <-- directs the flow of data; -#X text 7 -643 When an image is represented as a grid every pixel value -will vary between 0 and 255 Color wrapping occurs when the result of -the operation on the pixel value would be higher than 255 Values above -255 are counted from 0 For example: if a pixel has a red value of 240 -and 20 is added to it \, you get 5 instead of displaying 260 (240 + -20 - 255 = 5); -#X text 450 -583 aks matju to fix bug in [display]'s display; -#X text 32 -301 The [#clip] object is used with numops in order to -set an lower and upper range to pixel values in order to eliminate -color wrapping (those nifty 60s effects).; -#X text 288 -70 <-- drag to add value to specific channel; -#X text 163 -206 remember to load the image and strat the metro; -#X connect 1 0 4 0; -#X connect 2 0 1 0; -#X connect 3 0 4 1; -#X connect 4 0 26 0; -#X connect 5 0 8 0; -#X connect 6 0 13 0; -#X connect 8 0 1 0; -#X connect 9 0 4 1; -#X connect 17 0 19 0; -#X connect 19 0 20 0; -#X connect 19 0 21 0; -#X connect 20 0 18 0; -#X connect 26 0 13 0; -#X connect 26 1 6 0; -#X connect 27 0 26 1; diff --git a/externals/gridflow/doc/tutorials/gf_1_0-Introduction_to_grids.pd b/externals/gridflow/doc/tutorials/gf_1_0-Introduction_to_grids.pd deleted file mode 100755 index fb78a496..00000000 --- a/externals/gridflow/doc/tutorials/gf_1_0-Introduction_to_grids.pd +++ /dev/null @@ -1,98 +0,0 @@ -#N canvas 0 207 762 514 10; -#X obj 470 287 display; -#X obj 7 6 cnv 15 430 15 empty empty empty 20 12 0 14 -228992 -66577 -0; -#X obj 7 -29 cnv 15 970 30 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X obj 7 -29 cnv 15 780 30 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X obj 12 661 cnv 15 970 30 empty empty empty 20 12 0 14 -200249 -66577 -0; -#X text 20 668 GridFlow 0.8.0; -#X text 10 6 1.1 What is a grid?; -#X text 12 -22 1 Introduction to Grids; -#X text 10 333 GridFlow can create a grid from a list of numbers. The -[#import] object permits you to set the desired amount of rows and -columns. A message box permits you to tell the grid which numbers to -display.; -#X msg 473 429 3 3 # 6 1 3 6 3 324 6 3 4; -#X msg 550 169 reset; -#X msg 494 475 3 3 # 1 0 0 0; -#X obj 474 572 display; -#X obj 9 307 cnv 15 430 15 empty empty empty 20 12 0 14 -228992 -66577 -0; -#X text 12 307 1.2 How to create a grid.; -#X obj 9 307 cnv 15 430 15 empty empty empty 20 12 0 14 -228992 -66577 -0; -#X text 13 307 1.2 How to create a grid using the [#import] object. -; -#X text 10 427 1 - Create a list of numbers using a message box. The -numbers must be seperated by a space. The list can have as many numbers -as you want but only the amount defined by [#import] will be displayed. -As you click on the message box the numbers will appear in the grid. -The numbers are positioned in the grid from left to right and from -the top to the bottom.; -#X text 12 605 3 - Connect the objects to a [display] object or a [print] -object to see the resulting grid. You don't have to "see" the grid -in order to manipulate it.; -#X text 558 306 display object; -#N canvas 0 0 450 300 META 0; -#X restore 921 616 pd META; -#X obj 457 6 cnv 15 430 15 empty empty empty 20 12 0 14 -228992 -66577 -0; -#X text 460 6 1.2 How to create a grid.; -#X obj 457 6 cnv 15 430 15 empty empty empty 20 12 0 14 -228992 -66577 -0; -#X obj 663 43 cnv 15 15 15 empty empty empty 20 12 0 14 -259603 -66577 -0; -#X obj 469 238 cnv 15 92 15 empty empty empty 20 12 0 14 -241291 -66577 -0; -#X obj 469 237 #import (3 3); -#X obj 473 520 cnv 15 37 15 empty empty empty 20 12 0 14 -241291 -66577 -0; -#X obj 473 519 # + 0; -#X text 8 267 The following examples illustrate how grids are interpreted -and represented in GridFlow.; -#X text 3 402 Steps for creating a grid:; -#X text 11 537 2 - Create the [#import] object and indicate the parameters -you want as grid dimensions. By indicating 3 3 in brackets following -[#import] \, you are creating a grid that has 3 rows and 3 columns. -This 3 by 3 grid will display 9 numbers.; -#X text 518 516 works like the [#import] object but allows you to put -your grid parameters and values into one message box; -#X text 10 29 A grid is composed of rows and columns that contain numeric -data. For instance \, a checkerboard is a grid that consists in a series -of rows and columns containing information: a dark square or a light -square.; -#X text 10 91 Computers interpret images as three-dimentional grids: -the rows (height) and columns (width) contain pixel positions. There -are usually three channels (depth) of rows and columns. Channels are -the colours that make up an image. Each channel is a single colour -\, usually red \, green and blue (RGB). Videos are also interpreted -as grids since they are a series of still images.; -#X text 9 194 Because GridFlow uses grids \, images and videos are -represented as such. GridFlow objects that accept or produce grids -are identified by the number sign "#" (think of that symbol as a mini -grid). From now on we will refer to images and videos as grids.; -#X msg 469 44 1 2 3 4 5 6 7 8 9; -#X msg 537 107 1 2 3 4; -#X text 466 6 1.2 Patch example.; -#X text 471 405 Other objects can create grids...; -#X text 601 42 <-- step 1: click here to view the numbers from the -list in a grid.; -#X text 601 104 <-- click here three times to see how import only outputs -a grid once it recieves the number of values iassociated with its dimensions -; -#X text 602 169 <-- resets the grid to only display the numbers from -the list; -#X obj 634 236 cnv 15 15 15 empty empty empty 20 12 0 14 -259603 -66577 -0; -#X text 572 236 <-- step 2: This object creates a grid that is 3 rows -by 3 columns; -#X connect 9 0 28 0; -#X connect 10 0 26 0; -#X connect 11 0 28 0; -#X connect 26 0 0 0; -#X connect 28 0 12 0; -#X connect 36 0 26 0; -#X connect 37 0 26 0; diff --git a/externals/gridflow/doc/tutorials/gf_2-2-3-resize-image_dec_2005.pd b/externals/gridflow/doc/tutorials/gf_2-2-3-resize-image_dec_2005.pd deleted file mode 100644 index 02cf9166..00000000 --- a/externals/gridflow/doc/tutorials/gf_2-2-3-resize-image_dec_2005.pd +++ /dev/null @@ -1,60 +0,0 @@ -#N canvas 127 0 672 603 10; -#X obj 22 160 metro 10; -#X obj 22 118 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 0 1 -; -#X floatatom 80 298 5 1 4 0 - - -; -#X obj 7 -37 cnv 15 430 15 empty empty empty 20 12 0 14 -228992 -66577 -0; -#X obj 7 -72 cnv 15 430 30 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X obj 26 478 cnv 15 430 30 empty empty empty 20 12 0 14 -200249 -66577 -0; -#X text 34 485 GridFlow 0.8.0; -#X obj 22 438 #out window; -#X obj 59 248 #in; -#X msg 59 225 load bluemarble.jpg; -#X obj 80 387 #pack 2; -#X floatatom 124 369 5 1 4 0 - - -; -#X obj 22 272 #store; -#X text 21 -67 2.4 Image manipulation; -#X text 46 -37 2.4.1 Resizing an image; -#X obj 22 272 #store; -#X obj 59 202 loadbang; -#N canvas 0 0 450 300 META 0; -#X restore 154 484 pd META; -#X obj 274 226 cnv 15 15 15 empty empty empty 20 12 0 14 -259603 -66577 -0; -#X obj 23 414 cnv 15 63 15 empty empty empty 20 12 0 14 -241291 -66577 -0; -#X obj 113 118 cnv 15 15 15 empty empty empty 20 12 0 14 -259603 -66577 -0; -#X text 49 117 <-- step #2 : start the metro; -#X obj 22 413 #scale_by; -#X obj 468 344 cnv 15 15 15 empty empty empty 20 12 0 14 -259603 -66577 -0; -#X obj 165 379 cnv 15 152 15 empty empty empty 20 12 0 14 -260818 -66577 -0; -#X text 167 365 changing this number permits you to change the image's -horizontal parameters.; -#X text 404 344 <-- step #3 : change the parameters; -#X text 11 -10 [#scale_by] resizes grids by multiplying its parameters -(width and height). To resize an image proportionatily a specific scaleing -size must appylied \, ex: [#scale_by 4].; -#X text 11 31 [# pack] lets you resize grids by altering the vertical -and horizontal parameters.; -#X text 88 157 the metro refreshes the display window so you don't -have to reload the grid every time it's altered.; -#X text 210 225 <-- step #1 : load the image; -#X text 132 295 changing this number changes the grid's vertical parameters. -(a slider can be connected to [#pack] instead of a number box.; -#X connect 0 0 12 0; -#X connect 0 0 15 0; -#X connect 1 0 0 0; -#X connect 2 0 10 0; -#X connect 8 0 12 1; -#X connect 8 0 15 1; -#X connect 9 0 8 0; -#X connect 10 0 22 1; -#X connect 11 0 10 1; -#X connect 15 0 22 0; -#X connect 16 0 9 0; diff --git a/externals/gridflow/doc/tutorials/gf_2-2-4-greyscale_dec_2005.pd b/externals/gridflow/doc/tutorials/gf_2-2-4-greyscale_dec_2005.pd deleted file mode 100644 index cbb11af1..00000000 --- a/externals/gridflow/doc/tutorials/gf_2-2-4-greyscale_dec_2005.pd +++ /dev/null @@ -1,27 +0,0 @@ -#N canvas 183 58 542 460 10; -#X obj 21 207 #rgb_to_greyscale; -#X obj 7 -37 cnv 15 430 15 empty empty empty 20 12 0 14 -228992 -66577 -0; -#X obj 7 -72 cnv 15 430 30 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X obj 8 320 cnv 15 430 30 empty empty empty 20 12 0 14 -200249 -66577 -0; -#X text 16 327 GridFlow 0.8.0; -#X obj 21 178 #in; -#X text 21 -67 2.4 Image manipulation; -#X text 48 -37 2.4.2 Greyscale; -#N canvas 0 0 450 300 META 0; -#X restore 147 327 pd META; -#X text 149 242 This patch and other image modifications can be can -be found in the gridflow help files.; -#X text 159 102 insert your own images to convert it to greyscale. -click on the message to load image.; -#X text 19 4 To convert an image to greyscale use [#rgb_to_greyscale]. -It transforms colour information into a black to white gradient.; -#X obj 33 157 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 --1; -#X msg 21 135 open bluemarble.jpg; -#X obj 21 282 #out window; -#X connect 5 0 0 0; -#X connect 12 0 5 0; -#X connect 13 0 5 0; diff --git a/externals/gridflow/doc/tutorials/gf_2_0-Intro_to_images_open_image.pd b/externals/gridflow/doc/tutorials/gf_2_0-Intro_to_images_open_image.pd deleted file mode 100755 index ea6aa98d..00000000 --- a/externals/gridflow/doc/tutorials/gf_2_0-Intro_to_images_open_image.pd +++ /dev/null @@ -1,62 +0,0 @@ -#N canvas 0 0 894 417 10; -#X obj 4 278 cnv 15 868 30 empty empty empty 20 12 0 14 -200249 -66577 -0; -#X text 12 285 GridFlow 0.8.0; -#X obj 5 -67 cnv 15 430 15 empty empty empty 20 12 0 14 -228992 -66577 -0; -#X obj 5 -106 cnv 15 868 30 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X obj 5 -106 cnv 15 780 30 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X text 12 -99 2 Introduction to Images; -#X text 556 86 <--- click here; -#N canvas 0 0 450 300 META 0; -#X restore 126 285 pd META; -#X obj 452 191 #out window; -#X msg 452 84 open b001.jpg; -#X obj 473 107 bng 15 250 50 0 empty empty empty 0 -6 0 8 -24198 -1 --1; -#X text 13 84 step 3: Add a [bang<.; -#X text 13 105 step 4: Create a [#out window].; -#X text 13 63 step 2: Create [#in] object.; -#X text 14 27 step 1: create message box [open< with the file name -and extension you want to open.; -#X text 506 110 <--- then click here; -#X obj 447 -67 cnv 15 430 15 empty empty empty 20 12 0 14 -228992 -66577 -0; -#X text 450 -67 1.2 How to create a grid.; -#X obj 447 -67 cnv 15 430 15 empty empty empty 20 12 0 14 -228992 -66577 -0; -#X text 8 -68 2.1 Opening an image.; -#X text 456 -66 2.1 Patch example.; -#X obj 452 130 cnv 15 22 15 empty empty empty 20 12 0 14 -241291 -66577 -0; -#X obj 452 129 #in; -#X text 12 150 Tip: In order for GridFlow to be able to find your images -you have to specify the correct path.; -#X obj 14 151 cnv 15 25 15 empty empty empty 20 12 0 14 -260818 -66577 -0; -#X text 12 -33 One of the first things you need to know when working -with GridFlow is how to open an image. GridFlow accepts several image -formats (.jpg \, .png \, .tiff etc.).; -#X text 12 150 Tip: In order for GridFlow to be able to find your images -you have to specify the correct path. Gridflow has an "images" folder -\, put them there to access them by filename only.; -#X obj 451 38 cnv 15 25 15 empty empty empty 20 12 0 14 -260818 -66577 -0; -#X text 450 38 Tip: Sometimes the display window opens behind the patch -\, try moving the patch if the display seems to be missing.; -#X text 447 -45 To view the image you must initialize the patch. This -is done in "run mode" by clicking on the message box \, and then on -the bang. The image will be displayed in a display window \, off to -the side of the patch.; -#X text 476 216 In order to close the parent window displaying your -image \, the [#out window] object must be deleted.; -#X obj 512 133 cnv 15 25 15 empty empty empty 20 12 0 14 -260818 -66577 -0; -#X text 489 132 <--Tip: remember \, as with the rest of PD \, you can -obtain information regarding specific objects by right-clicking on -it. Try this for [#in].; -#X connect 9 0 22 0; -#X connect 10 0 22 0; -#X connect 22 0 8 0; diff --git a/externals/gridflow/doc/tutorials/gf_2_2_1-image-modification-1-numop-all-in-one2.pd b/externals/gridflow/doc/tutorials/gf_2_2_1-image-modification-1-numop-all-in-one2.pd deleted file mode 100755 index cc1d1902..00000000 --- a/externals/gridflow/doc/tutorials/gf_2_2_1-image-modification-1-numop-all-in-one2.pd +++ /dev/null @@ -1,127 +0,0 @@ -#N canvas 53 0 670 470 10; -#X obj 20 -34 cnv 15 130 150 empty empty empty 20 12 0 14 -228992 -66577 -0; -#X obj 70 2 bng 15 250 50 0 empty empty empty 0 -6 0 8 -24198 -1 -1 -; -#X obj 35 41 #in; -#X msg 35 -28 open b001.jpg; -#X obj 35 91 # +; -#X obj 21 231 cnv 15 185 150 empty empty empty 20 12 0 14 -228992 -66577 -0; -#X obj 29 313 #in; -#X msg 29 239 open b001.jpg; -#X obj 96 323 hsl 128 15 0 255 0 0 empty empty empty -2 -6 0 8 -260818 --1 -1 4300 1; -#X obj 29 349 # + \$1; -#X obj 54 287 metro 33.3; -#X obj 54 265 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 0 1 -; -#X obj 82 64 cnv 15 25 17 empty empty empty 20 12 0 14 -241291 -66577 -0; -#X obj 82 42 cnv 15 25 17 empty empty empty 20 12 0 14 -241291 -66577 -0; -#X obj 83 86 cnv 15 25 17 empty empty empty 20 12 0 14 -241291 -66577 -0; -#X msg 82 64 67; -#X msg 82 42 2; -#X msg 83 86 199; -#X floatatom 93 349 5 0 0 0 - - -; -#X text 21 -501 Numeric Operators (numop): transform an image or video -by applying a mathematical operation to each pixel value in the grid. -; -#X obj 21 -522 cnv 15 430 15 empty empty empty 20 12 0 14 -228992 -66577 -0; -#X obj 23 -678 cnv 15 430 30 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X obj 18 606 cnv 15 430 30 empty empty empty 20 12 0 14 -200249 -66577 -0; -#X text 27 614 GridFlow 0.8.0; -#X obj 339 -267 cnv 15 130 150 empty empty empty 20 12 0 14 -228992 --66577 0; -#X obj 404 -228 bng 15 250 50 0 empty empty empty 0 -6 0 8 -24198 -1 --1; -#X obj 358 -199 #in; -#X msg 358 -260 open b001.jpg; -#X obj 378 -171 cnv 15 25 17 empty empty empty 20 12 0 14 -241291 -66577 -0; -#X obj 20 -352 cnv 15 50 15 empty empty empty 20 12 0 14 -228992 -66577 -0; -#X obj 23 -86 cnv 15 430 15 empty empty empty 20 12 0 14 -228992 -66577 -0; -#X text 26 -87 Example #2 demonstrates how to send the numop an argument -using a message box. This method allows you to send the numop several -different arguments.; -#X text 35 -671 2.4 Image manipulation; -#X text 57 -523 2.4.1 Numop; -#X text 25 -445 To transform a grid (in this case an image) using numop -\, it must first be given an argument (a number value). That value -will be applied by numop to every value in the grid. The following -examples show you the three methods that can be used to give the numop -an argument.; -#X obj 35 121 s to_out_window; -#X obj 358 -142 s to_out_window; -#X obj 29 382 s to_out_window; -#X obj 246 546 r to_out_window; -#X msg 498 547 close; -#X msg 393 544 open window; -#X obj 30 -294 cnv 15 200 180 empty empty empty 20 12 0 14 -228992 --66577 0; -#X obj 161 -215 cnv 15 25 17 empty empty empty 20 12 0 14 -241291 -66577 -0; -#X obj 199 -318 display; -#X msg 79 -282 1 2 3 4 5 6 7 8 9; -#X obj 79 -253 #import (3 3); -#X obj 179 -479 display; -#X obj 140 -215 # + 42; -#X obj 358 -171 # + 42; -#X text 337 -288 Here is an example with an image.; -#X text 19 -352 Example 1: shows how values in a grid are altered when -an argument is placed directly into the numeric operator object.; -#X text 157 63 1 click on the argument; -#X text 124 6 2 click on the bang to see the updated image; -#X text 94 8 <--; -#X text 116 42 <--; -#X text 116 65 <--; -#X text 116 87 <--; -#X text 194 -221 <-- argument in this case is 42; -#X obj 353 581 #out window; -#X text 22 433 In all these examples the [# +] numop is used. All the -numeric operators can be found in the numeric operator help patch (right -click on the [# +] and select help to view them). If you want to see -what effects other numops can do \, try replacing the [# +] numop with -another one (either cut and paste a different numop from the help file -or create the object in the current canvas.; -#X obj 20 181 cnv 15 430 15 empty empty empty 20 12 0 14 -228992 -66577 -0; -#X text 26 179 Example #3 using the slider and metro.; -#X text 467 -617 split into 3 patches using ben's switch arrange canvases -and colors; -#X text 24 -635 GridFlow performs high level grid processing \; in -other words its main function is the manipulation of images and video. -There are several ways to modify images \, one of the most common is -the numeric operators.; -#X connect 1 0 2 0; -#X connect 2 0 4 0; -#X connect 3 0 2 0; -#X connect 4 0 35 0; -#X connect 6 0 9 0; -#X connect 7 0 6 0; -#X connect 8 0 9 1; -#X connect 8 0 18 0; -#X connect 9 0 37 0; -#X connect 10 0 6 0; -#X connect 11 0 10 0; -#X connect 15 0 4 1; -#X connect 16 0 4 1; -#X connect 17 0 4 1; -#X connect 25 0 26 0; -#X connect 26 0 48 0; -#X connect 27 0 26 0; -#X connect 38 0 58 0; -#X connect 39 0 58 0; -#X connect 40 0 58 0; -#X connect 44 0 45 0; -#X connect 45 0 46 0; -#X connect 45 0 47 0; -#X connect 47 0 43 0; -#X connect 48 0 36 0; diff --git a/externals/gridflow/doc/tutorials/gf_2_2_2.pd b/externals/gridflow/doc/tutorials/gf_2_2_2.pd deleted file mode 100644 index 2728c61c..00000000 --- a/externals/gridflow/doc/tutorials/gf_2_2_2.pd +++ /dev/null @@ -1,68 +0,0 @@ -#N canvas 38 0 687 415 10; -#X obj 31 -223 cnv 15 243 358 empty empty empty 20 12 0 14 -228992 --66577 0; -#X obj 39 -141 #in; -#X msg 39 -215 open b001.jpg; -#X obj 79 -132 hsl 128 15 0 255 0 0 empty empty empty -2 -6 0 8 -260818 --1 -1 0 1; -#X obj 39 -18 # + \$1; -#X obj 62 -189 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 1 1 -; -#X obj 69 76 #clip; -#X obj 28 -322 cnv 15 430 15 empty empty empty 20 12 0 14 -228992 -66577 -0; -#X obj 62 -167 metro 33.3; -#X obj 94 -99 #color; -#X obj 23 -678 cnv 15 430 30 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X obj 36 168 cnv 15 430 30 empty empty empty 20 12 0 14 -200249 -66577 -0; -#X text 44 175 GridFlow 0.8.0; -#X obj 39 108 #out window; -#X text 35 -671 2.2 Image manipulation \, colour wrapping; -#X obj 12 -518 cnv 15 430 15 empty empty empty 20 12 0 14 -228992 -66577 -0; -#X text 18 -519 Example #1 colour wrapping; -#X msg 74 -491 240 0 0; -#X obj 179 -368 display; -#X obj 74 -457 # + 20; -#X obj 178 -423 #cast uint8; -#X obj 23 -368 display; -#X text 274 -429 <-- This transforms the grid into 8 bit values \, -that corresponds to the way that images are usually shown in images -and video; -#X text 42 -323 Example #2 clipping the values; -#X text 10 -545 Tip: Refer to glossary for more information on colour. -; -#X text 215 -132 <-- add value to all channels at once; -#X obj 39 37 shunt; -#X obj 69 11 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 1 1; -#X text 93 12 <-- switch to see clip's effect; -#X text 96 38 <-- directs the flow of data; -#X text 7 -643 When an image is represented as a grid every pixel value -will vary between 0 and 255 Color wrapping occurs when the result of -the operation on the pixel value would be higher than 255 Values above -255 are counted from 0 For example: if a pixel has a red value of 240 -and 20 is added to it \, you get 5 instead of displaying 260 (240 + -20 - 255 = 5); -#X text 451 -583 aks matju to fix bug in [display]'s display; -#X text 32 -301 The [#clip] object is used with numops in order to -set an lower and upper range to pixel values in order to eliminate -color wrapping (those nifty 60s effects).; -#X text 288 -70 <-- drag to add value to specific channel; -#X text 163 -206 remember to load the image and strat the metro; -#X connect 1 0 4 0; -#X connect 2 0 1 0; -#X connect 3 0 4 1; -#X connect 4 0 26 0; -#X connect 5 0 8 0; -#X connect 6 0 13 0; -#X connect 8 0 1 0; -#X connect 9 0 4 1; -#X connect 17 0 19 0; -#X connect 19 0 20 0; -#X connect 19 0 21 0; -#X connect 20 0 18 0; -#X connect 26 0 13 0; -#X connect 26 1 6 0; -#X connect 27 0 26 1; diff --git a/externals/gridflow/doc/tutorials/grid-intro.pd b/externals/gridflow/doc/tutorials/grid-intro.pd deleted file mode 100755 index e3aa53b8..00000000 --- a/externals/gridflow/doc/tutorials/grid-intro.pd +++ /dev/null @@ -1,10 +0,0 @@ -#N canvas 0 0 476 213 10; -#X text 29 30 GridFlow is a plug-in for PureData that introduces the -frid (#) data type into the PD environment. GridFlow allows you to -work with live video \, still images and video files in a rel-time -environment.; -#X text 32 97 This section deals with the particular objects related -to GridFlow. GridFlow uses the usual PD "control" objects \, as well -as a set of GridFlow specific objects. Before we get into the tutorials -we will explain the grid "#" \, the most important concept in GridFlow. -; diff --git a/externals/gridflow/doc/tutorials/probably_not_good_2-3-0-1-image-modification-1-numop-all-in-one.pd b/externals/gridflow/doc/tutorials/probably_not_good_2-3-0-1-image-modification-1-numop-all-in-one.pd deleted file mode 100755 index a743e82d..00000000 --- a/externals/gridflow/doc/tutorials/probably_not_good_2-3-0-1-image-modification-1-numop-all-in-one.pd +++ /dev/null @@ -1,123 +0,0 @@ -#N canvas 0 0 977 630 10; -#X obj 17 -114 #out window; -#X obj 43 -174 bng 15 250 50 0 empty empty empty 0 -6 0 8 -24198 -1 --1; -#X obj 17 -143 #in; -#X msg 17 -205 open b001.jpg; -#X obj 507 -245 cnv 15 185 150 empty empty empty 20 12 0 14 -228992 --66577 0; -#X obj 529 -205 bng 15 250 50 0 empty empty empty 0 -6 0 8 -24198 -1 --1; -#X obj 515 -166 #in; -#X msg 515 -238 open b001.jpg; -#X obj 555 -167 hsl 128 15 0 255 0 0 empty empty empty -2 -6 0 8 -260818 --1 -1 0 1; -#X obj 515 -110 s slider; -#X obj 515 -138 # + 1; -#X text 11 -499 Numeric Operators (numop): transform an image or video -by applying a mathematical operation to each pixel value in the grid. -; -#X text 12 -445 To transform a grid (in this case an image) using numop -\, it must first be given an argument (a number value) in order to -affect a pixel value. The examples here show you the three methods -that can be used to give the numop an argument.; -#X obj 3 -643 cnv 15 430 15 empty empty empty 20 12 0 14 -228992 -66577 -0; -#X obj 3 -678 cnv 15 970 30 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X text 10 -618 GridFlow performs high level grid processing \; in -other words its main function is the manipulation of images and video. -There are several ways to madify images in GridFlow \, some are very -basic while others are more advanced (and are saved for the intermediate -tutorials.) In this section we will introduce some very basic functions -of the numeric operator \, one of the most common methods used for -image transformation.; -#X obj 155 -220 cnv 15 130 150 empty empty empty 20 12 0 14 -228992 --66577 0; -#X obj 220 -181 bng 15 250 50 0 empty empty empty 0 -6 0 8 -24198 -1 --1; -#X obj 174 -152 #in; -#X msg 174 -213 open b001.jpg; -#X obj 199 -124 cnv 15 25 17 empty empty empty 20 12 0 14 -241291 -66577 -0; -#X obj 174 -124 # + 109; -#X obj 174 -95 s argument; -#X text 235 -125 <--- argument in this case is 109; -#X obj 13 -273 + 1; -#X floatatom 13 -297 5 0 0 0 - - -; -#X floatatom 13 -249 5 0 0 0 - - -; -#X text 54 -282 this is a basic numop. GridFlow has its own set of -numops that are applied to grids \, 3 dimensions \, on each channel. -; -#X obj 14 -357 cnv 15 70 15 empty empty empty 20 12 0 14 -260818 -66577 -0; -#X text 11 -672 2.4 Image manipulation; -#X text 11 -644 2.4.3 Numop; -#X obj 500 -559 cnv 15 130 150 empty empty empty 20 12 0 14 -228992 --66577 0; -#X obj 550 -523 bng 15 250 50 0 empty empty empty 0 -6 0 8 -24198 -1 --1; -#X obj 515 -484 #in; -#X msg 515 -553 open b001.jpg; -#X obj 515 -434 # +; -#X obj 515 -404 s message; -#X obj 562 -461 cnv 15 25 17 empty empty empty 20 12 0 14 -241291 -66577 -0; -#X obj 562 -483 cnv 15 25 17 empty empty empty 20 12 0 14 -241291 -66577 -0; -#X obj 563 -439 cnv 15 25 17 empty empty empty 20 12 0 14 -241291 -66577 -0; -#X msg 562 -461 67; -#X msg 562 -483 2; -#X msg 563 -439 199; -#X text 596 -461 <--- messages used as arguments; -#X text 596 -486 <---; -#X text 596 -438 <---; -#X obj 764 -116 r argument; -#X obj 891 -91 #out window; -#X obj 842 -115 r message; -#X obj 911 -115 r slider; -#X obj 3 -67 cnv 15 970 30 empty empty empty 20 12 0 14 -200249 -66577 -0; -#X text 14 -57 GridFlow 0.8.0; -#N canvas 0 0 450 300 META 0; -#X restore 919 -60 pd META; -#X text 13 -357 Example #1; -#X text 12 -338 Shows you how to put an argument directly into the -numeric operator object.; -#X obj 507 -320 cnv 15 70 15 empty empty empty 20 12 0 14 -260818 -66577 -0; -#X obj 497 -629 cnv 15 70 15 empty empty empty 20 12 0 14 -260818 -66577 -0; -#X text 496 -628 Example #2; -#X text 506 -320 Example #3; -#X text 497 -608 Demonstrates how to send the numop an argument using -a message box. This method allows you to send the numop several different -arguments.; -#X text 507 -299 Introduces the use of the slider as a method to give -the numop an argument. The slider allows you to easily scroll through -a series of values.; -#X connect 1 0 2 0; -#X connect 2 0 0 0; -#X connect 3 0 2 0; -#X connect 5 0 6 0; -#X connect 6 0 10 0; -#X connect 7 0 6 0; -#X connect 8 0 10 1; -#X connect 10 0 9 0; -#X connect 17 0 18 0; -#X connect 18 0 21 0; -#X connect 19 0 18 0; -#X connect 21 0 22 0; -#X connect 24 0 26 0; -#X connect 25 0 24 0; -#X connect 32 0 33 0; -#X connect 33 0 35 0; -#X connect 34 0 33 0; -#X connect 35 0 36 0; -#X connect 40 0 35 1; -#X connect 41 0 35 1; -#X connect 42 0 35 1; -#X connect 46 0 47 0; -#X connect 48 0 47 0; -#X connect 49 0 47 0; diff --git a/externals/gridflow/doc/tutorials/probably_not_good_2-3-0-2.pd b/externals/gridflow/doc/tutorials/probably_not_good_2-3-0-2.pd deleted file mode 100644 index 18625731..00000000 --- a/externals/gridflow/doc/tutorials/probably_not_good_2-3-0-2.pd +++ /dev/null @@ -1,61 +0,0 @@ -#N canvas 58 0 665 421 10; -#X obj 29 -473 cnv 15 185 190 empty empty empty 20 12 0 14 -228992 --66577 0; -#X obj 37 -391 #in; -#X msg 37 -465 open b001.jpg; -#X obj 77 -382 hsl 128 15 0 255 0 0 empty empty empty -2 -6 0 8 -260818 --1 -1 0 1; -#X obj 37 -359 # + \$1; -#X obj 60 -439 tgl 15 0 empty empty empty 0 -6 0 8 -24198 -1 -1 0 1 -; -#X obj 37 -315 #clip; -#X obj 27 -634 cnv 15 430 15 empty empty empty 20 12 0 14 -228992 -66577 -0; -#X obj 60 -417 metro 33.3; -#X obj 278 -430 #pack 3; -#X obj 326 -455 hsl 128 15 0 255 0 0 empty empty empty -2 -6 0 8 -260818 --1 -1 0 1; -#X obj 326 -475 hsl 128 15 0 255 0 0 empty empty empty -2 -6 0 8 -260818 --1 -1 0 1; -#X obj 326 -495 hsl 128 15 0 255 0 0 empty empty empty -2 -6 0 8 -260818 --1 -1 0 1; -#X obj 286 -391 #color; -#X msg 269 -301 255 0 0; -#X text 336 -304 donner une liste changer couleurs; -#X obj 234 -245 #scale_by (8 8); -#X msg 235 -265 2 2 3 # 255 0 0 0 255 0 0 0 255 191 191 191; -#X obj 37 -273 s to_out_window; -#X text 29 -633 Example #4 the [#clip] object is used with numops in -order to set constraints on pixels to eliminate color wrapping. Colour -wrapping occurs when the individual pixel values in a grid exceed 255 -which results in of colour. GridFlow reads colours as values from 0 -(black) to 255 (white). Refer to glossary for more information on colour. -; -#X obj 23 -678 cnv 15 430 30 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X text 35 -671 2.4 Image manipulation; -#X obj 25 -102 cnv 15 430 30 empty empty empty 20 12 0 14 -200249 -66577 -0; -#X text 34 -94 GridFlow 0.8.0; -#X obj 253 -162 r to_out_window; -#X msg 505 -161 close; -#X msg 400 -164 open window; -#X obj 360 -127 #out window; -#X connect 1 0 4 0; -#X connect 2 0 1 0; -#X connect 3 0 4 1; -#X connect 4 0 6 0; -#X connect 5 0 8 0; -#X connect 6 0 18 0; -#X connect 8 0 1 0; -#X connect 9 0 4 1; -#X connect 10 0 9 2; -#X connect 11 0 9 1; -#X connect 12 0 9 0; -#X connect 13 0 4 1; -#X connect 14 0 4 1; -#X connect 16 0 4 1; -#X connect 17 0 16 0; -#X connect 24 0 27 0; -#X connect 25 0 27 0; -#X connect 26 0 27 0; diff --git a/externals/gridflow/doc/tutorials/pure-data-1.pd b/externals/gridflow/doc/tutorials/pure-data-1.pd deleted file mode 100755 index 7be2a91a..00000000 --- a/externals/gridflow/doc/tutorials/pure-data-1.pd +++ /dev/null @@ -1,71 +0,0 @@ -#N canvas 221 110 894 498 10; -#N canvas 0 22 450 300 this 0; -#X obj 192 128 inlet; -#X obj 192 171 outlet; -#X text 8 7 If you're looking at this you're just going to confuse -yourself!; -#X connect 0 0 1 0; -#X restore 499 380 pd this is an object; -#X text 509 358 <- This is a connection; -#X msg 499 319 10; -#X text 13 348 Objects are like filters \, they change the way messages -flow through them.; -#X text 13 153 You can think of a patch as plumbing. The way water -flows through the plumbing of your house \, messages flow through the -connections in your patch. Objects change the flow of the messages -to allow different things to happen. Messages always go into objects -at the top \, called the inlet \, and always come out at the bottom -\, called the outlet. In PD messages flow from top to bottom.; -#X text 458 236 This is a very simple example of a patch \, the message -"10" can be sent through the "pd this is an object" and can be seen -being passed out the outlet.; -#X floatatom 499 416 5 0 0 0 - - -; -#X text 539 415 <- This number box shows the float message; -#X text 553 334 and watch the output!; -#X obj 8 6 cnv 15 870 30 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X obj 8 46 cnv 15 430 15 empty empty empty 20 12 0 14 -179884 -66577 -0; -#X text 13 252 You can work with PD in two ways \, the first is in -"edit mode". Edit-mode is where you create your patch by adding objects -and the connections between them. "Run mode" is when you're done with -the construction of your patch \, and you wish to send messages through -it. In run-mode your cursor is an arrow (as it is right now since we -are in run-mode) \, in edit-mode your cursor is a pointing hand.; -#X text 458 136 Messages are what allow objects to communicate with -one and other. Messages can change the way an object acts \, and/or -express the work the object is doing. Messages come in different types. -They can contain words \, numbers and groups of these. The main types -of messages we will be dealing with are floats (numbers). You can click -on a message \, when in run-mode \, to send it through your patch. -; -#X obj 448 46 cnv 15 430 15 empty empty empty 20 12 0 14 -179884 -66577 -0; -#X obj 448 290 cnv 15 430 15 empty empty empty 20 12 0 14 -179884 -66577 -0; -#X obj 8 447 cnv 15 870 30 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X text 668 449 Copyright Ben Bogart 2005 \; (See COPYING.TXT for details) -; -#X text 12 20 DESCRIPTION: What is a patch? An object? A message?; -#N canvas 0 22 466 316 META 0; -#X text 12 5 CATEGORY: tutorial; -#X text 12 15 KEYWORDS: metaphor object message GUI introduction; -#X restore 16 453 pd META; -#X text 457 67 GUI objects allow you to interact with your PD patch -as it is running. They allow you to change what your patch is doing -without reconnecting the objects. The simplest GUI object is the "Message" -that simply contains a message you want to send in your patch.; -#X text 453 290 A patch that connects a GUI to an object to a second -GUI.; -#X text 531 320 <- This GUI sends a float message (click on it); -#X text 13 66 When working with PD you are dealing primarily with objects -\, GUI (Graphical User Interface) objects \, connections and messages. -These are the building blocks of PD programming. When you connect objects -\, GUI objects \, and messages you are creating a "patch". Patching -is making something complex out of smaller building blocks.; -#X text 13 46 The "patch" \, "objects" and "connections"; -#X text 453 46 "GUI objects" and "messages"; -#X text 12 8 1 Introduction to Pure-Data & its Metaphors; -#X connect 0 0 6 0; -#X connect 2 0 0 0; diff --git a/externals/gridflow/doc/tutorials/pure-data-2.pd b/externals/gridflow/doc/tutorials/pure-data-2.pd deleted file mode 100755 index 151af26f..00000000 --- a/externals/gridflow/doc/tutorials/pure-data-2.pd +++ /dev/null @@ -1,73 +0,0 @@ -#N canvas 197 100 899 548 10; -#X obj 8 6 cnv 15 870 30 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X obj 8 46 cnv 15 430 15 empty empty empty 20 12 0 14 -179884 -66577 -0; -#X obj 448 46 cnv 15 430 15 empty empty empty 20 12 0 14 -179884 -66577 -0; -#X obj 8 497 cnv 15 870 30 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X text 668 499 Copyright Ben Bogart 2005 \; (See COPYING.TXT for details) -; -#N canvas 0 22 470 320 META 0; -#X text 12 5 CATEGORY: tutorial; -#X text 12 15 KEYWORDS: GUI slider toggle number message introduction -; -#X restore 16 503 pd META; -#X text 12 20 DESCRIPTION: Message \, slider \, toggle \, bang and -number; -#X msg 93 145 hello world; -#X obj 93 168 print; -#X text 181 146 <- Click on this message; -#X text 18 74 Messages control the behavior of objects and it is the -objects that change what a patch does. The first object we're going -to learn is "print". All "print" does is print out the messages you -send it to the terminal:; -#X text 19 197 TIP: If you forget what an object does you can always -double-click (on a mac) or right-click (on a PC) and then choose "help". -; -#X text 19 250 In this tutorial we will use two different types of -objects: "objects" (of which "print" is an example) and GUI objects -\, (of which "message" is an example). GUI objects allow you to interact -with your patch \, control PD and change parameters of objects. We -are going to learn four types of GUI objects (but there are many more): -Slider \, Toggle \, Bang \, and Number.; -#X obj 76 355 hsl 300 30 0 127 0 0 empty empty This_is_a_HSlider_(Horizontal) -10 15 1 10 -262144 -1 -1 0 1; -#X obj 73 393 print; -#X text 21 421 This "hslider" is connected to the print object. This -way we can see what messages the "hslider" sends. Try clicking and -dragging in the Slider. You can change the scale (and other properties) -of some GUI Objects by double-clicking (mac) or right-clicking (pc) -and choosing "properties".; -#X text 13 46 The "message" and "hslider" GUI Objects:; -#X text 453 46 "toggle" \, "bang" \, "number"; -#X obj 519 176 tgl 30 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 -1; -#X obj 629 176 bng 30 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 --1; -#X obj 629 210 print Bang; -#X obj 519 210 print Toggle; -#X obj 739 210 print Number; -#X floatatom 739 192 5 0 0 0 - - -; -#X text 466 76 "slider" \, "toggle" and "number" all send messages -made up of floats (numbers). "bang" is a special case and it only sends -the message "bang". Below we're using an argument to the print object -that tags each message sent to the terminal. This way when we have -multiple "print" objects in one patch we can differenciate thier output. -; -#X text 465 268 "toggle" sends the message "1" or "0" \, "bang" always -sends "bang" and if you click and drag on the "number" you can see -it acts a lot like a Slider. With "number" you can also click once -\, and then type a number to send.; -#X text 467 335 TIP: You can send floating point numbers by holding -down the SHIFT key as you click and drag on the "number".; -#X text 467 375 There are other types of GUI objects not covered here. -See the guis-about.pd PDDP patch:; -#X text 12 8 2 PD Introduction - Some Useful GUI Objects in Pure-Data -; -#X connect 7 0 8 0; -#X connect 13 0 14 0; -#X connect 18 0 21 0; -#X connect 19 0 20 0; -#X connect 23 0 22 0; diff --git a/externals/gridflow/doc/tutorials/pure-data-3.pd b/externals/gridflow/doc/tutorials/pure-data-3.pd deleted file mode 100755 index 729b2dc7..00000000 --- a/externals/gridflow/doc/tutorials/pure-data-3.pd +++ /dev/null @@ -1,70 +0,0 @@ -#N canvas 261 121 900 544 10; -#X obj 8 6 cnv 15 870 30 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X obj 8 46 cnv 15 430 15 empty empty empty 20 12 0 14 -179884 -66577 -0; -#X obj 448 366 cnv 15 430 15 empty empty empty 20 12 0 14 -179884 -66577 -0; -#X obj 8 497 cnv 15 870 30 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X text 668 499 Copyright Ben Bogart 2005 \; (See COPYING.TXT for details) -; -#N canvas 0 22 474 324 META 0; -#X text 12 5 CATEGORY: tutorial; -#X text 12 15 KEYWORDS: patch first connecting placing place connect -; -#X restore 16 503 pd META; -#X text 12 20 DESCRIPTION: Using PD to create your first patch; -#X text 13 46 Adding Objects:; -#X text 19 75 In order to create a patch you need to first place objects -and GUI objects \, and second make connections between these objects. -To place an object you need to be in "edit-mode". You should now be -in run mode \, so please go to the "Edit" pull-down menu and choose -"Edit mode" at the bottom. You should see your cursor change from an -arrow to a pointing hand.; -#X text 19 175 SHORTCUT: You can press "Control" and "e" simultaneously -in order to toggle (switch) between edit and Run modes.; -#X obj 448 386 cnv 15 430 100 empty empty empty 20 12 0 14 -233017 --66577 0; -#X floatatom 506 406 5 0 0 0 - - -; -#X text 19 355 SHORTCUT: You can press "Control" and "3" simultaneously -in order to place a number. All shortcuts are listed next to the items -in the "Put" menu.; -#X text 453 366 Patch work area:; -#X text 19 215 Once you are in "edit-mode" you are now free to place -objects. To place an object go to the "Put" pull-down menu and choose -"Number". Once you have chosen this menu item you will see that a "number" -gui is attached to your mouse pointer. In order to place the number -into the patch move your pointer to the grey area to the right (in -the "Patch work area" -> Click once to release it from your mouse. -Note that the number is coloured blue. The blue colour shows that an -item in your patch is selected. To unselect any item simply click once -on the blank (white) space between items.; -#X obj 520 440 print; -#X obj 448 156 cnv 15 430 15 empty empty empty 20 12 0 14 -179884 -66577 -0; -#X text 453 156 Connecting Objects:; -#X text 19 411 Next we're going to place the familar "print" object -beneath the "number" GUI. Press "Control" and "1" to place an object -box. Again the object gets attached to your mouse and again click once -to place it in the patch area somewhere under the "number".; -#X text 459 41 While the number box is still selected (coloured blue) -you can see a flashing cursor. Type the word "print" into the object -box. The object will retain a dashed line while you type. In order -to create the object you simply need to unselect \, by clicking somewhere -outside the object. Note that once you have clicked to create the object -the dashed line turns solid and an inlet (small rectangle) gets drawn -around the word "print". The objects have now been created!; -#X text 459 185 All connections between objects in PD are created from -outlet to inlet (top to bottom). To start making a connection move -your hand-pointer over the outlet of the "number" gui. When over the -outlet your pointer will change to a circle. When you see the circle -press and hold the mouse button. As you drag (holding the mouse button -down) the pointer you see a line being drawn from the outlet to your -pointer. To attach this connection to another object drag your mouse -to an inlet of another object. The pointer will again change to a circle -and at this point you can release the mouse button. Once released the -objects are now connected! To play with your patch go back into run-mode -and click and drag on the number-box while watching the terminal.; -#X text 12 8 3 PD Introduction - Creating your first patch; -#X connect 11 0 15 0; diff --git a/externals/gridflow/doc/tutorials/pure-data-4.pd b/externals/gridflow/doc/tutorials/pure-data-4.pd deleted file mode 100755 index 4d38f41d..00000000 --- a/externals/gridflow/doc/tutorials/pure-data-4.pd +++ /dev/null @@ -1,87 +0,0 @@ -#N canvas 183 61 890 531 10; -#X obj 8 6 cnv 15 870 30 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X obj 8 96 cnv 15 430 15 empty empty empty 20 12 0 14 -179884 -66577 -0; -#X obj 8 487 cnv 15 870 30 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X text 668 489 Copyright Ben Bogart 2005 \; (See COPYING.TXT for details) -; -#N canvas 0 22 478 328 META 0; -#X text 12 5 CATEGORY: tutorial; -#X text 12 15 KEYWORDS: metro counter random; -#X restore 16 493 pd META; -#X text 12 20 DESCRIPTION: Learning "metro" \, "counter" & "random" -; -#X text 13 96 Using the "metro" object:; -#X text 21 47 In this section we will learn three new objects \, "metro" -\, "counter" \, and "random". Metro sends a bang at regular intervals -\, just like a metronome.; -#X obj 164 142 metro 250; -#X obj 164 123 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 -1; -#X obj 164 163 bng 15 100 50 0 empty empty empty 0 -6 0 8 -262144 -1 --1; -#X floatatom 222 123 5 0 0 0 - - -; -#X text 21 187 You can turn a Metro on and off by sending it a "1" -or "0" message. Because a toggle sends 0/1 messages \, we can simply -connect it directly. Metro also accepts an argument (words or numbers -wirtten after the object name). This argument is how fast the metro -should send out bangs (in milliseconds). You can always change the -speed of the metro by sending it number messages through the rightmost -inlet.; -#X obj 8 306 cnv 15 430 15 empty empty empty 20 12 0 14 -179884 -66577 -0; -#X text 13 306 Using the "random" object:; -#X text 21 277 For more info see the metro-help.pd patch.; -#X obj 168 385 bng 15 100 50 0 empty empty empty 0 -6 0 8 -262144 -1 --1; -#X obj 168 425 print; -#X obj 168 404 random 100; -#X floatatom 233 385 5 0 0 0 - - -; -#X text 20 327 The Random object returns a number between 0 and the -(number) argument when it receives a bang message in the leftmost inlet. -You can also change the upper limit by sending a message to the rightmost -inlet.; -#X obj 448 46 cnv 15 430 15 empty empty empty 20 12 0 14 -179884 -66577 -0; -#X text 453 46 Using the "random" object:; -#X obj 559 154 bng 15 100 50 0 empty empty empty 0 -6 0 8 -262144 -1 --1; -#X floatatom 590 154 3 1 3 0 - - -; -#X floatatom 621 174 3 0 0 0 - - -; -#X floatatom 652 194 3 0 0 0 - - -; -#X obj 652 234 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 --1; -#X floatatom 559 234 8 0 0 0 - - -; -#X obj 559 213 counter 0 10 1; -#X text 21 447 For more info see the random-help.pd patch.; -#X text 461 77 "counter" is simply an object that counts. It can count -up \, count down and count up and then down. Where it starts and where -it stops are all definable. This is the counter that in included with -Gem \, it is not compatible with other counter objects.; -#X text 461 274 The first argument for counter is the lower limit (number -to start counting at). The second is the upper limit to count to. The -third argument is the direction in which to count. "1" means forward -\, "2" means backward and "3" means forward and then backward. You -can also use the three rightmost inlets to change the behaviour of -counter. The rightmost inlet is the upper limit \, the second right-most -the lower limit \, and the third right-most as the direction. The rightmost -outlet sends out a bang message when the counter loops.; -#X text 681 193 Rightmost inlet; -#X text 651 173 Second Rightmost inlet; -#X text 621 153 Third Rightmost inlet; -#X text 461 407 For more info see the counter-help.pd patch.; -#X text 12 8 4 Introduction to PD - More objects; -#X connect 8 0 10 0; -#X connect 9 0 8 0; -#X connect 11 0 8 1; -#X connect 16 0 18 0; -#X connect 18 0 17 0; -#X connect 19 0 18 1; -#X connect 23 0 29 0; -#X connect 24 0 29 1; -#X connect 25 0 29 2; -#X connect 26 0 29 3; -#X connect 29 0 28 0; -#X connect 29 1 27 0; diff --git a/externals/gridflow/doc/tutorials/pure-data-5.pd b/externals/gridflow/doc/tutorials/pure-data-5.pd deleted file mode 100755 index dc357bb1..00000000 --- a/externals/gridflow/doc/tutorials/pure-data-5.pd +++ /dev/null @@ -1,108 +0,0 @@ -#N canvas -235 0 891 673 10; -#X obj 8 6 cnv 15 870 30 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X obj 8 46 cnv 15 430 15 empty empty empty 20 12 0 14 -179884 -66577 -0; -#X obj 8 627 cnv 15 870 30 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X text 668 629 Copyright Ben Bogart 2005 \; (See COPYING.TXT for details) -; -#N canvas 0 22 482 332 META 0; -#X text 12 5 CATEGORY: tutorial; -#X text 12 15 KEYWORDS: send receive netsend netreceive cordless communication -network TCP/IP UDP internet; -#X restore 16 633 pd META; -#X obj 448 46 cnv 15 430 15 empty empty empty 20 12 0 14 -179884 -66577 -0; -#X text 12 20 DESCRIPTION: Communicating between objects w/out connections -; -#X text 13 46 "send" & "receive"; -#X obj 86 223 send invisible-link; -#X obj 86 248 receive invisible-link; -#X floatatom 86 273 5 0 0 0 - - -; -#X msg 86 198 10; -#X floatatom 266 273 5 0 0 0 - - -; -#X floatatom 266 203 5 0 0 0 - - -; -#X obj 266 223 s invisible-link2; -#X obj 266 248 r invisible-link2; -#X obj 102 483 r send-from-number; -#X floatatom 102 508 5 0 0 0 - - -; -#X floatatom 102 462 5 0 0 0 - - send-from-number; -#X floatatom 242 462 5 0 0 0 - - -; -#X obj 242 483 s send-to-number2; -#X floatatom 242 508 5 0 0 0 - send-to-number2 -; -#X text 19 385 Note: Many GUI objects have built-in send and receive -objects. The tag names are specified in the GUI properties. Remeber -to get the GUI properties Right-Click or Control-Click on the GUI object -and select "Properties".; -#X text 453 46 "netsend" & "netreceive"; -#X text 19 575 For more info see: send-help.pd \, receive-help.pd \, -netsend-help.pd and netreceive-help.pd; -#X text 459 75 While "send" and "receive" allow you to send messages -without connecting objects with patch-cords "netsend" and "netreceive" -do the same but communicate between objects using TCP/IP the internet -protocol. This means that you can send messages from a patch running -on one machine to a second patch running on a second machine on the -same network \, or even over the internet.; -#X text 19 545 You can also send messages using UDP rather than TCP/IP. -See "more info" below for details.; -#X obj 589 292 netreceive 8001; -#X text 459 185 The first argument of "netreceive" is the port the -netrecive should listen on. "netsend" can connect to this port from -other machines. "netreceive" has two outlets. The first outlet sends -out the messages it receives over network \, and the second argument -send a "1" when netsend is connected and "0" when netsend disconnects. -; -#X obj 589 318 print; -#X obj 689 318 tgl 16 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 -1; -#X obj 503 563 netsend; -#X text 459 355 "netsend" is controlled using three messages: "connect" -\, "disconnect" and "send". "connect" has two arguments \, the host -or IP and the port number you wish to connect to. There needs to be -a "netreceive" listening on the port you connect to. "disconnect" drops -the current connection. "send" sends any arguments to the "netreceive" -over the network. The single outlet of "netsend" prints "1" when a -connection is made and "0" when the connection is lost.; -#X obj 503 586 tgl 16 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 -1; -#X msg 503 486 connect localhost 8001; -#X msg 516 511 disconnect; -#X msg 525 537 send hello from the internet; -#X text 602 510 Close connection; -#X text 673 486 Connect to this machine; -#X text 733 536 Send message; -#X text 19 75 In some cases you will want to send messages without -connecting objects. You may be sending one message to many different -places that would make connections too laborious. "send" and "receive" -both have a single argument. This argument is the tag name for the -communication. "send" will always send any messages it gets in it inlet -to any number of "receive" objects in a patch with the same tag name. -"s" and "r" can be used in the place of "send" and "receive".; -#X obj 86 336 s broadcast; -#X floatatom 86 317 5 0 0 0 - - -; -#X obj 176 316 r broadcast; -#X floatatom 176 339 5 0 0 0 - - -; -#X obj 266 316 r broadcast; -#X floatatom 266 339 5 0 0 0 - - -; -#X text 12 8 5 Intermediate Pure-Data - send and receive; -#X msg 585 598 send \$1; -#X floatatom 584 567 5 0 0 0 - - -; -#X text 651 596 send variables to another computer; -#X connect 9 0 10 0; -#X connect 11 0 8 0; -#X connect 13 0 14 0; -#X connect 15 0 12 0; -#X connect 16 0 17 0; -#X connect 19 0 20 0; -#X connect 27 0 29 0; -#X connect 27 1 30 0; -#X connect 31 0 33 0; -#X connect 34 0 31 0; -#X connect 35 0 31 0; -#X connect 36 0 31 0; -#X connect 42 0 41 0; -#X connect 43 0 44 0; -#X connect 45 0 46 0; -#X connect 48 0 31 0; -#X connect 49 0 48 0; diff --git a/externals/gridflow/doc/tutorials/pure-data-6.pd b/externals/gridflow/doc/tutorials/pure-data-6.pd deleted file mode 100755 index 01e6dcd7..00000000 --- a/externals/gridflow/doc/tutorials/pure-data-6.pd +++ /dev/null @@ -1,92 +0,0 @@ -#N canvas 304 98 891 675 10; -#X obj 8 6 cnv 15 870 30 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X obj 8 627 cnv 15 870 30 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X text 668 629 Copyright Ben Bogart 2005 \; (See COPYING.TXT for details) -; -#N canvas 0 22 486 336 META 0; -#X text 12 5 CATEGORY: tutorial; -#X text 12 15 KEYWORDS: message comma semicolon dollersign receive -list; -#X restore 16 633 pd META; -#X text 12 20 DESCRIPTION: Advanced uses for the message object; -#X text 19 45 In Pure-Data there are two distinct concepts with the -name "message". Messages are the data that gets send in PD from object -to object. There is also the Messsage object that contains a message -you want to send. The message object is the first GUI object we covered -in this tutorial. The message is not the only way to send messages -in a patch \, since all GUI objects also send messages. So what makes -the message object different? The message object can sent messages -of any type \, where a number for example can only send float (number) -messages. There are a number of powerful features in the message object. -We are familar with the "usual" way of using the message object:; -#X msg 163 208 hello; -#X msg 212 208 bye; -#X obj 196 238 print messages; -#X text 459 556 Note: It is a very common mistake to confuse the message -object with an object box. The object box is framed in a rectangle. -The message object has a notch removed from the right edge.; -#X obj 106 385 print messages; -#X msg 106 358 hello \, bye; -#X text 19 305 You can send multiple messages in succession from a -single message box by using a comma " \, " between the messages. The -messages get send from left to right.; -#X obj 8 276 cnv 15 430 15 empty empty empty 20 12 0 14 -179884 -66577 -0; -#X obj 8 416 cnv 15 430 15 empty empty empty 20 12 0 14 -179884 -66577 -0; -#X text 13 416 Semicolon in message boxes; -#X text 13 276 Comma in message boxes; -#X text 19 445 Just like you can specify receive tags directly in GUI -objects you can also use a message box to send a message directly to -a particular "receive".; -#X obj 34 536 r myreceive; -#X floatatom 34 560 5 0 0 0 - - -; -#X text 189 360 Click to send both messages; -#X text 136 502 send "10" to receive tag "myreceive"; -#X text 19 585 For more info see: message-help.pd 04.messages.pd 10.more.messages.pd -; -#X msg 34 498 \; myreceive 10; -#X obj 448 46 cnv 15 430 15 empty empty empty 20 12 0 14 -179884 -66577 -0; -#X text 453 46 Dollarsign in message boxes; -#X msg 534 175 \$1 \$1 \$1; -#X msg 534 154 10; -#X text 459 75 In messages there are placeholders that start with "$". -These placeholders are variables that get replaced with messages you -send to the message box. In the example below we have a single message -"10". Each "$1" in the message box gets replaced with the message "10". -; -#X text 601 175 \$1 placeholder gets replaced; -#X text 570 154 message sent to message box; -#X msg 534 304 list 1 2; -#X text 600 304 a list with items "1" and "2"; -#X msg 534 325 \$2 \$1; -#X text 584 325 \$1 becomes "1" and \$2 becomes "2"; -#X obj 534 347 print reverse-list; -#X text 459 235 The "$1" placeholder refers to the first element of -the list the message box gets from its inlet. We can use this to use -a message box to reverse the order of elements (called atoms) in a -list.; -#X text 459 385 In this case the list "1 2" has two elements (called -atoms) when this list gets sent to the inlet of a message box its atoms -are available to the message box through the $ variables. \$1 gets -replaced with the first element \, \$2 the second and so on.; -#X obj 534 197 print repeated-message; -#X obj 480 511 print complex-message; -#X msg 480 468 list Fred Marcus; -#X text 607 468 a list with two symbol atoms; -#X msg 480 489 Hi \$1. \, Ya know \$2?; -#X text 623 489 Becomes: "Hi Fred \, Ya know Marcus?"; -#X text 12 8 6 Intermediate Pure-Data - Using the message object; -#X connect 6 0 8 0; -#X connect 7 0 8 0; -#X connect 11 0 10 0; -#X connect 18 0 19 0; -#X connect 26 0 38 0; -#X connect 27 0 26 0; -#X connect 31 0 33 0; -#X connect 33 0 35 0; -#X connect 40 0 42 0; -#X connect 42 0 39 0; diff --git a/externals/gridflow/doc/tutorials/pure-data-7.pd b/externals/gridflow/doc/tutorials/pure-data-7.pd deleted file mode 100755 index 0d8360ec..00000000 --- a/externals/gridflow/doc/tutorials/pure-data-7.pd +++ /dev/null @@ -1,106 +0,0 @@ -#N canvas 280 89 936 678 10; -#X obj 8 6 cnv 15 870 30 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X obj 8 627 cnv 15 870 30 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X text 668 629 Copyright Ben Bogart 2005 \; (See COPYING.TXT for details) -; -#N canvas 0 22 482 332 META 0; -#X text 12 5 CATEGORY: tutorial; -#X text 12 15 KEYWORDS: send receive netsend netreceive cordless communication -network TCP/IP UDP internet; -#X restore 16 633 pd META; -#X obj 8 266 cnv 15 430 15 empty empty empty 20 12 0 14 -179884 -66577 -0; -#X text 13 266 "pack" object; -#X msg 96 543 2; -#X msg 45 521 1; -#X obj 45 588 print mylist; -#X text 12 20 DESCRIPTION: Using pack \, unpack and route with lists -; -#X text 19 75 In the Pure-Data introduction we discussed the three -different types of data in PD. These are floats (numbers) \, symbols -(words) and lists (groups of floats and words). Floats and symbols -are known as atoms. Atoms are single elements \, they do not contain -spaces or other special characters. Atoms can be grouped into lists. -; -#X obj 8 46 cnv 15 430 15 empty empty empty 20 12 0 14 -179884 -66577 -0; -#X text 13 46 What is a list?; -#X msg 145 216 list one two three; -#X obj 145 239 print this is a list; -#X text 19 155 Lists can be created in a number of ways \, but we are -going to cover the two most common ways of creating lists. The most -simple way to create a list is to type the list into a message box -starting with the word (symbol) "list":; -#X text 19 295 The "pack" object is the second most common way to create -a list. "pack" allows you to take individual atoms and combine them -into a single list. "pack" accepts a number of arguments. Each argument -defines the type of atom in the resulting list. The "f" argument creates -an inlet that accepts float atoms. The "s" argument creates an inlet -accepts symbol atoms. The number of arguments is the same as the number -of elements in the resultant list.; -#X text 19 405 "pack" is the first object we are going to learn that -has a "cold" inlet. Some control objects in PD have "hot" and "cold" -inlets. When you send a message to a "cold" inlet the object does not -generate any output (it does not send any messages). When "hot" inlets -get messages then the object does generate output. The leftmost inlet -is always the "hot" inlet and all other inlets are "cold" or in some -cases all inlets are "hot"; -#X text 75 521 sets the first atom "1" and then sends the list; -#X text 132 543 sets the second atom "2"; -#X obj 45 566 pack f f; -#X text 459 45 Note that if you do not set the second and onwards atoms -via thier "cold" inlets and you generate the list by setting the first -atom via the "hot" inlet then all float atoms will be set to "0" and -all symbol atoms will be set to "symbol" in the resultant list.; -#X obj 448 126 cnv 15 430 15 empty empty empty 20 12 0 14 -179884 -66577 -0; -#X text 453 126 "unpack" object; -#X obj 596 241 unpack f f f; -#X msg 596 219 list 1 2 3; -#X floatatom 596 294 5 0 0 0 - - -; -#X floatatom 635 277 5 0 0 0 - - -; -#X floatatom 675 262 5 0 0 0 - - -; -#X text 639 293 First Atom; -#X text 678 277 Second Atom; -#X text 718 261 Third Atom; -#X text 459 156 The "unpack" object is very similar to the "pack" object -except it works in reverse. "unpack" takes a list and splits it up -into a number of atoms. It uses the same arguments as "pack" but generates -outlets rather than inlets.; -#X obj 448 319 cnv 15 430 15 empty empty empty 20 12 0 14 -179884 -66577 -0; -#X text 453 319 "route" object; -#X text 459 349 The "route" object sorts lists based on the first atom -of the list. It as a number of float or symbol arguments. For each -argument "route" creates one outlet. "route" also creates one additional -rightmost outlet for rejections. For each list route gets it compares -the first atom to all its arguments. If the first atom matches one -of the arguments it the rest of the list \, without the first atom -\, gets send through the outlet corresponding to that argument. If -the first atom of the list does not match any arguments the entire -list \, including the first atom \, gets sent out the rejection outlet. -; -#X msg 688 493 rejection 1; -#X obj 685 553 print rejection; -#X msg 538 493 o1 2; -#X msg 613 493 o2 3; -#X obj 613 531 route o1 o2; -#X obj 613 593 print o1; -#X obj 649 573 print o2; -#X text 12 8 7 Intermediate Pure-Data - Working with lists; -#X connect 6 0 20 1; -#X connect 7 0 20 0; -#X connect 13 0 14 0; -#X connect 20 0 8 0; -#X connect 24 0 26 0; -#X connect 24 1 27 0; -#X connect 24 2 28 0; -#X connect 25 0 24 0; -#X connect 36 0 40 0; -#X connect 38 0 40 0; -#X connect 39 0 40 0; -#X connect 40 0 41 0; -#X connect 40 1 42 0; -#X connect 40 2 37 0; diff --git a/externals/gridflow/doc/tutorials/pure-data-8.pd b/externals/gridflow/doc/tutorials/pure-data-8.pd deleted file mode 100755 index aa95c087..00000000 --- a/externals/gridflow/doc/tutorials/pure-data-8.pd +++ /dev/null @@ -1,89 +0,0 @@ -#N canvas 238 94 891 621 10; -#X obj 8 6 cnv 15 870 30 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X obj 8 577 cnv 15 870 30 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X text 668 579 Copyright Ben Bogart 2005 \; (See COPYING.TXT for details) -; -#N canvas 0 22 482 332 META 0; -#X text 12 5 CATEGORY: tutorial; -#X text 12 15 KEYWORDS: send receive netsend netreceive cordless communication -network TCP/IP UDP internet; -#X restore 16 583 pd META; -#X obj 8 46 cnv 15 430 15 empty empty empty 20 12 0 14 -179884 -66577 -0; -#X text 12 20 DESCRIPTION: nested patches using abstractions & subpatches -; -#X text 13 46 What is an abstraction?; -#X text 23 76 Since objects are very simple in Pure-Data doing complex -tasks often leads to very complex patches. Often it is useful to use -the same bit of patching you do for one project for another. Pure-Data -has a facility to "nest" \, that is to take a number of objects in -a collection and place them into a group that looks like a single object. -This is also handy to make a complex patch look simple and clear by -hiding the nitty-gritty details. There are two types of these collections -\, the subpatch and the abstraction.; -#X obj 8 216 cnv 15 430 15 empty empty empty 20 12 0 14 -179884 -66577 -0; -#X text 13 216 The subpatch; -#X text 23 246 Subpatches are collections of objects that get "hidden" -inside a container that looks like a normal PD object. Subpatches are -created by creating an object box \, and typing the word "pd" followed -by whatever you want to describe the contents of the subpatch. Subpatches -are saved at the same time as the "parent" patch. Here is a subpatch: -; -#N canvas 0 22 460 310 subpatch 0; -#X obj 30 34 inlet; -#X obj 30 77 outlet; -#X text 99 35 This is inside the subpatch.; -#X connect 0 0 1 0; -#X restore 178 359 pd subpatch; -#X floatatom 178 336 5 0 0 0 - - -; -#X floatatom 178 387 5 0 0 0 - - -; -#X text 23 416 To open a subpatch simply click once on the subpatch -in run-mode or control-click (or right-click) and select open in edit-mode. -Both subpatches and abstractions communicate with the parent patch -through special objects called "inlet" and "outlet" for each "inlet" -in a subpatch or abstraction an inlet is created on the subpatch. This -example has one inlet and one outlet.; -#X obj 448 46 cnv 15 430 15 empty empty empty 20 12 0 14 -179884 -66577 -0; -#X text 453 46 The abstraction; -#X text 463 76 Abstractions are very similar to subpatches. They are -collections of objects that are "hidden" inside PD objects \, and they -both use "inlet" and "outlet" objects to communicate with the parent -patch. The difference between subpatches and abstractions is that abstractions -are saved in a separate file from the parent. This means when you save -the parent patch containing abstractions the abstractions are not saved. -The abstractions are saved as separate files so that they can be used -in multiple patches. A second feature that exists in abstractions and -not in subpatches is the ability to use arguments. "send" and "receive" -can be used inside abstractions to send data without connections (patch-cords). -; -#X obj 682 253 r output; -#X obj 682 277 print; -#X obj 564 253 abstraction 1 2; -#X text 463 316 To create an abstraction all you need to do is create -a new PD patch ("File" -> "New"). Create the contents of the abstraction -and then save it in the same directory as the patch you want to use -it in. In this case the abstraction is saved as "abstraction.pd". Once -saved you can easily embed the abstraction simply by typing its name -\, without the .pd extension \, into an object box.; -#X obj 448 416 cnv 15 430 15 empty empty empty 20 12 0 14 -179884 -66577 -0; -#X text 453 416 Dollarsign in object boxes; -#X text 463 446 If you open the above example you will see that the -familiar "pack" object has a number of "$" arguments. The "$" arguments -in a object box differ entirely from the "$" used in message objects. -When you use a "$" in an object box inside an abstraction the values -get replaced with the arguments to that abstraction. In the case above -the "pack" object's first argument "$1" gets replaced with the first -argument of the abstraction "1" "$2" gets replaced with the second -argument "2".; -#X text 23 536 For more info see: 12.PART2.subpatch.pd 14.dollersign.pd -; -#X text 12 8 8 Intermediate Pure-Data - Using abstractions and subpacthes -; -#X connect 11 0 13 0; -#X connect 12 0 11 0; -#X connect 18 0 19 0; diff --git a/externals/gridflow/doc/tutorials/pure-data-9.pd b/externals/gridflow/doc/tutorials/pure-data-9.pd deleted file mode 100755 index e5188ee0..00000000 --- a/externals/gridflow/doc/tutorials/pure-data-9.pd +++ /dev/null @@ -1,43 +0,0 @@ -#N canvas 291 108 450 562 10; -#X obj 8 6 cnv 15 430 30 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X obj 8 517 cnv 15 430 30 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X text 228 519 Copyright Ben Bogart 2005 \; (See COPYING.TXT for details) -; -#N canvas 0 22 486 336 META 0; -#X text 12 5 CATEGORY: tutorial; -#X text 12 15 KEYWORDS: GOP graph parent abstraction nesting ui interface -; -#X restore 16 523 pd META; -#X obj 8 46 cnv 15 430 15 empty empty empty 20 12 0 14 -179884 -66577 -0; -#X text 12 20 DESCRIPTION: Using Graph on Parent abstractions; -#X text 13 46 What is Graph on Parent?; -#X text 13 76 Graph on Parent is a feature of PD that allows you to -show the GUI objects contained in an abstraction on the parent patch. -This means that you can create abstractions that not only include a -collection of objects but can also include a user interface. To use -graph on parent you simply need to create an abstraction the usual -way but before saving it you need should Control-Click (Right-Click) -on the background (white area) in the abstraction and choose "properties". -From the properties menu check the "graph on parent" option. Now when -you save the patch and embed it in a second patch all GUI objects will -be visible.; -#X obj 154 250 gop_abstraction; -#X text 13 331 In this simple example there is only one GUI object -\, a slider. Inside the abstraction the slider is connected to an inlet -and an outlet. If you move the slider you can see the result in the -outlet. If you set a value in the inlet with the number GUI you can -see the position of the slider change.; -#X floatatom 154 231 5 0 0 0 - - -; -#X floatatom 154 297 5 0 0 0 - - -; -#X text 13 421 Note you can change the size of the abstractions bounding -box by Control-Click (Right-Click) on the abstraction and choose "properties". -The size of the bounding-box is specified by the "screen width" and -"screen height".; -#X text 13 487 For more info see:; -#X text 12 8 9 Intermediate Pure-Data - Using GUI's in abstractions -; -#X connect 8 0 11 0; -#X connect 10 0 8 0; diff --git a/externals/gridflow/doc/tutorials/randomly-select-an-image.pd b/externals/gridflow/doc/tutorials/randomly-select-an-image.pd deleted file mode 100755 index 5817aa32..00000000 --- a/externals/gridflow/doc/tutorials/randomly-select-an-image.pd +++ /dev/null @@ -1,53 +0,0 @@ -#N canvas 417 0 446 428 10; -#X text 6 15 You can open multiple images in the same window. To do -so you connect the outputs from the images to the inlet of the out -window.; -#X obj 136 295 #out window; -#X obj 65 198 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 --1; -#X obj 28 232 #in; -#X msg 28 160 open b001.jpg; -#X obj 188 197 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 --1; -#X obj 151 231 #in; -#X msg 151 159 open r001.jpg; -#X obj 301 196 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 --1; -#X obj 264 230 #in; -#X msg 264 158 open g001.jpg; -#X obj 7 -37 cnv 15 430 15 empty empty empty 20 12 0 14 -228992 -66577 -0; -#X text 10 -37 What is a grid?; -#X obj 8 320 cnv 15 430 30 empty empty empty 20 12 0 14 -200249 -66577 -0; -#X text 16 327 GridFlow 0.8.0; -#X obj 7 -72 cnv 15 430 30 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X text 12 -73 2 Images; -#X text 14 -59 Description: opening multiple images from one window. -; -#X obj 56 115 random 3; -#X floatatom 195 81 5 0 0 0 - - -; -#X obj 3 55 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1; -#X obj 163 112 sel 0; -#X obj 226 127 sel 1; -#X obj 304 115 sel 2; -#X obj 55 92 metro 1000; -#X connect 2 0 3 0; -#X connect 3 0 1 0; -#X connect 4 0 3 0; -#X connect 5 0 6 0; -#X connect 6 0 1 0; -#X connect 7 0 6 0; -#X connect 8 0 9 0; -#X connect 9 0 1 0; -#X connect 10 0 9 0; -#X connect 18 0 19 0; -#X connect 19 0 21 0; -#X connect 19 0 22 0; -#X connect 19 0 23 0; -#X connect 20 0 24 0; -#X connect 21 0 2 0; -#X connect 22 0 5 0; -#X connect 23 0 8 0; -#X connect 24 0 18 0; diff --git a/externals/gridflow/doc/tutorials/title-page-pd-gf-in-one.pd b/externals/gridflow/doc/tutorials/title-page-pd-gf-in-one.pd deleted file mode 100755 index 18798314..00000000 --- a/externals/gridflow/doc/tutorials/title-page-pd-gf-in-one.pd +++ /dev/null @@ -1,129 +0,0 @@ -#N canvas 18 0 762 514 10; -#X obj 102 -15 cnv 15 430 50 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X obj 102 66 cnv 1 430 430 empty empty empty 20 12 0 14 -233017 -66577 -0; -#X obj 102 98 cnv 1 430 2 empty empty empty 20 12 0 14 -228992 -66577 -0; -#X obj 102 73 cnv 1 430 2 empty empty empty 20 12 0 14 -228992 -66577 -0; -#X obj 108 66 cnv 1 2 430 empty empty empty 20 12 0 14 -228992 -66577 -0; -#X obj 516 67 cnv 1 2 430 empty empty empty 20 12 0 14 -228992 -66577 -0; -#X obj 102 158 cnv 1 430 2 empty empty empty 20 12 0 14 -228992 -66577 -0; -#X obj 102 182 cnv 1 430 2 empty empty empty 20 12 0 14 -228992 -66577 -0; -#X text 152 114 1.1 What is a grid?; -#X obj 142 456 cnv 15 300 30 empty empty empty 20 12 0 14 -228992 -66577 -0; -#X text 154 461 Stephanie Brodeur & Darsha Hewitt 2005; -#X obj 102 36 cnv 15 430 30 empty empty empty 20 12 0 14 -228992 -66577 -0; -#X obj 214 -6 cnv 15 100 17 empty empty empty 20 12 0 14 -228992 -66577 -0; -#X obj 214 -6 GridFlow 0.8.0; -#X obj 102 -15 cnv 1 430 1 empty empty empty 20 12 0 14 -66577 -66577 -0; -#X obj 102 34 cnv 1 430 1 empty empty empty 20 12 0 14 -66577 -66577 -0; -#X obj 315 8 cnv 15 63 17 empty empty empty 20 12 0 14 -228992 -66577 -0; -#X obj 314 8 Tutorials; -#X obj 102 65 cnv 1 430 1 empty empty empty 20 12 0 14 -66577 -66577 -0; -#X obj 102 495 cnv 1 430 1 empty empty empty 20 12 0 14 -66577 -66577 -0; -#X text 140 79 1; -#X obj 158 78 Introduction to Grids; -#X text 152 130 1.2 How to create grid.; -#X text 152 192 2.1 How does GridFlow understand images?; -#X text 141 164 2; -#X obj 162 161 Introduction to Images; -#X text 152 211 2.2 Opening an image.; -#X text 152 230 2.3 Different options on how to open an image.; -#X text 178 247 2.3.1 Opening different images in one window.; -#X text 178 264 2.3.2 Opening images using send and receive.; -#X obj 102 356 cnv 1 430 2 empty empty empty 20 12 0 14 -228992 -66577 -0; -#X obj 102 380 cnv 1 430 2 empty empty empty 20 12 0 14 -228992 -66577 -0; -#X text 141 362 3; -#X obj 162 359 Introduction to Video; -#X text 178 300 2.4.1 Resizing an image.; -#X text 151 284 2.4 Image manipulation.; -#X text 178 315 2.4.2 Greyscale.; -#X text 178 330 2.4.3 numop.; -#X text 149 394 4 Introduction to live feed; -#X text 150 422 5 Putting it all together; -#X obj -401 -18 cnv 15 455 30 empty empty empty 20 12 0 14 -233017 --66577 0; -#X obj -398 898 cnv 15 870 30 empty empty empty 20 12 0 14 -233017 --66577 0; -#X text -393 898 Copyright Ben Bogart 2005 \; (See COPYING.TXT for -details); -#X text -397 -11 Welcome to Pure-Data...; -#X obj -401 22 cnv 15 455 15 empty empty empty 20 12 0 14 -179884 -66577 -0; -#X text -396 22 What is Pure-Data (aka PD)?; -#X text -381 50 Pure-Data is an open-source patching environment for -multi-media (audio+image). Pure-Data is a programming language where -you create relationships by connecting visual boxes (rather than typing -complex commands). This lecture is separated into three sections: An -Introduction to Pure-Data \, An introduction to Gem and intermediate -PD and Gem.; -#X obj -381 152 cnv 15 430 120 empty empty empty 20 12 0 14 -179884 --66577 0; -#X obj -367 174 pddp_open pure-data-1; -#X obj -367 197 pddp_open pure-data-2; -#X obj -367 220 pddp_open pure-data-3; -#X obj -367 243 pddp_open pure-data-4; -#X text -192 174 Pure-Data Introduction; -#X text -192 197 GUI Objects for Interaction; -#X text -192 220 Creating your first patch; -#X text -192 243 Control: metro \, random & counter; -#X obj -382 376 cnv 15 430 145 empty empty empty 20 12 0 14 -179884 --66577 0; -#X obj -378 580 cnv 15 430 145 empty empty empty 20 12 0 14 -179884 --66577 0; -#X obj -364 602 pddp_open pure-data-5; -#X obj -364 625 pddp_open pure-data-6; -#X text -189 625 The powerful message object; -#X obj -364 648 pddp_open pure-data-7; -#X text -189 648 More about lists; -#X text -189 671 Nesting collections of objects; -#X text -189 602 Connectionless communications; -#X obj -364 671 pddp_open pure-data-8; -#X text -189 695 Using GUI's in abstractions; -#X obj -364 695 pddp_open pure-data-9; -#X obj -378 787 cnv 15 430 95 empty empty empty 20 12 0 14 -179884 --66577 0; -#X text -194 422 Introduction to Images; -#X text -194 468 Introduction to Live Feeds; -#X obj -401 308 cnv 15 455 15 empty empty empty 20 12 0 14 -179884 --66577 0; -#X text -189 837 Putting it all together; -#X text -190 808 Interfacing with sensors; -#X text -194 399 Introduction to Grids; -#X text -384 331 GridFlow is a multidimentional dataflow processing -library for PureData and Ruby \, designed for interactive multimedia. -; -#X text -377 376 2 Introduction to GridFlow; -#X text -376 152 1 Introduction to Pure-Data; -#X text -373 580 3 Intermediate Pure-Data; -#X text -373 787 4 Intermediate GridFlow; -#X obj -401 542 cnv 15 455 15 empty empty empty 20 12 0 14 -179884 --66577 0; -#X text -396 542 What is GridFLow?; -#X obj -400 751 cnv 15 455 15 empty empty empty 20 12 0 14 -179884 --66577 0; -#X text -395 751 What is GridFLow?; -#X obj -283 400 GridFlow-1; -#X obj -283 423 GridFlow-2; -#X obj -283 446 GridFlow-3; -#X obj -283 469 GridFlow-4; -#X obj -281 809 GridFlow-6; -#X obj -281 832 GridFlow-7; -#X text -395 308 What is GridFlow?; -#X text -194 445 Introduction to Video; diff --git a/externals/gridflow/doc/tutorials/txt-for-resize-image.pd b/externals/gridflow/doc/tutorials/txt-for-resize-image.pd deleted file mode 100755 index f991ba07..00000000 --- a/externals/gridflow/doc/tutorials/txt-for-resize-image.pd +++ /dev/null @@ -1,3 +0,0 @@ -#N canvas 0 0 450 300 10; -#X text 48 29 How to resize an image:; -#X text 39 70 # scale 640 480 pour les images; |