=======================================================================
*** 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; has been 
  tested with various combinations of GNU/Linux (Linux 2.2+ and 
  glibc 2.1+ combinations), FreeBSD 4.x+, Solaris 2.6+,
  Mac OS X 10.3+ and Cygwin 1.3.20+
- POSIX/SUS threads support; has been tested with glibc linuxthreads 
  and the Native POSIX Thread Library (NPTL)
  
Optional when running Ecasound:

- for soundcard input/output: OSS, OSS/Lite or ALSA drivers
- for JACK-support, the JACK runtime environment
- for mp3 support, mpg123 (input) and lame (output) packages
- for tracker module support, MikMod package
- for .aiff/.au/.snd/etc support, libaudiofile (SGI audio file) library
- for .w64/.aiff/.snd/etc support, libsndfile library
- for Ogg Vorbis support, the vorbis-tools package (ogg123 and vorbize)
- for .mid input support, Timidity++
- for .aac/.m4a/.mp4 file support, the FAAC/FAAD2 tools
- for .flac support, the FLAC package
- for aRts support, the aRts server package
- for higher quality resampling, libsamplerate

To compile Ecasound, you also need...:

- 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, and Sun Workshop 6 C5.2 C++ (STL and 
  exceptions need to be supported)
- GNU make, automake and autoconf packages

Optional when compiling Ecasound:

- for pyecasound, the Python devel package
- for curses support, the ncurses devel package
- for LADSPA support, the LADSPA SDK package
- for ALSA support, the ALSA devel package
- for JACK support, the JACK devel package
- for .aiff/.au/.snd support libaudiofile devel package
- for .w64/.aiff/.snd/etc support, libsndfile library
- for aRts support, the aRts C-API devel package
- for higher quality resampling, libsamplerate devel package

-----------------------------------------------------------------------
 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://eca.cx/ecasound-list/

You can join the lists using the following web front-end: 
http://eca.cx/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.

You can also subscribe to Ecasound releases at http://freshmeat.net .
All Ecasound releases will be announced at Freshmeat.

-----------------------------------------------------------------------
 Reporting bugs
-----------------------------------------------------------------------

See the 'BUGS' files.

-----------------------------------------------------------------------
 Web sites
-----------------------------------------------------------------------

Ecasound home site
- http://eca.cx/ecasound

Download releases
- http://ecasound.seul.org/download/    (primary site)
- http://ecawave.sf.net/download/	(mirror)
- http://eca.cx/download/		(mirror)

Eca projects portal (links, apps based on Ecasound, etc)
- http://eca.cx 
- http://ecasound.seul.org              (US mirror)
- http://ecasound.sourceforge.net       (another US mirror)

Examples of real-life Ecasound usage
- http://eca.cx/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 succesful 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 participate 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-2008 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.

=======================================================================
