[PLUGIN] Music Services Shield

Just to say that I’ve installed the plugin on a Raspberry PI3 with also an HDMI display and the Peppymeter and to me it seems it works quite well.

Main benefit I see is that the UX seems much more responsive, I suppose because this causes less thread switches from the CPU, but I’m not able to hear any difference in the sound.

Overall to me this seems a kind of plugin that is quite mandatory for users that has few hardware resources (don’t know if a PI3 has few resources, for sure it has less than a PI4 but, also if until now I never had issues in performance).

1 Like

@Petecallaghan Can I report an issue I had with this plugin on a couple of Pi Zero’s.

With it installed, I cannot access a share on my Synology NAS, either via CIFS or NFS. The share mounts, but then I get a pop-up error from Volumio:

image

Happens on two separate systems with the plugin installed, but if I uninstall it and reboot then I can access and scan the shares without a problem. Reinstall the plugin and the problem comes back.

I guess I maybe misunderstood the aim of the plugin as it doesn’t really make sense to use it on a zero, but just wanted to report it anyway.

Thanks Darren for flagging that up. Is it an issue with the plugin installed but not enabled?

From what I can see, if I install but don’t enable then everything still works.

Afterwards, if I enable it, things work until I reboot, then they fail.

After that, if I uninstall they still fail until I reboot again, after which point everything works again.

One thing I did note, when I enabled I got a new error:

image

Hadn’t noticed that before, but it might have been overlooked on the original install of the plugin before.

Should also note that I didn’t change any of the settings in the plugin at all, in case that’s relevant.

1 Like

Ah that error is most likely the root cause of the problem. I suspect that there is an issue with the cpuset command on Pi Zero. Unfortunately I don’t think this is something I can resolve without getting hold of a Pi Zero and investigating deeper.

Sure, no problem. As I said before I’m not sure the plugin makes much sense on a v1 PiZero anyway as it only has one core. The report was more a FYI, and also so that if others hit it and search, they can maybe understand what to do about it.

You’re right, the cpuset shield does not make sense if there’s only one core.

However the priority feature could help. It’s a good reason to separate the priority into a different plug-in

Hello :slight_smile:
i was using Moode before but wanna switch over to Volumio, on Moode i experimented with some settings to increase SQ (Moode Latency(SQ) Optimizations - Software - Audiophile Style , tho ignore the last post, overclocking is actually worse than underclocking and jitter doesnt seem to be the culprit)

since i read about plugins in volumio i thought it would be a great way to make one that actually applies all the settings but then i saw your plugin already exists :slight_smile:

  1. is there a way to add boot/config.txt and boot/cmdlines.txt settings in plugins or is this not allowed for a plugin?
  2. from my understand isolcpus boot/cmdlines.txt settings does actually “more” than just set cpu affinity, did you compare the two methods? i think it also isolates system proccess which wouldnt be isolated with just setting cpu affinity and interrupts too i think
  3. i would love to see under/over clocking settings (and the boot/cmdlines.txt settings) in your plugin, so i dont have todo my own plugin for it x) but maybe rpi under/overclocking could be also a own plugin
  4. i think changing /boot/cmdlines.txt is actually a “better” method, i didnt test each setting in the thread above but just applied all that could potentially help
  5. would it be possible to add fusiondsp plugin to your plugin too?

let me know what you think :slight_smile:

Every entry in the /boot/cmdline.txt and .boot/config.txt will be overwritten during an OTA, the /boot/userconfig.txt will not be overwritten.

I did not compare these methods.

I suggest it would be better to create a distinct plugin for this - it is a very different optimisation mechanism. I have been considering separating the process priority out in to a separate plugin, as that is different to the shielding mechanism

Hello @Petecallaghan ,

thanks for your work on this plugin :slight_smile:
I was wondering if there is a “best practise” setting for my Raspberry Pi 400?
Most of the time i use Tidal connect (with CamillaDSP).

Can i leave the settings in standard-mode for the best performance?

Thanks for your help :slight_smile:
Best
Dominik

1 Like

Hi Dominik

I have not tested on your device, so I recommend trying some values and listening. It took me a few hours of listening to make a decision as the effect is quite subtle.

I suggest that you start with allocating half of CPUs to MPD, and a low value MPD priority of 10. The priority is applied to the MPD tasks that are not real time, and this sounds better to me on the two devices I have tested.

Pete

2 Likes

Shouldn’t snapcast also be shield, both client and server, since they are used in multiroom audio?

1 Like

What is the recomendation which portion of CPU to set?
The lower ones or the higher ones?
CPU 0 to 1 vs CPU 2 to 3?

1 Like

I use CPU 1-2. I recommend experimenting as I found different CPUs seemed to be better for different systems.

And for a Rpi3b+ which is the best option?

hi, did you test
with Raspi 4?

No I tested with a variety of atom based PC/NUC systems and an Asus Tinkerboard. I haven’t tested any of the RasPi’s