Digital Streamers & Audio Quality

cpt_paranoia

Addicted Member
The following are some thoughts on the factors that might affect the audio quality of a digital-only streaming system.

Firstly, we need to be clear of the functions that a digital streamer performs:
  • network interface to receive the stream
    • using one of a number of protocols (e.g. DLNA, CCA, RAAT, SlimProto, etc)
    • over one of a number of bearers (Ethernet, Wi-Fi, (Bluetooth))
  • rendering of streamed CODEC format to PCM or DSD samples
    • supporting a number of CODEC formats (e.g. FLAC, WAV, MP3, AAC, DSD, etc)
  • transmission of sample stream to DAC
These are the basic functions, and their purpose is to deliver a stream of digital audio samples, from a streaming source, to a DAC, in a bit perfect manner; the streamer is purely a means to transfer information.

Let's look at where errors may occur in these functions, or where one streamer might be better than another.

Network interface
This is a purely IT function; it has to receive the stream without any data corruption, delivering an error-free CODEC stream to the CODEC.
If the network interface fails to do this perfectly, it is BROKEN. It is all or nothing; it works perfectly, or it is broken. Thus, there is NO potential for variation between performance for streamers using different hardware/firmware for the network interface.
There are multiple causation barriers between timing on the network interface and the DAC clock, which mean that the timing of data on the network interface can have NO effect on the audio quality.

CODEC rendering
For lossless CODEC formats, the CODEC must produce bit-perfect samples, such that the output from the CODEC is exactly the same as the input of the original file before encoding.
If a lossless CODEC fails to do this perfectly, it is BROKEN. It is all or nothing; it works perfectly, or it is broken. Thus, there is NO potential for variation between performance for streamers using different lossless CODECs.

For lossy CODECs, where the output of the CODEC is not identical to the original file before encoding (because lossy formats must be reconstructed), there is scope for use of a better reconstruction algorithm in the CODEC. Thus, there is potential for variation between performance for streamers using different implementations of lossy CODECs. This potential depends on the degree of variation that the CODEC specifications allow for reconstruction, and whether anyone uses anything other than the 'reference implementations', or open-source implementations such as within ffmpeg.

Transmission to DAC
Transmission to the DAC is a digital service. It must transfer samples without error, without lost samples, without gaps, and in the correct order.
If the digital interface fails to do this perfectly, it is BROKEN. It is all or nothing; it works perfectly, or it is broken.

Noise on DAC Digital Interface
However, transmission of the digital sample stream to the DAC requires a physical interface to the DAC. This physical interface can carry noise from the streamer to the DAC. This noise is generated by, or externally coupled into, the electronics within the streamer. This noise may make its way to the analogue output of the DAC. Thus, there is potential for variation between performance for streamers using different hardware for the entire streamer.

Role of the DAC
Part of the role of a DAC is to ensure that noise on its digital interface does not make its way to its analogue output. How well it achieves this will depend on the quality of the design of the DAC, and the level of noise it has to deal with. Think of the DAC as a noise filter, able to attenuate noise by x dB.

Types of Noise
Noise on the digital interface can be electrical noise, or timing noise (aka jitter, aka phase noise). Both sides of the interface (streamer and DAC) can contribute to this noise, since both contain active digital electronics with fast edges, and other circuitry, that generate noise signals.

Electrical Noise
Electrical noise can be reduced by using differential transmission (assuming common-mode noise on the differential interface driver), and by filtering and careful design partitioning in the DAC. Opto-coupling can eliminate electrical noise coupling, but can increase timing noise (as electrical noise at the transmitter is converted to timing noise). Galvanic isolation, using transformers can also eliminate electrical noise coupling, but, again, can transform the electrical noise into timing noise.

Timing Noise
Timing noise is caused by variation of the position of clock edges. Since digital signals are real, physical signals, they have finite rise and fall times, dependent on the slew rate of the drivers. Those drivers also have noise on their power supplies (caused to the electrical activity in the streamer), and this noise couples to the digital signal. Note that optical and galvanic coupling usually have more limited bandwidth than digital electrical interfaces, so have slower edges. At the receiver, the received signal hits a threshold device, which determines the position of the clock transition point. Due to noise on the finite edge of the signal, and noise on the power supply of the receiver (and hence in the threshold voltage), there will be noise on the position of this clock transition point, causing timing noise. If this clock is used directly to clock the DAC (e.g. for some I2S interfaces), this will result in jitter on the DAC output.
Timing noise on the DAC clock causes variation in the timing of DAC samples, which results in frequency modulation of the output signal, including discrete spurii.

