Vista's Sound
Aug 26, 2007 at 1:52 AM Post #31 of 55
Quote:

Originally Posted by Hancoque /img/forum/go_quote.gif
@thomaspf: What I wanted to ask you the whole time is: What difference did you exactly measure and how? Did you connect a digital output to a digital input? What does the difference show? Is it just dithering? Can you provide me with a test sample?


Digital output to digital input. If you PM me a mail address I can send you some files to look at. Might take till tomorrow.

Cheers

Thomas
 
Aug 26, 2007 at 11:33 AM Post #32 of 55
Even on high end DACs such as the top of the line ones used in the Elite Pro card have a slight reduction in performance even at 96KHz compared to 48KHz sampling. Resampling to 96KHz from 44.1KHz will add artifacts to the signal as it is not a direct multiple. It may actually be the artifacts that people hear & think it sounds better instead of just different.
 
Aug 27, 2007 at 3:07 AM Post #33 of 55
Okay, I received the files and compared them. There is indeed a difference. I inverted one file and mixed both together so that only the differences remain.

First of all, there seem to be three bit errors because I noticed three samples with an amplitude of 488 and 489 (16 bit integer). Three in about six million doesn't seem like some kind of processing to me, so I assume these are bit errors that occurred during the digital transfer.

Then there seems to be some kind of noise. The amplitude of this noise ranges from -1 to +1, so it might be some kind of dither. It can however not be found in silent parts of the sample. It is also noteworthy that this noise is not entirely random. Globally the noise ranges from -1 to +1, but if you zoom in, you will notice that it ranges from -1 to 0 for a certain number of samples and from 0 to +1 for the next (or previous) number of samples. Inside of each of these sample fragments the values seem to be random and the fragments are getting shorter over time. Then I amplified the signal by 72 dB and listened to it. It sounds like noise with the original signal in it (a sine sweep). So, what is it exactly? Shouldn't dither be different and not include the original signal?
 
Aug 27, 2007 at 4:16 AM Post #35 of 55
Quote:

Originally Posted by Hancoque /img/forum/go_quote.gif
Okay, I received the files and compared them. There is indeed a difference. I inverted one file and mixed both together so that only the differences remain.

First of all, there seem to be three bit errors because I noticed three samples with an amplitude of 488 and 489 (16 bit integer). Three in about six million doesn't seem like some kind of processing to me, so I assume these are bit errors that occurred during the digital transfer.



That sounds logical. You will probably find those also in the ASIO version.

Quote:

Originally Posted by Hancoque /img/forum/go_quote.gif
Then there seems to be some kind of noise. The amplitude of this noise ranges from -1 to +1, so it might be some kind of dither. It can however not be found in silent parts of the sample. It is also noteworthy that this noise is not entirely random. Globally the noise ranges from -1 to +1, but if you zoom in, you will notice that it ranges from -1 to 0 for a certain number of samples and from 0 to +1 for the next (or previous) number of samples. Inside of each of these sample fragments the values seem to be random and the fragments are getting shorter over time. Then I amplified the signal by 72 dB and listened to it. It sounds like noise with the original signal in it (a sine sweep). So, what is it exactly? Shouldn't dither be different and not include the original signal?


Well, it just came to me that this effect could be caused by some processing similar to what kmixer does to 16 bit samples in XP. The volume processing is using MMX instructions and multiples each sample with a value a tiny bit smaller than 1.0. The result is really close but when you substract it from the original you should be left with something that still sounds like the original just at a very low level.

The signal is a log sweep created with the Acourate room correction software. The nice thing about it are the dirac pulses that let you synchronize original and recording.

Cheers

Thomas
 
Aug 27, 2007 at 5:31 AM Post #36 of 55
When I use Vista and want to listen to a CD while there is network activity(totally unrelated to audio), there is a lot of popping and other distortion. I thought this was weird, so I looked it up, and apparently the Vista audio stuff and the Vista network stuff don't play well together. It isn't just me who has this problem.
 
Aug 27, 2007 at 1:13 PM Post #37 of 55
I looked at the second set of samples (DirectSound in XP and ASIO - ASIO in Vista or in XP by the way?). ASIO is indeed bit-perfect while DirectSound in XP leaves noise in the signal (ranging from 0 to +1), so it might be dither but I wonder why it doesn't range from -1 to +1. In this noise, no trace of the original signal can be heard (after enough amplification).
 
