Convolution Reverb in Ecasound via LADSPA

Ecasound fully supports applying convolution reverb impulse responses during audio mixdown using LADSPA plugins. This article covers how Ecasound's chainsetup architecture interfaces with LADSPA convolution engines, identifies the compatible plugins required to read impulse response (IR) files, and outlines the precise command-line routing needed to achieve a realistic acoustic mixdown.

Ecasound is a multitrack audio processing tool for Unix-like environments that provides native support for the Linux Audio Developer’s Simple Plugin API (LADSPA). To use convolution reverb in Ecasound, you must pair the program with a LADSPA-compliant convolution effect, most notably Tom Szilagyi's ir-ladspa plugin library. Once installed on your system, Ecasound can access this plugin directly within its audio processing chains during offline batch mixdowns or real-time processing.

Locating the Convolution Plugin

Before configuring your mixdown, verify that the impulse response plugin is installed and accessible in your system's LADSPA path (typically /usr/lib/ladspa or /usr/local/lib/ladspa). You can find the plugin label and port configuration using standard LADSPA utilities:

analyseplugin ir.so

This output will detail the exact unique plugin ID, input ports, output ports, and control parameters needed for Ecasound's -el (enable LADSPA) operator.

Integrating the Plugin into an Ecasound Chainsetup

In Ecasound, plugins are assigned to chains using the -el:plugin_label,param1,param2,... or -eli:plugin_unique_id,param1,param2,... parameters.

To apply an impulse response during a mixdown:

  1. Assign Inputs and Routing: Group dry tracks into specific chains and route them into an effects bus or master chain.
  2. Apply the LADSPA Filter: Attach the convolution plugin to the targeted chain. The plugin accepts configuration parameters such as wet/dry mix, decay envelope settings, and the loaded impulse response parameters.
  3. Render the Output: Route the processed chains to a stereo output file (e.g., a WAV or FLAC file) to execute the offline render.

A basic command-line structure for mixing a dry audio track through an IR plugin during mixdown looks like this:

ecasound -a:dry -i:track.wav -o:loop,1 \
         -a:reverb -i:loop,1 -el:ir,1,0,0,0,1,0 -o:mixdown.wav

Depending on the specific build of the ir-ladspa plugin, the impulse response WAV file can be loaded via parameter arguments, host-side preset files, or configuration controls exposed by the plugin's port declarations.

Performance and Mixdown Considerations

Convolution processing involves significant mathematical overhead via Fast Fourier Transforms (FFT). When performing mixdowns in Ecasound: