Help - Search - Members - Calendar
Full Version: "ASIO" vs. Directsound
Hydrogenaudio Forums > Hydrogenaudio Forum > Listening Tests
signorformaggio
First of all, this test has probably been done before. I had done it and decided to share it, past experience be damned, because the results were interesting and I didn't have anything else to do with them. I don't think there's a TOS rule against gratuitously repeating tests -- in any case, doing so is what science is all about, and I couldn't find any similar tests on the front page. Furthermore, it's generally assumed that all output is pretty much the same, and this showed otherwise.

I did a little test comparing Directsound to ASIO2KS to see if there was actually a difference between the two. I wasn't expecting there to be because common wisdom says that this is just kernal-streaming with lower latency, and latency has no possible effect in a listening application, so I've never really bothered. I didn't bother to do it until just now, and the results were a little bit surprising: on my computer, at least, there is an easily-audible difference and ASIO, contrary to all the audiophoolery, actually sounds worse. I know that ASIO2KS is not true ASIO, by the way; that doesn't stop some misguided "audiophiles" from proclaiming it and ASIO4ALL some great savior. Equipment used:

Programs: foobar2000 (0.9.4) with DS and ASIO2KS, 44.1kHz, 16-bit, no dithering; Audacity 1.2.4
Output: A generic Hong-Kong made USB-to-S/PDIF adapter, Monarchy Audio 18B DAC (coaxial connection if that makes one bit of difference. Not to these ears, but whatever floats your boat)
Input: SoundBlaster Live! 24-bit (line-in)

The output device is incompatible with Kernal Streaming so I couldn't test that. I recorded the following clips (30-second fair-use):

http://rapidshare.com/files/17081039/files.zip.html

and normalized them to the same volume.

First impressions were that the ASIO sounded noticeably muffled and lousy while the DS was clearer and cleaner. I used an ABX program and came up with the following results:

QUOTE
WinABX v0.42 test report
02/18/2007 11:42:00

A file: G:\rips\asio.wav
B file: G:\rips\ds.wav

Start position 00:00.0, end position 00:29.9
11:42:55 1/1 p=50.0%
11:42:57 2/2 p=25.0%
11:43:02 3/3 p=12.5%
11:43:03 4/4 p=6.2%
11:43:05 5/5 p=3.1%
11:43:07 6/6 p=1.6%
11:43:08 7/7 p=0.8%
11:43:10 8/8 p=0.4%
11:43:11 9/9 p=0.2%
11:43:13 10/10 p< 0.1%
11:43:14 11/11 p< 0.1%
11:43:15 12/12 p< 0.1%
11:43:16 13/13 p< 0.1%
11:43:18 14/14 p< 0.1%


In other words, there was a definite difference. The waveforms looked different; if you care to look at them, go right ahead with the above files. A spectral comparison gave (yeah, I know we don't hear graphs, but it's interesting to compare):

IPB Image


All sorts of things could have gone wrong. The signal path was hopelessly complex and the signal had degraded by the time it reached the line-in, for one thing. But my guess is that if there's a definite difference even in a lousy-sounding pair of WAVs, then I can believe my ears when it comes to telling a difference between the two.

edit: mad props to the Stone Roses for providing the clip, which is the intro to "Love Spreads" from the album Second Coming (CD > EAC > FLAC)
HotshotGG
QUOTE
I know that ASIO2KS is not true ASIO, by the way; that doesn't stop some misguided "audiophiles" from proclaiming it and ASIO4ALL some great savior.


Contrary to popular believe ASIO is really not meant for low-latency kernel streaming it's really designed for MIDI related uses it's just commonly used in Foobar2000 for that purpose, while your test results look intriguing have you also considered running them with the Rightmark Audio Analyzer as well?
Firon
Are you sure that the two files have equal volume and have aligned offsets?
Alex Yakovlev
Have onyone with DirectWire-capable soundcard tried recording signal of different outputs (WaveOut, DirectSound, KS, ASIO) and differect players/decoders (like WinAmp, FB2K) and comparing recorded wavs? This could give objective results whether different outputs/players sounds same or different.
Martin H
If there is a percievable difference between two different outputs, then it's because of buggy soundcard drivers and not the actual output method itself and hence, ASIO/DirectKS support in fb2k is provided for people with buggy DirectSound drivers. Avoding kmixer.sys and it's 30ms added latency lag is useless for playback purposses, and is only important for specific recording jobs, like e.g. playing on a MIDI keyboard over a software synthesizer.

