Skip to main content
Peter Mc
August 23, 2016
Question

Connect no longer bit-perfect?

  • August 23, 2016
  • 450 replies
  • 29769 views
It looks like the Connect is no longer bit-perfect. Here's my evidence: let's discuss this.

First, I constructed a wav file of pink noise with amplitude ramping up from zero to digital max and back to zero.
I play this through my Connect and record the SPDIF output from the coax output into my PC.
The recording uses a Scarlett 8i6 audio interface set to use the Connect as master clock.
I record into a DAW (Sonar) multiple times - all instances are identical.
However, this recorded signal is not quite the same as the original wav file - it can be up to -21dB different.
See https://www.dropbox.com/s/t8od479xo9hi5el/connect_diff.PNG?dl=1
Note the expanded scale on the difference (third) track.

It looks like the difference gets larger when the signal is larger. To confirm this, I import the
original and difference files into Matlab and plot the raw data (difference vs original). There is clearly audio compression
happening here. See https://www.dropbox.com/s/p1yq6wcqafvnhaj/diff_vs_orig.png?dl=1
The scale is such that digital maximum is 1.

There also appears to be a slight bias when the waveform is negative and the signal is below the
compression threshold. See an expanded version of the previous plot
https://www.dropbox.com/s/9001tl9mkle4wly/diff_vs_orig_zoom.png?dl=1

Happy to answer questions about the method and conclusions.

Cheers, Peter.

