Snapcast: Why not Logitech Media Server / slimserver ?

Created on 27 Apr 2020  Â·  5Comments  Â·  Source: badaix/snapcast

Hi,
Maybe a stupid question, but I'll ask it anyway.

I'm working with my home multiroom audio system. I've tried Samsung multiroom, then moodeaudio on pi's, then Airsonic, but I wasn't happy.
About a week ago I installed Logitech Media Server (LMS) or "slimserver" on my FreeBSD server. As client I use a raspberry running picoreplayer, and luckily got a hold of three cheap Logitech Squeezebox Boom to the children's. I must say that I'm amazed of how great the "system" is working. Every client can play for themselves or as part of a group. I can group/link and unlink speakers easy, all clients play nicely in sync, no lagging or troubles. Both local files and radio streaming is playing nicely. Seems as a really great multiroom audio platform. There is also an iOS app (only one app exists) that is working great. This "system" seems like a real Sonos competitor.
The downside is no offline syncing to the iOS app and the user interface seems a little old. But again, seems like a great platform "under the hood".

Snapcast obviously has a lot of features and it seems like you have a lot of things going, but it seems you are rebuilding all the LMS features, just without a music library (using mopidy). Then to my questions:

Have you examined the LMS platform, and if so why not build upon the LMS platform? Does LMS have any technical limitations? Wouldn't it be easier to just integrate new snapcast features on the LMS platform?

question

Most helpful comment

Personally, I was using mpd on a SheevaPlug some ten years ago and wanted to have a multiroom system, so I downloaded a huge archive from mysqueezebox.com and eventually failed to install it on the SheevaPlug (I don't remember exactly what went wrong). But I didn't want to have a full blown media center with an online account (don't know if the account is mandatory) and it's own library, I was happy with the lightweight mpd and MPDroid as a remote control on my phone, only the multiroom capability was missing, so I didn't spent too much effort in getting it working and gave up the idea of having a DIY multiroom audio system for the time being.
Some years later, when I got a Raspberry Pi, I was researching about remote procedure calls for a service based architecture in my day job, and after work I continued playing around with ZeroMQ (a messaging library) and Protobuf (a data serialization library). As test application (as all theory is gray) I was building an audio server that can run on the Raspberry. Because I wanted to continue using mpd and don't reinvent the wheel, mpd's fifo output seemed to be a suitable way to achieve this.
When the version 0.1 was finished, I moved from my self hosted SVN server to GitHub.
Today Snapcast is still following the original idea to be just a small and generic drop-in synchronous audio server/router. (The code base of client and server is 15k lines of C++ code, compared to 220k lines of Perl Code for the LMS (server only), the Snapcast protocol is quite simple and generic).
I should also note that I never used LMS and don't know how it compares feature-wise or system load-wise or in the audio quality, synchronicity, or latency, but it seems that there is a demand for something like Snapcast.

All 5 comments

I am also interested in this, not that i have been happy with playing with LMS. and not that i think it should change. but an interesting question!

Hi, I hope I can explain the differences clearly for you.

Logitech Media Server is a proprietary ecosystem based on a straightforward client-server arrangement, where (to use DLNA terms) you have a combined Media Player and and Media Controller (LMS) that sends audio to the Media Rendering speakers. Snapcast is a vendor-agnostic community project that provides a lower-level interface, which is designed for the switching and transportation of synchronised audio streams across the network, between 'active' computing devices, where you have control of the software and configuration at both ends yourself.

I can explain the difference in simpler terms, providing you are old enough to remember the earlier ages of 'hifi'. LMS is like an all-in-one system, with cassettes, turntable, tuner and volume controls – like the 70s' music centres, 80s' Hifi decks, or 90s' midi systems – all you need to do is wire on the speakers you wanted. Snapcast is like an amplifier unit (with input selector and volume controls) and the speaker cables. It does nothing without inputs on one end and something to play through on the other end. However, the advantages of using low-level components like Snapcast is that you can put _anything_ you want upstream and downstream – this switching and wiring simply gives you a top quality link that you can configure in exactly the way you want.

The difference may be subtle on the surface, but Snapcast is not rebuilding features of a proprietary multi-speaker system, but enabling enthusiasts to deliver audio streams simultaneously to multiple computer devices to drive the sound the way they want around their living and working environments.

I hope this helps

@badaix pls label as Question

Personally, I was using mpd on a SheevaPlug some ten years ago and wanted to have a multiroom system, so I downloaded a huge archive from mysqueezebox.com and eventually failed to install it on the SheevaPlug (I don't remember exactly what went wrong). But I didn't want to have a full blown media center with an online account (don't know if the account is mandatory) and it's own library, I was happy with the lightweight mpd and MPDroid as a remote control on my phone, only the multiroom capability was missing, so I didn't spent too much effort in getting it working and gave up the idea of having a DIY multiroom audio system for the time being.
Some years later, when I got a Raspberry Pi, I was researching about remote procedure calls for a service based architecture in my day job, and after work I continued playing around with ZeroMQ (a messaging library) and Protobuf (a data serialization library). As test application (as all theory is gray) I was building an audio server that can run on the Raspberry. Because I wanted to continue using mpd and don't reinvent the wheel, mpd's fifo output seemed to be a suitable way to achieve this.
When the version 0.1 was finished, I moved from my self hosted SVN server to GitHub.
Today Snapcast is still following the original idea to be just a small and generic drop-in synchronous audio server/router. (The code base of client and server is 15k lines of C++ code, compared to 220k lines of Perl Code for the LMS (server only), the Snapcast protocol is quite simple and generic).
I should also note that I never used LMS and don't know how it compares feature-wise or system load-wise or in the audio quality, synchronicity, or latency, but it seems that there is a demand for something like Snapcast.

@badaix - thanks for answering this. this really helps people understand you and the why the project exists.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

pbros picture pbros  Â·  8Comments

qhello picture qhello  Â·  3Comments

jreusch picture jreusch  Â·  5Comments

dantheperson picture dantheperson  Â·  4Comments

fallenicarus picture fallenicarus  Â·  3Comments