[wdmaudiodev] KMixer handling of 24b audio under XP

  • From: Dominik Peklo <dominikp@xxxxxxxxxxxxxxxxx>
  • To: wdmaudiodev@xxxxxxxxxxxxx
  • Date: Wed, 3 Feb 2010 22:18:38 +0800


While working on a 24b capable USB Audio device, I've noticed a strange 
behavior on KMixer's part. When playing 16b audio through DirectSound or 
WaveOut and looking at the data leaving through USB, there is an occasional FFh 
value in the LSB of the 24b sample. Then I tried to wrap the 16b data into 24b 
with zero padding and play that through DS/WaveOut only to find the exact same 

The only way I could achieve bit accurate playback was using Kernel Streaming 
to ASIO wrapper ASIO4ALL. Strangely, native Kernel Streaming component in 
foobar2000 v0.8.3 or v1.0 didn't work for me. The USB Audio device selects Alt 
Setting and receives sample rate request, but there's no data streaming and 
playback time is stuck at 0:00.

Based on what I saw I'm guessing there is a dithering going on constantly in 
KMixer and once in a while the dither amplitude makes it into the 24th LSb - 
but only in a negative direction since I never saw 01h in the LSB - most of the 
time it's 00h as expected with an occasional FFh.

Is there any way to prevent this from happening? Any way to turn off the 

I'd love to hear your thoughts / experience,


PS: Also proved the same behavior on Benchmark DAC1 PRE, who's maker is proudly 
advertising it to be bit accurate using DirectSound on XP - Turns out, not so!

WDMAUDIODEV addresses:
Post message: mailto:wdmaudiodev@xxxxxxxxxxxxx
Subscribe:    mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=subscribe
Unsubscribe:  mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=unsubscribe
Moderator:    mailto:wdmaudiodev-moderators@xxxxxxxxxxxxx


Other related posts:

  • » [wdmaudiodev] KMixer handling of 24b audio under XP - Dominik Peklo