]> lisas.de Git - aseqjoy.git/commitdiff
Introducing the new ChangeLog - Alex
authorterminatorX <>
Fri, 16 Jul 2004 15:48:02 +0000 (15:48 +0000)
committerterminatorX <>
Fri, 16 Jul 2004 15:48:02 +0000 (15:48 +0000)
terminatorX/ChangeLog

index f2a3992a9afa8030ba374e060b78d4e65ddd85fe..6830822486f70153b36a7de1c28e7d30d5012979 100644 (file)
-terminatorX - ChangeLog
-All changes were done by me (Alexander König) if not stated otherwise.
-This is not a GNU-style ChangeLog but you sort of get the idea what was
-changed.
 
-[v3.82] (pre-release)
-- merged a patch from Martin Habets <errandir_news@mph.eclipse.co.uk>
-  that fixes big endian audio playback with ALSA.
-- applied a fix from Juha Erkkila <erkkila@cc.jyu.fi> that makes tX work on
-  systems that don't have procfs mounted.
-- added an optional Dry/Wet control for all LADSPA plugins. Simply click on the
-  plugin's label to add or remove the additional control.
-- added an additional stereo effects queue that allows loading stereo LADPSA 
-  plugins. The stereo effects are located below the mono effects - to add a new
-  instance press the "Stereo FX" button and select the plugin of your choice.
-- fixed the plugin menu - empty categories no longer get a menu entry.
-- plugins that do not qualify as realtime capable will now be disabled.
-- I'm fed up with terminatorX related security postings, so the old suid-root
-  method had to go. To achieve realtime scheduling you now have two options:
-   a) run terminatorX as root (obviously dangerous and not recommended)
-   b) build terminatorX with capabilities enabled and install it suid-root.
-      Due to the use of PR_SET_KEEPCAPS this will work on Linux _only_.
-   c) use the JACK backend with "POSIX draft capabilities" (see jackd manpage)
-- Loading sets with missing LADPSA plugins no longer crash tX.
-- Fixed a bug that made reading error messages impossible with the load dialog
-  open.
-- The engine now handles audiodevices that break down when already in playback
-  mode more gracefully. This really necessary when jack decides to kick us out.
-- All vu meters are stereo now. Having a mono widget for a stereo thing just
-  didn't make any sense anymore.
-- modified the render loop to comply with LADSPA V1.1: 0 db is now at 1.0f. This
-  makes a lot of plugins work with terminatorX that haven't worked with previous
-  releases.
-- data send to the JACK backend no goes through the "Anti-Clip-Device", too. 
-  Unless you #define TX_DO_CLIP of course.
-- I've drawn some new icons with the wonderful inkscape. They're now being 
-  built into terminatorX as gdk-pixbuf c-source code, so they actually do alpha
-  blending.
-- Wrote support for gtk+'s new FileChooser widget - will be enabled 
-  automatically when configure finds a gtk+ >= 2.4.0
-- Fixed the buffer overflows detected by c0wboy <c0wboy@tiscali.it> in his 
-  outsiders-terminatorX-001.txt advisory.
-- Support for gtk+ startup notification.
-- "README.GNOME" was outdated so it had to go.
-- merged parts of a patch graciously contributed by Adam King <aking@lgh.com.au>
-  - Simpler min/maximization for the control panels
-  - Bugfix for sequencer menu crash
-  - The panel formally known as "Trigger" is now known as "Playback"
-  - TODO: complete this entry?
-- created some new icons for the GUI with the cool inkscape. 
-- added cpu-overload detection - currently disabled
+   terminatorX ChangeLog
 
-[v3.81]
-- JACK doesn't seem to like SCHED_FIFO clients so I added a little test that
-  will set SCHED_OTHER when jack output was selected. This will work for true
-  root or a capabilities-enabled suid-root binary only.
-- removed the disfunctional "Cancel" button from the load-progress dialog.
-- switched default MIDI mapping to non-destructive. (previous settings will not
-  be overwritten now).
-- added a default MIDI mapping accessible via the "Turntables" menu. The actual
-  mapping is documented in the manual.
-- fixed a bug that caused enabling sync-client setting via MIDI to fail.
-- when compiled with rt-scheduling suppport terminatorX will now display the 
-  resulting scheduling policy in the "About" dialog.
-- if terminatorX was setup to use realtime priority for the audio engine thread
-  but you dont want it - disable realtime scheduling in the Preferences dialog.
-  This works with capabilities _ONLY_.
-- if you don't want to confirm program termination every time you can now
-  disable "Ask for Quit confirmation" in the Preferences.
-- added support for Linux' POSIX capabilities. This allows a suid-root installed
-  terminatorX binary to drop root privileges much earlier than with the old
-  approach (so it should be more secure). Requires the libcap library.
-- obligatory documentation updates - clicking on the sub-sections should now 
-  work.
-- removed gtk+ 1.2 cruft - terminatorX now compiles with gtk+ 2.2 and
-  *_DISABLE_DEPRECATED macros enabled. To verfiy that you can run 
-  configure with --disable-deprecated.
-- terminatorX now has a JACK backend. Currently it works like this: on startup
-  tX will connect to the JACK daemon - if the daemon is not available on 
-  startup JACK output is not available. When the audio engine is turned off,
-  tX emits silence via the JACK ports, so you can leave the ports connected. 
-- sick of green - you can now configure the colors terminatorX should use for 
-  the audio display as well as the vu meters in the Preferences dialog.
-- hopefully fixed wrong setting of the master volume when loading set files.
-- some ALSA installations seem to core on snd_pcm_hw_params_free() after sound
-  device init. So freeing the hw_params can now be explicitly disabled in
-  the Preferences - if terminatorX crashes right after hitting the "Power On"
-  button it might be necessary to activate this for your ALSA setup. This
-  probably results in a tiny memory leak - but on leak vs core you might decide
-  for leak. Note: I even enabled the leak by default now.
-- fixed a bug that caused turntable 1 to get the focus on entering Mouse Grab
-  mode even when it's audio panel was minimized.
-- MIDI mappings can now have "bounds", meaning that the incoming MIDI signals
-  can modify the parameter within the given range only.
-- introduced a new way of assigning MIDI controllers to parameters: simply 
-  right-click on a parameter's control: a menu with "MIDI Learn" and 
-  "Remove MIDI Binding" will pop up - select "MIDI Learn" and send the 
-  corresponding MIDI event.
-- fixed a bug in the MIDI callback thanks to David Hamilton 
-  <daham2@student.monash.edu>
-- running suid root (the old way) was reported exploitable by Andrew Griffiths
-  <andrewg@felinemenace.org> - the described environment variable based exploit 
-  was fixed - however there are possibly other ways to exploit it. So the 
-  old method of running suid root has been disabled by default. On Linux 
-  systems you really should use the capabilities based approach (see above).
-  If really want to use the old suid-root solution run configure with 
-  --enable-suidroot.
-- often, you record events and mess things up - in this case I'd often prefer 
-  dropping the complete take instead of recording a bad perfomance - which is 
-  why you now can activate "Confirm Recorded Events" from the "Sequencer" menu.
-  When enabled terminatorX will ask whether to actually record or drop the 
-  events created for the last take. The setting for this flag is stored in your
-  ~/.terminatorXrc.
-- introduced a new "Sequencer" menu that allows to delete events of a specific
-  type (all, all for certain turntable, all for a certain parameter) from the
-  sequencer. Events can be deleted for the complete song, upto the current song
-  position or from the current song position. Yeah, I know, termintorX is 
-  lacking a proper event-editor here, so where's your patch? ;)
-- switching the X11 mouse cursor when the user has to wait for terminatorX to 
-  finish some operation
-- fixed a sequencer bug: the events for master pitch and volume weren't erased
-  correctly when another set was loaded
-- fixed FreeBSD issues with the configure script
-- fixed compilation issues for gcc 2.95.x
+   Copyright (C) 1999-2004 Alexander König
 
