[Main] [Features] [News Archive] [Examples] [Download] [Documentation] [Mailing lists] [Report Bugs] [Issue Tracker]
[Developer Section] [To do] [Authors] [Code Changelog] [Screenshots] [Ecasound Users]

mirrors: nosignal.fi (eu) / seul.org (us) / sourceforge.net (us)

Ecasound - Changelog

The releases notes for past stable Ecasound releases contain descriptions of key new features, user-interface and configuration file changes and contributor lists for each release. For a more detailed view, the ecasound gitweb source browser provides a wealth of information.

The latest NEWS file from the distribution package is available below. It provides a complete listing of all changes:

** Ecasound - User-visible changes (NEWS)                            **

About the version numbers... "vX.Y[.Z[.R]][+extraT]" :

  X = major version  - incremented after major redesigns and/or major
      	    	       new features
  Y = minor version  - incremented when new features are added and/or
      	    	       changes in core code that impact many yse-cases
  Z = micro version  - incremented if major.minor version is not
		       modified (optional)
  R = revision       - urgent fixes to planned releases (optional)

  extraT             - 'beta', 'pre' and 'rc' releases (optional)

Quick overview of various sources of change info

  - NEWS. This file.
        - 2.8.0 and newer: a compact list of user-visible changes
        - 2.7.2 and older: details of all user-visible changes.
  - RELNOTES. The release notes file describe the most important changes in
    a bit more detail. This is maintained in the git tree and is sent
    as the release announcement mail.
        - For notes of previous releases: http://nosignal.fi/ecasound/relnotes/
  - Version control history. Describes all changes in implementation.
        - http://ecasound.git.sourceforge.net/git/gitweb.cgi?p=ecasound
  - Library interface changes are documented in ChangeLog files (these
    are distributed along with the source code).

Howto for reading the entries (2.7.2 and older):

  added/removed = a new/removed feature, interfaces, or new 
                  implementation of some feature
  changed       = changed behaviour, modified implementation, APIs, etc
  fixed         = fixed bugs, "features" and other sources of problems


03012014 (v2.9.1) -** stable release **-
         - changed: configure.in renamed to configure.ac as automake 2.0
                    will drop support for configure.in [ghedo]
         - changed: ecatools now accepts file names with commas [ghedo]
         - changed: build with -D_XOPEN_SOURCE=600, see
                    http://www.unix.org/version3/single_unix_v3.pdf and
         - fixed: compilation errors with Mac Xcode 5.x versions
                  that have dropped llvm-gcc support, reported by
                  Brett Koonce
         - fixed: multiple bugs with ai-remove and
                  ao-remove; reported by Rocco
         - fixed: multiple issues wih ALSA draining (playing 
                  the last samples at the end) code added to
                  2.8.0; reported by Knut Petersen
         - fixed: silenced invalid dbc/runtime warnings from 
                  audioio-seqbase.cpp; reported by Julien Claassen
         - fixed: -t:x inaccuracy that increased with larger
                  buffersizes; reported by Knut Petersen 
09062012 (v2.9.0) -** stable release **-
         - note: tested to build with the new gcc-4.7.0
         - added: LV2 support using liblilv [jeremysalwen];
         - added: 'stop-sync' command to interactive mode, a syncronous
                  stop call that blocks until engine has halted
         - added: 'cop-bypass' and 'cop-is-bypassed' commands added
         - added: 'c-is-muted' and 'c-is-bypassed' commands
         - changed: new params to 'c-mute' and 'c-bypass'
         - changed: pyeca - now requires python 2.4 or newer; fixes
         - changed: removed ecasound.spec file from distribution
         - changed: flush chainop internal state when position is
                    changed with a seek (setpos et al)
         - changed: cop-remove and ctrl-remove 
         - fixed: resample, commas in filenames not handled correctly
         - fixed: bug in map-ladspa-list output, param names not
                  printed out correctly
         - fixed: bug in RIFF header generation, incorrect chunk
         - fixed: bug in saving jack input/output params
         - fixed: seeks with -kf did not work, sfbug:2013828
         - fixed: seeks with -kog did not work, sfbug:2013824
         - fixed: sndfile, seeking beyond end-of-file for inputs
         - fixed: regression with stop+start and -z:db
22052011 (v2.8.1) -** stable release **-
	 - fixed: jack_multi did not work correctly when connecting
	          to a single port
         - fixed: bugfix to mp3/ogg/aac output
