Ecasound Track Grouping for Simultaneous Faders
Ecasound manages multi-track fader adjustments through chain-based routing architecture and multi-chain parameter targeting rather than traditional visual mixer groups. This article explains how to group audio tracks in Ecasound to adjust multiple faders simultaneously, covering bus routing with loop devices, shared chain operators, and external real-time controller mapping.
Chains as Tracks
Ecasound does not use conventional DAW tracks; instead, it processes
audio using "chains." A chain is a signal path that connects an input to
an output through various chain operators (effects, filters, and gain
stages). To perform simultaneous gain adjustments across multiple audio
streams, you configure how these chains interact with gain operators
(-ea for amplification) or route them through shared
summing buses.
Submixing Using Loop Devices (Bus Routing)
The most robust method to control multiple faders simultaneously is routing distinct audio chains into an intermediate summing bus using loop devices. This mirrors the behavior of a standard mixer subgroup fader.
- Assign audio inputs to individual chains: Give each source track its own chain identifier.
- Route outputs to a virtual loop device: Direct the
output of those chains to a shared loop device
(
loop,N). - Create a master/group chain: Set the input of a new chain to read from that loop device.
- Apply gain control to the group: Attach the amplify
operator (
-ea) to the group chain.
Example configuration:
ecasound \
-a:drums1 -i:kick.wav -o:loop,1 \
-a:drums2 -i:snare.wav -o:loop,1 \
-a:drums3 -i:hihat.wav -o:loop,1 \
-a:drum_bus -i:loop,1 -ea:100 -o:alsaIn this setup, changing the -ea value of
drum_bus scales the volume of the kick, snare, and hi-hat
tracks concurrently, functioning as a master subgroup fader.
Multi-Chain Operator Addressing
Ecasound allows you to target multiple chains simultaneously using comma-separated chain names when attaching operators. If you need identical gain adjustments applied directly to source tracks rather than summing them first, you can assign an operator across multiple chains in a single declaration:
ecasound \
-a:vox1 -i:lead.wav \
-a:vox2 -i:backing.wav \
-a:vox1,vox2 -ea:80 \
-a:all -o:alsaIn interactive mode (Ecasound's CLI engine), you can select multiple chains at once and execute commands across the group:
c-select vox1,vox2
cop-select 1
cop-set 1,120
This sequence selects chains vox1 and vox2,
chooses the first chain operator (the -ea gain stage), and
sets its parameter to 120% simultaneously.
Real-Time External Control via MIDI and ECI
For live performance or mixing without a summing bus, simultaneous adjustments can be mapped externally:
- Ecasound Control Interface (ECI): External scripts (Python, Perl, C++) can connect to Ecasound's engine via ECI and dispatch atomic commands that update the gain values of multiple chains in a single event loop iteration.
- Continuous Controllers (Oscillators and Envelopes):
Ecasound supports controller envelopes (
-kos) and MIDI continuous controllers (-km). By assigning the same MIDI CC channel and controller number to the-eaoperators of different chains, moving a single physical or virtual fader adjusts the amplification of all linked chains in real time.