ASIO Audio Interface

From Audacity Wiki
Revision as of 10:27, 17 January 2011 by Vaughan (talk | contribs) (Audacity and ASIO: grammar: subjunctive mood, not past tense)
Jump to: navigation, search
The proprietary ASIO interface standard is essential on Windows (and to a lesser extent on Mac) for low latency recording and playback. It is usually the best way of making multi-channel recordings on those platforms.
Licensing restrictions prevent us including ASIO support in released versions of Audacity, but Audacity Beta can be compiled with ASIO support for private, non-distributable use. This page summarises ASIO licensing issues and steps to compile Audacity with ASIO support.
Related article(s):

Quick Description

ASIO is a proprietary audio interface standard in use on Windows and Mac which bypasses the operating system's mixing kernel, so providing low latency direct communication between computer audio software and hardware, and allowing multiple audio inputs and outputs to be accessed independently.

On Linux, JACK is an API that provides both low latency audio communication and audio routing between applications. Latest versions of Audacity Beta support JACK fairly well, but with some limitations.

Audacity and ASIO

The ASIO technology was developed by German company Steinberg and is protected by a licensing agreement which prevents redistribution of its source code.

Audacity, as an open source program licensed under the GPL, is therefore currently unable to support ASIO, despite being ASIO-capable (providing the user's sound device is similarly capable). If ASIO support were distributed in Audacity builds this would either violate Steinberg's licence agreement if the code were included, or conversely would violate Audacity's GPL Licence if the code were withheld. There are persistent rumours of Steinberg opening up licensing, but without any apparent movement. Anyone who cares about this issue is invited to make their views known to Steinberg via their Contact page.

Non-distributable ASIO support in Audacity 1.3.3 and later

With the 1.3.3 release of Audacity, support for ASIO under Windows is now included for individuals who are prepared to compile Audacity from source code with the optional Steinberg ASIO SDK. This support is provided strictly on the basis that it is NON-DISTRIBUTABLE i.e. you may NOT copy or distribute builds including ASIO support to any third parties. The build is strictly for your own personal (private or commercial) use. For the same reasons, Audacity can NOT distribute pre-compiled versions of Audacity including ASIO support, so please don't ask!

To compile Audacity from the Beta source code including ASIO support:

  1. Download the Audacity Beta source code from either the release tarball or latest SVN development code (SVN sources are much more likely to build trouble free on Windows)
  2. Download and install the ASIO SDK (a Steinberg account is required)
  3. Follow the Windows instructions in win/compile.txt in our source code or online to download and build wxWidgets, define the ASIOSDK_DIR environment variable to point to the ASIO SDK, then build Audacity. For Mac, the best instructions are online at Developing On Mac.

Audacity Releases for Windows from 1.3.7 onwards include support for Microsoft's DirectSound interface protocol. This will give support for multi-channel recording on some sound devices, but not the very low latencies that are possible on ASIO. Anyone can distribute Audacity with DirectSound support since no proprietary code is included (the library is merely loaded at runtime).