Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: "ASIO" vs. Directsound (Read 55964 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

"ASIO" vs. Directsound

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):



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)

"ASIO" vs. Directsound

Reply #1
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?
budding I.T professional

"ASIO" vs. Directsound

Reply #2
Are you sure that the two files have equal volume and have aligned offsets?

"ASIO" vs. Directsound

Reply #3
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.

"ASIO" vs. Directsound

Reply #4
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

"ASIO" vs. Directsound

Reply #5
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

"ASIO" vs. Directsound

Reply #6
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?

"ASIO" vs. Directsound

Reply #7


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.
Nothing is impossible if you don't need to do it yourself.

"ASIO" vs. Directsound

Reply #8
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: [!--sizeo:1--][span style=\"font-size:8pt;line-height:100%\"][!--/sizeo--]Silversight, -> signorformaggio[/size]

"ASIO" vs. Directsound

Reply #9
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    probably you are even using an "emulated" 96Khz/24bit driver on a 48Khz soundcard.

Welcome to Hydrogenaudio, anyway.

"ASIO" vs. Directsound

Reply #10
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.
Nothing is impossible if you don't need to do it yourself.

"ASIO" vs. Directsound

Reply #11
ASIO4ALL probably does a software resample from  44khz to 48khz

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

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

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.

"ASIO" vs. Directsound

Reply #12
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.


 

"ASIO" vs. Directsound

Reply #14
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!

"ASIO" vs. Directsound

Reply #15
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.


"ASIO" vs. Directsound

Reply #17
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. 
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.

"ASIO" vs. Directsound

Reply #18
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.

"ASIO" vs. Directsound

Reply #19
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...

"ASIO" vs. Directsound

Reply #20
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?

"ASIO" vs. Directsound

Reply #21
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.
I am arrogant and I can afford it because I deliver.


"ASIO" vs. Directsound

Reply #23
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.

"ASIO" vs. Directsound

Reply #24
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.
I am arrogant and I can afford it because I deliver.