Ecasound Flanger and Chorus Native Effects Guide

This article provides an overview of how Ecasound implements flanging and chorus effects through its native signal-processing operators. You will learn the mechanics behind the primary time-modulated delay operator (-efl), the theoretical distinction between flanging and chorus in command-line audio processing, and how to configure single-chain and multi-chain audio routes to generate both classic comb-filtering and rich multi-voice modulation.

The Native Time-Modulation Operator: -efl

Ecasound handles time-varying delay effects natively using the flanger operator, specified on the command line or within chainsetup scripts as -efl. The operator takes three primary arguments:

-efl:delay_time,freq,amplitude

Under the hood, Ecasound maintains a ring buffer for the incoming audio samples. A sinusoidal LFO continuously modulates the read pointer's position relative to the write pointer based on the specified frequency and amplitude. The delayed, pitch-modulated signal is then summed with the dry direct signal.

Configuring Classic Flanging

Flanging relies on short delay times that produce constructive and destructive interference across the frequency spectrum, known as comb filtering. When the delay time modulates, these comb peaks and troughs sweep up and down the audible spectrum, creating the signature jet-plane swoosh.

To achieve standard flanging in Ecasound, set a short base delay between 1 and 5 milliseconds, a slow-to-moderate LFO speed (0.1 Hz to 1.0 Hz), and an amplitude close to the delay time:

ecasound -i input.wav -o output.wav -efl:3,0.5,2.5

In this command:

Implementing Chorus with -efl

While flanging requires sub-10ms delays to trigger audible phase cancellation, a chorus effect simulates multiple instruments playing the same part simultaneously. This requires longer delay times (typically 15 to 40 milliseconds) to decouple the phase interaction, avoiding heavy comb filtering while introducing subtle pitch detuning (pitch modulation) via the LFO.

Because Ecasound does not include a separate distinct -efc chorus operator, the native -efl engine is repurposed for chorus by shifting these delay parameters:

ecasound -i input.wav -o output.wav -efl:25,0.8,3

In this setup:

Multi-Voice Chorus via Parallel Routing

A single modulated delay line can sound thin compared to dedicated hardware or multi-tap chorus units. Ecasound's native chain-routing architecture allows you to construct a richer, multi-voice chorus by splitting the input into parallel chains, applying asymmetrical -efl settings to each, and panning the results:

ecasound -a:1,2 -i input.wav \
         -a:1 -efl:20,0.6,2.5 -erc:1,2 -epp:20 \
         -a:2 -efl:30,0.9,3.5 -erc:1,2 -epp:80 \
         -a:1,2 -o output.wav

This configuration routes the input audio into two independent processing chains (-a:1 and -a:2):