Ecasound Control Interface Language Bindings
The Ecasound Control Interface (ECI) allows developers to programmatically automate and manipulate the Ecasound multitrack audio processing engine. This guide provides an overview of the programming languages that feature official or standard bindings included directly within the core Ecasound distribution or maintained as primary integration libraries.
C
The C programming language provides the reference implementation of
the external control interface through the libecasoundc
library. It exposes a procedural API with functions such as
eci_init(), eci_command(), and
eci_last_string() to interact directly with the audio
subsystem. Most high-level language wrappers build directly on top of
this C library.
C++
Ecasound is written primarily in C++, making C++ the native
environment for ECI. Developers can interface with the engine using the
native ECA_CONTROL_INTERFACE class directly, without
requiring wrapper layers or external translation libraries. This
provides full, low-overhead access to audio routing, processing chains,
and real-time parameters.
Python
Python features official bindings maintained directly within the
Ecasound source tree. Distributed via the py-ecasound
package (providing the ecacontrol module), it wraps
libecasoundc to provide an object-oriented Python
interface. It allows developers to configure audio inputs, outputs, and
effects using standard Python syntax.
Perl
Perl support is officially integrated through the
ecasound.pm module included in the core source
distribution. It provides Perl scripts with object-oriented and
functional access to the underlying control interface, facilitating
audio batch processing and scripting.
Ruby
The official Ecasound distribution provides standard bindings for
Ruby via the ruby-ecasound extension. It wraps the standard
ECI functions, enabling Ruby scripts to initialize the engine, dispatch
commands, and parse the resulting status strings and buffers.
PHP
Ecasound provides an official PHP extension
(php-ecasound) located within its source repository. This
binding brings ECI functionality to server-side web environments,
allowing developers to generate audio files, manipulate media streams,
or run backend audio tasks through PHP scripts.
Emacs Lisp (ELisp)
While not a general-purpose application programming language, Emacs
Lisp features an official integration module (ecasound.el)
included with the project. It provides direct interactive control of the
Ecasound engine from within the GNU Emacs editor environment.