Skip to content
Simple text-mode interface for handling JACK connections
C++ Shell
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


esjit is a simple console-based utility to handle jack-audio-connection-kit

- written in C++, for Linux-like systems only
- aimed for people who find
	(A) QJackQtl too heavy (heck, you don't even need X to record sound!)
	(B) JACK's own command line tools not usable enough

- lists the available ports
- displays the connections between the ports (not as nicely as QJackCtl, but
  you can only do so much in the console...)
- easy creation and destruction of connections
- the connection setup can be saved and reloaded (like with jack_snapshot)

Not featured:
- callbacks; you will have to refresh manually to see external changes
- starting/stopping jackd -- just use the command line
- any MIDI stuff

- JACK (obviously)
- C++ boost


onnir the-at-sign iki the-dot fi

g++ [-O2] -o esjit esjit.cpp -ljack

The following commands are recognized. You can enter "h" to review them
from inside the program.

- "Q": quit esjit

- "r": refresh list of connections; done automatically when the connections are
  modified by esjit itself
- "c N M", where N and M are numbers: connect ports numbered N and M (the
  numbering is displayed next to the port names)
- "d N M": disconnect ports numbered N and M
- "D": remove all connections
- "C <file>": store the connection setup to <file>.
- "R <file>": recall the connection setup from file <file>.
  This obviously only fills the connections for those ports that are present
  both in the file and in the current setup.

- "s": shows JACK server info and statistics
- "x": reset maximum delay counter (shown in the statistics)
- "i": print more detailed info on the ports (but not the connections)

For the files, either give full path, or if not, the file is created in or
looked for in the working directory. It is possible to manually edit the
file, too: it is just a textfile, e.g.:

#A comment line.
#Note that the input ports start with a tab, '\t'.

This system has the same flaw as jack_snapshot, namely that if clients do
not use the same port names always but assign them dynamically, then this
system will likely fail to restore their connections. A partial workaround
is to, if possible, tell the client to use a specific port name.

You can’t perform that action at this time.