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.
Note! All options except those mentioned in ecasound options and Global options, can be used in ecasound chainsetup files (.ecs).
ECASOUND OPTIONS
These options are parsed and handled by the ecasound frontbed binary and are not passed to backend library. This means that these options may not work in other applications that use ecasound libraries for their functionality.
Warning! As there is no access control implemented, be sure to block ecasound's port in your firewall if the machine running ecasound is connected to a public network! Otherwise anyone can connect to your ecasound sessions.
GLOBAL OPTIONS
GENERAL CHAINSETUP OPTIONS
CHAINSETUP BUFFERING AND PERFORMANCE OPTIONS
PROCESSING CONTROL
INPUT/OUTPUT SETUP
See ecasound user's guide for more detailed documentation.
Sample format is given as a a formatted string. The first letter is either "u", "s" and "f" (unsigned, signed, floating point). The following number specifies sample size in bits. If sample is little endian, "_le" is added to the end. Similarly if big endian, "_be" is added. If endianess is not specified, host byte-order is used. Currently supported formats are "u8" (same as "8"), "s16_le" (same as "16"), "s16_be", "s24_le", "s24_be", "s32_le", "s32_be", "f32_le" and "f32_be".
The 4th parameter 'interleaving' should either be 'i' (default) for interleaved stream format, or 'n' for noninterleaved.
OBJECT TYPE SPECIFIC NOTES
Looping is possible with -i:audioloop,file.ext,params. The file name (or any object type understood by Ecasound) given as the second parameter is played back continuously looping back to the beginning when the end of file is reached. Any additional parameters given are passed unaltered to the file object. Parameters 3...N are passed as is to the child object (i.e. "-i audioloop,foo.wav,bar1,bar2" will pass parameters "bar1,bar2" to the "foo.wav" object.
To select and use only a specific segment of an audio object, the -i:select,start-time,duration,file.ext,params can be used. This will play "duration" of "file.ext", starting at "start-time". The time values should be given as seconds (e.g. "2.25", or as samples (e.g. "25000sa"). Parameters 4...N are passed as is to the child object.
To play an audio object at a given moment in time, the -i:playat,play-at-time,file.ext,params can be used. This will play "file.ext" after position reaches "play-at-time". The time values should be given as seconds (e.g. "2.25", or as samples (e.g. "25000sa"). Parameters 2...N are passed as is to the child object.
See also audio object types 'audioloop', 'select' and 'playat'.
Ecasound provides multiple ways to communicate with JACK servers. To directly input or output to soundcard, use -i jack_alsa and -o jack_alsa. To communicate with other apps, use jack_auto,remote_clientname. To just create ports without making any automatic connections, there are jack and jack_generic,local_portprefix.
Additionally global JACK options can be set using -G:jack,client_name,operation_mode. 'client_name' is the name used when registering ecasound to the JACK system. If 'operation_mode' is "notransport", ecasound will ignore any transport state changes in the JACK-system; in mode "send" it will send all start, stop and position-change events to other JACK clients; in mode "recv" ecasound will follow JACK start, stop and position-change events; and mode "sendrecv" (the default) which is a combination of the two previous modes.
More details about ecasound's JACK support can be found from ecasound user's guide.
Note: this 'loop' device is different from 'audioloop' (latter added to ecasound v2.5.0).
Parameters 4...N are passed as is to the child object (i.e. "-i resample,22050,foo.wav,bar1,bar2" will pass parameters "bar1,bar2" to the "foo.wav" object.
If ecasound was compiled with support for libsamplerate, you can use 'resample-hq' to use the highest quality resampling algorithm available. To force ecasound to use the internal resampler, 'resampler-lq' (low-quality) can be used.
Parameters 3...N are passed as is to the child object (i.e. "-i reverse,foo.wav,bar1,bar2" will pass parameters "bar1,bar2" to the "foo.wav" object.
Parameters 4...N are passed as is to the child object (i.e. "-i typeselect,.au,foo.wav,bar1,bar2" will pass parameters "bar1,bar2" to the "foo.wav" object.
MIDI SETUP
EFFECT SETUP
PRESETS
Ecasound has a powerful effect preset system that allows you create new effects by combining basic effects and controllers. See ecasound user's guide for more detailed information.
SIGNAL ANALYSIS
GENERAL SIGNAL PROCESSING ALGORITHMS
ENVELOPE MODULATION
FILTER EFFECTS
CHANNEL MIXING / ROUTING
TIME-BASED EFFECTS
LADSPA-PLUGINS
GATE SETUP
CONTROL ENVELOPE SETUP
Controllers can be used to dynamically change effect parameters during processing. All controllers are attached to the selected (=usually the last specified effect/controller) effect. The first three parameters are common for all controllers. 'fx_param' specifies the parameter to be controlled. Value '1' means the first parameter, '2' the second and so on. 'start_value' and 'end_value' set the value range. For examples, look at the the EXAMPLES section.
INTERACTIVE MODE
See ecasound-iam man page.
In interactive mode, ecasound always returns zero.
In non-interactive (batch) mode, a non-zero value is returned for the following errors:
~/.ecasound The default directory for ecasound user resource files. See the ecasoundrc (5) man page man page.
*.ecs Ecasound Chainsetup files. Syntax is more or less the same as with command-line arguments.
*.ecp Ecasound Chain Preset files. Used for storing effect and chain operator presets. See ecasound user's guide for more better documentation.
*.ews Ecasound Wave Stats. These files are used to cache waveform data.
Examples of how to perform common tasks with ecasound can be found at http://eca.cx/ecasound/Documentation/examples.html.
ecatools (1) man page, ecasound-iam (1) man page ecasoundrc (5) man page, "HTML docs in the Documentation subdirectory"
See file BUGS. If ecasound behaves weirdly, try to increase the debug level to see what's going on.
Kai Vehmanen, <kvehmanen -at- eca -dot- cx>