Delay Individual Channels Independently in Ecasound

Ecasound fully supports delaying individual audio channels independently within a multitrack chainsetup. By decoupling a multichannel audio stream into separate processing chains, you can apply distinct delay operators—such as built-in time-delay effects or LADSPA plugins—to individual channels before merging them back into a single multichannel output.

To achieve independent channel delays, Ecasound utilizes its core architecture of chains (-a), audio inputs (-i), audio outputs (-o), and channel-routing operators (-erc).

How Channel Splitting Works

A standard multitrack file or multichannel stream can be assigned to multiple processing chains simultaneously. Once an input feeds multiple chains, you use channel-routing operators to isolate individual channels per chain:

  1. Assigning Inputs to Chains: You specify a comma-separated list of chains for the input stream (e.g., -a:1,2 -i:multitrack.wav).
  2. Channel Routing: You use the -erc:from_channel,to_channel operator (copy channel) or adjust chain channel counts to ensure each chain processes only its assigned target channel.
  3. Applying the Delay: The delay effect is applied only to the designated chain. Ecasound includes the native -etd (delay) operator, configured as -etd:delay_time_msec,surround_mode,number_of_delays,mix_percent. Alternatively, external LADSPA delay plugins can be loaded using -el:plugin_name.
  4. Combining the Output: Finally, all processed chains are assigned to a single multichannel output file or device (e.g., -a:1,2 -o:output.wav), where each chain feeds its respective channel in the final track.

Practical Command Example

The following command demonstrates taking a stereo audio input, leaving channel 1 unaltered, delaying channel 2 by 150 milliseconds, and recombining both into a stereo output file:

ecasound \
  -a:ch1,ch2 -i:input_stereo.wav \
  -a:ch1 -erc:1,1 \
  -a:ch2 -erc:2,1 -etd:150,0,1,100 \
  -a:ch1 -erc:1,1 -a:ch2 -erc:1,2 \
  -a:ch1,ch2 -f:16,2,44100 -o:delayed_output.wav

Expanding to Higher Track Counts

For four, eight, or more channels, the logic remains the same:

Because each chain maintains its own signal processing stack, delays operate completely independently without cross-talk or timing interference between channels.