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]client_name: Sets the name under which Ecasound registers in the JACK graph (defaults toecasound).transport_mode: Specifies how Ecasound interacts with the transport timeline.
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:
recv(Receive / Slave): Ecasound listens to transport commands from other applications. When you start or seek in an external DAW, Ecasound follows.send(Send / Master): Ecasound dictates transport states. Starting or stopping playback in Ecasound forces external JACK clients to match its state.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_2In 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.wavInitiating 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:
- View current status:
engine-status - Enable JACK transport explicitly: Add
-G:jack,ecasound,sendrecvupon launch, then use interactive commands such asstart,stop, andset-positionto control the entire JACK session across all connected clients.