Phoenix risen from the PeppyMeter Screensaver ashes
Dear Volumionauts,
PeppyMeter Screensaver is discontinued. Release 3.5.0 “Guard Engine” was its last. Its Python and pygame stack reached its technical limits, and more time went into chasing external dependencies than into the meters.
Glass is what rose from the ashes. The same themes, a new engine written in Rust. Nothing from the old render loop was carried over.
This post is a wiki. It says what Glass is, where to find what, and how to install it. Read post 2 before reporting anything.
What Glass is
- A Volumio plugin with a native display. It shows VU meters, spectrum analysers, turntables and cassette decks on the player’s screen, moving with the music.
- It reads the PeppyMeter Screensaver theme format. Existing themes run as they are.
- glasstap, an audio tap in the ALSA chain, measures every source: local files, web radio, streaming, AirPlay, Spotify, Soloist. The stream passes through byte for byte (PCM, DoP and native DSD), and the tap never touches the sound.
- A manager page on port 5582 handles themes, the meters live in the browser, the community catalog, fanart and fonts, backups, upgrades, performance profiles, logging and remote displays.
- Remote displays show the player’s meters on another machine - Linux, Windows or Android - fed over the network.
- Anymote shows the player’s meters in any browser - a phone, a tablet, a laptop - with nothing to install, and a tap on the theme’s controls acts on the player.
What it costs
Measured on a Raspberry Pi 5 with a 1280x720 screen: eight heavy turntable and tape deck themes at 30 frames a second, averaged.
| Glass | The Python engine | |
|---|---|---|
| Processor, share of one core | 38 percent | 70 percent |
| Memory | 122 MB | 1030 MB |
Later releases took these figures lower still. The Python engine was not usable below a Raspberry Pi 4 with 4 GB. Glass targets every board below:
| Device | How it runs |
|---|---|
| Raspberry Pi 5 | Every theme at 30 frames a second, spectrum included. |
| Raspberry Pi 4 | Every theme at 30 frames a second; a large spectrum at 20. |
| Raspberry Pi 3 | 800x480 themes at 20 to 30 frames a second. |
| Raspberry Pi Zero 2 W | Light themes at 15 to 20 frames a second. |
| PC (x64) | Everything, with processor time to spare. |
The Pi 3 and Zero 2 W rows are estimates from the Pi 5 figures. They have not been benched yet. That is where you come in: reports with numbers, per post 2, are how these rows become measurements. The full method and figures are on the Performance page.
What you need
- Volumio 4 (Bookworm) on a Raspberry Pi 3, 4, 5 or Zero 2 W, or on a PC.
- A screen the Touch Display plugin drives: DSI, HDMI or USB. A player without a screen can still serve remote displays.
Fresh Install
One line on the player, as the volumio user:
ssh volumio@volumio.local
curl -fsSL https://raw.githubusercontent.com/foonerd/glass/main/get-glass.sh | sh
The script downloads the latest release and hands it to the player’s plugin manager. It then enables Glass and restarts the backend, so the audio tap joins the sound path. It stops if Glass is installed already: an installed Glass upgrades from the manager’s System tab.
Coming from PeppyMeter Screensaver:
- Glass takes over themes and settings from PeppyMeter Screensaver 3.5.0, the final release. On an older version, update to 3.5.0 first.
- Disable PeppyMeter Screensaver before installing Glass. Do not uninstall it yet. The installer stops if it is still enabled.
- On its first start Glass copies the themes into its own folder,
/data/INTERNAL/glass, and leaves the old folder as it was. If the player lacks the free space for the copy, Glass keeps reading the themes from/data/INTERNAL/peppy_screensaverinstead. - Before uninstalling PeppyMeter Screensaver, open the manager’s Status tab and check the Theme folders line. If it names
/data/INTERNAL/glass, PeppyMeter Screensaver is safe to uninstall once Glass is tested and running as you want it. If it still names/data/INTERNAL/peppy_screensaver, do not uninstall: its uninstaller deletes that folder, and with it the themes Glass is using.
On a fresh Volumio install, none of this applies. Run the line above and carry on.
To install by hand from the release zip, follow the Quick Start.
First steps
Play something. The meters appear after the screensaver timeout, sixty seconds by default. A touch or a click brings Volumio back, unless the tap lands on one of the theme’s controls while interactive controls are on; then it acts on the player instead.
Open the plugin’s settings and press “Open the manager here”, or browse to http://volumio.local:5582/. The manager has these tabs:
- Themes - what is installed, with previews; put a theme on show, choose its meters and rotation. Car Dash, on the same tab, switches between a day theme and a night theme by the clock or by the sun.
- Face - the player’s meters live in the browser, following the theme and meter on show; a tap on the theme’s controls acts on the player. “Open Anymote” opens the same face on a page of its own.
- Catalog - install themes from the community collection with one press.
- Appearance - the artist fanart slideshow, and the fonts each text style is set in, including fonts you upload.
- Backups - named snapshots of your settings, and moving them between players.
- System - upgrade or roll back with one press, performance profiles, interactive controls, editing themes over the network share, and logging.
- Remotes - serve the meters to other screens.
- Status - the system sheet: the player, the screen, the audio path, the themes, the network and remotes, and the last warnings. “Copy as text” puts it on the clipboard for a forum post.
Remote displays
A remote display is Glass on another machine with a screen. On the player, turn on “Serve remote displays” in the manager’s Remotes tab. Then download the matching file from releases:
- Linux -
glass-<version>-x64.tar.gzfor a PC,armv8for a 64 bit Raspberry Pi OS,armv7for a 32 bit one. Unpack it and runremote/linux/install.shas the user who will run the display (SDL2 is needed:sudo apt install libsdl2-2.0-0).install.sh --servicealso starts it with the session, for a screen on the wall. - Windows 10 or later, 64 bit -
glass-<version>-windows-x64.zip. Unpack it and runremote\windows\install.ps1in PowerShell. No administrator rights needed, and SDL2 comes in the archive. Allowglasswhen Windows Defender Firewall asks. - Android 7 or later -
glass-<version>-android.apk, installed on the phone or tablet (it is not in the Play Store).
Start “Glass Remote”. The first start shows the address of the remote’s own settings page, on port 5583, where the player is added and the theme, window and frame rate are chosen. The Remotes page has the details.
Anymote
Anymote - any remote, a remote from anywhere - is the player’s meters in a browser, with nothing to install: http://volumio.local:5582/anymote, or the manager’s Face tab, “Open Anymote”. A phone or a tablet keeps it on its home screen as a full-screen app; a computer runs it full screen with a kiosk launch; on the page, the first tap takes the screen. A machine that will live as a display wants a remote display; anything at hand wants Anymote. The Anymote page has the details.
Themes
The community collection lives in peppy_templates and is installed through the Catalog tab. Contributions go in by pull request there. For making themes, see Themes, the Skin Creation Guide, the meters.txt reference and Spectrum.
Where to find what
| What | Where |
|---|---|
| Code | github.com/foonerd/glass |
| Releases | github.com/foonerd/glass/releases |
| Documentation | Wiki |
| Settings, one by one | Settings |
| The manager | Manager |
| Meters in a browser | Anymote |
| When something is wrong | Troubleshooting |
| Logs | Logging |
| Technical defects | GitHub issues - full log required, see post 2 |
| The old thread, as history | PeppyMeter Screensaver for Volumio Bookworm |
Status
Work in progress. Glass is a continuous release: every change is a release on GitHub. The System tab upgrades to the latest with one press, keeps a backup first, and can go back to the kept version. Any label beyond that will come on merit, not on a calendar.
Provided as-is, under the MIT licence. No roadmap, no promises. The crystal ball is still in for repairs.
The sleep clinic has relocated. Same patients, new building, better equipment. The admission rules are in post 2.
Also, the clinic now has a tip jar. Two, in fact, because one is never enough when bureaucracy is involved:
- For the developers, no fees at all: https://github.com/sponsors/foonerd
- For everyone else, PayPal or card, no GitHub account needed: https://ko-fi.com/justanerd
Every coffee goes straight into the surgeon, who then goes straight back into the code. Nobody is obliged; the meters stay free, open and as-is either way. Logs remain the preferred currency.
Kind Regards,



