Firmware engineer here.
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)
A better solution is to not use sync mode but use the async mode in
which the device communicates with the host and asks it to send
more/less data.. The device maintains it's own accurate clock source and
plays it back correctly.
On 10/18/2017 1:40 PM, Tim Roberts wrote:
Why is that? Is the Audio Engine compensating for this? Is it
monitoring average byte-per-second rates over long periods and doing
smoothly adjusting the frames? Or is it sheer luck that we don't get
pops and clicks?