I finally got sick of my Apple Airport Express network not quite behaving, and having to jump through hoops to play from the big fileserver holding my MP3 collection, and having to deal with sodding iTunes. My current workplace has a pair of Sonos units which are used in the office as a jukebox for the staff to play whatever music they want, and that seemed to tick most of my boxes.
The requirements I had were reasonably varied and had obviously changed since the last time I specced up a house sound ecosystem:
- Must be able to play MP3s from a fileserver
- Synchronisation between two or more players in different rooms
- No requirement for a host PC or Mac
- Controllable from a handset or an app on a laptop
- Plugs into an existing amplifier and speaker system
- Spotify and Soundcloud integration
The Sonos:Connect met all these requirements, plus the added bonus that “Phono In” was present which would stream my record player from the front room to the kitchen when I wanted to listen to vinyl. I popped to my local branch of Richer Sounds and picked one up on payday, setting it going on indexing my MP3 collection once I’d set it up (which was, incidentally, a complete breeze).
The first drawback presented itself fairly swiftly: the internal music library can only index around 65,000 songs. Apparently this is a hardware limitation though I can’t for the life of me think why unless it’s internal memory running out. Having over 400,000 songs in my collection ripped from my CD collection over the years I was a bit annoyed to find that their claim of “Play all of your digital music” was stretching the word “all” a bit much. The Sonos forums are full of complaints about it! I wasn’t going to let the problem get past me and discovered (after a bit of Googling) Subsonic, which has a Sonos client integrated. It was a bit of an arse to get going in the first place (I had to follow the guide lower down this page entitled ‘Using a remote Subsonic server’ halfway down this page because the automatic discovery kept bombing out) so setup is prohibitive unless you’re quite technical. At some point I’ll probably try and reverse-engineer how the plugin system works.
That said, four days of MP3 scanning and it’s all running happily – even the girlfriend can work it, and she’s reasonably technophobic!
The second drawback was around the import and export of playlists: work have some cracking playlists on their setup (mostly Spotify-sourced) which I’d like to replicate at home, but Sonos don’t provide anything to facilitate this. Thankfully it has uPNP compatibility which led me to fork and extend this PHP class to retrieve playlists via SOAP calls. I’ll post more about it when I’m happy with how it’s working and maybe make a small app available, but for the moment you can find out more about how to play with the uPNP aspect programatically over here.
As it is, it seems to be working pretty well. For the price I’d have expected the 65,000 song limit to be a little higher especially given their claims but it does seem to stream OK and as long as I can get to it via an API I’m happy. Watch this space and I’ll post more about how I’m getting on in the future… I’m thinking live-tweeting whatever’s on the playlist to start with? 😉