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

    Ryan S
    Retired Sonos Staff
    February 21, 2017
    Hi Peter, it's still being looked into. There's a lot of different projects and work that's always going on at Sonos, and a software update usually has been in the works for months before it gets released. There are months worth of testing well after all the features for an update are finished, and unless a big issue is found, that update is pretty much out the door. But even then, the next couple updates are usually being worked on too, in various stages of development.

    We don't usually talk much about what's coming up in the future, timelines change and all sorts of things can come up. But this topic hasn't been forgotten or shelved. The CONNECT's output and handling of volume normalization is being looked into by the right teams. I can't share anything specific or a timeline, but I'll let you know if anything new comes up we can say.
    Mark good posts by pressing the like button, and select the best answer on questions you've asked to help others find solutions.
    Peter Mc
    Peter McAuthor
    February 21, 2017
    Thanks Ryan.
    "The presence of those seeking the truth is infinitely to be preferred to those who think they've found it" - Terry Pratchett
    February 22, 2017
    Quote Ryan " volume normalisation is being looked into"

    Playlists are a vital feature of Sonos, and shuffled ones are a part of that feature. As is the ability to build a playlist from multiple sources - from more than one CD, or even from NAS + Streaming Services. Or from two streaming services.

    If this feature is to be at its best, it is necessary that at the same volume level on the controller, the same sound level is obtained from all tracks from any of the above types of playlists, via a higher/smarter normalisation capability.

    Today this definitely isn't the case, so I trust that this aspect of volume normalisation is also being investigated. Changes in sound levels in mixed source shuffled playlist use are large enough at times to be distracting.
    KenS
    Enthusiast II
    February 22, 2017
    I think that may be a difficult thing to achieve, Kumar. I am certainly no expert in this area, but how would a Sonos device know what level of normalisation to apply to each track in a playlist without first analysing all tracks in the entire playlist? If the compression levels and volume markers in each song are markedly different throughout the tracks in a playlist, it seems a lofty goal to have the sound level maintained throughout the entire playlist (at least without introducing excessive compression levels). Plus is it not possible when including tracks from streamed sources such as Spotify and Apple Music that the source track may change from time to time?

    Again, this is beyond my technical expertise and I am genuinely interested in how volume normalisation would be accomplished.
    February 22, 2017
    Ken, that is why I used the word "smarter" in my request! Here is how I think it can be done though - in a playlist, Sonos has advance knowledge of the next song - how do I know this? When I play any Apple Music playlist, only the first song takes time to start; the same thing happens if I jump to the middle of the list. But when I let the playlist run undisturbed in straight or random mode, there is no such delay from one song to the next.

    If this advance next track information is available in the buffer, the information to do the normalisation is available to Sonos.

    So goes my logic, I could be wrong, but I think this feature is far more important than all the controller cosmetic rearrangements that Sonos does every few months.
    ratty
    February 22, 2017
    Volume normalisation between local and online tracks would be relatively straightforward if:
    - the services consistently added a normalisation tag (e.g. REPLAYGAIN_TRACK_GAIN to 89dB reference level)
    - Sonos consistently dealt with the normalisation tag provided (it doesn't, and TTBOMK never has)
    February 22, 2017
    Right; so if there was a will there is, even today, a way?
    ratty
    February 22, 2017
    Given Sonos' (lack of) enthusiasm for sorting out normalisation for local tracks I can't say I'm optimistic about the chances of a consistent approach across local and online sources. Besides, we know that the proportion of customers -- certainly new customers -- with local libraries is relatively low. And I'd imagine that most users of online services tend to use just one such service the bulk of the time.

    That's not to say that Sonos might not look at normalisation for, say, Spotify if it supplied suitable tags.
    February 22, 2017
    What you are saying then is that the obstacle to this is not technical, but commercial - for lack of a better word for that.

    Circling back to the thread itself, what was really achieved with this change away from bit perfect? If the answer to that question is - nothing much - is it a big thing to revert to bit perfect?
    Peter Mc
    Peter McAuthor
    February 22, 2017

    Circling back to the thread itself, what was really achieved with this change away from bit perfect? If the answer to that question is - nothing much - is it a big thing to revert to bit perfect?


    Here's one possibility: iTunes calculates and stores the ITUNNORM tag in mp3 and ALAC files when ripping a CD. This tag contains information about the average track volume, and also the track's maximum volume. Sonos uses this information to adjust the playback volume. If the iTunes calculation has small errors, it is possible the track will be played back too loud and clip. One way to fix this is to limit the signal using either a compressor or brick-wall limiter.

    Actually, I now think that Sonos applies a brick-wall limiter because the signal absolutely cannot exceed 90% of full range, and there is no attack or decay on the limiting. A compressor can still clip, although a modern smart compressor with look-ahead is much less likely to. The 90% limiter that Sonos uses is a bit extreme, but this might make up for a lack of look-ahead in the limiter they use. Sonos would also be better off using a decay time on the limiter as well.

    It should still be really simple to disable all DSP in fixed volume mode and provide bit-perfect output.

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