We have had several threads recently where the subject of kernel streaming has come up. I thought I might assemble some of the info on this in this one thread for the benefit of all.WHAT is kernel streaming?
Kernel Streaming (KS) is a broad term for the services that support kernel-mode processing of streamed data. KS enables efficient real-time streaming for multimedia devices such as sound cards and TV tuner cards. The Microsoft kernel streaming model is used in MicrosoftÂ® WindowsÂ® 2000 and later operating systems, and in Windows Me.http://www.microsoft.com/whdc/hwdev/...ream/csa1.mspxWHY do I need kernel streaming?
Kernel streaming is one method of avoiding the MS Windows kmixer which has the unfortune "feature" of resampling all sound. The resampling introduces errors that most people believe are audible. The resampling introduces the most errors when it results in changing the output rate from its native input rate. This is the case when the native audio source is at a higher rate than 48khz and is resampled down to 48khz or 44.1khz CD/MP3 music is resampled to 48khz to match a sound card device or driver that cannot support 44.1khz playback. Most believe that the SRC (sample rate converter) part of DirectSound is broken, being the main cause of the sound degradation during kmixer resampling. Also, if your soundcard (such as the REVO) supports 24-bit word depth KMixer opens the soundcard at that depth and then adds noise for the bits between 16 to 24. (There is some discussion as to if this is true for all versions of Windows OS.)
ASIO is also a driver model that allows one to bypass the kmixer (among other features).
Playback of DTS CD's or DD or DTS encoded wav files require that the bit stream be passed without resampling or "bit perfect" for proper playback by a DTS/DD decoder. ASIO or Kernel Streaming are methods for getting these DD/DTS encoded bit streams past kmixer.HOW do I use kernel streaming?
You need a sound card with a driver that supports it (the REVO!), a soundcard that supports multiple sampling rates (44.1 and 48khz the most common), an application that supports it and windows 2000, XP or ME. Currently, the foobar2000 player and winamp 2.x (NOT winamp 3.x) with the out_ks.dll kernel streaming plugin supports it.
Under Foobar2000 select Preferences/Components library and foo_output_ks.dll should be listed as a loaded library. The plugins are in the same folder with the foobar2000.exe. In the output section, you will see kernel Streaming on the list and you should be able to select the Revo as the Device.
Or Install winamp 2.9:http://classic.winamp.com/
Grab the winamp kernel streaming plugin:http://www.hydrogenaudio.org/index.p...=ST&f=1&t=4569http://www.cs.indiana.edu/~cshei/out_ks.zip
copy the out_ks.dll file to the winamp plugins directory. Go into the options/preferences menu and plugins/output section of winamp config screen, select "simple kernel streaming output" module. For best results you will also want the in_cdreader.dll plugin that supports direct digital audio extraction of your cd drive. You can find it here and instructions for installation:http://www.url.ru/~copah/CDReader.htmTEST that I am really kernel streaming?
Playback a DTS CD (this is NOT the same as a DTS DVD), outputing the bitstream out the SPDIF port and showing that music shows up on your external receiver. If you are not getting bitperfect playback you will get static or noise (turn your volume down so you dont damage your speakers!). Listed below are DD and DTS WAV files that can be downloaded and played as a "bit perfect" test. Download the files at the web sites below and play them. Make sure your REVO is set for "DIGITAL" (SPDIF out) and you are using foobar or winamp in kernel streaming mode to play these files. If they play then you are a streamin.....http://www.5dot1.com/articles/ac-3_5...to_a_cd-r.htmlhttp://www.modernrecording.com/artic...6kbps_3min.ZIP
A source for DTS wav files:http://www.sr.se/multikanal/english/e_index.stmBUGS? Why doesnt my kernel streaming REVO play 24 bit MP3's?
I don't know, but 24 bit MP3 files dont seem to play with the kernel streaming plugin and the Revolution. If you change the output plugin to directsound and have the winamp MAD plugin they will at least play.http://www.avsforum.com/avs-vb/showt...hreadid=248364http://www.mars.org/home/rob/proj/mp...lugin/#install
Foobar2000 has the similar problems with kernel streaming and 24 bit MP3's.NEW SECTION: What about ASIO over Kernel Streaming for bit perfect playback?
Some media applications don't support kernel streaming. Or in the case of my favorite application, winamp, the kernel streaming plugin referenced in this thread is not being currently maintained and updated. There are far more applications that support ASIO. The current MAudio drivers do not support ASIO over SPDIF. For all of these reasons, I have started experimenting with ASIO over Kernel Streaming over SPDIF. This gives you the best of both worlds, ASIO support, ASIO over SPDIF support and use of the Revo's good kernel streaming drivers.
Here are some of the emerging ASIO over Kernel Streaming utilities:http://www.asio2ks.de/http://membres.lycos.fr/asiox/http://michael.tippach.bei.t-online....all/index.html
I have all three of the above loaded on my machine. At least for me, they don't interfere with each other.NEW SECTION: How do I configure Media Center 10 to use ASIO over Kernel Streaming?
I was not able to get winamp to work with the ASIO over KS utilities. I have since switched to using Media Center 10. The newest beta (10.0.75 as of this posting), has some fixes in it specifically to support some of these ASIO over kernel streaming utilities.
Media Center 10 beta links:ftp://ftp.jriver.com/pub/downloads/m...enter10075.exehttp://yabb.jriver.com/interact/inde...threadid=19402http://www.musicex.com/mediacenter/download.htmlhttp://yabb.jriver.com/interact/inde...threadid=17336http://yabb.jriver.com/interact/inde...threadid=10029http://yabb.jriver.com/interact/index.php?board=3
See links above to download the latest beta of Media Center 10. Select for the "Tools" menu then "Options" menu item.
From the "Options" dialog box, select "Playback". I changed several of the "Playback" settings from the defaults. I found if I did not, I got bursts of whitenoise static when my DTS CD's changed tracks. In the "Playback" config screen, select the folowing:
Between Tracks = STANDARD
Seeking = STANDARD
Stop = IMMEDIATE
Output = ASIO
Near the Output = ASIO drop down box, click the "Settings..." button. From the "Settings..." dialog box, you can select any of the ASIO to Kernel Streaming drivers you have loaded. For me I find that the "ASIO kernel streaming driver" works best. Select Channel Offset = 0.
The "ASIO Kernel streaming driver" coorisponds to the asio2ks driver link above. You need to goto your windows control panel to configure the asio2ks settings.
My asio2ks control panel settings are as follows:
Device = MAudio Revolution (of course!)
Output = MAudio Revolution (of course!)
Format = 8 channel
Input = MAudio Revolution (of course!)
Format = 2 channel
Latency Samples = 14-86 ms
Blocks = 2 /1376
From the Advanced asio2ks control panel settings tab:
Channel Allocation = Activate Selected Audio Channels
Channel Mask = set mask (direct sound)
My Revolution control panel is set for "DIGITAL" for SPDIF output.
ASIO4ALL driver works too, if you set it to 16bit sample mode in its control panel.
The configuration above with Media Center 10 is my current preferred music playback solution.What about ASIO by itself for bit perfect playback?
This is a Kernel Streaming FAQ. But use these links to the latest ASIO plugins to get you started. The author's site is in japanese, but you should be able to navigate to the links for the latest plugins without too much trouble.
comments and corrections are welcome.
Cliff's comments and corrections added.
sample DD 5.1 test wav file found.
sample DTS 5.1 test wav files found.
BUGS section about 24 bit MP3's added.
Added a ASIO link section.
Updated the foobar2000 install description section.
Added additional words about Why Kernel Streaming section about the issues of kmixer.
new asio plugin link added
several major new sections added regarding asio over kernel streaming added.
added sentence about ASIO4ALL and 16 bit sample mode.
media center forum link update