Ecasound Aux Send and Return Bus Routing
This article explains how to implement auxiliary (aux) send and return buses in Ecasound for shared effects processing during a multitrack mixing session. By leveraging Ecasound’s chain architecture and real-time loop devices, you can route multiple audio tracks into a single shared processing chain—such as a reverb or delay bus—and blend the processed wet signal back into the master mix.
Core Routing Architecture
In Ecasound, auxiliary buses rely on three core components:
- Chains (
-a:chain_name): Independent signal paths that can host inputs, outputs, and effect operators. - Loop Devices (
loop,name): Internal virtual audio buffers used to pass audio between different chains without writing to physical disk or hardware. - Shared Audio Objects: Multiple chains can write to the same output or read from the same input, providing automatic summing and distribution.
Step 1: Defining the Tracks and the Aux Send
To create an auxiliary send, a track’s dry signal is split. One path goes directly to the master output, while a parallel path acts as the "send," routing a copy of the signal into a shared loop device.
The amplitude operator (-ea:percent) placed on the send
chain controls the send level for that specific track.
# Track 1: Direct path and Aux Send path
-a:t1_dry -i:guitar.wav -ea:100 -o:loop,master
-a:t1_send -i:guitar.wav -ea:35 -o:loop,reverb_bus
# Track 2: Direct path and Aux Send path
-a:t2_dry -i:vocals.wav -ea:100 -o:loop,master
-a:t2_send -i:vocals.wav -ea:60 -o:loop,reverb_bus
Because both -a:t1_send and -a:t2_send
target the same output buffer (-o:loop,reverb_bus),
Ecasound automatically sums these signals together, functioning as an
aux send bus.
Step 2: Setting Up the Aux Return (Effect Bus)
The aux return is implemented as a dedicated chain that consumes audio from the send loop, processes it with one or more effects, and sends the wet signal to the master bus.
Effects on the aux return should typically be configured to 100% wet, as the dry signal is already routed directly via the dry track chains.
# Aux Return: Reads the bus, applies LADSPA reverb, controls return level
-a:reverb_return -i:loop,reverb_bus -el:tap_reverb,2500,-10,-20 -ea:80 -o:loop,master
In this chain:
-i:loop,reverb_busreads the combined audio from all send chains.-el:plugin_name,params...applies the shared LADSPA effect.-ea:80functions as the aux return fader.-o:loop,mastersends the processed wet signal to be combined with the dry mix.
Step 3: Summing at the Master Output
Finally, a master chain receives all audio routed to
loop,master (both dry tracks and wet return buses) and
sends the finalized mix to the physical sound card or an export
file.
# Master: Sums all dry tracks and aux returns, outputs to ALSA hardware
-a:master -i:loop,master -ea:100 -o:alsa
Complete Implementation Example
The complete Ecasound command to run a session with two tracks, one shared reverb aux bus, and a hardware output is:
ecasound \
-a:t1_dry -i:guitar.wav -ea:100 -o:loop,master \
-a:t1_send -i:guitar.wav -ea:30 -o:loop,fx_bus \
-a:t2_dry -i:vocals.wav -ea:100 -o:loop,master \
-a:t2_send -i:vocals.wav -ea:50 -o:loop,fx_bus \
-a:fx_ret -i:loop,fx_bus -el:plate_reverb,1.5,100 -ea:75 -o:loop,master \
-a:master -i:loop,master -o:alsaThis workflow eliminates duplicate effect processing across tracks, reduces CPU overhead, and provides cohesive spatial cohesion across the mix.