Source-Clocked Digital Interfaces
Digital interfaces where the DAC clock is provided by the source either have to have a very clean clock provided by the source, or else the DAC must clean the clock up. Some digital interfaces, such as SPDIF, have a clock embedded in the data stream, so the DAC must recover the clock from the data stream. This DAC clock recovery is what will clean up noise on the clock, to some degree; modern SPDIF interface chips do a very good job of cleaning the clock.

Eliminating Timing Noise with a Destination-Clocked Digital Interface
Timing noise on the DAC interface can be eliminated by separating the data interface transfer mechanism from the DAC sample clocking. This is done in destination-clocked interfaces, such as 'asynchronous USB', or destination-clocked I2S. In both of those cases, the streamer is a slave to the DAC clock, sending data when requested (exactly as it is in an integrated CD player). Some form of FIFO buffer separates the two clock domains (digital interface domain and DAC clock domain). This method provides a causal barrier between timing noise on the digital interface, and timing noise on the DAC clock; the level of DAC clock jitter is determined entirely by the DAC implementation, although electrical noise coupled to the DAC from the streamer can have an influence on this aspect of DAC performance.

Additional Functions Beyond Bit-True Transmission
Now, we might choose to add other functions (beyond network interface, CODEC and DAC interface) to a streamer; some room correction or EQ processing, or 'euphonic' filtering, or resampling or upsampling. If we choose to do that, then there is potential for variation between performance for streamers using different implementations of those functions.

Summary
In summary, for streamers providing lossless, bit-true transmission of digital audio streams to a DAC, the only way the design of the streamer can influence the audio quality is by the level of electrical and timing noise it imposes on the digital interface to the DAC.
A good streamer needs only to pay careful attention to this aspect of its design; the network interface and CODEC rendering are purely IT functions, and either work perfectly, or are broken. Note that this careful attention must consider the cleanliness of the power supply and any oscillators used in the digital interface. If a destination-clocked interface to the DAC is chosen, it will eliminate timing noise, leaving only electrical noise to be considered.

Likewise, a DAC needs to pay attention to this digital interface, and attempt to minimise the coupling of noise from the digital interface to the analogue output.
A destination-clocked DAC interface may require more circuitry in the DAC, which, in turn, could generate noise that the DAC must prevent from reaching the analogue output.
 
Last edited:
Register to hide this ad
The following are some thoughts on the factors that might affect the audio quality of a digital-only streaming system.

Firstly, we need to be clear of the functions that a digital streamer performs:
  • network interface to receive the stream
    • using one of a number of protocols (e.g. DLNA, CCA, RAAT, SlimProto, etc)
    • over one of a number of bearers (Ethernet, Wi-Fi, (Bluetooth))
  • rendering of streamed CODEC format to PCM or DSD samples
    • supporting a number of CODEC formats (e.g. FLAC, WAV, MP3, AAC, DSD, etc)
  • transmission of sample stream to DAC
These are the basic functions, and their purpose is to deliver a stream of digital audio samples, from a streaming source, to a DAC, in a bit perfect manner; the streamer is purely a means to transfer information.

Let's look at where errors may occur in these functions, or where one streamer might be better than another.

Network interface
This is a purely IT function; it has to receive the stream without any data corruption, delivering an error-free CODEC stream to the CODEC.
If the network interface fails to do this perfectly, it is BROKEN. It is all or nothing; it works perfectly, or it is broken. Thus, there is NO potential for variation between performance for streamers using different hardware/firmware for the network interface.
There are multiple causation barriers between timing on the network interface and the DAC clock, which mean that the timing of data on the network interface can have NO effect on the audio quality.

CODEC rendering
For lossless CODEC formats, the CODEC must produce bit-perfect samples, such that the output from the CODEC is exactly the same as the input to the original file before encoding.
If a lossless CODEC fails to do this perfectly, it is BROKEN. It is all or nothing; it works perfectly, or it is broken. Thus, there is NO potential for variation between performance for streamers using different lossless CODECs.