Aug 27, 2007 at 1:29 PM Post #38 of 55
Quote:

Originally Posted by Dark_Archon /img/forum/go_quote.gif
When I use Vista and want to listen to a CD while there is network activity(totally unrelated to audio), there is a lot of popping and other distortion. I thought this was weird, so I looked it up, and apparently the Vista audio stuff and the Vista network stuff don't play well together. It isn't just me who has this problem.


Yeah, there was a big stink about this last week.
 
Aug 27, 2007 at 3:27 PM Post #39 of 55
I used a USB->S/PDIF adapter for all results. The ASIO version is from XP but Vista produces exactly the same result since I used ASIO4ALL, so it actually uses kernel streaming.

The XP noise is the effect of kmixer caused by the volume processing. Even at full volume all samples are multiplied with a number just a bit smaller than 1.0.

The interesting learning here is that Vista makes thing even worse when operating in 16 bit.

Cheers

Thomas
 
Aug 27, 2007 at 5:39 PM Post #40 of 55
May it be some kind of optimized dither in Vista? Because the noise has negative values where the original signal also has. The same applies to positive values. Maybe that masks the dither a bit more?

Basically the noise works this way:
Randomly add 0 or 1 to a positive amplitude and randomly subtract 0 or 1 from a negative amplitude. So the noise either amplifies the signal by 1 or it leaves the signal as it is on a per sample basis. That would cause the difference to leave the noisy shadow of the original signal we detect.

This would be the algorithm in a c-like syntax:
Code:

Code:
[left]if (sample > 0) { sample = sample + random(0, 1); } else if (sample < 0) { sample = sample - random(0, 1); } else // sample == 0 { // do nothing }[/left]

 
Aug 27, 2007 at 6:28 PM Post #41 of 55
That algorithm looks more like adding some random noise to simply mask the artefacts of simplistic word length truncation in noise rather than doing any form of noise shaping or trying to preserve any audible signal below the 16th bit.

Given that we now only the high order 16 bits to be relevant and all lower order bits are zero that is pretty bad.

I wonder how that would look like if you run it through something a bit more advanced like POW-R.

One of the the Rightmark Audio authors is working in the field of dithering for word length reduction. http://audio.rightmark.org/lukin/dither/dither.htm

Cheers

Thomas
 
Aug 27, 2007 at 6:49 PM Post #42 of 55
Well, I consider simple triangular dithering to be good enough. It kills any harmonic distortions and has a noise floor of about -90.32 dB in 16 bit samples and -138.51 dB in 24 bit samples. That should be quite sufficient for a real time dithering algorithm.

Update:
I tested the algorithm to see if it can be used for dithering. I used "normal" music that I converted to 8 bit (because it's easier to compare than 16 bit or even 24 bit) using no dither, triangular dither and the algorithm described in this thread. The "Vista algorithm" definitely sounds better than the signal with no dither. I cannot really judge if it is better then the triangular dither. It seems to me that it is better, because it is less audible. But as rectangular dither is known to leave harmonic distortions I think that from a technical point of view it must be worse because random values are only generated once per sample (like in rectangular dither) and not twice like in triangular dither. But as a dithering algorithm it definitely works somehow. The question is how good it is in comparison to rectangular and triangular dither and if there are any negative side effects.
 
Aug 28, 2007 at 1:42 AM Post #43 of 55
Quote:

Originally Posted by Dark_Archon /img/forum/go_quote.gif
When I use Vista and want to listen to a CD while there is network activity(totally unrelated to audio), there is a lot of popping and other distortion. I thought this was weird, so I looked it up, and apparently the Vista audio stuff and the Vista network stuff don't play well together. It isn't just me who has this problem.


That is similar to the problems I was having but related to my video card. I updated my video card drivers and the popping went away. It seems Vista sound doesn't play nice with, well, anything
blink.gif
.
 
Aug 28, 2007 at 9:43 PM Post #45 of 55
Quote:

Originally Posted by Hancoque /img/forum/go_quote.gif
And why would you want to set Vista to 44.1 kHz if your sound card has a native sample rate of 48 kHz?


You really understood nothing did you?
 

Users who are viewing this thread

Back
Top