<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Brian, I think your idea does work. I think the tricky bit to doing this really well is having a control loop that reacts quickly enough that we don’t have to be stuck with a giant buffer that adds undesirable latency, but then conversely a control loop that adapts at a slow enough rate and with small enough steps that we don’t introduce human perceptible audio artifacts. <div class=""><br class=""><div class=""><div><blockquote type="cite" class=""><div class="">On Mar 7, 2019, at 7:46 AM, Brian Padalino via USRP-users <<a href="mailto:usrp-users@lists.ettus.com" class="">usrp-users@lists.ettus.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class=""><div dir="ltr" class="">On Wed, Mar 6, 2019 at 3:12 PM Marcus Müller <<a href="mailto:marcus.mueller@ettus.com" class="">marcus.mueller@ettus.com</a>> wrote:<br class=""></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">I've had rather longish discussions on how to solve this; essentially:<br class="">
for something that actually *solves* the issue (instead of postponing<br class="">
it), as Ian said, you'd need to have clock domain crossing ability.<br class=""></blockquote><div class=""><br class=""></div><div class="">Could message passing from the real-time blocks solve this issue in a flexible way?</div><div class=""><br class=""></div><div class="">Imagine the following: blocks connected to actual hardware use the computer wall clock to try to determine an average sample clock as it relates to the CPU clock.  The USRP source block would be able to determine how many samples/(sec of CPU clock) were coming in and Audio sink blocks would be able to determine how many samples/(sec of CPU clock) were being consumed.  The same idea for Audio sources and USRP sinks.  Since the blocking calls for USRP or Audio blocks could be wrapped in a high precision timer, once any initial buffering had been filled up, the rate should settle out.</div><div class=""><br class=""></div><div class="">The modified blocks could then send a message of actual sample rate to whoever needed to listen, and the appropriate sample rate could be figured out in the "resampling FIFO".</div><div class=""><br class=""></div><div class="">What am I missing?  Why won't this work?</div><div class=""><br class=""></div><div class="">Brian</div></div></div>
_______________________________________________<br class="">USRP-users mailing list<br class=""><a href="mailto:USRP-users@lists.ettus.com" class="">USRP-users@lists.ettus.com</a><br class="">http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com<br class=""></div></blockquote></div><br class=""></div></div></body></html>