High resolution file support by way of software-based downsampling - Feature request


I have come to accept that Sonos do not see an immediate future in offering support for high resolution audio files due to hardware limitations etc. I also am not concerned with whether or not high resolution audio files sound better than their redbook counterparts. It is however an unfortunate fact that some masters of some albums have been treated with better care and attention, and/or optimised for a high fidelity listening environment, and these are often only available digitally in a high resolution format.

I'm sure I am not the only Sonos customer to have purchased some of these files, and it's extremely annoying to hit play on a track only to be greeted with silence and a minor glitch.

My request is to enable some sort of downsampling technology at a software level so that the resulting file which is ultimately streamed to one's Sonos speaker is at whatever the nearest maximum supported bitrate/sampling rate is. I guess much like Bluetooth's SBC codec.

This topic has been closed for further comments. You can use the search bar to find a similar topic, or create a new one by clicking Create Topic at the top of the page.

7 replies

Userlevel 7
Badge +21
Surely there is a good 3rd Party product that you can use to do such downsampling? That would be a better solution as I can't see Sonos dedicating time or money to what would be a very niche feature.
As suggested, if one is not worried about the dubious Hi-Res benefits and is only worried about the proven benefits of better masters, then convert them to 16/48 once and carry on. This has the additional benefit of eliminating the (also proven) possibility of inter modulation distortion in the audible spectrum when playing back Hi-Res files.
In addition to some hardware limitations, especially for the older units, there is significantly more data to send over the network. If the wireless network is on the edge for 16/44.1, it will collapse while attempting to deal with Hi-Res.
The sensible options are to either transcode on the fly at the media server, for which one would need Plex, or do a one-time transcode and retain a separate 16/44 or 16/48 copy for Sonos to access. The latter is more elegant as it doesn't needlessly burn CPU cycles every time the track is played.
Badge +3
Can someone recommend some 16/44 -16/48 downsample programs for an old Mac user like me?
dBpoweramp has an OSX version.
@ChuckCo there are some nice open-source audio tools (e.g. SoX) that I use on Linux, which are also available on MacOS through Homebrew (that's how I use most of my Linux software on my Mac). I don't know if you're familiar with using a command line interface, but even if you're not it's not that difficult:

  1. install iTerm2 (https://www.iterm2.com/downloads.html) which is a good terminal
  2. open iTerm2, install homebrew (follow steps at https://brew.sh/ under "Install homebrew", it's basically a single command you need to enter in the terminal). This part takes a while (sets up XCode) but otherwise nothing difficult about it.
  3. type "brew install sox" in the terminal to install SoX
Now you have SoX, to downsample a file, use:

  1. create a new folder and copy your high-res file(s) to it (copy them, so you have a backup in case you mess up)
  2. right-click on the folder with the copied files in, and at the bottom choose "services" and then "open iTerm2 window here", which will open a terminal at the location of the folder
  3. type "sox infile.flac -b 16 downsampled.flac rate -s -a 44100 dither -s" in the terminal where infile.flac is replaced with the name of (one of) your input file(s).
  4. type "sox downsampled.flac -n spectrogram" to produce a spectrogram of the downsampled file
  5. type "open spectrogram.png" to compare the spectrogram to the original (you can use a similar command to look at the original spectrogram, or whatever you use for that)
If you have a lot of files, you can downsample in batch as well (using a for loop)
If you type "man sox" in the terminal, you'll get a long description of what you can do with SoX, including a section about downsampling (where I got the above command from).