PeppyMeter VU-Meter for Linux desktop users listening to music
As a Linux user, I would always appreciate having a visually appealing VU-meter displayed on my desktop while I'm listening to music. This repository contains my endeavor to integrate the PeppyMeter VU-Meter with the modern PipeWire sound server.
PeppyMeter is coded in Python, so initially, I attempted to accomplish everything within Python. However, it seems that capturing the PipeWire stream in Python is currently not feasible (at least, based on my understanding of https://github.com/pablodz/pipewire_python/tree/main). Consequently, I opted to develop a C program instead.
-
Install PeppyMeter (https://github.com/project-owner/PeppyMeter): download the .zip and decompress it in your home dir.
-
Change PeppyMeter config.txt with the one that is in this repo.
-
Peppymeter needs python pygame library. Install it directly (or use a separated Python virtual env):
sudo apt install python-is-python3 python3-pygame
pip install pygame
-
Download the binary file "pwstream4peppymet" that is in the "Releases" section, it feeds PeppyMeter named pipe with a PipeWire stream.
Or compile pwstream4peppymet.c:sudo apt install libpipewire-0.3-dev
gcc -Wall pwstream4peppymet.c -o pwstream4peppymet $(pkg-config --cflags --libs libpipewire-0.3) -lm
-
Put the binary file "pwstream4peppymet" in the ~/PeppyMeter-master dir and make it executable.
-
Put peppymeter-start.sh in the ~/Desktop dir or where you prefer (if you used Python virtual env adapt the script shell). Make it executable.
- Right-click on peppymeter-start.sh and select "Run as a program" (see first screenshot).
- To stop the program just close the VU-meter window.
- You can run qpwgraph or helvum and connect the desired PipeWire node to the PeppyMeter node in the audio graph (see qpwgraph in the second screenshot). That's can be useful for example if you have more active apps producing sounds and you want to VU-meter only one of them etc.
- Instead if you would like to have PeppyMeter connected to your mic input try to change "volume.max = 10.0" in your config.txt.
- To see all the VU-meters present in PeppyMeter change "blue" in "random" in your config.txt (I prefer the blu one because it reminds me the McIntosh hi-end amps).
Tested on Ubuntu 23.10, Ubuntu 24.04 LTS, Fedora 40.