Codebase list ecasound / HEAD
HEAD

Tree @HEAD (Download .tar.gz)

=======================================================================
*** 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.

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