Multichannel Recording

From Audacity Wiki
Jump to: navigation, search
Multi-channel recording means recording more than two separate channels of audio at once on the same computer, synchronised to each other. Typically this does not work "out of the box" on Windows consumer systems, and always requires use of appropriate hardware and drivers, with recording software that can work with that hardware/drivers combination.
 
Related article(s):


Contents

Requirements

  • Hardware support: you need a sound card or external sound device which has enough Analogue to Digital Converters (ADC's) to do multi-channel recording. Most consumer cards only have one stereo pair of ADC's that is switched between various inputs such as Line-In and "Mic". You'll need at least a semi-professional device to find support for multi-channel recording.
  • Driver support: the drivers for the device must make it possible to record more than two channels at once. This is more problematic that it might seem because the standard sound interfaces for many operating systems were designed long before multi-channel recording was possible, and so only allow for up to two channels of recording. Also, consumer-level systems are not designed to achieve the low latencies and high throughputs needed for high quality multi-channel recordings.
  • Application support: the application you are recording into must support working with multiple channels of audio. Audacity prior to legacy 1.3.8 can potentially record up to 16 simultaneous channels of audio, while current Audacity and legacy 1.3.8 onwards supports recording however many channels the device offers (for example, 24). The number of channels desired can be selected in the Audio I/O tab of Preferences. There are two current limitations:
    • Channel selection: You can't select exactly which channels are used - Audacity will simply use the first ones it finds. You may need to increase the number of recording channels in Audacity preferences (possibly to the maximum supported by the device, even though you are only recording a subset of them), until all you want are included. This may mean having to delete silent tracks after recording. Some sound cards or devices however will display a "Multi" device. Selecting this as recording device in Audacity should let you record all the channels at once automatically.
    • Channel to track allocation: Particular channels of the sound device can't be recorded to particular tracks. After recording, multi-channel files can be exported using current Audacity, by choosing the appropriate mixdown option in Preferences (File Formats tab in 1.3.3 or Import/Export tab in 1.3.5 and later). Playback support in Audacity is currently limited to stereo (2 channels), so all multi-channel recordings will be sent to your sound device in stereo. Your device can probably be configured as to whether the front left and front right speakers are used, or if output is duplicated to the surround channels. Offers from developers to help us add support for multi-channel playback are welcomed - to get in touch please join our developers' mailing list.

Crucially, available driver and application support for multi-channel audio (and whether you can use Audacity for multi-channel recording) depends on the operating system you are using. Please check the relevant section below for your particular system.


Windows

Gale 21Nov13: Documented WASAPI - though I'm beginning to think the API discussion here should be moved to its own page.
  • Peter 7Oct13: ToDo-2? 2.0.6 looks likely to have WDM/KS reinstated (it was in 2.0.4 but buggy, thus removed for 2.0.5) - this will need to be documented.
  • Gale 21Nov13: No. WDM-KS is not on for 2.0.6

Windows Sound Interfaces

MME

The standard Windows MME (Multi Media Extensions) sound interface has been around since Windows 3.1. It supports up to two channels of recording, sample depths up to 16 bits, and sample rates up to 44100Hz. On playback, multiple applications can use the sound device at the same time, with all the audio being mixed and sample rate converted to 44100Hz in Windows before being sent to the sound card. Nice and simple for going ping and utterly hopeless for multi-channel music production.

DirectSound

It's also not very much use for writing games with, which is why after the release of Windows 95, it became necessary to offer the games manufacturers something better to persuade them off DOS. So DirectSound was born. This provided more flexible playback of audio, and later added multi-channel and surround sound playback for immersive game audio. Recording support was added later. DirectSound offers somewhat lower latencies than MME, and the possibility of multi-channel recording on some devices.

ASIO

So in the meantime, serious audio recording and playback was left out in the cold. Proprietary solutions stepped into the gap, and Steinberg created the ASIO interface for bypassing the operating system entirely, and connecting audio applications direct to the sound card. This gives very low latencies (because all the mixing and conversion involved in the MME interface is avoided), but means that only one application can use a sound card at a time (no sharing between multiple applications, no system sounds).

Audacity supports ASIO but that support is not distributed in releases for licensing reasons. Audacity can be compiled with ASIO support as long as that build is not distributed to others.

GSIF also arrived about this time, but is proprietary and completely playback-only, so doesn't affect us.

WDM-KS

Then Microsoft wanted to provide a way to do what ASIO did but that they controlled, and integrated better with existing MME drivers. So Windows Driver Model Kernel Streaming (WDM-KS) and Enhanced Windows Driver Model (EWDM) drivers were invented. These provided a unified way of writing drivers for Windows 2000 onwards, multi-channel support and more direct access into the audio hardware for applications that needed it (and thus significantly reduced latency). As with ASIO, only one application can use the sound card at a time, but multiple sound cards can be aggregated.

Cakewalk's SONAR was the first major application to use this, and it still lags behind ASIO in terms of market penetration on the application side. Drivers are more widespread, because providing any kind of WDM driver automatically provides DirectSound and MME support through Windows. But WDM drivers not specifically designated as WDM-KS or EWDM generally won't provide multi-channel recording support - as this isn't needed for DirectSound or MME, many driver writers omit it. Also drivers that nominally support WDM-KS may be badly written, causing a computer crash.

WASAPI

In 2005 the WASAPI application programming interface (API) was introduced starting with Windows Vista. WASAPI isolates audio more from the kernel so providing greater stability, allows a few further multi-channel devices to work without ASIO and provides lower latency than MME and Windows DirectSound.

On the other hand, direct hardware access under WASAPI is limited to a WaveRT driver which only a few built-in devices support (also, Audacity and many other audio programs do not support it). Latencies under WASAPI are higher than under WDM-KS, and latencies under MME and DirectSound are higher than they were on Windows XP because MME and DirectSound are both emulated over WASAPI. To compensate for this, Windows Store applications on Windows 8 can support offloading of audio processing to hardware which was dropped with Vista. This is a necessary step for modern battery-dependent devices where software audio processing on the CPU would rapidly deplete battery life.

WASAPI has two significant benefits for Audacity.

  • 24-bit recording is supported (Windows DirectSound supports 24-bit recording, but the PortAudio API Audacity uses does not support 24-bit input under DirectSound).
  • From version 2.0.4 onwards, Audacity supports recording computer playback (even where sound devices don't support this) using Windows WASAPI loopback recording. For the audio to be captured, the audio device playing the audio must be in shared mode ("Exclusive Mode" unchecked in the Windows "Sound" Control Panel).

External article about Windows API's

For more on how Windows sound drivers work, and the different API's, see this article by Claus Riethmüller. Note: after that page was written, DirectSound added recording support, as mentioned above.

Recording With Audacity

As distributed, Audacity comes with support for Windows MME and WDM drivers. MME drivers work fine for simple stereo recording and playback, and are available on all versions of Windows where Audacity will run. However, neither these nor most WDM drivers will provide multi-channel recording; if you try to send multiple inputs to Audacity with these, you will only be presented with a series of separate two-channel "recording devices" from which one can be chosen, instead of the number of input channels there actually are.

Suggested devices

Occasionally, sound card or device manufacturers provides full EWDM support in their drivers, and then multi-channel recording in Audacity should work. The following cards/devices are reported to provide multi-channel recording in "out-of-the box" Audacity:

  • Alesis Multimix 8-, 12- or 16-channel USB or Firewire mixers - supported on Windows XP (but not Windows 7 or Windows 8) for the first eight channels only. May require USB2.0 ports on the computer.
  • ESI sound cards and interfaces
  • M-Audio Delta 66 - With old drivers 5.10.00.5057v3, can record four channels at once using the "Multi" device. Later drivers 6.0.2.5.10.0.5074 reported not to allow more than two-channel recording with Audacity. A disadvantage of the older drivers is that it is not possible to adjust the input level in Audacity or the M-Audio patchbay - levels have to be adjusted externally before the sound card.
  • M-Audio Delta 1010LT - With drivers from August 2007 or earlier (5.10.00.5057), can record up to eight channels at once using the "Multi" device. Later drivers reported not to allow more than two-channel recording with Audacity.
  • RME Multiface II + PCI
  • Tascam US-1641 (requires USB2.0 ports on the computer) - Reported that only 2 channels available in Audacity with 2.xx drivers under Windows 7 but 16 channels available using older drivers under XP.

Note that as Windows drivers pass sound through the system kernel, these solutions will all have latency issues if you record overdubs (the playback of the audio you are recording against and the monitoring of the audio you are recording will be audibly desynchronised).

Unfortunately, most manufacturers of sound cards/devices for the semi-professional or studio market see Windows drivers as only for the low level consumer market. Therefore they provide only a choice of a basic stereo MME driver (or no Windows driver at all), and ASIO drivers for multi-channel, low latency work. The problem is Audacity cannot support ASIO in released builds because ASIO is a proprietary technology. However it is now possible to compile Audacity yourself with ASIO support, as long as you do not distribute that build to others. For details, see our ASIO Audio Interface page. As noted there, you may also compile Audacity with DirectSound support (and distribute those builds to others), which might let some surround sound cards record multiple channels into Audacity.


Mac OS X

Sound interface

Mac OS X is standardised on the Core Audio interface. Audacity fully supports Core Audio.

Recording With Audacity

Most hardware devices with ability to record multiple channels should work with Audacity on OS X, if they provide multiple channels under Core Audio - some only provide multiple channels using ASIO.

Suggested devices


Linux

Linux Sound Interfaces

The oldest sound driver interface in the Linux kernel is the OSS standard. This was the first serious attempt to provide a unified sound interface for *nix systems, and is also used on *BSD and some other Unix systems. It was designed in 1992 to provide an extended version of the card-specific SoundBlaster 16 interface. It made it into the Linux kernel, however in 1998 the creator handed over maintenance to the kernel maintainers, and a commercially licensed fork was produced by 4Front Technologies . This was closed-source and cost money to install, so attracted very little enthusiasm from the open-source community. The OSS drivers in the kernel source continued to be available, but few new drivers were being added, and many did not work very well.

A decision was made to start again from scratch, to address some of the limitations of the OSS interface (which although it was being developed commercially, was stuck in 1998 as far as open-source was concerned). Thus the Advanced Linux Sound Architecture  or ALSA was born. This was designed to be able to provide all the functionality of OSS, whilst also making it easier to support the increasing number of high sample rate, high bit depth, multi-channel sound cards. Latency was also a concern, with increasing demands for low-latency full-duplex operation from users. The majority of new sound development for Linux now uses ALSA rather than OSS, although code for other Unixes often still uses OSS, and for some reason developers of binary-only software for Linux always seem to use OSS. ALSA has been included in the Linux kernel since version 2.5.0, as well as independent releases from the ALSA project.

JACK

Recording With Audacity

Personal tools

Donate securely by PayPal, using your credit card or PayPal account!