Logitec Media Server plugin for Volumio

I’ll see if I can make a plugin that will install LMS on Volumio

1 Like

The LMS plug-in is part of standard plugin set in Volumio 3, as far as I know, it is just Squeezelite missing.

Best

It would be great if you can

For some reason I can’t make it work on my system

Same with me. That’s why I asked Sayato for some help. LMS works but not Squeezelite.

Would you be able to test this (but make sure you clean previous LMS installation first)?

2 Likes

Sure

I will try it and let you know.
Thanks for that

Thank you very much, I just upgraded to Volumion version 3. And the LMS plug-in works great! There’s also a squeezelite plugin within LMS that works great! It’s called local player.

Hi @Pablo_Villegas , did you install Saiyato’s LMS plugin that’s already in the plugin store, or my Docker version which I pointed out two posts above and requires manual installation (ssh)?

I tried installing Saiyato’s plugin to test whether there would be conflicts with the Docker version even after uninstalling it, but couldn’t get it to run. The error appears to be related to incompatible Perl versions:

// Start LMS in the terminal so I can easily spot errors
$ /usr/sbin/squeezeboxserver \
>         --prefsdir /var/lib/squeezeboxserver/prefs \
>         --cachedir /var/lib/squeezeboxserver/cache \
>         --logdir /var/log/squeezeboxserver \
>         --charset utf8

...
The following modules failed to load: DBI EV XML::Parser::Expat HTML::Parser JSON::XS Digest::SHA1 YAML::XS Sub::Name
...

Exiting..

$ perl -v
This is perl 5, version 28, subversion 1 (v5.28.1)...

Is anyone else getting this?

I installed the one in the plug-in store. Inside Volumio UI.

1 Like

OK, thanks for the clarification.

Ok, I just found a bug or quirk. You cannot use Volumio as a player, unless you turn off the LMS, otherwise it says that the ALSA device is busy. And won’t play any music inside Volumio, only through LMS.

That’s probably because the Local Player plugin in LMS is holding up the ALSA device. Try going to Local Player plugin settings and enter -C 1 for “Additional Options”. This tells Squeezlite to release the ALSA device after 1 second if nothing is being played. See if this helps.

1 Like

Thanks! Yeah, that was it. It doesn’t release the ALSA device. I just turned of the plug-in and everything worked.

I’ll try to set setting as you told me. Thanks!

No luck, it’s a conflict with local player within LMS, even without playing anything, when Volumio boots, I cannot play anything until I turn off LMS. Then I can turn on LMS without a problem, but right at boot, it highjacks the ALSA device.

I had to uninstall the Local Player(squeezelite) plug-in, it created a lot of troubles. Maybe it was the binary. The Chromecast plug-in only works well on the static binary.

Hi Patrick, I couldn’t get the the -C 1 parameter to work - it seems that squeezelite-armv6hf terminates and displays the help page and the -C parameter isn’t listed. Any ideas?

sudo /var/lib/squeezeboxserver/cache/InstalledPlugins/Plugins/LocalPlayer/Bin/squeezelite-armv6hf -d output=debug -f /var/log/squeezeboxservelocalplayer.log -C 1
Squeezelite v1.6.5, Copyright 2012-2014 Adrian Smith. See -t for license terms
Usage: /var/lib/squeezeboxserver/cache/InstalledPlugins/Plugins/LocalPlayer/Bin/squeezelite-armv6hf [options]
  -s <server>[:<port>]  Connect to specified server, otherwise uses autodiscovery to find server
  -o <output device>    Specify output device, default "default", - = output to stdout
  -l                    List output devices
  -a <b>:<p>:<f>:<m>    Specify ALSA params to open output device, b = buffer time in ms or size in bytes, p = period count or size in bytes, f sample format (16|24|24_3|32), m = use mmap (0|1)
  -a <f>                Specify sample format (16|24|32) of output file when using -o - to output samples to stdout (interleaved little endian only)
  -b <stream>:<output>  Specify internal Stream and Output buffer sizes in Kbytes
  -c <codec1>,<codec2>  Restrict codecs to those specified, otherwise load all available codecs; known codecs: flac,pcm,mp3,ogg,aac,dsd (mad,mpg for specific mp3 codec)
  -d <log>=<level>      Set logging level, logs: all|slimproto|stream|decode|output, level: info|debug|sdebug
  -e <codec1>,<codec2>  Explicitly exclude native support of one or more codecs; known codecs: flac,pcm,mp3,ogg,aac,dsd (mad,mpg for specific mp3 codec)
  -f <logfile>          Write debug to logfile
  -m <mac addr>         Set mac address, format: ab:cd:ef:12:34:56
  -n <name>             Set the player name
  -N <filename>         Store player name in filename to allow server defined name changes to be shared between servers (not supported with -n)
  -p <priority>         Set real time priority of output thread (1-99)
  -r <rates>[:<delay>]  Sample rates supported, allows output to be off when squeezelite is started; rates = <maxrate>|<minrate>-<maxrate>|<rate1>,<rate2>,<rate3>; delay = optional delay switching rates in ms
  -R -u [params]        Resample, params = <recipe>:<flags>:<attenuation>:<precision>:<passband_end>:<stopband_start>:<phase_response>,
                         recipe = (v|h|m|l|q)(L|I|M)(s) [E|X], E = exception - resample only if native rate not supported, X = async - resample to max rate for device, otherwise to max sync rate
                         flags = num in hex,
                         attenuation = attenuation in dB to apply (default is -1db if not explicitly set),
                         precision = number of bits precision (NB. HQ = 20. VHQ = 28),
                         passband_end = number in percent (0dB pt. bandwidth to preserve. nyquist = 100%),
                         stopband_start = number in percent (Aliasing/imaging control. > passband_end),
                         phase_response = 0-100 (0 = minimum / 50 = linear / 100 = maximum)
  -D [delay]            Output device supports DSD over PCM (DoP), delay = optional delay switching between PCM and DoP in ms
  -z                    Daemonize
  -t                    License terms

v1.6.5 is probably too old. Current is v1.9.9.

Have you tried the Squeezelite MC plugin (disable the Local Player plugin in LMS first)?

Thanks for the reply - I’m a little confused probably as I’m new to Volumio & LMS - maybe I should give some background. I’m running Volumio 3.301 on a RPi4B and have installed Saiyato’s Logitech Media Server 1.1.5 plugin.
Within LMS I was running Triode’s Local Player plugin (squeezelite-armv6hf v1.6.5) - and all that worked OK, I could play in Volumio and also LMS (which I just use for the BBC Sounds plugin). However when I wanted to play music in Volumio after playing music within LMS I had to use the Off button to get it to release the ALSA device…which was a little annoying. I then saw your post about adding the -C 1 parameter.
So I’ve since uninstalled Triode’s Local Player plugin from LMS and then installed your Squeezelite MC plugin in Volumio. This works kinda Ok but I’m going on some odd behaviour when I switch between playing in Volumio and then LMS and then back again. Am I doing it right? :slight_smile:

Could you describe this odd behaviour?

Could you describe this odd behaviour?

I rebooted the RPi and everything is working perfectly now. The functionality in your plugin is great - very handy to be able to view and control what is playing in LMS :+1: