Deaftone icon indicating copy to clipboard operation
Deaftone copied to clipboard

Consider adding support for Logitechmediaserver's streaming protocol

Open audiomuze opened this issue 2 years ago • 4 comments

.

audiomuze avatar Dec 31 '22 18:12 audiomuze

The seems like something really interesting and also would set apart Deaftone from the rest. From my understanding you want me to implement the protocol LMS uses to stream to players https://wiki.slimdevices.com/index.php/SlimProto_TCP_protocol.html. Rather than implement a plugin for Deaftone to talk to LMS? such as https://github.com/foobarjo/SqueezeSonic

112RG avatar Jan 01 '23 02:01 112RG

From my understanding you want me to implement the protocol LMS uses to stream to players

Yes. By incorporating the SlimProto you open the ability to stream to any PC or SOC that has Squeezelite running on it, meaning you can send the audio on to any DAC and listen without being tethered to a PC or having to listen via a smartphone/tablet (which provides the UI/UX instread).

audiomuze avatar Jan 01 '23 11:01 audiomuze

But you would still require a PC or Mobile to initiate the playing of songs etc?

112RG avatar Jan 02 '23 02:01 112RG

But you would still require a PC or Mobile to initiate the playing of songs etc?

Yes, if one were listening via a networked endpoint e.g. a RPi4 running Squeezelite hooked up to a DAC the PC or phone would act as remote control. Equally the PC could be serving as a playback device if it were running Squeezelite. Mobiles and tablets should also have local playback capability e.g. listening to music on home server via internet.

audiomuze avatar Jan 02 '23 06:01 audiomuze

Okay, this sounds like something I need to wrap my head around first and play with. But this is low on the priority list of things. But I really like the idea of this

112RG avatar Jan 02 '23 09:01 112RG

This may help convey things clearly:

https://roonlabs.com/howroonworks https://help.roonlabs.com/portal/en/kb/articles/architecture

Incorporating SlimProto would take care of playback to any audio device that accepts audio via USB (including simultaneous playback of the same content to multiple devices). This is achieved by running a Squeezelite enabled endpoint and connecting to the audio device via USB. That pretty much leaves only mobiles and tablets needing to have playback enabled locally via other means.

audiomuze avatar Jan 02 '23 10:01 audiomuze

Looks like the hard yakka has already been done. https://docs.rs/slimproto/latest/slimproto/index.html

audiomuze avatar Jun 24 '23 18:06 audiomuze

FWIW, I'm here because Sonos are making life bleak for self-hosted music libraries (https://github.com/simojenki/bonob/issues/205).

What I'm looking for is:

  • A media server than can ingest my library
  • A controller that can tell my existing hardware (mostly Sonos) to play stuff from my library.
  • The controller needs to run "headless" (not require a long-running client app or an active browser tab) so that I can initiate playback and close the tab/window and it will continue to follow my directions.
  • The controller needs to accessible via a browser (eg: not require a dedicated client app) and ideally an API so that I can ultimately plug it up into eg: home assistant where I can drive it from a dashboard.

I looked at Roon and conceptually this does what I want, except for its controller situation: there is no browser based way to control it, which makes it a huge PITA to enjoy my music while I'm working from my linux system, because they also do not support linux for their remote controller applications. I find it hard to justify paying for something that doesn't really work for me.

I'm semi-seriously considering sitting down to hack something together to scratch my itch and I found this project, which sounds like it has most of the really finicky tagging/media management side of what I'm looking for done, and it is "just" this streaming-to-a-device feature that is missing.

What I think would be good here is to implement broadly what I listed above, with support for:

  • DLNA/uPNP casting, which scratches my sonos itch.
  • AirPlay casting as an alternative path. I think AirPlay 1 is open and implementable, but AirPlay 2 is more encumbered and difficult for OSS to implement.

From a product perspective, I think that supporting these would also be good, although I have no hardware that supports these, so no/low motivation to work on them directly:

  • SlimProto per the comments above. I have an eye on the WIIM streamer as a relatively inexpensive but very capable fallback in case Sonos completely breaks me, and I believe that those support this protocol.
  • ChromeCast (unsure if the protocol is open enough to build into this project)

wez avatar May 17 '24 17:05 wez