The Computer Audiophile Posted October 26, 2020 Share Posted October 26, 2020 Hi Guys, I've been thinking about the conversations about network buffers and some peoples' experiences and beliefs with respect to how network playback works. There's not a single "this is how it works" statement to be made, but I think a good discussion could pull out some details that may educate people. Let's start by looking at this screenshot below. I'm playing a 24/192 album from my CAPS Twenty Windows 10 PC, with a 10 Gbps network card, acting as the Roon core, connected to a 10 Gbps switch, connected to a Sonore opticalRendu as the Roon endpoint (connected to the same switch). You can see Roon at the bottom of the screen and the network stats at the top. I've marked the areas on the graph where there's transition from one track to another. Many people assume that tracks are sent to the audio endpoint at full speed, then network activity stops until the next track needs to be played. Based on this screenshot, it appears that audio is sent continuously to the endpoint and only stops when transitioning from one track to the next. I will do the same thing for DLNA and use the exact same hardware. Founder of Audiophile Style | My Audio Systems Link to comment
The Computer Audiophile Posted October 26, 2020 Author Share Posted October 26, 2020 Here is the exact same graph streaming from JRiver Media Center via DLNA to the opticalRendu. Same thing. Continuous streaming. Please note the scale is different because that's just what Windows does. I noted the speed in bold letters on the left. I do have flow control enabled on my switches but I'm not sure if this would be solely responsible for not sending the entire track in one shot. Founder of Audiophile Style | My Audio Systems Link to comment
Popular Post The Computer Audiophile Posted October 26, 2020 Author Popular Post Share Posted October 26, 2020 Here's the same hardware, but the opticalRendu is configured as an HQPlayer NAA. Roon is running on CAPS Twenty and HQPlayer is running on CAPS Twenty. HQP is sending the audio to the oR. You can see it streams continuously and, by design, doesn't even breakup the tracks. Confused and asdf1000 2 Founder of Audiophile Style | My Audio Systems Link to comment
The Computer Audiophile Posted October 26, 2020 Author Share Posted October 26, 2020 Here's the same thing using HQP / NAA without Roon. asdf1000 1 Founder of Audiophile Style | My Audio Systems Link to comment
The Computer Audiophile Posted October 26, 2020 Author Share Posted October 26, 2020 Here's what's on the switch and which ports the audio devices are on. Founder of Audiophile Style | My Audio Systems Link to comment
plissken Posted October 26, 2020 Share Posted October 26, 2020 We've spoken about how the endpoints determine the buffering. Here is a video I shot in 2015 for another thread. with a $200 Asus laptop over 802.11g 54Mbps wireless using JRiver feeding an Emotiva DC-1 DAC. Watch as even lowly G wifi goes dormant. This is why I still use a computer to this day as an endpoint with a DAC that is impervious to the upstream device. Options like the Rendu are expensive and, imo and data supports this, no consequence on fidelity or improved S.I. Link to comment
jabbr Posted October 26, 2020 Share Posted October 26, 2020 40 minutes ago, The Computer Audiophile said: Here's the same thing using HQP / NAA without Roon. This is my experience using my NAA devices whether they are the Clearfog (1Gbe) or "PC" (10Gbe) Custom room treatments for headphone users. Link to comment
The Computer Audiophile Posted October 26, 2020 Author Share Posted October 26, 2020 11 minutes ago, plissken said: the endpoints determine the buffering 7 minutes ago, jabbr said: This is my experience using my NAA devices whether they are the Clearfog (1Gbe) or "PC" (10Gbe) These two statements are incongruous. Im not out to prove anything but I’d like to figure out more how and why stuff. asdf1000 1 Founder of Audiophile Style | My Audio Systems Link to comment
plissken Posted October 26, 2020 Share Posted October 26, 2020 9 minutes ago, The Computer Audiophile said: These two statements are incongruous. Im not out to prove anything but I’d like to figure out more how and why stuff. No it's not incongruous. Endpoint equals hardware + software. Link to comment
The Computer Audiophile Posted October 26, 2020 Author Share Posted October 26, 2020 3 minutes ago, plissken said: No it's not incongruous. Endpoint equals hardware + software. Can you be more specific than, “I always use a PC?” If endpoint is hardware, software, firmware, etc... what do you always use? I don’t believe the endpoint determines much. If I disable flow control I can overwhelm many endpoints. Roon Server determines its flow, not the endpoint. R1200CL 1 Founder of Audiophile Style | My Audio Systems Link to comment
plissken Posted October 26, 2020 Share Posted October 26, 2020 4 minutes ago, The Computer Audiophile said: Can you be more specific than, “I always use a PC?” If endpoint is hardware, software, firmware, etc... what do you always use? I don’t believe the endpoint determines much. If I disable flow control I can overwhelm many endpoints. Roon Server determines its flow, not the endpoint. I have a Dell R620 for file services with 10GB MM, End point is a Windows 10 PC with JRiver with 10GB MM SolarFlare. Flow Control is superseded by QoS and you don't use them together. Flow Control is used for highly loss sensitive data flows. I don't run it in production. I think another productive conversation should be how do we buffer and what does best practice look like? Tidal will buffer an entire track on Mac and Windows. The Computer Audiophile 1 Link to comment
One and a half Posted October 27, 2020 Share Posted October 27, 2020 If the measured peaks are 20MBs for Roon and 10MBs for Jriver, then why is 10GBe used? Wouldn't 100 MB/s Ethernet be fine, for playback or is there an overhead that can cause complications? I can understand 10Gbe for file transfers and backups, audio files can be quite large, especially DAD128 upwards. OT : To stream 4k video from a PC to a TV (miracast), using PowerDVD20, the peaks are 25MB/s every ~ 1-3 s intervals over the run of the movie. Using 1Gb Ethernet cards, there's no droputs, works fine for hours. davide256 1 AS Profile Equipment List Say NO to MQA Link to comment
ericuco Posted October 27, 2020 Share Posted October 27, 2020 Here is a graph of data traffic for my Ubuntu Studio 20.04 server running HQP Desktop and Roon Server. I have a Intel X520-DA1 fiber optic card installed running at 10Gbe and connected to a 10Gbe port on my Mikrotik switch. My opticalRendu (HQP NAA) is connected to the same switch running at 1Gbe. Music files are stored on a NAS. There is definitely a spike when it loads a new track. RX=top line TX=bottom line. The spike occurs several seconds before the new track actually plays. The Computer Audiophile 1 Eric Audio System Link to comment
The Computer Audiophile Posted October 27, 2020 Author Share Posted October 27, 2020 1 hour ago, One and a half said: why is 10GBe used? Because the motherboard in the CAPS server came with a 10 Gbps card. Founder of Audiophile Style | My Audio Systems Link to comment
Popular Post jabbr Posted October 27, 2020 Popular Post Share Posted October 27, 2020 3 hours ago, The Computer Audiophile said: These two statements are incongruous. Im not out to prove anything but I’d like to figure out more how and why stuff. I use HQPlayer. @Miska has programmed buffering as well as a network protocol on top of Ethernet. There is also buffering at the Ethernet layer. HQPlayer does not use file transfer, rather a stream of bits. Other protocols might transfer files, and buffer the entire file at the endpoint. Different protocols will show different patterns of network utilization. Moreover, different NICs plugged into different motherboards/CPUs with different drivers will use different patterns of buffering. For example DirectIO can transfer network bits directly into the CPU cache. plissken, motberg, One and a half and 2 others 5 Custom room treatments for headphone users. Link to comment
The Computer Audiophile Posted October 27, 2020 Author Share Posted October 27, 2020 I think the more we look at this the clearer it is that there’s no standard or reference design for how any of this works with respect to audio endpoints. There are countless ways to get audio and/or data from disk to the DAC. Founder of Audiophile Style | My Audio Systems Link to comment
One and a half Posted October 27, 2020 Share Posted October 27, 2020 21 minutes ago, The Computer Audiophile said: Because the motherboard in the CAPS server came with a 10 Gbps card. Fair enough! In playing various sample rates from a Roon core to PC-> USB DAC, here are the transmission speeds shown by Task Manager. Like @ericuco, there's a large spike at the start of the play, shoots to well over 50Mbps (briefly) or when the sample rate changes higher, but when a lower sample rate track is played while a higher one is played, there's no spike. DSD transmissions are less peaky than PCM which can vary by 1Mbps. Format Sample rate Mbps DSD 256 24.4 DSD 128 12.3 DSD 64 6.3 PCM 192 10.3 PCM 96 5.4 PCM 48 2.8 PCM 44.1 1.8 I don't have any DSD512, so presume, these would be 48 Mbps. The Computer Audiophile 1 AS Profile Equipment List Say NO to MQA Link to comment
The Computer Audiophile Posted October 27, 2020 Author Share Posted October 27, 2020 For those with spikes during playback, does the entire track get sent, thus enabling the cable to be pulled (if you actually wanted)? Founder of Audiophile Style | My Audio Systems Link to comment
plissken Posted October 27, 2020 Share Posted October 27, 2020 2 hours ago, One and a half said: If the measured peaks are 20MBs for Roon and 10MBs for Jriver, then why is 10GBe used? Wouldn't 100 MB/s Ethernet be fine, for playback or is there an overhead that can cause complications? This is application and build specific. The beauty behind a software only player like JRiver is that Jim and Co. are afforded the creative freedom that abstracting their software provides. I can literally que up and entire album over 10GB in a few seconds and then I'm done with the network connection. The overhead is in me building a system that is silent and has 8GB of RAM that 1GB can be set aside for buffering. The Computer Audiophile 1 Link to comment
One and a half Posted October 27, 2020 Share Posted October 27, 2020 1 hour ago, The Computer Audiophile said: For those with spikes during playback, does the entire track get sent, thus enabling the cable to be pulled (if you actually wanted)? I see this method now and again, but hesitate, since Windows has files open on other drives, interrupting that process is a bit of work to fix, so rather not yank the plug out. AS Profile Equipment List Say NO to MQA Link to comment
One and a half Posted October 27, 2020 Share Posted October 27, 2020 1 hour ago, plissken said: This is application and build specific. The beauty behind a software only player like JRiver is that Jim and Co. are afforded the creative freedom that abstracting their software provides. I can literally que up and entire album over 10GB in a few seconds and then I'm done with the network connection. The overhead is in me building a system that is silent and has 8GB of RAM that 1GB can be set aside for buffering. I see. Jriver has a buffer setting that's timed, which stops the stutter. In this setting, the Memory Playback is on off or decoded to Memory. I can't see where it's possible to allocate 12.5% of RAM for this purpose, where is? Audirvana has a slider to allocate RAM for buffering, however the implementation often fails when switching to a different track and heaven help if it's a different sample rate. Roon also has the standard buffer like Jriver of a timed variety with 2 x available. AS Profile Equipment List Say NO to MQA Link to comment
asdf1000 Posted October 27, 2020 Share Posted October 27, 2020 7 hours ago, The Computer Audiophile said: For those with spikes during playback, does the entire track get sent, thus enabling the cable to be pulled (if you actually wanted)? I believe the Roon Core itself does this when pulling from Tidal or Qobuz... even if between Roon Core and Endpoint is 'continuous'. Link to comment
Miska Posted October 27, 2020 Share Posted October 27, 2020 27 minutes ago, asdf1000 said: I believe the Roon Core itself does this when pulling from Tidal or Qobuz... even if between Roon Core and Endpoint is 'continuous'. No, it streams the file from the streaming service... In addition, many streaming services limit the available transfer bandwidth to about 2x of what is needed from the file's bitrate point of view. This is for two reasons; one is to balance the bandwidth usage between users on different network speeds and second is to avoid fast unauthorized leeching of content from the service. Signalyst - Developer of HQPlayer Pulse & Fidelity - Software Defined Amplifiers Link to comment
asdf1000 Posted October 27, 2020 Share Posted October 27, 2020 22 minutes ago, Miska said: No, it streams the file from the streaming service... Yes what I meant is it streams it as fast as possible - there's a big burst with each track being pulled from Tidal/Qobuz by the Roon Core. And then a more 'steady' stream to the Roon endpoints. This is an old post by Roon's CTO but I don't think anything has changed. Link to comment
Miska Posted October 27, 2020 Share Posted October 27, 2020 13 minutes ago, asdf1000 said: Yes what I meant is it streams it as fast as possible - there's a big burst with each track being pulled from Tidal/Qobuz by the Roon Core. And then a more 'steady' stream to the Roon endpoints. This is an old post by Roon's CTO but I don't think anything has changed. Some six months ago I needed to increase Roon - HQPlayer stream buffering because Roon was not buffering enough and you would too easily get drop-outs on slower internet connections. And in many cases when you deal with streaming there are no "tracks" to download, because it could be endless stream like radio, or a live stream from an event. Signalyst - Developer of HQPlayer Pulse & Fidelity - Software Defined Amplifiers Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now