PeppyMeter 3.3.0 - @Gelo5’s Holiday Is Over
Here Is What Happened.
Dear Volumionauts,
Two weeks ago I asked @Gelo5 to go outside and touch grass. He sent me back a picture of a winter outdoors, covered in snow, no grass. His cold holiday lasted approximately forty-eight hours before he found the first bug. I would say I was disappointed but that would require me to have had expectations in the first place. But the testing period did its job - four bugs reported, three fixed, one turned out to not be ours. Luckily @Wheaten has been busy elsewhere, which meant I had more than the usual twenty minutes he gives me between “here is a bug” and “is it fixed yet” to actually think through the logic. Luxury.
Here is the scorecard.
Bug 1 - PeppyMeter stuck on screen after album finishes
Reported by @Gelo5. After the last track in a queue finished playing, PeppyMeter stayed on screen instead of returning to the Volumio UI.
Cause: a regression in pushState stop handling. When playback ends naturally at the end of a queue, the stop event was not being processed correctly, so the screensaver never received the signal to exit.
Fixed in 340e98d. One surgical commit, no collateral damage.
Bug 2 and 3 - Server Only mode rendering locally and spectrum instability
Reported by @dewen. Setting the remote display to Server Only (headless) mode still showed the meter on the local Pi 5 screen. Additionally, the spectrum analyzer in headless mode was unstable - flashing instead of responding smoothly to audio.
Cause: same problem. Server Only mode was still spinning up the full local render pipeline - pygame display, render loop, callbacks, all of it - and then trying to suppress the output. The spectrum instability was the local renderer and the UDP broadcast path both fighting for the audio data buffer.
First fix attempt was reverted. Second attempt got it right - a true headless server runtime that runs only metadata and UDP broadcasters. No pygame, no display, no render loop, no callbacks trying to draw to a screen that should not exist. Server + Local mode is completely unchanged.
The remote client also got a related fix - the discovery active_meter message is now treated as runtime authority, eliminating a reload loop that occurred when meter was set to random.
Fixed in peppy_screensaver 8ce594d and peppy_remote 6630cb1. Documentation updated in both repositories and the wiki.
Bug 4 - Random On Title Change not switching templates
Reported by @Gelo5. Setting random template switching to “On Title Change” did not switch - stayed on one skin. “Interval” mode worked fine.
Resolution: not a PeppyMeter bug. @Gelo5 updated Volumio to 4.103 alpha and the problem resolved itself. The pushState title change events were not being sent correctly by the older Volumio version. Trace logging confirmed all screensaver actions and APIs were in order.
Windows installer improvements
@dewen’s and @Lee.Yan’s testing also surfaced Windows installer issues - and one that deserves its own paragraph. After winget installs Python and Git, Windows does not update the PATH for the current PowerShell session. The script detects they are missing, relaunches itself in a new window to pick up the new PATH - but Windows does not update that one either. So it relaunches again. And again. Classic Microsoft - installs the software, tells the registry about it, then keeps it a secret from every running process.
Since I do not have a Windows machine, @dewen and @Lee.Yan have been my hands-on testers for this. The fix adds direct probing of known install directories when PATH lookup fails - it now checks where winget actually puts Python and Git on disk instead of trusting Windows to know where its own software lives. There is also a recursion guard so even if everything else fails, it stops after one relaunch and tells you what to do manually instead of opening windows until your taskbar gives up.
The Numbers
Four bugs reported during the testing period. Three were real and are now fixed. One was a Volumio issue that resolved with an update. Zero regressions introduced by the fixes. One report ignored because it contained no logs, no hardware details, no template name, and no debug output - just “meters do not move.” That is not a report. That is a haiku without the syllable count. The rule has not changed and will not change: –>> No logs == no help <<– No exceptions.
Total reports received: still basically four people. Out of five hundred plus downloads. I am choosing to interpret the silence as “it works perfectly and everyone is too busy enjoying their music to type a sentence.” The alternative interpretation is less flattering.
What Happens Next
The 3.3.0 tag is now out. The three confirmed bugs are resolved and pushed to main branch. If @dewen can confirm the headless fix works on his Pi 5, and nobody finds anything new in the next few days, the tag stays cut.
If you have been waiting for the stable release before testing - now is the time. Pull from main (install in usual manner), play some music, and tell us if anything looks wrong. Even “all good” helps.
@Gelo5 - welcome back. Your holiday is officially over. I am sure you have a list.
Kind Regards,







