QJackCtl

QJackCtl is the way that most people experience JACK for the first time, and for some people, it's the only way they experience JACK. 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

QJackCtl is a point-and-click 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.

Structured

Through the use of tabs, QJackCtl makes it very clear what devices can communicate directly with other devices. That is, there is clearly no way to connect an ALSA MIDI device to a JACK MIDI device, because they are in separate tabs.

Weaknesses [Strengths]

Segmented

Since QJackCtl uses tabs to divide the different subsystems (ALSA, JACK, and seq), it is not obvious how MIDI signals from one system reach the other. This could be confusing to people who are still learning JACK.

Cluttered

While some find Qtractor's tabbed interface liberating and clear, others find it confusing and inconvenient. The virtual cables between devices are not drag-and-drop, so connecting and disconnecting often takes several clicks.

Install

Install QJackCtl from http://slackbuilds.org.

Usage

Read the JACK section to learn more about JACK and what options are available for its configuration.

Launch Qtractor from the K Menu or from a terminal:

$ qjackctl&

QJackCtl starts in a non-active state. To start a JACK session, press the Start button.

Once started, click the Connect button to see connectable devices.

If you're like most people, you'll intuitively want to call this a “patchbay” but QJackCtl uses that term for an entirely different purpose (saved connection states) so connectable devices are viewed and manipulated in the Connect window.

There are three tabs in the Connect window: [JACK] Audio, [JACK] MIDI, and ALSA [MIDI].

QJackCtl creates entries in each tab for every port on every JACK device you have running. This means that if you are using seq as your MIDI sequencer, then MIDI ports appear in both the [JACK] MIDI and the ALSA tabs.

To connect two devices, click on one device in the left column and another in the right column. Right-click on either of the devices and select Connect (or press alt c).

The seq driver (which you should be using) invisibly bridges the [JACK] MIDI and the ALSA tabs. For instance, if you have a USB controller connected to your computer, then you should:

  • In the ALSA tab: connect the USB controller to System MIDI Thru
  • In the MIDI tab: connect the System Capture device to the device you want to control
  • In the Audio tab, so that you can hear the sound your instrument makes when you play the controller, connect the instrument you're playing to System Playback.
MIDI to MIDI, Audio to Audio.

To disconnect, right-click on either the sending or the receiving device and select Disconnect.

Audio Connections

If you are new to audio production, you might wonder how you know what should get connected to what. Ultimately, that is entirely up to you, but a common starting point is that all nodes that make sounds (soft synths, samplers, drum machines, a DAW with audio or synth plugins) should get plugged into the system playback entry. If you have two speakers on your desk, then the ports you want to plug into are probably 1 and 2. If you aren't sending your audio output to a speaker, then you won't be able to hear it.

A common variation on this is that certain audio entries get pulled from system playback and plugged first into an effects filter (reverb, EQ, delay, gate, and other things provided by Jack Rack or calf), and then the output of that effect gets plugged into system playback. If you want to avoid using stand-alone racks, use effects within your DAW or synth.

This can get a little confusing because it means plugging an instrument into an effect on one side, and then the effect on the other side to System Playback. In other words, even single devices, like an effects unit, can get split between two columns if that device has both input and output ports.

It's less complex than it looks. Yoshimi → PingPongPan → System Playback.

MIDI Connections

MIDI, of course, does not send audio signals at all, it sends digital signals which trigger [usually] audio.

To get the most out of MIDI, read all about it in the MIDI appendix.

You should have launched jackd such that it uses the seq MIDI driver; for example:

$ jackd -R -d alsa -X seq

Or you launched JACK from within QJackCtl. QJackCtl, by default, uses ~/.jackdrc, if that file exists. If not, you can create one with your preferred JACK command in it. If you haven't got a favourite JACK command then you probably have not read Slackermedia's guide to JACK, or you did but it is not working as expected. Whatever the case, you can configure how JACK launches from the Setup button in QJackCtl.

Most of the default settings are probably sensible, but make sure that the MIDI Driver field is set to seq. With seq, MIDI captured by your system is available throughout JACK.

This connection ensures that MIDI signals from your controller are echoed into your JACK system by way of the seq driver, which bridges ALSA MIDI (the subsystem receiving MIDI signals through USB) and JACK MIDI.

Use the MIDI driver seq to send MIDI through all relevant systems.

On real world hardware, it would be expensive and bulky to have a dozen MIDI Out ports, so devices are daisy-chained from MIDI Thru ports to MIDI In ports. In the virtual MIDI world, there is no such limitation, so you can run as many cables as you want from your MIDI device (your controller and/or the DAW or sequencer you are using to trigger MIDI events) to any number of virtual devices.

The source of MIDI events for your controller is bridged from the ALSA tab into the System MIDI Capture entry in the MIDI tab.

The catch is that the instruments must be told what MIDI channel they should listen to. This is not done in QJackCtl any more than you would define it with actual cables on hardware synths; you set the active MIDI channel in the instrument (synth, sampler, DAW plugin, etc) itself.

For example, if you have two instances of Yoshimi open, each receiving MIDI data from your controller or from your DAW, then both of them are probably set to MIDI channel 1. This is probably not what you want, unless you really do want the two to play in unison. Setting one to Channel 1 and the other to Channel 2, for example, will split their response to those two signals, and play separate parts (assuming you have set your DAW to broadcast Channels 1 and 2).

See the documentation for the application of your choice here on Slackermedia to learn how to set which MIDI channel is broadcast and/or responded to when received.

Read the MIDI appendix for more information on MIDI in general.

See Also
Patchage

R S Q