Build an open future with us.

Invest in Mycroft and become a community partner.

[Music] Squeeze box / Logitech Media Server control


#1

Basic voice control of LMS squeezebox or squeezeplay media players on the network.
LMS is a local network media server and client system with an enthusiastic user base, who value local storage and control of their own digital libraries as opposed to offsite cloud storage or streaming. I can’t see how Mycroft would find a better fit with its own userbase.


#2

Been using LMS for many years, would love to see a skill written for it. Might even have a crack at it myself after I get back from my travels.


#3

great suggestion, @Steve_Chabot.

I don’t suppose I’d be asking too much if I got you to write this up using our template for Skill Suggestions? It helps us to spur discussion on what the Skill does, and also the Intents and Dialog it would use.


Skill name: something-meaningful-skill

User story:

As a (type of user) I want this Skill to have (function or feature) so that I can achieve (objective)
eg. As a music lover, I want this Skill to control my music player so I can have voice-enabled music on my Mycroft Device

What third party services, data sets or platforms will the Skill interact with?

Are there similar Mycroft Skills already?

See https://github.com/MycroftAI/mycroft-skills for a list. If so, how could they be combined?

What will the user Speak to trigger the Skill?

For example “What’s the weather like?” or “How much is the Canadian dollar worth right now?” or “Play Aussie Rock music”

What phrases will Mycroft Speak?

For example, “The weather is cloudy with a top of 60F”, “The Canadian dollar is worth 90 US cents”, “Now playing Aussie Rock on Spotify”

What Skill Settings will this Skill need to store?

See https://mycroft.ai/documentation/skills/skill-settings/ for more information

Other comments?

Put any other comments you think are relevant in here


#4

I’d like to see this feature too so let me have a go at completing the skill suggestion template.


Skill name: mycroft-logitechmediaserver

User story:

  • As a Mycroft administrator, I want to configure my Mycroft installation with the network address of my Logitech Media Server (LMS) installation and details of (some of) its connected Music Players
  • As a music lover, I want to use Mycroft to pause and resume music on my Logitech Media Server Music Player(s)
  • As a music lover, I want to use Mycroft to select which music plays on each Music Player
  • As a music lover, I want to use Mycroft to control the volume on each Music Player

What third party services, data sets or platforms will the Skill interact with?

  • A Logitech Media Server installation, typically on the local network, accessed via the HTTP API on port 9000 or the CLI on port 9090.
  • Optionally also (or instead?) the mysqueezebox.com web site (does anybody rely on this without running a local LMS installation?)

Are there similar Mycroft Skills already?

  • spotify-skill
  • pianobar-skill
  • skill-playback-control
  • There’s a growing number of music sources / services - Spotify, Pandora, streaming services from Amazon | Google | Apple, files on a local NAS or similar repository etc. Rather than having a separate Skill for each of those, it would be really cool if there was a single “umbrella” music control Skill which had “plugins” to interface with the various different back-ends.

What will the user Speak to trigger the Skill?

  • [Similar - or even identical - commands to other music player Skills]
  • Play {{playlist_name}} | {{genre_name}} on {{player_name}}
  • Pause {{player_name}}
  • Resume {{player_name}}
  • Next track | Next song
  • Previous track | Previous song
  • [Some means of searching for music - see e.g. the Spotify skill]
  • [Some means of controlling the volume on different Players]

What phrases will Mycroft Speak?

  • [Confirmation of what has been requested - similar to other music player Skills]

What Skill Settings will this Skill need to store?

  • Hostname or IP address of the Logitech Media Server host
  • List of Player Names to be recognised by Mycroft, mapped to their unique IDs as used by LMS (MAC addresses)

Other comments?

  • In principle, it would be possible to host an LMS Player on the same device as is hosting Mycroft (e.g. using the Squeezelite player software). That’s not the only use case though; in fact users interested in this skill are likely to have existing LMS Players (often more than one) and are likely to be more interested in controlling those using Mycroft - at least initially.
  • It’s probably OK to assume that complex interactions like synchronising one player with another and setting alarms etc. will be done via the LMS web interface rather than using Mycroft - at least initially.
  • openHAB has an integration with Logitech Media Server (though it calls it by the old name - Squeezeboxserver). Might provide some implementation hints. See https://www.openhab.org/addons/bindings/squeezebox/

#5

Currently doing local testing of a Squeezebox / Logitech Media Server skill I wrote some weeks ago for covering my own music player needs. It’s inspired by and similar to the other media playback skills and has most of the features I planned to implement initially. It supports volume and playback control of artists, albums, songs, genres, playlists, favorites (including radio channels saved as favorites) and latest podcast episodes (via podcasts app plugin). There’s still room for improvements and some things are a bit hardcoded for my setup but after some more testing, debugging and cleanup I intend to publish it to get help and feedback. The amount of time I can spend on the project is a bit limited right now so please be patient.


#6

Sing out if you need a hand, @JOPS


#7

That sounds super exciting! I am glad to pitch in if you need any help!