From the wikipedia about ASIO :

"Its main strength lies in its method of bypassing the inherently high latency of operating system audio mixing kernels, allowing direct, high speed communication with audio hardware."

Source: http://en.wikipedia.org/wiki/Audio_stream_input_output
init
QUOTE(Martin H @ Feb 18 2007, 17:43) *

If there is a percievable difference between two different outputs, then it's because of buggy soundcard drivers and not the actual output method itself and hence, ASIO/DirectKS support in fb2k is provided for people with buggy DirectSound drivers. Avoding kmixer.sys and it's 30ms added latency lag is useless for playback purposses, and is only important for specific recording jobs, like e.g. playing on a MIDI keyboard over a software synthesizer.

From the wikipedia about ASIO :

"Its main strength lies in its method of bypassing the inherently high latency of operating system audio mixing kernels, allowing direct, high speed communication with audio hardware."

Source: http://en.wikipedia.org/wiki/Audio_stream_input_output


never mind wikipedia in this case. ever since I found out about the k-mixer issue and tried asio out for winamp i have kept using it, despite it being alot less convenient to adjust the volume at the amplifier all the while when necessary.
I have set the asio part to do 96kHz/24bit. It's just more natural, higher dynamic, less of a drone from my mediocre speakers since the frequency ranges don't appear to be so narrow and squeezed, but evenly and continously spreaded instead. no way back.

init
eofor
QUOTE(init @ Jun 8 2007, 05:02) *


I have set the asio part to do 96kHz/24bit. It's just more natural, higher dynamic, less of a drone from my mediocre speakers since the frequency ranges don't appear to be so narrow and squeezed, but evenly and continously spreaded instead.


You do realize that you can't just claim things like that on this forum without ABX test results?
Silversight
QUOTE(eofor @ Jun 8 2007, 11:21) *
QUOTE(init @ Jun 8 2007, 05:02) *


I have set the asio part to do 96kHz/24bit. It's just more natural, higher dynamic, less of a drone from my mediocre speakers since the frequency ranges don't appear to be so narrow and squeezed, but evenly and continously spreaded instead.


You do realize that you can't just claim things like that on this forum without ABX test results?

What he said is incompatible to logical thinking. It simply doesn't make sense.
Alex B
signorformaggio,

Your "generic Hong-Kong made USB-to-S/PDIF adapter" may not be able to pass-through 44.1 kHz. Usually this kind of gadgets can do only 48 khz. If this is the case then the audible difference might be caused by resampling that is done with a different component or otherwise differently. Unfortunately, it looks like the Monarchy 18b DAC doesn't have a sample rate display that could be used for verifying the sample rate of the incoming signal.

You could try to use foobar's resampler for creating a 48 kHz audio stream in the beginning of the audio chain and repeat the test.


EDIT: Silversight, -> signorformaggio
Mercurio
ASIO4ALL probably does a software resample from 44khz to 48khz, to be used by the soundcard (You can see it click on "advanced" in its config dialog).
You should try to circumvent this in your tests, like Alex said.

btw I don't understand why adding another layer like Asio4ALL could improve anything about sound quality.
Asio4all is an "emulated" Asio driver on top of the WDM one. I expect that using correct settings you should be not able to measure or distinguish between the drivers.

edit:
does Asio4ALL (or directsound) bypass kmix?
I remember that using it I was able to change the volume by the windows mixer, and to share the soundcard with other programs. So it must exist a "mixer" (and maybe another resampler) layer after Asio4ALL.
A real Asio driver locks the soundcard, and set the samplerate in a harder way.

QUOTE
I have set the asio part to do 96kHz/24bit. It's just more natural, higher dynamic, less of a drone from my mediocre speakers since the frequency ranges don't appear to be so narrow and squeezed, but evenly and continously spreaded instead. no way back.


I'm not sure to understand this blink.gif probably you are even using an "emulated" 96Khz/24bit driver on a 48Khz soundcard.

Welcome to Hydrogenaudio, anyway.
Silversight
QUOTE(Alex B @ Jun 8 2007, 12:24) *
Silversight,

Your "generic Hong-Kong made USB-to-S/PDIF adapter" may [...]

Are you sure you didn't want to respond to the OP (which is not me)? The last 10 posts are shown in reverse order.
lipidicman
QUOTE(Mercurio @ Jun 8 2007, 12:32) *

