PeppyMeter

Hi ,
I found it strange that even I have configured peppyalsa in mpd.conf I hear sound but the meter is not functional meaning that pepyalsa is configured ok but maybe somthing is wrong with pipe or no because it is working from usr/share..i think it is something with mpd ,,

Regards
 
Hello ,

I have tried all combinations , I also have a post in volumio comunity
.Maybe you have an idee :

1. aplay -l
Code:
volumio@volumio:~$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: ALSA [bcm2835 ALSA], device 0: bcm2835 ALSA [bcm2835 ALSA]
Subdevices: 4/4
Subdevice #0: subdevice #0
Subdevice #1: subdevice #1
Subdevice #2: subdevice #2
Subdevice #3: subdevice #3
card 0: ALSA [bcm2835 ALSA], device 1: bcm2835 IEC958/HDMI [bcm2835 IEC958/HDMI]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: ALSA [bcm2835 ALSA], device 2: bcm2835 IEC958/HDMI1 [bcm2835 IEC958/HDMI1]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: Headphones [bcm2835 Headphones], device 0: bcm2835 Headphones [bcm2835 Headphones]
Subdevices: 3/3
Subdevice #0: subdevice #0
Subdevice #1: subdevice #1
Subdevice #2: subdevice #2
card 5: E30 [E30], device 0: USB Audio [USB Audio]
Subdevices: 0/1
Subdevice #0: subdevice #0
volumio@volumio:~$

2.mpd.conf from /etc/
Code:
volumio@volumio:~$ cat /etc/mpd.conf

# Volumio MPD Configuration File

# Files and directories #######################################################
music_directory         "/var/lib/mpd/music"
playlist_directory              "/var/lib/mpd/playlists"
db_file                 "/var/lib/mpd/tag_cache"
log_file                        "/var/log/mpd.log"
#pid_file                       "/var/run/mpd/pid"
#state_file                     "/var/lib/mpd/state"
#sticker_file                   "/var/lib/mpd/sticker.sql"
###############################################################################

# General music daemon options ################################################
user                            "mpd"
group                          "audio"
bind_to_address         "any"
#port                           "6600"
#log_level                      "default"
gapless_mp3_playback                    "no"
#save_absolute_paths_in_playlists       "no"
#metadata_to_use        "artist,album,title,track,name,genre,date,composer,performer,disc"
auto_update    "yes"
#auto_update_depth "3"
###############################################################################
# Symbolic link behavior ######################################################
follow_outside_symlinks "yes"
follow_inside_symlinks          "yes"
###############################################################################
# Input #######################################################################
#
input {
        plugin "curl"
#       proxy "proxy.isp.com:8080"
#       proxy_user "user"
#       proxy_password "password"
}
###############################################################################

# Decoder ################################################################





###############################################################################

# Audio Output ################################################################

resampler {
                plugin "soxr"
                quality "high"
                threads "1"
}

audio_output {
                type            "alsa"
                name            "peppyalsa"
                device          "peppyalsa"
                dop                     "no"

}

audio_output {
    type            "fifo"
    enabled         "no"
    name            "multiroom"
    path            "/tmp/snapfifo"
    format          "44100:16:2"
}

2.1 mpd.conf volumio specific :
Code:
 cat/volumio/app/plugins/music_service/mpd/mpd.conf.tmpl
# Volumio MPD Configuration File

# Files and directories #######################################################
music_directory         "/var/lib/mpd/music"
playlist_directory              "/var/lib/mpd/playlists"
db_file                 "/var/lib/mpd/tag_cache"
log_file                        "/var/log/mpd.log"
#pid_file                       "/var/run/mpd/pid"
#state_file                     "/var/lib/mpd/state"
#sticker_file                   "/var/lib/mpd/sticker.sql"
###############################################################################

# General music daemon options ################################################
user                            "mpd"
group                          "audio"
bind_to_address         "any"
#port                           "6600"
#log_level                      "default"
gapless_mp3_playback                    "${gapless_mp3_playback}"
#save_absolute_paths_in_playlists       "no"
#metadata_to_use        "artist,album,title,track,name,genre,date,composer,performer,disc"
auto_update    "yes"
#auto_update_depth "3"
###############################################################################
# Symbolic link behavior ######################################################
follow_outside_symlinks "yes"
follow_inside_symlinks          "yes"
###############################################################################
# Input #######################################################################
#
input {
        plugin "curl"
#       proxy "proxy.isp.com:8080"
#       proxy_user "user"
#       proxy_password "password"
}
###############################################################################

# Decoder ################################################################

"${ffmpeg}"

"${sacdiso}"

###############################################################################

# Audio Output ################################################################

${sox}

audio_output {
                type            "alsa"
                name            "peppyalsa"
                device          "peppyalsa"
                dop                     "${dop}"
                ${mixer}
                ${format}
                ${special_settings}

}





audio_output {
    type            "fifo"
    enabled         "no"
    name            "multiroom"
    path            "/tmp/snapfifo"
    format          "44100:16:2"
}

#replaygain                     "album"
#replaygain_preamp              "0"
volume_normalization            "${volume_normalization}"
###############################################################################

# MPD Internal Buffering ######################################################
audio_buffer_size               "${audio_buffer_size}"
buffer_before_play              "${buffer_before_play}"
###############################################################################


