some updates to the section on setting up MIDI

This commit is contained in:
Paul Davis 2014-06-28 08:33:27 -04:00
parent 9ab3009544
commit cda977cf94
2 changed files with 46 additions and 26 deletions

View File

@ -21,44 +21,40 @@ title: Setting Up MIDI
<h2>MIDI Handling Frameworks</h2>
<p>
Ardour supports various ways of sending and receiving MIDI data:
MIDI input and output for Ardour are handled by the same "engine"
that handles audio input and output. Up to release 3.5, that means
that all MIDI I/O takes place via JACK. JACK itself uses the
native MIDI systems of the operating system to receive and send
data which are:
</p>
<h3>CoreMIDI</h3>
<h3>OS X : CoreMIDI</h3>
<p>
<dfn>CoreMIDI</dfn> is the standard MIDI framework on OSX systems.
It provides drivers for MIDI hardware and libraries needed by MIDI
software clients.
</p>
<h4>ALSA MIDI</h4>
<h3>Linux : ALSA MIDI</h3>
<p>
<dfn><abbr title="Advanced Linux Sound API">ALSA</abbr> MIDI</dfn>
is the standard MIDI framework on Linux systems. It provides drivers
for MIDI hardware and libraries needed by MIDI software clients.
</p>
<p>
The <dfn>QJackCtl</dfn> control software displays ALSA MIDI ports
The <dfn>QJackCtl</dfn> control software displays ALSA MIDI ports
under its "ALSA" tab (it does not currently display CoreMIDI ports).
By contrast, JACK MIDI ports show up under
the <kbd class="menu">MIDI</kbd> tab in QJackCtl.
</p>
<h4>JACK MIDI</h4>
<p>
<dfn><abbr title="JACK Audio Connection Kit">JACK</abbr> MIDI</dfn>
is a framework used to comunicate between JACK MIDI software clients.
It provides zero jitter and a fixed latency of one <dfn>period</dfn>,
the same latency as for JACK audio.
</p>
<h2>JACK MIDI Configuration</h2>
<p>
JACK MIDI ports show up under the <kbd class="menu">MIDI</kbd> tab in
QJackCtl.
</p>
<p>
There are several ways of <dfn>bridging</dfn> between the native MIDI frameworks
(e.g. CoreMIDI or ALSA) and JACK MIDI, as described in the sections
below.
By default, JACK will not automatically detect and use existing MIDI
ports on your system. You must choose one of several ways
of <dfn>bridging</dfn> between the native MIDI frameworks
(e.g. CoreMIDI or ALSA) and JACK MIDI, as described in the sections
below.
</p>
{% children %}

View File

@ -2,6 +2,22 @@
layout: default
title: MIDI on Linux
---
The right approach for using MIDI on Linux depends on which version of
JACK you use. The world divides into:
<dl>
<dt>Systems using JACK 1, versions 0.124 or later</dt>
<dd>On these systems, just start JACK with
the <code>-X alsa_midi server</code> argument. To support legacy control
applications, you can also use the -X seq argument to the ALSA
backend of JACK and get the exact same results.</dd>
<dl>All others</dl>
<dd>Use a2jmidid to act as a bridge between ALSA MIDI and JACK. Do
not use the -X seq or -X raw arguments - the timing and performance
of these options is not acceptable.
</dd>
</ul>
<h2>a2jmidid</h2>
<p>
@ -32,13 +48,21 @@ title: MIDI on Linux
Linux distribution and try again.
</p>
<h3>Check surface control MIDI ports</h3>
<h2>Check MIDI ports</h2>
<p>
After starting a2jmidid, your control surface MIDI ports should appear in
If you have correctly configured JACK for MIDI, then your MIDI ports should appear in
qjackctl under <kbd class="menu">Connections &gt; MIDI &gt; a2j</kbd>.
</p>
<h3>Making it automatic</h3>
<p>
You can now add <kbd class="input">a2jmidid -e</kbd> 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 you start JACK.
Once you've verified that the ports appear in JACK as expected, you
can make this happen whenever you start JACK. If you use a newer
version of JACK 1, just make sure the -X alsa_midi or -X seq options
are enabled. For other versions of JACK,
add <kbd class="input">a2jmidid -e</kbd> 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 you start JACK.
</p>