For information about our main software product, the zs4 video compositing system, please visit the zs4 web site at www.zs4.net.




products

linux
osx
win32
bsd

autodox

classtree

source code

t@b ZS4 Video Editor change history

Version 0.958, build id 0703161351

Version 0.958


Module: tabpix


2007 march 4

removed the include file tab_version.h and replaced it with a global tab_version_macros.h which sits in the root directory for all tab build projects. This has happened in an effort to significantly speed up rebuilding of the project after build numbers are incremented.

2007 feb 20

fixed the method tab_object::SystemLaunchBrowserDoc() so that it works more reliably under windows, including the invocation of the users PREFERRED web browser (firefox) instead of iexplore.exe. This should fix the failure of the F1 (help) key in zs4.

Version 0.957


Module: tabdec


2007 january 19

Once I had figured out why motion JPEG "mjpg" avi files had all sorts of trouble running. But, holy camoly! billyboy figured out that many still cams can produce mjpg-avi files so MS built mjpg into their latest direct show (directX) release and zs4 v0.956 is being conflicted...

this module has thus been expanded to support mpng, mjpg, mvjp, i420 (iyuv) iv12, yvu9 and p444 decoding so that any reasonable windows video program can load avi files with transparencies produced by zs4.

Module: mmeditor


2007 february 12

added same set of buttons to rectangle view, where it matters quite a bit more.

2007 january 19

added a first set of toggles to track properties panel. they allow instant-opaqufication of loaded video and/or effect tracks. These toggle bits can be applied to an video file or video effect tracks and include FlipX and FlipY, Opquing, Tranparentizing, or inverting transparency. These flag-toggles will later move into any panel where they'll come in handy.

Module: ftfont


2007 february 12

using now freetype version 2.3 for this plugin. Source for this version of freetype is available on this web site.

Module: tabpix


2007 feb 18

added static "header_only" boolean member to tab_riff32 and tab_mov32 classes. The member can be set using the ParseHeadersOnly(bool) method. This causes the parser to bypass the "movi" list of an avi file.

2007 february 15

added support for FreeImage library which allows the reading of .iff, .pcx, .gif and many more image formats.

Also added support for loading image sequences. This requires the directory containing the images to also contain a *.ini file with a [sequence] group that has four entries for now: "fps=" (frames per second), "width=", "height=" and "select=" (Set by default to a file pattern like "*.jpg"). This *.ini file will indicate to zs4 how to interpret the image sequence in the directory. The files will be sorted by name.

2007 february 13

named struct's and union's which had been un-named thus far.

2007 february 12

using now libexpat version 2.0 for xml parsing (specifically for font configuration files under linux, among other things)

2007 january 30

Modified Direct Draw Surface interface used from DDSD to DDSD2 (DirectX 7).

2007 january 18-19

added a method called AlphaReverse() to tab_bitmap class, added CoInitialize calls to thread startup and the corresponding un-init calls ad thread termination. Cleaned up lots of code in preparation of 64-bit version of ZS4.

2007 january 17

fixed png codec so that it only creates bitmaps for decoded data when neccessary.


Module: kernel


2007 january 19

i_timestein class has 6 new bits in the "Flags" property. they relate to the intrinsic video compositing logic. Also added was a corresponding method Flags2Bitmap() which allows the processing of these flags (FlipX, FlipY, Alpha on/of/reverse) from any object enheriting from i_timestein (video file readers, video effects etc.). The flags added are typically processed right after the input or effect filter received frame data, before any other processing is applied.

2007 january 10

lots of code has been cleaned up to compile without warning on the latest gcc and ms compilers.

Version 0.953


Module: mmwmed


2006 may 10

re-introduced this module since it's removal did not improve the startup problems, as i hoped. may as well have this feature...


Module: gadclsview


fixes for gcc (GCC) 4.0.3 20051201 (prerelease) (Debian 4.0.2-5)


Module: showaudio


fixes for gcc (GCC) 4.0.3 20051201 (prerelease) (Debian 4.0.2-5)


Module: mmeditor


may 17 2006

fixed toggle images in current panel to reflect video and audio mute states.

fixed project panel so that when when the user browses for a save location, the system also save the file and no longer wait until the user also hits the save button. this has causes users to think they saved the project when they did not.... no longer a problem metinx.

may 11 2006

added color dialogs to the following effects.
- tint rgb (pixel filter)
- alpha to rgb gradient (range)

implemented memory saving strategies for mmeditor component.


Module: tabpix


2006 may 10

added method in media stream handles (read mode) which allow the temprary freeing of associated video memory. this happens in the hope memory use during zs4 output generation can be reduced....

2006 april

fixes for gcc (GCC) 4.0.3 20051201 (prerelease) (Debian 4.0.2-5)


Module: kernel


2006 may 10

extended i_timestein class to accomodate the freeing of excess video memory during video compositing and filtering.

Version 0.952


Module: mmwmed


2006 march 20

removing this module from the product list. why? the MS encoding libraries seem to demand an internet (spyware?) connection, and this module seems to prevent zs4 from starting up, if the conditions don't suit billyboy.

Module: mmeditor


march 20 2006

added a file dialog button at the very top left of the user interface. this should help users find the (quicker) system-file-open-dialog (windows/fltk file dialogs).

march 3 2006

permitting the effect UI to force application refresh and frame recalc (for color dialogs etc)

the color gradient signal generator effect now has to buttons in the "current" panel which allow the choosing of color using a color dialog.

also added color dialog to rgb key, yuv (chroma) key, and the rgb and yuv similarity keys.


Module: tabfltk


2006 march 3

added color chooser dialog support


Module: guifltk


2006 march 3

added color chooser dialog support


Module: grafix


2006 march 20

made viewselect gadget (tab control) cpp members public, so that the zs4 editor (for example) can add private buttons (for file opening dialog).

2006 march 3

added two methods, SelectRGBQuery() and SelectRGB() to i_gui class, so that a UI implementation under win32 fltk, carbon or sdl may tell an app (zs4) that it supports color choosing, which will allow the addition of color choosing dialogs to the zs4 UI.

Version 0.951


Module: gui_wingdi


2006 feb 23

fixed one potential crash-bug when using close-window button under windows....

Module: winfont


2006 feb 22

Made sure that winfont does no longer supply or set a system default font.

Module: mmeditor


feb 27 2006

changed the wave panel so that the copy to variable envelope buttons are disabled if they wouldn't work anyways, ie. if there is no selection highlight.

feb 26 2006

fixed the clipping of a track ending in arrangement pane so it works even if the beginning has been clipped previously.

feb 22 2006

in arrangement view track label tooltip now shows full file name if track is an imported media file.

sidplaying both track label and full file name (of media clips) in track properties panel. label change feature still not implemented.


Module: grafix


2006 feb 23

changed behaviour of file browser/treeview control such that clicking on a directory name will either expand or refresh that directories listing. collapsing must be done using the little minus (-) button to the left of the directory name.


Module: tabpix


fixed tab_object::Scale32() linear scaler (range overflow issues), which allowed the repair of the wave reader (wav and avi files) such that it now supports 8 bit unsigned wave formats (uncompressed).

Module: kernel


2006 feb 22

added "tracklabel" property to i_timestein class (base class for objects with timelined/tweened properties)

Version 0.950


Module: guifltk


2006 feb 2

we've upgraded to version 1.1.7 of the fltk package, since it had more success building on osx than did 1.1.6. All versions/flavours (osx,linux,win32) are now using the latest rendition of fltk. br

Module: grafix


2006 feb 4

fixed margin handling in string boxes so that the text string boxes observe left and top margin within their bounding boxes.


Module: tabpix


2006 feb 2

made sure that the media player based input filter can not read *.dv files made by iMovie. bummer. but that's billyboy, ain't it...

2006 jan 21


Module: kernel


2006 feb 3

fixed bug where zs4 will not start up (hangs when launching) on both unix systems, osx and linux. this hopefully.

Version 0.949


Module: mmwmed


2006 jan 21

first functional-appearing version of wmv encodage. at this point the stuff is based on the windows media format SDK, version 9.5.


Module: tabpix


2006 jan 21

added running export-time-stamp methods WriteTimeGet() and WriteTimeSet() to allow zs4 to transmit a relative export time stamp to the export driver (wmv driver specifically).

2006 jan 20

added to methods to tab_filebuf class (win32 only) which serve the purpose of using and accessing wide string information in windows media encoder subsystem, amont others. the methods are:
- tab_error SetFromWideString(WCHAR * wstr);
- static tab_filebuf * VectorizeStringFromWideString(tab_vector * v, WCHAR * wstr, bool unique);

fixed windows media reader to no longer report *.wmv files as a writable format. this is a reader only module (media player nuts and bolts).

Version 0.948


Module: tabdec


2006 jan 2

made decoder configurable separately for any invoking program. if a program (someprog.exe) plays the video upside down. then a configuration file for that program "someprog.exe.tabdec.ini" can be set up. every fourcc can have a decoder ini group like [MJPG_decode] with an entry that says "upside_down=1" if the coded should flip the video frame upside_down during decompression.

additional code has been added to the tabpix module for this (the above) purpose.

Module: tabaudio_pa


6 jan 2006

addressing gcc compiler warnings

Module: mmtext


jan 3 2006

added horizontal aligment variable to credit text generator.


Module: mmeditor


jan 3 2006

added two variables: text alignemnt and text vertical alignment for use in text based signal generators (character generators).

jan 2 2006

added a separating space between the clipboard buttons and the pseudo-depth toggle in the track properties tab.

additional skin id's in track properties for video, audio and toolbar rows.

dec 22 2005

added a button to the arrangement pane which facilitates the trimming of the current track from the current time (position) to the end of the track.

dec 20 2005

improved Help/F1 response in a fashion which allows the zs4.net website to provide more accurate help information. specifically for the track-specific buttons on the arrangement page which allow the viewing of rectangles, audio etc in the upper (track) panels.

changed the add effect functionality so that any nely added effect overlaps the parent track by 10 microseconds at the end. this is to make SURE that the effect track is safely active beyond the ending time of the parent track.


Module: tabpix


2005 12 30

added support for reading and writing *.ini files from this lowest level of tab support code...

Module: zweistein_skin


jan 5 2006

added missing button for change key (motion key) to mark key frame (frame for transparency comparison)

added button to arrangement toolbar which facilitates the cropping of the end of track (starting at current project time)

Version 0.947


Module: zweistein


2005 november, the 3rd

adding the following note. this is only the history for the launcher module. for a complete history check the file http://devel.zs4.net/zweistein_autohist.html


Module: mmeditor


2005 11 28

removed watermarking from projectitem render method (project treeview)

2005 11 23

added button ["trim up to current time"] which allows the trimming of the current track up to the current project position (time) in arrangement pane.

fixed to trim-to-mark button [c] in arrangement pane such that the end of the clip is no longer extended by the same amount as it is trimmed at the beginning and attempted to prevent a resulting clip of less than 1 second duration.


Module: grafix


2005 11 28

removed watermarking from treeitem render method

2005 11 27

altered the text content of the help (former 'about' tab) such that (if the application is zweistein) the t@b on the web link is replaced by a "more info about zs4" link.

2005 11 23

fix: tool tip popups (UI Hints) used to pop up too fast. they are now delayed 1 to 2 seconds. this delay is controlled by the "tooltipdelay" property of the gui object class (static prop).


Module: tabpix


2005 11 126

changed copyright date to include the year 2005

Module: kernel


2005 11 23

invalidate cached time values in more spots, hoping that crashes on delete-keyframe feature will vanish...

Version 0.946


Module: kernel


2005 10 30

optimized get next/prev keyframe for var-envelopes somewhat (again for cases of many key frames or key frame fetches...

2005 10 29

added more sensible caching algos for optimizing interpolation at high key frame frequencies.

2005 10 27

emergency fix. for time variable optimizations. forcing immediate deprication of v0.945

Version 0.945


Module: mmeditor


2005 09 13

added support for time based color variables.

added linear gradient signal generator and alpha gradient filter


Module: tabsdl


2005 9 11

mouse wheel support has been fixed/added for this gui driver. now the only missing item is file (and other) dialog support.


Module: tabpix


2005 10 13

added support for rotating a point about something other than the coordinate 0:0 (rotate2D function about an other point)

2005 10 11

when generating an output avi file, the frame rate in the avi headers now reports a rounded value of the actual frame rate. an (ntsc) rate of 29.97 frames per second will be shown as 30 fps.


Module: kernel


2005 09 13

added a member pointer cache for time values, so that the members time and object in these time/object pairs need not be retrieved over and over. also started to correspondingle use optimized member access for this data type.br

Version 0.944


Module: mmeditor


2005 09 11

reorganized convolution filters into subgroups for blurr and edge effects.

also added a "blurr chroma" effect.

2005 09 9

remove prespective effect is now properly categorized as "distortion" effect.

2005 09 8

use new non-locking UI object tree for the zs4 control


Module: tabsdl


2005 9 10

started this plugin and got the basix running on both linux and win32, this SDL stuff is really SLICK!!!


Module: cmd


2005 9 10

added support for command line argument "-gui guiobjtype"


Module: grafix


2.h 2005 09 8 enable the (optional elimination of locks in the UI GUI tree. which hopefully makes the UI a tad more snappy


Module: tabpix


2005 9 11

added methods to convert whole bitmaps from rgb 2 yuv and vice versa in a non-planar fashion.

2005 9 10

added tab_bitmap methods to retrieve bitmap pitch and bitmap bits

2005 09 7

added locking and threading logic wich used to be in kernel library. and changed buffer logic to recycle small memory allocations instead of reallocation them.


Module: kernel


2005 09 7

removed buffer, locking and threading logic destined for lower level portability layer.

Version 0.942


Module: mmeditor


2005 sept 1

done a shitload of stuff in tha last few days, including:

added video preview facility (still slow, but much easier than before), including a play-preview-again button.

included a movable devider for the video rectangle pane in the uppaer half of the window.

fixed crash when hitteing up, down or enter keys on a string variable in list tab (bottom left pane)

fixed bug where space bar in var tab also (erroneously) moved the time slider forward

2005 aug 28

build in registration button, allowing the removal of watermarks from effect filters marked commercial (strawberries) . br

Module: tabpix


2005 08 21

added a class tab_dl, designed to support dynamic library loading on a low level. this is primarily for the creation of a FreeFrame client, which requires dynamic loading of FreeFrame plugins. more info on that topic at http://www.freeframe.org

Version 0.941


Module: mmeditor


2005 august 16

made the default key frame frequency for wave-to-envelope keyframes 30. (used to be 10)

added a pseudo-depth to the compositing procedure. this requires a mixer to have the psude-depth toggle (track/properties pane) pressed down (on) and the "distance" variable of child tracks to be used for setting the relative distance of a child video image to the normal/default position. increasing distance results in a smaller image, less distant from the center. decreasing distance results in a bigger image, further from the mixers center.

2005 august 15

signal generators and effect containers which are imported into the root project will insist on being 10 seconds long (instead of 1 second)

imported items will now be positioned with their beginning matching the current global time.

submixers now can be moved precisely using the properties panel in the upper track->properties pane

fixed problem where a "pasted" track did not appear at the "top" of all its new siblings...

fixed problem where submixer is invisible on track display (arrangement pane), due to it being empty (and shorter or equal to 1 sec long)

fixed cut/copy/paste operations so that copied tracks, when pasted, re-appear at the same GLOBAL (project-) position, and not at the same local position. the effect of this is the preservation of (musical) synchronization, even when moving a track in/out of a container/mixer which does not start at global time "0". this whould make cut/copy/paste results make more sense intuitively...


Module: kernel


2005 august 16

optimized the retrievel of envelope values. (time-varying control values) using binary search strategy.

added a pseudo 3D element to basic compositing, which requires the video mixer to have the pseudo-depth flag set, plus the zposition/zmove variable of the corresponding child tracks.

Version 0.940


Module: mmvpatt


2005 august 1

added to "finished" pattern filters which allow signal replication with scaling. one filter repeats the signals in front of original signal, the other repeats in the back.


Module: mmeditor


2005 august 9

fixed the wave tab so it may (with difficulty) also give preview glimpses of audio in mixer and submixer tracks. also the "wave" buttons in tracks of the arrangement pane as well as in the current tab now always are active...

2005 august 1

visual feedback in "current" tab (lower right) for the placment of the center of the video frame....

2005 july 29

added more progressinformation during export (total frames, fps, current/total seconds)

added support for "audio-master" in export panel, allowing for external *.wav files to be defined as external audio master for a A/V export session...


Module: guifltk


2005 08 8

fixed file selection prompt so that it shows all files with ALL appropriate extensions by default.

2005 08 6

changed fltk drives such that the file selection dialog no longer shows directories starting with a "." character. (hidden dirs)


Module: tabpix


2005 08 8

fixed SystemWhich() function for linux and osx so that they also recognize files which exists in the current directory ./ /br

2005 08 6

added support for decoding the fourCC code "444P", which i found when dumping the RIFF struction of an mencoder generated AVI files that was scaled.

made tab_object::SystemCommand() abortable...

Version 0.939


Module: showaudio


2005 july 22

added zoom in/out/all buttons for import mode of zs4 editor

2005 july 20

added the ability to display 2 time positions in the wave-peak-display methods, this in the course of allowing zs4 users to create loops and thus necessary for marking an end-loop-position as well as a (start) position marker (snap-marker).


Module: mmeditor


2005 july 21

added effect containers which retain (fromchild object processing) either the more transparent or the more opaque alpha bits...

made musical-time-toolbar remember musical beat values

rearranged buttons on the musical-time-toolbar (more sensibly?)

2005 july 20

added loop-managment buttons/tools to the toolbar of the track->wave display.

2005 july 19

added button to "cut" track up to "mark". this is new to the track->wave panel as well as the toolbar at the bottom of the track/arrangement panel. the feature always applies to the current track.

2005 july 12

fix visual feedback for remove perspective video effect. top right corner now is properly displayed.

2005 july 11

added option to export audio from beginning of project in order to facilitate audio post production in external 3rd party program.


Module: kernel


2005 july 24

fixed "displace-variable-envelope" method in i_primitive class.

2005 july 21

added 4 member primitives to timestein object class: BeatsPerMinute, TicksPerBeat, BeatsPerBar and BarsPerPart. this for the purposeof zs4 "remembering" musical timing on a per-track basis.

2005 july 20

added the ability looping capability to the audio/video compositing methods. this is the functionality for smoothly blending both audio and video signals in loops.

Version 0.938


Module: mmeditor


2005 july 1

fixed crash when inserting effect into string track

2005 june 30

made it so that one can move frompoligon keyframe to poligon keyframe...

Module: tabfltk


2005 06 28

first cut

Version 0.937


Module: mmeditor


2005 june 20

added poligonal effect containers.

2005 june 19

centre points visualized in current tab for "circular" effects and other visualizations.

added alphachannel poligon filters


Module: grafix


2005 06 18

fixed font support so that fonts with spaces in the face names have a reasonable chance of being displayed successfully.


Module: kernel


2005 06 17

fixed the envelope rendering for non-floating point time variables (strings). the result are vertical yellow (key-frame-)lines whereever in a track that the value of a variable (string) changes.

Version 0.936


Module: mmeditor


2005 june 14

added string generator and digital time generator video filters, fixed next/prev keyframe buttons in current panel/

2005 june 12

fixed musical time bar for arrangement pane. now properly advances (or reduces the time index of the arrangement pane by the indicated musical steps (tick, beat, bar or part).

re-organized effect container classes into the main sub-groups, shapes with/without gradient edges and pixel modes (draw modes)

Version 0.935


Module: showaudio


2005 june 10

fixed file reader in playback loop to properly fetch samples without repeating every 6th sample or so...


Module: mmeditor


2005 june 10

fixed audio file reader in playback and export loops to properly fetch samples without repeating every 6th sample or so...

2005 june 8

added gradient shape containers, which limit contained effect processing to the inside/outside of circles, rectangles and ellipses.

added a variable manipulation section to the toolbar of the "current" tab.

added gradient alpha shapes (rect,circ.elli) filled opaqueness or transparency

2005 june 7

added a pile of visualizations to the current panel for distortion and container fx...

2005 6 5

the contents of the envelope clip board will be visualized in the select strip of the arrangement pane.

added the following pixel filters: negative yuv (brightness), and negative RGB (which is roughly negative brighgness with colors all weird.

added the following pixel channel filters: copy U to A, V to A and Saturation to A as well as negative saturation and negative hue.

added filters for generating transparency/opacity based on similarity to rgb or yuv colors.

Module: setup


2005 june 5

added a setup constant for the *.t@bsetup files for referencing 3rd pary licenses.

Module: tabpix


2005 06 12

changed compile options for linux from -march=686/pentium4 to -mcpu=686/pentium4. it is hoped that these changes allow the softwaer to run on an opteron as well.

2005 06 7

for linux pentium4 flavour made all TAB(FAST)FLOAT variables 64 bit.

added a bunch ofprimitives to tab_bitmap cpp class, enabling the drawingof lines ellipses, circles, rectangles (filled or outlined)...

Version 0.934


Module: mmeditor


2005 6 4

track related panels with a time slider now also feature a time-manipulation toolbar, which, for now, will allow precice positing and arbitrary forward or backward time deltas.

fix bug where image is video single frame is not exported (still image case) if no directory was specified. now it saves it into ~/t@b/export/current_date/

2005 6 3

added three color manipulation effects which rotate points in the rgb color space about an axis going through the center of the color cube, paralel to r,g or b...

2005 6 1

added choice box to wave panel which allows the setting of the key-frames-per-second when copying a wave form to the envelope clip board.

2005 05 31

fixed some track distplay (arrangement windows stuff): now rectangle, variable and properties buttons are always visible (if track is visible). they also should always work.


Module: guifltk


2005 05 31

fixed file dialogs to display fave image formats in preview pane (jpg,png,bmp)


Module: tabpix


2005 06 1

minor fix forwriting avi/wav meta INFO list chunk, now should be parseable event by the tabriffdump utility.

improve wav reading speed for reverse reading and random access, cached reading...

Version 0.933


Module: gui_wingdi


2005 05 29

added support for file dialogs in this driver.

Module: mmeditor


2005 05 29

added "browse" buttons to the export panel and the project panel.

added string box and 3 buttons in vees control (arrangement toolbar) to precicesly set the current (global) time or move it ahead/back by a precise amound.

eliminated the dead buttons in the variable panel which used to go to prev/next track variable...

2005 05 28

added two more bitmap distortion effects to make lines thicker and thinner.

improved status messages displayed during export and otherwise.

2005 05 27

fixed mouse-based movement of effect (source) rectangle for the "current" tab of effect rectangles

fixed still image export such that it is now possible to specify a full path/file.png name for the export file, and STILL successfully export...


Module: guifltk


2005 05 29

added support for file dialogs in this driver.

Module: grafix


2005 05 29

added methods to allow gui drivers ( guifltk , gui_wingdi ) to provide system specific file dialogs, for file selection.

Module: kernel


2005 05 27

fixed the definition of the "Media Time Offset" variable so that the minimum value is the LOWER value. (this used to mess up the usability of time mapping.

Version 0.932


Module: mmeditor


2005 05 26

enable to copying to envelope of left and right audio channels separately. the use will be things like potentiometers etc...

added a few very simple progressive alpha modifier effects (transitional video effects).

2005 05 25

changed the source rectangle display to a "ancestor-browser" which allows the user to observe the impact of changes to the current track on all its parents (grandparent, great-grand-parent etc...)...

2005 05 24

added move-source-crop-rectangle button/tool to "current" tab. also started to "highlight" and give visual feedback for "current" tab...

Module: kernel


2005 05 24

added virtaul method void i_timestein::DrawUserInterfaceAides(tab_bitmap * frame, tabticks at); this happens to enable improved visual feedback in derivative classes (video effects).

Version 0.931


Module: mmeditor


2005 may 20

added select-range sensitive equal feature for envelope.

2005 may 18

added select-range sensitive add/mul feature for envelopes. made paste envelope and cut/copy envelope select range sensitive as well.

also created an un-bulger, but didn't tell ariana :) at least not for the first 30 minutes.


Module: grafix


2005 05 21

removed legacy video effects since superior items are now available in the mmeditor modules which is the core of the zs2 application.


Module: tabpix


2005 may 18

added a peek-average fetch method to cpp class tab_peek, this happens for frequency sensitive noize gates etc...

Version 0.930


Module: mmvpatt


2005 may 7

added wave pattern effect.

Module: mmeditor


2005 may 9

added two mixback effect containers so that the effect results can be mixed with the parent tracks.

on the upper (single) track variable tab, added cut,copy and paste buttons for both, the variable frame of the current track variable as well as for the complete current track variable envelope.

also added basic variable envelope scaling in the same *current trackvar) panel. these four buttons currently allow the scaling of the envelope between min and max, between min and dft, dft and max as well as between max and min (upside down).

2005 may 6

added point symmetrical bulge effect.

2005 may 5

added curcular magnifier effect under bitmap filters / distortions

added circular bulge effect under bitmap filters / distortions

made sure that video render quality applies also when exporting a still frame only.

added 2 point to point distortion effects (elliptically and rectangularily bounded) :)


Module: guifltk


2005 05 10

switched upper and lower case for string entries under linux.

Module: grafix


2005 may 5

started circle drag tool. this is a new drawing feedback tool which, unlike "oval" uses the start point of the drag as center and the distance between start and end point of the drag as radius.

Module: tabpix


2005 may 12

the class tab_af_imagio, which "streamifies" still images has been changed to report the stream duration as 30 seconds.

2005 may 11

included some metainformation into the output file (wav and avi). this is a RIFF info chunk with engineer=user, software=zs4-kernel, etc, overridable by the property keyvalues fron the cpp object "tab_af_wavio".

allow the extension "zsv" for zs4 generated avi files. this allows a motion-png video which the win32 media player cannot read to be renamed with an extension of ".zsv", which allows zs4 to read the avi file using its on parser and internal codecs, bypassing wmp shortcomings.


Module: kernel


2005 may 9

added support for variable envelope scaling in the i_primitive object

2005 may 8

added support for better auto documentation in the class timestein and all of it's child/derived classes. the extension specifically handles tweener dependent, timed properties and lists those with links on the devel site (this site).

Version 0.929


Module: mmeditor


2005 may 3

addressed major discrepancy between the way copy/paste track variables is supposed to work and the way they were actually working...

2005 may 1

created effect to generate alpha channel based onan ellipse defined by 2 focal points and a progress value.

added blurr-alpha effect. rgb channels will not be blurred.

added "remove perspective" effect. serves the purpose or cleaning up rectangular are that were shoot froma camera perspective.

2005 april 30

using the shortcut key 'a' or 'A' in the project tree view will select all items (make all items visible in the track display)

2005 april 29

when opening a zs4 project file, then all tracks will be selected by default.

changed default duration for still images to approximately 30 seconds.


Module: grafix


2005 may 1

major overhaul of t@b object class registrations, such that the registration methods are static and no longer require c++ instance of the t@b class to proceed with type registration. this was done since it seemed to help with the kernel module.

Version 0.928


Module: mmeditor


2005 april 27

fixed home/next/prev/end buttons on time sliders so that they properly recalculate video frames.

eliminated unnecessary frame recalculations when loading/opening projects. this, brw, should SIGNIFICANTLY improve load time of complex projects..br
added a color hue changer and a saturation changer to the group of pixel filter effects

if an output file with a still-image extension is specified in the export panel, then the program will export the current frame of the current track as a still image into the ~/t@b/export/date/ folder


Module: tabpix


2005 april 28

after revisiting complaints about a video import limit of about 3.5 minutes in the win32 (ms-player-reader), expanded some stuff to 64 integral values in the hopes that this will address the acusations... :)

Version 0.927


Module: mmvpatt


2005 april 20

added a logarithmic "distorted", pseudo 3D pattern algorithm.

Module: showaudio


2005 april 19

ensuring that progress is displayed when a video stream is opened and the peek file generation is in progress. this will hopefully indicate to the user that the program is NOT frozen, but analyzing the opened file....


Module: mmeditor


2005 april 23

eliminated a big number of re-computations of video frames. this should lead to a significant improvement in UI responsivenes.

2005 april 22

added a global toolbar (at bottom) containing (for now) a refresh (F5) button.

2005 april 19

added prompt for jpeg compression quality when exporting avi with "mvjp" codec.

Module: grafix


2005 april 19

made internal classes of i_surface exportable for windows...


Module: tabpix


2005 april 24

attempt to fix jpeg still frame encode bug (default quality was wrongly 0 instead of 90...

2005 april 21

added nifty, mutant, additive blend to tab_bitmap::RotMovScale(), this was done for supportingsome higher level pattern generation algos...


Module: kernel


2005 april 24

eliminated quality parameter from i_timestein::GetVideo() and i_timestein::GetVideoMixdown() since the quality argument is now kept in the timestein_params object.

2005 april 19

cleaned up kernel class registration, so that all registration for this module takes place in static cpp methods (faster and uses less stack).br

Version 0.926


Module: winfont


2005 summer

added this module to video editor bundles... this should facilitate "skinning" using fonts other then the "original zs font" (fontpigfont).

Module: mmeditor


2005 april 13

attempting to fix the situation, where the timeslider of a track panel seems un-moveable.

when loading a *.zs4 project file, the application will automatically and recusively scan the directory containing the project file for missing media files (pix, waves, movies).

2005 april 11

added (to the track properties panel) the means to enter ddirectly the position, length or end-position of any track other than "mixer" tracks.

2005 april 9

added increment/decrement as well as to-start/to-end buttons to the track displays time slider

while doing this, the syncing of the slider knob to time-changes has also been somewhat improved. if the time is adjusted from a different panel, the track display's time knob whould shift position accordingly.

2005 april 2

added a pile of explicit typecast for 64bit-integral arithmetic in the hopes that OSX track display problems might "go away" :)

Module: tabpix


2005 april 11

added shortcut method to tab_bitmap which combines init/copy functions into a new CopInit() method...


Module: kernel


2005 april 15

fixed the center or source bitmap in compositing logic: now the center of a video clip is always the center of the source-cropping rectangle, adjusted by the source-center variables. this should be corresponding better with "intuition" now.

2005 april 13

added a host of items, namely timestein variables for z-position and z-size, which will be used for audio AND video mixing

also added a new base class amix , which serves the purpose of hooking up pan knobs on a mixer interface, with alternative sound- positioning algorithms, like legacy (analog) pan knobs, openAL gaming style positioning of sound, openGL positioning of ojects or custom positioning algorithms. this includes NO IMPLEMENTATION of any sound positioning yet. 2D video positioning has previously worked.

Version 0.925


Module: mmeditor


2005 easter weekend

925 is a quick/emergency patch to version 0.924, no actual changes have taken place.

Version 0.924


Module: gadclsview


2005-march-17

allowed skinnability of class item icons based on them being either an abstract class or one that can be instantiated.

Module: mmeditor


february and march

most of this module was actually written in feb and march of 2005, after spending a month or so trying to play catchup on osx versions for fotoman and waveman.in this time we've added the ability to import and export avi, to to base-line composition/mixage and keying. we've connected our zs3.01 matrix processor (revised). we established a new modular video signal processor architecture (VSP), build intrinsic (avi-embedded) motion jpeg, our own motion png format (avi-embedded fourCC 'mpng'), enabled and alpha tested recursive audio and video mixer-sub-groups just to name a few of the things keeping us 'incommunicado...'

Version 0.923


Module: showaudio


2005 feb 5

fixed the problem with the normalize toggle in the export tab. this affects the waveman application such that the "not normalized"/"normalized" button surface reflects the true procedure during export...

2005 feb 3

hacked class document_audiopeek thinggie to avoid excessive re-scanning for peek-file-creation. this should imroove average open-file performance

2005 feb 2

groundhog day. modified showaudio class so that
files with video only can be imported as well. the control, upon open, simply goes to the video tab ihnstead of the wave tab if such a audio-less file is opened.

2005 jan 31

added an internal import mode flag. this causes the showaudio component to display a more minimal UI if it is impedded in applications via a showaudio derivative... in short, mekkit look different when embedded in zs4.


Module: mmeditor


2005 feb 3

when clicking on a picture of the slideshow, the currently displayed picture is opened as "multimedia-stream" and the picture shows up in the video tab (hopp-fooley)

2005-01-31 (Jan 31)

added track management feats. moving and extending/shorteing tracks using mouse-drag.

added showaudio-derived mmimport class. allows for lesser audio viewer when embedded in zs4.


Module: guifltk


2005 01 26 (sun)

reversed caps-lock change for linux.

Module: grafix


2005-feb-18

treeitems now have to more style tokens. "background-color-currentitem" is used for the background color of the +/- and icon gadgets if the treeitem is the one and only "current" item of the containing treeview.

"background-color-selected" is used for the background color of the treeitems name-string if the select-state if the treeitem is "on" (multiple) treeitems may be selected at the same time.

2005-feb-16

most shortcut keys are no longer case sensitive. this also due to case confusion in fltk.

2005-feb-10

added more style keywords, particularly for th alignment of background images.

2005-feb-5

added style keywords "margin" "margin-left" "margin-top" "margin-right" "margin-bottom" as well as "width" and "height". interpretation of these style keywords is not fully complete, but it is now possible to set top margins for tab buttons...

2005-jan-26

the toggle gadget now supports toggled skinning of background images, i hope. this a response to skinning complaints from the CEO dept. this appears to include also a background skinning bug.br

2005-jan-24

the digmap and digslides objects has been changed to allow HOME and END keys to bring the slide show the the first, respectively last picture.

an attempt has been made to fix the "input disregarded" bug in the digmap object. as a result the slide show should respond to EVERY bit of user input.


Module: tabpix


2005 02 2 (wed, Jan 26)

groundhog day. made wrapper to allow the fiewing of still images (jpg etc) as media streams. fixed length = 10 secs.... this means that ui objects like showaudio and mmeditor now are capable of viewing jpg and other images as if they were streams. this affects waveman and zweistein (zs4) products.

2005 01 26 (wed, Jan 26)

internal audio-samples per second has been increased to 48 kHz, to be in line with popular DVD requirements. there is a hit on audio playback performance (~15%)

Module: kernel


2005 feb 13

added timed-variable capability. this allows the properties to mutate in function of time. used for zwobel stobel. in particular the rendering for value-curves over time has been but into the kernel module.

Version 0.922 and before


Module: mmeditor


2004-11-23-Tue

the file selection now only reads files which this program hopes to read/load. no more .html files listed, for example. this has been accomplished by a simple, wide ranging change in modlue grafix .

Version 0.922


Module: showaudio


2005 jan 22

updated the slide show tab to be as consistent with the new digslides object int grafix module as possible. this means that, at the least, the left and right array keys are going to work to move from one slide to the next/previous. there's a real chance that the refresh key (F5) will start the slides from the beginning.

Module: guifltk


2005 01 23 (sun)

the following items have changed. hoping for feedback:
- no more CAPS lock reversal on keyboard input. for linux this used to be brocken and i reversed the case of asci chars. no more

the fltk interface now shows both, the system mouse pointer as well as the t@b pointer. this mainly due to the fact that setting a blank cursor caused nasty results on osx panther. (10.2?)

2005 01 19 (wed, Jan 19)

fixed bug where the caps-lock key seems to be in the wrong toggle state either linux or darwin. now use a #define to generate a upper/lower case toggle for ascii keyboard events.

Module: grafix


2005-jan-19

encapsulated digmap object in new gadget/canvas type "digslides". this for easy inclusion of "recent-digs-slideshow" into any application.

if the digslides object has a "showimages" parent gadget then clicking on a slide will send the image to the showimages control (fotoman).

futhermore the digslides control responds to the standard "Refresh" function key (F5) which will attemt to update the slide show with the latest (un-)digs.

Module: document_dig


2005-jan-19

the default number of digs has been increased 5-fold to 500, resulting in longer slide shows, reaching further into the past...

Module: tabpix


2005 01 12 (wed, Jan 12)

made raw 24 bpp win-bump encoder for "uncompressed" avi co(dec). this should also mean that (without further mucking) the fotoman should be capable of exporting *.bmp files (by specifying that extension in the file name) and the command line utility tabconvert(.exe) should now actually succeed in converting to that image format.

Version 0.921


Module: tabaudio_pa


ported to osx. now used as osx sound module.

Module: showaudio


2004 end

removed (temporarily?) the events tab from that waveman application display

Module: guifltk


ported this one to osx. now its used instead of the module guicarbon

Version 0.920 and earlier


Module: kernel


2005 jan 2

started attacking port of module "kernel", the tab "orb", to osx. notably have no high accuracy clock for osx and thus used the standard "C" function time() and getting micros by multiplying seconds * 1000000. OUCH!.

hmm i'll just blame steve.

Version 0.920


Module: grafix


2004 12 16 (December 16)

changed export fotoman dig so that one may specify an extension ".png" for exporting png files.

added more infos to the tabout class. results: the "about" tab in tab applications provides now a "t@b on the web" button, which reminds our user whence the software cometh from, plus a cuppel copyright remarks.

the about tab has also received some german translations.

Module: tabpix


2004 12 26 (sun)

now got an avi parser which can (for now) extract audio from avi files. this in the course of creating a raw-uncompressed-avi writer for both zweistein 3.01 as well zs4

2004 12 22 (wed)

added proper support for gradient transparency in win32 icon loader. added support for 1 bpp monochrome cursors and icons with proper boolean transparency.

Version 0.919


Module: guifltk


2004 12 17

this module (since fltk already does it) now loads *xbm, *.xpm and even some *.gif images. not very usefull, but marginally cute...

and, oops, also: *.pnm *.pbm *.pgm *.ppm , again courtesy of the VERY, VERY nice folx at http://www.fltk.org/

Module: tabpix


2004-12-15

fixed string to color conversion. the fomats now permissible are:
- "rgb[a]" (hex values 0-f, alpha digit optional
- "rrggbb[aa]" (hex values 00-fff, alpha digits optional
- "red", "green", "blue", "orange", "yellow" etc...

2004-12-18

fixed 32 bit format reading for wav files... so at this point the wav reader can handle 16 bit (type 1) waves of (hopefully) all sample reates and channel counts, as well as 32 bit wave files (type 1 and 3)

Version 0.918 and earlier


Module: zweistein


2004-11-23-Tue

the file selection now only reads files which this program hopes to read/load. no more .html files listed, for example. this has been accomplished by a simple, wide ranging change in modlue grafix .

2004-11-12-Sun

inaugural cvs commit

Module: showaudio


2004-11-13-Sat

an insane amount of program changes have affected this module...

directly inside this module:
* the addition of an export tab allowing sections of the viewed audio file to be exporting with normalization, fade-in and fade-out (all optional)
* a new tab has been added will (soon) govern the management of audio events within sample streams. (yes, we're serious about this)
* enabled the selection of amplitude ranges (up to two amplitudes per channel). this is done by drawing rectangles in the wave display while holding the SHIFT key.
* a completely and utterly beautifull frequency display has been added on a per-channel basis. the display can of course be easily turned on and off.
* the peekfile content has been extended to also include basic frequency statistics for 10 bands ranging from 50 to 15000 Hz (roughly, likely more)

and indirectly through modifications in tabpix , tabaudio and document_mswav among others...

... and the addition of the modules document_mp3, document_ogg and document_msplayer

which of course primarily affects the product waveman .

2004-10-20-Mon

fixed pause button behavious. now pause stops playback WITHOUT seeking to start (setting position to beginning of file/selection)

fixed load-while-play crash, methinx

2004-10-18-Mon

added an audio dig feature to the showaudio logic. this includes a simple "dig" button (banana-bunch), for memorizing sections (selections) from the currently displayed wave file. and a "next-dig" button to move from one selection to an other.

2004-10-12-Tue

Not offering playback device choice if there are less than 2 devices available. this typically saves the UI space used for a device-choice gadget. now also properly resetting media position when new audio file is opened.

also, when a clip completes playing the "current-play-position" is automatically reset to zero (the beginning), so that the user only needs to press "play" once more for hearing the same tune again...

2004-09-27-Mon

hmmm, theres been a shitload of progress here... the module plays now wav files back on both linux and billyboy. billyboy of course sounds like crap, since nobody cares to deal with the stoopid ms interfaces...

2004-09-17-Mon

instigate this module

Module: setup


2004-11-24-Tue

setup now sports a lizzard on the left side edge of its window, including a 90 rotated string which identifies the software being installed precisely during the whole course of installation.

2004-11-14-Mon

installer now adheres to color scheeme of fotoman and waveman.

2004-10-19-Mon

Altered Installer so that it can be run from the command line with an "-a" or "-auto" or "-automatic" option. this runs on some systems even though the (default) interactive mode might not.

2004-10-12-Tue

altered installer, so that it never asks again: "want desktop icons?" or "want associations". the installer now simply adds the t@b abs as context handler into nautilus, konqueror and ms-explorer. shortens the installation (less clicks) and still makes the apps available....

2004-09-06-Mon

added the ability to prompt the user if she want file associations established between the installed program and mime-types and/or file extensions.

2004-09-04-Sat

the setup program now checks for the existence of enlitenment and icewm desktops and proposes installation of icons on those desktops only if they exists and have been initialized. gnome and kde desktops are assumed to exist.

2004-08-30-Mon

the setup has been extended to ask the user if she likes to install icons/shortcuts on all available desktops. This currently includes kde,gnome,icewm and the enlightenment desktops...

it should also be noted that the setup utility does not actually link itself to gnome or kde libs or anything similar. thus the support for all those desktops is somewhat spotty.

an other change to the setup is the fact that upon completion it tells the user which directory the software was installed to.

Module: grafix


2004-11-24-Tue

added mothod to i_bitmap allowing the adoption of an i_gadget-contained font.

2004-11-23-Tue

enabled the folderview gadget to optionally filter for "directories only" or a set of file extensions, this has been used in the plugin module showaudio and mmeditor (products: fotoman , waveman and soon as well zweistein )

2004-10-27-Sat

a whole bunch o things have been done in the last month or so:

fixed. highlighting mix logic for string boxes and background rendering.

new i_toggle gadget class
new i_dig_video class
new i_export_dig class

on top of this there have been a HUGE i_showimages changes, which manifests itself mostly in the fotoman application.

2004-09-18-Sat

fixed crash resulting from recursively enabling/disabling complex widgets

2004-09-12-Sun

added i_vfx_r_rot180 raster-reader

fixed the graying of save button in showimages (fotoman) control. this results now in proper display of .ico .bmp and .cur files under win32 systems. in addition to this images should no longer get lost on the fly just cuz they cannot save themselves...

2004-09-09-Wed

turns out that the user can get itself into quita a big mess with the way we allows keyboard shortcuts to be on-the-fly user-programmed... from now on the user may only program ADDITIONAL keyboard shortcuts.

2004-09-08-Wed

the grafix library now supports "dragtools" a generic mechanism that allows the sub-classing of the following procedure: "conversion of mouse-drag operations into object input, including visual feedback.

2004-09-02-Thu

made sure that the kernel version number appers on some more gui application windows. specifically the generic t@b gui window.

fixed the handling/rendering of png transparencies in the image redering which is ultimately used in applets like fotoman.

started working on a generic sprite layer, primarily targeted at handling more user interface things.

2004-08-30-Mon

well, changed a shitload of stuff in this module.

1: removed to i_popup cpp class and the corresponding t@b class "popup", since internal policy has decreed that nothing shall popup in our gui (and remind people of IE). this move also gives us openings for lotsa optimizations, cuz popped up layers required a pile of (now unnecessary) logic.

2: changed the "layout_render_parent" for stringboxes, and adjusted some of the string refresh logic, so that meta info and bitmap info about string and fonts are used to reduce the number of times that a string is examind/measured/rendered.

3: changed the "Children[]" member of the gadget object to be declared with the volatile keyword. and have the i_editobject class/interface write-protect volatile objects.

2004-08-30-Sun

changed a lot of stuff around. hopefully treeviews are now faster. on top of this the tabbing for object viewers should have improved a bit...

2004-08-29-Sat

added a few (about 4) cpp classes for dealing with the browsing of type faces. this is now at a point where most typeface objects which the system can load, can also be viewed. not solved is the problem of making assignments between type faces and other objects.

2004-08-27 Fri

the issue with keyboard shortcuts has now come up. added a enumeration class "guieventkey" for a internationalizable set of shortcut keys. the system will now accept CTRL-Key combinations while hovering over buttons. this will cause that button to be assigned to the respective key.

Module: desktop


2004-09-06-Mon

added support virtual methods in the desktop cpp class, which allow file associations to be prompted for and then installed/established.

2004-08-30

added two more linux desktops (skelleton only) these are enlightenment and icewm.

Module: document_dig


august-26-2004

started this module, this hopefully will be the main document format for zweistein 4.0.

Module: tabaudio


2004-11-13

we have in the meantime moved to provide audio-digs and several improvents in our general audio logic:

new inner class audiodoc_filter in class i_document_audio. the audiodoc_filter class extends the tab_audiofilter class int the tabpic module and thus assists in making all plugins derived from i_document_audio to be accessed via the low level audio streaming logic now contained in the tabpix module.

September-2004

yes we-ve started dealing with sound devices and sound architecture on both linux and windows. while the billyboy system lacks from a "cumbersommest" api malady, the ALSA architecture under linux offers quite a lot (with a fairly sane API). sebtember now has seen audio playback, even on windows.

Module: tabaudio_linux


2004-10-20-Mon

fixed SUSE audio by NOT using the alsa function snd_asoundlib_version(). it may be noted though, that the crash occurred cuz used the expression wrongly.... as int snd_asoundlib_version (without brakets ())

2004-10-19-Tue

hmmm, after beeing fairly successfull under mandrake linux, our audio engine failed miserably under SUSE. we (for various reasons) are switching to the dynamically (load-time) linked library for linux in the hopes that this might work under SUSE...

1004-09-26

aha, audio has become such a hot topic at t@b, we made the audio glue actually utter noise (under linux)

2004-09-13

fixed dependencies, cuz this plugin wouldnt load under linux because i failed to link it with tabaudio.so

Module: tabpix


2004-11-13

much things have happened lately to this module since the improvements in imaging. most of all we have extended this collection of multimedia primitives with many audio processing features:

list of new object classes:
* tab_audiofilter, this object is now our basic building block for a pull-based processing logic, including file input filters as using the i_document_audio in module tabaudio
* audiofilter tab_af_basic extends tab_audiofilter and provides 10 band frequency measurement on a per channel basis.
* audiofilter tab_af_basic_stats extends tab_af_basic and provides accumulated amplitude statistics for all frequency stripes of all channels of an audio stream.
* utility object tab_af_chanprops for storing the properties of single channel audio chunks. props include amplitude per frequency band, overall amplitude, start and duration of the chunk
* utility object tab_af_chanprops_accu, for accumulating/averaging running properties stashed in tab_af_chanprops
* audiofilter tab_af_mswav represents to ms-wave code moved here from the plugin module document_mswav. it, of course, extends tab_audiofilter

2004-09-03-Fri

changed the minimum and maximum scaling factors to 256 (1/256 respectively) and achieve an overall scaling range where the highest possible magnification is more than 50000 X of the lowest possible magnification.

added a simple anti-aliasing capability to the (mix-)scaler. this is what sorta had some kinda causal connection with the 50000X scaler.

2004-09-02-Thu

added a mix (blend alpha source) mode to the screen scaler, and underneath that, the tab_bitmap class. also moved the inline code from the tab_bitmap.h file to the tab_bitmap.cpp file. no need to advertise our guerilla-coding-tactix...

changed the minimum and maximum scaling factors to 64 (1/64 respectively) and achieve an overall scaling range where the highest possible magnification is more than 4000 X of the lowest possible magnification.

Module: kernel


2004-11-01-Mon

added method a_object::which(const char *cmd, a_filebuf * ret); this method will be used to check to local system(path) for and executable called "cmd"...

2004-09-20-Sat

fixed a_subfile class as follows: the ReadBlock() method is no longer implemented via ReadChar() because this slowed down the wave file reader to the point where audio was aonly heard in annoying fragments... but alas! its no longer a problem ( i hope )

2004-09-20-Sat

added #define TABTICKS_PER_SECOND (1000000). this should help scale machine/performance and bitaccuracy at least a tad....

2004-09-16-Sat

fixed error in filebuf preallocation both 32 and 64 bit versions

2004-09-04-Sat

bumped version number to 0.908, since this will be the next release.

2004-09-02-Mon

bumped version number to 0.907, since this will be the next release.

2004-08-30-Mon

added the VolatileGet/Set() method pair to the i_object interface. this one goes hand in hand with the new flag bit "volatile" in the object flags member

august-26-2004

added a t@b class called "long", a 64 bit integer, which will be used as high resolution time index for multimedia functionality. this will be a funcamental pillar of "dig" functionality. In addition to this there-s also a timefloat (old zs functionality) now in the kernel, but using the high precision (64 bit, above) time index for tweening, allowing every audio sample to have its very own effect settings.

august-24-2004

at this point the kernel provides generic file/stream io for all platforms, multi-treading, locking and the base class set for t@b objects like arrays, vectors, (ring-)buffers, interpreter, plugin loader script parser and others...

ancient history

this kernel was first put together in a little system called tass (thut application support system) first on the commodore amiga (mid-late 1980s) and then windows (mid 90s). on the pc it mainly served the purpose of generating multi (second) session content for multi-session music CDs. it offered then an alternative to license-dependent authoring systems and produced in essence a static html website to go with the audio tracks on a music CD. the kernel was later found in the famous thugs at bay video editing system called zweistein (1999-2004), and then an a server suite called x2x router (separate branch of code, by thugs at bay) which included calendar, database, smtp, pop3, telnet, x2x, chat among other things.