]> Shamusworld >> Repos - ardour-manual/blob - include/midi-on-linux.html
Updates to Editing Clocks to reflect new display modes
[ardour-manual] / include / midi-on-linux.html
1
2 <p>
3   It is no longer nessessary to use jackd as a backend for Ardour in Linux.
4   In fact with the spread of LV2 plugins, almost all workflows in Ardour work
5   well with the ALSA backend. When using the ALSA backend for Ardour, Ardour
6   will see all MIDI ports that ALSA sees without any user setup. However, should jackd
7   need to be used, the rest of this page is valid.
8 </p>
9
10 <p>
11   The right approach for using MIDI on Linux depends on which version of JACK
12   is in use. The world divides into:
13 </p>
14
15 <table class="dl">
16   <tr><th>Systems using JACK 1, versions 0.124 or later</th>
17   <td>On these systems, JACK must be started with the <code>-X alsa_midi</code>
18   server argument. To support legacy control applications, the <code>-X
19   seq</code> argument to the ALSA backend of JACK can also be used to get the
20   exact same results.</td></tr>
21   <tr><th>All others</th>
22   <td>Using a2jmidid acts as a bridge between ALSA MIDI and JACK. The <code>-X seq</code>
23   or <code>-X raw</code> arguments should <em>not</em> be used&mdash;the timing and
24   performance of these options is unacceptable.</td></tr>
25 </table>
26
27 <h2>Using a2jmidid</h2>
28
29 <p>
30   <dfn>a2jmidid</dfn> is an application that bridges between the system
31   <abbr title="Musical Instrument Digital Interface">MIDI</abbr> ports and
32   <abbr title="JACK Audio Connection Kit">JACK</abbr>.
33 </p>
34
35 <p>
36   First it must be ensured that there is no ALSA sequencer support enabled in
37   JACK. To check that, one must open QJackCtl's <kbd class="menu">Setup</kbd> window
38   and set <kbd class="menu">Settings &gt; MIDI Driver</kbd> to <kbd
39   class="input">none</kbd>, then uncheck the <kbd class="optoff">Misc &gt;
40   Enable ALSA Sequencer support</kbd> option. The jack server must then be restarted
41   before going on.
42 </p>
43
44 <h3>Checking for a2jmidid availability</h3>
45
46 <p>
47   Next, it must be checked whether a2jmidid is already installed. This is done
48   by starting the JACK server, then going to the command line and typing:
49 </p>
50
51 <kbd class="cmd lin">a2jmidid -e</kbd>
52
53 <p>
54   If a2jmidid does not exist, it must be installed with the software manager of the
55   Linux distribution in use until this command responds.
56 </p>
57
58 <h2>Checking available MIDI ports</h2>
59
60 <p>
61   If JACK is correctly configured for MIDI, then the MIDI ports should appear
62   in qjackctl under <kbd class="menu">Connections &gt; MIDI</kbd>.
63 </p>
64
65 <h3>Making it automatic</h3>
66
67 <p>
68   Once it has been verified that the ports appear in JACK as expected, this can
69   be made to happen whenever JACK is started:
70 </p>
71
72 <ul>
73   <li>If a newer version of JACK 1 is in use, by just making sure the <code>-X
74   alsa_midi</code> or <code>-X seq</code> options are enabled for whatever
75   technique is being used to start JACK.</li>
76   <li>For other versions of JACK, by adding <code>a2jmidid -e &amp;</code> as an
77   "after start-up" script in the <kbd class="menu">Setup &gt; Options</kbd> tab
78   of QJackCtl, so that it is started automatically whenever JACK is
79   started.</li>
80 </ul>