Bringing back the ritual of listening

Bringing back the ritual of listening

I keep thinking about what we lost when music went digital. Pulling a record from its sleeve. Staring at the cover art. Reading the CD booklet while track three played. Streaming killed all of that. Infinite music, no ceremony.

So I built something to fix it. Or at least fake it.

I run Roon as my music server, and I wanted a dedicated display showing what's playing. Something you can glance at from across the room. You know that one friend whose turntable setup somehow made the whole apartment feel more intentional with the shelve to hold the record sleeve? That's the energy.

roon-now-playing turns any spare iPad or tablet into an always-on album art screen.

It connects to Roon, grabs the track metadata and artwork, and displays it. Eight layouts, from minimal full-bleed artwork to detailed two-column views. The backgrounds extract colors from the album art automatically. Runs in Docker, works on any browser.

It started as a Roon extension, but there's also a generic API that lets any player push now-playing data. Spotify, Apple Music, some cursed AppleScript thing you hacked together at 2am. If it can POST to an endpoint, it works. External sources show up as zones alongside Roon.

But the part I'm most pleased with is weirder.

Digital liner notes

Remember actually reading CD booklets? The credits, the thank-yous, the artist's notes about each track. Half the experience of a new album was learning that the weird sound in the bridge was a broken amp they decided to keep. Or that the whole thing was recorded in two weeks because the label was losing patience.

Streaming has none of that. So I added a "facts" mode. Basically liner notes that generate themselves.

Digital liner notes

It uses Claude or GPT to pull up context about whatever's playing. Recording history, what the lyrics actually mean, who played on it, whether it flopped or not. The stuff you'd find in a good gatefold sleeve, except now it exists for everything in your library.

The prompts are customizable. I've been running one that asks for "facts that would make someone at a party say 'wait, really?'" and it's been weirdly effective. Facts rotate on a timer and get cached so you're not burning API calls every repeat.

I've learned things about albums I've had on rotation for years. It's like having a friend who actually read all the liner notes you skipped.

Nerdy details

If you want to poke around:

  • Eight layouts, three of them fact-based (columns, overlay, carousel)
  • Fourteen background options with automatic color extraction
  • External API for non-Roon players
  • Admin panel to push settings to connected displays
  • WebSocket updates, Docker images for amd64 and arm64

It's all on GitHub:

GitHub - arthursoares/roon-now-playing
Contribute to arthursoares/roon-now-playing development by creating an account on GitHub.

This doesn't solve any real problem. But there's something nice about glancing over and seeing album art instead of a black screen. For me, it is also a little project that I couldn't have dreamt of doing myself a couple of months ago without agentic coding.

See ya!

Subscribe to get e-mail updates

No spam, no sharing to third party. Only you and me.

Member discussion