3 The right approach for using MIDI on Linux depends on which version of JACK
4 is in use. The world divides into:
8 <tr><th>Systems using JACK 1, versions 0.124 or later</th>
9 <td>On these systems, simply start JACK with the <code>-X alsa_midi</code>
10 server argument. To support legacy control applications, the <code>-X
11 seq</code> argument to the ALSA backend of JACK can also be used to get the
12 exact same results.</td></tr>
13 <tr><th>All others</th>
14 <td>Use a2jmidid to act as a bridge between ALSA MIDI and JACK. Do not use
15 the <code>-X seq</code> or <code>-X raw</code> arguments—the timing and
16 performance of these options is unacceptable.</td></tr>
19 <h2>Using a2jmidid</h2>
22 <dfn>a2jmidid</dfn> is an application that bridges between the system
23 <abbr title="Musical Instrument Digital Interface">MIDI</abbr> ports and
24 <abbr title="JACK Audio Connection Kit">JACK</abbr>.
28 First it must be ensured that there is no ALSA sequencer support enabled in
29 JACK. To check that, open QJackCtl's <kbd class="menu">Setup</kbd> window.
30 Set <kbd class="menu">Settings > MIDI Driver</kbd> to <kbd
31 class="input">none</kbd>. Then uncheck the <kbd class="optoff">Misc >
32 Enable ALSA Sequencer support</kbd> option. Now restart the jack server
36 <h3>Check for a2jmidid availability</h3>
39 Next, check whether a2jmidid is already installed. After starting the JACK
40 server, go to the command line and type:
43 <kbd class="cmd lin">a2jmidid -e</kbd>
46 If a2jmidid does not exist, install it with the software manager of the
47 Linux distribution in use and try again.
50 <h2>Check available MIDI ports</h2>
53 If JACK is correctly configured for MIDI, then the MIDI ports should appear
54 in qjackctl under <kbd class="menu">Connections > MIDI</kbd>.
57 <h3>Making it automatic</h3>
60 Once it has been verified that the ports appear in JACK as expected, this can
61 be made to happen whenever JACK is started:
65 <li>If a newer version of JACK 1 is in use, just make sure the <code>-X
66 alsa_midi</code> or <code>-X seq</code> options are enabled for whatever
67 technique is being used to start JACK.</li>
68 <li>For other versions of JACK, add <code>a2jmidid -e &</code> as an
69 "after start-up" script in the <kbd class="menu">Setup > Options</kbd> tab
70 of QJackCtl, so that it is started automatically whenever JACK is