# Resource Limitations ########################################################
#connection_timeout             "60"
max_connections                 "20"
max_playlist_length             "81920"
max_command_list_size           "81920"
max_output_buffer_size          "81920"
###############################################################################

# Character Encoding ##########################################################
filesystem_charset              "UTF-8"
id3v1_encoding                  "UTF-8"
###############################################################################
audio_output {
        type            "fifo"
        name            "mpd_oled_FIFO"
        path            "/tmp/mpd_oled_fifo"
        format          "44100:16:2"
}
3. asound.conf from /etc
Code:
volumio@volumio:~$ cat /etc/asound.conf

pcm.!default {
        type plug
        slave.pcm "softvol_and_peppyalsa"
}
ctl.!default {
        type plughw
        card 5
}
pcm.peppyalsa {
        type meter
        slave.pcm "plughw:5,0"
        scopes.0 peppyalsa
}
pcm.softvol_and_peppyalsa {
        type softvol
        slave.pcm "peppyalsa"
        control {
                name "PCM"
                card 5
        }
}
pcm_scope.peppyalsa {
        type peppyalsa
        decay_ms 400
        meter "/home/volumio/myfifo"
        meter_max 100
        meter_show 0
        spectrum "/home/pi/myfifosa"
        spectrum_max 100
        spectrum_size 30
}
pcm_scope_type.peppyalsa {
        lib /usr/local/lib/libpeppyalsa.so
}

4.asoundrc from /home/volumio
Code:
volumio@volumio:~$ cat .asoundrc

pcm.!default {
        type plug
        slave.pcm "softvol_and_peppyalsa"
}
ctl.!default {
        type plughw
        card 5
}
pcm.peppyalsa {
        type meter
        slave.pcm "plughw:5,0"
        scopes.0 peppyalsa
}
pcm.softvol_and_peppyalsa {
        type softvol
        slave.pcm "peppyalsa"
        control {
                name "PCM"
                card 5
        }
}
pcm_scope.peppyalsa {
        type peppyalsa
        decay_ms 400
        meter "/home/volumio/myfifo"
        meter_max 100
        meter_show 0
        spectrum "/home/pi/myfifosa"
        spectrum_max 100
        spectrum_size 30
}
pcm_scope_type.peppyalsa {
        lib /usr/local/lib/libpeppyalsa.so
}
pcm.dsp0 peppyalsa

Thanks for you help
 
Hello ,

I guess is mpd :
Code:
volumio@volumio:~$ ps -elf | grep mpd
4 D root       719     1  3  80   0 - 14366 -      20:02 ?        00:02:28 /usr/local/bin/mpd_oled -o 6 -b 21 -g 1 -f 15 -P s
4 S mpd        774     1  0  80   0 - 44744 -      20:02 ?        00:00:10 /usr/bin/mpd --no-daemon
4 S volumio   1708     1  0  80   0 - 25665 futex_ 20:02 ?        00:00:09 /usr/bin/upmpdcli -c /tmp/upmpdcli.conf
0 S volumio   7695  2003  0  80   0 -   648 pipe_w 21:14 pts/0    00:00:00 grep mpd [/COD]

Thanks for  help
 
I have in /etc/passwd:
Code:
mpd:x:110:29::/var/lib/mpd:/bin/false
volumio:x:1000:1000:volumio:/home/volumio:/bin/bash

I have also the mpd_oled plugin which is working :

mpd_oled/INSTALL_VOLUMIO.md at master * antiprism/mpd_oled * GitHub
and here I saw that the configuration if audio player is done :
Configure copy of audio
The MPD audio output needs to be copied to a named pipe, where Cava can read it and calculate the spectrum. This should be configured in /etc/mpd.conf, but changes to this file will be overwritten by Volumio. Instead, edit the mpd.conf template file

sudo nano /volumio/app/plugins/music_service/mpd/mpd.conf.tmpl
And add the following lines at the end

Code:
audio_output {
        type            "fifo"
        name            "mpd_oled_FIFO"
        path            "/tmp/mpd_oled_fifo"
        format          "44100:16:2"
}
After editing the file it is important to force Volumio to regenerate mpd.conf and restart MPD. To do this, open the Web UI and go to Settings > Playback Options then click on Save in the Audio Output section.

So to add the peppymeter fifo in mpd conf directly like mpd_oled does ? f yes how ?
Mnay thanks for your help
 
Hi,
Now I have understood, I guess that's what also the mpd oled was adding the fifo part in the mpd conf directly as tmp folder.. To be accessible mpd user.. But if I know how to do it... Or will be great but like I said I am not experienced user.
Thanks a lot for finding the root cause of the issue
 
Fifos need two processes - one creates it and writes into it, another reads from it. When placing fifos into /tmp (where every user can write files - look at output of command ls -ld /tmp ) and creating them with appropriate permissions (e.g. everyone read), the communication can be established.

The creating/writing process is configured in the alsa config. I guess the peppy meter is configured in PeppyMeter/config.txt at master * project-owner/PeppyMeter * GitHub .
 
Hello my dear friends ,

I am so glad that the peppymeter plugin is fully working on my setup .
Like phoman pointed out and the end it was problem of integration fifo with mpd .
I have perfomed exactly the steps that you sugested and it working .
I am so glat that it is working .
Maybe this great plugin can be updated for Volumio OS

PS: now remain only the issue with hanging the pepymeter picture when killing the peppymeter process. It does not switching to Volumio UI just show the meter picture

My best regards .
Florin
 
Last edited: