Logitec Media Server plugin for Volumio

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:

When I go to the Volumio (v1.111) included my minidsp SHD, the squeezelite plugin is shown as available on the plugin page and seems to install without error, but the player does not show up in LMS. Has anyone run into this or have any idea how to address?

Thanks,
Mike

After the preceding post I made some progress from before. By setting the “extra parameters” in the plugin settings to

-R vE:::24 -r 44100-196000  -s lms_server_ip

As described in this great post by Chrissy, it is now showing up and running! Note that all I had to do was set the extra parameters. I didn’t seem to need any of Chrissy’s other steps of ssh’ing or unzipping new files, etc.

One remaining problem a number of people have mentioned is getting Squeezelite to use Volumio’s volume control (it uses its own). It’s not a showstopper, but it’s problematic because Squeezelite’s volume control apparently doesn’t properly dither. I will continue to dig into that, but at least I’m unblocked :slight_smile:

After two steps forward in the last post, here’s the one step back. Whenever I play a track on squeezelite, there’s a noticeable pop in the first few seconds, which is disruptive to the listening experience. I’ve tried a wide range of parameters and both the ALSA and I2S output devices.

There is no pop if I play the track either using volumio’s upnp player or use the digital out from my Squeezebox touch, so it does appear to be related to the SqueezeLite plugin :frowning:

Has anyone run into this? Did you find a solution?

Thanks,
Mike

1 Like

I am new to Volumio and downloaded the LMS player through the plug-in page but I can’t open it and get the attached error.

I am not a Linux expert which is why I am looking at using Volumio.

Can you access your rPi ip over port 9000?

1 Like

You have just jumped up to a new language for me. I have no idea how to do that.

I was hoping the plug in would have worked.

Which version of LMS did you install?

yeah topic and first post raises some contradiction.

To run LMS you need two parts:

  • LMS server
  • LMS player

Your topic suggest you installed the server plugin, your first comment is regarding the player.

This is what I installed.

You could try the Docker edition by first enabling the Plugins Test Mode in http://<your volumio address>/dev

Then uninstall the LMS plugin you installed, restart Volumio, then install the LMS - Docker version.

2 Likes

Thanks that has worked but now I also need to load a player. Edit - found the plug-in.

First impression is that Volumio is better

Kind regards,
Peter