Sync Ecasound Transport with JACK Applications

This article explains how to synchronize Ecasound's playback and recording controls with external JACK-enabled digital audio workstations (DAWs) and utilities. By leveraging JACK Transport, you can link Ecasound's timeline directly to applications like Ardour, Hydrogen, or Carla, allowing global play, pause, stop, and locate commands to control all connected software simultaneously.

Understanding JACK Transport in Ecasound

JACK provides a shared transport mechanism that keeps audio applications running at the same tempo, timecode, and playback state. Ecasound natively supports JACK Transport through its global options flag, -G.

To configure synchronization, use the following syntax in your Ecasound command:

-G:jack,[client_name],[transport_mode]

Choosing the Correct Transport Mode

Ecasound supports three primary transport modes depending on whether it should act as a controller, a follower, or a full peer:

  1. recv (Receive / Slave): Ecasound listens to transport commands from other applications. When you start or seek in an external DAW, Ecasound follows.
  2. send (Send / Master): Ecasound dictates transport states. Starting or stopping playback in Ecasound forces external JACK clients to match its state.
  3. sendrecv (Full Sync / Peer): Ecasound can both issue and receive transport commands. Modifying playback in either Ecasound or the external client updates both.

Example: Running Ecasound as a Transport Slave

If an external application like Ardour or QjackCtl is controlling the session timeline, run Ecasound with the recv mode:

ecasound -G:jack,ecasound,recv -i:some_track.wav -o:jack,system:playback_1,system:playback_2

In this setup, pressing play or seeking to a specific marker in your external DAW will immediately trigger and position playback in Ecasound.

Example: Running Ecasound as a Transport Master

If you are using Ecasound as a primary audio processor or headless recorder and want external sequencers to align with it, run:

ecasound -G:jack,ecasound,send -i:jack,system:capture_1 -o:recording.wav

Initiating processing inside Ecasound will signal connected applications to roll automatically.

Configuring Transport via Interactive Mode

If running Ecasound interactively (-c), you can inspect or set the transport behavior using the interactive mode commands: