======================================================================= *** Ecasound - README (author/maintainer: Kai Vehmanen) *** ======================================================================= ----------------------------------------------------------------------- What is it? ----------------------------------------------------------------------- Ecasound is a software package designed for multitrack audio processing. It can be used for simple tasks like audio playback, recording and format conversions, as well as for multitrack effect processing, mixing, recording and signal recycling. Ecasound supports a wide range of audio inputs, outputs and effect algorithms. Effects and audio objects can be combined in various ways, and their parameters can be controlled by operator objects like oscillators and MIDI-CCs. A versatile console mode user-interface is included in the package. Primary platform for running Ecasound is Linux. Ecasound also works on many UNIX-derived systems such as FreeBSD and Solaris. Limited support for Windows is available through Cygwin. ----------------------------------------------------------------------- How do you... (author: Kai Vehmanen) ----------------------------------------------------------------------- ... spell the name? I haven't been very consistent with this, but at least in principle, when capitalized, the name refers to the whole package. When in lower case, it refers to the console mode application which happens to have the same name. "Ecasound" = the whole package "ecasound" = the console mode client application (binary) ... pronounce the name? Any way you want! :) Personally I say something to the effect of "eck-uh-sound". Start from "megasound", and omit pronouncing the 'm' at the start, and replace 'g' with a sharper 'k' sound, like in the word "car". ----------------------------------------------------------------------- Story behind Ecasound (author: Kai Vehmanen) ----------------------------------------------------------------------- I started developing Ecasound because I needed an application to record, process and mix my own music. The first versions of Ecasound ran under IBM OS/2. I used those versions for finalizing my analog 4-track recordings. The analog 4-track - Tascam 414 - was a nice tool, but it had its limits. So eventually I started looking for PC software that supported multitrack recording. The first programs I used were for Windows. I still used the OS/2 version of Ecasound for effects processing and finalizing my mixes. Although I'm not fanatical about operating systems, I did prefer (and still do) to use Linux for my computing needs. I also hate rebooting between multiple systems all the time, so it was time to do a port. When I ported Ecasound to Linux, a lot of functionality was rewritten from scratch. During this work I also added multitrack capabilities to Ecasound. It took quite a lot of effort to put it all back together, but in the end I reached the point where I could do all the audio processing tasks on Linux. As an additional benefit I now had source code for - and thus control over - all tools I used for audio processing. Nowadays I still use Ecasound for my music projects. This is also the primary motivation for continuing the development work. There is always something to improve. ----------------------------------------------------------------------- Requirements ----------------------------------------------------------------------- To run Ecasound, you need...: - Operating system that provides standard POSIX/SUS interfaces. Ecasound has been reported to run successfully on various combinations of GNU/Linux (starting from Linux 2.2+ and glibc 2.1+), FreeBSD 4.x+, Solaris 2.6+, Mac OS X 10.3+ and Win32/Cygwin 1.3.20+. Optional when running Ecasound: - for real-time audio input/output: ALSA, JACK or OSS runtime - for mp3 support: mpg123 (input) and lame (output) packages - for Ogg Vorbis support, the vorbis-tools package (ogg123 and oggenc) - for .aac/.m4a/.mp4 file support, the FAAC/FAAD2 tools - for .flac support, the FLAC package - note: since ecasound 2.4.5, libsndfile is the preferred way for reading and writing FLAC files - for MIDI .mid file input: Timidity++ - for tracker module support: MikMod package - for aRts (legacy KDE) support: the aRts server suntime To compile Ecasound, you also need...: - POSIX/SUS development environment, compatible with 'The Single UNIX Specification, Version 3' (UNIX03): - http://www.unix.org/version3/ - http://pubs.opengroup.org/onlinepubs/000095399/toc.htm Ecasound requires the following feature groups: - "Realtime": http://www.opengroup.org/onlinepubs/007908799/xsh/realtime.html - "Realtime Threads": http://www.opengroup.org/onlinepubs/007908799/xsh/feature.html#tag_000_005_003 - Standard C++ build environment (with support for STL and exceptions); tested with egcs 1.1.2, gcc versions 2.91.66, 2.95.X, 3.0-3.4, 4.0-4.3, and Sun Workshop 6 C5.2 C++. - GNU make - http://www.gnu.org/software/make/ Optional when compiling Ecasound: - for extended file format support (aiff, snd, w64 and so forth): - libaudiofile (SGI audio file library) runtime, and/or - libsndfile - for higher quality resampling: libsamplerate - for pyecasound, the Python 2.7+ runtime - for curses support, the ncurses devel package - for LADSPA support, the LADSPA SDK package - for LV2 support, liblilv devel package newer than 0.5.0 - for ALSA support, the ALSA devel package - for JACK support, the JACK devel package - for aRts support, the aRts C-API devel package - for inner loop optimizations (performance improvements), the liboil package - for Open Sound Control (OSC) support, liblo package Additional packages needed, when building Ecasound from a clean version control checkout: - automake - http://www.gnu.org/software/automake/ - autoconf 2.50+ - http://www.gnu.org/software/autoconf/ - libtool - http://www.gnu.org/software/libtool/ - pkg-config - http://pkg-config.freedesktop.org/wiki/ ----------------------------------------------------------------------- Installing ----------------------------------------------------------------------- You should first try installing Ecasound from a binary package (files in rpm, dpkg, etc format -- depends on your system). On some systems Ecasound is part of the distribution and can be installed easily with tools such as apt-get, yum and others. This is probably the easiest and most straightforward way to install Ecasound. If you need to compile Ecasound, the file 'INSTALL' contains detailed instructions on how to do this. ----------------------------------------------------------------------- Documentation ----------------------------------------------------------------------- Ecasound documentation is updated whenever new features are added or existing features are modified. Some things are not documented in great detail, but on the other hand, documentation is kept up-to-date. So in short, correctness over volume. The primary documentation sources are: - Ecasound User's Guide - Ecasound Programmer's Guide - Ecasound Control Interface Guide - manual pages - ecasound(1) - ecatools(1): ecaplay(1), ecaconvert(1), ... - ecasound-iam(1) - ecasoundrc(5) - misc HTML-formatted docs (Documentation/*.html) - command line help - ecasound --help Probably the best place to start is the examples section of Ecasound's HTML-documentation (Documentation/examples.html). ----------------------------------------------------------------------- Mailing lists ----------------------------------------------------------------------- - ecasound-list at lists dot sourceforge dot net: A general discussion forum for developers and users of Ecasound and related tools. Announcements of new versions, bug warnings, etc will be posted to this list. If you have problems compiling, installing or using Ecasound, this is a good place to ask for help. Reports of working software/hardware combinations are also welcome. You can browse the message archives at http://nosignal.fi/ecasound-list/ You can join the lists using the following web front-end: http://nosignal.fi/ecasound/mlists.php - linux-audio-announce at lists.linuxaudio.org Announcements of Ecasound releases will, in addition to ecasound-list, be sent to the linux-audio-announce list. See the list home page at http://www.linuxdj.com/audio/lad/subscribelaa.php for more information. ----------------------------------------------------------------------- Reporting bugs ----------------------------------------------------------------------- See the 'BUGS' files. ----------------------------------------------------------------------- Web sites ----------------------------------------------------------------------- Ecasound home site - http://nosignal.fi/ecasound Download releases - http://ecasound.seul.org/download/ (primary site) - http://ecawave.sf.net/download/ (mirror) - http://nosignal.fi/download/ (mirror) Eca projects portal (links, apps based on Ecasound, etc) - http://nosignal.fi - http://ecasound.seul.org (US mirror) - http://ecasound.sourceforge.net (another US mirror) Examples of real-life Ecasound usage - http://nosignal.fi/ecasound_users.html ----------------------------------------------------------------------- About free open-source software (FOSS) development ----------------------------------------------------------------------- You should keep in mind that FOSS [1] development process differs greatly from closed commercial development. Active participation, both from developers and users, is what pushes a FOSS project forward. Every successful FOSS project has an active userbase behind it. This means that your comments, ideas and bug reports are extremely important. If something does not work, or some feature is missing, be active. Either try to fix the problem yourself, or report it on the ecasound-list mailing list. [1] Although Ecasound is free software (http://www.gnu.org), it also fits the definition of open-source software (http://www.opensource.org/). Although the two initiatives have different goals, they also share a lot in common. The term FOSS is used to refer to both of them, while still acknowledging the difference between the two. ----------------------------------------------------------------------- How stable is stable? ----------------------------------------------------------------------- Although publically released versions are called stable, this is not a guarantee of any kind. Before releases, a small set of test cases is run to verify that all basic features are working. The developers also use the very latest versions themselves, so hopefully at least all obvious bugs are found before stable releases are made. But otherwise no guarantees are given. On the other hand, as Ecasound is free software, you have the possibility to review the code yourself, perform tests, and fix any bugs you might find, or get someone to fix them for you. In the end you have the control. The more people there are involved in Ecasound development, testing and related discussions, the better Ecasound will become! ----------------------------------------------------------------------- Authors ----------------------------------------------------------------------- See the file 'AUTHORS'. ----------------------------------------------------------------------- Thanks to ----------------------------------------------------------------------- DotCX (www.nic.cx) For providing 'eca.cx' domain free of charge 2000-2004. SEUL (www.seul.org) For hosting Ecasound CVS, ftp, and http services since 1999. SourceForge.net For hosting Ecasound, Ecawave and Ecamegapedal ftp and http mirror sites since 1999. Wakkanet Oy (www.wakkanet.fi) For various hosting services 1999-2004. Linux-audio-dev community Always a great source of inspiration! Special thanks to Paul Davis, who has kept on pushing Linux audio forward all these years. Endersz, Viktor For sending me the adv.compressor source code! Phillips, Dave The 'Linux Sound & MIDI' website was the reason why I initially got interested in Linux audio! And of course, to all the contributors (see the file 'AUTHORS') and to users who have given feedback, ideas and helped with testing! ----------------------------------------------------------------------- Licensing/distribution policy ----------------------------------------------------------------------- Copyright (C) 1997-2020 Kai Vehmanen and others (see the file 'AUTHORS' for full list of copyright holders). Ecasound is freely distributable according to the terms of the GNU General Public License (see the file 'COPYING.GPL'). This program is distributed without any warranty. See the file 'COPYING.GPL' for details. As an exception to the above, the C, C++ and python implementations of the Ecasound Control Interface (ECI) are licensed under the LGPL (see the file 'COPYING.LGPL'). This allows writing ECI applications that are not licensed under GPL. =======================================================================