Multitrack Recording Overview
If you're thinking of setting up a serious multitrack recording system running
on GNU/Linux there are several pitfalls for the unwary. Development has been
slow in this area so far, but with the recent involvement of big audio industry
things are improving.
Hardware Channel Counts
There are two ways to get a high enough number of hardware channels: use an
interface card with enough channels or use several cards. Use of PCI or PCIe
cards is assumed here. A single card setup should
work out of the box with most Linux distributions, assuming your card is
supported. At the time of
writing the only cards with high (as in 24+) channel count supported by Linux
are the RME cards. Their MADI cards
handle up to 64 digital in/outs at 48kHz (or 32 at 96kHz). If this still isn't
enough, the only option is to use multiple cards.
Multiple Sound Cards
If you need very high channel counts or you can only afford low channel-count
cards, you'll need more than one sound card. This is not for the faint hearted.
JACK, the audio server, can only work
with one interface (OK it can use different devices for capture and playback,
but only one for each).
It's necessary to use the ALSA
pcm_multi plugin to make multiple cards appear
as a single virtual device that JACK can deal with.
A problem with pcm_multi
is that it doesn't necessarily work with jackd with a realtime kernel (at least on x86_64; users of other architectures should check before
committing themselves). This means you might not be able to use the specialist
audio distributions of Linux without changing the kernel, since they tend to use
the realtime (-rt) kernel by default.
In order to get good low latency performance without the -rt kernel you'll
probably need to use two CPU cores.
For those who want (or have) to follow the multi-card route,
here's an example describing how to set up
two or more ICE1712-based cards like the M-Audio Delta 1010. Although some
of the information is specific to the Delta 1010 the main steps are the same
for any multi-card setup.
The most popular multitrack recording/editing program for professional use on
Ardour. At the time of writing, the
stable series is 2.8.x, although Ardour 3 has been released. There
is also a Linux version of Harrison's Ardour-based
Mixbus, which includes
Harrison's own EQ, compressor and tape emulation in addition to the standard
Ardour 2 features.
The more adventurous may be interested in
Non DAW, a modular and very lightweight
recording, mixing, sequencing and session management system.
The fact that there are few commercial plugins available for Linux
might be a problem for some users. The native Linux plugin architectures
(used by Ardour) are
Most Linux distributions include Steve Harris'
(called swh-plugins in Debian). There are other LADSPA plugins
available, but the author has found
Fons Adriaensen's stereo reverb and 4-band parametric EQ
(rev-plugins and fil-plugins respectively in Debian) particularly useful.
The aforementioned LADSPA plugins have a major advantage over most commercial
ones in their plain, functional user interface. Most controls (as provided by
host applications such as Ardour) are plain sliders with an alternative text
There are no distracting graphics of control panels, and no pictures of knobs
that have to be turned with a mouse to adjust settings. So far, however, few
of these plugins attempt to emulate the quirks and non-linearities of
"classic" analogue devices - they just do the basic job.
There is some work being done on more graphic-intensive
user interfaces using LV2, which is designed as
a potential replacement for LADSPA. LV2 has undergone a few changes,
but current versions of Ardour now use the latest version. One popular LV2
plugin is IR
(packaged as ir.lv2 in Debian), a convolution reverb.
In addition to LADSPA and LV2 there are plugin-type applications that work
as standalone JACK clients, such as Fons Adriaensen's
Those who like pretty graphics along with emulations of "classic"
hardware might want to look at some of the
commercial plugins from OverTone DSP
(was Linux DSP).