[Main]
[Features]
[News Archive]
[Examples]
[Download]
[Documentation]
[Mailing lists]
[Report Bugs]
[Issue Tracker]
[Developer Section]
[To do]
[Authors]
[Code Changelog]
[Screenshots]
[Ecasound Users]
mirrors: nosignal.fi (eu) / seul.org (us) / sourceforge.net (us)
Ecasound - Features
What is Ecasound and why should you use it?
For a quick introduction, browse through the Ecasound README file.
Primary tasks Ecasound is designed for
- Harddisk/Multitrack Recording and Mixing - [examples]
Ecasound’s flexible chain-based design makes it a powerful
tool for multitrack recording and mixing. Once you read
through the examples, you’ll notice that recording&mixing
has never been this easy. ;)
- Effect Processing - [examples]
Ecasound offers a wide range of effect algorithms (including
support for LADSPA effect
plugins). Using Ecasound’s chain-concept, effects can be
combined in various ways. It’s also possible to save a complex
effect setup as a preset. Later on these presets can be used
just like a native effect. An important part of the effect
system is dynamic control. Oscillators, envelopes and
MIDI-control sources can be used to control effect parameters.
Check out these few examples of
Ecasound preset system and LADSPA plugins and be impressed! :)
- Realtime Signal Routing - [examples]
Route audio signals through external devices or use your
computer as an fx-processor for external signals.
- Audio File Playback and Format Conversion - [examples]
As Ecasound supports a wide range of file formats and audio devices, it can
also be used as a player and a converter. Notice! There are
some issues you should be aware of. See below for more info.
- Automating Audio Processing Tasks - [examples]
Ecasound suits well to scripting and automation. It
can be called from shell scripts, launched from graphical
programs or used from remote terminal sessions.
Additionally Ecasound Control Interface (ECI) offers a more
flexible but yet simple way to interact with the Ecasound
engine. Implementations of ECI are available for multiple
languages (for example C, C++, Python,
Perl, PHP and elisp.
Tasks for which you should choose a different tool
- MIDI Sequencing
Work around: Use an external sequencer application and run it
in sync with Ecasound either using the JACK transport API
or MIDI (MMC/MTC). This requires that the sequencer provides
sufficient support for the synchronization mechanisms.
- Sequencing Small Audio Clips
Ecasound’s design does not suit well to arranging a large
number of small audio clips into continuous tracks.
Work around: Use applications
such as SoundTracker
and synchronize them to Ecasound.
- Sound Synthesis
Ecasound only provides a very limited set of primitives for
audio generation.
- Bitwise File Conversions
Before processing, Ecasound converts all input data to its
internal format (defaults to 32bit-float/44100Hz). This is
not optimal if you want to perform bitwise conversions from
one audio file format to another.
Work around: Better tools for this kind of
work are
Sox and
libsndfile
tool sndfile-convert.
Ecasound features
Ecasound technology: Key Features
- Novel user-interface concept
What makes Ecasound unique is its non-graphical user-interface. The
basic working principle of ecasound is similar to the widely used
gdb (software debugging)
and
mysql (database admin)
tools. Ecasound allows the user to perform
most common tasks directly
from the terminal console. Repeating or otherwise complicated tasks can be
easily turned into shell scripts or ECI
apps. Ecasound tries to follow the time-tested UNIX design practises - see
for example The Art of UNIX Programming
by Eric S. Raymond.
- Highly optimized real-time engine
Ecasound’s engine has been developed with real-time reliability
as the top priority. The engine clearly separates real-time safe subsystems
from non-RT subsystems such as storage access, user-interface code and memory
management. This allows Ecasound to deliver reliable playback and recording in
all circumstances - even under significant system load.
- Ability to adapt to runtime environment
Ecasound will automatically adjust buffering parameters and other performance
related options based on analysis of runtime environment and the requested
task. Ecasound does not require you to run it with special privileges, but
if available (for example the permission to utilize real-time scheduling), Ecasound
will take full advantage and choose more aggressive parameters allowing to
further minimize processing latencies while at the same time not risking
reliability.
- Support for new Linux audio technology
- Portability and minimal external dependencies
Ecasound runs on various operating systems (GNU/Linux, FreeBSD, Mac OS X, Solaris,
Cygwin/win32) and architectures (IA32, PowerPC, ARM, SPARC).
Ecasound implements most of its core functionality without relying on
external packages. Although Ecasound can utilize numerous external packages, they
are all optional. As a mimimum, Ecasound needs POSIX (with 1003.1c thread support)
and ANSI C++ runtimes.
Supported audio inputs/outputs
- Supported Audio Inputs/Outputs
- Soundcards via ALSA (Advanced Linux
Sound Architecture), audio subsystem for Linux-2.6 and newer kernels
- JACK, a low-latency audio server
- Soundcards via OSS (/dev/dsp),
Open Sound System, audio subsystem for various Linux/BSD/UNIX systems
- aRts, audio server (KDE 2.x and newer)
- RIFF WAVE (.wav) files, 8/16/24/32bit non-compressed PCM
- Ecasound Wave Files (.ewf), simple wrapper format for recording and mixing purposes
- Raw/headerless sample data (.raw)
- CDDA (.cdr), on-disc format used on audio-CDs
- MPEG 1.0/2.0 (layers 1, 2 and 3) (.mp3), using mpg123
for input and lame for output
- Ogg Vorbis (.ogg), using ogg123 and oggenc from the vorbis-tools package
- Module formats supported by MikMod,
XM, IT, S3M, MOD, MTM, 669, STM, ULT, FAR, MED, AMF, DSM, IMF, GDM, STX
- AIFF (.aiff) and Sun/NeXT audio (.au/.snd) formats using libaudiofile
- W64 (.w64), PVF, VOC and many other formats using libsndfile [2.3.2 and newer]
- FLAC audio files using
FLAC [Ecasound 2.3.4 and newer]
- AAC audio (.aac/.m4a/.mp4) support using
FAAC/FAAD2 [Ecasound 2.3.4 and newer]
- MIDI files (.mid) - using Timidity++
- standard input/output streams (stdin, stdout) and named pipes
Sound processing components
- Sound processing components
- amplify, panning, DC-fix, volume normalization
- channel mixing and routing
- dynamics: noise gate, various compressors, limiter
- filters: lowpass, highpass, bandpass, bandreject, resonant lowpass, resonant
bandpass, resonator, comb, inverse comb, allpass
- envelope modulation: pulse gate, tremolo
- time modulation: chorus, flanger, phaser, pitch shift, fake-stereo
- delays: multitap delays, reverbs
- LADSPA and LV2 effect plugins - hundreds
of sound processing plugins available
Parameter controllers
- Controllers (for modifying effect parameters during processing)
- sine oscillator
- generic oscillator (either using an envelope table with static points
or with linear interpolation)
- linear envelopes (fade-in, fade-out, custom/generic envelopes)
- MIDI continuous controllers (CC)
- OSC (Open Source Control) apps
Notes about implementation
- floating-point sample representation is used for all processing
(defaults to 32bit)
- written in ANSI C++ (interface libraries available for C, Python,
Perl, Ruby, PHP, etc)
User-interfaces
- Ecasound is designed to be a usable and intuitive tool for creative work
- Console-mode ecasound - [man page]
- the primary user-interface
- can easily be used in batch-files, macros, etc
- passive textmode - all parameters are given on the command line
- interactive textmode - like passive, but program can be
controlled with simple commands (read from stdin using GNU readline)
- Ecatools command-line utils - [man page]
- ecaconvert (convert from one file format to another, supports batch processing)
- ecafixdc (fix DC-offset, supports batch processing)
- ecalength (prints audio file information)
- ecanormalize (normalize volume level, supports batch processing)
- ecaplay (play files using the default output, supports batch processing)
- ecasignalview (monitor signal volume in realtime)
- Various 3rd party user-interfaces and separate applications
- See announcements on ecasound-list mailing list
Copyright © 2000-2020 Kai Vehmanen
This page is licensed under a Creative Commons Attribution 3.0 Unported License.