-[v3.80]
-- I've invested quite some time in valgrinding this release, among other things
-  a major mem leak showed up - the sample memory wasn't being free'd correctly
-  which is now corrected along with many other things. valgrind is a very 
-  helpful tool indeed.
-- Added a new Pitch Calculator that allows adjusting a turntable's pitch to that 
-  of the master turntable. This makes synchronizing finely cut loop samples
-  really easy
-- XML based set files can get rather huge when they contain a lot of sequencer
-  events - to solve this terminatorX now uses zlib to save compressed set
-  files if enabled in the preferences dialog.
-- I hacked support for Steve Harris' cool liblrdf - if you've got that library
-  setup correctly and you use Steve's wonderful plugin collection with RDF 
-  description you should get a nicely structured menu when clicking on the
-  "FX" button. All plugins not categorized through RDF files go to the 
-  "Unclassified" category.
-- I'm no longer including the html and ps versions of the manual - it's now
-  attached in it's XML/DocBook source and will be installed via scrollkeeper.
-  terminatorX offers a menu entry to start gnome-help to display the manual.
-- Reworked the Preferences dialog - I now use glade-2 to create that code -
-  I'm fed up with copy'n'pasting gtk+ code so now I'll let glade-2 do this 
-  whereever possible. The glade project files are included with this tarball
-  in case you want to mess with them.
-- Switched to a fixed blocksize (1 ms) for rendering. This finally allows to
-  playback set files with events recorded on machines with small buffer sizes
-  on slow machines with large buffer sizes. The buffersize of the audiodevice
-  has no effect on the "operating" blocksize anymore.
-  Note that the samlping rate has a - very small - effect though. Depending on
-  the sampling rate terminatorX will try to find a blocksize that fits exactly
-  1 ms - while this is easy for "straight" sampling rates (22000 32000 48000)
-  this results in "44.1" samples for 44100 Hz.
-- Finally hacked a native ALSA backend. It's in "Works For Me" TM state.
-- Added "Remove Binding" button
-- MIDI now uses a GIOCallback so the effect of MIDI controllers is visible
-  even without the audio engine turned on.
-- Reworked the mastergui for better usabilty and less space consumption, yes,
-  terminatorX now features a boring menubar - which helps using it on small
-  displays quite a bit, and should be easier to handle for first-time users.
-- Implemented a suggestion from Darrick Servis <darrick@dcn.davis.ca.us> that
-  stops clipping in the mixer routine. The outgoing signal is now limited as it
-  should be, which improves the output quality for signals too loud
-  significantly.
-- MIDI mappings are now stored within the (new) tX set files.
-- Applied a patch from Arthur Peters <amp@singingwizard.org> which brings
-  preliminary MIDI support to terminatorX. This is realized via the ALSA
-  sequencer interface, so in order for it to compile you have to have
-  the ALSA devel packages installed. ./configure will autodetect them.
-- Fixed a bug in XML serialization that dropped strings' contents.
-- You can now hit "F11" to turn fullscreen mode on/off - this will help using
-  terminatorX on small DJ laptops. Note that the key will have no effect in 
-  scratch mode - hit it before you enter grab mode. This feature requires a 
-  NETWM compliant window manager.
-- terminatorX now stores set files as XML documents, too - so terminatorX has
-  become terminatorXML finally. Note: for sets with a large number of events
-  recorded into the sequencer - the XML based set files can grow significally
-  larger than the old ones (see "compression" above)
-- The old code to support the obsolete binary tX file formats has now been
-  scheduled for deletion. It's been moved into the tX_legacy* source files and 
-  it will be built only when "--enable-legacy" was used on configuring
-  terminatorX (which is the default). Expect this to become disabled and then
-  totally removed from the sources in future.
-- Enhanced audio data display - you can now zoom into the audio signal, which
-  should allow much more precise scratching with larger audio files (ie 
-  complete tracks). On playback terminatorX will scroll the displayed area
-  to ensure you always see the area of the sample in which you're currently
-  scratching on.
-- I have not backported the new code to the old gtk+ 1.2 - so this release no
-  longer builds with gtk+ 1.2 - you have to upgrade to gtk+ Version 2 to be
-  able to build terminatorX.
-- fixed a nasty gcc 3.2 compilation bug - thanks to 
-  Adam Duck <duck@informatik.uni-frankfurt.de> and other reporters
+   Version 3.82 (unreleased) 
+     * in  order to have a SPAM protected online version of the ChangeLog
+       this document is now generated from XML sources.
+     * merged a patch from Martin Habets
+       <errandir_news@mph.eclipse.co.uk>  that  fixes  big  endian  audio
+       playback with ALSA.
+     * applied  a fix from Juha Erkkila <erkkila@cc.jyu.fi> that makes tX
+       work on systems that don't have procfs mounted.
+     * added  an  optional Dry/Wet control for all LADSPA plugins. Simply
+       click  on  the  plugin's  label  to  add  or remove the additional
+       control.
+     * added  an  additional  stereo  effects  queue  that allows loading
+       stereo  LADPSA  plugins.  The stereo effects are located below the
+       mono  effects - to add a new instance press the "Stereo FX" button
+       and select the plugin of your choice.
+     * fixed  the  plugin  menu  -  empty categories no longer get a menu
+       entry
+     * plugins  that  do  not  qualify  as  realtime  capable will now be
+       disabled.
+     * I'm  fed up with terminatorX related security postings, so the old
+       suid-root method had to go. To achieve realtime scheduling you now
+       have three options:
+          + a)  run  terminatorX  as  root  (obviously  dangerous and not
+            recommended)
+          + b) build terminatorX with capabilities enabled and install it
+            suid-root.  Due  to the use of PR_SET_KEEPCAPS this will work
+            on Linux _only_
+          + c)  use the JACK backend with "POSIX draft capabilities" (see
+            jackd manpage)
+     * Loading sets with missing LADPSA plugins no longer crash tX.
+     * Fixed  a  bug that made reading error messages impossible with the
+       load dialog open.
+     * The  engine  now handles audiodevices that break down when already
+       in  playback mode more gracefully. This really necessary when jack
+       decides to kick us out.
+     * All  vu  meters  are stereo now. Having a mono widget for a stereo
+       thing just didn't make any sense anymore.
+     * modified  the  render loop to comply with LADSPA V1.1: 0 db is now
+       at  1.0f.  This  makes a lot of plugins work with terminatorX that
+       haven't worked with previous releases.
+     * data   send   to   the   JACK   backend   no   goes   through  the
+       "Anti-Clip-Device", too. Unless you #define TX_DO_CLIP of course.
+     * I've  drawn  some  new  icons  with the cool inkscape. They're now
+       being  built into terminatorX as gdk-pixbuf c-source code, so they
+       actually do alpha blending.
+     * Wrote  support for gtk+'s new FileChooser widget - will be enabled
+       automatically when configure finds a gtk+ >= 2.4.0
+     * Fixed  the buffer overflows detected by c0wboy <c0wboy@tiscali.it>
+       in his outsiders-terminatorX-001.txt advisory.
+     * Support for gtk+ startup notification.
+     * "README.GNOME" was outdated so it had to go.
+     * merged  parts  of  a  patch  graciously  contributed  by Adam King
+       <aking@lgh.com.au>
+          + Simpler min/maximization for the control panels
+          + Bugfix for sequencer menu crash
+          + The  panel  formally  known  as  "Trigger"  is  now  known as
+            "Playback">
+     * added cpu-overload detection - currently disabled
 
