[wdmaudiodev] Re: Audio anomaly in Vista/Win7 WDM audio

  • From: Mike Horgan <mhorgan@xxxxxxxxx>
  • To: "wdmaudiodev@xxxxxxxxxxxxx" <wdmaudiodev@xxxxxxxxxxxxx>
  • Date: Fri, 9 Dec 2011 12:06:42 -0800

Max packet size for iso endpoint == 432

This is a play issue.  The anomaly exists in the stream data received by my 
render pin and is dutifully played out the usb by the driver.  It seems almost 
like some sort of issue where the buffering on the pin starts to decay and by 
the time the system recognizes that it feels it needs to provide extra audio 
which includes the glitch.  I don't have any concrete evidence of this though 
and I'm not entirely sure how the windows system deals with an issue like this. 
 It seems more likely that it would throw audio away in order to stay  in sync.

The audio device itself is a bit blocking in the manner in which audio flows.  
The interface runs 18 channels up/down, 24 bit, 48000 hz.  The driver slaves to 
the device in the sense that track the number of frames of audio coming in from 
the device and parrot that number of frames out shortly after.  If you look at 
the average amount of data arriving from the device it matches the 18 channels. 
 The device tends to send more data than the average for short periods, 
followed by less data.  While the clip is playing, the system is querying the 
audio position and I was thinking that maybe the blocky nature of the device 
was somehow confusing the system into thinking it needed to make some sort of 
adjustment to compensate.

From: wdmaudiodev-bounce@xxxxxxxxxxxxx 
[mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx] On Behalf Of Tim Roberts
Sent: Friday, December 09, 2011 2:45 PM
To: wdmaudiodev@xxxxxxxxxxxxx
Subject: [wdmaudiodev] Re: Audio anomaly in Vista/Win7 WDM audio

Mike Horgan wrote:

What I've noticed is that at random times (typically 1 or 2 times in the 15 
second file) I'll hear a pop while the tone is  playing.  After the play I 
export the output usb data from the usb analyzer trace and look at the usb and 
data from the host using Audacity.  When I do, I can clearly see a 
discontinuity in the waveform, and the position of the glitch lines up 
perfectly in both the trace from the host and the usb data.  The total waveform 
itself is the correct length (15 seconds).  If I zoom in on the anomaly, it 
looks like a dc value has been substituted for the sine wave.  In vista, the 
value always seemed to be zero, while  under Win7 it is sometimes zero and 
sometimes a negative value.  Since it appears in the trace from the host's 
stream pointers, it makes me think that the host thinks something is strange 
about the play timing.

Does anyone have any thoughts about what might cause such a glitch?

So, you're saying the data in the USB buffers already has this discontinuity?  
I started to write an essay about clock mismatch, but if it's present in the 
original data, that's completely wrong.

What is the iso packet size in the alternate setting that gets selected?


Tim Roberts, timr@xxxxxxxxx<mailto:timr@xxxxxxxxx>

Providenza & Boekelheide, Inc.

Other related posts: