Foobar2000:Components/WASAPI output support (foo out wasapi): Difference between revisions

From Hydrogenaudio Knowledgebase
m (Clarifications / cleanups.)
(use the legacy components category)
 
(14 intermediate revisions by 5 users not shown)
Line 1: Line 1:
= Windows Audio Session API output support =
{{infobox foobar2000 component
== Description ==
| name                = WASAPI output support
The foobar2000 Windows Audio Session API (WASAPI) output support component allows you to play your music using WASAPI exclusive mode.
| caption              =  
| module_name          = foo_out_wasapi
| developer            = Peter Pawlowski
| stable_release      = 3.3
| stable_release_date  = 2017-06-19
| foobar2000_version  = 1.1 (Does not work on 2.0 or newer)
| foobar2000_ui_module = N/A
| foobar2000_legacy    = true
| foobar2000_architecture = x86 32-bit
| use                  = Output
}}
The '''Windows Audio Session API (WASAPI) output support''' component allows you to play your music using WASAPI exclusive mode.


WASAPI is a new audio output method introduced in Windows Vista; among other things, it provides an exclusive mode that allows applications to take full control over soundcard's resources (muting any sounds played by other applications) and play unaltered bitstream without passing it through the Windows mixer.
WASAPI is a new audio output method introduced in Windows Vista; among other things, it provides an exclusive mode that allows applications to take full control over soundcard's resources (muting any sounds played by other applications) and play unaltered bitstream without passing it through the Windows mixer.


== Differences between WASAPI and [[Foobar2000:Components 0.9/ASIO support|ASIO]] / [[Foobar2000:Components 0.9/Kernel Streaming Output (foo out ks)|Kernel Streaming]] from foobar2000 user's perspective ==
== Differences between WASAPI and [[Foobar2000:Components 0.9/ASIO support|ASIO]] / [[Foobar2000:Components 0.9/Kernel Streaming Output (foo out ks)|Kernel Streaming]] from foobar2000 user’s perspective ==
* Requires Windows Vista - not available on Windows XP or older.
* Requires Windows Vista or Windows 7 - not available on Windows XP or older.
* Works with more soundcards - contrary to e.g. ASIO, it doesn't require any special support from soundcard's manufacturer, other than providing a Windows Vista compatible driver.
* Works with more soundcards - contrary to e.g. ASIO, it doesn't require any special support from soundcard's manufacturer, other than providing a Windows Vista compatible driver.
* Guarantees muting of any other sounds played through the soundcard - with ASIO and KS, muting occurred with some soundcards but not with all of them; it was a side effect rather than a feature.
* Guarantees muting of any other sounds played through the soundcard - with ASIO and KS, muting occurred with some soundcards but not with all of them; it was a side effect rather than a feature.


== Limitations of this component ==
== WASAPI plug-in version 3.0 ==
* Volume control is delayed.
=== Output modes: push and event-driven ===
* Windows Vista Service Pack 1 or newer is strongly recommended; WASAPI exclusive mode is unusable on significant percentage of pre-SP1 machines because of bugs.
As for the latest version of the component, two different output modes are available - push and event-driven; certain soundcards - especially USB devices - are known to cooperate better with the event-driven mode while certain other soundcards do not support the event-driven mode at all.
* If you toggle the ''Allow applications to take exclusive control of this device'' option in Windows Sound Control Panel while playing, foobar2000 may crash. This is a bug in Windows Vista still present as of SP1.
 
* For currently unknown reasons, this component does not cooperate with certain soundcards such as Creative X-Mod.
=== Sandbox ===
* With certain soundcards you might need to fiddle with output buffer length in [[Foobar2000:Preferences:Output|output preferences]] before getting acceptable results - with certain buffer lengths, playback may fail to start entirely or get stuck after a few seconds.
Unfortunately, WASAPI is affected by various bugs in both Windows mixer and soundcard drivers. To keep these from crashing foobar2000, all WASAPI access is now sandboxed in a separate process for better stability.
 
== Buffer size tweaks ==
Please note that any buffer tweak options ''do not'' explicitly cause the specified buffer size to be used; if the specified value is outside the allowed range for your device, the nearest allowed value will be used.
 
== See also ==
* [[Bypassing Windows Mixer|Bypassing the Windows mixer]]
 
== External links ==
* {{foobar2000|http://www.foobar2000.org/components/view/foo_out_wasapi|WASAPI output support (foo_out_wasapi)}}
* {{wikipedia|WASAPI}}
 
{{DISPLAYTITLE:foobar2000:Components/WASAPI output support (foo_out_wasapi)}}

Latest revision as of 18:27, 22 October 2023

WASAPI output support

foo_out_wasapi
Developer(s) Peter Pawlowski
Repository {{{repository}}}
Release information
Initial release {{{released}}}
Stable release 3.3 (June 19, 2017)
Preview release N/A
foobar2000 compatibility
Architecture x86 32-bit
Minimum version 1.1 (Does not work on 2.0 or newer)
Maximum version {{{foobar2000_maximum}}}
UI module(s) N/A
Additional information
Use Output
License {{{license}}}
Discussion thread {{{discussion_thread}}}
View all legacy components

The Windows Audio Session API (WASAPI) output support component allows you to play your music using WASAPI exclusive mode.

WASAPI is a new audio output method introduced in Windows Vista; among other things, it provides an exclusive mode that allows applications to take full control over soundcard's resources (muting any sounds played by other applications) and play unaltered bitstream without passing it through the Windows mixer.

Differences between WASAPI and ASIO / Kernel Streaming from foobar2000 user’s perspective

  • Requires Windows Vista or Windows 7 - not available on Windows XP or older.
  • Works with more soundcards - contrary to e.g. ASIO, it doesn't require any special support from soundcard's manufacturer, other than providing a Windows Vista compatible driver.
  • Guarantees muting of any other sounds played through the soundcard - with ASIO and KS, muting occurred with some soundcards but not with all of them; it was a side effect rather than a feature.

WASAPI plug-in version 3.0

Output modes: push and event-driven

As for the latest version of the component, two different output modes are available - push and event-driven; certain soundcards - especially USB devices - are known to cooperate better with the event-driven mode while certain other soundcards do not support the event-driven mode at all.

Sandbox

Unfortunately, WASAPI is affected by various bugs in both Windows mixer and soundcard drivers. To keep these from crashing foobar2000, all WASAPI access is now sandboxed in a separate process for better stability.

Buffer size tweaks

Please note that any buffer tweak options do not explicitly cause the specified buffer size to be used; if the specified value is outside the allowed range for your device, the nearest allowed value will be used.

See also

External links