I’ve engaged the Mixing solution presented here and my first blush response, using 4 in-ceiling speakers in my kitchen, is pretty positive.
With regards to architectural audio, many times it is desirable to have mono. The idea of “stereo” from in-ceiling speakers is fairly silly. Throughout a home, listeners aren’t going to be sitting in the one lone stereo “sweet spot”. Plus in many rooms, an odd number of speakers is advantageous.
Same holds true for outside speakers.
I’ll be using this more extensively to see if there are any disadvantages.
Make sure you have headroom management and the clipping indicator on. When I first set this up it was clearly clipping at -3 so I ended up with -5. This sounded a lot better and didn’t cause the clipping indicator to go off.
I had noticed that with settings of -3, the overall subjective volume still went up when the mix was engaged. Setting the levels to -4dB created a mix that seems to show no overall change in volume between on/off (to my ears at least).
After a little more casual listening, I still really like this implementation. In my experience, creating a mono signal with the use of simple resistors (as most “architectural” amps with mono switches do) creates quite a SQ hit that I’m not hearing by summing channels in the digital domain.
Question: Within Roon, if I throw the switch to display the clipping indicator, will it still turn on without engaging Headroom Management overall?
Regarding -3 dB to level the volume, this is tricky. Adding two sounds should add 3 dB of level (because dB is logarithmic, and log of 2 is 0.3, and the deciBel is to a Bel like a decimeter is to a meter). But this is true if the sounds are uncorrelated, like a piano in one channel and drums in the other. If you have two channels with the same signal, like a mono recording, the signals line up and the voltages add up and double, and the audible volume depends on the power and the power is the square of the voltage, so that is a factor of four, which is 6 dB. So in practice, with somewhat correlated, somewhat uncorrelated sounds in the channels, 4 or 5 dB is right, but for a mono recording you want to drop 6 dB.
Yup, one byproduct that I have observed when using this mixing technique: Bass, which tends to be highly correlated in the two channels, gets an overall boosted presentation.
Actually, since I am using this technique for in-ceiling and out-door speakers, that is a rather nice “feature”
In 1.5 at least, there is a note at the bottom of the configuration page saying DSP Engine settings are disabled in group play. So using this trick presumably won’t work when grouping an indoor and outdoor (mono) zone when hosting a party, correct?
Yeah, but I’ve had Sonos CONNECT:AMPs in these secondary zones for years. Hard to justify replacing perfectly working hardware for something like this, especially when there are no inexpensive RAAT alternatives that come to mind. FWIW, I’m doing no other DSP Engine processing other than this downmix to mono on these zones. Giving that mono downmix is a pretty simple operation, if this were instead a tickbox in the zone settings along with the volume leveling, and not involving the full weight of the DSP Engine, would it be possible to do with non-RAAT gear? Or will that still throw off whatever the grouped devices synchronization problem is?
The problem with Sonos is that we can’t send a different stream to each device in the group–with their zone linking design, we send one stream to a “master” then ask “slaves” snoop on that stream and replicate it.
Volume leveling and crossfade operate at the zone-group level for some very specific reasons:
Crossfade changes when things happen in time, so there’s no well-defined behavior possible for having only some of the zones in a group crossfading–you would be forced to skip musical content in the other zones.
When Crossfade is enabled, Volume Leveling must be applied pre-crossfade, which drags it up to that level.
Mono playback isn’t like either of these. It belongs in DSP Engine because it is a choice that should be made on a per-device basis. Currently it has to be accomplished in a roundabout way…but even if we made a simple switch for this mode to save a few clicks, it would still live within DSP Engine.
We decided to do better than others have in the past when defining our own streaming protocol, and put in quite some effort to make it possible for Roon to generate multiple streams of the same content, compensate for all of the various delay factors, and synchronize them, even with devices running at different sample rates.
…so if you’re gonna stick with Sonos, this is how it is going to be. I’m actually kind of surprised that Sonos doesn’t give a choice for putting the amplifiers into mono mode–don’t lots of people use these for ceiling speaker installs?
Hmm, I didn’t realize you were still using Sonos’ own grouping logic. When I first pointed Roon at one of my Sonos groups, it busted the group back into individual zones. So I assumed you were driving each Sonos zone independently doing your own grouping.
And yes, lots of people use Sonos for multi-zone installs, including ceiling speakers. Mono-mode has been long requested over on the Sonos forums. But Sonos out-Apples Apple when it comes to listening to their users wishes…
Don’t get me wrong, Sonos hardware is by no means Hi-Fi. But their multi-zone stuff pretty much “just works”, and has a huge convenience factor to it. I have better devices in the main entertainment room, and for my office headphones. But for all the myriad ‘secondary zones’, it’s hard to justify replacing gear that I’ve had for some years now and is in otherwise working order for zones that are very much NOT critical listening areas.
(Again, I’m new to Roon – have only had it installed about three days now. From a library management point of view, it absolutely destroys Sonos’ native GUI. And it’s handy that Roon can also downmix higher resolution files for playback on Sonos, whereas Sonos just punts on them so you have to manually convert them and store redundant copies in your library.)
I know not everyone is into spending extra $/replacing gear to solve problems like this, but for secondary zones like that (patio, ceiling speakers, etc), I like to use a Raspberry Pi + an Amplifier HAT like one of these:
They are all pretty similar–24/192 DAC + integrated Class-D amp on a Raspberry Pi HAT.
Combined with a $35 Pi and SD card, it does what Sonos Connect Amp does for $100-150. I know you already have the amps…just something worth considering. The setup is pretty straightforward, and I’m sure people on this site have a favorite setup guide that makes it really simple.
I am working on a crossover upgrade and need to listen in mono for comparison. This procedural technique sounds lacking to me. The mix isn’t right for many songs. Intro guitars and baking singers are very subdued for some songs. Would it help to change the gain from the recommended -3?
@brian@support Hello, rather than make a new thread thought I’d piggyback on this one.
Would the following be valid to make a zone Mono too? It seems more logical than the suggestion in post #11 ( assuming all four mixes don’t happen independently in separate threads and in parallel, if left mixes to right first, by the time you go to process right and mix it with left, doesn’t it already have left mixed in?). Are there any “gotchyas” that would be a detriment to doing this I am unaware of? When I tested it it seems to work properly. And I haven’t seen any clipping.
Enable Procedural EQ.
Enable first Mix Operation with two Mixing Rules:
2.1) Input channel 1: LEFT , Output channel 3: CENTER , Gain: -3
2.2) Input channel 2: RIGHT , Output channel 3: CENTER , Gain: -3
Enable a second Mix Operation with two Mixing Rules:
3.1) Input channel 3: CENTER , Output channel 1: LEFT , Gain: -3
3.2) Input channel 3: CENTER , Output channel 2: RIGHT , Gain: -3
Or instead of 3:CENTER could use 4:LFE, which is actually more appropriate for what I am doing. Adding a third linked zone in my listening room for a dedicated subwoofer fed by RoonBridge running on NanoPi NEO2 thru a DAC to amp to sub. (Roon is so awesome that one can do all this!)
Thanx for your time.
Edit: btw, how does one name a Procedural EQ to represent a function? I would like to name it “Mono”. Did I miss it?
It appears that you are handling things correctly.
At this time, you cannot “name” procedural EQ steps like you are suggesting. However, you can use Roon’s DSP Preset function to save the current state of your DSP Engine configuration. Click on the “Presets” button on top of the window and then tap “Save Preset As”.
Yep. I named the overall DSP I use for the zone. Just would be good to be able see a logical name applied to the step in the pipeline too, just as a parametric eq can be named. Please pass it on to the devs if you would be so kind.
I remembered this thread as a ‘mono button’ was on my mind - not for particular zones perhaps but just the odd problematic recording. One such album is Duet, where Doris Day shows her jazz chops with André Previn and his trio. She does this, however, whilst buried in one speaker for most of the album - inexplicably hopping to the other side for one track IIRC. I always unfairly imagined her in furs and full make-up as if she’d stepped straight off the set off Pillow Talk or something similar, stood in the door of the studio to give her performance. (Nothing on the album itself suggests any lack of commitment on her part.)
I had the brainwave today (it took me a while to come up with this) of simply creating a parallel mono version in dbPoweramp. And it sounds great. Art Pepper meets the Rhythm Section may yet get the same treatment.