Ecasound Mono-to-Stereo Spatial Widening
This article explains how Ecasound transforms a single-channel mono audio signal into a wide pseudo-stereo field using its built-in routing architecture and signal processing operators. By splitting a mono source across independent processing chains, applying timing and phase offsets, leveraging frequency splits, or integrating external LADSPA plugins, Ecasound offers lightweight, terminal-based control over spatial audio imaging.
The Core Mechanism: Chain-Based Splitting
Ecasound achieves mono-to-stereo conversion natively through its chain routing system. In Ecasound, an audio input can be assigned simultaneously to multiple processing chains, each routed to specific channels of a multi-channel output.
To widen a mono source, Ecasound directs the single input into two separate chains (representing Left and Right). Each chain receives distinct acoustic processing before being summed into an interleaved stereo output stream.
Implementing the Haas Effect (Time-Delay Widening)
The most common method for pseudo-stereo widening in Ecasound is the Haas (precedence) effect. By delaying one channel by 10 to 30 milliseconds relative to the other, the human brain perceives a wider acoustic space without hearing an explicit echo.
In Ecasound, this is configured using:
- The chain selector (
-a:chain_name) - The channel panning operator (
-epp:pan_percent) - The delay operator
(
-etd:delay_time_ms,surround_mode,number_of_delays,mix_percent,feedback_percent)
Example Haas Widening Command
ecasound -a:1,2 -i:mono_input.wav \
-a:1 -epp:0 \
-a:2 -etd:18,0,1,100,0 -epp:100 \
-a:1,2 -f:s16_le,2,44100 -o:stereo_widened.wavIn this command:
-a:1,2 -i:mono_input.wavassigns the mono input file to Chain 1 and Chain 2.-a:1 -epp:0pans Chain 1 hard left (0%).-a:2 -etd:18,0,1,100,0 -epp:100delays Chain 2 by 18 milliseconds at a 100% wet mix with zero feedback, then pans it hard right (100%).-a:1,2 -f:s16_le,2,44100 -o:stereo_widened.wavcombines both chains into a standard 2-channel 44.1 kHz stereo file.
Spectral and Comb-Filter Widening
A purely delayed signal can introduce severe comb filtering and phase cancellation if summed back to mono. To mitigate this, Ecasound allows channel-specific equalisation using low-pass, high-pass, or band-pass filters:
- Left channel: Mild high-shelf or high-pass bias (
-ef3or-ef1). - Right channel: Complementary low-shelf or low-pass bias.
Distributing frequency bands differently across the left and right channels prevents phase cancellation artifacts while generating a perceived stereo spread across the frequency spectrum.
LADSPA Plugin Integration
Ecasound supports LADSPA (Linux Audio Developer's Simple Plugin API)
plugins natively via the -el option. Instead of
constructing manual delay lines, users can insert dedicated stereo
spatializers and chorus/dimension effects directly into chains:
- Stereo Chorus/Flanger
(
-el:chorus_1433): Applies subtle pitch modulation and micro-delays between channels. - Matrix Spatializers: Plugins that translate mid-side (M/S) channels to alter the width directly.
Example using an external LADSPA stereo widener on a split bus:
ecasound -a:1 -i:mono_input.wav -el:caps_WideMono -o:stereo_output.wavMono Compatibility Considerations
When creating spatial widening effects in Ecasound:
- Keep delay values strictly under 35 milliseconds to avoid distinct rhythmic echoes.
- Avoid hard phase-inversion (
-ea:channel_invertstructures) without dry center preservation, as this causes the signal to cancel out completely when collapsed back to a single mono speaker. - Keep the original, unprocessed dry signal mixed slightly in both chains to preserve the phantom center image for lead elements such as vocals or dialogue.