ASIO4ALL probably does a software resample from 44khz to 48khz

This would seem to be the case, and it saves my SoundMAX at work

QUOTE(Mercurio @ Jun 8 2007, 12:32) *

btw I don't understand why adding another layer like Asio4ALL could improve anything about sound quality.

For my setup I believe that ASIO does 44.1>48KHz (this is all the SoundMAX onboard can handle). It appears to do it better than the WDM driver. I get pops and clicks by standard whereas ASIO4ALL is solid and usuable. Not good, but usuable

QUOTE(Mercurio @ Jun 8 2007, 12:32) *

does Asio4ALL (or directsound) bypass kmix?
I remember that using it I was able to change the volume by the windows mixer, and to share the soundcard with other programs. So it must exist a "mixer" (and maybe another resampler) layer after Asio4ALL.
A real Asio driver locks the soundcard, and set the samplerate in a harder way.

I can use the final master volume, but with ASIO4ALL the mixer WAVE volume does not function. If using a digital out the master also has no effect. However with the WDM driver the WAVE volume modulates the digital out. The volume in foobar still works and so does replaygain.
Pusherman
QUOTE(Alex B @ Jun 8 2007, 13:24) *
Your "generic Hong-Kong made USB-to-S/PDIF adapter" may not be able to pass-through 44.1 kHz. Usually this kind of gadgets can do only 48 khz.


Windows XP's generic USB-Audio driver resamples to 48kHz by default, it doesn't depend on hardware.
Alex B
QUOTE(Silversight @ Jun 8 2007, 15:05) *
Are you sure you didn't want to respond to the OP (which is not me)? The last 10 posts are shown in reverse order.

Sorry. It was a mistake. I meant the OP.
lipidicman
QUOTE(Pusherman @ Jun 8 2007, 14:26) *

QUOTE(Alex B @ Jun 8 2007, 13:24) *
Your "generic Hong-Kong made USB-to-S/PDIF adapter" may not be able to pass-through 44.1 kHz. Usually this kind of gadgets can do only 48 khz.


Windows XP's generic USB-Audio driver resamples to 48kHz by default, it doesn't depend on hardware.


Interesting, so this means the £1k Musical Fidelity XDAC v8 is handling mangled data? Ughhh!
Alex B
QUOTE(Pusherman @ Jun 8 2007, 16:26) *

Windows XP's generic USB-Audio driver resamples to 48kHz by default, it doesn't depend on hardware.

If the hardware supports 44.1 then it possibly has its own driver support.

It is quite possible that both tested output signals were resampled. Possibly one was resampled by the DirectSound components and the other one was resampled by the ASIO driver.
(BTW, the OP said the used driver was ASIO2KS, not ASIO4ALL like someone mentioned.)

The graphic of the DirectSound output contain some signal that looks like dithering noise at about 20 kHz.
Pusherman
QUOTE(lipidicman @ Jun 8 2007, 17:20) *

Interesting, so this means the £1k Musical Fidelity XDAC v8 is handling mangled data? Ughhh!


It could be that only unknown USB-Audio devices do that...
jesseg
I figured out a way to only use Apogee's drivers for ASIO, and not DirectX & MME with my MiniDAC USB (and I also tried this before adding in the ASIO component)... At least with XP SP2, the default "USB Audio Device" driver (usbaudio.sys) does not convert output to 48kHz on MME or DirectX. It does have a limitation of 48kHz though.

Like, if you send 96kHz to it, it will send 48kHz to the soundcard. If you send 88.2kHz, it will send 44.1 to the soundcard, etc until you are at 48kHz or below. I have not tested below 44.1 nor do I have an accurate way of telling anyways seeing as I don't have any DACs with digital outputs (which would be a little more redundancy than i need, lol), and no usb->spdif doohiggys.


The noise shaping (aka a component of some dithering noise) is a byproduct of DirectX resampling, internally DirectX is using 64bit signal path, and MAN that's a lot of noise shaping. heh.


