Difference between revisions of "ASIO Audio Interface"

From Audacity Wiki
Jump to: navigation, search
(text tweak)
(Provide better overview of compiling, and link to Developing On Windows.)
Line 1: Line 1:
 
{{Introrel|The proprietary [http://en.wikipedia.org/wiki/Audio_Stream_Input/Output ASIO] interface standard is essential on Windows (and to a lesser extent on Mac) for low [http://en.wikipedia.org/wiki/Latency_(audio) latency] recording and playback. It is usually the best way of making [[Multichannel Recording|multi-channel recordings]] on those platforms.|Licensing restrictions prevent us including ASIO support in released versions of Audacity, but Audacity 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.|All our [[Recording Tips]]
 
{{Introrel|The proprietary [http://en.wikipedia.org/wiki/Audio_Stream_Input/Output ASIO] interface standard is essential on Windows (and to a lesser extent on Mac) for low [http://en.wikipedia.org/wiki/Latency_(audio) latency] recording and playback. It is usually the best way of making [[Multichannel Recording|multi-channel recordings]] on those platforms.|Licensing restrictions prevent us including ASIO support in released versions of Audacity, but Audacity 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.|All our [[Recording Tips]]
 
*Other [[:Category:Digital Audio Technology|Digital Audio Technology]]}}
 
*Other [[:Category:Digital Audio Technology|Digital Audio Technology]]}}
 
  
 
__TOC__
 
__TOC__
 
  
 
==Quick Description==
 
==Quick Description==
Line 10: Line 8:
 
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.   
 
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, [http://jackaudio.org/ JACK] is an API that provides both low latency audio communication and audio routing between applications. Latest versions of Audacity support JACK fairly well, but with some [http://wiki.audacityteam.org/wiki/Linux_Issues#JACK limitations].  
+
On Linux, [http://jackaudio.org/ JACK] is an API that provides both low latency audio communication and audio routing between applications. Latest versions of Audacity support JACK fairly well, but with some [http://wiki.audacityteam.org/wiki/Linux_Issues#JACK limitations]. On Mac OS X you can similarly use [http://www.jackosx.com/ Jack OS X].  
 
+
{{Hint|Audacity releases from legacy 1.3.7 onwards include support for Microsoft's Windows [http://en.wikipedia.org/wiki/DirectSound DirectSound] interface protocol. To use it, select "Windows DirectSound" as host in Device Toolbar. 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).}}
 
 
 
==Audacity and ASIO==
 
==Audacity and ASIO==
  
Line 18: Line 15:
  
 
Audacity, as an open source program licensed under the [http://www.gnu.org/licenses/licenses.html#GPL 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 [http://www.steinberg.net/en/support/support_contact.html Contact page].
 
Audacity, as an open source program licensed under the [http://www.gnu.org/licenses/licenses.html#GPL 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 [http://www.steinberg.net/en/support/support_contact.html Contact page].
 
  
 
==Non-distributable ASIO support in Audacity==   
 
==Non-distributable ASIO support in Audacity==   
  
With the current 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 ''(available from legacy versions 1.3.3 onwards)''. This support is provided strictly on the basis that it is '''NON-DISTRIBUTABLE''', that is, 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 builds of Audacity including ASIO support, so please don't ask! 
+
Since legacy version 1.3.3, Audacity has provided ASIO support on Windows for individuals who are prepared to compile Audacity from source code using the optional Steinberg ASIO SDK.  
 
 
To compile Audacity from our source code including ASIO support:
 
  
# Download the Audacity [http://audacity.sourceforge.net/download/source source code] from either the release tarball or latest SVN development code (SVN sources are much more likely to build out-of-the box on Windows)
+
ASIO support is provided strictly on the basis that it is '''NON-DISTRIBUTABLE''', that is, you may '''NOT''' copy or distribute builds including ASIO support to anyone else. The build is strictly for your own personal (private or commercial) use. For the same reasons, Audacity can '''NOT''' distribute builds of Audacity including ASIO support, so please don't ask! 
# Download and install the ASIO SDK (a [http://www.steinberg.net/en/company/developer.html Steinberg account] is required)
 
# Follow the instructions in win/compile.txt in our source code or [http://audacity.googlecode.com/svn/audacity-src/trunk/win/compile.txt online] to download and build [http://www.wxwidgets.org/ wxWidgets], define the ASIOSDK_DIR environment variable to point to the ASIO SDK, then build Audacity.
 
  
If you need help, please ask on the [http://forum.audacityteam.org/viewforum.php?f=19 Compiling Audacity] board on the Audacity [http://forum.audacityteam.org/ Forum].  
+
The following is an overview of compiling Audacity from source code including ASIO support.
  
{{Hint|Audacity releases from legacy 1.3.7 onwards include support for Microsoft's Windows [http://en.wikipedia.org/wiki/DirectSound DirectSound] interface protocol. To use it, select "Windows DirectSound" as host in Device Toolbar. 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).}}
+
# Install the free Microsoft Visual Studio Express compiling program and an appropriate Microsoft Software Development Kit (SDK).
 +
# Download and install the ASIO SDK from Steinberg.
 +
# Set the ASIOSDK_DIR [http://en.wikipedia.org/wiki/Environment_variable environment variable] to the directory where you installed the ASIO SDK.
 +
# Download wxWidgets (Audacity's GUI toolkit that provides its interface) then build wxWidgets using Visual Studio.
 +
# Set the WXWIN environment variable to the directory where you installed Widgets and restart the computer.
 +
# Download and install the Tortoise SVN program and use it to checkout the latest Audacity source code.  
 +
# Build Audacity using Visual Studio.  
  
 +
'''Follow the instructions and download links on [[Developing On Windows]] for full details.'''
 +
{{hint|1=
 +
If you need help, please ask on the [http://forum.audacityteam.org/viewforum.php?f=19 Compiling Audacity] board on the Audacity [http://forum.audacityteam.org/ Forum].
 +
}}
 
[[Category:Digital Audio Technology]][[Category:Tips]]
 
[[Category:Digital Audio Technology]][[Category:Tips]]

Revision as of 13:13, 25 January 2014

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 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 support JACK fairly well, but with some limitations. On Mac OS X you can similarly use Jack OS X.

Audacity releases from legacy 1.3.7 onwards include support for Microsoft's Windows DirectSound interface protocol. To use it, select "Windows DirectSound" as host in Device Toolbar. 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).

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

Since legacy version 1.3.3, Audacity has provided ASIO support on Windows for individuals who are prepared to compile Audacity from source code using the optional Steinberg ASIO SDK.

ASIO support is provided strictly on the basis that it is NON-DISTRIBUTABLE, that is, you may NOT copy or distribute builds including ASIO support to anyone else. The build is strictly for your own personal (private or commercial) use. For the same reasons, Audacity can NOT distribute builds of Audacity including ASIO support, so please don't ask!

The following is an overview of compiling Audacity from source code including ASIO support.

  1. Install the free Microsoft Visual Studio Express compiling program and an appropriate Microsoft Software Development Kit (SDK).
  2. Download and install the ASIO SDK from Steinberg.
  3. Set the ASIOSDK_DIR environment variable to the directory where you installed the ASIO SDK.
  4. Download wxWidgets (Audacity's GUI toolkit that provides its interface) then build wxWidgets using Visual Studio.
  5. Set the WXWIN environment variable to the directory where you installed Widgets and restart the computer.
  6. Download and install the Tortoise SVN program and use it to checkout the latest Audacity source code.
  7. Build Audacity using Visual Studio.

Follow the instructions and download links on Developing On Windows for full details.

If you need help, please ask on the Compiling Audacity board on the Audacity Forum.