foobar2000

WASAPI shared output

By: Case

Shared mode WASAPI output for Vista and newer Windows versions.

This component tries to provide smoother volume adjustment and seek/pause/stop transitions than existing outputs.

Changes:
0.6.8 (2019-09-28): Removed locks from the playback thread. Added error details previously only shown on console to the error popup
0.6.7 (2019-09-03): Fixed stuttering with extreme downsampling ratios. Problem was introduced by the processing change in v0.6.5.
0.6.6 (2019-06-28): Reduced the glitch size when default audio device changes and buffer gets converted to the new format. Fixed player getting stuck when pausing a short track (bug introduced in 0.6.5)
0.6.5 (2019-06-27): Fixed player UI freeze while processing very large audio chunks
0.6.4 (2019-06-22): Fixed noise issue during channel count change when automatic resampling was active
0.6.3a (2019-06-17): Version 0.6.2 introduced glitches when buffer refill events were signalled too early. Restored the retry logic for most parts to match v0.6.1
0.6.3 (2019-06-17): Fixed fade-in missing when initial playback didn't start from the beginning of a track
0.6.2 (2019-06-15): Fixed audio glitches when switching tracks. Changed playback thread not to abort so easily on buffering problems. Increased the fade duration to 50 ms to improve interpolation smoothness
0.6.1 (2019-04-07): Reverted the 0.6 buffering change. Default device change mid-playback will now resample and convert the already buffered samples to new target format. The transition isn't as smooth as with 0.6 but better than in prior versions. Fixed a glitch when seeking while paused
0.6 (2019-03-31): Buffer is no longer flushed when using the default device and the device changes mid-playback. Added a short fade-in after default device change
0.5.8 (2019-03-21): Improved compatibility with audio drivers that signal events incorrectly
0.5.7 (2019-03-14): Mixer setting report now includes channel mask configuration
0.5.6 (2019-03-09): The output device was incorrectly reinitialized when default changed even when not using default output
0.5.5 (2019-03-09): Made default output notice changes and automatically switch to new device
0.5.4 (2019-02-15): Hopefully fixed playback thread init failure related crashing
0.5.3 (2019-01-31): Added COM library initialization to device enumerator
0.5.2 (2018-10-29): Fixed crash on device close
0.5.1 (2018-10-27): Volume adjustment was incorrectly delayed during initial playback start
0.5 (2018-10-18): Fixed glitching with sub 100 ms output buffers, the component incorrectly played silence when its buffer went empty. Eliminated need for Sleep() which should make the component immune to timer resolution fluctuations
0.4.1 (2018-10-15): Fixed device identification by GUID

Current version

0.6.8, released on 2019-09-28

Works with foobar2000 v1.4 alpha and newer

Links

Download
Home page
Documentation
Discussion

More components

Browse all
Browse by author: Case
Tags: output

How to install a component?