How are you aligning the 24 valid bits in the 32-bit containers? The valid bits should be the most significant bits, at least when handed to the app (I don't know about on the wire.) In this capture dump it looks like they're the least significant bits. Apps would interpret this data as: FFFFFF-- FFFFFF-- 000000-- FFFFFF-- 000000-- FFFFFF-- 000000-- FFFFFF-- 000000-- FFFFFF-- 000000-- FFFFFF-- FFFFFF-- 000000-- 000000-- FFFFFF-- FFFFFF-- 000000-- FFFFFF-- FFFFFF-- 000000-- FFFFFF-- FFFFFF-- 000000-- ... that is, a bunch of -1s and 0s. I would expect to see this instead: FFFF4F-- FFFFBA-- 000016-- FFFF76-- 0000AD-- FFFFD6-- 000078-- FFFFD2-- 000021-- FFFFC4-- 000011-- FFFF82-- FFFF8E-- 000092-- 000040-- FFFFFA-- FFFFA4-- 000046-- FFFFAA-- FFFFFB-- 000018-- FFFFB8-- FFFFF7-- 00001C- ... which could easily be valid audio data (at very low amplitude), or could be garbage. From: wdmaudiodev-bounce@xxxxxxxxxxxxx [mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx] On Behalf Of Daniel E. Germann Sent: Wednesday, October 26, 2011 10:48 AM To: wdmaudiodev@xxxxxxxxxxxxx Subject: [wdmaudiodev] Re: USB audio record problem I changed our USB audio device so that the record side sends 24-bit data in a 32-bit field to the PC. I can see what appears to be valid 24-in-32 audio data on our USB analyzer. But I'm still getting data that looks like this in the capture buffer: FFFFFF4F FFFFFFBA 00000016 FFFFFF76 000000AD FFFFFFD6 00000078 FFFFFFD2 00000021 FFFFFFC4 00000011 FFFFFF82 FFFFFF8E 00000092 00000040 FFFFFFFA FFFFFFA4 00000046 FFFFFFAA FFFFFFFB 00000018 FFFFFFB8 FFFFFFF7 0000001C That's using WAVE_FORMAT_EXTENSIBLE with wBitsPerSample set to 32 and wValidBitsPerSample set to 24 -- which exactly matches the audio format sent by the USB device. There's clearly something wrong here. Either I'm missing something in our USB Audio Class device implementation (although the device works fine in 24-bit mode on Windows 7), or there's something wrong in the wave format descriptors in our test program (which also works fine on Windows 7), or there's some kind of problem in how Windows XP deals with record data from 24-bit USB audio devices. Playback works fine. And if I open the record device in 16-bit mode (even though it's still sending 24-bit audio), that works, too. This only happens when the device is opened in 24-bit mode. Can anyone shed some light on this problem? Does anyone have a USB Audio Class input (record) device with 24-bit audio working with the in-the-box drivers on Windows XP? Thanks, -Dan On Fri, 14 Oct 2011 19:55:22 -0500 "Daniel E. Germann" <deg@xxxxxxxx<mailto:deg@xxxxxxxx>> wrote: > Hi, Matthew. > > Interesting. So you're saying that KMixer won't do an >automatic bit depth conversion in that case? It >certainly seems to be doing bit depth conversion for >16-bit-in-16-bit-container mode. But it won't do it for >24-bit-in-32-bit-container mode? So if I change the USB >format descriptor to 24-bit-in-32-bit-container mode (and >make the corresponding alignment changes to the data), >then all will be well? I hate to do that because it >wastes a lot of USB bandwidth. > > And that still doesn't explain why when I open the >device in 24-bit-in-24-bit-container mode, it doesn't >work. That is the one format that ought to work -- it's >exactly what the device supports. But all I get in that >mode are 000000's and FFFFFF's. The only format I can >get to work is 16-bit-in-16-bit-container. Do you have >any idea why this doesn't work? > > Can any other USB audio device developers shed some >light here? Are you all using 24-bit-in-32-bit-container >mode for your audio? Is anyone successfully using >24-bit-in-24-bit-container mode? > > Thank you, > -Dan > > ----- > >From: Matthew van Eerde > To: <wdmaudiodev@xxxxxxxxxxxxx<mailto:wdmaudiodev@xxxxxxxxxxxxx>> > Date: Sat, 15 Oct 2011 00:26:42 +0000 > > If the device supports only 24-bits-in-24-bit >containers, I would expect the > driver to fail any request for 24-bit-in-32-bit >containers. If the driver is > falsely accepting requests for formats that the hardware >doesn't support, that > would explain why the audio data is corrupted. > ****************** 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 URL to WDMAUDIODEV page: http://www.wdmaudiodev.com/