**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 disconnect, right-click on either the sender or the receiver and select Disconnect.

Making Meaningful Connections

Remember, Linux audio and MIDI have two sides of their respective coins: one is the standard, low-level hardware recognition (and basic control) ALSA, and the other is the high-level, real-time performant, infinitely routable JACK server. You cannot connect a device programmed for access to only ALSA to a JACK device. It looks like you should be able to, and you will probably try 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.

Audio Connections

So the question you might ask is what gets connected to what? That is, of course, entirely up to you, but a common starting point is all nodes that make sounds (a DAW with synth plugins, soft synths, samplers, drum machines) should get plugged into the system playback node. If you have two speakers on your desk, then the ports you want to plug into are probably 1 and 2.

A common variation on this is that certain audio nodes get pulled from system playback and plugged first into an effects filter (reverb, EQ, delay, gate, et cetera), and then the output of that effect gets plugged into system playback.

MIDI Output

MIDI, of course, does not send audio signals at all, so purple devices cannot connect to any other device except to 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.

To get the most out of MIDI, read all about it in the MIDI appendix, and launch jackd set to use the seq MIDI driver.

$ jackd -X seq

As explained in the MIDI appendix, a sequencer's default behaviour is to send all MIDI data over the MIDI data stream, so JACK will only spawn one MIDI port for each device because one MIDI port is all any device needs to receive any MIDI channel it is listening for. JACK-aware MIDI ports are red by default and exist in a node named for the process to which they belong. These are the MIDI ports you want to use.

It is generally safe to ignore, or even hide, the raw ALSA MIDI ports (purple by default). You will probably not use these ports, unless you have a very complex MIDI setup that requires wiring behind the scenes. Usually, that's not the case.

Unlike a hardware setup, you do not need to daisy-chain your virtual MIDI devices; multiple “cables” can be plugged into your sequencer's MIDI port, extending to multiple devices. The important concept to remember is that everything broadcasts everything, so you must set the synth (or synth track, if the synth is just a plugin to a monolithic DAW) to only listen for a specific channel.

MIDI Input

A common use-case for MIDI in computer music is to use an external hardware controller (such as a USB keyboard) as the hardware front-end to software synths. This is particularly useful for trained pianists, who want to be able to play notes into the computer and have each touch recorded so that they can use a live performance as the basis for MIDI composition. This introduces a new data type to the setup: MIDI input.

MIDI input is exactly the same as MIDI output, except the other way round. For the MIDI data to get into your JACK environment, you must connect the MIDI port from your system capture node and pipe it to devices expecting to receive MIDI data. Press some keys on your controller, and you should hear some intrument play, as long as something is listening on a MIDI channel. (Often, external controllers send an omni signal; it sends all signals on all channels.}

Through your DAW or in the software synth, you can usually associate an input channel with incoming MIDI (basically filtering the MIDI stream at the door). Play the sequence you want to record or play, and you're once again making music.

Once your sequence has been recorded into some MIDI file or MIDI region in a DAW, the controller's signal is no longer needed. You can unplug your controller and

See Also
QJackCtl