Chain Operators vs Audio Objects in Ecasound

In Ecasound, the primary functional difference lies in whether a component acts as an endpoint for data transfer or as an inline signal processor. Audio objects define where sound enters and leaves the processing graph as inputs and outputs, whereas chain operators modify, transform, or analyze the audio streams that flow through chains between those endpoints.

Audio Objects: Data Sources and Sinks

Audio objects (-i for inputs, -o for outputs) represent the boundaries of the Ecasound environment. They are responsible for reading audio data from external sources or writing processed data to specific targets.

Audio objects handle formatting, sample rate translation, channel mapping, and buffer management for:

Because audio objects function strictly as sources and sinks, they do not perform transformations on the signal itself other than the mechanics required to ingest or export the data stream.

Chain Operators: Inline Signal Processors

Chain operators (-e*, such as -ea for amplification or LADSPA plugin wrappers) are processing modules attached directly to signal pathways, known as chains. Once an audio stream is ingested by an input audio object, it travels through one or more chains where chain operators process the data buffers in sequential order.

Chain operators perform tasks such as:

Unlike audio objects, chain operators cannot initiate or terminate an audio stream; they require an active audio signal provided by a chain to function.

Summary of Differences

The distinction can be summarized as input/output handling versus in-flight manipulation. Audio objects supply the raw material to the system or collect the finished result, while chain operators shape, process, and alter that material as it passes through the processing pipeline.