so obviously kmixer changes digital stream in some way
Quoteso obviously kmixer changes digital stream in some wayBut the change that quashes DTS doesn't have t9o be great enough to be perceived with regular stereo material.
Quote from: AndyH-ha on 03 February, 2007, 07:27:57 PMQuoteso obviously kmixer changes digital stream in some wayBut the change that quashes DTS doesn't have t9o be great enough to be perceived with regular stereo material.Contrary to popular belief, the kmixer of XP and 2k doesn't change a thing when you move the wave volume slider to the max. DTS encoded wave files can be played through WaveOut/DSound and through the kernel mixer without any loss.And I should know, I've developed a driver for the C-Media 8738/8768 which just can do that stunt.The mixing engine of Vista works with 32bit float samples, so there's actually some information lost in the conversion. But there is a so called "exclusive mode" which is available through the WASAPI. It should give you bitperfect output, albeit I haven't seen software which actually support it (yet).
So are you saying that the audio quality that comes standard for XP is superior to what comes standard for Vista?
Contrary to popular belief, the kmixer of XP and 2k doesn't change a thing when you move the wave volume slider to the max. DTS encoded wave files can be played through WaveOut/DSound and through the kernel mixer without any loss.
ONLY way I can get unchanged DTS signal to my receiver is when bypassing kmixer via ASIO or KS plugin.
Well, a couple of months ago I managed to get mi CMI8738 based card digital input to work.Using it, and bit-perfect recording the digital output of my Audiophile card at 44.1 KHz mode, I've been able to verify that kmixer indeed does something to the data passed to it. The change is very subtle, so it was not detectable on my analog measurements of the soundcard output. What I've verified that kmixer does to 16-bit audio data, is just mangle the last bit of the data. It does like some kind of re-dithering of the signal, adding a very little amount of spectrally uniform noise to the signal, so that it is no longer bit-perfect. It also adds a very little amount (around -120 dB amplitude) of distortion that can be considered negligible.I have measured this noise but I don't have the results at hand right now, but with this noise added, the dynamic range of the 16-bit signal is still better than 90 dB.I haven't been able to do same tests with 24-bit audio, because I can't get a 24-bit recorded data, but I think this is a problem of my testing configuration, because on analog measurements, the analog output of the card with kmixer processing was able to produce an analog signal with better dynamic range than the possible with 16-bit audio. I'm trying to fix this.When using kernel streaming and ASIO, the output is bit-perfect in 16-bit mode, as it was supposed. There's some evidence that using directsound acceleration (also called hardware mixing) does same thing as using kernel streaming, and enables getting bit-perfect output. However, I haven't been able to verify this, since my Audiophile card doesn't support it.Note that when kmixer is acting and you play 44.1 KHz data, it can do do two different things depending on the driver implementation. The first is just this relatively bening bit mangling I've talked about in this post. But on some cards and modes (wave output instead of directsound, for example), it will resample the signal to 48 KHz, and this is a greater change to the signal. I haven't done very detailed tests over this resampling, but it worsens a little bit more the SNR of the signal, causes some low-level distortion and causes a very slight HF rollof. At first I don't think this is audible under usual listening conditions, but I haven't done any listening tests.Note also that there are some professional-oriented cards that use special WDM drivers that don't suffer from any of those kmixer issues. These drivers don't fully conform to the WDM standard, and can't use kernel streaming, but, on the other side, they don't need it. RME cards for example, use this kind of non-standard, kmixer-free, WDM drivers.
Well, I just did a few more tests. I own now both a Revo and an Audiophile, so I can play all types of data on the digital output of the Revo and record them with the digital input of the Audiophile. I just did some RMAA 4.3 measurements, that uses WDM (directsound) drivers, and here are the results:I will give results without A weighting, I like it better.1st figure is reference, best possible value. 2nd is kmixer bit-mangled output.Frequency response is totally flat in all cases, so is omitted.16 bit, 44.1 KHz:============Noise: -96.4 dB, -93.4 dBDynamic range: 94 dB, 90.9 dBTHD: 0.000%, 0.001%THD+N: 0.003%, 0.004%IMD+Noise: 0.006%, 0.008%Crosstalk @1KHz: -94 dB, -90 dBThe distortion product that appears at the THD measurement is at -110 dB, not -120 as I said previously. It is still a negligible value in my opinion. The biggest difference is the slight increase of the noise floor. As you see, even here the difference is quite small.24 bit, 44.1 KHz:============Noise: -146.3 dB, -141.5 dBDynamic range: 139.5 dB, 137.3 dBTHD: 0.000%, 0.000%THD+N: 0.000%, 0.000%IMD+Noise: 0.000%, 0.000%Crosstalk @1KHz: -141.8dB, -137.2 dBFor 32-bit audio, results are slightly better but very similar.Taking into account that due to real-world constraints of electronics the best hardware available can't have a dynamic range better than around 120 dB, the effect of kmixer bit-mangling in this case is totally negligible.And, if you play your 16-bit data as 24 bit or 32 bit, the result is that in practice the full 16-bit resolution is retained, even if you don't use kernel streaming, because the bit-mangling effects are much below 16-bit resolution. In a RMAA measurement, the results in this case were identical to the 16-bit reference results. But this will be true just if your card is a true 24-bit card.Even when the differences are small or very small and quite possibly inaudible even in the the worst case, this bit-mangling will prevent from bit-perfect digital transfers in any case.Again, note that this measurements are about this kmixer bit-mangling, which I don't think is any kind of resampling. Measurements of real kmixer resampling (that happens at my card when for example both a stream at 48 KHz and 44.1 KHz are played at same time, or when the output is locked at 48 KHz and you play a 44.1 KHz stream), and its effects are much more evident, see link at a previous post. Resampling produces a worse THD & IMD, easy to see at the THD spectrum, and a slight but measurable difference in frequency response. The effects measured here are just due to some kind of partial "re-dithering" of the signal, probably performed at some stage of kmixer software mixing. But it's not resampling.As I said at a previous post, on some cards (not Revo) resampling will happen whenever you play a 44.1 KHz stream, or when you use waveout instead of directsound... it depends on the card and its drivers, but in better cards this resampling happens just when it's unavoidable (simultaneous playback of both a 48 and 44.1 stream, or lock of the sampling rate at 48 KHz).So, the bit-mangling measured here, always, always happens when you play 44.1 KHz data on WinXP (and same seems to happen with Win2K), which is something that AFAIK Microsoft doesn't say. It can be avoided just if you use kernel streaming or ASIO audio interfaces, or your card supports hardware mixing (same as directsound acceleration) and it is enabled.Note that Creative cards support hardware mixing and kernel streaming, but they internally resample all 44.1 KHz data, so in practice the result is probably even worse that if they use kmixer resampling.
KMixer issue resolvedHere's an update to the KMixer issue.Some of the design goals for the KMixer that affects this issue are:1) Create a standard interface to the audio device2) Handle multiple asynchronous streams of audio3) Handle streams of different sampling rates4) Efficient, low CPU usage (keep data streams moving, even on slower systems)5) Volume controlIn order to meet these goals, the KMixer can not guarantee bit perfect playback. Hence it does not support non-PCM streams. The DTS CD (masquerading as a PCM stream) is corrupted in the process. DVD and CD players don't need to meet the above requirements, so they simply pass the stream along. DTS really should have standardized their format. Regardless, the bit manipulation occurs because of volume control.Since most PCM data is 16 bits, on MMX systems the KMixer uses 16 bit math to take advantage of the SIMD parallelism of MMX. 15 bits are used for multiplication and 1 bit for sign. This means that the KMixer can not represent an amplitude of 1.0. The best it can do is 7FFF/8000. So on MMX systems, when the volume is set to 0dB attenuation, KMixer still attenuates the signal slightly - so the bits are changed.On non-MMX systems, the KMixer uses floating point math to handle volume. This results in higher CPU usage, but allows the KMixer to reach an amplitude of 1.0. The floating point numbers are then converted back to integers (because that's what the sound card is connected with) and ends up dithering the stream in the process.When bit perfect playback is necessary, Kernel Streaming is recommended.Essentially, it comes down to the following:1) The KMixer does not support non-PCM streams (which the DTS CDs are)2) A 1/8000 volume attenuation is extremely small. Can anyone hear really hear it? Refer back to KikeG's measured ratings:http://www.avsforum.com/avs-vb/show...886#post2493886I recommend continuing to use Kernel Streaming for your DTS CDs. For PCM data, it is not necessary.
We've dropped the 'Q' from our article names. Search by the the number and it will come up.I can't comment too much on the other thing, other than it is incorrect information. I'll just stop there.Also, if anyone is affected by the issue described in the article below, please contact us for the hotfix. The link is in the article. It is scheduled for SP2 if you can wait:813347 Audio and Video May No Longer be Synchronized After You Issue ahttp://support.microsoft.com/defaul...kb;en-us;813347
QuoteSo are you saying that the audio quality that comes standard for XP is superior to what comes standard for Vista? The thing that concerns me about difference between XP and Vista is that Vista seems more DRM prone, which doesn't come as a surprise (that's another topic though and I am not trying to sidetrack the discussion). Does it really matter though honestly? I mean if you have Foobar2000 with kernel streaming you should be all set right? Just my two cents
But like I said, it is impossible (or I haven't found a way yet) to forward a regular wave stream bitperfectly to the receiver through DirectSound/WaveOut.
you mean just in Vista, right? Becaues just before that you said that in XP you could get bit perfect through DirectSound/WaveOut
The thing that concerns me about difference between XP and Vista is that Vista seems more DRM prone, which doesn't come as a surprise (that's another topic though and I am not trying to sidetrack the discussion).
Vista lets you do everything XP did, plus a bunch of things hollywood wants restricted, that XP simply can't do at all. (HD-DVD playback for instance).
they build the infrastructure needed to allow us to watch DRM'd stuff, period.
Show me something that worked under XP but doesn't in Vista due to DRM, and i'll take it back.
Actually you are able to disable driver signing by displaying and selecting the appropriate item in the boot menu. In the 64Bit version.
Well, sidetracking successful. What the hell does "DRM prone" mean?? The amount of uninformed bitching about DRM is really getting to me. Vista lets you do everything XP did, plus a bunch of things hollywood wants restricted, that XP simply can't do at all. (HD-DVD playback for instance). Microsoft isn't "out to get us" with DRM... they build the infrastructure needed to allow us to watch DRM'd stuff, period.Show me something that worked under XP but doesn't in Vista due to DRM, and i'll take it back.