My main concerns in this test, after getting rid of the resampling & dithering problems on BOTH soundcards used, would be:
#1 to remove the analog signal path. using a Soundblaster to record from your Monarchy is... wow, i'm speechless. wink.gif
and #2, to make sure that there is minimal Jitter. Unfortunately the only thing Monarchy can say about jitter is:
QUOTE
Monarchy has selected very high quality input circuits to receive the digital signal from your transport, which keeps that nasty thing called "jitter" to a minimum.
So that basically means nothing. It doesn't even mention if dual-clocks (in serial) are used. And if you used your Soundblaster's digital inputs from your USB->spdif thingy, I really doubt Soundblaster is using dual-clocks on it's spdif input, but it's a possibility. No matter what though, you'll need dual-clocks to ensure that you have the best chance of staying jitter-free. RME has at least posted on their website the most research about jitter than any of the more "mainstream" soundcard/converter manufacturers that I've seen, and I recommend checking that information out.


And also, of course, for the test to be ASIO instead of "ASIO", that should be dealt with as well. But I'm just repeating what other people said at this point.
CSMR
I wouldn't go through the normal mixer in XP for playback; it is no good. Vista has a much improved system that probably does make ASIO unnecessary unless you need low latency.
Martin H
QUOTE(CSMR @ Oct 21 2007, 07:07) *

I wouldn't go through the normal mixer in XP for playback; it is no good.

Please post ABX results of you being able to tell the difference between DirectSound and ASIO or DirectKS.

Nothing personal, but it's posts like these which makes newbies think that they actually need ASIO or DirectKS for playback purposses...
jesseg
An ABX isnt needed, as there are already proven and very well documented (even by Microsoft) FACTS about the subject - going into microscopic detail about what's going on with the audio signal path of the associated APIs involved.

But also, there are variables to the testing too, like the user's hardware used (and it's drivers) to source the ABX test files. And ABX test would not prove anything anyways, because chances are they might not have the training or the hardware to pull of such a test. It would not be a properly designed ABX test unless administered by someone else (aka blind ABX), and on very high quality hardware. A lack of statistically significant results only proves that CSMR probably can't hear the difference on his setup.

