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)