How Ecasound Handles Mono LADSPA on Multichannel Chains
When a mono LADSPA plugin (one input and one output) is inserted into a multi-channel audio chain, Ecasound automatically replicates the plugin across every audio channel in that chain. This article explains Ecasound’s automated channel-cloning mechanism, how control parameters are shared across instances, and how users can route multi-channel audio if they wish to avoid applying the mono effect to every channel simultaneously.
Automatic Plugin Instantiation
In Ecasound, audio chains have an assigned channel count (such as 2
for stereo, or 6 for 5.1 surround). When you attach a LADSPA plugin
using the -el or -eli operators, Ecasound
inspects the plugin’s audio port configuration.
If an N-channel chain encounters a mono LADSPA plugin (1 input, 1 output), Ecasound instantiates N identical copies of the plugin. Each audio channel passes through its own dedicated plugin instance in parallel:
- Channel 1 passes through Plugin Instance 1
- Channel 2 passes through Plugin Instance 2
- Channel N passes through Plugin Instance N
This allows mono effects—such as standard EQs, compressors, or filters—to work seamlessly on stereo or surround chains without crashing or dropping channels.
Parameter Synchronization vs. Internal State
While multiple instances of the plugin are created, they share the exact control parameters provided on the command line or modified via the Ecasound Control Interface (ECI). If you automate or alter a control port (such as adjusting a filter cutoff frequency), Ecasound applies that change simultaneously across all instantiated clones.
However, the internal runtime memory (state) of each instance remains completely isolated. For example, a mono delay or reverb plugin duplicated on a stereo chain will maintain independent delay buffers for the left and right channels. Signals do not bleed between channels unless the plugin itself is explicitly designed to communicate across instances via external shared memory, which standard LADSPA plugins do not do.
Targeting Specific Channels
Because Ecasound defaults to processing all channels in the chain, applying a mono plugin to only a single channel requires explicit routing. You can isolate channels using Ecasound's built-in routing tools:
- Chain Splitting: Separate multichannel inputs into
individual mono chains using
-chcopyor-erc(route channels). - Channel-Specific Processing: Place the LADSPA plugin exclusively on the chain designated for that specific channel.
- Recombining: Merge the chains back into a single
multi-channel output or route them using loop devices
(
loop,label).
By default, users can rely on Ecasound to automatically handle mono LADSPA plugins transparently across all channels of a multi-channel chain without requiring manual channel splitting.