-[v3.73]
-- Fixed a compilation bug ocurring on big endian systems only.
-- Fixed the built-in wav loading routines for big endian systems (again).
-- Finally traced down and fixed a long outstanding bug in the dial widget,
-  the background of the dials is now drawn correctly.
-- Ported terminatorX to gtk+ Version 2. The code for gtk2 will be enabled
-  when gtk2 is detected by configure. To force terminatorX to use the good
-  old gtk 1.2.x (x>=5) run configure with the '--disable-gtk2' switch.
-  WARNING: gdkxft-users: gtk2 applications segfault when preloading
-  libgdk_xft.so! So unset LD_PRELOAD and set GDK_USE_XFT=1 instead.
-- Applied a patch from Adrian that brings lots of new stuff:
-  - Debian package support (removed - Mike Furr now maintains an official 
-                            Debain package for terminatorX)
-  - enhanced GNOME integration
-  - a manpage for terminatorX
-- Included another gcc3 fix thanks to Gregor Riepl <seto-kun@freesurf.ch>
-- Improved configure's compatibilty - it should detect pthreads more reliably
-  and it should detect ladspa.h when located in /usr/local/include without
-  /usr/local/include being contained in the include path.
-- This release should compile and run on FreeBSD systems and possibly
-  OpenBSD, too. Thanks for help and testing this goes to 
-  Tilman Linneweh <tilman@arved.de>.
-- Sequencer now refuses to play when no events available - and displays
-  a dialog that suggests running the audio engine.
-- De-uglified the terminatorX note dialog.
-- Fixed gtk+2 signals for load file dialog
-- Pre-listen support for mpg321
-- Added a new auto-hiding "panel-bar" to which turntable control and audio
-  panels can be minimized to.
-- Cleaned up the turntables' audio panel for better looks and easier usage
-- Rewrote the engine thread completely - unlike before the engine thread 
-  is created on startup and kept alive until termination.
-- terminatorX can now be run suid root - and it might even be safe. After
-  creating the engine thread both terminatorX threads drop root privileges
-  before evaluating any parameters or reading/writing files, etc. The problem
-  is the pthread "manager thread" is out of control of terminatorX code - so
-  I cannot tell that thread to drop privileges.
-- Fixed Drag'n'Drop for GNOME 2
-- To enhance the loading of audiofiles terminatorX now contains code to use
-  mad (MPEG Audio Decoder), libvorbis and libaudiofile directly instead of 
-  pipeing audio data through mpg123, ogg123 or sox. As a result the new routines
-  bring following advantages:
-       - tX loads audiofiles significantly faster
-       - tX now honours the samplerate of an audiofile
-         (by adjusting the pitch of the turntable)
-       - tX provides much better feedback on the loading progress
-  Although the old loading-methods are still available (and piped loading has
-  been improved, too) I highly recommend installing the libraries above as the
-  new routines simply work better.
-- Deleted tons of old outdated code in tX_engine.cc and tX_mastergui.cc
+   Version 3.81
+     * JACK  doesn't  seem to like SCHED_FIFO clients so I added a little
+       test that will set SCHED_OTHER when jack output was selected. This
+       will work for true root or a capabilities-enabled suid-root binary
+       only.
+     * removed  the  disfunctional "Cancel" button from the load-progress
+       dialog.
+     * switched   default  MIDI  mapping  to  non-destructive.  (previous
+       settings will not be overwritten now).
+     * added a default MIDI mapping accessible via the "Turntables" menu.
+       The actual mapping is documented in the manual.
+     * fixed  a  bug that caused enabling sync-client setting via MIDI to
+       fail.
+     * when  compiled  with  rt-scheduling  suppport terminatorX will now
+       display the resulting scheduling policy in the "About" dialog.
+     * if  terminatorX  was  setup to use realtime priority for the audio
+       engine  thread  but you dont want it - disable realtime scheduling
+       in the Preferences dialog. This works with capabilities _ONLY_.
+     * if  you  don't  want to confirm program termination every time you
+       can now disable "Ask for Quit confirmation" in the Preferences.
+     * added  support  for  Linux'  POSIX  capabilities.  This  allows  a
+       suid-root  installed  terminatorX  binary  to drop root privileges
+       much  earlier  than  with  the  old approach (so it should be more
+       secure). Requires the libcap library.
+     * obligatory  documentation  updates  - clicking on the sub-sections
+       should now work.
+     * removed  gtk+  1.2  cruft - terminatorX now compiles with gtk+ 2.2
+       and  *_DISABLE_DEPRECATED  macros  enabled. To verfiy that you can
+       run configure with --disable-deprecated.
+     * terminatorX  now has a JACK backend. Currently it works like this:
+       on  startup  tX will connect to the JACK daemon - if the daemon is
+       not  available  on  startup JACK output is not available. When the
+       audio  engine  is turned off, tX emits silence via the JACK ports,
+       so you can leave the ports connected.
+     * sick  of  green  -  you  can  now configure the colors terminatorX
+       should  use  for the audio display as well as the vu meters in the
+       Preferences dialog.
+     * hopefully  fixed  wrong  setting of the master volume when loading
+       set files.
+     * some  ALSA  installations seem to core on snd_pcm_hw_params_free()
+       after  sound  device  init.  So  freeing  the hw_params can now be
+       explicitly  disabled  in  the Preferences - if terminatorX crashes
+       right after hitting the "Power On" button it might be necessary to
+       activate this for your ALSA setup. This probably results in a tiny
+       memory leak - but on leak vs core you might decide for leak. Note:
+       I even enabled the leak by default now.
+     * fixed  a  bug that caused turntable 1 to get the focus on entering
+       Mouse Grab mode even when it's audio panel was minimized.
+     * MIDI  mappings  can  now  have "bounds", meaning that the incoming
+       MIDI signals can modify the parameter within the given range only.
+     * introduced  a new way of assigning MIDI controllers to parameters:
+       simply  right-click  on  a  parameter's control: a menu with "MIDI
+       Learn" and "Remove MIDI Binding" will pop up - select "MIDI Learn"
+       and send the corresponding MIDI event.
+     * fixed  a  bug  in  the  MIDI  callback  thanks  to  David Hamilton
+       <daham2@student.monash.edu>
+     * running suid root (the old way) was reported exploitable by Andrew
+       Griffiths  <andrewg@felinemenace.org>  - the described environment
+       variable  based  exploit  was  fixed  - however there are possibly
+       other  ways  to exploit it. So the old method of running suid root
+       has  been  disabled by default. On Linux systems you really should
+       use the capabilities based approach (see above). If really want to
+       use    the    old    suid-root   solution   run   configure   with
+       --enable-suidroot.
+     * often,  you  record  events  and mess things up - in this case I'd
+       often prefer dropping the complete take instead of recording a bad
+       perfomance  -  which is why you now can activate "Confirm Recorded
+       Events"  from  the "Sequencer" menu. When enabled terminatorX will
+       ask  whether to actually record or drop the events created for the
+       last   take.   The  setting  for  this  flag  is  stored  in  your
+       ~/.terminatorXrc.
+     * introduced  a new "Sequencer" menu that allows to delete events of
+       a specific type (all, all for certain turntable, all for a certain
+       parameter)  from  the  sequencer.  Events  can  be deleted for the
+       complete  song, upto the current song position or from the current
+       song  position.  Yeah,  I  know,  termintorX  is  lacking a proper
+       event-editor here, so where's your patch? ;)
+     * switching  the  X11  mouse  cursor  when  the user has to wait for
+       terminatorX to finish some operation
+     * fixed  a  sequencer  bug:  the  events for master pitch and volume
+       weren't erased correctly when another set was loaded
+     * fixed FreeBSD issues with the configure script
+     * fixed compilation issues for gcc 2.95.x
 
-[v3.72]
-- Applied a patch from Matthew Evans <activesx@hotmail.com> that introduces 
-  support for Ogg Vorbis audiofiles. It requires ogg123 > RC2 and sox to work.
-  Autodetection is supported via configure (--enable-ogg123).
-- Experimental support for input devices other than the core-pointer
-  under XFree86 > 4. This uses the xsetpointer executable that comes with
-  XFree86. configure should autodetect this correctly, in case it doesn't
-  use the --enable-xetpointer switch.
-- Adrian sent me a patch introducing two new buttons: mute and solo. As it
-  didn't fully harmonize with the sequencer I rewrote parts of it and added new
-  functionality to the turntables: They can now be switched to mix_solo or
-  mix_mute - these settings affect current mixing only - their values will
-  neither be saved nor will changes to those control be recorded in the
-  sequencer - if you want to record muting events either use the mute button
-  from the turntable's trigger menu, the keyboard short-cuts (alt/strg), or
-  your middle mouse button.
-- fixed a bug that produced corrupt wavfiles on big endian machines
-- some minor fixes to make terminatorX compile with newer gcc releases
-- Well, I am allowed to change my mind, aren't I? Anyway, 3DNow! is back.
-  Nevertheless newer gcc releases seem to have a bug in handling movq and
-  the current 3DNow! stereo implementation does not seem to be very efficient.
-  So use --enable-3dnow only if you want to help me improve perfomance.
-- Modified the mpg123 loader in order to make it work with mpg321, too.
-  mpg321 lacks support for mpg123's -m switch ("singlemix") therefor 
-  mpg?2?'s output is now piped into sox to convert the signal to mono.
-  For this reason mpg?2? support now requires sox to be installed, too.
-- added a workaround for a gtk+ bug that causes empty labels when strings
-  contain umlauts - unluckily my name features one of these so I had to write
-  this workaround.
+   Version 3.80
+     * I've  invested  quite some time in valgrinding this release, among
+       other things a major mem leak showed up - the sample memory wasn't
+       being  free'd  correctly  which  is  now corrected along with many
+       other things. valgrind is a very helpful tool indeed.
+     * Added  a  new Pitch Calculator that allows adjusting a turntable's
+       pitch  to  that  of the master turntable. This makes synchronizing
+       finely cut loop samples really easy
+     * XML based set files can get rather huge when they contain a lot of
+       sequencer events - to solve this terminatorX now uses zlib to save
+       compressed set files if enabled in the preferences dialog.
+     * I  hacked  support  for Steve Harris' cool liblrdf - if you've got
+       that  library setup correctly and you use Steve's wonderful plugin
+       collection with RDF description you should get a nicely structured
+       menu when clicking on the "FX" button. All plugins not categorized
+       through RDF files go to the "Unclassified" category.
+     * I'm  no  longer including the html and ps versions of the manual -
+       it's now attached in it's XML/DocBook source and will be installed
+       via  scrollkeeper.  terminatorX  offers  a  menu  entry  to  start
+       gnome-help to display the manual.
+     * Reworked the Preferences dialog - I now use glade-2 to create that
+       code  -  I'm  fed up with copy'n'pasting gtk+ code so now I'll let
+       glade-2  do  this  whereever possible. The glade project files are
+       included with this tarball in case you want to mess with them.
+     * Switched  to  a fixed blocksize (1 ms) for rendering. This finally
+       allows to playback set files with events recorded on machines with
+       small  buffer  sizes on slow machines with large buffer sizes. The
+       buffersize  of  the  audiodevice  has no effect on the "operating"
+       blocksize  anymore. Note that the samlping rate has a - very small
+       -  effect  though. Depending on the sampling rate terminatorX will
+       try  to  find  a  blocksize that fits exactly 1 ms - while this is
+       easy  for  "straight"  sampling  rates  (22000  32000  48000) this
+       results in "44.1" samples for 44100 Hz.
+     * Finally  hacked  a  native ALSA backend. It's in "Works For Me" TM
+       state.
+     * Added "Remove Binding" button
+     * MIDI  now  uses a GIOCallback so the effect of MIDI controllers is
+       visible even without the audio engine turned on.
+     * Reworked   the  mastergui  for  better  usabilty  and  less  space
+       consumption,  yes,  terminatorX  now  features  a boring menubar -
+       which  helps using it on small displays quite a bit, and should be
+       easier to handle for first-time users.
+     * Implemented      a      suggestion     from     Darrick     Servis
+       <darrick@dcn.davis.ca.us>   that   stops  clipping  in  the  mixer
+       routine. The outgoing signal is now limited as it should be, which
+       improves the output quality for signals too loud significantly.
+     * MIDI mappings are now stored within the (new) tX set files.
+     * Applied  a  patch from Arthur Peters <amp@singingwizard.org> which
+       brings  preliminary  MIDI support to terminatorX. This is realized
+       via  the  ALSA  sequencer interface, so in order for it to compile
+       you  have  to  have the ALSA devel packages installed. ./configure
+       will autodetect them.
+     * Fixed a bug in XML serialization that dropped strings' contents.
+     * You  can  now hit "F11" to turn fullscreen mode on/off - this will
+       help using terminatorX on small DJ laptops. Note that the key will
+       have  no  effect  in  scratch  mode - hit it before you enter grab
+       mode. This feature requires a NETWM compliant window manager.
+     * terminatorX  now  stores  set  files  as  XML  documents, too - so
+       terminatorX  has become terminatorXML finally. Note: for sets with
+       a  large  number  of  events recorded into the sequencer - the XML
+       based  set  files  can  grow significally larger than the old ones
+       (see "compression" above)
+     * The  old  code  to support the obsolete binary tX file formats has
+       now  been  scheduled  for  deletion.  It's  been  moved  into  the
+       tX_legacy*   source   files   and  it  will  be  built  only  when
+       "--enable-legacy"  was  used  on configuring terminatorX (which is
+       the  default).  Expect  this  to  become disabled and then totally
+       removed from the sources in future.
+     * Enhanced  audio  data  display  -  you can now zoom into the audio
+       signal,  which  should  allow  much  more  precise scratching with
+       larger  audio  files (ie complete tracks). On playback terminatorX
+       will  scroll  the displayed area to ensure you always see the area
+       of the sample in which you're currently scratching on.
+     * I  have  not backported the new code to the old gtk+ 1.2 - so this
+       release  no  longer  builds with gtk+ 1.2 - you have to upgrade to
+       gtk+ Version 2 to be able to build terminatorX.
+     * fixed  a  nasty  gcc  3.2  compilation  bug  - thanks to Adam Duck
+       <duck@informatik.uni-frankfurt.de> and other reporters
 
