Living Room Music
A calm, audio-only music app and home server for our living-room TV. It plays streaming and our own lossless library with no videos, colors the room's Hue lights to match each album, and finds new music from what we already love.
Music for the room, not the screen
We wanted music in the living room without a screen full of video. With two small kids, music videos on the TV meant more stimulation than we wanted, but the parents still wanted something good to listen to. So I designed a music app for our TV that plays sound only and lets the screen settle into album art, lyrics or a slow visual.
- Calm by design. Every song plays as audio. The TV never shows a video.
- Better discovery. The official app's suggestions felt thin, so new finds come from the songs we've already liked, each with a reason.
- Our record collection. The TV runs into 70s vintage speakers, and our own FLAC library plays lossless right next to streaming.
- The kids. A place for the songs they dance to, without opening YouTube.
What it does
- Discovery from your likes. New finds are ranked by how many of our liked songs lead to them, each with a "because you like" reason.
- Your own library, lossless. Albums from Plex stream as the original FLAC, and songs we own play from our file instead of the stream.
- Album-colored player. The whole screen washes in the cover's colors, and the accent color follows the album.
- Karaoke lyrics. Synced lyrics, with the current line filling left to right as it's sung.
- Four visualizers. Ribbon, aurora, particles and bars, all reacting to the music.
- Kids' dance party. The family's most-played kids' songs, found in our watch history.
- Listening craft. Gapless albums, crossfades between other songs, and even volume across tracks.
- Calm mode. After 12 quiet seconds the controls fold away, leaving the art, lyrics or visual and the song's name.
- Time of day. Home opens with a mix that learns what we play in the morning, evening and at night.
The room follows the music
Turn the lights on and the living room's Hue lights take each album's colors, the same colors as the aurora on screen. Only lights that are already on change, and the room goes back to how it was when the music stops, so it feels considerate rather than like a gimmick.
Designed on the actual TV
The look went through three passes in one day, each a reaction to seeing the last one on the TV from the couch.
- Functional first. A plain dark layout to prove playback, discovery and remote navigation worked.
- Vintage hi-fi, rejected. Serif type, brass accents, record sleeves and VU meters. It looked good, but it wasn't the feel I wanted for a family room.
- Modern and album-led, shipped. An accent color that adapts to each album, a full-bleed album-color player with lyrics, and blue-violet visualizers.
- Built for a remote, not a mouse. Big focus states, a quick stop button on every screen, and two presses to thumbs-down, so a stray click can't throw a song away.
- Quiet by default. Calm mode, soft fades at the screen edges, no hard cut-offs.
One server behind it
The TV app is plain Kotlin with no third-party libraries. A Python server at home does the heavy lifting, and solved the problems worth telling:
- Hi-res audio that played clean. 24-bit, 192 kHz FLAC distorted on the TV, so the server converts it once, caches it, and prepares the next song while the current one plays.
- Even volume without flattening albums. Every song is measured once and played toward the same level, but an album played straight through keeps one level so its dynamics stay intact.
- Seamless listening. The next song loads before it's needed: same-album tracks hand off on the exact sample, others crossfade over four seconds, and skips are instant.
- The kids' songs, from 7,000 watched videos. Claude sorted our watch history into kids' songs, family dance songs and everything else, and play counts rank them.
I designed and directed it, and built it with Claude Code over one long day. It's a personal project for our home, not a product.