manual/include/midi-on-linux.html

81 lines
2.9 KiB
HTML

<p>
It is no longer necessary to use jackd as a backend for Ardour in Linux.
In fact with the spread of LV2 plugins, almost all workflows in Ardour work
well with the ALSA backend. When using the ALSA backend for Ardour, Ardour
will see all MIDI ports that ALSA sees without any user setup. However, should jackd
need to be used, the rest of this page is valid.
</p>
<p>
The right approach for using MIDI on Linux depends on which version of JACK
is in use. The world divides into:
</p>
<table class="dl">
<tr><th>Systems using JACK 1, versions 0.124 or later</th>
<td>On these systems, JACK must be started with the <code>-X alsa_midi</code>
server argument. To support legacy control applications, the <code>-X
seq</code> argument to the ALSA backend of JACK can also be used to get the
exact same results.</td></tr>
<tr><th>All others</th>
<td>Using a2jmidid acts as a bridge between ALSA MIDI and JACK. The <code>-X seq</code>
or <code>-X raw</code> arguments should <em>not</em> be used&mdash;the timing and
performance of these options is unacceptable.</td></tr>
</table>
<h2>Using a2jmidid</h2>
<p>
<dfn>a2jmidid</dfn> is an application that bridges between the system
<abbr title="Musical Instrument Digital Interface">MIDI</abbr> ports and
<abbr title="JACK Audio Connection Kit">JACK</abbr>.
</p>
<p>
First it must be ensured that there is no ALSA sequencer support enabled in
JACK. To check that, one must open QJackCtl's <kbd class="menu">Setup</kbd> window
and set <kbd class="menu">Settings &gt; MIDI Driver</kbd> to <kbd
class="input">none</kbd>, then uncheck the <kbd class="optoff">Misc &gt;
Enable ALSA Sequencer support</kbd> option. The jack server must then be restarted
before going on.
</p>
<h3>Checking for a2jmidid availability</h3>
<p>
Next, it must be checked whether a2jmidid is already installed. This is done
by starting the JACK server, then going to the command line and typing:
</p>
<kbd class="cmd lin">a2jmidid -e</kbd>
<p>
If a2jmidid does not exist, it must be installed with the software manager of the
Linux distribution in use until this command responds.
</p>
<h2>Checking available MIDI ports</h2>
<p>
If JACK is correctly configured for MIDI, then the MIDI ports should appear
in qjackctl under <kbd class="menu">Connections &gt; MIDI</kbd>.
</p>
<h3>Making it automatic</h3>
<p>
Once it has been verified that the ports appear in JACK as expected, this can
be made to happen whenever JACK is started:
</p>
<ul>
<li>If a newer version of JACK 1 is in use, by just making sure the <code>-X
alsa_midi</code> or <code>-X seq</code> options are enabled for whatever
technique is being used to start JACK.</li>
<li>For other versions of JACK, by adding <code>a2jmidid -e &amp;</code> as an
"after start-up" script in the <kbd class="menu">Setup &gt; Options</kbd> tab
of QJackCtl, so that it is started automatically whenever JACK is
started.</li>
</ul>