Using Ecasound as a JACK Transport Master or Client

Ecasound is a powerful command-line multitrack audio processing tool that integrates directly with the JACK Audio Connection Kit. It fully supports JACK transport functionality, allowing it to operate both as a transport master that dictates playback state and as a transport client (slave) that responds to external controls. This guide outlines how Ecasound interacts with the JACK transport mechanism and the specific parameters required to configure each role.

JACK Transport Capabilities in Ecasound

Ecasound provides bidirectional integration with JACK transport. Depending on how it is invoked, it can:

The -G Option Syntax

Transport integration in Ecasound is handled via the generic system interface parameter -G. To configure JACK transport, use the following syntax:

-G:jack,client_name,mode

Configuration Modes

1. Transport Client (Slave Mode)

To configure Ecasound to listen to an external JACK master, set the mode parameter to recv:

ecasound -G:jack,ecasound,recv -i input.wav -o jack

In this mode, Ecasound will not begin processing audio until the JACK transport receives a roll or play command from the master. If the master stops, loops, or seeks to a new position, Ecasound follows automatically.

2. Transport Master Mode

To make Ecasound control the global transport timeline for other applications, set the mode parameter to send:

ecasound -G:jack,ecasound,send -i input.wav -o jack

When started, Ecasound issues commands to the JACK server to start rolling, effectively driving any transport-aware clients connected to the session.

3. Bidirectional Mode

To enable full two-way synchronization where Ecasound can both issue commands and follow external timeline changes, set the mode to sendrecv:

ecasound -G:jack,ecasound,sendrecv -i input.wav -o jack

This mode is ideal when operating Ecasound interactively via the Ecasound Interactive Mode (EIAM) while simultaneously using a GUI controller like QjackCtl for visual timeline tracking.

Interactive Control

When running in interactive mode (-c), transport commands issued directly inside the Ecasound shell (such as start, stop, or setpos) will immediately propagate across the entire JACK environment if the mode is set to send or sendrecv. This makes Ecasound a viable headless transport controller in automated audio production environments.