-[v3.71]
-- applied a big patch from Adrian Reber (adrian@lisas.de). This patch includes:
-  o compile fixes for the newer gcc releases
-  o enhancements to the commandline switches (try --help for more details)
-  o bug fixes for tX_global.c
-- the bigNewThang (TM) is STEREO output. The Pan-Buttons now actually do what
-  you'd expect them to. Therefore your soundcard must have stereo support of
-  course but I guess in 2001 this really shouldn't be a problem, right? 
-  The recorded wavfiles will now be stereo wavfiles of course.
-  Note that stereo output means double audio-bandwith, so if you tuned your
-  old terminatorX setup to smallest latency you might get clicks now. You can
-  easily fix this by increasing the buffer size in the options dialog by one - 
-  this will result in the same latency as before btw.
-- The echo effect has undergone some enhancements to profit from the new stereo
-  output. It's signal will now be mixed seperately so you can choose a different
-  stereo panorama position for the echo signal. So the new echo effect now 
-  features it's own PAN-knob. This does have some sideeffects though, for more
-  details on this check the manual.
-  Additionally the echo effect now has it's own volume setting to influence
-  the dry/wet ratio of this effect.
-- Some LADSPA effects tend to create NAN (Not A Number) float values under
-  certain conditions. This is bad as all following operations will result in 
-  NANs, so there will be no audio output no more. Now I will not introduce code
-  to check for NANs as this is a waste of CPU-power, producing NANs is IMHO
-  a faulty behaviour for LADSPA plugins and it should be fixed in there.
-  Now a problem with the previous release was that the echo and lowpass effects
-  "ate" those NANs resulting in NANs in those effects' buffers. So once a NAN
-  got in there these effects caused the whole audio output to mute (forever). 
-  Which is why I now introduced some code to clear the buffers in echo and
-  lowpass whenever you dis- and reenable them.
-- The GUI does have two master vu-meters now. The turntable's still have one
-  vu-meter only. Note that the echo-signal is *not* included in the turntable's
-  vu-meter now, as it's mixed seperately.
-- The 3DNow!-Optimizations are gone. And they'll proabably never come back as
-  I don't have time to maintain the same algorithm twice.
-- The documentation has been updated to meet the new features. A lot of typos
-  have been fixed as well.
+   Version 3.73
+     * Fixed a compilation bug ocurring on big endian systems only.
+     * Fixed  the  built-in  wav  loading routines for big endian systems
+       (again).
+     * Finally  traced  down and fixed a long outstanding bug in the dial
+       widget, the background of the dials is now drawn correctly.
+     * Ported  terminatorX  to  gtk+ Version 2. The code for gtk2 will be
+       enabled  when  gtk2 is detected by configure. To force terminatorX
+       to  use  the  good  old  gtk  1.2.x  (x>=5) run configure with the
+       '--disable-gtk2'  switch. WARNING: gdkxft-users: gtk2 applications
+       segfault  when  preloading  libgdk_xft.so! So unset LD_PRELOAD and
+       set GDK_USE_XFT=1 instead.
+     * Applied a patch from Adrian that brings lots of new stuff:
+          + Debian  package support (removed - Mike Furr now maintains an
+            official Debain package for terminatorX)
+          + enhanced GNOME integration
+          + a manpage for terminatorX
+     * Included    another    gcc3    fix    thanks   to   Gregor   Riepl
+       <seto-kun@freesurf.ch>>
+     * Improved configure's compatibilty - it should detect pthreads more
+       reliably   and   it   should   detect  ladspa.h  when  located  in
+       /usr/local/include  without  /usr/local/include being contained in
+       the include path.
+     * This  release  should  compile  and  run  on  FreeBSD  systems and
+       possibly  OpenBSD,  too.  Thanks for help and testing this goes to
+       Tilman Linneweh <tilman@arved.de> .
+     * Sequencer  now  refuses  to  play  when  no events available - and
+       displays a dialog that suggests running the audio engine.
+     * De-uglified the terminatorX note dialog.
+     * Fixed gtk+2 signals for load file dialog
+     * Pre-listen support for mpg321
+     * Added a new auto-hiding "panel-bar" to which turntable control and
+       audio panels can be minimized to.
+     * Cleaned up the turntables' audio panel for better looks and easier
+       usage
+     * Rewrote  the  engine  thread completely - unlike before the engine
+       thread is created on startup and kept alive until termination.
+     * terminatorX  can now be run suid root - and it might even be safe.
+       After  creating  the  engine  thread both terminatorX threads drop
+       root    privileges    before    evaluating   any   parameters   or
+       reading/writing  files,  etc.  The problem is the pthread "manager
+       thread"  is  out of control of terminatorX code - so I cannot tell
+       that thread to drop privileges.
+     * Fixed Drag'n'Drop for GNOME 2
+     * To enhance the loading of audiofiles terminatorX now contains code
+       to  use  mad  (MPEG  Audio  Decoder),  libvorbis  and libaudiofile
+       directly  instead  of pipeing audio data through mpg123, ogg123 or
+       sox. As a result the new routines bring following advantages:
+          + tX loads audiofiles significantly faster
+          + tX  now  honours the samplerate of an audiofile (by adjusting
+            the pitch of the turntable)
+          + tX provides much better feedback on the loading progress
+       Although  the  old  loading-methods are still available (and piped
+       loading  has been improved, too) I highly recommend installing the
+       libraries above as the new routines simply work better.
+     * Deleted   tons   of   old   outdated   code  in  tX_engine.cc  and
+       tX_mastergui.cc
 
