Edit pages to reflect jackd not being essential

This commit is contained in:
Len Ovens 2019-08-03 23:36:55 -07:00
parent ee498733ff
commit e74c09802c
13 changed files with 69 additions and 98 deletions

View File

@ -17,8 +17,9 @@
wedge mixes), or returned to the main mix (in the case of an effect).
</p>
<p>
Aux sends are not JACK ports, <a href="@@external-sends">
External Sends</a> should be used to send audio to Jack ports. External Sends can
Aux sends do not show up outside of Ardour either on the audio device
or as JACK ports, <a href="@@external-sends">External Sends</a> should
be used to send audio to the audio device or Jack ports. External Sends can
send the tapped signal somewhere else directly, which is not usually
possible on hardware mixers.
</p>

View File

@ -14,8 +14,9 @@
<h2>MIDI Handling Frameworks</h2>
<p>
MIDI input and output for Ardour are handled by the same "engine" that
handles audio input and output.
MIDI input and output for Ardour are handled internally by the same "engine" that
handles audio input and output. However, Ardour can use as many MIDI devices
as the system can see as there are no syncing difficulties as there would be with audio.
</p>
<table class="dl">
@ -33,12 +34,17 @@
On Linux systems, <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.
tab in QJackCtl. However, when Ardour is using jackd for audio in and out
the alsa MIDI ports are not accessable. When Ardour is using ALSA for audio
in and out then only alsa MIDI ports are accessable.
</p>
<h2>JACK MIDI Configuration</h2>
<p>
By default, JACK will <strong>not</strong> automatically detect and use existing MIDI ports. One of several ways of <dfn>bridging</dfn> between the native MIDI frameworks (e.g. CoreMIDI or ALSA) and JACK MIDI must be chosen, as described in the following sections.
By default, JACK will <strong>not</strong> automatically detect and use
existing MIDI ports. One of several ways of <dfn>bridging</dfn> between
the native MIDI frameworks (e.g. CoreMIDI or ALSA) and JACK MIDI must be
chosen, as described in the following sections.
</p>

View File

@ -25,14 +25,15 @@
Region(s), though, can be copy-pasted just as with audio.
</li>
<li>
All MIDI I/O is done via JACK for sample accurate timing and maximal
efficiency when communicating with external software synthesizers.
When using jackd as the audio server for Ardour, all MIDI I/O is done
via JACK for sample accurate timing and maximal efficiency when communicating
with external software synthesizers. Otherwise, Ardour connects to midi
via the existing OS MIDI system.
</li>
<li>
Every MIDI track has its own JACK MIDI port for input; it may have an
Every MIDI track has its own MIDI port for input; it may have an
arbitrary combination of audio and MIDI outputs, depending on the signal
processing in the track; the full flexibility of JACK connectivity is
present for MIDI just as it is for audio.
processing in the track.
</li>
<li>
Full automation for MIDI tracks, integrated with the handling of all MIDI

View File

@ -6,7 +6,9 @@ controlling Ardour. There may be very legitimate reasons for different
users to prefer quite different mappings.
</p>
<p>
On every platform that Ardour runs on, there are excellent
<kbd class="menu">Window &gt; MIDI Connections</kbd> opens the
MIDI Connection Manager to help routing MIDI in and out.
Along with that, on every platform that Ardour runs on, there are excellent
free-of-charge tools for making connections between MIDI hardware and
"virtual" MIDI ports like the ones that Ardour creates and
uses. Rather than waste precious developer time replicating these

View File

@ -4,10 +4,15 @@
inside a channel strip. Unlike Auxes, they will interrupt the signal flow,
feeding the signal from before the insert point to its <dfn>Insert
send(s)</dfn>, and connecting the remainder of the channel strip to the
<dfn>Insert return(s)</dfn>, both of which are JACK ports which are
visible to other JACK applications.<br>
Inserts are the JACK equivalents of normalized switching jacks on an
analog console.
<dfn>Insert return(s)</dfn>, both of which are either audio device or JACK ports.
While jack ports are visible to other JACK applications, ALAS ports are only
useful for patching in audio equipment external to the computer. If inserting
a software processor is required, a plugin would be the first choice. If a plugin
is not available then the jackd audio backend would have to be used. This is
not very common any more but there are some older jack clients that require
using jack.<br>
Inserts work the same as the inserts on analog consoles except they are not
normalled like most jacks on an analog console.
</p>
<p>
An insert allows to either use a special external DSP JACK
@ -25,6 +30,6 @@
connections to the insert ports are made!
</p>
<p class="note">
Inserts will incur an additional JACK period of latency, which can be
Inserts will incur an additional period of latency, which can be
measured and compensated for during mixing, but not during tracking!
</p>

View File

