TL;DR: Sonos speakers are amazing - too bad the software is awful. Google is taking full advantage of this.
A while back, I was looking for speakers for a second room. The living room already contains the very nice AudioEngine A5+ bookshelf speakers, which I’ve used with Airplay in the past. (Airplay isn’t really comparable to Sonos or Chromecast, because it needs a client streaming the audio, i.e. if you turn off your PC or phone, the music stops.)
Nonetheless, I committed to Sonos and bought two PLAY:1 speakers. They are beautifully designed, and sound amazing for such a small form factor. And all they need is a power cable. I was pretty happy with the purchase, but over time the small annoyances grew. And grew.
Then Google announced the Chromecast Audio. And then they delivered multi-room support, which was Sonos’ big thing.
Meanwhile, what have Sonos been doing the last years? Barely new hardware refreshes, lack of software improvements, and sluggish/incomplete support for 3rd party services.
I’m going to tell you all the issues I had. Sonos can work for people who want a very simple setup, but otherwise, you’ll hit the edge of the walled garden quickly. At that point, I hope you haven’t invested too heavily in Sonos or can live with the limitations.
The Sonos speaker installation is easy, just unpack and plug them into power, and optionally Ethernet.
Chromecast is slightly more hassle. I was lucky that the A5+ have a USB charging port on the back, which means the Chromecast can gets it’s power from there and doesn’t need an extra power plug. Obviously, the flexibility of Chromecast requires this, but cables/power strips are not sexy and that’s definitely an appealing aspect of the Sonos hardware.
Here’s the biggest issue with Sonos: Line-in. Basically, if you want to connect any existing systems (laptop, TV, record player), your options are few and expensive (prices off Amazon.co.uk at the time of writing).
- Top of the line PLAY:5 (£389.00). The PLAY:1 and PLAY:3 do not have line-in
- CONNECT:AMP (£369.00). The CONNECT does not have line in
- PLAYBAR, (£599.00) optical in only
It must be trivial to implement in software, and an 3.5mm jack + good ADC might cost ~£5. The only reason it isn’t in the cheaper products is profit margins.
To be fair, Chromecast doesn’t support line-in, either. You’ll probably never notice though. The Google ecosystem is broader, so there’s far less likelihood you’ll need line-in. You can cast audio from Chrome, and Android phones. Finally, the speakers the Chromecast is attached to obviously support arbitrary audio, so worst case you have to unplug the Chromecast. It isn’t multi-room, but at least your speakers aren’t paperweights. For a laptop or TV, I don’t use multi-room anyway.
Winner: Chromecast, unless you’re 100% sure you’ll never want line-in.
The Sonos setup isn’t great, with a setup wizard that feels like it has 50 steps and could have been streamlined. Good thing you only have to do it once. Chromecast on the other hand is as simple as it gets.
The Chromecast app is only for setting up the device. 3rd party apps integrate Google Cast support. While it does mean switching apps, it means there’s loads of choice and robust playback support.
Sonos is the exact opposite. The Sonos app wants to do everything. It should mean less switching and a better user experience. Nope!
The Sonos desktop app is hideous, and not user friendly. The styling and visual cues don’t match the mobile app. It does work though.
The Sonos mobile apps are okay, but don’t feel as polished as Spotify or BBC iPlayer. But Sonos’ downfall is integration/interoperability. If Sonos doesn’t support something, you’re out of luck. And this happens all the time, as we will see.
I didn’t understand why Sonos didn’t have a thriving ecosystem full of apps and plugins to fix the Sonos shortcomings. Surely techies love Sonos systems with their great design, and they’d come up with solutions when Sonos can’t deliver, either because of politics, or niche concerns. But Sonos doesn’t. So I had a look at their development kits. All I can say is that the documentation is incomprehensible, the sample applications are useless, and the technology is based on some XML SOAP RPC. It’s 2016, can we not have JSON with a clear API documentation? Everybody looses.
The only benefit for this approach is that if you want to create a playlist with music from several sources (e.g. NAS, Google Play Music, Spotify) you can. This isn’t something I’ve ever felt compelled to do though. The irony is that Sonos doesn’t support that many options well, otherwise this could be a killer feature for people who want to use several streaming services because the music is different on each.
Winner: Let’s look at support for different services. I’ve picked the three most popular in the UK, as well as having a local music library.
Chromecast support: Flawless on mobile, a few issues if using the desktop app. Sort of works using the web player + Chrome, but stutters and sounds bad. Avoid.
Sonos’ Spotify integration is terrible, because their app doesn’t support all the features Spotify does, despite updates. I found myself managing my playlists in the Spotify app, and then switching to Sonos to play those playlists. Mediocre workflow.
BBC iPlayer Music
Chromecast support: Flawless.
Sonos doesn’t support the iPlayer directly, you have to use the Tune-in service to listen to iPlayer. The problem is, Tune-in is for web radio. There is no way to listen to catch-up/on demand BBC shows on Sonos. Ergo, Sonos doesn’t really support the iPlayer, and judging by the forums they don’t plan on doing so.
Google Play Music
This one is interesting, as the GPM app lets you stream stuff directly to Sonos!
On Sonos, this works well in principle. But several annoyances do show up. The least annoying, but still a gotcha, is that Sonos can only deal with SMB shares. Second, the Sonos app wants to be the be all and end all, but you can’t use it to add new music to the NAS (not even the desktop version). So you’ll need a second app to manage your tunes, then you’ll have to keep the Sonos index of your NAS up-to-date, and then you’ll have to add new songs to playlists. By the way, Sonos doesn’t have a recently added playlist.
Winner: Will update once I’ve tested extensively on Chromecast.
Sonos can stream music stored on a mobile device. It struggled on my Android device, with stuttering, and cut-outs. Besides, having your phone do the work defeats the whole point of such a system. A line-in would have worked better.
Sonos does support sleep timers, and alarms. While nice, for me it’s pointless. Sleep timers don’t really need multi-room support - a phone connected to a speaker via line-in or bluetooth can do this. A shame Sonos supports neither.
Needless to say I sold the PLAY:1, and I’m happy with the Chromecast Audio. It isn’t quite as polished as Sonos - but it does work better. I can finally listen to BBC catch-up, and enjoy Spotify’s great interface.
I do miss having small, discrete speakers in other rooms. I think I’ll survive. Hopefully, some of the big manufacturers have got products to fill this niche in the pipeline. A small, mains-powered speaker that support line-in, bluetooth, and Google Cast would be ideal. Judging by previous efforts though, probably not.
I’ll probably just build one myself. But that’s for another post.