Jump to content
IGNORED

Network Playback, Buffers, Continuous Stream, etc...


Recommended Posts

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.

 

 

 

buffer.jpg

 

Founder of Audiophile Style

Announcing Polestar | Quick Community Reviews and Ratings

Link to post
Share on other sites

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. 

 

buffer 2.jpg

 

Founder of Audiophile Style

Announcing Polestar | Quick Community Reviews and Ratings

Link to post
Share on other sites

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 post
Share on other sites
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 post
Share on other sites
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. 

Founder of Audiophile Style

Announcing Polestar | Quick Community Reviews and Ratings

Link to post
Share on other sites
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 post
Share on other sites
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. 

Founder of Audiophile Style

Announcing Polestar | Quick Community Reviews and Ratings

Link to post
Share on other sites
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.

Link to post
Share on other sites

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.

AS Profile Equipment List        Say NO to MQA

Link to post
Share on other sites

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.

 

594411301_LinuxNetworkFlow.jpg.4f701a22dadffc7a2c4d436322c4eba4.jpg

Eric


Ubuntu Studio Linux box (i7-9700, 8 cores, 16GB RAM, Intel X520-DA1 NIC, Roon, HQP) > fiber optic > MikroTik CRS305-1G-4S+ > fiber optic > opticalRendu (HQP NAA) > Holo Cyan (DSD version) > Nord One UP NC500MB mono blocks > Klipsch La Scala — digital volume control with HQP via Roon client, DSP with HQP convolution engine

Link to post
Share on other sites
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. 

 

 

AS Profile Equipment List        Say NO to MQA

Link to post
Share on other sites
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.

Link to post
Share on other sites
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 post
Share on other sites
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.

image.thumb.png.f8874b34ddd0aada16028a3471622f78.png

 

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.

 

image.png.14a7fcb995c84e1df9d7b640aab03e16.png

 

 

AS Profile Equipment List        Say NO to MQA

Link to post
Share on other sites
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 post
Share on other sites
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 post
Share on other sites
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.

 

 

image.png.1a5297f61658fb38b512cc9c28fdcd9c.png

Link to post
Share on other sites
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 post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now


×
×
  • Create New...