@ -45,6 +45,11 @@
</p>
<h2>The Latency chain</h2>
<p class="note">
Note! the rest of this document assumes the use of jackd for the audio
backend. While many of the concepts are true, the specifics may be different.
</p>
<figure>
<img src="/images/latency-chain.png" alt="Latency chain">
<figcaption>
@ -66,7 +71,7 @@
processed and played back.
</p>
<p class="note">
It is important to note that processing latency in a jackd is a matter of
It is important to note that processing latency in Ardour is a matter of
choice. It can be lowered within the limits imposed by the hardware (audio
device, CPU and bus speed) and audio driver. Lower latencies increase the
load on the system because it needs to process the audio in smaller chunks
@ -156,7 +161,7 @@
The second approach is prone to various implementation
issues regarding timecode and transport synchronization. Ardour uses read-ahead
to compensate for latency. The time displayed in the Ardour clock corresponds
to the audio signal that is heared on the speakers (and is not where Ardour
to the audio signal that is heard on the speakers (and is not where Ardour
reads files from disk).
</p>
<p>

View File

@ -1,4 +1,12 @@
<p>
It is no longer nessessary 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:

View File

@ -17,7 +17,7 @@
latency. On the other hand it requires external hardware, and the monitoring
settings are less flexible and not saved with the session.</p>
<h3 class="clear">JACK-Based Hardware Monitoring</h3>
<h3 class="clear">Audio driver Hardware Monitoring</h3>
<figure class="right">
<img src="/images/jack-monitoring.png" alt="Hardware Monitoring">
@ -29,7 +29,7 @@
<p>Some sound cards have the ability
to mix signals from their inputs to their outputs with very low or even zero
latency, a feature called <dfn>hardware monitoring</dfn>.
Furthermore, on some cards this function can be controlled by JACK. This is a nice arrangement,
Furthermore, on some cards this function can be controlled by Ardour. This is a nice arrangement,
if the sound card supports it, as it combines the convenience of having the
monitoring controlled by Ardour with the low latency operation of doing it
externally.
@ -49,6 +49,6 @@
outputs, governed by various controls. This approach will almost always have
more routing flexibility than JACK-based monitoring. The disadvantage is
that there will be some latency between the input and the output, which
depends for the most part on the JACK buffer size that is being used.
depends for the most part on the buffer size that is being used.
</p>

View File

@ -161,7 +161,9 @@
<tr><th>MIDI System</th>
<td>
Selects the MIDI driver to use. On Mac OS X, this will be <kbd
class="menu">CoreMIDI</kbd>. On Linux, it can be changed between two legacy
class="menu">CoreMIDI</kbd>. On Linux, this will follow the audio backend.
If the Audio backend is ALSA, midi will be alsa also. If the backend is
JACK, it can be changed between two legacy
ALSA drivers or the (preferred) new JACK+ALSA implementation.</td></tr>
</table>

View File

@ -11,7 +11,8 @@
<a href="https://en.wikipedia.org/wiki/Word_clock" title="https://en.wikipedia.org/wiki/Word_clock">Word Clock</a>.
It does not carry any absolute reference to a point in time: A clock is
used to keep a system's sample rate regular and accurate.
Word clock is usually at the frequency of the sample rate&mdash;at 48&nbsp;kHz, its period is about 20&nbsp;μs. Word Clock is the most
Word clock is usually at the frequency of the sample rate&mdash;at 48&nbsp;kHz,
its period is about 20&nbsp;μs. Word Clock is the most
common sample rate based clock but other clocks do exist such as Black and
Burst, Tri-Level and DARS. Sample rates can be derived from these clocks as well.
</p>
@ -34,11 +35,12 @@
</p>
<p>
JACK provides clock synchronization and is not concerned with time code
JACK (Ardour does this internally if using the ALSA backend) provides
clock synchronization and is not concerned with time code
(this is not entirely true, more on jack-transport later).
On the software side, jackd provides sample-accurate synchronization
between all JACK applications.
On the hardware side, JACK uses the clock of the audio-interface.
On the hardware side, JACK and Ardour use the clock of the audio-interface.
Synchronization of multiple interfaces requires hardware support to sync
the clocks.
If two interfaces run at different clocks the only way to align the

View File

@ -41,7 +41,8 @@
timecode.</td></tr>
<tr><th>Other</th>
<td>
If there are other JACK clients running, their ports will be found
If the Jack backend is being used and if there are other JACK clients
running, their ports will be found
here. If there are no such ports, the tab will not exist (on one or
both axes of the grid).</td></tr>
</table>
@ -70,7 +71,7 @@
<h2>Variants on the Patchbay</h2>
<p>
Slightly different versions of the patchbay are available from different
places in Ardour. A global view of all JACK audio connections is available, in
places in Ardour. A global view of all audio connections is available, in
<kbd class="menu">Window &gt Audio Connections</kbd>, or by pressing
<kbd class="mod2">P</kbd>. A corresponding MIDI Connection Manager can
be opened using <kbd class="mod23">P</kbd>.</p>
@ -103,7 +104,8 @@
<td>Disconnects everything from the given port.</td></tr>
<tr><th><kbd class="menu">Rescan</kbd></th>
<td>
Ardour will try to keep abreast of any changes to the JACK ports on
If Ardour is using the JACK backend, Ardour will try to keep abreast
of any changes to the JACK ports on
the system, and reflect them in any connection managers which are open.
If for some reason this fails, this can be used to re-scan the list of ports and
update the manager.

View File

@ -530,7 +530,7 @@
<ul>
<li>
<dfn>Initial program change:</dfn> Ardour will send a MIDI program
change message on the <code>ardour:MMC out</code> JACK port when a session
change message on the <code>ardour:MMC out</code> MIDI port when a session
is loaded and whenever this field is changed. A value of -1 means don't
send any program change message.
</li>
@ -839,7 +839,7 @@
<li>
<dfn>Enable Mclk generator</dfn> when enabled Ardour will generate a
(tempo dependant) beat clock at a rate of 24 pulses per quarter note on
the <code>ardour:MIDI clock out</code> JACK port.
the <code>ardour:MIDI clock out</code> port.
</li>
</ul>
</li>
@ -849,7 +849,7 @@
<ul>
<li>
<dfn>Enable MTC Generator</dfn> when enabled Ardour will generate MIDI
time code on the <code>ardour:MTC out</code> JACK port.
time code on the <code>ardour:MTC out</code> MIDI port.
</li>
<li>
<dfn>Percentage either side of normal transport speed to transmit MTC:</dfn>
@ -866,17 +866,17 @@
<li>
<dfn>Respond to MMC commands</dfn> when enabled Ardour will respond
to MIDI Machine Control commands received on the <code>ardour:MMC in</code>
JACK port.
MIDI port.
</li>
<li>
<dfn>Send MMC commands</dfn> when enabled Ardour will send MIDI Machine
Control commands on the <code>ardour:MMC out</code>
JACK port.
MIDI port.
</li>
<li>
<dfn>Inbound MMC device ID:</dfn> is the only device ID Ardour will
respond to when an MMC command is received on the <code>ardour:MMC in</code>
JACK port.
MIDI port.
</li>
<li>
<dfn>Outbound MMC device ID:</dfn> is the MIDI device ID Ardour will

View File

@ -46,69 +46,6 @@
<li>Follow the prompts.</li>
</ol>
<h2>Problems with the interaction between PulseAudio and JACK</h2>
<h3>Background Info</h3>
<p>
Like many distributions, Ubuntu has decided to use <dfn>PulseAudio</dfn> as
the default audio system. PulseAudio is a rich and capable system that
provides excellent services for typical users of Linux on the desktop.
However, it is not capable of the type of performance that tools like Ardour
require and in particular does not offer the possibility of sending audio
between applications that can make the Linux audio environment a very
interesting one.
</p>
<p>
This would not be a problem if it were not for the fact that JACK will not
run correctly (if at all) if it needs to use the same soundcard/audio
interface that PulseAudio is using. And since, PulseAudio on Ubuntu is
configured by default to always use the (typically single) audio interface on
the computer, this is a bit of a problem.
</p>
<p>
The developers of JACK and PulseAudio got together in 2009 and agreed upon a
mechanism by which PulseAudio and JACK could cooperate in their use of a
single soundcard. Whether or not PulseAudio is running by default, when JACK
starts up it sends out a request to use the soundcard. If PulseAudio is
running, it will give up its use of the soundcard to allow JACK to take over
(and can optionally be told to route its own audio through JACK). When JACK
finishes, it sends out another message, and PulseAudio can once again use the
soundcard directly.
</p>
<h3>What is the problem?</h3>
<p>
The specific issues known at this time for all flavors of Ubuntu 12.04 and
12.10 are:
</p>
<ul>
<li>a bug in PulseAudio that causes it not to give up the soundcard when JACK
asks (<a
href="https://bugs.launchpad.net/ubuntu/+source/pulseaudio/+bug/1163638">LP:
#1163638</a>, fixed in Ubuntu 13.04).</li>
</ul>
<h3>Symptoms</h3>
<p>
A message like <samp>Cannot start JACK</samp> in the output from JACK as it
starts up (though see the next section for other causes of this). This output
may be hidden in the Messages window of QJackCtl (aka JACK Control), so one
should check there.
</p>
<h3>How to fix</h3>
<p>
These bugs do not affect releases from 13.04, and earlier releases (12.04 and
12.10) are in the process of being fixed.
</p>
<h2>Problems with JACK configuration</h2>
<h3>What is the problem?</h3>