Difference between revisions of "Bypassing Windows Mixer"

From Hydrogenaudio Knowledgebase
Jump to: navigation, search
(Initial draft.)
 
m (Clarifications.)
Line 17: Line 17:
 
* Forfeits advantages of modern Windows audio pipeline: audio stream formats that aren't natively supported by your audio hardware will fail to play. You're likely to get errors with:
 
* Forfeits advantages of modern Windows audio pipeline: audio stream formats that aren't natively supported by your audio hardware will fail to play. You're likely to get errors with:
 
** Mono streams.
 
** Mono streams.
** Multichannel streams on a soundcard with stereo output only.
+
** Multichannel (more than two channels) streams on a soundcard with stereo output only.
** Less common multichannel configurations.
+
** Uncommon channel configurations.
** Less common sample rates.
+
** Uncommon sample rates.
 
To workaround these issues, you'll have to use additional DSPs such as resampler or "convert mono to stereo" in foobar2000.
 
To workaround these issues, you'll have to use additional DSPs such as resampler or "convert mono to stereo" in foobar2000.
* Interacting with soundcard drivers directly rather than letting Windows Mixer do it will often expose soundcard driver bugs that can't be triggered otherwise and lead to system-wide instability. There have been countless documented cases of stable otherwise soundcard drivers causing BSODs when using KS, ASIO or WASAPI. This happens because:
+
* Interacting with soundcard drivers directly rather than letting Windows Mixer do it will often expose soundcard driver bugs that can't be triggered otherwise and lead to system-wide instability. There have been countless documented cases of otherwise stable soundcard drivers causing BSODs when using KS, ASIO or WASAPI. This happens because:
 
** KS and WASAPI: while these output methods rely on the same driver code as playing sounds through Windows Mixer, various quirks such as buffer sizes are different; drivers tend to make unsafe assumptions that whoever is invoking them behaves exactly as Windows Mixer does; these drivers would also stop working correctly after OS updates that change these behaviors.
 
** KS and WASAPI: while these output methods rely on the same driver code as playing sounds through Windows Mixer, various quirks such as buffer sizes are different; drivers tend to make unsafe assumptions that whoever is invoking them behaves exactly as Windows Mixer does; these drivers would also stop working correctly after OS updates that change these behaviors.
 
** ASIO: many major hardware vendors release massively buggy ASIO drivers and suspend any work on their drivers as soon as they get some subset of ASIO software working with their product without obvious problem symptoms.
 
** ASIO: many major hardware vendors release massively buggy ASIO drivers and suspend any work on their drivers as soon as they get some subset of ASIO software working with their product without obvious problem symptoms.

Revision as of 10:05, 2 July 2008

Impact on audio quality

Quality gains are questionable at least. In general, bypassing Windows Mixer doesn't really make sense unless the output is digitally captured and needs to be bit-exact for further editing.

How-to

foobar2000

Foobar2000 can bypass Windows Mixer using optional output components.

Winamp

Todo.

XMPlay

Todo.

Pros

  • Full control over what gets delivered to your soundcard drivers.
  • Full control over what gets delivered to your soundcard, but only when your configuration ensures preventing other software from playing sounds at the same time (e.g. by using WASAPI exclusive mode).

Cons

  • Forfeits advantages of modern Windows audio pipeline: audio stream formats that aren't natively supported by your audio hardware will fail to play. You're likely to get errors with:
    • Mono streams.
    • Multichannel (more than two channels) streams on a soundcard with stereo output only.
    • Uncommon channel configurations.
    • Uncommon sample rates.

To workaround these issues, you'll have to use additional DSPs such as resampler or "convert mono to stereo" in foobar2000.

  • Interacting with soundcard drivers directly rather than letting Windows Mixer do it will often expose soundcard driver bugs that can't be triggered otherwise and lead to system-wide instability. There have been countless documented cases of otherwise stable soundcard drivers causing BSODs when using KS, ASIO or WASAPI. This happens because:
    • KS and WASAPI: while these output methods rely on the same driver code as playing sounds through Windows Mixer, various quirks such as buffer sizes are different; drivers tend to make unsafe assumptions that whoever is invoking them behaves exactly as Windows Mixer does; these drivers would also stop working correctly after OS updates that change these behaviors.
    • ASIO: many major hardware vendors release massively buggy ASIO drivers and suspend any work on their drivers as soon as they get some subset of ASIO software working with their product without obvious problem symptoms.

Alternate solutions

  • Windows Vista lets you control what data format gets sent to your soundcard so you can get rid of the resampling step without bypassing the mixer by setting mixer's output sample rate matching the sample rate of what you play (44100Hz for CD-sourced material).