11052011 (v2.8.0) -** stable release **-
	 - note: NEWS format changed, see 01012011 meta entry below
	 - changed: do not use deprecated  jack_client_new() 
	 - changed: simplified signal handling for not-so-POSIX
	 - fixed: seeks with -klg did not work
	 - fixed: bug in int-float conversions
	 - fixed: some false DBC warnings removed
	 - fixed: bug in setting jack_multi channel count
	 - fixed: bug in signal handling caused rubyecasound scripts
 	          to fail (e.g. ecasound's own stresstest.rb)
	 - fixed: at end of playback, properly wait until all buffered
	          samples have been played out to ALSA devices
	 - fixed: bug with live seeks and -z:db buffering; caused 
	   	  problems to e.g. JACK transport slaving and 
		  live seeks (repositioning without stopping transport)
01012011 meta: notes on provided change information in this file
	 - the release entries will be shorter from now on, only
	   listing the affected features (e.g. which objects), 
	   and type of change (addition, change, bugfix)
	 - see RELNOTES and git commit history for a more detailed
	 - author tags will no longer be used, [foobar] used to
	   indicate the author of the change, unless it was from
	   someone from the main author(s); README still lists 
	   all the developer tags used; instead git history 
	   shows who did what
19082010 (v2.7.2) -** stable release **-
	 - added: manual gate (-gm); see ecasound(1) man page
	 - changed: liboil now enabled by default if the library 
	   	    development files are available when running
	 - fixed: bug with 'resample' objects and early seeks (e.g.
	   	  with '-y' offsets); reported by Artur
         - fixed: bugs in kvutils that broke some old/non-glibc 
	   	  builds (e.g. cygwin); bug reported by Al Oomens
         - fixed: bugs in saving chainsetups with stacked audio
	   	  objects ("audioloop", "select", "playat")
20022010 (v2.7.1) -** stable release **-
	- note: key changes are described in more detail at:
	- fixed: glitches in ALSA capture/playback with some sound 
	  	 hardware/configurations, and using alsa-lib
	    	 older than 1.0.15; related to deprecated ALSA API
		 function snd_pcm_sw_params_set_xfer_align()
        - fixed: bug in removing audio objects when disk double
	  	 buffering is used (-z:db); could cause a segfault
		 in some scenarios (e.g. with ecasignalview)
        - fixed: interactive mode; c-selected segfauls if issued
	    	 with no chainsetup selected
        - fixed: build errors when no liblo is available
	- fixed: interactive-mode; cs-setpos, cs-rewind and cs-forward
	    	 did not work if chainsetup was connected, and no
		 chains (or an invalid chain) was selected; bug 
		 reported by Joel Roth
        - fixed: ecalength choked filenames with whitespace; patch
	  	 from FUJI project
17102009 (v2.7.0) -** stable release **-
	- note: key changes are described in more detail at:
	- added: new exit code of '4' to ecasound; see entry below
		 about signal handling changes and ecasound(1) for
		 more details
	- added: -eadb chainop, like -ea/-eac, but gain given in dB;
		 documented in ecasound(1)
	- added: -chorder chainop; see ecasound(1)
	- added: optional inner loop optimizations using liboil;
		 enable with '--enable-liboil'
        - added: OSC support added, see ecasound(1) and 
	         Documentation/ecasound_osc_interface.txt; sffeat:2541462
	- added: in ncurses mode, honor COLUMNS environment variable
	- added: configure - added '--with-extra-cppflags' and 
	         '--with-extra-libs' options
        - added: new 'cop-get' command; see ecasound-iam(1) [alinson]
	- changed: ecasound now defines "-D_XOPEN_SOURCE=500" for 
	           all builds, expressing that the codebase expects 
		   the build environment be compatible with the Single 
		   UNIX Spec v2 (1998); thanks to Jussi Laako for
		   reminding about this
	- changed: yet another change to signal handling in ecasound;
		   now two level response to signals is supported in
		   all stages of process termination -> first starting
		   normal cleanup and exit procudere, and with
		   second signal terminate immediately; see ecasound(1)
		   for the full story (new 'SIGNALS' section)
	- changed: dropped "-funroll-loops" from the set of default
		   compiler options
	- changed: comment out many entries in the global installed
		   'ecasoundrc' file (entries are redundant as the same
	 	   defaults are already set in the program binaries)
	- changed: optimized inner loops in core chain routing and
		   mixdown functions (with liboil if available)
	- changed: optimized inner loops of -ea, -eadb, -eac, and -epp 
	- changed: dropped tracking of 'clipped samples' from -ev as
		   the results were of little use (and misleading)
	- changed: '-ev' status output
	- changed: cosmetic changes to the default ncurses trace output;
		   reduced number of subsystem-level trace messages 
	- changed: the name for default chainsetup created from command 
	           line is now "untitled-chainsetup"
	- changed: do not automatically connect chainsetups loaded
		   with '-s'
	- fixed: mp3 output was broken with lame 3.98 (and newer); 
		 the default lame parameters have now been updated 
		 and have been tested with lame 3.96, 3.97 and with
		 the latest 3.98.2
	- fixed: bad audio with 'resample' object, non-integer sampling 
		 rate change ratios and output to JACK; ecasound did
		 emit warning about this, but did not raise a fatal 
		 error; now the underlying problem is fixed and now
		 'resample' and 'jack' objects maybe safely used 
        - fixed: minor bug in ecamonitor; "cop-status" was used with
		 multiple chains selected
	- fixed: don't use '--ignore-fail-on-non-empty' rmdir option
		 as it is not available on many platforms (e.g. OS X)
		 and this breaks the uninstall target; sfbug:2772628
	- fixed: bug in ecasound frontend parser for '-E' option that
		 broken passing arguments containing the substring 
 		 "-E"; introduced in 2.5.2 release
        - fixed: stale audio was written to JACK output ports in case
	   	 of multiple streams, connected to different JACK ports,
		 reaching end-of-stream at different times [jedahu]
08022009 (v2.6.0) -** stable release **-
	- note: key changes are described in more detail at:
	- added: new optional params to 'jack' -> 'jack,clientname,portprefix';
		 replaces old interfaces 'jack_auto', 'jack_generic' 
		 and 'jack_alsa'; see ecasound(1) for more details
	- added: interactive mode - new commands 'jack-connect', 
		 'jack-disconnect' and 'jack-list-connections'; see 
		 ecasound-iam(1) for details; closes sffeat:2134183
	- added: 'jack_multi', see ecasound(1); closes sffeat:1415822
	- added: ecasound options '--server', '--server-tcp-port' and
		 '--no-server'; these replace the misleading old
		 options '--daemon', '--nodaemon' and '--daemon-port', 
		 which are now deprecated
	- added: extended unit tests to cover option parsing, with
		 some initial test cases
        - added: unit test framework - minor improvements including
		 abilitity to select which cases to run
	- added: ECI - functions eci_ready() and eci_ready_r() added
		 to ecasoundc.h, and ECA_CONTROL_INTERACE::ready()
		 to the C++ API
	- changed: deprecated 'jack_auto', 'jack_generic' and
	- changed: numbering of JACK ports created with 'jack' and
	 	   'jack_generic' starts from "_1" separately for 
		   each prefix [dsacre]
        - changed: deprecated 'ai-wave-edit', 'ao-wave-edit' commands
		   and the 'ext-cmd-wave-editor' ecasoundrc field
	- changed: emit a 'subsystem' level trace message when 
	 	   engine state changes to finished
	- changed: interactive mode - minor update to 'status' command
	- changed: compile libecasoundc as PIC code to make it possible
		   to use it from shared libraries; fixes problems 
		   with e.g. Audio::Ecasound on amd64 architecture ;
		   closes sfbug:2505551
	- changed: ecasound option -f now accepts empty arguments for 
		   sample format, channel count and sampling rate; empty
		   argument states that ecasound can pick a suitable
		   value, either the default value or e.g. the JACK 
		   system sampling rate; updated documentation, see
        - changed: minor update to ecasound's "--help"
	- changed: when reading RIFF WAVE files, properly ignore 
		   any unknown subchunk types
	- changed: largefile support (+2GiB files) is now enabled
		   by default and configure uses's default autoconf
		   macro AC_SYS_LARGEFILE to perform the checks; 
		   to explicitly disable, use '--disable-largefile';
		   the old '--with-largefile' no longer has any effect
	- changed: refactored ECI C impl code to get rid of all
		   fixed size buffers from the parser; this makes
		   the implementation more robust, reduces memory
		   usage and provides a small speed-up to most ECI
		   apps; closes sfbug:1412409
	- fixed: do not limit max-gain reported by '-ev' to [1,max]
		 value range
        - fixed: avoid denormal numbers in '-ete' (leads to unusually
		 high CPU load)
	- fixed: 'dump-cop-value' did not work as documented
	- fixed: ECI - signal an error (e.g. eci_error() returns true)
		 if connection is lost to engine process (sync lost
	 	 or an other error)
	- fixed: ecasignalview - exit if engine reports an error
		 during operation
	- fixed: interactive mode - loop devices saved with incorrect 
		 syntax, affects cs-save, cs-save-as and cs-edit ; see
	- fixed: problems when seeking back to start with setups using
		 loop devices; closes sfbug:2527049
	- fixed: segfault if using a tone generator input with a fixed
		 lenght, and a seek past the end of stream was performed
        - fixed: aac/ogg/mikmod/mid inputs - once object reached state 
		 'finished' (all samples played), it cannot be played 
		 again by reconnecting the chainsetup
	- fixed: combination of '--server' and '-C' (disable interactive
		 mode) had a bug that prevented processing of commands
		 received over the server socket while the engine 
		 was running the batchmode
	- fixed: a nasty bug in 'playat' implementation causing audible
		 artifacts ; see 
	- fixed: sndfile and audiofile backends - emit a warning if 
		 a seek fails (e.g. when seeking beyond current 
		 end-of-file for output objects)
	- fixed: various improvements and fixes related to using
		 non-seekable audio objects (especially interactive
 		 use); in most cases this means graceful recovery 
	 	 from failed seek attempts, and correct reporting of
	 	 the objects actual current position
        - fixed: error is emitted if trying to use 'select' with
		 objects that do not support seeking
        - fixed: bugs with passing 'auto' as the 2nd parameter of 
	- fixed: bug with seeking resampled audio objects
	- fixed: bug in combined use of 'audioloop' and 'resample'
	- fixed: catch and warn about various errors cases when
		 given incorrect or missing params to audio 
		 types: typeselect, resample, reverse, playat, 
		 audioloop, select
24082008 (v2.5.2) -** stable release **-
	- more verbose description of change available at:
	- fixed: bug in channel routing of LADSPA plugins that have
		 more audio output ports than input ports
21082008 (v2.5.1) -** stable release **-
	- more verbose description of change available at:
	- fixed: a last minute change in 2.5.0 that caused build errors
	 	 with gcc-4.3.1 if ALSA support is disabled
	- fixed: a change in 2.5.0 how process cleanup is initiated from 
		 the signal handler caused severe problems on some 
		 systems when ecasound was interrupted with e.g. 
	         ctrl-c/SIGINT; worst case was a crashed X session which
	         is of course really, really bad
 	- fixed: a bug in registering LADSPA plugins; on some systems
	         not all found plugins were registered properly to
	 	 ecasound's object maps causing some plugins to be
		 unusable;  errors 
16082008 (v2.5.0) -** stable release **-
	- more verbose description of change available at:
	- notice: slightly modified the version numbering scheme -
		  minor version is incremented whenever non-trivial
		  new features are added
	- notice: verified to compile with minimal warnings with
	- edi-entries: edi-40 closed (Update to error and warning 
	               reporting mechanisms), edi-38 closed (see
		       edi-7 partially implemented
	- added: ecasound.el: added missing ECI commands cs-option, 
	         cs-set-length, cs-set-position-samples, ai-get-length,
		 ai-set-position, and ai-set-position-samples [dto,
        - added: tone generator input; '-i:tone,sine,440,10.3' will 
		 create a 440Hz sine tone with duration of 10.3 seconds;
		 this input type will be especially useful for reproducing
	 	 bugs in complicated chainsetups, without the need to
		 exchange complete session data (which usually are composed
		 of large amounts of audio data)
        - added: audio looper object; "-i:audioloop,foo.wav" will play
		 'foo.wav' and loop it indefinitely
        - added: audio selector object; "-i:select,5,15.2,foo.wav" will 
		 play 15.2sec of "foo.wav", starting at position 5sec;
		 relates to (edi-7)
	- added: audio play-at object; "-i:playat,5,foo.wav" will
		 start playing "foo.wav" after position reaches 5sec
	- added: EWF files; ability to specify positions in time in 
		 sample frames; "2.0" is interpreted as 2.0secs while
	         "88200sa" is interpreted as 88200 samples
	- added: 'reopen-count' parameter to threshold gate (-ge);
		 for instance when recording vinyl/tapes, this allows
		 to automatically restart recording when a new track 
		 is started [andrewl]
	- added: ecasound frontend option '-E "cmds"' that allows
	 	 to run a set of interactive mode commands at
		 startup; see ecasound(1) for details; closes (edi-38)
	- added: a notice is printed in case audio object's audio 
		 format parameters differ from the chainsetup's default
		 values (audio object's own params always override
		 any value set by e.g. '-f:...').
        - changed: most of the EWF support (Ecasound Wave Files, .ewf) 
		   has been rewritten in this version; numerous bugs
	  	   are fixed
        - changed: eaim - commands 'cop-add' and 'ctrl-add' now allow
		   an alternate syntax: both "-:par1,...,parN"
		   and ":par1,...,parN" are now accepted
        - changed: ability to write to EWF file is now marked as 
	           a deprecated feature which will be removed in
	           a later release 
	- changed: mechanism to terminate forked child processes; 
		   properly wait for process termination in all 
		   circumstances (previously there were some 
		   unhandled corner cases)
	- changed: major updates to the examples.html page (available
	           also at http://nosignal.fi/ecasound/Documentation/examples.html )
	- changed: refactored logic for propagating seek events 
		   across chainsetups; warnings are now issued if 
		   one tries to seek objects that do not supports
		   seeking; similarly warning is issued if a given
	 	   audio object type doesn't support sample accurate
		   seeks (for example mp3 inputs have this limitation)
        - changed: updated ecasound(1) man page description of '-klg'
	- changed: separate global (-d, -R, ...) and ecasound frontend 
		   specific (-c, --daemon, -s, ...) options in 
		   ecasound(1) man page
        - changed: changes to "cs-status" (aka "status", "st")
		   output formatting; now more information about
	           selected and connected setups is printed out
  	- changed: minor changes to the information printed out when
		   open audio input/outputs
	- changed: pipes, sockets and device nodes in LADSPA plugin
		   directories are skipped (previously hidden files 
		   were already skipped)
	- changed: loop device identifier was changed from an integer
	 	   to a generic string; both "-i:loop,1" and 
		   "-i:loop,myloop" are now valid
        - fixed: incorrect usage of the Python C API, which leads to
	 	 segfaults when pyecasound is used under python2.5;
		 fixes Debian bug #468965
        - fixed: bugs in ewf-looping code
	- fixed: avoid terminating processing when invalid parameters are 
		 passed to channel copy (chcopy/erc), mix (chmix/erm) and 
	         move (chmove) chainops
	- fixed: eaim - buffering mode was sometimes incorrectly 
		 reported in 'cs-status' output (-B:auto instead of 
		 the actual set buffering mode) output; bug reported by 
		 Jan Weil
        - fixed: compilation warnings from GCC-4.3; fixes Debian bug
	         #454890, patch from Cyril Brulebois
	- fixed: bug in passing multiple arguments to 'typeselect', 
	         'resample', and 'resample' objects
	- fixed: with some glibc versions (tested with 2.3.6.ds1-13etch5),
		 ecasound did not fully clean up all threads when
		 it received a signal and terminated; the bug showed
	  	 up as a stuck thread, with backtrace pointing to
	- fixed: compilation issue on Mac OS X 10.5 [grobian]
	- fixed: bug in saving control state with 'cs-save' or
	         'cs-save-as'; triggered if controller was followed
		 by more chainops on the same chain
	- fixed: bugs with preserving state across seeks with
	         many controller objects (-kl, -kl2 and -kos)
	- fixed: a bug in ecasound user's guide w.r.t. usage of 
		 loop devices
	- fixed: sloppy parsing of "-i:loop" and "-o:loop" arguments
		 leading to confusing error messages when invalid input/output
		 objects, containing the substring "loop" were passed
	 	 as arguments to "-i" and "-o"
14082007 (v2.4.6.1) -** stable release **-
 	- fixed: extra debugging, printed to stderr, for resource file 
		 values was accidentally left enabled in the 2.4.6 release
14082007 (v2.4.6)  -** stable release **-
	- more verbose description of change available at:
	- added: new option '-R:path-to-resource-file' to use a custom
		 resource file and disable querying of global and user
		 resource files; as a special case, by setting this 
		 to '/dev/null', one disable all access to resource 
		 files; requested by Klaus Schulz and Keith Creasy
	- added: eiam - new command 'resource-file'; see ecasoundrc(5)
		 man page; related to previous item
        - changed: license of rubyecasound, the Ruby ECI API 
                 implementation, has been changed from GPL to LGPL
	- fixed: build errors caused by missing #includes, reported
		 by GCC 4.3; bug report from Debian, bug #417178
	- fixed: rounding errors with small buffersizes caused time crop 
                 gate (-gc) to function incorrectly; reported by Joe 
        - fixed: force localization of decimal numbers to "POSIX" (i.e.
	         use period as the separator) to avoid bugs with 
	         e.g. LADSPA plugins that call setlocale and break 
		 the ecasound option parser; for instance all swh-plugins
	  	 call setlocale; reported by Rémi Rouaud
        - fixed: printing chain operator (e.g. the '-ev' operator) status 
	         at end of sessions was broken in 2.4.5; reported by
	 	 Julien Claassen
	- fixed: bugs that led to infinitely running chainsetups when
		 loop input/outputs were used; reported by Aaron Heller
	  	 and Etienne Deleflie
	- fixed: incorrect page numbers in table of contents of 
	  	 the Ecasound Programmer's and User's Guides; patch 
	 	 from Junichi Uekawa
	- fixed: segfault when removing a chain operator with multiple
		 associated controllers; reported by Adam Linson
07122006 (v2.4.5)  -** stable release **-
	- more verbose description of change available at:
	- added: ability to compile without a readline library (will
	         disable the curses based console user-interface)
	- added: if libsndfile is found and supports flac (sndfile
	         1.0.12 or newer), it will be used as the default
	  	 handler for flac files; use of sndfile makes random 
		 access for flac files possible (for example seeking 
		 in interactive mode)
	- added: section on 'RETURN VALUES' to ecasound(1) man page
	- added: ecasound-iam(1) - added documentation for error 
		 return values for 'run', 'start' and 'cs-connect'
	         variables; see ecasound(1) for documentation
	- added: more detailed description of debug levels that
	         can be set with 'd' to ecasound(1) manpage
	- added: examples section to ecasound(1), which points to
	         the examples page at eca.cx/ecasound
	- added: new chain operators '-chmove' and '-chmute'
 	- added: new aliases for chain operators: '-chmix' for '-erm',
		 and '-chcopy' for '-erc'
	- added: ability to protect EOS arguments, like filenames, with 
	         double quotes, closes bug #1456510; see also the related 
	         BUGS entry about handling commas in filenames, and 
		 updated documentation in ecasound(1), ecasond-iam(1)
		 and the User's Guide
	- removed: readline-4.0 subdir from the dist package; system
	           readline library is now the only build option
	- changed: ecasoundrc - added "-f" to the default flac 
		   output exec command (although now libsndfile's 
	           flac support is the default)
	- changed: improved libsndfile integration, any libsndfile
		   supported file format can be used as output for
	           'sndfile,foo.ext' (format selected based on filename
	- changed: eiam - default int-log-history length set to zero
	- changed: updated config.guess and config.sub to more recent
		   versions (timestamp 2006-07-02)
	- changed: updated the documentation for 'ai-select/ao-select',
		   it is no longer required that input/outputs have
	 	   a unique name within one chainsetup; problem reported 
                   by Kurt Konolige
        - changed: replaced the ECI C implementation's (libecasoundc) 
                   engine cleanup mechanism with a much more robust one
        - changed: the engine will now refuse to start if a start offset
		   is given with '-y:secs' for an object not supporting
		   seeking; this has been a very common source of 
		   end-user confusion
	- fixed: segfault when removing loop devices with a[io]-remove,
	 	 reported by Pedro Antonio Fructuoso Merino
	- fixed: incorrect headers in created flac files (not related
		 to sndfile/flac); fix can possibly affect other file 
		 formats handled by external apps (aac, midi, mikmod, 
		 mp3 and ogg files), problem reported by Florian Ladstaedter
	- fixed: errors during batch processing (running out of file
	         space, etc) were not reported as a non-zero process
	         return value, problem reported by Zrajm Akfohg
	- fixed: possible segfaults with ctrl-select, ctrlp-select
		 and ctrlp-value [allies]
	- fixed: loop devices were not correctly saved with cs-save
	         and cs-save-as [allies]
	- fixed: bug in handling big-ending 24/32bit samples [aheller]
	- fixed: ecasignalview build errors on cygwin [hawk777]
	- fixed: segfault when parsing "\" in interactive mode, reported
	         by Koen [pfructuoso]
	- fixed: a subtle race-condition in the cleanup routines leading
	         to segfaults when breaking a batch run with ctrl-c
	- fixed: bug causing audible glitching when seeking with 
	         chainsetups containing loop devices [pfructuoso]
	- fixed: "rw 0" caused the engine to skip ahead multiple
	         seconds (reported by Kurt Konolige)
	- fixed: segfaults from invalid params to -f option, for 
	         example "-f:16" or "-f:16,2", reported by peppo on
		 #lad at freenode.org
	- fixed: a severe string termination bug in libecasoundc
	         that led to garbled output from ECI commands 
	         returning lists of strings, reported by Brad Bowman,
	         Joel Roth and Stuart Allie
27012006 (v2.4.4)  -** stable release **-
	- more verbose description of change available at:
	- added: eiam - ai-describe, ao-describe, cop-describe and
	         ctrl-describe commands; see ecasound-iam(1)
	- added: ecasignalview - ability to pass ecasound options
		 -G, -B, -M*, -r and -z
	- added: BUGS file - added 'Reporting bugs' section
	- added: updated RPM spec-file for x86_64 support [grabner]
	- changed: minor changes to ecaplay console output
	- changed: ECI C impl. - increased the time engine has
		   for processing ECI commands; fixes problems
		   with the 'cs-disconnect' command with complex
		   setups involving connections to external 
		   resources such as jackd
	- changed: error is raised if one tries to add chainops or 
		   controllers when multiple (or zero) chains are 
	- changed: increased size of buffers used by the ECI-C 
		   parser (sfbug:1412409) [allies]
	- changed: it's now possible to set initial values for
		   operator parameters controlled by MIDI-CCs
	- fixed: compile-time bug in ecasignalview.cpp
	- fixed: saving chainsetups in cases where a ctrl is 
		 connected to a effect preset 
	- fixed: DBC_CHECK failure from eca-chainsetup.cpp when
	         running cs-edit on a non-connected chainsetup
	- fixed: bug in seeking mp3 files
	- fixed: eiam - 'c-select' caused a segfault if no chainsetup
		 was selected
	- fixed: -etf:0 caused a segfault
	- fixed: severe bug in mixdown code - in cases where an input 
                 is connected to multiple chains, and one or more inputs 
                 have reached end of stream, the resulting mix is not
		 handled properly
	- fixed: bug in freeing references to buffers in effect preset
		 code; triggered by externally terminating an ecasound
		 session containing preset objects (sfbug:1412200)
	- fixed: ECI-C memory access errors reported by valgrind
	- fixed: allow commas in ecasignalview input/output params;
		 makes it again possible to specify ALSA devices, etc
21082005 (v2.4.3)  -** stable release **-
	- more verbose description of change available at:
	- added: support for ALSA sequencer support; see ecasound(1)
	         and examples.html [pedrolc]
	- added: runtime warning about possible problems when mixing 
		 resample and jack objects
	- changed: scheduling changes for MIDI and disk i/o subsystems; 
		   possibly affects performance in certain use-scenarios;
		   fixes debian bug #317900
	- changed: updated config.guess and config.sub to more recent
		   versions (timestamp 2005-04-22)
	- fixed: failed runtime check from eca-fileio-stream.cpp:159
	- fixed: eiam - ao-remove'ing JACK input/outputs caused a segfault
	- fixed: --disable-jack/--enable-jack did not work
	- fixed: system-hangs when run in realtime mode and using a large
	         disk i/o double-buffer (-z:db)
	- fixed: ewf-debugging output was left enabled in 2.4.2 release
	- fixed: bug in detecting finished-state with .ewf files when
		 used with -z:db mode enabled -> caused flood of underrun
		 warnings with multi .ewf file sessions
	- fixed: externally terminating, e.g. via JACK transport system, 
                 a batch chainsetup would cause a segfault
07082005 (v2.4.2)  -** stable release **-
	- more verbose description of change available at:
	- note: verified to compile ok with gcc-4.0.0 and gcc-4.0.1 [kaiv]
	- added: eiam - ctrlp-list, ctrlp-selected, ctrlp-get, ctrlp-select
	         and ctrlp-set commands; the last two are RT-commands;
		 see ecasound-iam(1) for more info [allies]
	- added: ecasignalview - ability to reset stats with 'spacebar'
		 and quit with 'q/Q/Esc'; separate logarithmic mode (enable
	 	 with -L, see also -I which is still the default);
		 display of per-channel average amplitude; see 
		 ecasignalview(1) man page for details [jeffrey]
	- added: ecatrimsilence.sh to examples subdir [kaiv]
	- added: --keep-running (or -K) option to ecasound, do not exit
		 from batch mode when processing is finished/stopped;
		 especially useful when used in combination with JACK
		 inputs/outputs [kaiv]
	- changed: various small updates to User's Guide [kaiv]
	- changed: ecasound user-visible copyright string changed [kaiv]
	- changed: minor changes to ecasignalview user-interface
        - changed: --daemon-mode does not anymore require running in 
		   interactive mode [kaiv]
	- fixed: using ecasound.spec with recent versions of rpm 
		 results in a "%package debuginfo" error [kaiv]
	- fixed: problems in saving ewf objects with cs-save,
		 cs-save-as and cs-edit [kaiv]
	- fixed: controllers were always added to the last 
	 	 chainop, not to the selected chain operator [allies]
	- fixed: --enable-jack and --disable-jack both disabled JACK
		 support [kaiv]
	- fixed: serious bug in the "reverse" audio objects, caused 
		 audible noise in the reversed signal [kaiv]
	- fixed: segfaults at exit when LADSPA plugins had been used;
		 the error did not happen every time and with every type 	
		 of plugin; problem was a race between atexit handlers
		 of ecasound, and the dynamically loaded plugins [kaiv]
	- fixed: ecasignalview - do not send or receive transport 
		 events [kaiv]
	- fixed: ecasound daemon mode, correctly print hostnames without
		 resolvable hostname
08042005 (v2.4.1)  -** stable release **-
	- more verbose description of change available at:
	- note: verified to work with automake versions 1.6 and 1.9;
		automake 1.5 and older, as well as autoconf versions
	        older than 2.50, are no longer supported; these
		changes only affect users of Ecasound CVS checkouts
	- added: ecaplay - better error reporting, feature to reset
		 output device audio parameters for each new input 
		 file, support for ECAPLAY_OUTPUT_DEVICE environment
		 variable; see ecatools(1) for more info
	- added: playlist mode to ecaplay (new -q, and -p options;
		 see ecaplay(1) for more info)
	- added: "Supported automake/autoconf features" section to
	         the INSTALL file
	- added: new presets to the default effect_presets file
	- added: support for describing full range of preset parameter 
		 flags with -ppt (see effect_presets file and the
		 relevant sections in User's Guide)
	- added: new sections on preset parameters to User's Guide
	- added: allow reseting ecasignalview max-peak and clipped-samples 
		 counters by sending a SIGHUP to the process
	- changed: moved definitions from acconfig.h to configure.in;
		   gets rid of the AC_DEFINE warnings produced by
		   recent versions of autoheader
	- changed: Ecasound Programmer's Guide converted from LaTeX
		   to ascii/rst
	- changed: sed is used to generate ecasoundrc at make; allows to 
		   specify a custom pkgdatadir when running make [junichi]
	- changed: various small improvements to all ecatools and 
		   the related manpages
	- changed: updated config.guess and config.sub to more recent
		   versions (timestamp 2005-03-24)
	- changed: various updates to the README file
	- fixed: sources for the aRts plugin were not present in the
		 2.4.0 release package
	- fixed: mp3-header parsing code has been partly rewritten;
		 the new parser is designed to better handle garbage
		 and unknown frame types in mp3 files [juliand,kaiv] 
	- fixed: compile errors with egcs-2.91.66
	- fixed: current position of the time crop gate (-gc) was 
		 incorrecly increased [alexey]
	- fixed: compilation failed if building outside srcdir
	- fixed: ECI C impl. did not properly release all file handles
		 in eci_cleanup(); for example playing thousands of
		 files with ecaplay would cause the system to run
		 out of file descriptors (too many open files error)
	- fixed: bug in handling LADSPA plugins with colon chars in 
		 their port descriptions (such as the SC1-4 
	- fixed: do not print "Session created" even if -q option has
		 been given (quiet output mode)
12032005 (v2.4.0)  -** stable release **-
	- more verbose description of change available at:
	- edi-entries: edi-40 progress
	- added: support for having commas in arguments by escaping 
	 	 them with a backslash (example: "ai-add foo\,bar.wav")
	- added: pretty-printing of ecasound output; wrap output so
		 so that all lines fit into 74 columns; does not affect
		 wellformed output mode nor stderr output (-D)
	- added: new section about handling commas in filenames to 
		 Ecasound User's Guide
	- added: eiam - new 'int-log-history' command to query 
	 	 recent log messages sent by libecasound; this is a very
		 useful tool for debugging ECI scripts and apps
	- added: eiam - new 'int-set-log-history-length' command to set
		 log history length; default to 5 items
	- added: resample-lq (low-quality) audio object to force using
		 the internal resampler even though support for
		 libsamplerate is enabled at build time
	- added: support for sum-mixmode; enabled with -z:mixmode,sum;
		 the old average mixing is still the default; see
	- added: ecasoundrc - 'mix-mode' setting; see ecasoundrc(5)
	- changed: more helpful messages to explain why a chainsetup 
		   cannot be connected to the engine
	- changed: EIAM - when returning a list of strings, all commas
		   in list elements are now escaped with backslashes; 
		   this is done to avoid ambiguity in parsing
	- changed: new default debug level of 271
	- changed: new optimized message queue implementation used in
	           communication between the engine and the interface 
		   subsystems; solves a few remaining corner cases 
		   where ecasound could block in real-time critical 
	- changed: better error message if unable to load LADSPA plugin 
		   with -el/-eli
	- changed: removed hard upper-limit for -ei scale-factor, 
		   modified both the upper and lower soft limits
	- changed: updated config.guess and config.sub to more recent
	- fixed: correctly interpret EIAM command arguments containing
	         whitespace (example: "ai-add foo bar.wav")
	- fixed: denormal problems in filter and delay operators
	- fixex: setting radius params of -etc comb filter
	- fixed: make check target failed in readline-4.0 subdir
	- fixed: avoid segfault when receiving a bufsize or srate
		 change event from JACK; ecasound still cannot change 
		 bufsize or srate on the fly, but at least it now fails 
	- fixed: always pass filename (%f) as one parameter to the 
		 external apps; fixes bug present in 2.3.4 and 2.3.5 
		 releases which broke handling spaces in filenames; 
		 affected all file formats handled via external tools 
		 (ogg/mp3/flac/m4a/...); also a separate bug in handling
		 spaces in ogg output filenames was fixed
	- fixed: occasional bugs with rubyecasound in handling the
		 EIAM 'quit' command; this also fixes the errors in 
		 running 'make check' in ecasound/rubyecasound
	- fixed: serious bugs in resampling between 96000 and 44100/48000 
		 rates when using libsamplerate; upgraded Ecasound to use
		 the libsamplerate 'full API'
	- fixed: options "-b:", "-b" and "-b:0" caused a segfault
	- fixed: aac/m4a encoder was not stopped properly after 
		 processing was finished
12112004 (v2.3.5)  -** stable release **-
	- note: main website address has changed to www.eca.cx/ecasound
	- changed: collected all email addresses from source files to 
		   the AUTHORS file and added some antispam measures
	- changed: do not raise an error when opening an OSS device that
		   does not support SNDCTL_DSP_GETBLKSIZE
	- changed: updated all the html-docs to match the new website
	- fixed: default to native-python ECI implementation on MacOSX
	- fixed: link against coreaudio libs if JACK enabled on MacOSX
	- fixed: ecasignalview build error if compiling without 
		 ncurses [mb]
	- fixed: bug in ecasound/rubyecasound 'make check' target
27102004 (v2.3.4)  -** stable release **-
	- edi-entries: edi-14 and edi-32 closed, edi-40 added
	- note: verified to compile ok on MacOS X 10.3.2 [smbolton]
	- note: verified to compile ok with gcc-3.4.1
	- added: basic FLAC input/output support using flac utils;
		 new flac specific options to ecasoundrc
	- added: basic AAC/M4A/MP4 input/output support faac/faad
		 utils; new options to ecasoundrc
	- added: optional 3rd parameter to 'sndfile' for specifying 
		 audio file format (see ecasound(1)) [jesse]
	- added: documentation on adding new EIAM commands to the
	         programmer's guide
	- added: eaim - new 'int-set-float-to-string-precision' command
	- changed: set srate for mp3 input based on mp3 header
	- changed: increased precision of floating point return values
		   in the C ECI implementation
	- fixed: multitrack offset was calculated incorrectly for
		 ALSA devices which limit buffer period count to 2
	- fixed: bugs in .wav, .cdr, JACK code, and in internal sample 
		 conversion routines that occur on big-endian 
		 machines [smbolton]
	- fixed: ogg input failed if requested sample-format had non-native
		 endianess; new default-cmd for ogg-input, see 
	- fixed: build failed on MacOSX/freebsd because of undefined 	
		 mlockall and related defines
	- fixed: errors in ecasound(1) man page and the examples.html;
	         adding chain operators to multiple chains at once
		 is not supported anymore
	- fixed: engine state not fully updated after a 'run' 
		 command has completed; caused commands such as
		 'cs-set-position' to fail when used after 'run'
	- fixed: ecasound sample formats s24_le/_be were mapped
		 to 4-byte ALSA formats S24_LE/_BE; now mapped
		 to the correct 3-byte S24_3LE/_3BE formats
	- fixed: bug in C ECI impl that caused sync-loss errors between
		 ECI clients and the engine [jesse]
	- fixed: ECI session corruption after processing 'long int' 
		 return values [jesse]
05052004 (v2.3.3)  -** stable release **-
	- note: verified to compile ok with gcc-3.4
	- added: eiam - 'map-ladspa-id-list' command
	- added: special-case value of '-1' to 'cs-set-length' or
		 '-t:xxx' will set the chainsetup length according
		 to the longest input object
	- added: ECI guide - a new section on ecasound.el [mlang]
	- added: ecasoundrc - a new special-case value 'autodetect' to 
		 the 'default-output' setting; 'autodetect' is also 
		 the new default ecasoundrc value; see ecasoundrc(5)
		 for details
	- changed: lots of typo fixes and other corrections to 
	           the user's guide [ericdr]
	- changed: minor configure.in cleanup relating to handling
	- fixed: building against libsndfile-1.0.4 and older; if 
		 libsndfile older than 1.0.0 is detected, sndfile 
		 support is disabled altogether
	- fixed: bug in ECI C impl that could cause segfaults [mewe]
	- fixed: signal handling bugs in ecasignalview and ECI C
	         impl [mewe]
	- fixed: bug in ecasound(1) caused man to not show the
		 last three pages
	- fixed: bug in the daemon-mode (NetECI) protocol parser
		 that caused parsing long (over 32 chars) commands 
		 to fail
	- fixed: 'libecasound-config --libs' did not list all 
		 external libraries used
	- fixed: assign default param-names to effect presets 
	- fixed: preset parameters were not saved by 'cs-save' and
06122003 (v2.3.2)  -** stable release **-
	- edi-entries: edi-33 closed
	- added: support for libsndfile; enabled if libsndfile is
	         detected succesfully by configure; can be disabled
		 with --disable-sndfile
	- added: added new audio input/output types 'audiofile', 
		 'sndfile' and 'mikmod'; see ecasound(1) for more
	- added: pyecasound/test2_stresstest.py new test case 
	- added: initial Ruby ECI impl added; see rubyecasound/README 
		 for details [janweil]
	- added: --enable-rubyecasound configure option; defaults to
		 yes if ruby interpreter found on the system
	- added: resampling examples to Documentation/examples.html
	- changed: increased default buffer sizes for 'rtnull' objects 
		   to avoid too many xrun warnings; warnings are also
		   no longer printed to stderr - instead a summary 
		   is printed at the end of the session if any xruns
		   have occured
	- changed: Ecasound PDF docs (user's, programmer's and ECI 
		   guides) are now generated using AE fonts; the PDFs 
		   can now be read with readers like xpdf and 
		   probably look better in others [janweil]
	- fixed: pyecasound/test1_stresstest.py was not included in
		 the dist package
	- fixed: libaudiofile - input file audio parameters
		 parsed incorrectly
	- fixed: -x option - truncate outputs - was not working 
	- fixed: preset.h and other related headers were not installed
		 during install-data phase
	- fixed: pyecasound - the critical native python bugs found 
		 in earlier releases are now fixed
	- fixed: ecasoundc - serious memory leak in handling string 
		 list return types
	- fixed: typo in libecasoundc-config usage [koraq]
	- fixed: bugs with resample that caused audible artifacts
		 with certain srcrate-dstrate combinations
19112003 (v2.3.1)  -** stable release **-
	- added: --disable-effects configure option; build ecasound 
		 without effect and controller components
	- changed: libtool is setup to only create object files for
		   static linkage; you can revert to the old behaviour
		   with the --enable-shared configure option
	- changed: ecasound.el updated to 0.8.3, lots of small
		   changes, see ecasound.el for details [mlang]
	- changed: pyecasound - due to bugs found in the native python
		   impl, the C ECI impl is again set as the default; 
		   can be overridden using --enable-pyecasound=IMPL
	- changed: pyecasound - the native python impl (ecacontrol.py)
		   now returns an error if communication with the
                   ecasound process times out
	- changed: html versions of programmer's, user's and ECI 
                   developer's guide are generated with Hevea instead
		   of latex2html [juekawa]
	- changed: updated config.guess and config.sub to more recent
        - fixed: makefile errors when building against system libreadline
        - fixed: processing did not start in the default transport mode
	  	 with JACK versions 0.80 and older
	- fixed: recording failed with a WinTv 401dbx and the btaudio 
		 OSS driver
	- fixed: compilation against alsa-lib-1.0.x
	- fixed: default ratio value incorrectly set for -eca; does
		 not affect presets using -eca [remon]
29082003 (v2.3.0)  -** stable release **-
	- edi-entries: edi-4, edi-19 and edi-35 frozen, edi-38 added 
		       and frozen immediately, edi-39 added; frozen is 
		       a new status for items that probably won't be
		       ever implemented
	- note: verified to compile ok with gcc-3.3
	- note: verified to work with python-2.3
	- added: eaim - command 'engine-launch' to inialize engine
		 without starting actual processing, and 'engine-halt'
		 for halting it without disconnecting; useful with
		 JACK transport functions
	- added: separate AUTHORS file; also added to the website
	- added: -d, -dd and -d command-line options, see ecasound(1)
	- added: recording offset parameter -z:multitrack,offset option
	- changed: to avoid resampling faults, upper limit of 2000%
		   set for pitchshifter's (-ei) shift-% arg; note! high
		   values of shift-% can still cause crashes if using 
	- changed: if available, use pthread API for setting scheduler 
		   params; might improve real-time reliability on 
		   rh9.0 machines and others that have NPTL
	- changed: pyecasound - redefined configure option 
		   --enable-pyecasound=IMPL where 'IMPL' is either
		   'c' or 'python'; --disable-pyecasound disables 
		   them both
	- changed: pyecasound - if ecasound's build prefix does not
		   match the python prefix, /usr or /usr/local, 
 		   pyecasound will be disabled; you can override 
		   this by specifying the python module directory 
		   explicitly with the --with-python-modules=DIR 
	- changed: JACK transport support code to the new API 
		   introduced in 0.76.1 and newer
	- changed: ecasound.spec; added 'AUTHORS'
	- changed: JACK transport modes redefined; new modes are 
		   'notransport', 'send', 'recv' and 'sendrecv'
	- changed: major updates to README file
	- changed: improved check for aRts; now verifies that linking
		   against libartcs actually works before enabling 
  		   the arts plugin
	- fixed: use of the JACK transport API was never actually 
                 enabled in 2.2.3
	- fixed: .aiff/.snd/.au input/output was not working at all
  	 	 due to a typo in source code
	- fixed: a chain with a short input file could cause a nasty
 		 feedback loop if processed with certain effects 
		 and mixed with audio from other chains
	- fixed: ewf length and offset errors with sample rates 
		 different from default (usually 44.1kHz)
	- fixed: chainsetup samplerate incorrectly set with some
	 	 configurations; caused problems with -t:xxx and 
		 other functions related to chainsetup level position 
		 and length
	- fixed: serious bug in mixing down multiple chains with
 		 different number of channels to one output; audio 
		 from previous mixdown rounds leaked to unused 
		 source channels
	- fixed: some chainsetup parsing errors were totally ignored 
		 and not reported to the user
	- fixed: eiam - output of map-* commands was broken in 
		 certain locales (for example "fi_FI")
	- fixed: without at least one '-Md' or one '-km' option 
		 specified, MIDI-services did not work
	- fixed: pulse gate timing inaccuracy (-eemp); also affected
		 the bpm pulse gate (-eemb) and thus the metronome
		 preset (-pn:metronome)
	- fixed: a 'setpos' on a not yet connected chainsetup would
		 cause seeks to the wrong position for objects with 
		 non-default samplerates
	- fixed: pay regard to -z:multitrack and -z:nomultitrack when
		 saving chainsetups to .ecs files
27042003 (v2.2.3)  -** stable release **-
	- added: support for both -0.64 and 0.65- JACK versions; 
		 transport functionality is only enabled with the 
		 newer versions
	- added: automatic query of child object sample rate by 
		 giving 'auto' as 2nd arg to resample object
	- changed: by default python version of ECI is used; the C 
		   python module for ECI, pyecasound, is only compiled
		   if --enable-pyecasound is specified
	- changed: jack_auto,dstclient input/output object now 
		   automatically connects to matching ports of JACK
		   dstclient (no longer requires dstclient to have
		   in_X/out_X port names)
	- fixed: yet another fix for creating temporary files in
                 ecanormalize and ecafixdc; now both LOGNAME and USER
		 are checked for a valid user name
	- fixed: prefer usleep over nanosleep on cygwin; avoids 
		 the excessive-cpu-usage problem
	- fixed: work-around for a bug in the pcm plugin of ALSA 0.9.1
		 and earlier that caused recording/playback to
		 stop to an audio i/o error
	- fixed: inconsistencies in how configure --disable/enable-feat
		 options were handled
	- fixed: if pyecasound was disabled at build time, make
		 install target failed in ecasound/pyecasound
18032003 (v2.2.2)  -** stable release **-
	- edi-entries: edi-35 and edi-36 added
	- added: ecacontrol.py - a native python implementation of 
		 the ECI API [jhalttun]
	- added: stream ogg/mp3/mid directly from network if the 
	         filename has a url-prefix
	- added: author name to the description of LADSPA plugins
	- added: latest config.guess and config.sub added to 
	         the dist package
	- added: ecamonitor - a warning is printed if you try to 
		 run with python-1.x; python-2.x is required
	- added: new tutorials page added to documentation; 
		 see Documentation/index.html
	- changed: ecasound.el updated to 0.8.2, lots of small
		   changes, see ecasound.el for details [mlang]
	- changed: alsa-0.9 - better support for pcm devices such as 
		   dmix which have strict period size constraints
	- fixed: libecasound sample conversion unit test failed when 
		 compiled with gcc-2.91.66 on certain platforms
	- fixed: compile failed on systems that don't have nanosleep()
	- fixed: subtle bug in -kl and -kl2 (and possibly others) 
		 with fade lengths under 1s
	- fixed: alsa-0.9 - prevent ecasound from prefilling too 
		 much data to output devices 
	- fixed: a ':' in LADSPA plugins parameter name confused
		 ecasound (swh's sc4 is one example)
	- fixed: theoretical problem with ecalength argument 
	- fixed: use LOGNAME instead of USER for creating temporary 
		 files for ecanormalize and ecafixdc
	- fixed: -tl has been broken since 2.2.0-pre5
	- fixed: copp-list dumped core if no cop was selected
15022003 (v2.2.1)  -** stable release **-
	- added: sane default param hints for chainops: -ec, -etd,
		 -ete, -etf, -etl, -etm, -etp, -etr and -epp
	- added: if configured with JACK-support, ecasound will
	  	 fetch the correct bufsize and srate parameters from 
		 the JACK server when connecting a chainsetup with 
	 	 JACK inputs or outputs
	- added: support for Erik de Castro Lopo's libsamplerate
		 resampling library; used both by the resample 
		 audio i/o object and the pitch shifter chainop (-ei);
	         enable with --with-libsamplerate
	- added: --disable-libsamplerate; don't enable libsamplerate
		 support even if the library is found during configure
	- added: resample-hq audio object type; like resample, but 
		 use the highest available resampling quality; 
		 currently only has an effect if libsamplerate 
		 support is enabled
	- added: alternative UNIX signal handling for platforms that
		 don't provide sigwait() (cygwin is one)
	- changed: ecasoundrc - ladspa-plugin-directory can contain 
		   multiple directories, separated by colons; this
		   change was done to avoid any confusion with 
	  	   the LADSPA_PATH syntax and ecasoundrc
	- changed: rewritten much of the JACK slave-mode code; enables
		   much faster and reliable transport-sync
	- fixed: compiling pyecasound failed on alpha w/ gcc-3.2
	- fixed: -t:xxx option did not work if chainsetup samplerate
		 differed from the default; for instance rate change
		 from 44100 to 22050 doubled the run length
	- fixed: make uninstall in kvutils failed if non-identified
	 	 files from old releases were detected
	- fixed: excessive dbc warnings when using the jack plugin
	- fixed: core dump if -eac:x,y was given an invalid channel 
	- fixed: compile failed if JACK support was enabled, but no
		 explicit --with-jack option was given
	- fixed: rounding errors fixed in the resample object
	- fixed: terminal was not properly resetted after a ctrl-c
		 in interactive mode
	- fixed: handle /dev/dsp drivers that don't support 
		 DSP_GETCAPS (cygwin is one)
	- fixed: don't link with rpath if target prefix is /usr [juekawa]
	- fixed: -kl2 didn't work at all in some circumstances
09012003 (v2.2.0)  -** stable release **-
	- edi-entries: edi-1 closed
	- changed: ecasound.el updated to version 0.8.1 [mlang]
	- changed: more user-friednly errormsg when trying to open
	           a nonexistent ogg/mid/mod file
	- changed: eiam - all instances of 'c-mute' in code and docs
		   changed to 'c-muting', although now officially 
		   deprecated, 'c-mute' will continue to work as 
	    	   an alias to 'c-muting'
	- fixed: edi-1 - crackle at start of processing with -ete
	         removed [hgfischer]
	- fixed: various small fixes to remove uncalled for
		 dbc warnings
	- fixed: -b:0 caused a segfault
	- fixed: compile error with gcc-2.95.4 concerning eca-curses.cpp 
		 and the 'erase' symbol
	- fixed: compile error with freebsd-4.7 concerning 
		 eca-chainsetup.cpp/eca-fileio-stream.cpp and 
		 the header file 'sys/mman.h'
	- fixed: resample audio object set the child srate incorrectly
		 for mp3 and headerless audio files 
28112002 (v2.2.0-rc1)
	- edi-entries: edi-35 added
	- fixed: more curses fixes
	- fixed: ecaplay - -k and ctrl-c cleanup bugs
	- fixed: ecaplay - accept filenames containing whitespace
	- fixed: ecafixdc - don't process files that have zero 
	- fixed: compilation fixes for solaris+gcc combo
	- fixed: -y option was not working; broken since 2.2.0-pre1
	- fixed: seg.faults when finishing processing a setup with 
		 -t:x defined, -z:db, no rt-inputs and one or more 
	- fixed: restarting processing from a new position after
		 processing had reached the finished state
	- fixed: banner was printed to stdout even in quiet mode
	- fixed: -etc (chorus), -etp (phaser) and -etl (flanger) 
		 broken by edi-21 work
07112002 (v2.2.0-pre5)
	- edi-entries: edi-29 closed
	- added: ecasound emacs interface, ecasound.el, is now 
	   	 distributed with ecasound (ecatools/ecasound.el);
		 ecasound.el is installed to ecasound's data 
		 directory (default /usr/local/share/ecasound)
	- added: libkvutils_tester, unit tester for libkvutils
	- added: ecamonitor - 'q' to quit
	- added: --nodaemon and --daemon-port=XXX ecasound options
	- added: documentation about the daemon functionality 
	         to ecasound(1)
	- added: ecamonitor.1 man page
	- added: NetECI documentation to programmer's guide
	- changed: rpm spec file unified with the spec file used
		   to build PlanetCCRMA's ecasound packages
	- changed: pyecasound license from GPL to LGPL
	- changed: the C++ ECI implementation, the 
		   ECA_CONTROL_INTERFACE class, moved from libecasound
		   to libecasoundc; now also under LGPL
	- changed: asm/atomic.h kernel header no longer used
	- changed: ecaplay - improved ctrl-c handling
	- fixed: cleanup of curses/ncurses detection in configure.in;
		 this also fixes ecasound compilation on mandrake9.x
	- fixed: controller source positions were not always updated
	         when global chainsetup position was changed
	- fixed: controllers weren't properly initialized before use;
		 this bug caused real harm only to -klg objects; 
		 only the first defined -klg worked as expected
	- fixed: increased the max message size in ECI-standalone;
		 ecasetupedit-0.2.3 caused the parsing buffers to
31102002 (v2.2.0-pre4)
	- edi-entries: edi-27, edi-28, edi-29, edi-30
	- added: eiam - commands 'map-cop-list', 'map-ctrl-list', 
		 'map-ladspa-list' and 'map-preset-list'; see 
		 ecasound-iam(1) man page for details
	- added: eiam - 'ao-add-default' command
	- added: ecicpp_tester, a unit test program for C++ ECI
	- changed: libecasoundc now LGPL licensed
	- changed: edi-30 done; ecaplay, ecaconvert, ecafixdc and 
	 	   ecanormalize rewritten using the new standalone
	 	   ECI api
	- changed: reimplemented the C++ ECI interface on top of 
		   the new standalone C ECI interface
	- changed: implementation level improvements to db, ewf, 
		   resample, reverse and typeselect audio object 
	- changed: edi-28 done; ECI standalone now the only ECI 
	- changed: ecasound now uses the new JACK (0.40.0 and newer) 
	           ALSA PCM port names (alsa_pcm:capture_X and 
	- changed: number of channels must be given as the first
	           parameter to -ezx; this was needed to implement
		   true multichannel support
	- changed: syntax used for JACK inputs/outputs, see 
		   ecasound(1) and ecasound user's guide for 
	- changed: ecasound JACK transport master mode now follows
		   the new pending-timebase model 
	- changed: edi-27 done; the NetECI protocol replaced with the 
		   ECI standalone protocol defined in ecasound 
		   programmer's guide
	- changed: edi-29; major updates to ecamonitor; moved back 
	           to ecasound/ecamonitor
	- fixed: libecasoundc return value sync problem; return
		 value for command wasn't returned until command n+1 
		 was issued
	- fixed: -etc, -etl and -etp crashes if delay parameter 
		 was set to zero
	- fixed: -ezf didn't report the correct dcfic for the 
		 first channel
	- fixed: LADSPA param descriptions were incorrectly 
	- fixed: ecasound ended up in a cpu-intensive loop if 
	         the standard input suddenly disappeared in 
		 the -D output mode; this happened every now 
		 and then with ECI apps
	- fixed: eiam - missing newlines in output of 'cop-status' 
		 and 'ctrl-status'
19102002 (v2.2.0-pre3)
	- fixed: reverted to using old ALSA 0.9 hw-params API,
		 ecasound agains works with old 0.9beta and 0.9rc 
		 ALSA versions
18102002 (v2.2.0-pre2)
	- fixed: ALSA objects weren't properly registered as audio
		 object types
	- fixed: debug level was resetted to 0 after issuing
	- fixed: automake complained about multiple definition
	 	 of ecasoundc_sa
17102002 (v2.2.0-pre1)
	- edi-entries: edi-24, edi-28, edi-29, edi-30
	- note: libecasound and libkvutils interface version numbers
		will from now on track API changes instead of ABI
	- added: edi-24; resample audio object added
	- added: edi-29; initial version of ecamonitor
	- added: edi-28; eiam-command 'int-output-mode-wellformed'
	- removed: edi-30; ecasound internal plugins no longer
		   installed separately
	- changed: ALSA support requires alsa-lib version 
		   0.9rc4 or newer
	- changed: libecasoundc versioning back to normal libtool 
		   style; interface version reverted back to 1:0:0
	- changed: edi-28; C implementation of ECI, libecasoundc, 
	           is rewritten to not depend on libecasound
	- changed: edi-28; pyecasound is rewritten to use the 
	           new C ECI implementation instead of direct
		   use of libecasound
	- changed: edi-30; removed all shared libs and subpackages
	  	   containing them from ecasound.spec.in
	- changed: added ecamonitor to ecasound.spec.in
	- changed: edi-30; libecasound and libkvutils 
		   versioning back to normal libtool style
	- fixed: unnecessary warnings when closing OSS 
	         audio objects
	- fixed: unnecessary warnings when adding audio 
		 objects to a chainsetup with no chains
	         currently selected
	- fixed: resample, reverse and typeselect audio objects
		 types were broken in 2.1dev11
	- fixed: removing audio inputs and outputs didn't work
		 as specified
	- fixed: bugs in multitrack-mode operation; processing
		 would stop once all input objects were
	- fixed: pyeca.py - correct handling of 'e' and '-'
	         return types [jhalttun]
	- fixed: eiam - removed the extra newline char from output
	         of 'cop-status' and 'ctrl-status'
	- fixed: loglevel settings were lost when output mode 
		 was changed
	- fixed: ecamonitor was missing from the dist package
22082002 (v2.1dev11)
	- added: configure-check for socket libraries
	- added: -evp - volume peak watcher operator
	- added: initial support for LADSPA v1.1 API for plugin 
		 parameter defaults (as used in swh-0.2.8 plugin 
		 set); updated ladspa.h included in the source tree
	- changed: rewrite of all user-interface code that's
		   in the ecasound-x.y.z/ecasound directory
	- changed: added chainop and controller parameter 
		   descriptions back to ecasound's command-line 
		   help (--help/-h)
	- changed: ecasignalview rewritten; segfault bugs fixed,
		   consumes less cpu-resources, better interface
	- changed: ecasoundrc - default command for ogg playback
		   to catch up with the ogg 1.0 release
	- changed: new sample format conversion routines along
	  	   with unit tests
        - fixed: a long-standing bug in ecaplay that caused it 
		 to segfault with big playlists
	- fixed: LADSPA_PATH env.variable not parsed correctly
	- fixed: floating-point exceptions when run on alpha-linux
	- fixed: libecasound_tester failed on machines without
	 	 the LADSPA SDK plugins installed
	- fixed: ia-mode - ctrl-d didn't exit as it should; this
		 broke shell scripts that used pipes to communicate
	         with ecasound
24062002 (v2.1dev10)
	- added: -G:mgrtype,optstring switch for setting 
		 audio object manager level options
	- added: -G:jack,client_name,operation_mode option; see 
	         ecasound(1) for details
	- added: --enable-all-static configure option
	- added: --disable-jack configure option; disable JACK
		 support even if all required libs and headers
		 are found
	- changed: major data structure cleanup in the JACK
	- changed: JACK support is now enabled if 'jack/jack.h'
		   is found; also --with-jack=PATH still works
	- fixed: 'unknown device state' errors with multichannel 
		 soundcards like midiman deltaXX and rme 
		 when starting processing and if -z:intbuf mode 
		 was selected
	- fixed: due to changes in autoconf variables, non-atomic
		 locking was always used instead of atomic locking 
  		 in 2.1dev8 and 2.1dev9
	- fixed: configure failed if an old (<0.9) ALSA version was 
		 installed even if --disable-alsa was specified
	- fixed: loading chainsetup from interactive mode failed
		 both with cs-load and after cs-edit
	- fixed: compiling against readline 4.2 with 
		 --enable-sys-readline failed
	- fixed: bugs in the -z:db subsystem caused segfaults
	- fixed: problems with -z:db and small files
	- fixed: eiam - 'cs-get-length' always returned 0
17052002 (v2.1dev9)
	- edi-entries: edi-22
	- changed: optimized disk i/o subsystem (-z:db) performance
	- changed: edi-22 fully implemented (JACK-support)
	- fixed: disk i/o subsystem didn't discard all old data 
		 after a seek to a new location
	- fixed: installing pyeca.py failed if ecasound was 
		 built outside srcdir
	- fixed: timeouts when starting chainsetups with JACK 
	- fixed: bug in stopping JACK input/outputs; affects 
		 seeking in interactive mode
13052002 (v2.1dev8)
	- edi-entries: edi-13, edi-18, edi-21, edi-22
	- added: reverse audio object type; see the ecasound(1) 
		 man page for better documentation
	- added: pyecasound - if python version is 2.2 or higher, 
		 pyeca.py sets custom dlopen flags before importing
	         the actual pyecasound python module; this makes it
		 possible to access ecasound's plugins (ALSA, JACK,
	         libaudiofile) from python ECI apps
	- added: ecasoundrc - 'default-audio-format'; same syntax
 		 as with the -f option; defaults to s16_le,2,44100,i
	- added: edi-18 implemented; engine samplerate is now
		 set automatically - if object sample rates don't
	         match, an error is printed
	- added: edi-21 implemented; a much improved framework 
		 for handling audio position information is now
  		 in place; -kl, -kl2 and -klg are now position 
		 aware - changing chainsetup position also affects
	   	 controller sources
	- added: initial implementation of edi-22
	- added: support for devfs /dev/sound/dsp devices [karmak]
	- added: new debugging system in libecasound; semantics 
	         of -d:xxx debug levels have changed
	- added: 'make check' target builds and runs 
		 libecasound/libecasound_tester, which performs
		 a set of functionality tests
	- removed: support for old ALSA driver versions 0.3.x, 
 		   0.4.x and 0.5.x
	- removed: ecasoundrc - 'default-samplerate'
	- removed: -sr option; not needed anymore
	- removed: ia-mode - 'c-rewind', 'c-forward' and 
	- removed: ecasoundrc - default-to-interactive-mode
	- removed: mixmode switch (-m)
	- removed: ecasound/contrib directory
	- changed: JACK support updated to match JACK's 13/May/02
	- changed: pyecasound - module libpyecasound.so renamed 
		   to pyecasound.so
	- changed: programmer's guide updated; added a new chapter
		   about library organization
	- changed: minor user's guide update
	- changed: looping with -tl always loops from the start; 
		   -y can't be used for setting the loop start 
 		   offset -> ewf-files should be used instead
	- changed: s24_le and s24_be sample formats are interpreted
		   as three-byte values, not as four-byte 
		   24-in-32bits values as before; to access 
		   unpacked 24bit data, use s32_le and s32_be
		   formats instead
	- changed: configure.in cleanup
	- changed: the libkvutils binary API has changes so its
	           version number was changed from 3:0:1 to 3:0:0
                   (libkvutils.so.3); this interface will be
		   frozen together with libecasound.so.8
	- changed: rewritten rtnull implementation; now imitates
		   soundcard behaviour much more accurately
	- changed: numerous portability improvements to the 
	           autoconf scripts
	- changed: new rpm-spec file; libraries are now located
	 	   in separate rpm-packages
	- changed: ecasound-config renamed to libecasoundX-config
	- changed: ecasoundc-config renamed to libecasoundcX-config
	- changed: libecasound headers are now installed to 
		   incdir/libecasound, similarly libecasoundc headers
	           to incdir/libecasoundc
	- changed: plugin directory name from prefix/lib/ecasound-plugins
	           to prefix/lib/libecasoundX-plugins, where X is
	           the library interface number
	- fixed: -[io]:alsaplugin,x,y didn't work with latest ALSA
		 0.9betaX releases
	- fixed: serious bug in setting up ALSA 0.9.x buffering params
	- fixed: rare bug with sampling rate changes
	- fixed: autoconf 2.5x fixes [iondiode]
	- fixed: typeselect - opening and closing a typeselect 
		 device multiple times caused a seg.fault
	- fixed: some ECI apps dumped core when executing their 
		 first command
	- fixed: after mp3/ogg/mikmod/timidity objects had reached
		 finished state, playback couldn't be started 
		 without doing a disconnect-connect
	- fixed: better handling of situations where JACK server
		 is abruptly shutdown and then restarted
	- fixed: sometimes an incorrect length-field was written to 
		 newly created wav-files 
	- fixed: problems with using ewf-files with doublebuffering
	- fixed: loop devices didn't work; resulted in 'explicit 
		 exception' errors
	- fixed: configure failed if neither ncurses nor termcap
		 was installed
	- fixed: compile failed if ALSA was not installed (even
		 with --disable-alsa)
	- fixed: if compiled with --with-largefile, when closing 
		 output wav files, riff header block was written
		 over start of audio data
	- fixed: -eemb wasn't working properly, this broke the
	         'metronome' preset
	- fixed: recording offset not set when not in 
		 multitrack mode
	- fixed: incorrect parsing of wav headers on big-endian 
	- fixed: various small fixes to make ecasound compile 
		 with Sun's Workshop6 C5.2 C++ compiler under
		 64bit Solaris 2.8 (sparc ultra-250)
	- fixed: ecasoundrc - ext-cmd-text-editor and 
		 ext-cmd-wave-editor were incorrectly parsed
	- fixed: cs-edit didn't preserve chainsetup position
	- fixed: cs-edit discarded all changes if the original
		 chainsetup was connected but the resulting
		 setup was not valid for reconnection
	- fixed: -klg didn't work as documented
16012002 (v2.1dev7)
	- edi-entries: edi-12
	- added: a watchdog thread that handles thread cleanup; 
	 	 this is needed especially for audio and chainop
 	         objects which create their own threads (like jack)
	- changed: unification of interactive and passive 
                   modes; running ecasound without -c is now
		   pretty close to "echo run | ecasound -c cmds"
	- changed: if an invalid chainsetup is given on the command
	           line, and -c is given, ecasound will print an 
		   error but will not exit as it did before; you 
		   can continue editing in the ia-mode to check 
 		   what was wrong in the setup
	- changed: compilation of eca-iamode-parser.cpp is now 
		   significantly faster and takes less resources;
		   this should fix problems with compiling ecasound 
                   on machines with <256MB of memory
	- fixed: audio-manager.h was missing from the dist-package
	- fixed: critical bug that prevented writing to 
 		 double-buffered non-realtime output objects
	- fixed: chainsetups with multiple controller objects of
		 the same type didn't work in 2.1dev6 [jesse]
	- fixed: edi-12 - multichannel, noninterleaved ALSA 0.9 input
		 and output not working properly
22122001 (v2.1dev6)
	- edi-entries: edi-8, edi-11, edi-17
	- note: review of all samplebuffer-related code; 
		lots of code-cleanups and minor improvements
	- added: edi-11; hierarchy-based config file system; 
		 default values now stored to 
		 '{prefix}/share/ecasound/ecasoundrc' while
		 individual values can be overridden in 
	- added: bitrate (kbps) params to mp3 and ogg outputs
	- added: initial JACK support; enable by giving
		 --with-jack=install_prefix configure option
	- added: edi-8; ia-mode - support for parsing args 
	         containing white-space; either by quoting
	         with ("a token") or backslash espacing 
	         (a\ token) [junichi]
	- removed: ecasoundrc - 'user-resource-directory' tag 
                   removed; user-specific preset/oscillator 
		   definition directory now '~/.ecasound'
	- changed: ecasoundrc - to avoid versioning conflicts, 
		   all 'ext-*' tags are renamed; see ecasoundrc(5)
	- changed: 'make install' will now overwrite old 
		   data files ({prefix}/share/ecasound/*)
	- fixed: problems with automake1.5
	- fixed: eiam - 'ao-get-position' returned an integer 
		 value instead of a float as it should
	- fixed: bugs with combining -ei and LADSPA plugins
	- fixed: 2.1dev5 wrote broken wav-headers
	- fixed: minor changes to posix signal handling
	- fixed: seg.faults with -ei:x where x < 50
05122001 (v2.1dev5)
	- added: docs - Documentation/manpages.html
	- added: ecalength - -su option added [smassy]
	- added: experimental support for largefiles (>2GB); 
		 enabled with --with-largefile configure option
	- changed: most preset names changed in 'effect_presets'
	- changed: ecasoundrc - new defaults for mp3 and ogg
	- changed: unified kvutils build process; added separate
	           libkvutils_debug target; CXXFLAGS shared with
		   ecasound build configuration
	- fixed: processing didn't stop with setups that had loop-
		 devices connected to multiple input objects
	- fixed: using loop devices in setups with non-default 
                 internal sample rate could cause unwanted 
	- fixed: -kog and -f were broken (since dev4)
	- fixed: bugs in passing audio format params to 
                 mp3 and ogg encoders; note! update your 
		 ~/.ecasoundrc to match the new defaults,
		 see ecasoundrc(5) man page
	- fixed: ecasound wrote to ewf-files opened in read-only mode
	- fixed: work-around for environments without the C99 stdint.h
                 header file [anarcat]
	- fixed: eiam - problems with 'cs-set-position-samples', 
                 'cs-rewind' and 'cs-forward' with unconnected
31102001 (v2.1dev4)
	- added: eiam - 'cs-option' commmand; although explicit use 
		 of cmd-line options as iactive-mod commands (like 
                 "-i:file.wav") is still supported, "cs-option 
                 -i:file.wav" is now the preferred syntax
	- removed: ecasound FAQ file - it only contains about 	 
		   a pageful of useful text - I moved that
		   precious piece of content to the user's 
		   guide :)
	- changed: uses of '-i' an '-o' replaced with 'ai-add' 
		   and 'ao-add' in ECI documentation and 
		   code examples in 'ecasound/examples'
	- changed: user's and programmer's guides updated
	- changed: bug-alert; major rewrite of ecasound's 
                   internal object factory code
	- changed: eiam - output of aio-register, cop-register,
		   ladspa-register and preset-register commands
	- fixed: multitrack mode was not properly detected if 
		 buffering mode was selected explicitly (-B)
	- fixed: eiam - minor 'cs-edit' bugs fixed
	- fixed: 'make install' failed if srcdir != objdir
	- fixed: didn't work with ALSA +0.9b8 CVS-tree
	- fixed: additional noises when mixing mono and stereo
		 streams in ecasound chains
	- fixed: better handling of situations where ecasound
		 can't execute ogg123 for ogg input
21102001 (v2.1dev3)
	- note: major changes to effect preset system which 
		break some old preset definitions
	- edi-entries: edi-3
	- added: ecasound-config - --ldflags and --prefix
	- added: engine profiling info (printed to stderr)
	- added: -z:multitrack, -z:nomultitrack for forced enabling
		 and disabling of multitrack-mode
	- added: variable-like preset parameters; it's now possible
		 to bind one preset parameter to multiple chainops'
		 parameters (control multiple settings with one
	- added: support for describing preset parameters (edi-3)
	- changed: pyecasound - makefile-hack that allows pyecasound
		   to work even though compiled against libecasound 
		   and libkvutils that are not installed to 
		   a directory listed in /etc/ld.so.conf
	- changed: db-subsystem - is put to sleep more 
		   aggressively, which should further decrease 
		   its cpu-load
	- changed: db-subsystem - runs once again under sched_fifo
		   scheduling if -r is enabled
	- changed: ALSA xrun reports are now printed to stderr 
		   instead of ecasound debug-subsystem
	- changed: -B:rt selected as the default bmode for 
		   multitrack-setups (instead of -B:lowlatency)
	- changed: preset definitions in 'effect_presets' changed
		   to take advantage of the preset system improvements
	- fixed: major bugs in interpreting LADSPA plugin 
		 parameter hint flags
	- fixed: a nasty bug in bufmode activation code prevented
		 -kos, -kl, and others from working properly
	- fixed: loop devices didn't work well with -z:db; fixes
		 ecasound testsuite case con_test1-8
	- fixed: memory leak in LADSPA handling code; was triggered
	 	 by recent versions of ecamegapedal
	- fixed: pyecasound - make target 'install-exec-hook' failed
		 if --disable-pyecasound was given to configure
14102001 (v2.1dev2)
	- added: ecaplay - -k, -d and -h options, see 'man ecaplay'
	- added: eiam - ai-get-length-samples, ao-get-length-samples,
		 cs-get-length-samples, cs-set-length-samples [smassy]
	- added: support for variable length buffer's for ALSA 0.9
		 output (required by -ei:xx type effects)
	- changed: tuned prefill-parameters for double-buffering
	- changed: when saving chainsetups, if no parameters 
	           are overridden, buffermode definition (-B) is
		   saved instead of individual parameters
	- changed: yet more changes to the multitrack-mode
	- changed: eiam - output of *-status commands
	- fixed: -r option wasn't saved to chainsetups (used
		 to be a session-level option)
	- fixed: typeselect problems when used for outputs
	- fixed: system lockups with -B:rtlowlatency and 
		 rt-object-only chainsetups
	- fixed: misplaced tab prevented eci.py from working
		 with python 2.1 (nested scopes)
	- fixed: if a monitor track input ended before recording 
                 stopped in multitrack mode and -z:db was enabled, 
		 it continued producing unwanted noise to the
		 monitor output
	- fixed: eiam - ladspa-register output had plugin names 
		 and descriptions mixed
09102001 (v2.1dev1)
	- added: chainsetup parser prints a warning if an unknown
	         buffering mode is given to -B:mode 
	- changed: 'rt' buffering mode is preferred over 
		   'rtlowlatency' if no chain operators are 
		   present, and multitrack mode is not active
        - changed: more improvements to double-buffering
	- fixed: critical bug when running in -B:rtlowlatency 
		 mode (caused system-lockups with ALSA 0.9.x
	- fixed: explicitly specifying -z:nointbuf had no 
	- fixed: setting double-buffer length didn't have 
		 any effect (given either in bmode defaults 
		 or as -z:db,dbsize)
06102001 (v2.1dev0)
	- edi-entries: edi-2, edi-6, edi-10, edi-15
	- added: more recent config.guess and config.sub to 
	         the dist package  [juekawa]
	- added: new feedback-% param to -etd effect, doesn't
		 affect old presets using -etd [smassy]
	- added: ALSA device name 'default' is used if no 
                 other name is given ('-o:alsa' is equivalent
	         to '-o:alsa,default')
	- added: special case for mapping "ecasound file.ecs"
		 to "ecasound -s:file.ecs"
	- added: implementation of edi-6; the -z:db
		 is now completely transparent to other 
		 parts of ecasound
	- added: eiam - new commands: cs-set-position-samples,
		 cs-get-position-samples, ai-set-position-samples,
		 ai-get-position-samples, ao-set-position-samples,
	- added: edi-15 - '-B' option for selecting default 
		 buffering mode (see ecasound man page)
	- added: edi-15 - ecasoundrc bmode-defaults options; 
		 obsoletes old default-buffersize, etc options
	- added: various improvements to multitrack sync-mechanism 
		 to make it work reliably in all buffering modes
	- added: ladspa.h added back to distribution; it is however
		 not installed to incdir/ecasound/ladspa; also 
		 already installed ladspa.h is preferred over
		 the local header file version
	- added: S.Massy's ecalength added to ecatools - 
		 see ecalength(1) manual page (edi-10)
	- added: new 'typeselect' audio object type that can 
		 be used to override the object type; see 
		 man ecasound(1) for details
	- changed: library version changed to 8.0.0
	- changed: use of kvutils/definition_by_contract 
		   dropped; more lightweight kvutils/dbc.h
		   will be used from now on
	- changed: more strict option parsing; now a warning
	  	   is printed if an unknown option is seen;
		   parser also won't accept known options
		   with invalid or incorrect parameters
	- changed: use of libstdc++ namespace now explicitly
		   marked using the 'std::' prefix [rpolton]
	- changed: new layout for saved ecs-files
	- changed: docs - converted ecasound user's and 
		   programmer's guide from yodl to latex 
	- changed: shocking changes to startup printouts :)
	- fixed: gcc3.x fixes to ALSA 0.5.x plugin [juekawa]
	- fixed: problems with ALSA 0.9beta7 (dlopen() issue)
	- fixed: minor samplerated bug with LADSPA plugins
	- fixed: gcc3.x failed on certain glibc2.1 headers 
		 if optimization was enabled (-O2)
	- fixed: pyecasound linking failed in certain 
	- fixed: ecasound.spec - dropped the hardcoded python 
	         module path that was passed to configure
	- fixed: seg.fault if opening wav/raw files for 
		 output failed for some reason (access
		 denied, etc)
	- fixed: non-zero defaults for -r:x and -z:db,y [smassy]
16012002 (v2.0.4)  -** stable release **-
	- edi-entries: edi-12
	- added: docs - Documentation/manpages.html
	- fixed: ecasound.spec - dropped the hardcoded python 
	         module path that was passed to configure
	- fixed: seg.fault if opening wav/raw files for 
		 output failed for some reason (access
		 denied, etc)
	- fixed: misplaced tab prevented eci.py from working
		 with python 2.1
	- fixed: major bugs in interpreting LADSPA plugin 
		 parameter hint flags
	- fixed: memory leak in LADSPA handling code; was triggered
	 	 by recent versions of ecamegapedal
	- fixed: edi-12 - multichannel, noninterleaved ALSA 0.9 input
		 and output not working properly
28092001 (v2.0.3)  -** stable release **-
	- added: more recent config.guess and config.sub to 
	         the dist package  [juekawa]
	- changed: -z:intbuf made the default once again
	- changed: ecasoundrc - default-to-internal-buffering
		   renamed to default-to-max-internal-buffering
		   to avoid conflicts with the old defaults
	- fixed: gcc3.x fixes to ALSA 0.5.x plugin [juekawa]
	- fixed: problems with ALSA 0.9beta7 (dlopen() issue)
	- fixed: minor samplerated bug with LADSPA plugins
	- fixed: gcc3.x failed on certain glibc2.1 headers 
		 if optimization was enabled (-O2)
	- fixed: pyecasound linking failed in certain 
17082001 (v2.0.2)  -** stable release **-
 	- added: current position tracking to loop devices
	- added: more verbose xrun info from ALSA 0.9.x devices
	- added: info about the new perl bindings to ECI API docs
	- added: Eric Tiedemann's alternative Python ECI 
		 interface, eci.py, added to pyecasound [est]
	- added: support for gcc 3.0 [juekawa]
	- changed: improved configure checks for python include 
		   and library directories
	- changed: -tl now works without -t
	- changed: new algorithm for selecting initial param 
		   values for LADSPA plugins
	- changed: update ogg input and output support to
		   work with ogg vorbis 1.0rc2
	- changed: changed some of the returned error codes
	- fixed: selecting a non-existant chainsetup could crash 
	- fixed: --enable-audiofile actually disabled the use of 
		 libaudiofile (!)
	- fixed: ecaplay - if ecaplay is unable to play a file, 
		 instead of exiting it now skips to the next file
	- fixed: giving a non-integer number of delays to -etd 
		 caused  a seg.fault
	- fixed: eiam - issuing copp-select + copp-get caused
		 a crash if no cop was selected
	- fixed: bugs in handling infinite length ewf sources
	- fixed: --disable-oss still required to sys/soundcard.h 
	         to be present [rob]
	- fixed: bug in sending MIDI-MMC messages [robstr]
	- fixed: bug in ecasoundc cleanup routines [rjpoelstra]
05062001 (v2.0.1)  -** stable release **-
	- added: ecasoundrc - default-to-internal-buffering; select
		 the default between -z:intbuf and -z:nointbuf
	- added: alternative C ECI implementation providing reentrant
		 access to the library; the new routines have a '_r' 
		 postfix and are located in libecasoundc [ajeanneau]
	- changed: completely rewritten mp3 header parsing; should 
		   fix most of the compatibility problems
	- fixed: disk buffers weren't properly flushed in -z:db mode 
		 when changing or setting processing position
	- fixed: bugs in assigning LADSPA plugin audio ports to 
	  	 ecasound chain channels
	- fixed: configure script failed if arts was installed 
	  	 without the devel files (arts-devel) 
	- fixed: bug in the MIDI-server code caused core dumps in
		 certain situations
	- fixed: bug in querying -klg parameter status
	- fixed: eiam - giving certain invalid arguments to 'cop-add'
		 and 'ctrl-add' crashed ecasound
	- fixed: bug in closing .raw files [smassy]
	- fixed: eiam - cop-inxed-select renamed to cop-index-select
	- fixed: bugs in loop device channel handling
	- fixed: changing internal sample rate caused problems to 
		 the noise gate effect (-enm)
02052001 (v2.0.0)  -** stable release **-
	- added: -klg - a generic linear envelope; a controller source
		 that can be used to map custom envelopes to chain 
		 operator parameters [artham]
	- fixed: segfaults when trying to access non-existing preset
	- fixed: segfault if tried to copp-get without first
		 selecting a parameter with copp-select
	- fixed: few bugs in ewf looping routines
	- fixed: 'make uninstall' forgot some files and dirs
	- fixed: bug in ALSA 0.9.x xrun handling
24042001 (v1.9dev6)
	- added: eiam - cs-setpos, cs-set-position; aliases for setpos
	- added: eiam - cs-getpos, cs-get-position; aliases for getpos
	- added: eiam - cs-rewind and cs-forward; aliases for rewind 
		 and forward
	- added: eiam - cs-get-length; alias for get-length
	- added: ecatools - repeated ctrl-c causes ecaplay to exit
		 immediately (like mpg123)
	- added: MIDI options now properly saved to ecs files
	- added: eiam - c-index-select, c-iselect, cs-iselect,
		 cs-list, ai-list, ao-list, ai-iselect, ao-iselect
	- added: eiam - cop-index-select, cop-iselect as aliases for
	- added: eiam - copp-index-select, copp-iselect as aliases for
	- added: eiam - ctrl-index-select, ctrl-iselect as aliases for
	- added: eiam - ai-get-format and ao-get-format
	- added: eiam - cop-selected, copp-selected and ctrl-selected
	- added: eiam - cop-list, copp-list, ctrl-list
	- removed: because of the continuing licensing problems,
		   ladspa.h was removed; to compile ecasound with 
		   LADSPA support, the LADSPA SDK has to be installed
	- changed: eiam - separate commands sets for operating on audio 
		   inputs (ai-) and outputs (ao-); affects all aio-* 
		   commands except aio-register and aio-status
	- changed: eiam - dump-aio-* separated into dump-ai-* and
	- changed: eiam - cs-length renamed to cs-set-length
	- changed: updated ecafixdc and ecanormalize to use the new
		   temp file creation routines
	- changed: -z:nointbuf is now the default; use -z:intbuf to
		   enable the old default behaviour
	- changed: eiam - ai-index-select and ao-index-select now 
		   take an integer parameter
	- changed: eiam - c-name renamed to c-rename
	- changed: eiam - cs-set renamed cs-set-param
	- changed: eiam - cs-format renamed cs-set-audio-format
	- changed: eiam - cs-loop renamed to cs-toggle-loop
	- fixed: small bug fix to ALSA 0.9.x support
	- fixed: eiam - ctrl-remove bug fix, take two :)
22032001 (v1.9dev5)
	- added: eiam - new aliases 'getpos', 'c-set-position',
		 'aio-set-position', 'aio-getpos'
	- added: eiam - 'int-cmd-list', 'int-version-string'.
		 'int-version-lib-current', 'int-version-lib-revision',
	- added: eiam - added a section about 'realtime commands' 
		 to ecasound-iam(1) man page
	- changed: new system for creating temporary files; 
		   all temps are put into a separate directory;
		   $TMPDIR and $TMP are used if available, otherwise 
		   defaults to /tmp
	- fixed: mp3 output broken
	- fixed: more zombie-problems with mpg123, lame, ogg123 
	         and others
	- fixed: eiam - 'fw' and 'rw' commands didn't work properly
		 if -z:db was enabled and audio object sample rate
		 was different than internal sample rate
	- fixed: eiam - 'ctrl-remove' removed the selected chainop,
		 not the controller as it should have
	- fixed: eiam - seg.fault when using 'cs-edit' to configure
	         a connected chainsetup
06032001 (v1.9dev4)
	- added: -C - disable interactive mode; reverse op. for -c
	- added: -X - open outputs for updating; rev.op. for -x
	- added: -r:-1 to disable raised-priority mode		
	- added: -z:nopsr, -z:noxruns and -z:intbuf ; rev.ops for
		 existing -z options
	- added: 'user-resource-directory' define to ~/.ecasoundrc;
		 see ecasoundrc(5) for details
	- changed: ecasoundrc - the default midi-device has to be 
		   given using the new 'type,device' syntax; defaults
		   to 'rawmidi,/dev/midi'
	- changed: man pages are now distributed in nroff 'man' format
	- changed: audio object regexps are now case insensitive - 
		   for instance both file.mp3 and file.MP3 are now
		   recognized as mp3 files
	- fixed: mpg123 instances weren't always properly cleaned
	- fixed: loop-device code wasn't working
	- fixed: more ewf-fixes
	- fixed: removal of static object maps might cure some
		 C++ compatibility problems (no user-visible changes) 
	- fixed: if connected, trying to remove the last chainsetup
		 failed (possible core dump if debug disabled)
	- fixed: when used as inputs, 'null' and 'rtnull' now produce
	  	 silence instead of random data (=noise)
02032001 (v1.9dev3)
	- added: ecaplay - ctrl-c skips to the next file
	- changed: -Md syntax to '-Md:rawmidi,device_name', where
		   'rawmidi' specifies the type while 'device_name' 
	  	   refers to a file/device name
	- fixed: MIDI-thread hang when exiting ecasound 
	- fixed: various ewf-related fixes
	- fixed: eiam - rounding errors with 'rw' and 'fw' commands
	- fixed: ecaplay - seg.faults when playing multiple files
	- fixed: object cleanup was not properly done if ecasound 
		 received signals while multiple threads were 
		 running ("pure virtual method called" warnings)
14022001 (v1.9dev2)
	- added: -z:nointbuf - minimize the use of internal buffering
	         done by rt-devices
	- added: -z:xruns - stop processing if an xrun occurs
	- added: '--disable-ncurses' configure switch; ncurses/termcap
		 is still required during compiling, but with this,
		 ncurses/termcap is ignored during linking
	- added: -Md:device option for specifying MIDI-devices
	- added: -Mms:device_id; send MMC start/stop to MIDI devices
	- added: -Mss; send MIDI-start/stop (note! MIDI-clock is 
		 not sent)
	- added: support for ALSA 0.6.x named pcm-devices; the new
		 syntax is '-[io]:alsa,pcm_name'; alternatively, 
	         '-[io]:alsahw,card,dev,subdev' and '-[io]:alsaplugin,
		 c,d,sd' can also be used; doesn't affect 0.5.x and 
	         older ALSA plugins
	- added: eiam-cmds; cs-is-valid
	- changed: support for -z:nointbuf to OSS-devices (/dev/dsp)
		   and ALSA 0.5.x plugin
	- fixed: severe bugs with -km (midi-routines)
07022001 (v1.9dev1)
	- notice: new version numbering scheme
	- added: eiam-cmds; set-position, get-position, get-length, 
		 cs-connected, cs-selected, engine-status,  
		 aio-get-position, aio-get-length, aio-selected,
		 ctrl-select, ctrl-remove, cop-select, copp-select, 
		 copp-set, copp-get, c-list, cs-list
	- added: eiam command return type documentation to
	 	 ecasound-iam man page
	- added: ecasound detects all eiam return types and
		 automatically prints their values after commands
		 are issued
	- added: example code (under ./examples) - ecidoc_example.c, 
		 ecidoc_example.cpp, ecidoc_example.py, normalize.py
	- added: -kog - a new generic oscillator
	- added: lots of new documentation - check the examples page,
		 user's guide and the ecasound faq 
	- added: better handling of output error conditions (out of
		 disk space, etc)
	- added: -eS - audio stamper
	- added: -ksv - control source that analyzes audio stamp
  		 volume statistics and creates control data from 
		 the results
	- added: -z:nodb - disable double-buffering
	- removed: eiam-cmds; u, a, cstatus, l, fstatus, estatus
	- changed: -kf - 'mode' parameter added
	- changed: format of the file 'generic_oscillators'
	- changed: ECI - last_list_of_strings() to last_string_list()
	- changed: the way gate operators work; instead of muting 
		   the chain, they now truncate the passing buffers -
		   in future, amplify+controller (-ea + -k)
		   combinations can be used in the same manner as the
		   old gate operators
	- changed: 'ecasound-config --flags' now prints includedir
		   instead of includedir/ecasound
	- changed: updated ALSA 0.6.x support to match CVS-20010122
	- changed: a better implementation of MIDI i/o routines
	- fixed: "-x -i file.ext" style cmd-line arg sequences weren't
		parsed correctly [jhall]
	- fixed: ECI - command_float_arg() was broken (all languages)
	- fixed: when exiting console-mode ecasound with "quit", 
	         ecasound object weren't properly destructed causing
		 all kinds of weird behavious (especially with wav-
		 files) - [smassy]
	- fixed: more FreeBSD 4.x related fixes [beaupran]
	- fixed: ogg vorbis output fixes [nolan_d]
	- fixed: gcc 2.96 (RH7.0) related fixes [swharris]
	- fixed: ewf-file parsing not working [smorris]
07122000 (v1.8.5d15)
	- added: tremolo effect (-eemt) [rcs]
	- added: -z:db; i/o double buffering layer is back! - 
		 after complete rewrite, db-mode now supports all
		 non-realtime audio objects, and works both for 
		 input and output
	- added: default-double-buffer-size added to ~/.ecasoundrc
	- added: double buffer size can be given as the 2nd 
		 argument of -z:db,dbsize
	- added: optional argument for -r:sched_priority; specify 
		 the static rt-priority; see ecasound(1)
	- added: default-schedpriority added to ~/.ecasoundrc
	- added: 32bit support for OSS/Linux
	- added: comments lines (#-prefixed lines) allowed when
		 loading chainsetups from file
	- added: ecatools - ecasignalview added to the package; 
		 see ecatools(1) man page for details
	- added: new modules - libecasoundc and pyecasound
	- added: --disable-pyecasound configure switch
	- added: './contrib' and './examples' directories added
		 to the distribution package
	- added: ecasound control interface documentation added - 
		 see 'Documentation/programmers_guide/eci_doc.html'
	- added: eiam - new commands; c-selected
	- added: extended support for parameter descriptions; 
		 all LADSPA parameter hints now supported
	- added: support for result paramerers, ie. values resulted
		 from processing/analyzing
	- added: ECI - error() added
	- removed: the "LADSPA/" prefix removed from plugin labels
	- removed: support for underscores in EIAM-commands
	- changed: more intelligent handling of resource files
	           (for instance ~/.ecasoundrc and preset files)
	- changed: output produced by -ev
	- changed: updated ALSA 0.6.x support to match pcmfinal-state
	- changed: minor changes to multitrack sync code; should 
		   now be even more accurate
	- changed: triggering of realtime outputs; now all rt-outputs
		   are prefilled with two buffers before triggering
	- changed: Mandrake and PLD Linux RPM-spec files moved into
		   the new './contrib' directory
	- changed: -ev and -ezf now report their results as
		   output parameters (normal chainop params)
	- fixed: nasty bug in effect preset mapping
	- fixed: -ei:0 caused problems
	- fixed: cdr-file endianess (should be _always_ big endian)
	- fixed: yet more fixes to mono mp3 input handling
	- fixed: input problems (easily triggered by using -sr)
		 with .mp3, .mid and mikmod modules
	- fixed: c-setpos didn't work if chainsetup wasn't connected
	- fixed: commas in descriptions of LADSPA plugin parameters
		 confused ecasound, and usually ended up crashing
		 (triggered at least by the hermes filter)
07112000 (v1.8.4d15)
	- added: pulse gate (-eemp); can be used to generate a
	         metronome signal [rcs]
	- added: support for preset parameters - see file 
                 'effect_presets' for examples [artham]
	- added: support for MIDI files using Timidity++
	- added: input and output of Ogg Vorbis files (.ogg) using 
		 ogg123 and vorbize
	- added: version control to internal plugins; when compiling,
		 libecasound libtool interface number is stored to 
		 the plugin object files
	- added: updates and additions to ecasound programmer's guide
	- added: support for noninterleaved streams to ALSA 0.6.x plugin
	- added: 4th parameter to -f, 'i' (default) indicates interleaved 
		 stream format while 'n' refers to noninterleaved
	- added: -D option; prints debug messages to stderr
	- removed: -m:mthreaded and -z:db (obsolete)
	- changed: tries to load all internal plugins even if some 
		   plugins were disabled during compile-time; this 
		   makes it possible to have multiple versions of same
                   plugin tupe (for instance, plugins for different 
		   ALSA versions, etc)
	- changed: ecasoundrc - mikmod-path and -args combined into
		   more general mikmod-cmd
	- fixed: compile time problems under Solaris 2.6 and FreeBSD
	         4.1  [beaupran, rcampbel]
	- fixed: ncurses fixes (the ever-bold bug) [artham]
	- fixed: cs-loop seg.faulted
	- fixed: stripped libtool version info from plugins [wrobell]
	- fixed: configure-time relocations didn't affect the default
		 paths of effects presets and LADSPA plugins [juekawa]
	- fixed: invalid/non-existant files caused problems for all
		 utils in ecatools package
	- fixed: sync-related ALSA 0.6.x fixes
	- fixed: better handling of mp3, ogg, timidity and mikmod
		 related errors
	- fixed: -sr:srate didn't work (broken in 1.8.3d15)
	- fixed: problems with ALSA 0.6.x pcm plugins
26092000 (v1.8.3d15)
	- changed: code for parsing command-line arguments rewritten; 
		   now reports about invalid arguments
	- changed: default precision when printing time in seconds 
		   changed to 3 (msec precision)
	- fixed: ALSA 0.6.x updates
	- fixed: few bugs in aRts plugin
16092000 (v1.8.2r14)  -** public release **-
	- added: --enable-alsa-rawmidi configure option - this is a 
		 temporary solution for supporting ALSA rawmidi until
		 we have a proper plugin-based MIDI-subsystem
	- fixed: some broken mp3 headers caused ecasound to misinterpret
		 mp3 sampling rate
	- fixed: problems when handling mp3 files with white-space in 
		 the filename [rsassman]
	- fixed: incorrect riff-wave header bug fixed [artham]
	- fixed: in some cases, controllers weren't parsed correctly
	- fixed: annoying clicks with phaser, flanger and chorus
01092000 (v1.8.1d14)
	- notice: all qt-related stuff put to separate packages
	- added: support for internal plugins; modules using external 
		 libraries (ALSA, aRts, libaudiofile, etc) are now 
  	         dynamically loaded on runtime (no unnecessary 
                 dependencies); installed by default to 
  		 (prefixdir)/lib/ecasound-plugins; see also
	         ecasoundrc(5) man page for related entries
	- added: new ecasound-plugins rpm package
	- added: mp3 channel-count and sampling rate from mp3 header
	- added: notifies user if internal-plugin directory isn't found
	- removed: support for native ALSA rawmidi temporarily removed
	          (while waiting, use ALSA's OSS-emulation)
	- changed: aRts support enabled by default
	- changed: behaviour of -ete effect's wet-% parameter
	- fixed: system readline related fixes (wrobell)
	- fixed: ewf - crashed if looping was enabled and 
	         'start-position' > 'length'
	- fixed: few ewf output fixes
	- fixed: compile problems with ALSA 0.5.x
	- fixed: ecatools hang if interactive-mode enabled by default
	- fixed: ALSA 0.6.x support working again
25062000 (v1.8.0d14)
	- added: ecaconvert - a new ecatools app; converts a set of 
		 files to target file format
	- added: support for ALSA 0.6.x (plugin and direct) [jhall]
	- added: ia-mode - 'cs-list', 'c-list', 'aio-list',
		 'cop-list'; nothing new, but some might find these 
		 a bit more intuitive to use than various status cmds
	- added: more info about audio object status
	- added: --enable-sys-readline (compile against already 
		 installed libreadline) [wrobell]
	- added: rpm-spec file for PLD-Linux - ecasound.pld.spec [wrobell]
	- added: support for destdir env.variable [wrobell]
	- added: support for float samples (-f:f32_le and -f:f32_be)
	- added: support for IEEE754 wav files (float)
	- added: --enable-arts - use aRts daemon for audio input and
	  	 output, see ecasound(1) man page for more info
	- added: limiter effect (-eal:limit-%)
	- changed: major changes in source tree organization
	- changed: mp3 input and output now possible with all decoders
		   and encoders which support standards i/o streams;
		   still defaults to mpg123 and lame - see 
  	    	   ecasoundrc(5) for details
	- changed: qtecasound - all shortcut keys are now ctrl-some_key
23062000 (v1.7.9r13)  -** public release **-
	- fixed: stdin, stdout and '-' were all more or less broken
	- fixed: loop devices weren't saved correctly
05062000 (v1.7.8r12)  -** public release **-
	- added: files 'TODO' and 'ecasound.mdk.spec'
	- added: support for LADSPA_PATH env.variable
	- added: support for multichannel LADSPA plugins
	- added: -eli options, select a LADSPA plugin using its 
		 unique id-number
	- added: -ete - a new, more advanced reverb (thanks to
		 Stefan M. Fendt for the algorithm!)
	- changed: qtecasound - major layout changes
	- changed: ecatools renamed to ecaplay, ecanormalize and
	- changed: updated the 'INSTALL' file
	- fixed: qtecasound - bugs in debug output
	- fixed: some minor bugs in LADSPA support
	- fixed: compile problems with 2.95.x
	- fixed: errors loading some LADSPA plugins
	- fixed: the ".mp3.wav" bug
	- fixed: config.h fixes
03052000 (v1.7.7r11)  -** public release **-
	- added: --version and --help command-line options (for GNU 
	- changed: documentation updates
	- fixed: some compile-time problems
	- fixed: chain-muting wasn't working properly
26042000 (v1.7.6d11)
	- added: new input/output device 'alsaplugin' - similar to 
		 normal ALSA pcm-devices, but uses the pcm-plugin 
		 layer (automatic sample rate and format conversions)
	- added: safety-checks against invalid command-line parameters
                 and ia-mode commands (adding inputs, outputs,
                 parameter control)
	- changed: much faster communication between engine and ui
	- changed: qtecasound - replaced some old widgets with 
		   new libqtecasound widgets
	- changed: ia-mode - c-clear now works on-the-fly
	- fixed: qtecasound - core dumps when removing audio objects
	- fixed: qtecasound - many minor bugs
	- fixed: core dumps when adding parameter controllers for 
		 non-existent chainops
	- fixed: include-file problems when compiling in a separate dir
	- fixed: problems in mixing multiple mono-inputs
12042000 (v1.7.5d11)
	- added: ALSA support for s32_le and s32_be sample formats
	- added: numerous fixes and small improvements to ALSA 0.5.x 
	- removed: dynamic loading of ALSA support - as ALSA is
		   getting bigger and bigger, maintaining dynamic 
		   support has become more and more difficult - 
		   this means that ALSA support isn't anymore included 
		   in binary distribution packages - to get native 
		   ALSA support, you have to compile ecasound from 
		   sources - of course you can always use ALSA's 
		   OSS-emulation layer 
	- changed: pitch-shifter (-ei) improvements [artham]
	- changed: above improvements also affect normal resampling
	- changed: ia-mode commands cop-add, cop-remove and ctrl-add
		   can now be used with connected chainsetups (add 
		   effects on-the-fly, etc)
	- changed: updated LADSPA support to v1
24032000 (v1.7.4d11)
	- added: summary info to configure-script 
	- changed: upgraded LADSPA support to API v1-rel1
	- changed: default directory for LADSPA plugins is now
		   /usr/local/lib/ladspa (see ecasoundrc(5))
	- fixed: latency-problems with ALSA pcm-loopback
	- fixed: thread scheduling problems with '-r'
	- fixed: compile problems under Solaris
	- fixed: many .ewf bugs
	- fixed: compile problems with ALSA 0.4.x
	- fixed: few minor bugs in -ev and -ezf
21032000 (v1.7.3d11)
	- added: initial LADSPA support (-el), see ecasound(1) man page
	- added: 'ladspa-plugin-directory' entry to ~/.ecasoundrc
	- added: ia-mode commands 'aio-register', 'cop-register',
	         'ctrl-register', 'preset-register', 'ladspa-register'-
		 these commands list all registered object types
	- changed: a more compact command-line help
	- fixed: nasty bug when adding effects on-the-fly (caused
	         infinite recursion inside the object maps)
19032000 (v1.7.2d11)
	- added: support for ALSA 0.5.x pcm-loopback
	- added: more effect presets
	- added: ia-mode - 'aio-select-input' and 'aio-select-output'
	- added: ia-mode - dump-* commands, see ecasound-iam(5) for
	         the details
	- removed: /dev/snd/pcmCxDy notation for specifying ALSA 
	- changed: ia-mode - if aio-add-output is executed without 
		   arguments, the default output is used
	- fixed: libqtecasound was compiled even if --disable-qt
	         was specified
	- fixed: qtecasound - libqtecasound header include path 
		 was wrong
	- fixed: ia-mode - problems with '_' -> '-' conversions
	- fixed: -erc, -erm and -epp didn't work as expected if 
		 both mono and stereo files were present in the
		 active setup
	- fixed: minor bugs in ALSA pcm2 support
	- fixed: bugs in OSS capability checking (triggering and
	         realtime caps), thanks to Rui Sousa for the fix
	- fixed: bugs in internal looping
26022000 (v1.7.1d11)
	- added: a new effect preset system, see user's guide and 
		 ecasound man page for more info
	- added: lots of default presets, see file 'effect_presets'
	- added: an allpass filter (-efa)
	- added: a comb filter (-efc)
	- added: a simple pitch shifter (-ei)
	- added: flanger (-etl), chorus (-etc) and phaser (-etp)
	- added: a new, faster multi-tap delay (-etm)
	- removed: old effect preset files and command line options
	- changed: rewrote the normal compressor (-ec), now takes 
		   the threshold argument as percents
	- changed: updated Stefan Fendt's rc-lowpass, now a 3rd
		   stage, 36dB lowpass filter
	- changed: parsing of command line parameters - most changes
		   don't affect the user-interface side
	- fixed: ecatools crashed with multiple inputs
17022000 (v1.7.0d11)
	- added: qtecasound - chainsetup status
	- added: automatic grouping of realtime and non-realtime
		 audio objects for better performance
	- added: two-stage linear envelope (-kl2)
	- added: 'run' command to ia-mode - like 'start' but blocks
		 until processing is finished
	- added: '-kx' option - this can be used for controlling 
		 controller parameters with other controllers
	- added: ia-mode command "ctrl-status" (controller status)
	- added: qtecasound - controller status pushbutton
	- added: qtecasound - a nicer looking debug-window
	- added: libqtecasound - a new subpackage containing 
		 generic GUI objects
	- added: support for chain-to-chain looping, see ecasound(1)
		 manual page for more info
	- removed: qtecasound - waveform view
	- changed: ecawave is now the default ext. wave-editor
	- changed: all shortcuts are now alt+key combinations
	- changed: renamed ia-mode commands "cop-add-controller" 
		   to "ctrl-add" and "cop-remove-controller" to
	- changed: qtecasound - some renamed pushbuttons and 
		   reassigned shortcut keys
	- changed: changes in debugging subsystem, affects '-d'
	           behaviour, see ecasound man page
	- changed: rewritten .ewf support with lots of new 
		   features - see ecasound user's guide for more
	           detailed info
	- fixed: qtecasound - position slider wasn't working
	- fixed: instead of just outputting raw ANSI-codes, 
		 standard ncurses routines are now used
	- fixed: recording from realtime inputs didn't work 
		 when processing length was not set
	- fixed: setting processing length didn't work in normal 
		 passive mixing mode (multiple chains)
	- fixed: overrun/underrun problems with ALSA 0.5.x
30012000 (v1.6.13d11)
	- changed: rtnull reports about over/underruns now
		   level-4 debug messages
	- fixed: some problems in mixmode selection
29012000 (v1.6.12r10)  -** public release **-
	- added: support for s24_le, s24_be, s32_le and s32_be 
		 sample formats
	- added: support for ALSA-subdevices (-o:alsa,card,dev,subdev)
	- added: to ia-mode - 'c-deselect', 'c-select-add'
	- added: improved multitrack-sync
        - added: 'default-double-buffer-size' added to .ecasoundrc
	- changed: ALSA pcm2-devices now opened in nonblock-mode
	- changed: ecasound can now be compiled in a separate obj dir
	- fixed: bugs in channel routing and output mixing
	- fixed: delay effects dumped core with mono inputs
14012000 (v1.6.11d10)
	- added: -ef4 - 2th-order, 24dB filter which simulates
	         an analog active RC-lowpass filter - submitted by 
		 Stefan Fendt
	- added: support for ALSA 0.5.x (pcm2, no loopback)
	- removed: support for ALSA 0.3.1 and older
	- changed: 'cs-edit' now possible while processing
	- changed: raised-priority mode moved from chainsetups 
		   to session-level (isn't saved to ecs-files, etc)
	- fixed: removed the huge delay in (dis)connecting chainsetups
	- fixed: 'fw', 'rw', 'setpos' crashed if executed without
	- fixed: under/overrun problems with ALSA drivers
	- fixed: stdin/stdout not working
	- fixed: c-add and c-select didn't accept multiple parameters
	- fixed: problems with -etf memory handling
03012000 (v1.6.10d10)
	- added: a realtime null audio device 'rtnull' - simulates
		 soundcard behaviour (warns about over/underruns)
	- changed: 'make install' isn't forced anymore
	- changed: mono noisegate (-enm) replaced with a new
	           multichannel noisegate
	- changed: behaviour of -r; now changes scheduling policy 
		   to SCHED_FIFO (realtime) - beware! this gives 
                   better performance, but might cause total 
		   lock-ups if something goes wrong
	- fixed: improvements to autoconf scripts; --enable-qt and 
		 --disable-qt now work as expected - thanks to 
		 Vadim Tkachenko for the patch
	- fixed: seg.faults with some files when using -z:db
	- fixed: many bug fixes to delay effects (-etf, -etr and -etd)
	- fixed: nasty bug in ewf-routines
	- fixed: double-buffered mode (-z:db) sometimes discarded the
		 last few bytes before end-of-file
151299 (v1.6.9r9)  -** public release **-
	- notice: changes in version numbering
	- added: linear envelope (-kl), useful for fade-ins/outs
	- changed: signal limiting code moved from chains to output 
		   mixing stage - when processing multichain setups, 
		   this is faster and gives more dynamic headroom
       	- changed: mikmod default args now "-p 0 --noloops"
	- changed: many improvements to input double-buffering (-z:db)
		   and multithreaded mixmode (-m:mthreaded)
	- fixed: bug in testing chainsetup validity
	- fixed: piping bugs that caused mpg123, lame and mikmod
		 to hang in some situations
	- fixed: mono noise-gate (-enm) wasn't working
	- fixed: changes to -s broke -sr in 1.6.8r8
041299 (v1.6.8r8)  -** public release **-
	- added: cs-index-select (see ecasound-iam(1))
	- added: more info fiels to cs-status
	- added: configure check for Qt version (must be >= 2.x)
	- fixed: cs-status didn't show all chainsetups
	- fixed: problems with cs-load
	- fixed: processing ended prematurely when mixing 
	         multiple chains to one output
	- fixed: some uses of C++ namespaces caused compile errors 
		 with older gcc versions
	- fixed: in addition to '-s:cs_file.ecs', '-s cs_file.ecs'
		 is now also accepted
251199 (v1.6.7r7)  -** public release **-
	- changed: some not-so-important runtime info (opening and 
		   closing devices, etc) is now considered to be 
		   debug info and is not printed by default
	- changed: position is printed as a floating-point value
	- fixed: qtecasound - lots of bugs
221199 (v1.6.6d6)
	- fixed: cs-save and cs-save-as didn't work as expected
	- fixed: cs-load didn't work properly
221199 (v1.6.5d6)
	- added: safety-checks to prevent users from connecting
	         invalid chainsetups
	- added: underlines are accepted in ia-mode commands
	- fixed: problems with -ev
	- fixed: minor bugs in audvvio object positioning
191199 (v1.6.4d6)
	- added: -erc - channel copy (one-to-one) and
		 -erm - mix all channels (all-to-one) ; these are 
		 meant for handling multichannel files
	- added: -y option - set starting position for last specified
	- added: -t option - set processing time in seconds (makes 
		 multitrack cut&paste possible when used with -y)
	- added: -tl option - enable looping (see -y and -t)
	- added: ia-mode: cs-length (like -t), cs-loop (like -tl)
	- added: you can now pass additional options to external 
	         programs (mpg123, lame, mikmod), specified 
	 	 in ~/.ecasoundrc 
	- changed: mute + unmute -> mute (on/off toggle)
	- changed: bypass-enable + bypass-disable -> bypass
	- changed: minor changes in ~/.ecasoundrc format (see 
	- fixed: tried to reconnect invalid chainsetups
	- fixed: global forward and rewind weren't working
	- fixed: dumped core if number of delays (-etd) was changed
		 during processing
	- fixed: gates are working once again
	- fixed: minor bugs in output mixing
	- fixed: -s option wasn't working properly
	- fixed: 8<->16bit conversion
  	- fixed: bugs in AIFF output
161199 (v1.6.3d6)
	- added: new ia-mode commands: aio-forward, aio-rewind, 
		 aio-setpos, aio-index-select and aio-wave-edit 
		 (load currently selected audio object into an
		 external wave editor)
	- added: support for using tracker modules as input 
	         sources - uses mikmod (mikmod 3.1.6 + libmikmod 
		 3.1.7 or newer required)
	- changed: cleaned up the audio object interface
	- changed: -f parameter format has changed - instead of 
		   bits, sample type is now specified as a formatted
		   string ("u8", "s16_le", "s24_le" and so on)
	- changed: in precise-sample-rate mode, removed all implicit 
		   sample rate conversions - instead a warning is issued
121199 (v1.6.2d6)
	- added: all ia-mode commands now implemented&documented
	- added: a little bit of artificial intelligence to command
                 interpreting :) - as an example, if you want to start
		 processing but no chainsetup is connected, ecasound 
		 tries to connect the currently selected setup, etc
	- fixed: given a certain combination of forward and rewind 
	         commands, processing wouldn't start anymore
 	- fixed: delay surround mode now works normally
	- fixed: ecatools - files not in the default sample format
	         were not handled properly
	- fixed: some bugs in double-buffering
	- removed: adding chain operators to multiple chains is no
	           longer possile - this makes the library interface
		   more powerful as client programs can have direct
	           access to chainops they've added (see 
		   eca-controller.h for details)
101199 (v1.6.1d6) 
	- added: most interactive-mode commands are now implemented
	- added: new ia-mode commands: c-mute, c-unmute, c-process,
		 c-select-all, cs-save-as, 
	- added: documentation for nearly all implemented ia-mode
		 commands, see ecasound-aim(1)
	- changes: major changes in RPM-packaging
	- fixed: a very nasty bug in dynamic ALSA-support
	- fixed: some effects caused core dumps (bug in the sbuf
		 iterator routines)
	- fixed: many minor bug fixes
	- removed: ia-mode commands: exec, end
081199 (v1.6.0d6) 
	- added: iactive mode now uses GNU readline for user input 
		 - command-line editing, command history and command 
		 completion (use .inputrc for configuring)
	- added: 30-40 new interactive-mode commands
	- added: ecasound-iam(1) manual page - interactive mode 
	- added: ecasound user's guide and programmer's guide
	- added: 'default-to-precise-sample-rates' to ecasoundrc -
		 whether to ignore sample rate differences (and 
	         possibly avoid resampling), affects OSS-devices,
	         defaults to 'false'
	- added: -z:psr option (see above)
	- changed: reimplemented signal handling using POSIX 
	           signal handlers (ANSI interface was used before)
	- changed: divided all the bigger modules into smaller 
		   classes and files (these big modules were
		   causing lots of compiler and resource problems)
	- changed: major internal changes (multichannel chain operators,
		   improved mixing algorithms, etc)
	- changed: rewritten mp3-support (still using mpg123 and lame)
	- changed: lots of changes in handling external resources
	           (wave and text editors, mpg123 and lame parameters,
 		   etc.) - see 'man ecasoundrc'
	- removed: looping (interactive-mode loop commands)
	- removed: 'sfx' command (iactive-mode)
011099 (v1.5.16d6)
	- added: changes and additions to libecasound interface are 
		 from now on logged to libecasound/ChangeLog
	- fixed: errors in -kf documentation
270999 (v1.5.15d6)
	- changed: optimized various engine and effect routines
		   to improve ecasound's performance with
		   complex setups
	- fixed: "-ev" max-amplitude wasn't reseted
	- fixed: some finetuning of ALSA buffer handling
210999 (v1.5.14d6)
	- notice: from now on development versions will be marked 
		  with a 'd' in the version number
	- added: configure check for libdl library
	- added: "-eac:amp-%,channel" channel amplify
	- changed: "-ea" to "-eaw", amplify with clipping control
	- changed: "-eas" to "-ea", normal amplify
180999 (v1.5.13r6)
	- added: -sr:srate option - set chainsetup sample rate
	- added: 'default-samplerate' to ~/.ecasoundrc
	- fixed: problems with OSS es1370 drivers (thanks to Billy
	         Biggs for the patch)
	- fixed: resonant bandpass wasn't working (-ef1)
140999 (v1.5.12r6)  -** public release **-
	- fixed: problems with libaudiofile (.aiff and .au/.snd
	- fixed: extra noise when upsampling
	- fixed: qtecasound - chainsetup's name was changed to
		 tempfile name if edited with an external editor
	- fixed: qtecasound - conflict with Qt-libs when 
		 stopping processing (resulted in abort) 
120999 (v1.5.11r5)
	- added: ldconfig is now always run after (un)install of 
	         binary RPM packages
	- added: if underruns/overruns occur when using ALSA devices,
	         a warning message is given on exit (stderr)
	- changed: gcc's -fomit-frame-pointer isn't used anymore
	           (caused lots of problems with exceptions)
	- fixed: ecasound tried to use ALSA headers even though 
	         --disable-alsa was given (eca-alsa-dyn.h and
	- fixed: audiofx_compressor.h tried to include obsolete
	         error.h header file
	- fixed: pan effect (-epp) decreased overall volume level
	- fixed: fake-stereo effect (-etf) wasn't working properly
	- fixed: "make install" created (prefix)/share/ecasound
		 with permission mode 644 (only root could access
		 the directory)
	- fixed: some problems with effect option parsing
	- removed: simple lowpass filter (-ef2)
070999 (v1.5.10r5)
	- added: qtecasound - file dialogs now remember the current
	- added: a much more elegant system for dynamically loading 
		 ALSA support
	- added: support for ALSA MIDI devices (/dev/snd/midiCxDy)
	- changed: rewrote the MIDI-input sybsystem (works better
		   with multiple controllers)
	- fixed: kvutils -package also needed configure script fixes 
		 to recognise FreeBSD's pthread implementation
	- fixed: although "make install" worked in all cases,
		 plain "make" didn't work if installing ecasound 
		 1.5.x for the first time
	- fixed: crashed if you had two chainsetups with ALSA devices
	         and you tried to delete the other one
	- fixed: crashed in some conditions when closing .wav and 
		 .raw files
040999 (v1.5.9r5)
	- changed: qtecasound - in all windows with list widgets,
	           if no item is selected, current item (if any) 
		   is used for all operations
	- changed: in most cases, '-r' option (raise priority) isn't 
		   needed anymore (see ecasound and ecasoundrc man
		   pages for more info)
	- changed ecasoundrc - 'x-text-editor-use-getenv' is now
		  'true' by default
	- fixed: resonant lowpass filter was once again broken
	- fixed: configure should now recognise FreeBSD's pthread
		 implementation (not tested yet)
	- fixed: in some rare cases, engine was started in interactive 
		 mixmode while the interface was in passive mode 
	         (-> program started but didn't do anything)
030999 (v1.5.8r5)
	- added: '!' shortcut to all windows (keyboard focus to 
		 control panel)
	- changed: some Makefile changes for excluding static
		   ecasound libraries from the binary dist packages
		   (managed to shrink binary-rpms by nearly a 1MB!)
	- fixed: qtecasound - shortcut-key fixes in chainsetup window
	- fixed: qtecasound - waveform view positioning is now much 
		 more precise than before
	- fixed: qtecasound - core dumps when exiting
020999 (v1.5.7r5)
	- added: qtecasound - chainsetup window now has a wave-edit
		 button which loads the active file into a external
		 wave editor; defaults to "snd", can be changed by 
		 changing the value of "x-wave-editor" in 
	- added: qtecasound - support for external text editors 
	         (can be launched from session window) - saves the 
	         active chainsetup to a text file, loads it to an 
                 editor and afterwards updates file's content back 
		 to ecasound - if "x-text-editor-use-getenv true"
	         is specified in ~/.ecasoundrc, ecasound uses 
		 EDITOR environment variable if it's available, 
	         otherwise value of "x-default-text-editor" is 
	         used ... an of course, default value for this is
		 the ultimate musicians tool: emacs! ;) 
	- changed: qtecasound - some minor changes to session and 
	 	   chainsetup widgets
	- changed: .ews format (wave view cache files) has changed,
		   ecasound can still read the old format
	- changed: qtecasound - "activate" button changed to a
		   "change status" button which rotates through 
 		   inactive->active->connected->inactive ...
	- fixed: qtecasound - enabling/disabling chains sometimes
                 resulted in program crashes
	- fixed: all structs found in ecasound source code now 
		 use the standard type definations from sys/type.h 
		 (format "[u_]int'bits'_t") - this should solve some 
		 compatibility problems with non-x86 platforms - 
		 thanks for Guenter Geiger for notifying about these
	- fixed: a few fixes to the new double-buffering system -
		 lots of buffer parameter fine-tuning 
290899 (v1.5.6r5) 
	- added: "-z:feature" command line option for enabling 
		 misc features
	- added: mmap-based double-buffering now disabled by 
		 default, enable it with "-z:db" or by putting 
		 "default-to-double-buffering true" to your 
	- added: when upgrading ecasound, new resource values 
		 will be automatically added to your ~/.ecasoundrc
        - fixed: crashes when getting error messages from alsa-lib
		 (for instance when using invalid card and device
	- fixed: a few Makefile problems in 1.5.x versions 
	     	 (thanks for Vadim Tkachenko for reporting these)
280899 (v1.5.5r5) 
	- added: improvements to resource file (~/.ecasoundrc) 
	         handling - resource files can now have comment
	         lines (lines beginning with a '#'); resource
                 files are rewritten only if resource values are 
		 changed directly from ecasound; '=' sign can be 
		 used as a name-value separator
	- fixed: since version 1.5.2r5, .cdr input/output hasn't
		 worked (reversed byteorder when reading .crd 
	         files, .cdr output files weren't padded correctly)
270899 (v1.5.4r5) 
	- added: experimental support for double-buffered 
		 mmap() file i/o (currently implemented 
		 for .wav/.raw input only)
	- fixed: thread-priority was always risen (once again) 
210899 (v1.5.3r5) 
	- added: a lowpass filter effect (-ef2); not as good 
	  	 as the other lowpass filters (-efl and -ef3), but
		 should be a bit faster
	- fixed: 1.5.2r5 was really _slow_ (a file seek bug)
200899 (v1.5.2r5) 
	- added: "-x" command line option - truncate outputs
	- added: sample rate conversion (resampling) - if audio 
		 object's sample rate differs from ecasound's
		 internal rate the signal gets resampled 
		 (internal rate is currently 44100; can be 
		 changed from samplebuffer.h)
	- changed: gcc 2.95.1 is now used when developing 
		   ecasound; precompiled packages require libstdc++ 
		   2.10.0 (comes with gcc 2.95.1) or newer
	- fixed: few minor fixes to the noisegate effect
	- fixed: upon creation, more precision is used to print
		 effect parameters
190899 (v1.5.1r5) 
	- fixed: problems with filters
180899 (v1.5.0r5) 
	- added: ecatools package which now consists of programs
		 ecatools_normalize, ecatools_fixdc and 
		 ecatools_play - see ecatools(1) man page
 	- changed: ecasound and qtecasound now have their own 
	           source trees; rest of ecasound is compiled
	    	   into the libecasound.so shared library
	- changed: to make ecasound relocatable, preset files are now
		   installed to standard data dir (defaults to 
	- changed: lot of source file name changes
	- changed: ALSA support (libasound.so library) is now loaded
	 	   dynamically at runtime
	- fixed: you had to have yodl installed to to install ecasound 
		 man pages
150899 (v1.4.6r5)  -** public release **-
	- added: qtecasound - along with some other improvements, 
	         waveform widget now uses cache files to store 
	         wave statistics; for file "somefile.wav", cache
	         file "somefile.wav.ews" is used
	- fixed: reading and writing aiff files works again;
		 some aiff files created with sox still seem to 
		 cause trouble (might be a problem with 
	- fixed: qtecasound - a nasty mutex bug which caused ecasound
		 to crash if you tried to use a chainsetup which has
	         more inputs than chains
120899 (v1.4.5r4):
	- added: qtecasound - dialogs for adding, removing and 
		 attaching inputs and outputs 
	- added: support for null inputs/outputs
	- added: effect status is now printed when exiting ecasound
	         (doesn't affect interactive mode)
	- added: if OSS drivers for your soundcard don't support 
		 trigger functions, you can disable these with 
		 configure option "--disable-osstrigger"
	- added: -ev effect (analyze sample data) now also tells
		 how much the analyzed signal can be amplified 
	         without clipping
	- added: debug level can now be set in iactive mode with 
		 "debug level" command
	- changed: qtecasound - shortcuts a, A and ctrl-a now do 
		   the same thing; applies to all shortcuts
	- fixed: adding a chain without a valid output resulted in 
		 hangs when using multithreaded mixmode
	- fixed: didn't compile with alsa-lib versions older than 0.3.1
	- fixed: "ecasound -h" dumped core
010899 (v1.4.4r4)
	- added: qtecasound - now asks for a name when adding chainsetups
	- added: qtecasound - adding and deleting chains
	- changed: some layout changes
290799 (v1.4.3r4)
	- changed: if format supports it, outputs are now opened in 
		   read-write mode; currently supported by .wav, 
		   .cdr and .raw; when you use these as outputs, files 
		   aren't truncated if they exist
	- fixed: qtecasound - active chainsetup was always saved even 
		 if some other chainsetup was selected
	- fixed: qtecasound - crashed if you changed the active 
		 chainsetup and you had a waveform window open
	- fixed: qtecasound - crashed if tried to activate 
	         a invalid chainsetup
	- fixed: if you wrote to a output file, its length was 
		 not changed (from ecasound's viewpoint)
270799 (v1.4.2r4)
	- fixed: samplebuffer.h still tried to include ,
		 which is both not necessary and a wrong place to 
  	 	 look for it; thanks to Torbjorn Tornkvist and 
		 Xavier Hosxe for notifying me
	- fixed: qtecasound - using multithreaded mixmode, changing 
		 chainsetups on the fly caused a lot of problems
	- fixed: qtecasound - shortcut keys didn't work with CLI
270799 (v1.4.1r4)
	- added: qtecasound - chain widget now monitors effect
	- added: qtecasound - support for double clicks and return
		 presses for various widgets
	- added: qtecasound - some new features to the waveform widget
	- changed: from now on, interactive mode isn't automatically 
		   enabled, if a realtime input is specified
	- changed: names of some functions (I'm trying to be careful
	           how I use 'new' and 'add', 'load' and 'open', etc
	- fixed: qtecasound - waveform widget crashed qtecasound if
		 the analyzed file had less than 76800 samples 
	- fixed: if processing was completed and was restarted without 
	         a rewind/setpos, ecasound crashed/hang
	- fixed: raised-priority mode was sometimes enabled even
		 without the -r option 
	- fixed: qtecasound - when using multithreaded mixmode, 
		 exiting sometimes resulted in core dump or segfault
250799 (v1.4.0r4)
	- added: qtecasound - waveform widget; graphical representation
	         for input/output objects
	- added: qtecasound - chain widget; view chain status 
	- added: qtecasound - chainsetup widget; status of input,
		 output and chain objects, enable/disable chains
	- added: qtecasound - session-setup widget; load and save
	         chainsetups, create new ones, etc
	- changed: can now be started without a valid chainsetup if 
		   interactive mode is enabled
	- fixed: *serious bug* if end of input was reached,
		 that input remained silent until ecasound was 
		 restarted (has been broken since 1.3.0r3)
240799 (v1.3.3r4)
	- added: -n option, sets chainsetup's name
230799 (v1.3.2r4)
	- added: a new compressor - thanks for Viktor Endersz for
		 sending it to me and John S. Dyson for coding it; 
	         it really works like a dream! (option -eca) 
	- fixed: some fixes to my old compressor (now that we 
		 have a better one, this should be used only if 
		 you really want brutal results :))
	- fixed: due to some changes in ALSA libs, ecasound 
		 wouldn't compile with ALSA versions >0.3.2;
		 haven't tested it, but should now work with both 
		 new and old ALSA libs
200799 (v1.3.1r4)  -** public release **-
	- fixed: delay effect was broken; while fixing this I also 
		 added a new surround mode, 2 = stereo-spread
	- fixed: more bugs with ALSA and OSS input routines; 
	         did some multitrack recording with both of them 
		 and got suprisingly good results (it seems that
	         finding the optimal buffer size is the key to success)
190799 (v1.3.0r3)
	- added: support for sessions and chainsetups; now you can 
	         store the whole runtime setup to an ascii file and
	         load it back; the syntax used is exactly the 
		 same as the command line syntax so editing these 
		 saved chainsetup files is easy
	- added: "-s[:]filename" command line option for loading 
	         chainsetup files 
	- added: "load filename" and "save filename" commands to 
	         the interactive-mode (for chainsetups)
	- added: support for libaudiofile (SGI audiofile) library;
		 new file formats: .aiff, .au and .snd; (linking to 
  		 audiofile can be prevented with --disable-audiofile
	         option to the configure script)
	- added: -q option (quiet mode), disables all output
	- added: support for raw/headerless (.raw) input/output files
	- added: support for using standard system input and output
		 streams (-i:stdin, -o:stdout)
	- added: finished the man pages, all important options and
		 features should now be covered
	- fixed: file name ending with a upper-case extension 
		 wasn't recognised
	- fixed: when using multithreaded mixmode with complex setups,
		 threads sometimes went out of sync causing strange
	- changed: size of sample buffer objects can now be changed
	           on-the-fly (output files are not aligned to 
 		   buffersize anymore) -> this makes ecasound more 
		   usable as a format conversion tool
	- changed: compressor wasn't working, decided to code
	           a new one (still experimental but works better
		   than the last one)
140799 (v1.2.3r3)
	- added: support for .mp2 files
	- fixed: still some bugs in selecting mixmode
	- fixed: automatic stereo-mono conversion wasn't working 
		 at all (as all chains are internally stereo, this 
		 occured everytime you specified a mono output, even
		 if the input was mono, too)
130799 (v1.2.2r3)
	- added: ALSA devices can now also be opened by specifying 
		 the actual device name (/dev/snd/pcm...)
	- changed: default output is now always attached to chain 'all'
	- fixed: start/stop/forward/rewind with ALSA-output sometimes 
		 resulted in loud crackle
	- fixed: some bugs in the position slider of qtecasound
	- fixed: 'noise-gate-mono' effect was rewritten as it didn't 
		 seem to work very well
120799 (v1.2.1r3)  -** public release **-
	- added: 'make install' now creates /etc/ecasound directory 
		 and copies all the configuration/preset files 
		 to this directory (existing files/dirs are skipped)
	- added: lots of crash-guards to command line parsing 
	- added: frequently-asked-questions file (both txt and html)
	- added: new options to the configure script: --disable-alsa,
		 --disable-oss and --disable-qt
	- fixed: bugs in mixmode multithreaded-iactive (crashed
		 pretty much everytime)
	- fixed: estatus output was sometimes pretty messy
110799 (v1.2.0r2)
	- added: support for ALSA input/output 
	- added: a lot of new documentation to the man pages
	- added: new configurable options to ~/.ecasoundrc 
		 (default-buffersize, default-to-interactive-mode,
	- added: finally implemented the 'help' command in
  	         the interactive-mode; also added a prompt, which 
                 should help a bit :)
	- added: autoconf and automake additions; now qtecasound is 
		 compiled only if qt library is found, OSS and 
                 ALSA modules are compiled if the necessary 
                 headers and libraries are available
	- added: support for single-chain effect presets (-ps command 
		 line option)
	- fixed: bugs with OSS-input (device was sometimes closed 
                 multiple times resulting in core dumps)
	- fixed: auto-runmode used 'simple-iactive' mixmode
                 although iactive-mode wasn't set
	- fixed: looping wasn't working properly
	- fixed: -m option wasn't working
	- removed: simple filter effect (not really useful)
	- removed: 'Waiting for the processing thread'
		   messagebox (qtecasound)
100799 (v1.1.8r2)
	- fixed: more synchronisation bugs
050799 (v1.1.6r2)
	- added: rewrote the man-pages using Yodl; now they're 
 		 also available in HTML-format 
	- fixed: OSS-output module used a non-standard location
		 for soundcard.h (noticed by D.Phillips)
010799 (v1.1.5r2)  -** public release **-
	- tested: did some real recording and mixing work with this 
	          version and after a few fixes, everything seems
	          to work ok
	- added: now checks whether a chainop supports parameter
		 controlling or not 
	- added: a lot of new documentation (especially to 
	- fixed: chain 'all' wasn't working properly
	- fixed: multitrack chain synchronization was broken; should 
		 now work even with complex setups
	- fixed: a serious bug in OSS-input: ecasound always threw 
 		 an "read-error" exception when trying to read from
		 OSS input
	- fixed: analyze effect (-ev) output didn't work
300699 (v1.1.4r1)  -** public release **-
	- notice! first release; should be considered beta
	- fixed: if mp3 files had white-spaces in their filenames, 
	         filenames weren't interpreted correctly
250699 (v1.1.3r0)
	- more bug fixes
	- tested rpm-packaging and seemed to work ok
230699 (v1.1.2r0)
	- bug fixes 
190699 (v1.1.1r0)
       	- fixed: some bugs in exception handling 
       	- qtecasound: added a not-implemented message screen! ;)
180699 (v1.1.0r0)
       	- all major features of ecasound v0.9.x and earlier are 
          now implemented to the new program design 
       	- support for gates (time crop gate and threshold gate
       	- support for ~/.ecasoundrc configuration file
       	- support for GNU autoconf and automake
       	- added some new command line shortcuts
       	- qtecasound: added a position slider widget (displays and
		      enables to change current position)
       	- qtecasound: removed waveform and volume meter widgets;
		      they will reappear in the "Chain Setup" 
		      window (still under work)
160699 (v1.0.8r0)
       	- mp3 output support (using lame) 
150699 (v1.0.7r0)
       	- fixed: waveform -output now works with all inputs 
                (for instance showing mp3 waveforms is now possible)
       	- routines for interfacing with mpg123 recoded; 
          a lot more stable than before
       	- qtecasound now uses the new qt library (v2.0beta2)
       	- support for various controllers (sine oscillator, MIDI 
          cc-controllers, generic oscillator etc)
       	- fixed: when ecasound was stopped with ctrl-c or kill, 
                 proper cleanup wasn't done
100699 (v1.0.6r0)
       	- a new wave-form view 
080699 (v1.0.5r0)
       	- multitrack-mode sync-routines rewritten and tested
       	- various mixmode bugs fixed
040699 (v1.0.4r0)
       	- simple graphical vu-meters added to test the new io-system
030699 (v1.0.3r0):
       	- multithread-io mode: one chain can be processed and mixed 
         while waiting for getting data from other chains	
020699 (v1.0.2r0):
       	- a better way to deal with system endianess
       	- new chain-operator routines; unless there are no no chainops, 
          signal is always put through a clip control routine which 
          ensures that all sample values fit the value range
010699 (v1.0.1r0)
        - fixed a _lot_ of bugs
310599 (v1.0.0r0)
        - changed version numbering
        - major changes in nearly all program modules aiming at 
          a more modular and abstract design
       - fix: resonant_bandpass_filter wasn't working anymore
190599 (v0.9.10)
        - mp3 support using mpg123 (readonly)
        - X-Window GUI added (using Qt-libraries)
260499 (v0.9.x)
        - support for multitrack recording
        - independent effect chains
        - interactive command-line-interface (CLI)
        - looping (loop, loop_start, loop_end)
        - new debug -system
        - man -pages
311098 (v0.80)
        - support for MIDI-controllers
        - now uses glibc v2.0 and linuxthread libraries
041098 (v0.70)
        - began to upkeep this history file
        - fixing the gate-functions
1998:    - changed development platform from Os/2 to Linux
1997-98: - complete rewrite in C++; name changed from "wavstat" to "ecasound"
1995-97: - started working with this project; original program
           was called "wavstat" and it basicly was just
           a very simple command line DSP util (running under Os/2)

Copyright © 2000-2014 Kai Vehmanen Creative Commons License
This page is licensed under a Creative Commons Attribution 3.0 Unported License.