At the risk of going off topic, I've been experimenting a lot with these buffering concepts over the last several weeks. I am using a low power Intel NUC and booting AudioLinux to ram. It has replaced my MicroRendu 1.4 as my end point.
Over at the NUC forums on Computer Audiophile
@austinpop reported that he was getting improved audio quality with SqueezeLite running as the end point (instead of Roon Bridge), but only when the buffer settings for the SL endpoint we increased.
Upon further investigation, we discovered that Roon (and LMS) both buffer the current track and the next track to SqueezeLite (when SL has large enough input buffers). On a wired ethernet network, that basically means that everything is buffered up in memory on the end point in around a second. For the balance of music playback, there is basically no ethernet traffic. The impact on SQ is pretty significant (mScaler + DAVE for me). When you reduce the buffer size on SL to the default, ethernet traffic is continuous during playback (same as with Roon Bridge), and SQ is pretty much equivalent to RoonBridge (ethernet traffic is continuous with Roon Bridge, but Roon Bridge does not have configurable buffers)
Clearly network traffic is impacting SQ on the end point (I suspect it is timing variation due to the system responding to ethernet interrupts, but I haven't done experiments to test that hypothesis yet).
SqueezeLite has a second buffer setting that controls the buffer between SL and the USB audio driver under linux. I found that increasing this buffer also had a significant positive impact on SQ (presumably by having music data always buffered on the USB interface to the DAC in the fastest memory available). Again, mote experiments to be done, but my prelim finding is that an end point running SqueezeLite with extremely large buffers basically is optimizing SQ, regardless of the tweaks upstream on the server side.
Net net from all this is that the USB interface is a very sensitive one, presumably to timing issues (these aren't RF issues...changing buffer sizes is clearly audible even though the electrical connections remain the same). There is a LOT of lift to be had by optimizing the USB link.
To the essence of this discussion, all the requirements being outlined for "next generation audio USB" are basically the functions that the end point streaming software provides (in this case, SqueezeLite...it is open source and the protocol for managing the various seek functions is well defined)
On my to do list is to leverage the optical in of HMS to see if buffering has an impact on the optical interface, and if so, how that compares to the USB interface.
As a caveat for those using Roon Server: Roon server does not play nice with LMS end points with large buffers. There is frequent skipping, long delays when seeking, etc. When you use LMS server, it handles all that perfectly. For now, SqueezeLite is a test bed for me to see how buffers can be leverages to optimize the data stream to the DAC as much as possible. When I'm done playing and doing critical listening, I switch back to Roon Bridge (reluctantly) so that the civilians in the house have something that "just works"
For those that want to play at home here is are my current SL settings:
/usr/bin/squeezelite -o front:CARD=SCALER,DEV=0 -b 4097152:97152 -d all=info -a 50000000:4 -c pcm -x -p 93
The -b parameter is the size of buffer between the server and the SL endpoint (in this case, ~4GB). The -a parameter is the size of the buffer between SL and the DAC (~50MB)
An aside: NUC running SL in RAM with gratuitously large buffers are the most impressive digital playback I've had in my system. For those wanting to experiment with these buffer concepts, dive in and please share your findings!