**This is an old revision of the document!**

Patchage

Patchage is a patch bay for sound devices. Broadly speaking, either Patchage or QJackCtl are essential if you are using JACK; they are [two popular, but not the only] front-ends of the jackd process.

Strengths [Weaknesses]

Intuitive

Patchage is a click-and-drag interface that mimics the intuitive act of plugging one device's output cable into another device's input port. It doesn't take an experienced sound engineer to understand that to hear a synth sound, you have to plug the synth into the speaker.

Flexible

The Patchage interface combines all sound devices into one unified panel, and gives you plenty of space to arrange everything exactly as you please. Compared to more structured interfaces (like QJackCtl), this is a very flexible and malleable environment where everything is out where you can see it.

Weaknesses [Strengths]

Misleading

Since Patchage combines everything into one panel, it can be frustrating to find that a [red] ALSA device cannot be plugged into a [green] JACK device, and no [purple] MIDI device can be plugged into ALSA or JACK. There is no visual representation of how these disparate audio subsystems connect.

Connecting devices is as simple as a drag-and-drop, but disconnecting them requires a right-click and a contextual menu.

Cluttered

While some find Patchage's unified interface liberating and clear, others find it cluttered, messy, and confusing.

Install

Usage

Launch Patchage from the K Menu or from a terminal:

$ patchage&

Patchage starts in a disconnected state. To connect to a running JACK session, use the System menu → Connect to JACK.

Patchage's environment is determined by the running audio systems on your computer. If you have JACK running, then when you connect to it, Patchage will create nodes for each JACK port that you have configured. This means that if you are using SEQ as your MIDI sequencer (which you should probably be doing, unless you have a setup that requires something more complex), then JACK ports appear with both MIDI and JACK Audio ports available to you as routable objects. Everything is colour coded: JACK ports are green, ALSA ports are red, and MIDI ports are purple. If you are colour-blind, you can re-assign colours by clicking on the boxes next to their labels in the top menu bar.

To connect two devices, just click and drag from one to another. As you drag, a “cable” follows your mouse to the destination port. As long as you drag to a valid port, the cable “plugs in” to the device and the objects are routed.

To dis-connect, right-click on either the sender or the receiver and select Disconnect.

Making Meaningful Connections

Linux audio has two faces: one is the standard, low-level hardware recognition (and basic control) ASLA, and the other is the high-level, real-time performance, infinitely routable JACK server. You cannot connect an ALSA device to a JACK device. It looks like you should be able to, but if an application is not programmed to recognise or use JACK as a framework, then no amount of dragging a virtual cable onto a virtual device node is going to make sound being sent to ALSA emerge from JACK. It just cannot happen; computers don't bend that way.

Additionally, MIDI of course does not send audio signals at all, so purple devices cannot connect to any other device except other purple devices. This seems useless, but it is meaningful since MIDI hardware can be wired together in many different ways to either deliver MIDI data or pass MIDI data through to another device, so connecting MIDI devices independently of the singular MIDI input (virtual or otherwise) that your computer has access to is not uncommon.

The MIDI signal you care about is embedded in each device; the system itself has at least one MIDI output port, and this can be routed to one or more of the devices as long as that device accepts MIDI. Not all devices do accept MIDI (for example, an effect unit may or may not have any use for MIDI), but most do.

Programme within the receiving application what MIDI channel in that MIDI stream it is listening for.

See Also
QJackCtl