p.s. Volume is set to fixed - I haven't tried variable.
In a loopback test (8i6 out from DAW to 8i6 in, no Sonos gear involved), I get bit-perfect cancellation.
    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.

    450 replies

    Peter Mc
    Peter McAuthor
    March 30, 2017
    There is a workaround to the bit-imperfection issue - use variable volume mode with the volume slider set to at least 13 taps less than maximum. For more details, see this topic.

    Cheers, Peter.
    "The presence of those seeking the truth is infinitely to be preferred to those who think they've found it" - Terry Pratchett
    Majik
    April 3, 2017
    I would still like the ability to hear the track as it was intended.
    If you read this thread you will see that Peter has shown you how to do this: switch Connect to variable level mode and don't exceed 88% on its volume slider.


    I think you are talking at cross purposes and Kumar, you seem to have missed the point of gizze's complaint.

    Peter's research (very useful, thank you) has shown how it is possible to remove degradation of peaks due to the limiter by reducing the digital volume level slightly. IMO there are still usability issues with this, especially when dealing with grouped volume control, but it is a workable solution.

    This, however, is not the volume normalisation itself, but a by-product of the way Sonos has implemented normalisation. Even when the digital volume is reduced volume normalisation takes place. It just doesn't doesn't trigger the limiter.

    The whole issue of volume normalisation is quite messy. There are times (such as when playing a playlist of random songs) when you probably want all of the songs to sound approximately the same level. There are other times (such as when playing an album of songs where some tracks are deliberately quiet and some deliberately loud) that you don't want individual songs normalised with respect to each other, where you want the as-recorded difference in levels to be retained.

    This is what gizze is complaining about (as I read it, please correct me if I'm wrong).

    There are a few solutions to this. the obvious and basic one is to allow users to turn off volume normalisation completely.

    The other main approach provides different volume normalisation approaches for the different scenarios described above. This is supported in ReplayGain and (I believe) in Apple's SoundCheck. Whether it is supported in tracks streamed from Spotify or other content providers I do not know.

    The basic premise is you store two measurements for each track. In Replaygain these are the "track gain" and the "album gain". These tell you how to adjust the gain when in track-by-track mode and when playing in album mode. The album mode is designed to adjust all tracks in the album equally and allows back to back albums to be played such that each album sounds approximately as loud as all others (overall) but the levels between tracks within an album are maintained.

    This is then backed up with an implementation that allows the user to select which normalisation scheme they want to use (for their given requirement) or to turn it off completely. Unfortunately Sonos has never supported this implementation.

    There are also "smart" schemes which try to decide which form of normalisation is used depending on the contents of the playlist, but there are always scenarios where they will get it wrong, so the manual selection is really still required.

    Cheers,

    Keith
    April 3, 2017
    In my hearing, I don't see that Sonos has done anything useful with normalisation. On every unit from play 1 through to zp90, some of my well recorded jazz albums play louder than others, at the same volume control level. Whether these are played individually, or in a playlist that contains both. And Apple Music is always lower than NAS delivered music.

    I don't have any albums where one track is very low and another very loud to comment on what Sonos does with these. I suspect it does little.

    And generally speaking, on any of my well recorded albums that have a high dynamic range, I don't notice any compression effect; music sounds just as it did via CDPs directly into the amp.
    April 3, 2017
    Even when the digital volume is reduced volume normalisation takes place. It just doesn't doesn't trigger the limiter.

    How, when Peter shows that there is no difference between the source and the output of Connect below 87% of volume? And that at 100%, the only difference is a 1dB cut at the top?

    What have I missed?
    ratty
    April 3, 2017
    I believe Peter Mc has -- at least on the MQA thread -- been using WAV test files. AFAICR Sonos has never attempted to normalise volume for WAV.
    April 3, 2017
    Over to you Peter, I note that you have used WAV here as well. So is the Connect bit perfect only in variable level mode up to 87% with WAV, but not so with ALAC, AIFF, AAC and more? The thread still has legs! Based just on what I hear with ALAC/AAC with all my units that aren't Connect, I am guessing you will not find anything different with files of those codecs, but only you can know for sure:D
    April 4, 2017
    If the waters needed to be muddied further, Ryan said this on this thread when asked why this move away from bit perfect:
    "We are talking about a minor change to the audio when applying normalisation."
    Did he not realise that the change noticed was for a WAV file? Or does Sonos now normalise those as well? If so, is this via the gradual up to 1dB limiting found up to 13 taps down from maximum volume levels?
    Wheels within wheels...with my personal bottom line being that I don't have a Connect - just a zp90 - all my files are ALAC/AAC, the best recorded music sounds just as good as it always has with my max volumes never exceeding 80% and to top it all, I don't see any effective normalisation in my set up🆒.
    Peter Mc
    Peter McAuthor
    April 4, 2017
    Yes, I've always looked at wav files to eliminate compression/tag issues (except in the MQA thread where I first looked at 24 bit FLAC files before discovering 24 bit wav files also now play - albeit at 16 bit).

    Volume normalization works the same as a volume control, turning down all parts/amplitudes/frequencies equally. The volume change amount is obtained from tags embedded in the file. Sonos would have to pre-scan the entire file to work this change out. It can't do this because a song starts playing within a second or two, almost certainly before the entire file has been downloaded from Deezer etc. Hence Sonos must rely on embedded tags.

    The volume normalization tags are calculated by iTunes when ripping a file to ALAC (in my case), or AAC or mp3 if I so chose. This cannot be turned off. Presumably other ripping software can also do this (e.g. Exact Audio Copy can, but it looks like it is selectable - I have used EAC a lot but never tried this feature). Itunes can turn off using the tag when replaying the file. I wish Sonos could do this too.

    The tags are stored as meta data that can be seen and edited using mp3tag or similar. Note that wav files cannot store this meta data.

    The only ways to bypass the itunes volume normalization are to rip as wav, or remove the tags from ALAC using mp3tag.

    Files streamed from music services presumably can contain volume normalization tags. There are a few different tags as Majik mentions above. Apple's tag is called ITUNNORM. I don't know whether Sonos responds to all the different volume normalization tags. I know it responds to the Apple one.

    Kumar, a question for you - how do you rip files to your NAS, and in what format? It may be that some contain volume normalization tags and others don't, accounting for the volume differences you hear. It might be useful for you to download mp3tag (it's free) and learn to use it to view file tags. You could also download the Orban Loudness Meter (also free) to check the overall loudness of tracks. With these two tools you should be able to get a better idea of what is causing your volume fluctuation issues.

    Cheers, Peter.
    "The presence of those seeking the truth is infinitely to be preferred to those who think they've found it" - Terry Pratchett
    April 4, 2017

    Kumar, a question for you - how do you rip files to your NAS, and in what format? It may be that some contain volume normalization tags and others don't, accounting for the volume differences you hear.

    Cheers, Peter.

    I rip in ALAC in iTunes and buy from Apple/iTunes in AAC 256kbps. I suspect that Sonos does nothing with these tags. In my experience, albums from the HighNote label as one example are recorded to sound louder than those from say, ECM. Both deliver very good sound quality in themselves. Sonos leaves these differences noticeably untouched in my set up, while also leaving them sounding as good as the CDs bought from these labels in a long expired earlier era.
    Peter Mc
    Peter McAuthor
    April 4, 2017
    I suspect that Sonos does nothing with these tags.
    I respectfully disagree. Try ripping in wav and see if you notice a difference. But if you really want to understand what's going on, download and invest time in learning to use the two programs I mentioned.

    I did run an experiment a while ago now where I changed the volume tags through a range of values using mp3tag - it really made a difference.
    "The presence of those seeking the truth is infinitely to be preferred to those who think they've found it" - Terry Pratchett