Dynamic Range Compression in Ecasound

In Ecasound, dynamic range compression is natively handled by the -eca peak limiter operator, while full-featured compression curves are achieved using the -el LADSPA plugin host operator. This article covers how to implement and configure the built-in -eca operator to manage dynamic peaks, as well as how to integrate LADSPA-based compressors for advanced dynamic control.

The Native -eca Operator

Ecasound includes a native dynamic processing effect designated by the -eca operator. It functions as a peak limiter—an aggressive, specialized form of dynamic range compression designed to attenuate signals exceeding a specified ceiling.

Syntax and Parameters

-eca:peak-limit,release-time
  • peak-limit: The maximum allowed signal level expressed as a percentage (from 0 to 100). Signals exceeding this threshold are automatically compressed downward to prevent clipping and restrict dynamic variance.
  • release-time: The time in seconds it takes for the gain to return to unity after the signal drops below the target threshold (for example, 0.05 for 50 milliseconds).

Command Example

To compress an audio file so that signals do not exceed 85% of full scale with a fast release time of 50 milliseconds, use:

ecasound -i input.wav -eca:85,0.05 -o output.wav

Advanced Compression Using LADSPA (-el)

While -eca works well for limiting peaks, standard multi-parameter dynamic range compression—requiring adjustable attack, knee, ratio, and makeup gain—relies on Ecasound’s LADSPA plugin operator, -el.

Ecasound interfaces with external LADSPA compressor suites such as Steve Harris’s sc4 compressor or the TAP plugins.

Command Example with SC4

Using the SC4 compressor plugin through the -el operator:

ecasound -i input.wav -el:sc4,0,10,0.02,-12,4,0.1 -o output.wav

In this setup, the parameters define the compressor's root behavior:

  • RMS/peak detection mode
  • Attack time (ms)
  • Release time (s)
  • Threshold (dB)
  • Compression ratio (e.g., 4 for 4:1)
  • Knee radius (dB)

Dynamic manipulation often involves expansion alongside compression. Ecasound pairs the -eca limiter with the -enm operator, which functions as a noise gate to suppress dynamic range at the lower end:

-enm:threshold_level,pre_hold_time,attack_time,post_hold_time,release_time

Combining -enm for low-level gating and -eca (or -el:sc4) for high-level compression creates a complete dynamic processing chain within a single Ecasound command line.