For lossy CODECs, where the output of the CODEC is not identical to the original file before encoding (because lossy formats must be reconstructed), there is scope for use of a better reconstruction algorithm in the CODEC. Thus, there is potential for variation between performance for streamers using different implementations of lossy CODECs. This potential depends on the degree of variation that the CODEC specifications allow for reconstruction, and whether anyone uses anything other than the 'reference implementations', or open-source implementations such as within ffmpeg.

Transmission to DAC
Transmission to the DAC is a digital service. It must transfer samples without error, without lost samples, without gaps, and in the correct order.
If the digital interface fails to do this perfectly, it is BROKEN. It is all or nothing; it works perfectly, or it is broken.

Noise on DAC Digital Interface
However, transmission of the digital sample stream to the DAC requires a physical interface to the DAC. This physical interface can carry noise from the streamer to the DAC. This noise is generated by, or externally coupled into, the electronics within the streamer. This noise may make its way to the analogue output of the DAC. Thus, there is potential for variation between performance for streamers using different hardware for the entire streamer.

Role of the DAC
Part of the role of a DAC is to ensure that noise on its digital interface does not make its way to its analogue output. How well it achieves this will depend on the quality of the design of the DAC, and the level of noise it has to deal with. Think of the DAC as a noise filter, able to attenuate noise by x dB.

Types of Noise
Noise on the digital interface can be electrical noise, or timing noise (aka jitter, aka phase noise). Both sides of the interface (streamer and DAC) can contribute to this noise, since both contain active digital electronics with fast edges, and other circuitry, that generate noise signals.

Electrical Noise
Electrical noise can be reduced by using differential transmission (assuming common-mode noise on the differential interface driver), and by filtering and careful design partitioning in the DAC. Opto-coupling can eliminate electrical noise coupling, but can increase timing noise (as electrical noise at the transmitter is converted to timing noise). Galvanic isolation, using transformers can also eliminate electrical noise coupling, but, again, can transform the electrical noise into timing noise.

Timing Noise
Timing noise is caused by variation of the position of clock edges. Since digital signals are real, physical signals, they have finite rise and fall times, dependent on the slew rate of the drivers. Those drivers also have noise on their power supplies (caused to the electrical activity in the streamer), and this noise couples to the digital signal. Note that optical and galvanic coupling usually have more limited bandwidth than digital electrical interfaces, so have slower edges. At the receiver, the received signal hits a threshold device, which determines the position of the clock transition point. Due to noise on the finite edge of the signal, and noise on the power supply of the receiver (and hence in the threshold voltage), there will be noise on the position of this clock transition point, causing timing noise. If this clock is used directly to clock the DAC (e.g. for some I2S interfaces), this will result in jitter on the DAC output.
Timing noise causes variation in the timing of DAC samples, which results in frequency modulation of the output signal, including discrete spurii.

Source-Clocked Digital Interfaces
Digital interfaces where the clock is provided by the source either have to have a very clean clock provided by the source, or else the DAC must clean the clock up. Some digital interfaces, such as SPDIF, have a clock embedded in the data stream, so the DAC must recover the clock from the data stream. This DAC clock recovery is what will clean up noise on the clock, to some degree.

Eliminating Timing Noise with a Destination-Clocked Digital Interface
Timing noise on the interface can be eliminated by separating the data interface transfer mechanism from the DAC clocking. This is done in destination-clocked interfaces, such as 'asynchronous USB', or destination-clocked I2S. In both of those cases, the streamer is a slave to the DAC clock, sending data when requested (exactly as it is in an integrated CD player). Some form of FIFO buffer separates the two clock domains (digital interface domain and DAC clock domain). This method provides a causal barrier between timing noise on the digital interface, and timing noise on the DAC clock; the level of DAC clock jitter is determined entirely by the DAC implementation, although electrical noise coupled to the DAC from the streamer can have an influence on this aspect of DAC performance.

Additional Functions Beyond Bit-True Transmission
Now, we might choose to add other functions (beyond network interface, CODEC and digital interface) to a streamer; some room correction or EQ processing, or 'euphonic' filtering, or resampling or upsampling. If we choose to do that, then there is potential for variation between performance for streamers using different implementations of those functions.

