version 9.14 (2011.11.XX): * [#convolve] runs somewhat faster (when using default op/fold/seed) * [#to~]: add second argument for buffer size (in samples) * [#to~]: report "buffer full" at most once per incoming grid. * [#from~]: fix crash upon deleting object * [#from~]: add second argument for buffer size (in samples) * [#see]: experimental version goes about 5 times faster. (use [#see 1]) * [#draw_polygon]: added "rule winding" and "rule multi" * removed example threshold.pd * quite a lot of doc update (especially missing parts and errors) * [#polygon_moment]: argument defaults to 1 * [#polygon_radial_map]: accept comma-message * pdp support back in source package * added classes [#delay_image], [#draw_lattice], [gf/strtof] * added classes [is], [#is] (actually moved from tests folder) * added class [#adjugate] from Federico * [fps]: report wrong mode name * [#rotate]: matrix precision increased from 9 bit to 17 bit * libv4l now required to get v4l camera support on linux * libXext now required to get x11 support * [shunt]: reject non-float messages in right inlet * major update of ./configure script * major update of the tests folder * created LaunchPad team https://launchpad.net/~gridflow * added debian folder in source release, for making deb packages * reintroduced missing method 'endian' of [#io.grid] * fixed endianness problem in [#in grid] (does not occur in [#out grid]) * [#expr] is now 12 times faster than it was (still a bit slower than [expr]) * handling each message in every class of GridFlow is now a bit faster * detect libv4l1 even on new versions of linux (where videodev.h is renamed) * [#camera]: on linux, use 'libv4l1' as default * added examples daddy.pd and cross_product.pd by Mathieu * added example mandelbrot.pd by Claude * added vecop "cross" [# cross]: 3-D cross-product. * added numop [# C.sqrt] * use same version of ruby to build as was used to configure * ./configure is now compatible with ruby 1.9.1 syntax * various small fixes to ./configure version 9.13 (2011.02.08): * added classes [azerty_piano], [hpgl_to_lines], [hpgl_objectbox], [hpgl_messagebox], [hpgl_from_patch], [#draw_lattice] * [#expr]: added functions "if", "pow" (numop ** aliased to pow) * numop1: added fact (factorial or "gamma function" which is not [# gamma]) * numop1: added log2, log10, C.log2, C.log10, unary+ * numop1: aliased log and C.log to ln and C.ln * numop1: added asin acos atan asinh acosh atanh * [#]: don't check type of right-grid when one-input operator * [#]: fix one-input vecop support (complex numbers) * [#]: don't ask for N elements in right inlet for a one-input operator * [#expr]: fixed several parsing bugs * numop2 weight becomes a numop1 (single inlet) * x11 is now a load-time option * [#io.x11]: added methods "query_pointer" and "out_size_minimum" * [route3]: fixed right outlet bug * parens in messages are no longer parsed automatically as nested-lists. (parens in objectboxes still are, of course) * [gf/find_file] now looks up relative names in gridflow/images even when they contain a slash (or several). * [gf/error]: added method 'uplevel' * [#in] and [#out]: in case of unknown suffix, say 'not open' afterwards * [#redim]: argument defaults to () * former numop "atan" renamed to "atan2cd" * [#inner] and [#convolve]: add seedless mode (without typecheck annoyance) * [unix_time]: fixed the month number bug * [#fold]: much faster in the case folding over a dim that has only 1 index * [#from_pix]: much faster rgba->rgba conversion * [#from_pix]: added conversion to colorspace y * [#from_pix]: added conversion from [pix_grey] mode * osx package gets MMX support (on Intel) * osx package gets libquicktime support (including encoding) * the win32 package is back ! * pdp support missing in source package's ./configure (by accident) version 9.12 (2010.10.08): * Gem loading is now optional at run-time (and mandatory at compile-time), so that not having Gem will only result in 3 classes not being loaded. * [doc_iemfont]: reversed behaviour so that it takes as argument px sizes * [gridflow]: added attr pd_version * improved examples: dither.pd qbert.pd * [#import]: when in per_message mode, output empty grids just like any other * [setargs]: process commas and semis properly when updating $-variables * [setargs]: use sys_queuegui to limit updates of objectboxes and titlebars * [setargs]: added method 'dirty' * [#many]: margins (just as in [#see]) * [#many]: properties dialogue saves the spacing/margins settings to file * now ready for win64 builds * [args]: added attributes 'noloadbang' and 'noparens' * internals: added CLASS_NOPARENS and CLASS_NOCOMMA about parsing of args * added [#compress] and [gf/canvas_send] * added [#expr], a [expr]-lookalike (no grid support yet, but does use [#]-like numops internally) * [gf/mouse_spy]: fixed init bug * [#print]: fixed maxrows (was a bit off) * [#print]: changed number format when printing float32 or float64. * [#for]: step argument is now optional. * [print] and [#print]: stop parsing parentheses in creation arguments * [#unpack]: accept any grid containing as many elements as there are outlets * numops: add float support to % swap% rem swaprem * more detailed error messages of the form "expected this, got that" * [#out grid] and [parallel_port]: fix crash in case of error writing * [#]: now defaults to [# ignore] * reintroducing real unary operators. this means that there are now two tables of operators in the doc, and the table of unary only applies to [#] and [#expr] (they weren't much useful with anything else anyway). Those operators have become unary (one-input): sqrt rand sin cos tanh log exp C.sin C.cos C.tanh C.log C.exp * added numops (one input): ! ~ unary- abs tan sinh cosh floor ceil * added numops (one input): erf erfc cbrt expm1 log1p * added numops (two inputs): ldexp /exp version 9.11 (2010.09.07): * now officially requires Pd 41 * [#cast] $1 defaults to int32 (i) * [#camera]: added right outlet (for attributes) * [#type]: [#type, abbr] gives single-letter type names: b s i l f d * added classes [route3] [#type-gui] [#tabread] [#tabwrite] [#from~] * added classes [gf/tk_button] [gf/sys_gui] [gf/wrap] [gf/l2s] [gf/s2l] * added classes [gf/sprintf] and [#sprintf], the best sprintf() wrappers in the pd world * added OpenGL interface class [gf/gl] (with over a hundred methods in it) * added [gf/class_info] (for introspection of GF's classes only) * added [doc_iemfont] to fix the font size problem in help files (osx/win) * fixed some rendering bugs in [display] and [#see] * [#draw_polygon]: ignore value of "omit" when "draw fill" (to avoid nonsense) * fixed detection of png support * [#io.quicktimehw]: fixed method 'get' (wrong attribute values) * [#reverse]: fixed buffer copy bug * [#]: fixed problem with 0-sized right input * [gf/error]: method 'list': also print info about the object box where it is * [gf/error]: now supports the same options that [gf/sprintf] does. * [gridflow]: added 'os' to allow patches to detect operating system * [#rotatificator]: added attr 'cast' * support default bang/float/symbol/pointer/list methods wherever applicable (just like pd does in first inlet; but GF also does it in non-first inlets) * [print]/[display]: fixed stupid bug in printing nested lists (A_LIST) * ./configure: no Pd detection anymore; now comes with m_pd.h of 0.42-extended. * 64-bit fixes in [display] and [#see] and some more * [hpgl_font_render] [for] [#slice] [#scale_to]: made args optional * [#line_to_polygon] [#fastblur]: made args optional * [#pack]: add method 'cast' and allow dimension-list like [#redim]'s * [#in grid] [#out grid]: fix problem with incorrect 'headerless' flag * [#import] without arguments now does the same as a plain grid-inlet does. * major improvements to the internal API of GridFlow (shortcuts, etc) * qbert.pd: now in 2-D, and added a title screen * [#border]: allow 2-dimensional input, and border sizes of 2 elements each. * [#text_to_image]: add 2-dimensional input on the left * [gf/object_bbox]: add method 'float' to look up by index in canvas * removed soft dependencies on zexy, ggee * rewrote [#convolve]'s help, now including a tutorial of convolution theory * split away the UTF-8 hack as "gridflow_unicorn.pd_*" version 9.10 (2010.08.04): * added examples qbert.pd, remap_video.pd * removed example play_video.pd * [#lop_space]: faster; added method "reverse"; added default args * fix division by zero in [# C./] and [# C./conj] * added [# C.inv*] [# /exp] * [#pack]: support multi-element list in left inlet * [#join]: no more "empty grids" (default value is 0) * better error messages for not enough args, too many args, wrong args, etc. * [print]: make more like the builtin [print] it overrides * added index of General Topics, in GridFlow Index * incompatible change in [doc_exist] (which was for internal use only anyway) * incompatible change : removed numtype abbreviations that no-one ever used, that is : u8 i16 i32 i64 f32 f64 (kept the shorter ones : b s i l f d) * incompatible change : renamed [gf.not_open] to [gf/not_open]; [gf.oneshot] to [gf/oneshot]; etc. * [#many]: add methods : bgcolor, spacing * incompatible change in [#many]: removed $4 and $5 arguments for specifying the size of the cells (now it is autodetected) * added [#many-prop] (properties dialogue for [#many]) * updated GEM support to prevent crashes due to imageStruct 93 being different from imageStruct 92 (or even from recent versions of imageStruct 93). * added classes [attr] [doc_section] [gf/propertybang] [setargs] [gf/object_bbox] * added classes [#to_pdp] [#from_pdp] (but unlike for GEM, gridflow as a whole doesn't require PDP) * [args]: fix bang bug (bang was ignored since loadbang support was added) * added [display] and [#see] to the Put menu * added more missing documentation * [#to~]: added multichannel support * [#to~]: $1 (number of channels) now defaults to 1 * [#print]: right-justify floats at 10 chars per number column * [#to_float],[#to_symbol],[#to_list] aliased to [#to_f],[#to_s],[#to_l] * [#io.quicktimeapple]: report total number of frames correctly * [#draw_polygon]: fixed some inaccuracies in rendering * [#draw_polygon]: fixed bug in check of number of dimensions of color grid * [doc_accolade]: add method 'color' version 9.9 (2010.05.05): * added class [gridflow] for reporting version number of gridflow * [print]: pointer: write "0x" and not "0x0x" * added examples supercycloid.pd, simple_mask.pd, tictactoe.pd * renamed example blob.pd to shadebob.pd * reviewed and updated a lot of examples. * support GEM 91/92/93, with runtime autodetection (NOT compile-time!) supports both GemState 92 and GemState 93 * fixed bug about [#to_pix] when created after [gemwin] was last activated * [#to_pix] and [#from_pix]: when in colorspace rgba, preserve alpha instead of setting to 0 * [#to_pix]: when in colorspace rgb, alpha defaults to 255 instead of 0 * [#to_pix]: correct GL_RGBA vs GL_BGRA on OSX * added [gf/string_length] [doc_link] [doc_accolade] [#lop_space] * added even more missing helpfiles... * [#io.quicktimecamera]: added brightness, contrast, hue and colour (saturation) control * [#io.x11]: setcursor: support 77 cursors instead of 64; and reject out-of-range values * [#color]: runs faster * [#io.videodev]: added colorspace rgba, with alpha=255. * [#io.videodev]: added conversion from RGB to colorspace "magic" * [#camera]: added colorspace rgba * [#io.quartz]: added support for keypress and keyrelease * [#io.quartz]: added 'menubar' method (show/hide system menubar on OSX) * [#io.quartz]: added hidecursor and setcursor * [#io.quicktimecamera]: colorspace rgba's alpha=255 now. * [#io.quicktimecamera] [#io.quicktimeapple]: added colorspaces y, yuv, rgb, and added method "cast". * [#io.videodev] and [#camera]: removed attribute 'transfer' * fixed bug in nested-list processing (which affected [print] and [display] and use of symbols that look like floats) * [#io.videodev]: add support for libv4l1 * [#camera]: added method "api", added autodetection of camera modules * [#io.quicktimehw]: show real error messages * added class [#to~], for converting grids to signals. * [gf/canvas_...] and [gf/find_file]: add default arg * [args]: fixed crash when using comma when there is no [inlet] at all. * [#out quartz]: major speedup ! * [#store]: put_at: fixed two crashing bugs * [#in grid]: handle end-of-file and other errors properly (when reading) * quicktimeapple, quicktimecamera and gem pix : refixed colorspace on PPC * [#io.ppm]: rewritten without using libnetpbm (so that errors are handled properly); support reading P2 P3 P5 P6 and writing P5 P6 * added alias [pd/print] for pd's [print] * added alias [gf/range] for gf's [range] * [#mouse]: added method "/" to automatically scale coordinates * [#draw_rect]: fix outline mode * removed polygon_editor.pd and [#edit_polygon] * added [#out png] (in 1, 2, 3, 4 channels) * added 'cast' method to [#cast] (for changing number type) * [#for] supports floats such as [#for (f #) (f # 10) (f # 1)] * [#out sdl]: fixed mouse button support so that [#mouse] is useful * added class [gemdead], for using pix-objects without a [gemwin]. * OSX: show proper camera error messages * added [#out quartz 0]: make a borderless OSX window * OSX package: enable OpenCV support * Ubuntu package: enable libv4l1 support * NOTE: default colorspace with [#io.quicktimecamera] is now rgb version 9.8 (2010.04.01): * fixed GCC >= 4.4.3 related problem (?) with c++ templates... * fixed [gf/mouse_spy] crash (also related to [#see]) * small fixes to colouring of [display] and [#see] * added [gf/selector] [gf/getcwd] [gf/find_file] [gf/canvas_index] * OSX: print real error messages instead of error #-43, etc. * OSX: [#io.quartz] reports position * [#in]: lookup file in -path and the dir of the patch containing [#in] * removed annoying posts/errors when loading helpfiles * [#print]: fix bug with negative numbers in base 8 and 16 * [# **]: fixed crash with negative numbers * [#out x11]: hide close-button * [#out x11]: add "border $1" method for hiding window-border (for fullscreen) * major update to cellular_1d.pd, instant_blur.pd, markov.pd, ... * reviewed and updated a lot of examples. * added examples : rgb_delay.pd dither.pd * [#]: added back an important optimisation to save on RAM * [#fold] [#scan]: allow op avg, op hypot * [#fold] [#scan]: better check for unallowed ops * merged binary_operations.pd + videodev_effects.pd -> various_effects.pd * [#in] [#out] output "not_open" in outlet 1, to answer a message in closed mode * [#in] load has a $2 as a shortcut for open $1, cast $2, bang, close * [#in videodev] (linux cameras): trying to add YUYV support (palette 8) (please test) * [#out x11] [#out quartz] [#out sdl] [#see] accept greyscale * [gf/canvas_loadbang]: fixed bug * added most missing helpfiles, missing parts of helpfiles, corrected typos, etc. * added missing entries in index.pd ("GridFlow Index") * [#in videodev]: some error messages have been condensed * [#in videodev]: YUV cameras speedup (faster clip function) * [#camera]: use "not_open" to correctly show that no camera currently is selected. * [#see]: can drag to a point outside of the window * [#see]: fixed a bug when closing a gop containing a [#see]. * [#see]: added "margins $1 $2 $3 $4" method * changed version numbering "scheme", if there was ever any such thing * linux [#in quicktime] renamed to [#in quicktimehw] * osx [#in quicktime] renamed to [#in quicktimeapple] * [#in] and [#out]: added 'quicktime' alias for either of the above two version 0.9.7 (2010.02.26): * fixed colours in [#from_pix] OSX * [#from_pix]: auto-flip images coming from osx's [pix_image], etc... * [#to_pix]: auto-flip image for OSX * [#fft]: fixed the 1-D mode ("skip $1") * doc: fixed some layout bugs (gop) * added [gf/getpid] [#make_arrow] [doc_same] [#many] [#to_iem] [doremi] * added [#see] [gf/mouse_spy] [gf/canvas_isselected] [qwerty_piano] * [display]: fixed problems with braces, backslashes, nested lists (A_LIST) * [display]: fixed gop mode; use sys_queuegui * [display]: use system font; changed box size (spacing) to match the look of objectboxes; but chopped lower corners of the box to make look distinct. * [print] [gf.print] and [display]: hide "float" and "list" where they should. * made some more new helpfiles * quicktimehw: use normal 'get' method * when object can't create, print creator name and arguments * [#]: avoid grid-abort in case of wrong dimensions * [#in grid]: fixed end-of-file detection * ./configure: replaced pentium detection code * [#line_to_polygon]: fix: generates a rectangle as it was supposed to be * [#in grid]: added method "seek_byte" * [#out quartz]: no more spinning beach ball of death ! * [#out quartz]: added methods: title, move, set_geometry (compatible with [#io.x11]) * fixed help file window resize (OSX) * got gridflow menuitems to work with pd devel 0.43 * support multiple [#out sdl] objects (acting like a single object) * fixed many Win32-specific bugs * introduced Win32 precompiled distribution * add Help menu item "GridFlow Examples" (a preset "Open..." dialogue) * added support for multiple cameras on OSX (up to 4) * added camera name display for OSX * [#color]: fixed some bugs (hidden numberbox, triplicata, wrong values) * [#color]: use [nbx] on the right side instead of floatatom on the left * [#pack]: add 'set' method * [#redim]: fixed occasional crash that happened for some grid sizes * [#in],[#out]: auto-detect non-lowercase suffixes * [#out x11]: now 'root' option is working again. version 0.9.6 (2009.11.05): * MAJOR revision of the manual (no more xml nor html: all helpfiles) * documented several dozen undocumented classes * revised all documentation content * installation instructions are now in ./README instead of doc/install.html * added [gf/canvas_filename] [gf/string_replace] [gf/canvas_count] * added [gf/canvas_getpos] [gf/canvas_setpos] [gf/canvas_edit_mode] * added [gf/canvas_setgop] [gf/canvas_xid] [gf/canvas_loadbang] etc * added [doc_h] [doc_c] [doc_cc] [doc_i] [doc_ii] [doc_o] [doc_oo] * added [doc_m] [doc_also] [doc_editmode] [doc_pos] [doc_add] * added [doc_below] [doc_bottom] [doc_exist] [doc_layout] [doc_make] * added examples/pinwheel.pd, examples/radial_blur.pd * added examples/operator_spectrum.pd * [#change]: now takes an argument just like [change] * [#in x11]: fixed some bugs and set out_size to a sensible default. * removed [#camera_control], [#camera_old], [#centroid_in_pd] * removed [count], [condition] * [#window]: added outlet * [#swap]: added optional argument * [var.#]: added optional argument * [#spread]: added optional argument * [#to_literal]: write numbertype * [#fade_lin]: accept grid args * [#posterize]: made the optional argument really optional... * renamed source files * rewrote GEM support without using GEM headers * removed --gem-include * removed bundled/Base (was a copy of GEM 0.91 include files) * [#from_pix]: much faster * [#to_pix]: support 3-channel rgb input * [#out x11]: some video modes are now much faster than before * [args]: don't [loadbang] it anymore: it's automatic now. * [args]: removed attribute outlet: it's automatic now. * removed [send39] : GridFlow requires PureData 0.40 these days. * added GridFlow About in Help menu * GridFlow menu items available in all windows instead of just the main * introduced OSX-PPC precompiled distribution * introduced Ubuntu 9.10 precompiled distribution version 0.9.5 (2009.10.18): * added [gf.print] (aliased to [print]) * added [cv/#Ellipse], [cv/#HarrisCorner], [cv/#KMeans] * renamed goop.pd to surface_tension.pd * [#in quicktime]: "get" also produces messages "framerate", "height", "width", "depth", "codec". * added [#draw_hpgl], [#reinterval], [#cluster_avg] * added [norecurse], [gf.error] * [#color]: added bang * [#inner]: fixed infinite loop bug with large right-inlet grids. * [#transpose]: fixed crash with zero-sized grids. * [receives]: "empty" prefix automatically turned into "" (no prefix). * [#in grid] and [#out grid]: fixed several bugs * [#make_cross] can make rectangular crosses * [demux] alias removed (please use [shunt]) * renamed every [cv.Something] to [cv/#Something] to avoid any future nameclashes with Loïc's library. * automatically removes artificial stacksize limits of the OS that may have caused segfaults in the last year or so, if you didn't use ulimit -s unlimited or somesuch * added [# c2p] and [# p2c] (polar transforms) * added new examples: polar.pd, radial_blur.pd * fixed more OSX-specific bugs * fixed [#grade] bug (thanks to mescalinum) * removed support for gem 0.89 and some 0.90 versions * renamed [#labeling] to [#labelling] (kept an alias) * introduced OSX-Intel precompiled distribution version 0.9.4 (2008.07.04): * [#convolve] takes more RAM but gets faster on OSX * added [listread], [receives], [ascii_to_f], [plotter_parser], [list.==] * added [cv.Invert], [cv.SVD], [expect], [#hello] * [plotter_control] supports most other commands and uppercase selectors * added [#in dc1394] * added [#window] (a shortcut for a [spigot] and a [#out window]) * rewrote [listflatten] (was removed in 0.9.2) * [#camera] greys out unavailable options and supports dc1394 * added "GridFlow index" in Help menu (like Pd's right-click on blank) * made arguments optional in [#border] [#draw_image] [#draw_polygon] * [#draw_polygon]: added attribute "draw" (fill, line) * [#draw_polygon]: added attribute "omit" (none, last, odd) * support whitespace in symbols again (after bug in 0.9.2) * fixed ppm loader * [#fft]: added attribute "real" * added example frequency_mask.pd version 0.9.3 (2008.06.06): * fixed bugs introduced in 0.9.2 relative to: [#in] loop, [#in] initbang, [display] selector, [#out] initbang, [#print], [#labeling], [#out window] * added example patches instant_blur.pd game_of_life_gem.pd * added [class_exists] * added [#in quicktimecamera] * fixed some example patches * fixed some recent OSX compilation problems * fixed OSX QuickTime decoding on Intel (endianness problem) * fixed existing GEM 0.89 and 0.90 support * added GEM 0.91 support (GemBase::isRunnable) * --gem-source renamed to --gem-include * --gem-include=bundled can compile gem support without gem source code * swapped outlets of [#import_pix] * added SDL mouse position event report (but buttonup does not work) * added SDL key report * added some SDL options: title, hidecursor, partial setcursor * added SDL fullscreen (use key f, F11 or Escape) * x11: replaced method "transfer" by method "shared_memory". version 0.9.2 (2008.05.02): * removed libruby dependency version 0.9.1 (2008.04.16): * switched from CVS to SVN * removed LTIlib support * x11: added "warp" method for moving mouse cursor around * removed all Ruby code (rewritten in C++ or Pd) * rewrote PPM support. now relies on libnetpbm. (apt-get install libnetpbm10-dev) * removed broken Targa support * removed timelog feature in [#in]/[#out] (redundant) * removed [joystick_port], [SoundMixer], [pd_netsocket], [rubyarray], [ls], [system], [exec], [regsub], [memstat], [#edit], [peephole], [listmake], [gridflow]/[#global], [sendgui], [realtimer], [bindpatcher], [renamefile] (contact me if you need any of them) * added [gf.error], [usertime], [systemtime], [tsctime] * added method to_ascii in [#import] * [display] word-wrap * [#import] defaults to per_message mode * removed support for ~/.gridflow_startup and GridFlow.data_path (contact me if you need them) version 0.9.0 (2007.11.20): * new object classes: [#slice], [#sort], [#line_to_polygon]. * rewrote some object classes from Ruby to Pd. * split compilation of the LTIlib support allows to compile it with reasonable amounts of RAM. * new classes: [seq_fold], [#seq_fold], [#.var], [#noise_gate_yuvs] * updated [#camera] * added PWC-specific options: framerate white_mode white_red white_blue white_speed white_delay auto_gain compression noise_reduction * added "pwc" option in [#camera], for enabling PWC-specific options. * colorspace conversion directly in [#in videodev] (faster) * grid messages no longer contain dim and numbertype (just a pointer) * GridOutlet: added set_chunk (so set_factor is obsolete) * removed GridFlow menu * faster [#inner] for small matrix sizes * GridFlow won't work in plain Ruby anymore (without Pd) * removed [pd_netsend] [jmax_udpsend] [jmax4_udpsend] [pd_netreceive] [jmax_udpreceive] [jmax4_udpreceive] [printargs] [rubyprint] * removed Type.rb and Contract.rb and their use in videodev.c * [#in quicktime]: added workaround for jpeg_quality problem * [#in quicktime]: added method "get", that produces message "frames" that gives the number of frames in a video * [#out]: added method "autoclose" * removed old documentation: *-icon.png * renamed [#export] to [#to_float] * renamed [#export_list] to [#to_list] * renamed [#export_symbol] to [#to_symbol] * renamed [#export_pix] to [#to_pix] * fixed 256MB limit bug * fixed reassign bug version 0.8.4 (2006.10.12): * resuming support for Ruby 1.8 ! * added compatibility with more recent versions of Ruby 1.9 * added compatibility with more recent versions of GCC 4.x * much more LTIlib support! (a few dozen more object classes) * [#camera]: improved * rblti supports ltilib 1.9.15 and gcc 4 * new object classes: [route2], [#polygon_each_edge], [#polygon_moment], [#polygon_radial_map], [#polygon_comparator], [#moment_polar]. * new float-only numops: sin cos tanh exp log atan2 * new float-only vecops: C.sin C.cos C.tanh C.exp C.log * [#fft] can do RGB (per channel) * can show added inlets/outlets at runtime. * can remove inlets/outlets at runtime (and erase them from screen). * much faster videodev !!! (also unfinished [#edit_polygon] and [#draw_rect]). version 0.8.3 (2006.04.02): * added Makefile rules for downloading+installing ruby 1.9 * new numops: weight rol ror * new vecops concept helps with complex numbers * new vecops: C.* C.*conj C./ C./conj C.sq- C.abs- * [#convolve]: added attr "wrap", "anti" * [#inner]: faster! * [#shunt]: added attr index,mode,lo,hi * now also works with older (non-CVS) versions of GEM * new object classes: [#fastblur], [#t], [#rgb_to_rgba], [#rgba_to_rgb], [#change], [#swap], [#polygon_perimetre], [#polygon_area], [args], [#gamma], [#saturation] * now autodetects the .gz suffix (goes with ppm/targa/grid formats) * moved the rest of pd_help/ to doc/flow_classes/ * automatic attribute generator for Ruby * [#io.grid]: fixed number type problems, added back method 'type'. version 0.8.2 (2006.03.17): * Ruby 1.9 required * removed jmax2pd * fixes of various compilation problems * new object classes: [realtimer], [#export_pix], [#import_pix], [#border], [#fft] * beginning support for LTIlib. new object classes: [lti], [lti.meanShiftSegmentation], etc. * added "load" method in [gridflow]. (thanks Claude) * automatic attribute generator for C++ * added "help" and "get" methods to *all* classes (!!!) * no more "make install" * not using mkmf.rb (ruby's makefile generator) anymore * removed --debug-harder (use "valgrind" instead) version 0.8.1 (2006.02.20): * [ls] now supports wildcards: ? [] * ** * [#color] has new method: delegate * added [regsub], [memstat], [listfind], [sendgui] * x11: removed methods: draw,autodraw; added: use_shm,title * examples : added markov.pd, bounce.pd, doodle.pd, mechanics.pd * [#pack],[#unpack] now default to 2 values * new numops: clip+,clip- * fix for shared memory bug in [#out x11] * added [#out tk] * added [#out opengl] (using GLUT, hackishly) * [unix_time] behaviour changed. (see manual) version 0.8.0 (2005.06.06): * removed support for jMax 2.5 and jMax 4.1 * added GCC 3.4 support * added AMD64 support * added support for puredata "datastructure" pointers (aka gpointer) * changing the @-prefix for a #-prefix, where the old prefix still works (the old syntax is backwards-compatible, the new syntax is forwards-compatible) * 13 object-classes rewritten from Ruby to Pd abstractions * merged [@],[@!] -> [#] and added message "op" * removed all one-input ops (see next...) * new two-input ops: abs- sq- avg hypot sqrt rand * [#fold],[#scan]: removed seed arg and right outlet; added msgs "op" and "seed" * [#inner],[#convolve] : added msgs "op" and "seed" * [#inner],[#convolve] : removed three first args (usually * + 0) * [#inner] : removed middle inlet * major changes to the bridge API (Ruby<->PureData) * project "Linux Devices For Ruby" got merged in, as devices4ruby/ * source code cleanup * internals: split Grid into Grid+GridPtr * internals: GridObject no longer manages GridOutlet * internals: added classes P,PtrGrid,... * internals: beginning to use C++'s Standard Template Library (sometimes) * [gridflow] now has "formats" msg (to list available formats) * [#store] added msg "op" * [#out x11] removed flag "verbose" * some spaces may now be omitted in gf-lists. e.g.: ( ( 2 1 ) ( ) ) ( 3 4 ( 5 ) ) can be shortened to: ((2 1) ()) (3 4 (5)) * new object classes: [display], [#reverse], [#unpack], [#centroid2], [ls], [renamefile], [unix_time], [exec], [plotter_control], [#text_to_image], [#hueshift], [rubyarray] * in pd_examples added Alx's epicycloid.pd, scratch_video.pd, threshold.pd and Matju's goop.pd * some new/updated help files by St�hanie Brodeur & Darsha Hewitt version 0.7.7 (2004.08.24): * GridFlow runs on MacOS 10.2 with PureData 0.37 * updated drag_rectangle.pd, nervous_video.pd, fire.pd, color_correction.pd * updated feedback_fractal.pd (added morphing) * added pd_examples/waves.pd, pd_examples/sand.pd * added pd_examples/color_detect.pd (supersedes chroma_key.pd) * added pd_examples/spectrogram.pd, pd_examples/photo_pianoroll.pd * removed [rtmetro] (obsolete) * [@store]: added methods: put_at, reassign * [pingpong]: added $1 * [demux] renamed to [shunt] and extra optional arg added (for initial value) * new object classes: [range], [#mouse], [#pack], [#color], [bindpatcher], [#camera], [#fade_lin], [#peephole] * videodev: added method "get" * [@out quartz] now works properly * [@downscale_by] accepts any number of channels * [@inner2] removed; instead use [@transpose] with [@inner] * videodev: "transfer" message allows to change the queue's length * quicktime(hw): added messages "parameter", "framerate", "size" * quicktime(hw): fixed encoding bug * png: fixed memory leak * ./configure --lite disables float32 float64 int64 * ./configure --verbose prints useless details * doc: rewrote installation instructions * x11: fixed memory leak in resizing window * on MacOS 10 [@out window] now defaults to [@out quartz] * doc: added credits section version 0.7.6 (2004.03.22): * GridFlow runs on MacOS 10.2 (only with jMax 2.5) * [@out quartz] makes a native MacOS (Cocoa+Quartz) window (warning: very buggy) * support for Apple QuickTime movie decoding (format/quicktimeapple.c) * file suffix detector is now extensible * added: Ruby interface for libUSB (base/usb.c) * x11: now emits "keypress" and "keyrelease" messages * [@downscale_by] now supports 4 channels (therefore [peephole] does too) * fixed bugs in: x11, @draw_image, @import, @export, ... * "open x11" now allows any DISPLAY spec * now includes the pictures used in the examples (not a separate download anymore) * [@out x11 here override_redirect] (override window manager; be careful with this) * [pd_netsocket] does like [netsend]/[netreceive] but two-way (warning: not complete yet) * support for nested lists in incoming messages * new object classes: [delcom_usb]: support for Delcom USB I/O controller [joystick_port]: support for linux joystick drivers [foreach], [rubysprintf], [listflatten] [messageprepend], [messageappend], [@transpose] [@fade], [@centroid] jMax emulation: [listmake], [listlength], [listelement], [listsublist] jMax emulation: [listprepend], [listappend], [listreverse], [oneshot] jMax emulation: [inv+], [inv*] * Pd main window: adding GridFlow menu, Ruby/Tcl evaluators (with command-history) * added bin/jmax2pd (converts .jmax files to .pd files) * ported all .jmax examples to .pd (using jmax2pd) (20 out of 20) * support for variable number of inlets/outlets (only with PureData) version 0.7.5 (2003.09.28): * type aliases: int32,i32,i; int16,i16,s; uint8,u8,b; float32,f32,f * added support for float64 (alias f64, d) * added support for int64 (alias i64, l) * doc: added number type table * @convolve: supports even-sized grids * fixed bug: puredata gf clock ran way too fast * rewrote the profiler subsystem (and removed bugs) * @scale_by: now works with any number of channels * renamed samples/ to jmax_examples/ * Algebraic Properties Descriptions (internal, used for accelerations) * @convolve,@outer,@for,@inner,@draw_polygon: much faster * quicktime: support for pluggable codecs (eg: dv, divx, rpza, ...) * quicktime: fixed more bugs * quicktime: major speed increase * quicktime: added "colorspace" option * videodev: fixed bugs * videodev: removed obsolete option "noinit" * videodev: added option "colormodel" (especially because of new camera drivers) * sdl: added automatic resizing of window * png: read support * jMax bridge: more stable than ever * PureData bridge: *much* more stable than ever * Operator1, Operator2 renamed to Numop1, Numop2 * x11: now also called "window", so you can write "@out window", "open window" * new object classes: @draw_image: picture-in-picture, with alpha blending, etc jmax4_udpsend: send to a jMax 4.0.x system via UDP jmax4_udpreceive: receive from a jMax 4.0.x system via UDP pd_netsend: send to a pd system via UDP pd_netreceive: receive from a pd system via UDP @eight: (like @four, but with eight of them ;-) peephole: like [@out x11] but as inset of a patcher (jMax 2.5 only) * support for upcoming jMax 4.1 * "open file" autodetects how to handle a file, by filename suffix version 0.7.2 (2003.04.24): * fixed bugs in: make install, jpeg reading * added support for float32 * added direct .jmax decoding * added direct .pd encoding * pd examples moved to separate directory * ported some .jmax examples to .pd (automated) (8 out of 20) * added motion_detect.pd * new classes: demux, and more jmax emulations * @in,@out: keyword "option" may be omitted * configure: added --ruby-prefix * adding custom C++ pre-preprocessor * better type checking of message arguments (better error reporting too) * @print supports 3 dimensions, and msg "base" with arg 2,8,10,16 * can now write loadbang-messages into an object box using the comma * major cleanup of the source code * added operator *>>8 (multiplication by value then division by 256) * new classes: @rgb_to_yuv, @yuv_to_rgb * @rotate now works with multiple axis (can work on 3D points, etc) version 0.7.1 (2003.03.24): * fixed important bugs (crashes and such) * @store,@ can now receive in inlet 1 while sending from outlet 0. * @, when inlet 1 grid size is small but not 1, is now much faster. * added memcpy() usage logging (see profiler_dump) * added examples: drag_rectangle.jmax, plot.jmax, eclipse.jmax * added example: cellular_1d.pd * added classes: fork, jmax_udpsend, jmax_udpreceive * added classes: @rotate, @remap_image, @type * added operators: gcd,lcm (common divisors/multiples) * quicktime: added encoding, added seek, fixed bugs * @in inlet 1 tells frame number (int), end-of-file (bang) * @in: added: set, option loop (controlling auto-rewind) * updated cross_fade.jmax (much faster) * @two,@three,@four allow inlet 0 bang trigger * configure: simpler config for jMax 2.5 * PD help patches (by Uli Berthold) * PD: "make install" takes care of help patches and library * CVS web interface on artengine.ca (thanks to Alex) version 0.7.0 (2003.02.01): * new classes: @cast, @join, @ravel, @grade, @perspective * new grid protocol supports several number types (added uint8,int16) * added number type support in most classes * added "option cast" for @in in some formats * can now specify number types in grid literals * added some MMX support (accelerates by 0%..40%) * @import: added optional 2nd arg specifying type. * @import: can convert symbols to grids of their ascii codes. * new [@import per_message] yields one grid per incoming message * [fps]: added options "user" "system" "cpu" for selecting clock * aalib: added options autodraw, draw, dump * aalib: added raw input (two channels: characters, attributes) * x11: added support for 256-color mode using a private colormap. * x11: added "use_stripes" for alternate 256-color rendering. * fixed problems with earlier versions of Ruby (like 1.6.2) * new samples: polygon.jmax * videodev_effects.jmax: added sort-effects, centre-of-gravity-tracking * the time profiler is back to working !!! * @scale_by, @downscale_by: added right inlet, for configuration * @store is a bit faster * ppm: accelerated by large amount * @outer,@inner,@inner2,@fold accelerated by obscene amount version 0.6.5 (2003.01.10): * can now encode Targa-24, Targa-32, JPEG-24 * can now output through aalib (ascii art library) * fixed problems with libruby.a * tested with the new version of Ruby (1.8) * new classes: fps, @rgb_to_greyscale, @greyscale_to_rgb, @solarize, @complex_sq, @export_symbol, @draw_polygon, @apply_colormap_channelwise * new class FPatcher, a ruby patcher/abstraction system * @scale_to,@contrast,@spread,@posterize now available in PureData & Ruby; they also now accept arguments. * [@scale_to]: back to working; inlets "height" and "width" merged * [route grid_begin] replaced by [route grid] * [route grid_end] replaced by [@finished] * Most everything is 10-50% faster * changes in the internal transmission of grids * new two-input operators: div, swapdiv, put, ignore * compilable on MacOS 10 version 0.6.4 (2002.12.23): * can now decode JPEG (using libjpeg.so) * many bugs fixed (especially in file formats) * operators: log* added; tanh renamed to tanh* * @two,@three,@four are no longer specific to the jMax side * format grid: option headerless for reading any kind of file * format grid: option headerful (revert to actual .grid format mode) * fixed problems with GNU C++ version 3 * format ppm: accelerated writing * format modifier gzfile: gzip support also works with [@out] * format x11: the "here" specifier is now optional * added @checkers * [@scale_by {y x}] for different y,x scale factors * [@in blah blah] means "open blah blah" -> [@in] (and same with @out) * added @downscale_by with or without smoothing * format targa: can now decode 32 bit RGBA * @layer: combines RGBA foreground with RGB background, yielding RGB. * format grid options: endian big, endian little, endian same * formats ppm,grid: use 'option rewind' to overwrite same file (by default, rewind is no longer done after each frame) ('option rewind' also rewinds on reading) version 0.6.3 (2002.12.06): * removing the custom leak detector ("Valgrind" program used instead) * removed all (?) memory leaks * videodev: new options: frequency, transfer [read|mmap], noinit * profiler summary code rewritten * profiler wrapper code removed * x11: option setcursor <0-63>, option hidecursor * x11: outlet 0 tells cursor position / button state * more C++ification of the code * many bugs fixed (especially crashes) version 0.6.2 (2002.09.17): * jMax objects written in (or using) Ruby now can work in PureData too. * new format: SDL (portable output to window) * can now compile bridges without libruby.so * changed grid-protocol: added direct object-to-object streaming. * bug: gridflow's clock tick back to a decent value (sorry) * all inlets supporting grids also convert int/float as 0-D grids * @fold and @scan now accept grids in right inlet and constructor * @convolve is 2-3 times faster * %,swap% are now called rem,swaprem; new %,swap% is the true modulo. * @for now allows vectorial from/to/step values * @identity_transform removed, change to eg: [@for{0 0}{240 320}{1 1}] * PD users: grid literals are written like: [@for ( 0 0 ) ( 240 320 ) ( 1 1 )] with all those spaces * @inner,@inner2,@convolve can take right inlet grid as 4th argument * re-enabled and improved the memory leak detector (use --debug) * fixed many bugs and leaks * fixed bugs in @store * added sample: zoom.pd version 0.6.1 (2002.08.29): * now compiling GridFlow as C++ (replacing C) * now you can use Ruby 1.7, which is faster note: if you do so, make sure your version is dated 2002 * new objects: rubyprint, printargs, @print, @scan, @inner * new format: apple quicktime (using libquicktime.so) * @in gzip support (example: "open ppm gzfile teapot.ppm.gz") also works with targa and grid * BitPacking now supports 1 to 4 channels instead of just 3 * using mkmf.rb makefile generation; some MSWindows support thru Cygwin * added geiger counter simulator in [rtmetro] * libruby.so is only needed when using GridFlow through jMax * now can do grid literals in @ and @outer, like [@ + {0 1}] * syntax of @redim,@import changed from [@redim 2 3] to [@redim {2 3}] * "3 3 # 1 0 0 1" into inlet does automatic @redim, for all objects * grid literals accept {2 3 # 1 4 5} as an implicit [@redim {2 3}] * objects rewritten in Ruby language: @in, @out * updated samples, templates, documentation. * fixed bugs version 0.6.0 (2002.07.31): * THIS IS AN EXPERIMENTAL BRANCH (VERY BUGGY) REAL PROJECTS SHOULD USE VERSION 0.5.0 INSTEAD * GridFlow rewritten as a plugin for Ruby instead of jMax. * GridFlow now includes a Ruby-for-jMax bridge. * you need Ruby 1.6.6 (including libruby.so) or compatible * you don't need GNU Bash anymore (configurator is now a Ruby program) * format handlers for .ppm, .tga, .grid rewritten in Ruby * merged all Makefiles together, etc. * sources are in base/ and format/ instead of c/src/ * many bugs removed, many bugs added. * will read ~/.gridflow_startup if it exists version 0.5.0 (2002.06.08): * big changes to the internals (especially use of macros) * can compile without X11; added --no-x11 in ./configure * removed support for jMax 2.4 * auto-detects jMax 2.5 and jMax 3.0 * @inner renamed to @inner2 (new, proper @inner coming soon) * faster unary operators * added unary operator: sq (faster squaring) * further separation of GridFlow from jMax * major format API changes (added Stream class) * format "grid" now supports 8 bits per value * support for HeroineWarrior's LibMPEG3 (reading + seeking) * libmpeg.so (Greg Ward's) now also looked up as "libwardsmpeg.so" * added objects: rtmetro, pingpong * Moved CVS repository from Hostname.2y.net to Artengine.ca * updated samples version 0.4.1 (2002.01.02): * cvs repository now has public access * now can run configure without jmax/fts being present * standalone version now works on Silicon Graphics and Corel Netwinder. * MPEG format readonly (single file at a time; mpeg video layer only) * grid TCP: non-blocking read * fixed all known memory leaks * X11 Shared Memory now disables itself properly on remote display * updated help files * updated help screenshots in the manual * fixed profiler bugs * fts emulation moved to c/src/ and tests moved to tests/ version 0.4.0 (2001.11.28): * package name changed from "video4jmax" to "gridflow" * documentation *rewritten*, more precise, more structured * documentation format is now XML (includes HTMLized version) * can now compile without jmax/fts (if you need quicker testing...) * added format "grid" for storing any kind of grid to disk. * added TCP client/server socket support (with format "grid" only) * added (timewise) profiler * @convolve now takes up to three arguments * Format API changes again * "connect" merged into "open" * "size" merged into "option" * @video_out merged into @out * format videodev can now do full framerate (instead of just half) * added X11 Shared Memory support (faster image transfer locally) * added @scale_by for quick scaling by integer factors. * @identity_transform, @scale_to are much faster. * many other accelerations version 0.3.0 (2001.11.04): * reworked File Format API * grid objects now all accept lists of integers (auto-convert to 1D grid) * many accelerations (incl large speedup on chains of binary operations) * transformed @video_out (X11) into a "File Format" (really) and: * allows multiple displays * auto-resizing window * can set output as wallpaper * can read from the screen (screenshot) * @video_out now a backward-compatibility wrapper * format videodev now uses double buffer mmap (somewhat faster) * @video_in_file, @video_out_file renamed to @in, @out (with aliases) * new objects: @convolve, @inner, @for * more samples: Fire, Ripple, Game of Life, Chroma Key, Convolve, Saturation * much improved samples: Color Correction, Linear Transform. * use [@store uint8] for low-ram storage of values 0-255. * videodev: added option norm 0=pal 1=ntsc 2=secam 3=auto version 0.2.2 (2001.08.15): * @video_out auto-updates on X11 ExposeEvent * updated documentation and help * fixed installation/config of help and summary * split BitPacking module from @video_out * added support for BTTV input (that is, using mmap() command) * new videodev options: channel,tuner,contrast,hue,etc. * now with 30 binary operators, and 3 unary operators * added many new samples * new objects: @!, @fold, @outer, @dim, @redim, @posterize, @contrast, @two, @three, @identity_transform, @scale_to, @spread version 0.2.1 (2001.08.01): * added private CVS repository on hostname.2y.net * added configuration script (detects video4linux 1.x) * added documentation in HTML format * added File Format API * format "ppm": PPM P6 RGB24 support read-write * format "targa": Targa RGB24 support read-only * format "videodev": Video4linux read (using read() command only) * @store no longer slowing down its downstream * many other accelerations * Tuple changed to Dim; Index removed * Grid element type is typedef Number * @ supports grids in right inlet * now there are 20 binary operators version 0.2.0 (2001.05.05): * package name changed from "video" to "video4jmax" * new kind of post() cancels repetitive log entries * major modifications to existing objects * new "grid transmission system" (Tuple,Index,GridInlet,GridOutlet,GridObject) * vout -> @video_out * vin_file -> @video_in_file * vout_file -> @video_out_file * added @import, @export * added @, @store version 0.1.1 (2001.04.03): * removed vout's grab * vout width and height parameters swapped * vout_file class is mostly like vout but writes to a file in PPM format. version 0.1.0 (2001.03.14): * fixed the bits_per_pixel bug * merged in some other variations on the main sample * included Christian's makefiles for jmax 2.5 version 0.0.7 (2001.03.08): * vout should support most types of RGB visuals now * autodraw now works: 0=none; 1=page; 2=line; 3=pixel * less global variables * putting all of this under the GPL version 0.0.5 (2001.03.05): * vout class, two params: width, height; 24-bit BGR only; refresh by finishing scanline or sending bang; "grab" (hack); "reset" for resetting the pixel pointer. a very short history of GridFlow: video4jmax 0.1 (mar 2001): sending int messages to a window in jMax video4jmax 0.2 (may 2001): grids GridFlow 0.4 (nov 2001): xml manual; can compile without jMax GridFlow 0.5 (jun 2002): mpeg; cvs goes to artengine.ca GridFlow 0.6 (aug 2002): ruby; c++; literals GridFlow 0.6.2 - 0.6.5 : pd; jpeg; big speedups; 1 grid = 1 message GridFlow 0.7.0 (feb 2003): number types; mmx; other big speedups GridFlow 0.7.2 - 0.7.5 : pd support gets stable; float grids; @draw_image; source_filter.rb GridFlow 0.7.6 to 7 (2004): permanently switching from jmax to pd; #pack, #color, #camera GridFlow 0.8 (2005): attributes; # prefix GridFlow 0.8.1 - 0.8.4 (2006): LTI; FFT; complex numbers; GEM pix compatibility GridFlow 0.9.0-0.9.4 (2008): removing Ruby, removing LTI, adding OpenCV GridFlow 0.9.6 (2009): start GFDP (new documentation system)