aboutsummaryrefslogtreecommitdiff
path: root/externals/gridflow/ChangeLog
blob: 9110e8b86a25b6f3f170ef535577f695259de3f5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
/* $Id: ChangeLog 3986 2008-07-04 21:03:52Z matju $ */

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

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 to 4 (2006): LTI; FFT; complex numbers; GEM pix compatibility
GridFlow   0.9.0 (2008): removing Ruby, removing LTI, adding OpenCV
GridFlow   2.0 : ...