Edit pages to reflect jackd not being essential
This commit is contained in:
parent
ee498733ff
commit
e74c09802c
@ -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>
|
||||
|
@ -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>
|
||||
|
||||
|
@ -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
|
||||
|
@ -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 > 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
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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:
|
||||
|
@ -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>
|
||||
|
||||
|
@ -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>
|
||||
|
||||
|
@ -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—at 48 kHz, its period is about 20 μs. Word Clock is the most
|
||||
Word clock is usually at the frequency of the sample rate—at 48 kHz,
|
||||
its period is about 20 μ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
|
||||
|
@ -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 > 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.
|
||||
|
@ -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
|
||||
|
@ -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>
|
||||
|
Loading…
Reference in New Issue
Block a user