[wdmaudiodev] Re: Windows Clock Compensation

  • From: "Troy Gentry" <dmarc-noreply@xxxxxxxxxxxxx> (Redacted sender "tge96" for DMARC)
  • To: "wdmaudiodev@xxxxxxxxxxxxx" <wdmaudiodev@xxxxxxxxxxxxx>
  • Date: Wed, 18 Oct 2017 23:28:49 +0000 (UTC)

programmatically, I'd discover the bDelay latency parameter from the ADC and 
from the DAC (assuming not same physical device) and use those numbers for 
"worst case" analysis
typically, USB device is going to report anywhere from 1-3 msec for bDelay.... 
PLUS there's similar bDelay for USB host system.  I think some software like 
Pro Logic will tell you round trip delay for same device, not sure about round 
trip delay timing for different devices...
so, yeah above my pay grade here, sorry guys

      From: Matthew van Eerde <dmarc-noreply@xxxxxxxxxxxxx>
 To: "wdmaudiodev@xxxxxxxxxxxxx" <wdmaudiodev@xxxxxxxxxxxxx> 
 Sent: Wednesday, October 18, 2017 4:06 PM
 Subject: [wdmaudiodev] Re: Windows Clock Compensation
   
#yiv5644689695 #yiv5644689695 -- _filtered #yiv5644689695 {panose-1:2 4 5 3 5 4 
6 3 2 4;} _filtered #yiv5644689695 {font-family:Calibri;panose-1:2 15 5 2 2 2 4 
3 2 4;}#yiv5644689695 #yiv5644689695 p.yiv5644689695MsoNormal, #yiv5644689695 
li.yiv5644689695MsoNormal, #yiv5644689695 div.yiv5644689695MsoNormal 
{margin:0in;margin-bottom:.0001pt;font-size:11.0pt;}#yiv5644689695 a:link, 
#yiv5644689695 span.yiv5644689695MsoHyperlink 
{color:blue;text-decoration:underline;}#yiv5644689695 a:visited, #yiv5644689695 
span.yiv5644689695MsoHyperlinkFollowed 
{color:#954F72;text-decoration:underline;}#yiv5644689695 
.yiv5644689695MsoChpDefault {} _filtered #yiv5644689695 {margin:1.0in 1.0in 
1.0in 1.0in;}#yiv5644689695 div.yiv5644689695WordSection1 {}#yiv5644689695 
Right, this is how you slave your buffer transfers to the eventual ADC or DAC 
while dealing with jitter.   Tim’s question is what happens if you have a 
pipeline with an ADC on one end, and a DAC on the other, and there is skew 
between them.   From: wdmaudiodev-bounce@xxxxxxxxxxxxx 
<wdmaudiodev-bounce@xxxxxxxxxxxxx> on behalf of Troy Gentry 
<dmarc-noreply@xxxxxxxxxxxxx>
Sent: Wednesday, October 18, 2017 3:38:39 PM
To: wdmaudiodev@xxxxxxxxxxxxx
Subject: [wdmaudiodev] Re: Windows Clock Compensation I don't know how others 
"do it", but this clock synchronization method (ISO Sync) is very easy to do in 
hardware
you simply infer the USB host's clock by accurately timing SOF<>SOF in hardware 
(not via MCU ISR) and dynamically (but slowly) adjust your local master audio 
clock to manage audio buffers... you can achieve a very accurate "water level" 
using this method of synchronization
ISO Async is a completely different synchronization method, but has the 
advantage of low jitter audio master clock (since the synchronization method 
above is removed and feedback is solved other ways)
It's in now way extremely tricky problem... but, in the early days of UAC for 
some reason this problem was left up to the software engineer to solve on the 
UAC Device, which led to the whole add/drop audio sample debacle - which is 
completely unacceptable... 
<please keep in mind, not of what I have type is related to how Windows deals 
with all this ---- strictly how USB system handles this, for anything ISO 
transfer related - no matter UAC, UVC, etc)

From: Tim Roberts <timr@xxxxxxxxx>
To: "wdmaudiodev@xxxxxxxxxxxxx" <wdmaudiodev@xxxxxxxxxxxxx>
Sent: Wednesday, October 18, 2017 2:41 PM
Subject: [wdmaudiodev] Re: Windows Clock Compensation

Akshaykeerti Sharma wrote:


One possible solution we implemented for usb-audio using synchronous
mode was to adjust the reference clocks on the micro-controller in
realtime by a very small amount to ensure that there are no
underflow/overflow conditions that manifest themselves as
pops/clicks(we did have pops and clicks otherwise)

How would you know?  By monitoring the levels in your onboard FIFOs? 
This is an extremely tricky problem, because even though audio seems to
be smoothly continuous, at the microscopic level it is rather chunky. 
Audio Engine tries to transfer 10ms at a time, and applications commonly
work in buffers even larger than that.

-- 
Tim Roberts, timr@xxxxxxxxx
Providenza & Boekelheide, Inc.

******************

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/





   

Other related posts: