aboutsummaryrefslogtreecommitdiff
path: root/externals/gridflow/ChangeLog
blob: 32329982e06c017ad79cd7fdb8cc4cc780f65a62 (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
/* $Id: ChangeLog,v 1.1 2005-10-04 02:12:43 matju Exp $ */

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 (soon erf* clip+ clip-)
 * [#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

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.