Skip to content
foonerd edited this page Oct 7, 2026 · 17 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.
Screen The player's screen: what draws on it and whose it is, rotation, pointer and touch, and the Glass interface (glass-evo) in the kiosk's place, with what the Face tab and Anymote show.
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: the two flavours, installing and 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.
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 -- face socket --> M
    D -- UDP frames --> X[Remote display: glass --remote]
    P -- TCP channel --> X
    M -- themes, fonts, icons --> X
    M -- event stream --> B[Face tab and Anymote, in a browser]
Loading

The Glass interface

glass-evo is Glass's own interface for the player's screen, in the kiosk's place: Glass's display with a bar of controls, a clock and a date over it. It is a choice, never a default, and from Glass 0.9.0 with glass-evo 0.2.0 (7 October 2026) a full release: the Manager's System tab gets it, the Screen tab hands the screen to it and back, the Face tab and Anymote can show it in a browser, and a remote display shows it as the bundle from glass-evo's releases. The Screen page has Glass's side of it, and the glass-evo wiki the rest.

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