If your sound card/dac drivers do not install ASIO support, then you can use ASIO4ALL ( to support ASIO with your existing sound card drivers. Under Windows XP, it is best to use ASIO. WASAPI is only supported on Vista and newer versions of Windows.
Kernel Streaming is not supported directly by most programs. Kernel Streaming and WASAPI both allow you to do this. Over the years, Microsoft has introduced many different technologies which allows an application to bypass the kernel mixer and directly send the output from a program to the sound card. Traditionally ASIO needs to be offered as a separete interface by the sound card drivers. The main advantage of ASIO is low latency. ASIO was originally developed by steinberg to interface studio audio hardware. This is the only way to ensure that you get bit perfect transport between your application and the sound card driver. When you use ASIO or WSASAPI, the digital output from your music player directly goes to the sound device w/o any intermediate processing. This essentially results in the original digital data being distorted and that does not always sound good. This mixer device introduces latency and will introduce additional digital signal processing. This is what allows multiple applications to play sound at the same time.
*The term non-microphone describes all playback devices and recording devices other than microphones.įor information about the operational characteristics of the physical volume sliders that are represented by the software volume sliders in Windows applications, see Audio-Tapered Volume Controls.Actually when you output using the normal DirectX or waveout interfaces on windows, the digital audio passes through a digital mixer inside windows. The following table shows the volume ranges and default volume levels for audio in the different versions of Windows.
Note If the audio hardware exposes a hardware volume control (like a volume knob), then the driver sets the range and the default level via the KSPROPERTY_AUDIO_VOLUMELEVEL Kernel Streaming property. If the audio adapter does not have a physical volume control knob, see the Software Volume Control Support topic for information about the software support provided by Windows. Ideally, if a set of active speakers ships in the same box with the audio adapter card, the factory should adjust the volume knob on the speakers to the position that works best with the adapter's default volume setting. This will function similarly to the volume up and volume down buttons on a keyboard Windows will see the volume knob turn and will program the volume control correspondingly (whether it is a hardware or software volume.) If there is a physical volume knob on an active set of speakers, it should appear to Windows as a HID control. If there is not a hardware amplifier, Windows will create a software volume control APO. Note If there is a hardware amplifier, then the driver sets the range and the default level via the KSPROPERTY_AUDIO_VOLUMELEVEL kernel streaming property.
If the audio adapter does not have a hardware amplifier, see Software Volume Control Support for information about the software support provided. The result of amplifying a low signal level is loss of audio quality. Otherwise, a user might try to compensate by increasing the volume on the speakers instead of increasing the master volume on the sound card. The defaults that the operating system chooses are not the same across all Windows releases, and vendors might need to take these differences into account to ensure that the volume levels are set neither too high nor too low immediately following driver installation.Īs a general rule, if the audio adapter drives a set of analog speakers that have their own physical volume control, the INF file should not set the default volume level too low. If the driver does not explicitly initialize these volume settings at the time that it is installed, the operating system chooses its own default values for these settings.
The audio driver has control only over its own endpoint volumes, via KSPROPERTY_AUDIO_VOLUMELEVEL. There is an endpoint volume for each audio output and input, and an application volume for each application. The sliders indicate the volume-level settings for the various audio devices and applications such as speakers and system sounds. The SndVol program (see SysTray and SndVol32) displays a set of volume sliders.