But again, it's pointless to ABX this, there's a plethora of material on DirectX, Microsoft Audio Service, the soundcard driver APIs, and the various default (Microsoft stock) soundcard driver components. I would guess the same goes for Vista too. (truthfully I don't surf MSDN a lot, and i could care less about Vista)

What would be something to have CSMR prove, through referencing technical documentation on the subject, is what the differences are between XP & Vista, while using DirectX and MME (direct and through "Microsoft Sound Mapper") and also (for extra credit?) have him go into what a soundcard driver can do "wrong" to degrade quality (including how it might operate the hardware in "non optimal" ways *cough*ac97*cough*).

Can you agree the FACTS would trump any ABX test?
Lyx
QUOTE(jesseg @ Oct 21 2007, 20:13) *

Can you agree the FACTS would trump any ABX test?


1. Facts and a positive ABX test must always not be in conflict. If there is a conflict between both, then one of both must be wrong. This can be the facts as well as the abx-test.

2. We dont play music because windows likes it so much. We also dont play music because of funny numbers (well yes, there are some people who do listen to numbers instead of to music - but logically, their arguments are then still void, because they could talk about those numbers, not about perceived sound and music). We listen to music for the listener. If it makes no difference to the listener, it doesnt matter. Facts dont matter, as long as they do not affect the listener. As such, facts are a nice "support" and "safety-check".... but if the listener perception doesnt notice those facts, then those facts are irrelevant for LISTENING.
Martin H
QUOTE(jesseg @ Oct 21 2007, 20:13) *

Can you agree the FACTS would trump any ABX test?

No.
jesseg
So if an ABX test shows a result that is different from FACT, aka the truth... then the ABX is right, and the truth is wrong?

Well, I have nothing further to add to this thread then. lol.
Lyx
QUOTE(jesseg @ Oct 21 2007, 21:05) *

So if an ABX test shows a result that is different from FACT, aka the truth... then the ABX is right, and the truth is wrong?

Well, I have nothing further to add to this thread then. lol.

But i have something to add - humans dont know the entire truth. You are not omnipotent. All your knowledge is just a fraction of whats out there. "Fact" is just a objectively-twisted word for "logically true according to all those aspects which we know and considered, unless we made a mistake". If the information on which the "fact" is based is flawed - or if other aspects are relevant which weren't known or considered - then an apparently "true" fact easily can become "false". All your "knowledge" is at best "highly probable" but never "absolutely certain".

What you call "truth" means "everything which is". Since you are not god, you are very far away from even having the slightest grasp of "everything".

Welcome to mortality.
Martin H
QUOTE(jesseg @ Oct 21 2007, 21:05) *

So if an ABX test shows a result that is different from FACT, aka the truth... then the ABX is right, and the truth is wrong?

Well, I have nothing further to add to this thread then. lol.

With DirectSound output, then kmixer.sys will mangle the audios least significant bit(because of volume control function), however this bit-mangling isn't percievable to the human ear and hence, using ASIO or DirectKS for playback purposses is utterly pointless. The only valid reason for using those outputs for playback purposses is when you have buggy DirectSound drivers, or when some special features are available only with ASIO, like e.g. over 16 bit precision or something like that, but again, that has nothing to do with the output method in itself i.e. that DirectSound should be of any lower percievable sound quality than the others. Theoretical yes, but percievable, no.
DrErling
QUOTE(Lyx @ Oct 21 2007, 20:09) *

humans dont know the entire truth. You are not omnipotent. All your knowledge is just a fraction of whats out there. "Fact" is just a objectively-twisted word for "logically true according to all those aspects which we know and considered, unless we made a mistake". If the information on which the "fact" is based is flawed - or if other aspects are relevant which weren't known or considered - then an apparently "true" fact easily can become "false". All your "knowledge" is at best "highly probable" but never "absolutely certain".

What you call "truth" means "everything which is". Since you are not god, you are very far away from even having the slightest grasp of "everything".

Welcome to mortality.


Very well said!
w1L50n
There is no such thing as truth....only perspective.
A.Philosopher
WonderSlug
I have tried both ASIO4ALL vs. DirectSound on my Windows XP system with my Creative SB Live! PCI card.

ASIO4ALL has caused BSoD crashes on my system. It typically happens when I'm playing music in my software media player using the ASIO4ALL output interface. While I do this, I am web browsing and come across web sites that have embedded Flash or other video/animations that play audio. Or, I'll be playing a game and want to turn down the music, preferring to listen to my own music instead via that software media player.

It seems multiple apps all trying to play audio at the same time cause the BSoD when using an ASIO driver for any of them.

I don't get this with DirectSound/WaveMapper. They all coexist happily (well, as happily as can be expected when multitasking) without BSoD crashes if I eliminate ASIO4ALL from the mix.


jesseg
It's likely related to a change in the layer of filters somewhere relating to kernel streaming audio drivers. Because I had the exact same thing happen with Virtual Audio Cable after a windows update about 1.5 months ago, and had to uninstall it until a new version was put out without the problem.
[JAZ]
@WonderSlug:
Why do you use ASIO4ALL with an SB Live, instead of the Kx drivers? ASIO4ALL is for the soundcards of which its drivers don't support ASIO.

Also, if not supported via hardware, ASIO can only play one audio source at a time. When wanting to play a second one, it keeps paused until the first one is stopped, so your BSOD crashing actually reflects that the drivers don't work for you in your setup.
WonderSlug
QUOTE
' date='Feb 10 2008, 05:44' post='546475']
@WonderSlug:
Why do you use ASIO4ALL with an SB Live, instead of the Kx drivers? ASIO4ALL is for the soundcards of which its drivers don't support ASIO.

Also, if not supported via hardware, ASIO can only play one audio source at a time. When wanting to play a second one, it keeps paused until the first one is stopped, so your BSOD crashing actually reflects that the drivers don't work for you in your setup.


Because I first heard about it last year and a lot of people were raving about ASIO and how it made things sound better than DirectSound. So, I decided to give it a try, and it works great, if I use only one app to output sound through ASIO.

If I try multiple apps, that's where the problems occurred. So, I switched everything back to DirectSound. I don't have any external music devices (like MIDI keyboards or drumkits) that would take advantage of ASIO.

I don't recall noticing much of a difference in audio quality over using DirectSound or Wave Mapper. I guess my system was already tweaked pretty well to begin with, since with headphones on, I don't notice any interference or distortion in the audio.
volvme+
I have a very strange "problem". I'm pretty sure that I hear difference between ASIO and DirectSound (I've also made a quick blind test having my brother change the output methods in foobar2000. I was right 3/3) but... I prefer the sound from DS (god, I really didn't want to say that). ASIO is overwhelmingly "bright" to me. Is there any logic in that at all?
I use E-MU 0404USB with foobar2000 0.9.5.1 and Sennheiser HD595 on Vista64.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2008 Invision Power Services, Inc.