-[v3.70]
-- this list may be incomplete
-- This release brings support for LADSPA plugins. These plugins can be inserted
-  into any turntable's effect chain at any position. You can edit the the
-  effect sequence with the two tiny blue arrows. The builtin effects reside in
-  the same effect chain as LADSPA plugins, but unlike LADSPA plugins they cannot
-  be removed (nor multi-instanciated).
-  The LADSPA plugins have to "fit" into the effect chain, which is why
-  terminatorX supports *mono* plugins (plugins that have one audio-in and one
-  audio-out port) only. For the plugin's control ports, termintatorX supports
-  all HINTS except for LADSPA_HINT_LOGARITHMIC. Some control ports might be 
-  hard to handle as LAPDSA control ports can have very wide value ranges. It is
-  possible to enter precise values though.
-  Get LADSPA and the CMT plugins from http://www.ladspa.org
-  All parameters for LADSPA-plugins are "sequencable parameters", so you can
-  record parameter-change events for the plugin's knobs just as for the
-  standard parameters.
-- GUI re-design to support dynamic plugin GUIs. The audiofile-display is now 
-  seperated from the turntable's controls. The groups are split in to panels
-  which can be minimized if not required (orange arrow). The panels'
-  minimized-status will be saved within the set files.
-  To add a plugin effect into the turntables effect chain click on the "FX"-
-  button and choose the plugin of your choice. To get more info on the
-  plugin effects click on their panel's label.
-  NOTE: The panning-control is not working yet. It'll work as soon as stereo
-  is done.
-- As always when introducing something new, the set-file file-format has
-  changed.
-- The parameter-to-mouse-axis mapping has been moved from hardcoded to
-  dynamic. You can now map any parameter that's considered "mappable" to the
-  mouse-axis of your choice (for each turntable separately). This is true
-  for the control ports of LADSPA-plugins, too.
-- Josh Steiner <joschi@eds.org> has joined terminatorX development. For this 
-  release he has added some startup parameters for terminatorX, some of them
-  aiming for future MIDI support, and therefor not functional yet. Run
-  "terminatorX --help" to get more details.
-- I know write the "manual" in SGML with the DocBook DTD. The distribution
-  contains the HTML and the postscript version. These transformation have been
-  created using James Clark's jade (DSSSL-processor) and Norman Walsh's DSSSL
-  stylesheets for DocBook.
-- Removed obsolete "number of vtts"-option from the options dialog.
-- Applied a patch from Josh that fixes running the soundfile editor for files
-  including a blank in their filename.
-- New tooltips for the complete GUI.
+   Version 3.72
+     * Applied  a  patch  from  Matthew Evans <activesx@hotmail.com> that
+       introduces support for Ogg Vorbis audiofiles. It requires ogg123 >
+       RC2  and  sox  to  work.  Autodetection is supported via configure
+       (--enable-ogg123).
+     * Experimental support for input devices other than the core-pointer
+       under XFree86 > 4. This uses the xsetpointer executable that comes
+       with  XFree86. configure should autodetect this correctly, in case
+       it doesn't use the --enable-xetpointer switch.
+     * Adrian sent me a patch introducing two new buttons: mute and solo.
+       As it didn't fully harmonize with the sequencer I rewrote parts of
+       it  and added new functionality to the turntables: They can now be
+       switched  to  mix_solo or mix_mute - these settings affect current
+       mixing  only - their values will neither be saved nor will changes
+       to  those  control  be  recorded in the sequencer - if you want to
+       record   muting  events  either  use  the  mute  button  from  the
+       turntable's  trigger  menu, the keyboard short-cuts (alt/strg), or
+       your middle mouse button.
+     * fixed a bug that produced corrupt wavfiles on big endian machines
+     * some  minor  fixes  to  make  terminatorX  compile  with newer gcc
+       releases
+     * Well,  I am allowed to change my mind, aren't I? Anyway, 3DNow! is
+       back.  Nevertheless  newer  gcc  releases  seem  to  have a bug in
+       handling  movq  and  the current 3DNow! stereo implementation does
+       not  seem  to be very efficient. So use --enable-3dnow only if you
+       want to help me improve perfomance.
+     * Modified  the  mpg123 loader in order to make it work with mpg321,
+       too.  mpg321  lacks  support  for mpg123's -m switch ("singlemix")
+       therefor  mpg?2?'s  output  is  now  piped into sox to convert the
+       signal to mono. For this reason mpg?2? support now requires sox to
+       be installed, too.
+     * added  a  workaround  for a gtk+ bug that causes empty labels when
+       strings  contain umlauts - unluckily my name features one of these
+       so I had to write this workaround.
 
-[v3.61] (unreleased)
-- applied a tiny patch from Atsushi Yamagata <yamagata@plathome.co.jp>
-  to set locale on startup.
+   Version 3.71
+     * applied  a  big  patch  from Adrian Reber <adrian@lisas.de> . This
+       patch includes:
+          + compile fixes for the newer gcc releases
+          + enhancements to the commandline switches (try --help for more
+            details)
+     * the  bigNewThang  (TM)  is  STEREO  output.  The  Pan-Buttons  now
+       actually  do  what  you'd expect them to. Therefore your soundcard
+       must have stereo support of course but I guess in 2001 this really
+       shouldn't  be  a problem, right? The recorded wavfiles will now be
+       stereo  wavfiles  of  course. Note that stereo output means double
+       audio-bandwith,  so  if  you  tuned  your old terminatorX setup to
+       smallest latency you might get clicks now. You can easily fix this
+       by  increasing the buffer size in the options dialog by one - this
+       will result in the same latency as before btw.
+     * The echo effect has undergone some enhancements to profit from the
+       new stereo output. It's signal will now be mixed seperately so you
+       can  choose  a  different  stereo  panorama  position for the echo
+       signal.  So  the  new  echo effect now features it's own PAN-knob.
+       This  does  have some sideeffects though, for more details on this
+       check  the  manual.  Additionally the echo effect now has it's own
+       volume setting to influence the dry/wet ratio of this effect.
+     * Some LADSPA effects tend to create NAN (Not A Number) float values
+       under  certain conditions. This is bad as all following operations
+       will result in NANs, so there will be no audio output no more. Now
+       I  will not introduce code to check for NANs as this is a waste of
+       CPU-power,  producing  NANs  is IMHO a faulty behaviour for LADSPA
+       plugins  and  it  should be fixed in there. Now a problem with the
+       previous release was that the echo and lowpass effects "ate" those
+       NANs  resulting  in  NANs in those effects' buffers. So once a NAN
+       got  in  there these effects caused the whole audio output to mute
+       (forever).  Which  is  why I now introduced some code to clear the
+       buffers in echo and lowpass whenever you dis- and reenable them.
+     * The  GUI does have two master vu-meters now. The turntable's still
+       have  one  vu-meter  only.  Note  that  the  echo-signal  is *not*
+       included   in   the   turntable's  vu-meter  now,  as  it's  mixed
+       seperately.
+     * The  3DNow!-Optimizations  are  gone.  And they'll proabably never
+       come  back  as  I  don't  have time to maintain the same algorithm
+       twice.
+     * The documentation has been updated to meet the new features. A lot
+       of typos have been fixed as well.
 
