|
Audio Asylum Thread Printer Get a view of an entire thread on one page |
For Sale Ads |
203.58.188.211
In Reply to: Signal Path....Please ad your input posted by Dynaudio_Rules on January 4, 2007 at 07:19:40:
As you can see, there are multiple levels of abstraction in which a sound application can interface with the underlying hardware.The oldest (and the one that almost all applications and sound cards support) is MME. As you can see, over the years, numerous layers have been added between MME and the hardware - the most notorious being the dreaded "kmixer".
Note that DirectSound ("DSound" in the diagram) has two signal paths, one that passes through kmixer (which is the "normal" interface) and one that doesn't (also called "kernel streaming mode"). There's a lot of confusion around kernel streaming mode - many people think it bypasses DirectSound but as you can see from the diagram, it doesn't - it's part of DirectSound.
ASIO is actually the most direct signal path between an application and the hardware. The ASIO specification was created by Steinberg because they wanted a low latency way of accessing the sound card hardware directly, without going through the gunk of additional layers that Microsoft imposes.
Note the above comment is only true for NATIVE ASIO drivers. Driver "shims" like ASIO4ALL and ASIO2KS simply provide an ASIO interface on top of DirectSound. In other words, you are not removing any layers but adding an extra layer on top.
PS - just in case anyone is wondering what "Open AL" is - it's new standard being proposed for audio hardware acceleration - this is of primary interest for computer gaming, not high quality audio.
Vista will make the picture even more complex - Vista adds a lot more additional layers (but it does have a new "talk directly to the hardmade mode" designed to address latency issues, but the jury is out in terms of how effective this is).
Follow Ups:
(By the way - nice explanation of kernel streaming...)Have you heard anything about this "new and exciting" Direct Kernel Streaming (Direct KS)?
Apparently drivers are coming out with this technology.
I wonder how it works in XP? And in Vista?
Thank God we still have ASIO in Vista!! :o)
Check this link (powerpoint presentation from microsoft)
- http://download.microsoft.com/download/1/8/f/18f8cee2-0b64-41f2-893d-a6f2295b40c8/DW04022_WINHEC2004.ppt (Open in New Window)
This picture may help (from a nice article on www.extremetech.com, as is the previous picture).It actually doesn't look as bad as it seems. Vista is more flexible, and allows multiple audio processing plug-ins to be daisy chained in the signal path (kind of like VST and DirectX, but built into the operating system and operating much closer to the hardware).
For example, you can have a plug in to do room correction, another one to implement Dolby/DTS decoding, another one to do equalization, etc. etc. And once implemented, it will impact all applications.
Purists like me who stay away from processing will probably continue to use ASIO.
Thanks for the picture it explains a lot.It seems as if the signal will go into an audio driver either on the sound card or on the MB.
I would guess that the effects of the driver are minimal with a digital signal.....but....if 3 people use Windows with ASIO and 3 different sound cards etc. and get different sound characteristics then the audio drivers effects can be heard.
whether it's USB, or onboard DACs or SPDIF, or Firewire ...*** if 3 people use Windows with ASIO and 3 different sound cards etc. and get different sound characteristics then the audio drivers effects can be heard. ***
Yes, different audio drivers can sound different, as well changing the audio settings on each driver.
Have you tried tweaking for the example the number of buffers in ASIO? I've discovered that the sound changes slightly.
Christine first I want to thank you for so much **much needed** information and for your continued posts on this subject.
If I am using ASIO4ALL and going out via USB what drivers would I be using? ASIO, some other MS driver or other?
I would strongly recommend avoiding ASIO4ALL and going for a device that comes with a native ASIO driver.As an example, my Edirol SD90 (USB 1.0 device) has a native ASIO driver. I'm currently considering purchasing an E-MU 0404USB - that also has a native ASIO driver.
If your USB device has no native ASIO driver, I recommend using kernel streaming.
Vista will have a default USB driver that supports kernel streaming based on Universal Audio Architecture. In native Vista mode, it should also support exclusive direct access to the hardware. Of course, we have yet to see any applications using this feature.
This post is made possible by the generous support of people like you and our sponsors: