I use moode now mainly for rendering LMS and Airplay. While moode is at its core an mpd renderer, i found it flexible enough to make it do what want with a couple of minor tweaks. My understanding is, this will never make it into moode core as my usecase is rather niche.
If your mpd crashes when scanning your music collection or you dislike mpd for other reasons.
If you like LMS for its client server architecture or its great plugins. (Qobuz, tidal ...)
If you like airplay for its ease in using your native streamer app to organise your playlists. (i think playlists dont belong on a client but nice and central on a server.)
then this might be helpful to you. I do not have the resources to make this an easy to install image, yet i might be able to provide some help
Switching renderers in moode can become a bit cumbersome. By default squeezelite keeps the audio output device open when idle. This requirers you to explicitly kill the squeezelite prozess and restart it when needed via the web gui.
I much prefer my music to just play.
This can be achieved by modifying a single squeezelite parameter.
-C <timeout> Close output device when idle after timeout seconds, default is to keep it open while player is ‚on‘
In the Renderer Section of the configure page squeezelite parameters can be edited like so.
git
vim
bat
lf
When squeezelite is playing (using the audio device) the moode web gui will display a modal window that provides only 2 actions - stop squeezelite (which is not needed when using the -C parameter s.a.) and audio info (new in V9).
This makes the local display of my moode player rather useless.
So what about some extra buttons on the modal squeezelite page.
In order to do this we need to setup a development environment for moode.
The changes are then added to www/js/playerlib.js
'<a class="btn configure-renderer" href="/niche.html">LMS</a>' +
'<a class="btn configure-renderer" href="/cdsp-configeditor.php">CamillaDSP</a>' +
Note: In this example i use a page /var/www/niche.html that i can edit and see the changes without building and deploying the moode frontend.
I pretty much abandoned this approach in favor of a hardware interface using a pi zero.
This allows for controlling the player using Hardware Buttons, RFID Chips and a rotary encoder.
As I much prefer my music to just play, i want my Amplifier to automatically switch on when music is playing.
To achieve this i use a little python script that monitors the audio device. The actual code is shown on the Page Auto Switch
I then use shelly plugs to actually switch the amplifiers on and off (when idle)
supervisor is used to keep the check4sound script run in the background.
sudo apt install supervisor
in /etc/supervisor/conf.d/soundcheck.conf
[program:check4sound]
command=/home/tom/check4sound.py
I also use a pi zero to setup an ir-controller to switch my DAC on.