-[v3.60]
-- terminatorX has a sequencer now. Warning: with the current design the
-  sequencer will correctly play back recorded events only when the buffer size
-  (of the audio device) is set to the same size as it was when recording the
-  events. I know this is annoying and I will try to find a solution to this. 
-  Please take a look at the README to find out how the sequencer works.
-- fixed a bug causing the lowpass filter produce a constant signal
-- fixed the load file / drag'n'drop segfault bug
-- fixed the prelisten zombie processes bug
-- fixed the segfault on termination bug (with the audio engine running)
-- hacked the mixer code to use 3DNow! too. This improves 3DNow! performance gain
-  from previously ~6% to more than 20% (depending on compiler optimizations)
-- extended the set-file-format to allow storing of sequencer events. This
-  release allows loading old tX-sets too.
-- some gui icons. Choose Text/Icon / Icon only / Text only display of these
-  icons in the Options dialog. You'll have to restart tX to see the changes
-  though.
-- "soundfile-editor support": Enter the soundfile-editor of your choice in the
-  tX-Options dialog (Still looking for an editor? Checkout Dave's Linux
-  Sound and MIDI Pages: http://www.bright.net/~dlphilp/linuxsound/).
-  Click the edit button in the Main-Panel to start your editor with the
-  turntable's soundfile - edit ;) - save and click the reload button.
-- big endian bug fixes by Scott C. Knight <scknight@indiana.edu>
-- --enable-benchmark will now produce a benchmark binary. This takes a set file
-  as a parameter (that set file should autotrigger all tables, else the
-  benchmark will measure how fast tX can generate zeros ;) WARNING: the
-  benchmark binary is not a usable terminatorX binary.
-- a new dial-widget. I created this for the upcoming GUI-redesign - and decided
-  I let you debug it right now ;) If you don't want it run configure with the
-  --disable-dial switch.
-- some gui redesign. The volume scales are now located near their corresponding
-  "flash"-widget. This release fits into very small windows - so it should be
-  usable on smaller displays as well.
-- Adrian told me configure doesn�t have to check for glib after checking for
-  gtk+ - I guess he�s right so the glib-test has gone.
-- more minor fixes
-  
-[v3.55]
-- implemented "sequenceable parameters" (see tX_seqpar.*). This means the
-  groundwork for the sequencer is done. Although this release does not yet
-  feature a sequencer - there's still a profit: you can now see the GUI (e.g.
-  the lowpass-freq slider) update while you change that value with your mouse in
-  dga grab mode (e.g. up/down with the default X/Y-Control settings).
-- fixed (libmmx) mmx.h to work with gcc 2.95 and above
-- fixed compilation problems for big endian machines. still runtime probs
-  reported though.
-- fixed configure-script as the new bash complains about == in string compares
-- fixed some gui segfaults
-- added an ugly GNOME-mimetype installer. This installs the ".tX"-mime type, an
-  terminatorX-application icon and a ".tX"-icon. I could use some hints on how
-  I could make automake install that instead of an extra script.
-  (see README.GNOME)
-- added Drag'n Drop support. Works with the great gmc. Drop an audio file over 
-  the filename-button or the wavdisplay of a turntable to load it into that
-  table. Drop an audiofile over the "Add Turntable" Button to create a new 
-  turntable and load that file into that turntable. Drop a tX-set file over the
-  "Load Set" button to load the set. 
+   Version 3.70
+     * this list may be incomplete
+     * This  release brings support for LADSPA plugins. These plugins can
+       be inserted into any turntable's effect chain at any position. You
+       can  edit  the  the effect sequence with the two tiny blue arrows.
+       The  builtin  effects  reside  in  the same effect chain as LADSPA
+       plugins,  but  unlike  LADSPA  plugins they cannot be removed (nor
+       multi-instanciated).  The  LADSPA  plugins  have to "fit" into the
+       effect  chain,  which  is  why terminatorX supports *mono* plugins
+       (plugins  that have one audio-in and one audio-out port) only. For
+       the plugin's control ports, termintatorX supports all HINTS except
+       for  LADSPA_HINT_LOGARITHMIC.  Some control ports might be hard to
+       handle as LAPDSA control ports can have very wide value ranges. It
+       is possible to enter precise values though. Get LADSPA and the CMT
+       plugins    from    http://www.ladspa.org.   All   parameters   for
+       LADSPA-plugins  are  "sequencable  parameters",  so you can record
+       parameter-change  events  for  the  plugin's knobs just as for the
+       standard parameters.
+     * GUI    re-design    to    support   dynamic   plugin   GUIs.   The
+       audiofile-display  is now seperated from the turntable's controls.
+       The  groups  are  split in to panels which can be minimized if not
+       required  (orange  arrow).  The  panels'  minimized-status will be
+       saved  within  the  set  files.  To  add  a plugin effect into the
+       turntables  effect  chain click on the "FX"- button and choose the
+       plugin  of  your  choice.  To  get more info on the plugin effects
+       click  on  their  panel's  label. NOTE: The panning-control is not
+       working yet. It'll work as soon as stereo is done.
+     * As always when introducing something new, the set-file file-format
+       has changed.
+     * The  parameter-to-mouse-axis mapping has been moved from hardcoded
+       to  dynamic.  You  can  now  map  any  parameter that's considered
+       "mappable"  to  the  mouse-axis of your choice (for each turntable
+       separately). This is true for the control ports of LADSPA-plugins,
+       too.
+     * Josh  Steiner <joschi@eds.org> has joined terminatorX development.
+       For  this  release  he  has  added  some  startup  parameters  for
+       terminatorX,  some  of  them  aiming  for future MIDI support, and
+       therefor  not functional yet. Run "terminatorX --help" to get more
+       details.
+     * I  know  write  the  "manual"  in  SGML  with the DocBook DTD. The
+       distribution  contains  the HTML and the postscript version. These
+       transformation   have   been  created  using  James  Clark's  jade
+       (DSSSL-processor)   and   Norman  Walsh's  DSSSL  stylesheets  for
+       DocBook.
+     * Removed obsolete "number of vtts"-option from the options dialog.
+     * Applied  a patch from Josh that fixes running the soundfile editor
+       for files including a blank in their filename.
+     * New tooltips for the complete GUI.
 
-[v3.51]
-- fixes the load_piped() compilation error if you use neither sox nor mpg123.
-  Note that you have no "pre-listening" without mpg123 for mp3s and no 
-  "pre-listening" for any other file without sox.
+   Version 3.61 (unreleased) 
+     * applied     a     tiny     patch     from     Atsushi     Yamagata
+       <yamagata@plathome.co.jp> to set locale on startup.
 
-[v3.5]
-- Yet another redesign ;) Oh well this project moved from c++/multithreaded
-  to c++/singlethreaded, to c/multithreaded and now, finally, back to
-  c++/multithreaded. This shows quite some foresight, I'd say ;)
-- Due to the redesign I had to change a lot (everything?) again so this document
-  can impossibly hold all changes. but let's see:
-- tX now uses floats instead of doubles for a lot of parameters. Therefore the
-  old .terminatorXrc.bin is now called .terminatorX3rc.bin to allow parallel
-  use of older releases. But you'll have to configure the new release again
-  the first time you run it.
-- tX now supports an unlimited no of turntables. The only limit is your display
-  really.
-- Each of these turntables has their own pitch / volume settings and a 
-  dedicated lowpass and echo effect section.
-- You can now map mouse motion to a function of your choice (scratching/
-  volume/cutoff/echo-feedback and nothing)
-- Recording will now happen straight to disk. You'll have to specify a filename
-  before you start recording.
-- You can sync the turntables to one master turntable.
-- There are two master settings for pitch and volume available to modify all
-  turntables. The turntable pitch is relative to the master pitch.
-- You can save a complete set (of turntables and settings) to a .tX set file.
-  The audiofile data will *not* be saved within that file, but it'll contain
-  the absolut filename to these files. I know this makes the act of exchanging
-  sets over the net more complex so if somebody wants to code set files with
-  integrated audio data... ;)
-- The way audiofiles are loaded has been redesigned too: the builtin wav
-  routines, the sox support and mpg123 are no longer connected. This means
-  you can use mpg123 support without sox support and still have the builtin
-  wav routines enabled. If you have the builtin wav reader and sox enabled, tX
-  will try try to use the builtin routines first, and if they fail sox will be
-  used as a fallback which is of course slower as you know... There's some 
-  support for Benno Senoner's brilliant 3.2-mmap() patch but the patch still
-  needs to be ported.
-- You can now select which parameter to map to a mouse axis.
-- experimental 3DNow! support (works with gcc < 2.95 only)
-- tX-windows now have an icon, thanks Michael!
+   Version 3.60
+     * terminatorX  has a sequencer now. Warning: with the current design
+       the  sequencer  will correctly play back recorded events only when
+       the  buffer  size (of the audio device) is set to the same size as
+       it  was  when  recording the events. I know this is annoying and I
+       will  try  to  find  a solution to this. Please take a look at the
+       README to find out how the sequencer works.
+     * fixed a bug causing the lowpass filter produce a constant signal
+     * fixed the load file / drag'n'drop segfault bug
+     * fixed the prelisten zombie processes bug
+     * fixed  the  segfault  on  termination  bug  (with the audio engine
+       running)
+     * hacked  the  mixer  code  to  use 3DNow! too. This improves 3DNow!
+       performance  gain  from previously ~6% to more than 20% (depending
+       on compiler optimizations)
+     * extended the set-file-format to allow storing of sequencer events.
+       This release allows loading old tX-sets too.
+     * some  gui  icons. Choose Text/Icon / Icon only / Text only display
+       of these icons in the Options dialog. You'll have to restart tX to
+       see the changes though.
+     * "soundfile-editor  support":  Enter  the  soundfile-editor of your
+       choice  in  the  tX-Options  dialog  (Still looking for an editor?
+       Checkout     Dave's     Linux     Sound     and     MIDI    Pages:
+       http://www.bright.net/~dlphilp/linuxsound/). Click the edit button
+       in  the  Main-Panel  to  start  your  editor  with the turntable's
+       soundfile - edit ;) - save and click the reload button.
+     * big endian bug fixes by Scott C. Knight <scknight@indiana.edu>
+     * --enable-benchmark will now produce a benchmark binary. This takes
+       a  set  file  as a parameter (that set file should autotrigger all
+       tables,  else  the benchmark will measure how fast tX can generate
+       zeros ;) WARNING: the benchmark binary is not a usable terminatorX
+       binary.
+     * a  new dial-widget. I created this for the upcoming GUI-redesign -
+       and  decided  I let you debug it right now ;) If you don't want it
+       run configure with the --disable-dial switch.
+     * some  gui  redesign.  The volume scales are now located near their
+       corresponding  "flash"-widget.  This  release fits into very small
+       windows - so it should be usable on smaller displays as well.
+     * Adrian  told  me  configure  doesn't  have to check for glib after
+       checking for gtk+ - I guess he's right so the glib-test has gone.
+     * more minor fixes
 
