Difference between revisions of "Audio Output Modes"

From JRiverWiki
Jump to: navigation, search
Line 5: Line 5:
 
To get the best possible audio quality, you want to talk to your sound hardware in as direct of a way as possible.  You do not want Windows or any other layer resampling or doing other processing to the signal.  ASIO, WASAPI, and Kernel Streaming are all hardware direct.
 
To get the best possible audio quality, you want to talk to your sound hardware in as direct of a way as possible.  You do not want Windows or any other layer resampling or doing other processing to the signal.  ASIO, WASAPI, and Kernel Streaming are all hardware direct.
  
There are some drawbacks to hardware direct communication:
+
There are some things to be aware of when using hardware direct communication:
 
* During audio playback, the soundcard will be locked.  You will not be able to play sounds from a web browser or other program while audio is playing.
 
* During audio playback, the soundcard will be locked.  You will not be able to play sounds from a web browser or other program while audio is playing.
 
* Playback of sample rates your soundcard does not support will not be possible.  Use DSP Studio > Output Format to allow Media Center to convert to a supported sample rate.
 
* Playback of sample rates your soundcard does not support will not be possible.  Use DSP Studio > Output Format to allow Media Center to convert to a supported sample rate.
Line 11: Line 11:
 
==Best Audio Quality Output Mode==
 
==Best Audio Quality Output Mode==
 
Work down this ladder to choose the best output for your hardware:
 
Work down this ladder to choose the best output for your hardware:
 +
 
1) If your hardware has a native, well-behaved, ASIO driver, use ASIO.  Otherwise see #2.
 
1) If your hardware has a native, well-behaved, ASIO driver, use ASIO.  Otherwise see #2.
 +
 
2) If you are on Windows Vista, Windows 7, or newer, use WASAPI exclusive.  Otherwise see #3.
 
2) If you are on Windows Vista, Windows 7, or newer, use WASAPI exclusive.  Otherwise see #3.
 +
 
3) If Kernel Streaming works, use Kernel Streaming.  Otherwise see #4.
 
3) If Kernel Streaming works, use Kernel Streaming.  Otherwise see #4.
 +
 
4) Use DirectSound or WaveOut.  Neither provide hardware direct output, so choose based on performance.
 
4) Use DirectSound or WaveOut.  Neither provide hardware direct output, so choose based on performance.
  
==Output mode: ASIO==
+
==ASIO==
 
ASIO is a sound card communication system created by Steinberg.
 
ASIO is a sound card communication system created by Steinberg.
  
Line 23: Line 27:
 
Please note that ASIO4All is basically Kernel Streaming with an ASIO wrapper.  There's no good reason to use ASIO + ASIO4All vs just using Kernel Streaming directly in Media Center.
 
Please note that ASIO4All is basically Kernel Streaming with an ASIO wrapper.  There's no good reason to use ASIO + ASIO4All vs just using Kernel Streaming directly in Media Center.
  
==Output mode: Windows Audio Session API (WASAPI)==
+
==Windows Audio Session API (WASAPI)==
 
WASAPI is a hardware communication system built into Vista, Windows 7, and newer.  When used in 'exclusive' mode (available in ''Output mode settings...'' below WASAPI selection), the system mixer is bypassed.
 
WASAPI is a hardware communication system built into Vista, Windows 7, and newer.  When used in 'exclusive' mode (available in ''Output mode settings...'' below WASAPI selection), the system mixer is bypassed.
  
==Output mode: Kernel Streaming==
+
==Kernel Streaming==
 
Kernel Streaming is a hardware direct way to speak directly to a WDM audio driver.  It works on XP, so is useful when the above two options are not possible.
 
Kernel Streaming is a hardware direct way to speak directly to a WDM audio driver.  It works on XP, so is useful when the above two options are not possible.
  
==Output mode: Direct Sound==
+
==Direct Sound==
 
This is the default and most compatible output method.  It plays through the system mixer.  This means all formats will be converted by Windows to the native format of the card.  It is highly compatible but not the highest quality method.
 
This is the default and most compatible output method.  It plays through the system mixer.  This means all formats will be converted by Windows to the native format of the card.  It is highly compatible but not the highest quality method.
  
==Output mode: Wave Out==
+
==Wave Out==
 
This is a legacy output mode.  With some misbehaved hardware, it may work better than DirectSound.
 
This is a legacy output mode.  With some misbehaved hardware, it may work better than DirectSound.
  
==Output mode: Disk Writer==
+
==Disk Writer==
 
This writes whatever would have gone to the soundcard to a WAV file on disk.
 
This writes whatever would have gone to the soundcard to a WAV file on disk.
  

Revision as of 12:04, 10 August 2010

Overview

Media Center can output audio data in a variety of ways. This is important, because different hardware requires different communication methods to obtain the best possible audio quality and performance.

Hardware Direct

To get the best possible audio quality, you want to talk to your sound hardware in as direct of a way as possible. You do not want Windows or any other layer resampling or doing other processing to the signal. ASIO, WASAPI, and Kernel Streaming are all hardware direct.

There are some things to be aware of when using hardware direct communication:

  • During audio playback, the soundcard will be locked. You will not be able to play sounds from a web browser or other program while audio is playing.
  • Playback of sample rates your soundcard does not support will not be possible. Use DSP Studio > Output Format to allow Media Center to convert to a supported sample rate.

Best Audio Quality Output Mode

Work down this ladder to choose the best output for your hardware:

1) If your hardware has a native, well-behaved, ASIO driver, use ASIO. Otherwise see #2.

2) If you are on Windows Vista, Windows 7, or newer, use WASAPI exclusive. Otherwise see #3.

3) If Kernel Streaming works, use Kernel Streaming. Otherwise see #4.

4) Use DirectSound or WaveOut. Neither provide hardware direct output, so choose based on performance.

ASIO

ASIO is a sound card communication system created by Steinberg.

If your soundcard has a native ASIO driver, this is the most direct (and normally best) way to communicate with it.

Please note that ASIO4All is basically Kernel Streaming with an ASIO wrapper. There's no good reason to use ASIO + ASIO4All vs just using Kernel Streaming directly in Media Center.

Windows Audio Session API (WASAPI)

WASAPI is a hardware communication system built into Vista, Windows 7, and newer. When used in 'exclusive' mode (available in Output mode settings... below WASAPI selection), the system mixer is bypassed.

Kernel Streaming

Kernel Streaming is a hardware direct way to speak directly to a WDM audio driver. It works on XP, so is useful when the above two options are not possible.

Direct Sound

This is the default and most compatible output method. It plays through the system mixer. This means all formats will be converted by Windows to the native format of the card. It is highly compatible but not the highest quality method.

Wave Out

This is a legacy output mode. With some misbehaved hardware, it may work better than DirectSound.

Disk Writer

This writes whatever would have gone to the soundcard to a WAV file on disk.

Notes

The only way to prevent a Creative Labs X-Fi based card or Asus Xonar card from resampling all incoming audio is to use ASIO. WASAPI exclusive will not change the master clock of the card.