Audio Stream Input/Output

From Infogalactic: the planetary knowledge core
Jump to: navigation, search
ASIO logo

Audio Stream Input/Output (ASIO) is a computer sound card driver protocol for digital audio specified by Steinberg, providing a low-latency and high fidelity interface between a software application and a computer's sound card. Whereas Microsoft's DirectSound is commonly used as an intermediary signal path for non-professional users, ASIO allows musicians and sound engineers to access external hardware directly.

Overview

ASIO bypasses the normal audio path from a user application through layers of intermediary Windows operating system software so that an application connects directly to the sound card hardware. Each layer that is bypassed means a reduction in latency (the delay between an application sending audio information and it being reproduced by the sound card, or input signals from the sound card being available to the application). In this way ASIO offers a relatively simple way of accessing multiple audio inputs and outputs independently.

Its main strength lies in its method of bypassing the inherently high latency and poor-quality mixing and sample rate conversion of Windows NT 5.x audio mixing kernels (KMixer)[citation needed], allowing direct, high speed communication with audio hardware. Unlike KMixer, an unmixed ASIO output is "bit identical" or "bit perfect"; that is, the bits sent to or received from the audio interface are identical to those of the original source, thus potentially providing higher audio fidelity. In addition, ASIO supports 24-bit samples, unlike Windows NT 5.x MME and DirectSound which truncate 24-bit samples to the upper 16 bits, whereas Windows NT 6.x mixer provides 32-bit floating point output. Higher bit-depth samples offer the potential for a higher signal-to-noise ratio.

Operating systems

Interface support is normally restricted to Microsoft Windows. Starting with Windows Vista, KMixer has been removed and replaced by WASAPI and a new WaveRT port driver.

As of 2007 there is also an experimental ASIO driver for Wine, a Windows compatibility layer for Linux. This wineasio driver uses the JACK sound server as its audio back-end and allows many ASIO-aware applications to run with low latency under WINE.

Usage limitation

Being a proprietary protocol, compatibility with Windows-based DAW and other recording software is not universal. For example, the user manual of the Audacity audio editor states: "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."[1]

A popular alternative is to use the ASIO4All driver by German programmer Michael Tippach, which can often deliver low latency on soundcards that have not been designed with music production in mind.[citation needed][2]

See also

  • Juce – an open-source C++ toolkit that includes support for ASIO audio devices.

References

  1. Lua error in package.lua at line 80: module 'strict' not found.
  2. http://www.asio4all.com/

External links

  • Steinberg web site
  • ASIO4ALL, hardware-independent ASIO driver for WDM audio devices
  • PAP, a simple command line player for ASIO drivers
  • NAudio – an open-source .NET audio and MIDI library that includes C# support for ASIO audio devices.