-[v3.2]
-- implemented 2D-Scratching ;) You can now use the other axis of your mouse
-  two modify the cutoff frequency of the lowpass filter (if enabled). The
-  resonance factor can be set via the slider underneath "LP Filter". Seems
-  to eat quite some CPU power though...
-- Updated THANKS, AUTHORS
-- as most people seem to use sox/mpg123 anyway and as I still get "I want mp3"
-  emails I changed the configure script slightly: It now automatically enables
-  the use of sox and mpg123 if these are available. If you still want 'em good
-  old 16Bit/44.1Khz/Mono builtin routines you have to specify --enable-wavonly
-  with your configure cmdline.
-- Prepared the tarball for the Win32 port. You can now compile tX with cygwin
-  and the Makefile.cygwin in the src directory if you have all the required
-  libs (gtk, pthreads etc...). The resulting exe will run BUT is completely
-  unusable for now... Stou Sandalski <tangui@cell2000.net> and I are planning
-  to make it usable in the future.
-- The About-Dialog now contains some info on how the binary was compiled
+   Version 3.55
+     * implemented  "sequenceable  parameters"  (see  tX_seqpar.*).  This
+       means  the  groundwork  for  the  sequencer is done. Although this
+       release does not yet feature a sequencer - there's still a profit:
+       you  can  now  see  the  GUI (e.g. the lowpass-freq slider) update
+       while you change that value with your mouse in dga grab mode (e.g.
+       up/down with the default X/Y-Control settings).
+     * fixed (libmmx) mmx.h to work with gcc 2.95 and above
+     * fixed  compilation problems for big endian machines. still runtime
+       probs reported though.
+     * fixed  configure-script  as  the  new  bash  complains about == in
+       string compares
+     * fixed some gui segfaults
+     * added   an   ugly  GNOME-mimetype  installer.  This  installs  the
+       ".tX"-mime type, an terminatorX-application icon and a ".tX"-icon.
+       I  could  use some hints on how I could make automake install that
+       instead of an extra script. (see README.GNOME)
+     * added Drag'n Drop support. Works with the great gmc. Drop an audio
+       file  over the filename-button or the wavdisplay of a turntable to
+       load  it  into  that  table.  Drop  an  audiofile  over  the  "Add
+       Turntable"  Button  to  create  a new turntable and load that file
+       into that turntable. Drop a tX-set file over the "Load Set" button
+       to load the set.
 
-[v3.1]
-- Optimized audio-rendering code for speed (might run on some machines
-  with smaller buffsize (-> lower latency) than pre-3.1) - Hey, tX now uses
-  less than 10% CPU (says kpm) with mixing enabled on my i586-200MMX machine!!  
-- "fixed" stdout-output. Due to the pipe-buffering realtime schratching can
-  not be considered usable for now :(
-- Added config option --enable-scheduler, which will cause the terminatorX
-  engine-thread to run with FIFO scheduling policy and highest priority. This
-  might enable some machines to use smaller buffsizes. It requries root
-  privileges though - either run terminatorX as root - or make terminatorX
-  suid root WHICH IS A BAD IDEA FOR MULTI-USER SYSTEMS IF OTHER USERS CAN
-  ACCESS THE BINARY ;) You only have to think about this when you experience
-  buffer underruns with your desired latency. And it might not even help...
-- Rehacked the de-clicking (fading) code. The old one tried to be much more
-  intelligent - and failed fading out the signal sometimes. The new code
-  is much simpler (faster) and is much more reliable.
-- added common sense to the warp feature (f-key in scratch mode). The warping
-  speed is still connected to the mouse speed but it's now adjusted to the
-  sample size as well: you can warp through any sample completely with the same
-  mouse distance.
-- added debug configure switch. Enables (very few) debug messages for now. I
-  decided not to enable the old V2.X messages as they are sent to stdout, which
-  would sound pretty strange to people who use the stdout-option.
-    
-[v3.02] (unreleased)
-- Fixed Adrian's name in the THANKS file. Sorry, Adrian.
-- Corrected Makefile.am for license.c that did not build correctly on some 
-  systems - Thanks to Michael Pruett <mikep@ugcs.caltech.edu>
+   Version 3.51
+     * fixes  the  load_piped()  compilation error if you use neither sox
+       nor  mpg123.  Note that you have no "pre-listening" without mpg123
+       for mp3s and no "pre-listening" for any other file without sox.
 
-[v3.01]
-- fixed a bug that caused terminatorX to crash without --enable-sox or
-  mpg123input.
+   Version 3.5
+     * Yet   another   redesign  ;)  Oh  well  this  project  moved  from
+       c++/multithreaded  to  c++/singlethreaded,  to c/multithreaded and
+       now,  finally,  back  to  c++/multithreaded. This shows quite some
+       foresight, I'd say ;)
+     * Due  to  the redesign I had to change a lot (everything?) again so
+       this document can impossibly hold all changes. but let's see:
+     * tX  now  uses  floats  instead of doubles for a lot of parameters.
+       Therefore    the    old    .terminatorXrc.bin    is   now   called
+       .terminatorX3rc.bin  to  allow parallel use of older releases. But
+       you'll  have to configure the new release again the first time you
+       run it.
+     * tX  now  supports an unlimited no of turntables. The only limit is
+       your display really.
+     * Each of these turntables has their own pitch / volume settings and
+       a dedicated lowpass and echo effect section.
+     * You  can  now  map  mouse  motion  to  a  function  of your choice
+       (scratching/ volume/cutoff/echo-feedback and nothing)
+     * Recording will now happen straight to disk. You'll have to specify
+       a filename before you start recording.
+     * You can sync the turntables to one master turntable.
+     * There  are  two  master settings for pitch and volume available to
+       modify  all  turntables.  The  turntable  pitch is relative to the
+       master pitch.
+     * You  can save a complete set (of turntables and settings) to a .tX
+       set file. The audiofile data will *not* be saved within that file,
+       but it'll contain the absolut filename to these files. I know this
+       makes  the  act of exchanging sets over the net more complex so if
+       somebody wants to code set files with integrated audio data... ;)
+     * The way audiofiles are loaded has been redesigned too: the builtin
+       wav  routines, the sox support and mpg123 are no longer connected.
+       This  means  you  can  use  mpg123 support without sox support and
+       still  have  the  builtin  wav  routines  enabled. If you have the
+       builtin  wav  reader  and  sox enabled, tX will try try to use the
+       builtin  routines  first,  and  if they fail sox will be used as a
+       fallback  which  is  of  course slower as you know... There's some
+       support  for  Benno  Senoner's  brilliant 3.2-mmap() patch but the
+       patch still needs to be ported.
+     * You can now select which parameter to map to a mouse axis.
+     * experimental 3DNow! support (works with gcc < 2.95 only)
+     * tX-windows now have an icon, thanks Michael!
 
-[v3.0]
-- Changed everything ;)
-- switched from C++ to C for gtk's sake
-- switched back two multithreading
-- implemented new gtk+ gui and dialogs
-- new mouse-sampling code now uses DGA's DirectMouse
-- implemented "initalizing"-support for XInput devices.
-- new (alpha) "pre-listening" feature in scratch/loop dialogs
-- hacked vtt for click-free audio. Might be problematic with big
-  kernel level buffersizes but scratching with big buffsize is no
-  fun anyway.
-- options are now stored in ~/.terminatorXrc.bin automatically (on exit)
-  as well as windowsize and the last used filenames
-- terminatorX now comes with a configure script - no more Makefile hacking
-  required (nor a good idea ;) )
-- new wavdisplay-widget update frequency is now configureable
-- new position-display is much more visible which allows more precise
-  scratching
-- new mute-feature allows you to silence the scratch-playback completely
-  while the loop keeps playing (press either <m>-key or right mouse-button.
-- support for mouse buttons:
-  o 1. (left) button: same as <SPACE>, do scratch
-  o 2. (right) button: mute scratch
-  o 3. (middle) button: stop
-- wrote support for sox and mpg123. This enables terminatorX to read close
-  to any audiofile. You need to have sox and mp3 and this feature (as it is
-  still alpha) needs to be enabled via configure-switches see INSTALL
-- licmak now is an awk script. Thanks Christian! I was also received two perl
-  scripts (Thanks, guys!) but I now use the awk script as it is the smallest.
-- introduced <F>-key to "warp" through scratch-sample (just check it out)
-- dropped commandline arguments
-- dropped old X-Code + Mouse warping madness
-- bug fixes (less than bug introduces though ;) )
+   Version 3.2
+     * implemented  2D-Scratching  ;)  You  can now use the other axis of
+       your  mouse  two modify the cutoff frequency of the lowpass filter
+       (if  enabled).  The  resonance  factor  can  be set via the slider
+       underneath  "LP  Filter".  Seems  to  eat  quite  some  CPU  power
+       though...
+     * Updated THANKS, AUTHORS
+     * as most people seem to use sox/mpg123 anyway and as I still get "I
+       want  mp3"  emails I changed the configure script slightly: It now
+       automatically  enables  the  use  of  sox  and mpg123 if these are
+       available.  If  you  still  want  'em  good old 16Bit/44.1Khz/Mono
+       builtin  routines  you  have to specify --enable-wavonly with your
+       configure cmdline.
+     * Prepared  the  tarball  for the Win32 port. You can now compile tX
+       with  cygwin  and  the Makefile.cygwin in the src directory if you
+       have  all  the required libs (gtk, pthreads etc...). The resulting
+       exe  will run BUT is completely unusable for now... Stou Sandalski
+       <tangui@cell2000.net>  and I are planning to make it usable in the
+       future.
+     * The  About-Dialog  now  contains  some  info on how the binary was
+       compiled
 
