Occasional dropouts with Microrendu endpoint

10/16 19:42:37 Trace: RAAT endpoint is having trouble keeping up. Setting rate limit to 20000000

This is not an error, or an indication of any trouble.

RAAT uses UDP to transmit audio. Since UDP doesn’t have flow control built in, we have to do that ourselves. Our flow control system is based on feedback from the endpoint about packet loss. In other words, if packets are being dropped, we need to slow down the rate of outgoing traffic until the level of packet loss is more tolerable.

If you’re thinking “but doesn’t the audio stream’s bitrate determine the rate of packets going out over the network?”, the answer is: when you first start playback, RAAT fills an initial buffer on the endpoint as quickly as possible prior to the start of playback, and only starts playback once that buffer is at an acceptable level.

The difference between the best case and worst case scenarios for filling that buffer span a couple of orders of magnitude, depending on the performance of your network, the performance of the networking hardware on the Core and Endpoint devices, and the performance of the CPU on the core and endpoint devices. If we spray a fire-hose at the wrong time, nothing good happens, but that same fire-hose produces nearly instantaneous playback in many other situations.

The flow control algorithm is working out the appropriate playback rate on the fly based on information about lost packets (which are, of course, then resent to avoid dropouts). Those trace messages just note points in time when the algorithm makes decisions. Almost everyone’s logs will have some of them, as the Core re-calculates the appropriate buffer fill rates for each endpoint each time the endpoint and Core connect and begin playback for the first time.

Ok, that was the technical explanation of the logs…moving onto the actual issue.

My thoughts:

  • The microRendu is fairly powerful. Certainly more than powerful enough to handle 192k playback, and it has a good track record for doing so, so I don’t think this is a matter of the CPU being overloaded on that device.
  • Core performance can sometimes impact this sort of thing, but neither of you are running underpowered hardware, so that seems unlikely, unless the systems are totally overloaded for some other reason.
  • This leaves the network as the most likely culprit.

@support should be along to help troubleshoot along these lines.

1 Like