Multichannel Recording

From Audacity Wiki
Revision as of 12:51, 27 August 2007 by Richardash1981 (talk | contribs) (add headings for rest of page)
Jump to: navigation, search

Mutli-channel recording means recording more than two separate channels of audio at once on the same computer, syncronised to each other. This needs support at several levels in order for it to work sucessfully:

  • Hardware support - you need a sound card or external sound device which actually has enough analogue to digital converters to do multi-channel recording. Most consumer cards only have one stereo pair of analogue to digital converters that is switched between Line In, Aux In, Mic etc. You need at least a semi-professional device which actually supports recording multiple channels at once.
  • Driver support - the drivers for the device must make it possible to record from more than two channels at once. This is more problematic that it might seem because the standard sound interfaces for many OSes were designed long before multi-channel recording was possible, and so only allow for up to two channels of recording. Also, consumer operating 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 in needs to support working with multiple channels of audio. Audacity supports recording up to 16 simultaneous channels of audio, but only plays back two channels (stereo). Multiple channel files can be exported from audacity 1.3.0 onwards. Offers to help add support for multi-channel playback would be welcome.

The status of driver and application support depends on the operating system you are using, as described in the sections below.


Windows Sound Interfaces

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.

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. However it didn't have any recording support to start with, and still is rarely used for recording audio.

This all left serious audio recording and playback rather out in the cold, so 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)).

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

Finally, Microsoft wanted to provide a way to do what ASIO did but that they controlled, and integrated better with existing MME drivers. So WDM KS or EWDM drivers were invented. Windows Driver Model Kernel Streaming or Enhanced Windows Driver Model provided a unified way of writing drivers for Windows 2000 onwards, as well as more direct access into the audio hardware for applications that needed it. 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 a WDM driver automatically provides DirectSound and MME support through Windows. Not all WDM drivers will provide multi-channel recording support however - this isn't needed for DirectSound or MME, so many driver writers ommit it.

For more on how windows sound drivers work, try this page:

Recording With Audacity

Out of the box audacity comes with support for windows MME drivers. These work fine for simple stereo recording and playback, and are available on all versions of Windows where audacity will run. However, as they aren't going to provide multi-channel recording, we need something more. If you're lucky, you sound card manufacturer provides full EWDM support, and audacity will just work - select up to 16 channels of recording (depends on your hardware) and away you go. ESI is one manufacturer who is reported to make this work.

Unfortunately most manufacturers of studio-market cards see Windows drivers as for consumer stuff, and assume all their users will use ASIO. So they provide either a basic stereo MME driver or no windows driver at all, and ASIO to get to the multi-channel functions. The problem is that ASIO is proprietary, so audacity doesn't support it in the released builds. More information on the problems with ASIO is on the ASIO Audio Interface page.

Mac OS X

OS X sound interfaces

CoreAudio ASIO

Recording With Audacity


Linux Sound Interfaces


Recording With Audacity