Skip to content
foonerd edited this page Sep 30, 2026 · 18 revisions

Glass

Glass shows VU meters, spectrum analysers, turntables and cassette decks on a Volumio player's screen, moving with the music. It is a Volumio plugin with a native display, written in Rust, that reads the theme format of PeppyMeter Screensaver and takes its place: the same themes, about half the processor time, a tenth of the memory, every source measured through an audio tap that never touches the sound, a manager page for themes, the catalog, artwork and fonts, backups and upgrades, a day and night schedule, touch controls on the themes that offer them, the meters live in any browser, and remote displays on other screens.

Glass on a player's screen

Start here

Page What it is for
Quick-Start Install Glass, choose a theme, set it up. The entry point.
Settings Every setting on the plugin's page.
Manager The manager's tabs.
Manager-API Every route of the manager: parameters, answers, errors.
Artwork Album art, folder pictures, the artist fanart slideshow and the fonts: the Manager's Appearance tab.
Catalog Installing themes from the community collection, and contributing.
Backups Keeping settings, and moving them between players.
Remotes Remote displays: running one, its settings page, the wire.
Anymote Any remote, a remote from anywhere: the meters in any browser, a phone or a tablet too, with the controls; full screen three ways.
Performance What Glass costs on each player, measured, and what to turn.
Troubleshooting When something does not look right.
Logging Where Glass writes what it does, and how to look at a theme by hand.

Making themes

Page What it is for
Themes What a theme is made of, where themes live, how they are shared.
Tailor A theme on a screen of another size: fitted on the player, or cut to a copy at the new size and packaged for the collection.
Screen The player's screen: what it has, what is suggested, and what draws the display, how it is turned and whether the pointer shows.
Skin-Creation-Guide Making a theme from an empty folder to the screen: pictures, coordinates, a meter, a turntable and a cassette step by step.
Meters-Reference Every key of meters.txt.
Spectrum Placing a spectrum in a theme, the analyser's looks and palettes, and the stereo bank behind them.

How it fits together

flowchart LR
    subgraph Player
        S[Sources: files, radio, streaming, AirPlay, Spotify] --> T[glasstap, the audio tap in the ALSA chain]
        T --> H[Sound card]
        T --> R[(Ring under /dev/shm: peaks, RMS, the spectrum bank per channel)]
        R --> G[glass, the display]
        R --> D[glass-serve, the frames daemon]
        P[Plugin: state, commands, channel] --> G
        P --> M[Manager, port 5582]
    end
    D -- UDP frames --> X[Remote display: glass --remote]
    P -- TCP channel --> X
    M -- themes, fonts, icons --> X
Loading

For developers

Page What it is for
Stations What each crate reads and writes.
Contracts The ring's layout, the theme keys as drawn, and the player boundary Glass consumes.
Tests Scene checks that need no display, and the review workflow.
Standards Commit types and version rules.

The code is at foonerd/glass; its README is the blueprint of the workspace.

Clone this wiki locally