[GUIDE] Better Audio Experience with ASIO, Kstreaming, and WASAPI
ASIO, Kernel Streaming, and WASAPI are components that bypass windows kernel for processing audio signals. Windows kernel ( called Kmixer in WinXP) has a huge latency in processing audio signals, and it tends to decrease audio signal qualities at the end of the process (output).
These components were created to direcly access the low level towards of targeted hardware. In other words, it accesses directly to your soundcard, bypassing your Windows’ Kmixer. Not to mention in giving a tight and crystal clear audio listening experience… :)
In this article, i use foobar2000 and nVidia nforce audio via Realtek ALC850 as audio sources… of course add-on audio cards would sing better :)

enough the wizzy wozzy chit chats… let’s begin shall we..?? :)
ASIO (Audio Stream Input/Output)
ASIO bypasses the normal audio path from the user application through layers of intermediary Windows operating system software, so that the application connects directly to the soundcard hardware. Each layer that is bypassed means a reduction in latency, the delay between an application sending audio information and it being reproduced by the soundcard, or input signals from the soundcard being available to the application. In this way ASIO offers a relatively simple way of accessing multiple audio inputs and outputs independently. Unlike KMixer, an unmixed ASIO output is “bit identical”, that is, the bits sent to the soundcard are identical to those of the original source, thus having higher audio fidelity.
1. download foobar’s ASIO components here
2. extract and put it under “components” folder in your foobar installation directory

3. In “preferences” menu, go to “output->ASIO virtual device”, choose “add new” for selecting your ASIO device.

4. Set your output using ASIO supported device.

Kernel Streaming
Kernel Streaming is a technique that supports kernel-mode processing of streamed data. It enables efficient real-time streaming for multimedia devices such as sound cards and TV tuner cards. Kernel streaming allows a device driver to create DirectShow-like filters and pins in kernel mode, providing access to hardware, lower latency communication. Compared to the regular “wave out method” in Microsoft Windows, kernel streaming requires less CPU time. This comes at the expense of bypassing the KMixer and Windows volume control.
1. download foobar’s Kernel Streaming components here
2. extract and put it under “components” folder in your foobar installation directory

3. Set your output using Kernel Streaming [KS] supported device.

it can be identified easily by its [KS] mark next to your audio processing device.
WASAPI (Windows Audio Session API) *windows Vista and 7 Only
The Windows Vista audio engine is designed to run faster than the Windows XP audio engine, and has tighter requirements on audio buffer position accuracy. so WASAPI is a very low level API for rendering audio, render/capture audio streams, adjust volume etc. This API also provides low latency for audio professionals through WaveRT. WASAPI is similar to kernel streaming in function, but no kernel mode programming is required.
1. download foobar’s WASAPI components here
2. extract and put it under “components” folder in your foobar installation directory
3. Set your output using WASAPI supported device.

impact of these components (API) could be noticed by opening your Windows audio control panel (mixer). you’ll notice that increasing or decreasing the wave volume won’t give any effects at all to the system volume :)

late note:
increasing the buffer/latency slider to lower values (eg: 100ms) would give a better sound quality experience. Changing output bit depth (eg: 32-bit) could also make your ears smiling.. :p

there is no need to adjust the equalizer. You want your speakers to sing “honestly”, don’t you?? :)



