Skip to main content

I have a question regarding what formats the Digital Out (coax) on the Sonos Port outputs. No matter what types of FLAC files I play with the Sonos Port it always output the audio format 44.1kHz, 24 bit. The files are located in my personal music library.

Files that I've tried:

  • 44.1kHz, 16 bit FLAC
  • 44.1kHz, 24 bit FLAC
  • 48kHz, 16 bit FLAC
  • 48kHz, 24 bit FLAC

All these files are outputted as 44.1kHz, 24 bit from the Sonos Port according to my DAC.

My question
Is this the correct behavior of the Sonos Port? I expected the Sonos Port to do a bit perfect pass through of the digital audio file to my DAC.

 

More information

My setup
Sonos Port Digital Out --> Coax cable --> Benchmark DAC2 HGC

I have configured the line-out to fixed.

The Benchmark DAC2 HGC displays the sample rate and the bit depth of the incoming digital audio signal which is why I state that the Sonos Port doesn't do bit perfect pass through of the audio.

 

For reference I've also played the same FLAC files through the setup described below with the result that I expected, i.e. a bit perfect pass through so that the DAC receives the audio in the original sample rate and bit depth.

"Reference" setup
Raspberry Pi with a HifiBerry Digi+ shield with SPDIF coax output running Volumio software --> Coax cable --> Benchmark DAC2 HGC

This is correct. Port apparently does a sample rate conversion to the internal native 44.1kHz when the source content is at a different sampling rate. The output is always 24bit. In the case of 16/44.1 source content the lowest byte is empty when the output is in Fixed Volume mode.


 Thank you @ratty,

 

This is correct. Port apparently does a sample rate conversion to the internal native 44.1kHz when the source content is at a different sampling rate. The output is always 24bit.

I can't say that I like sample rate conversion from 48kHz to 44.1kHz on a theoretical level (though it was about 10-12 years ago I studied digital signal processing and I don't work with it so my memories of this is a bit vague, I may be wrong). Why isn't the signal kept at 48kHz? Maybe the Port only has a 44.1kHz internal clock?

With that said I don't think that I can hear the difference between a 48kHz track and the same track downsampled to 44.1kHz.

 

In the case of 16/44.1 source content the lowest byte is empty when the output is in Fixed Volume mode.

This sounds interesting, do you have any suggestions on where to read more about this? I've read https://en.wikipedia.org/wiki/S/PDIF but it doesn't say anything about how 16 bit source content is handled in the case of 24 bit output.


Why isn't the signal kept at 48kHz? Maybe the Port only has a 44.1kHz internal clock?

The Sonos players have always had a native rate of 44.1k. Since they support source rates of 16k, 22.05k, 24k, 32k, 44.1k and 48k presumably the internals are a lot simpler by doing a conversion.

 

 

In the case of 16/44.1 source content the lowest byte is empty when the output is in Fixed Volume mode.

This sounds interesting, do you have any suggestions on where to read more about this? I've read https://en.wikipedia.org/wiki/S/PDIF but it doesn't say anything about how 16 bit source content is handled in the case of 24 bit output.

As that article says, S/PDIF is 20 bits by default, with 24 bits as an option. Unused bits are set to zero.

In my brief tests on Port’s S/PDIF the lowest 8 bits were zero if (a) the lossless content was 16-bit and (b) the volume was Fixed. What comes out is evidently taken straight from the decoder. (The same was true of historical tests of the ZP80 many years ago.)

When Variable volume is used obviously the samples are scaled internally, so the original 16-bit information is ‘shifted’ down into the lower bits.