Step3: install peppyalsa
What peppy alsa is exactly doing you find here:
https://github.com/project-owner/peppyalsa.doc/wiki
The Volumio version 2.882, 2.906 have a little bug. The installation of build essentials run into an error. The build essentials are needed to compile the source.
A workaround for this problem with a little script to install the dependencies find here:
Cannot install build-essential package
But you don’t need anymore this separate script. The peppyalsa installer have included it now.
You don’t run manually all the steps, An install script is attached, that’s all follow steps do for you. The peppylsa integration on a Volumio v2.xxx is a little bit different to the new alsa pipline of Volumio buster v3.xxx
The installer detect your version and install the right way.
what’s the script doing:
cd /home/volumio
git clone https://github.com/project-owner/peppyalsa.git
pushd peppyalsa
sudo apt-get -y install build-essential autoconf automake libtool libasound2-dev libfftw3-dev
aclocal && libtoolize
autoconf && automake --add-missing
./configure && make
sudo make install
popd
This create a directory peppyalsa in /home/volumio and compile the source and install it. The same procedure also in Volumio buster.
For VOLUMIO 2.x:
This Volumio integration works now (since latest update from 15.07.2021) with an asound.conf.tmpl. The installer copied it to /volumio/app/plugins/audio_interface/alsa_controller This template is used to create an active asound.conf in /etc/ depend on your output device settings in Playback Options. If you change your sound card or change the mixer a new asound.conf is created.
No more manually edit of asound.conf is needed.
this is a sample for created /etc/asound.conf:
pcm.!default {
type plug
slave.pcm "peppyalsa"
}
ctl.!default {
type hw
card 2
device 0
}
# input from Spotify / airplay
pcm.peppyalsa {
type plug
slave.channels 4
slave.pcm {
type multi
slaves.a.pcm "mpd_alsa"
slaves.a.channels 2
slaves.b.pcm "mpd_peppyalsa"
slaves.b.channels 2
bindings.0 { slave a; channel 0; }
bindings.1 { slave a; channel 1; }
bindings.2 { slave b; channel 0; }
bindings.3 { slave b; channel 1; }
}
ttable.0.0 1
ttable.1.1 1
ttable.0.2 1
ttable.1.3 1
}
# input from MPD for sound card (direct DSD only working with type hw)
pcm.mpd_alsa {
type hw
card 2
device 0
}
# input from MPD for peppyalsa
pcm.mpd_peppyalsa{
type meter
slave.pcm "dummy"
scopes.0 peppyalsa
}
pcm_scope.peppyalsa {
type peppyalsa
decay_ms 400
meter "/tmp/myfifo"
meter_max 100
meter_show 1
spectrum "/tmp/myfifosa"
spectrum_max 100
spectrum_size 30
}
pcm_scope_type.peppyalsa {
lib /usr/local/lib/libpeppyalsa.so
}
pcm.dsp0 peppyalsa
pcm.mpd_alsa_deakt {
type softvol
slave.pcm "snd_card"
control {
name "SoftMaster"
card 2
device 0
}
max_dB 0.0
min_dB -50.0
resolution 100
}
# sound card output
pcm.snd_card {
type hw
card 2
device 0
}
# null output
pcm.dummy {
type hw
card Dummy
device 0
}
# Control device for program compatibility.
ctl.snd_card {
type hw
card 2
device 0
}
Buster works with a separat file thats included in an existing asound.conf ( modular alsa) no changes in asound.conf and mpd.conf are needed.
The MPD must be configure to use peppyalsa with an additional output device (mpd_peppyalsa). Thats the best way that the original output stream is not changed and reformated to PCM, when DSD is used. Therefore a second entrypoint in asound.conf for the sound output is available (mpd_alsa) VOLUMIO used a template file, thats copied if the sound card or mixer type is changed.
/volumio/app/plugins/music_service/mpd/mpd.conf.tmpl
this section is added:
audio_output {
type "alsa"
name "mpd_alsa"
device "mpd_alsa"
dop "no"
}
audio_output {
type "alsa"
name "mpd_peppyalsa"
device "mpd_peppyalsa"
dop "yes"
}
Now change the sound card in VOLUMIO UI settings to HDMI and switch back to your sound card. With this operation the template file is copy to /etc
After reboot please check if the mpd.conf in /etc have an additional section with the mpd_peppyalsa as output device.
As output card for PeppyMeter is a dummy device needed.
The install script add this entry to /etc/modules-load.d/modules.conf and set the index of last card in file: /etc/modprobe.d/alsa-base.conf
The MPD user needs rights to write the name pipe /tmp/myfifo, therefore it’s better to create the name pipe at startup with the correct rights.
The install script add this line to /opt/volumiokiosk.sh before the line starts with openbox-session
mkfifo -m 646 /tmp/myfifo
Download for VOLUMIO v2.xxx and Buster v3.xx:
The installscript ‘install_peppyalsa.sh’ is included in the complete download in next post
To use the install scripts copy the Install_peppy folder to /home/volumio and make the install_peppyalsa.sh executable
chmod +x /home/volumio/Install_peppy/install_peppyalsa.sh
and start it with
/home/volumio/Install_peppy/install_peppyalsa.sh
Please reboot after the installation.
If you play music after reboot with the follow error:

please change the mixer type in playback options and wait until the music service (mpd) is restarted. Then try again. If the music play, can you switch back the mixer type.
The switch of mixter type generate a new /etc/asound.conf.
Check if peppyalsa now working with the little tool: peppyalsa-client
start it in a console
/home/volumio/peppyalsa/src/peppyalsa-client
and play a song. If it running with meters all is ok.

if not, check in /tmp/ if both name pipes created. myfifo (created on startup) and myfifosa with a running peppyalsa (don’t forget to press refresh directory on winscp)