+   Version 3.1
+     * Optimized  audio-rendering  code  for  speed  (might  run  on some
+       machines  with smaller buffsize (-> lower latency) than pre-3.1) -
+       Hey,  tX now uses less than 10% CPU (says kpm) with mixing enabled
+       on my i586-200MMX machine!!
+     * "fixed"   stdout-output.   Due   to  the  pipe-buffering  realtime
+       schratching can not be considered usable for now :(
+     * Added  config  option  --enable-scheduler,  which  will  cause the
+       terminatorX  engine-thread  to run with FIFO scheduling policy and
+       highest  priority.  This might enable some machines to use smaller
+       buffsizes.  It  requries  root  privileges  though  -  either  run
+       terminatorX as root - or make terminatorX suid root WHICH IS A BAD
+       IDEA  FOR  MULTI-USER SYSTEMS IF OTHER USERS CAN ACCESS THE BINARY
+       ;)  You  only  have to think about this when you experience buffer
+       underruns with your desired latency. And it might not even help...
+     * Rehacked  the  de-clicking  (fading) code. The old one tried to be
+       much   more  intelligent  -  and  failed  fading  out  the  signal
+       sometimes.  The new code is much simpler (faster) and is much more
+       reliable.
+     * added  common  sense  to the warp feature (f-key in scratch mode).
+       The  warping  speed is still connected to the mouse speed but it's
+       now  adjusted to the sample size as well: you can warp through any
+       sample completely with the same mouse distance.
+     * added  debug  configure  switch. Enables (very few) debug messages
+       for now. I decided not to enable the old V2.X messages as they are
+       sent to stdout, which would sound pretty strange to people who use
+       the stdout-option.
 
-[v2.4] (unreleased)
-- implemented a time counter
-- licmak now finally is what it should be: a perl script (licmak.pl)
-  it was contributed by: Adam Sj�gren <asjo@diku.dk>. Thanks!
+   Version 3.02
+     * Fixed Adrian's name in the THANKS file. Sorry, Adrian.
+     * Corrected  Makefile.am  for license.c that did not build correctly
+       on some systems - Thanks to Michael Pruett
+       <mikep@ugcs.caltech.edu>
 
-[v2.3]
-- X-Window background fixed
-- wavfile overreading fixed by Andrew C. Bul+hac?k (acb@zikzak.net)
-- Using portable type definitions now where required. If you don't
-  have a <sys/types.h> on your system and your machines type sizes
-  equal those of an X86-machine you can specify -DUSE_X86_TYPES in
-  Makefile to compile without <sys/types.h>
-- Slight change in audiodevice-handling that fixes improper buffsize
-  settings on some soundcards (e.g. GUS)
-- Implemented "keep device open"-feature. Needs to be enabled via the
-  -DKEEP_DEV_OPEN switch in Makefile
-- Added some comments to the Makefile for easier editing
-- Added Big Endian support. Use -DBIG_ENDIAN_MACHINE for big endian hosts
-  like ultrapenguin suns or linux ppc. There's also -DBIG_ENDIAN_AUDIO
-  for big endian audio hardware (rare?) available, although proabably
-  nobody will need this.
-- Changed mix behaviour: Mix is now automatically turned on on startup if
-  the user has specified a proper loop file. (with the --loop or -l switch)
-- New mixing routine. You can now set the loop to scratch volume ratio with
-  the cursor keys (left/right). If you modify the volumes while recording
-  these action's will not be recorded. Saving happens with the currently
-  set level.
-- Fixed README-Bug said <m> instead of <x>
-  
-[v2.2]
-- first released version
-- added colors. more standard use of X11.
-- added loop support.
-- added statusbar with mode/status display
-- added commandline options and help (on usage and keys)
-- added raw/mixed save scratch feature
-- added licmak to include license into binary
-- new handling of XAutoRepeat, only turned off now when SPACE pressed.
-- modified wave display (faster + nicer + incorrect (who cares anyway))
-- Makefile fixed by Adrian Reber (adreit00@fht-esslingen.de)
-- bug fixes
+   Version 3.01
+     * fixed  a bug that caused terminatorX to crash without --enable-sox
+       or mpg123input.
 
-[prerelease]
+   Version 3.0
+     * Changed everything ;)
+     * switched from C++ to C for gtk's sake
+     * switched back two multithreading
+     * implemented new gtk+ gui and dialogs
+     * new mouse-sampling code now uses DGA's DirectMouse
+     * implemented "initalizing"-support for XInput devices.
+     * new (alpha) "pre-listening" feature in scratch/loop dialogs
+     * hacked  vtt  for  click-free  audio. Might be problematic with big
+       kernel  level  buffersizes  but scratching with big buffsize is no
+       fun anyway.
+     * options  are  now stored in ~/.terminatorXrc.bin automatically (on
+       exit) as well as windowsize and the last used filenames
+     * terminatorX  now  comes with a configure script - no more Makefile
+       hacking required (nor a good idea ;) )
+     * new wavdisplay-widget update frequency is now configureable
+     * new  position-display  is  much  more  visible  which  allows more
+       precise scratching
+     * new  mute-feature  allows  you  to  silence  the  scratch-playback
+       completely  while  the loop keeps playing (press either <m>-key or
+       right mouse-button.
+     * support for mouse buttons:
+          + 1. (left) button: same as <SPACE>, do scratch
+          + 2. (right) button: mute scratch
+          + 3. (middle) button: stop
+     * wrote support for sox and mpg123. This enables terminatorX to read
+       close  to  any  audiofile.  You  need to have sox and mp3 and this
+       feature   (as   it  is  still  alpha)  needs  to  be  enabled  via
+       configure-switches see INSTALL
+     * licmak now is an awk script. Thanks Christian! I was also received
+       two  perl  scripts (Thanks, guys!) but I now use the awk script as
+       it is the smallest.
+     * introduced <F>-key to "warp" through scratch-sample (just check it
+       out)
+     * dropped commandline arguments
+     * dropped old X-Code + Mouse warping madness
+     * bug fixes (less than bug introduces though ;) )
 
-[v2.1]
-- added recording, playback of recording functionality
+   Version 2.4 (unreleased) 
+     * implemented a time counter
+     * licmak now finally is what it should be: a perl script (licmak.pl)
+       it was contributed by Adam Sjøgren <asjo@diku.dk> . Thanks!
 
-[v2.0]
-- moved from multithreaded to singlethreaded
-- position feedback
-- bug fixes
+   Version 2.3
+     * wavfile overreading fixed by Andrew C. Bul+hac?k <acb@zikzak.net>
+     * Using  portable  type definitions now where required. If you don't
+       have  a  <sys/types.h> on your system and your machines type sizes
+       equal  those  of an X86-machine you can specify -DUSE_X86_TYPES in
+       Makefile to compile without <sys/types.h>
+     * Slight change in audiodevice-handling that fixes improper buffsize
+       settings on some soundcards (e.g. GUS)
+     * Implemented  "keep  device  open"-feature. Needs to be enabled via
+       the -DKEEP_DEV_OPEN switch in Makefile
+     * Added some comments to the Makefile for easier editing
+     * Added  Big Endian support. Use -DBIG_ENDIAN_MACHINE for big endian
+       hosts   like   ultrapenguin   suns  or  linux  ppc.  There's  also
+       -DBIG_ENDIAN_AUDIO   for   big   endian   audio  hardware  (rare?)
+       available, although proabably nobody will need this.
+     * Changed  mix  behaviour:  Mix  is  now  automatically turned on on
+       startup  if  the  user has specified a proper loop file. (with the
+       --loop or -l switch)
+     * New  mixing  routine.  You  can now set the loop to scratch volume
+       ratio with the cursor keys (left/right). If you modify the volumes
+       while  recording  these  action's  will  not  be  recorded. Saving
+       happens with the currently set level.
+     * Fixed README-Bug said <m> instead of <x>
 
-[v1.0]
-- mouse support
-- no more position display due to pthread/X probs
-- bug fixes
+   Version 2.2
+     * first released version
+     * added colors, more standard use of X11
+     * added loop support
+     * added statusbar with mode/status display
+     * added commandline options and help (on usage and keys)
+     * added raw/mixed save scratch feature
+     * added licmak to include license into binary
+     * new  handling  of  XAutoRepeat,  only  turned  off  now when SPACE
+       pressed
+     * modified  wave  display  (faster  +  nicer  + incorrect (who cares
+       anyway))
+     * Makefile fixed by Adrian Reber <adrian@lisas.de>
+     * bug fixes
 
-[v0.5]
-- first version
-- no mouse handling
-- accelerating vtt via sinus
-- multithreaded
-- sound aliasing
+   Version 2.1 (unreleased) 
+     * added recording, playback of recording functionality
+
+   Version 2.0 (unreleased) 
+     * moved from multithreaded to singlethreaded
+     * position feedback
+     * bug fixes
+
+   Version 1.0 (unreleased) 
+     * mouse support
+     * no more position display due to pthread/X probs
+     * bug fixes
+
+   Version 0.5 (unreleased) 
+     * first version
+     * no mouse handling
+     * accelerating vtt via sinus
+     * multithreaded
+     * sound aliasing