Summary
In summary, for streamers providing lossless, bit-true transmission of digital audio streams to a DAC, the only way the design of the streamer can influence the audio quality is by the level of electrical and timing noise it imposes on the digital interface to the DAC.
A good streamer needs only to pay careful attention to this aspect of its design; the network interface and CODEC rendering are purely IT functions, and either work perfectly, or are broken. Note that this careful attention must consider the cleanliness of the power supply and any oscillators used in the digital interface. If a destination-clocked interface to the DAC is chosen, it will eliminate timing noise, leaving only electrical noise to be considered.

Likewise, a DAC needs to pay attention to this digital interface, and attempt to minimise the coupling of noise from the digital interface to the analogue output.
A destination-clocked DAC interface may require more circuitry in the DAC, which, in turn, could generate noise that the DAC must prevent from reaching the analogue output.

AAAA+ my friend. Thanks for the informative post. :beerchug:
 
Packet loss is real and that's why ethernet incorporates re-transmission. But I guess that's where buffering comes in

Indeed. The protocols need to support packet loss.

If your local, wired network loses packets, you need to sort that out...

A local wifi network might suffer packet loss due to interference. Again, probably worth sorting that out if it's a regular problem.

A remote streaming service may suffer packet loss in 'the internet'. But the protocols used in 'the internet' are designed to deal with lost or out of sequence packets. Streaming protocols build on that infrastructure.

But all that said, those are problems with the network, and not something the streamer can do anything about, provided they correctly implement whatever network and streaming protocols are being used.
 
Last edited:
Not sure if the general streaming public understands or cares about all those intricacies. I guess we might as well lump streamers into the "cables make a difference" category. :idea:
 
Not sure if the general streaming public understands or cares about all those intricacies. I guess we might as well lump streamers into the "cables make a difference" category. :idea:
Yep! I have worked on "Tech" since 1984. I have a good base understanding, but could give a rat$a$$ how it works as long as it does, not the weeds I have a desire to get into.
 
Not sure if the general streaming public understands or cares about all those intricacies.

My notes are not aimed at the general public, though; they are aimed at audiophiles trying to navigate their way through the reams of marketing puff used to describe the supposed benefits of 'audiophile streamers'.

It really is just a fairly straightforward discussion of some of the technical aspects of streaming. It really is nothing like the arguments around 'magic cables'.
 
they are aimed at audiophiles trying to navigate their way through the reams of marketing puff used to describe the supposed benefits of 'audiophile streamers'.

The best way to navigate, at least for me, is to actually listen to them in my system. Marketing claims and techspeak be damned.
 
Not sure if the general streaming public understands or cares about all those intricacies. I guess we might as well lump streamers into the "cables make a difference" category. :idea:
Hardly - a number of us have tried various streamers and found it IS different than arguing the value of cables ...
and its a changing market, prices have come down drastically since the $500 pieces were the only option ... And thanks to some AK members who have posted first-hand experience with pieces here, its more informative than just tech speak and marketeer's babble ...
After some reading on the site, we learn who posts helpful details and who just disses and threadcraps everything.
 
I'm another of the IT Veterans on AK & I patterned my streaming setup after @hjames ' recently retired LMS based system that was documented here.

I've found that the DAC used is what makes most of the difference in the streamers / end points. It doesn't take big bucks to get more than good enough results. That wasn't so just a few years ago.

The all-in-one streamers like the WIIM are an amazing bargain and if I was just starting out with Streaming buying one would be a "No Brainer".

Mark Gosdin
 
I'm another of the IT Veterans on AK & I patterned my streaming setup after @hjames ' recently retired LMS based system that was documented here.

I've found that the DAC used is what makes most of the difference in the streamers / end points. It doesn't take big bucks to get more than good enough results. That wasn't so just a few years ago.

The all-in-one streamers like the WIIM are an amazing bargain and if I was just starting out with Streaming buying one would be a "No Brainer".

Mark Gosdin

I agree. Entry level is now better than it ever was, but it's still entry level. Some people still claim entry level is just as good as the higher end streamers. It would be a very boring and somewhat dead-end hobby if that were actually the case.
 
