Frequency Domain Processing Operators in Ecasound
This article provides an overview of how frequency-domain analysis
and processing are implemented within Ecasound. While Ecasound's
internal core operates natively on time-domain audio buffers, it enables
frequency-domain (spectral) processing and analysis primarily through
its LADSPA plugin operators, -el and -eli.
Additionally, built-in frequency-selective filtering is handled via the
-ef* family of operators.
The LADSPA Operators:
-el and -eli
True frequency-domain processing—such as Fast Fourier Transform (FFT) analysis, phase vocoding, pitch shifting, and spectral filtering—is delegated in Ecasound to the LADSPA (Linux Audio Developer's Simple Plugin API) framework using two operators:
-el:plugin_unique_name,param1,param2,...: Loads and configures a LADSPA plugin by its unique text-based label.-eli:plugin_unique_id,param1,param2,...: Loads a LADSPA plugin using its unique numerical ID.
Because Ecasound is designed as a modular processing engine rather than a dedicated spectral editor, external LADSPA plugins (such as those provided by the SWH, CMT, or CAPS plugin suites) are used to perform FFT-based transformations.
Example: Spectral
Processing with -el
To apply an FFT-based spectral processor or pitch modifier via LADSPA:
ecasound -i input.wav -el:mbeq,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -o output.wavIn this setup:
-i input.wavdefines the input stream.-el:mbeq,...invokes the multi-band equalizer plugin by label to manipulate individual frequency bands.-o output.wavdesignates the destination output.
Native
Frequency-Selective Filtering: The -ef* Operators
For standard frequency-dependent attenuation and shaping that do not
require full spectral analysis, Ecasound provides built-in filter
operators under the -ef prefix. These operate directly in
the time domain using digital filter algorithms:
-efl:cutoff_frequency: Low-pass filter (attenuates frequencies above the cutoff).-efh:cutoff_frequency: High-pass filter (attenuates frequencies below the cutoff).-efb:center_frequency,width: Band-pass filter (passes a designated frequency band).-efr:center_frequency,width: Band-reject/notch filter (cuts a designated frequency band).-ef4:cutoff_frequency,resonance: Resonant 4-pole low-pass filter.
Example: Applying a Low-Pass Filter
ecasound -i input.wav -efl:1200 -o filtered.wavThis command applies a low-pass filter with a cutoff frequency of 1200 Hz to the audio stream.
Frequency Analysis Pipelines
If you require visual or numerical frequency-domain analysis rather than acoustic transformation, Ecasound can pipe raw audio data to standard analysis tools:
ecasound -i input.wav -f:s16_le,2,44100 -o stdout | fftw-analysis-toolUsing this approach, Ecasound handles routing, channel mapping, and format conversion, while dedicated external analysis packages compute and display the Fourier transform.