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.