----------------------------------------------------------------------- ** 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 use-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. - https://sourceforge.net/p/ecasound/code/ci/master/tree/ - 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 *********************************************************************** 11012020 (v2.9.3) -** stable release **- - changed: python3 support to all ecasound python modules, including ECI (pyecasound) and ecamonitor - changed: the C python module implementation of ECI was removed (it was deprecated in 2.9.0 in 2012) -- python apps can use ECI using the pyeca.py module as before - changed: python3 support to ecamonitor, python2.7 new minimum requirement - fixed: configure check for LV2 updated to use "lv2" instead of deprecated "lv2core" - fixed: bugfix to LADSPA plugin port capability parsing - fixed: rubyecasound - silence continuous warnings about use of deprecated Object#timeout interface 16062019 (v2.9.2) -** stable release **- - changed: compiler hygiene -- C++ builds now pass "-std=c++98" by default as ecasound codebase does not use any c++11 features but codebase uses some features that are marked deprecated in c++11 and will be removed in c++17, so better start preparing for that - changed: update config.guess and config.sub to latest version (2019-06-10 and 2019-05-29) - fixed: in some cases (especially in TCP server mode), cop-set/ctrlp-set/c-mute/c-bypass/cop-bypass caused a full chain reinit, which depending on chain complexity caused a severe glitch in realtime operation - fixed: use of obsolete automake and ruby interface [ghedo] - fixed: LV2/liblilv build errors due to use deprecated Lilv::Instance::Instance - fixed: compiler warnings triggered by gcc-4.7.2 and newer - fixed: -ei with output to a ALSA/OSS device was broken in 2.9.1; output to JACK with -ei continues to be unsupported, see BUGS - fixed: default mpg123 launch command change to omit "-b 0" as that caused an error with mpg321 - fixed: alsa - do not ignore small differences in effective sampling rate without a warning with ALSA devices - fixed: alsa - fix xrun warning message, the xrun duration has been miscalculated incorrectly with all current versions of ALSA (ever since clock_monotonic became the default for trigger tstamp) 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 http://www.unix.org/version3/ - 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]; sffeat:2541460 - 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 sfbug:3059303 - 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 size - 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 platforms - 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 description - 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 configure - 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: http://nosignal.fi/ecasound/relnotes/ecasound_v2_7_1_relnotes.txt - 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 (http://students.mimuw.edu.pl/~tk197881/a8cas/) 17102009 (v2.7.0) -** stable release **- - note: key changes are described in more detail at: http://nosignal.fi/ecasound/relnotes/ecasound_v2_7_0_relnotes.txt - 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 together - 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: http://nosignal.fi/ecasound/relnotes/ecasound_v2_6_0_relnotes.txt - 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 'jack_alsa' - 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 output - 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 ecasound(1) - 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 http://nosignal.fi/ecasound-list/2009/01/0058.html - 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 http://nosignal.fi/ecasound-list/2009/01/0089.html - 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 'resample' - 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: http://nosignal.fi/ecasound/relnotes/ecasound_v2_5_2_relnotes.txt - 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: http://nosignal.fi/ecasound/relnotes/ecasound_v2_5_1_relnotes.txt - 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: http://nosignal.fi/ecasound/relnotes/ecasound_v2_5_0_relnotes.txt - 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 gcc-4.3.1 - 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, mlang] - 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 pthread_onexit_process() - 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: http://nosignal.fi/ecasound/relnotes/ecasound_v2_4_6_relnotes.txt - 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 Planisky - 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: http://nosignal.fi/ecasound/relnotes/ecasound_v2_4_5_relnotes.txt - 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' - added: ECASOUND_LOGFILE and ECASOUND_LOGLEVEL environment 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 extension) - 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: http://nosignal.fi/ecasound/relnotes/ecasound_v2_4_4_relnotes.txt - 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 selected - 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: http://nosignal.fi/ecasound/relnotes/ecasound_v2_4_3_relnotes.txt - 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: http://nosignal.fi/ecasound/relnotes/ecasound_v2_4_2_relnotes.txt - 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 [jeffrey,kaiv] - 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: http://nosignal.fi/ecasound/relnotes/ecasound_v2_4_1_relnotes.txt - 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 compressors) - 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: http://nosignal.fi/ecasound/relnotes/ecasound_v2_4_0_relnotes.txt - 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 ecasound(1) - 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 code-paths - 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 versions - 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 gracefully - 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 style - 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 ecasoundrc(5) - 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 CFLAGS, CXXFLAGS and LDFLAGS - 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 'cs-save-as' 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 details - 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 versions - 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 libsamplerate - 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 option - 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 parsing - 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 index - 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 reset 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 dc-offset - 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 rt-outputs - 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 systems - 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 overflow 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 types - changed: edi-28 done; ECI standalone now the only ECI implementation - changed: ecasound now uses the new JACK (0.40.0 and newer) ALSA PCM port names (alsa_pcm:capture_X and alsa_pcm:playback_X) - 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 details - 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 parsed - 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 reset to 0 after issuing 'int-output-mode-wellformed' - 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 changes - 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 finished - 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 plugin - 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 input/outputs - 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 'c-setpos' - 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 CVS-tree - 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 machines - 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 '~/.ecasound/ecasoundrc' - 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 output - 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 resampling - 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 chainsetups 31102001 (v2.1dev4) - added: eiam - 'cs-option' command; 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 parameter) - 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 oss-emulation) - fixed: explicitly specifying -z:nointbuf had no effect - 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, ao-get-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 circumstances - 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 circumstances 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 ecasound - 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 parameters - 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 cop-select - added: eiam - copp-index-select, copp-iselect as aliases for copp-select - added: eiam - ctrl-index-select, ctrl-iselect as aliases for ctrl-select - 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 dump-ao-* - 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', 'int-version-lib-age' - 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 ecafixdc - 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 compliance) - 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 support - 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 devices - 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 "ctrl-remove" - 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 parameters - 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 input/output - 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 ecasoundrc(5)) - 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 documentation - 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 reset - 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 support) - 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 eca-midi.h) - 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 directory - 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 ~/.ecasoundrc - 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 ~/.ecasoundrc - 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 numbers) - 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 /usr/local/share/ecasound) - 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 libaudiofile) - 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 parameters - 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 behaviour - 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, default-to-raisepriority) - 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 'Documentation/examples.html') - 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 implemented) - 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) -----------------------------------------------------------------------