Nothing at all boring or dead end over at ASR, where objective measurements are the rule. In fact, they’ve handily surpassed Stereophile in readership, and definitely aren’t slowing down.
 
I agree. Entry level is now better than it ever was, but it's still entry level. Some people still claim entry level is just as good as the higher end streamers. It would be a very boring and somewhat dead-end hobby if that were actually the case.
Depends on what you are trying to achieve. If you want a built in DAC, a built in LCD screen, HDMI out, and other bells and whistles in addition to the streamer, you pay more. If you just want a well designed streamer to send out a bit perfect digital signal, not much reason to spend more unless your hobby is spending money.
 
Perfection, or as close to it as is possible, is available in the Streaming world. At a price. Good Enough is also available at a price that is comparable to a rounding error vs Perfection.

I've no problem with anyone spending as much or as little as they want on a Streaming solution. That's the good thing about AK, you can see what others do and learn from them.

It's all good.

Mark Gosdin
 
Depends on what you are trying to achieve. If you want a built in DAC, a built in LCD screen, HDMI out, and other bells and whistles in addition to the streamer, you pay more. If you just want a well designed streamer to send out a bit perfect digital signal, not much reason to spend more unless your hobby is spending money.


maxresdefault.jpg
 
is expensive always better? Quite often people pay premiums for brand names or limited runs and/or products with much higher margins. ( to name a few examples).

Sorry, I don't know anyone who does that. Do you, or are you just making assumptions? Have you ever tried a high-end streamer in your system? Should we all just be satisfied with a cheap streaming dongle that can be easily produced in high volume? As I've said before, how fun would this hobby be without all of the component choices we now have and if everyone basically had the same lower cost stuff that performs exactly the same? These forums would be out of business except for the "fix it yourself crowd".
 
is expensive always better?

What I was endeavouring to do with this thread was to identify the various functions that a lossless, bit-true, purely digital streamer has to perform, and where there is scope for benefit by spending more money on design and materials, and therefore determine whether claimed benefits are worth spending additional money on.

Those functions I identified as being 'IT' functions and either working, or broken, cannot be improved (when not actually broken) by building with unicorn hooves. So I would suggest people ignore claims from streamer manufacturers who claim their network interface, streaming protocol or lossless codecs can make any improvement to the analogue output of a downstream DAC.

I identified the DAC interface as the only means by which improvements can be made; this could be achieved by better power supply for the DAC interface, and reduced electrical and timing noise on the digital sample output. So you might take note of manufacturers claiming to have taken care on those aspects.

The greatest potential for improvement lies in the DAC itself, by the care taken to isolate the digital interface from the analogue output, and in the DAC chip, DAC clock, power supplies, and analogue processing.

Oh and a good power supply doesn't mean a huge toroidal transformer and big bank of capacitors far away from the digital logic. For a small signal source, it means a well-regulated, high PSRR, low noise supply suitably sized to meet the load, with hierarchical decoupling spread across the board.
 
What I was endeavouring to do with this thread was to identify the various functions that a lossless, bit-true, purely digital streamer has to perform, and where there is scope for benefit by spending more money on design and materials, and therefore determine whether claimed benefits are worth spending additional money on.

Those functions I identified as being 'IT' functions and either working, or broken, cannot be improved (when not actually broken) by building with unicorn hooves. So I would suggest people ignore claims from streamer manufacturers who claim their network interface, streaming protocol or lossless codecs can make any improvement to the analogue output of a downstream DAC.

I identified the DAC interface as the only means by which improvements can be made; this could be achieved by better power supply for the DAC interface, and reduced electrical and timing noise on the digital sample output. So you might take note of manufacturers claiming to have taken care on those aspects.

The greatest potential for improvement lies in the DAC itself, by the care taken to isolate the digital interface from the analogue output, and in the DAC chip, DAC clock, power supplies, and analogue processing.

Oh and a good power supply doesn't mean a huge toroidal transformer and big bank of capacitors far away from the digital logic. For a small signal source, it means a well-regulated, high PSRR, low noise supply suitably sized to meet the load, with hierarchical decoupling spread across the board.
it sounds like we agree when it comes to the streamer itself.
 
Back
Top Bottom