Skip to content

Added new features: Visual & timing fixes - #5

Open
szoltysek wants to merge 1 commit into
Rosalina121:mainfrom
szoltysek:main
Open

Added new features: Visual & timing fixes#5
szoltysek wants to merge 1 commit into
Rosalina121:mainfrom
szoltysek:main

Conversation

@szoltysek

Copy link
Copy Markdown

Features: Visual & timing fixes

Fixes a handful of long-standing bugs around animation timing and cover art layout.

Progress bar desync

  • The old setTimeout-based reset was brittle by design. Replaced it with a synchronous layout reflow (void border.offsetWidth) - resets are now instant. Also added drift correction: if CSS animation falls more than 1.5s out of sync with the server's reported playback time, it corrects itself automatically. Fixed start, end, and current timestamps in the prgr packet while I was in there - current wasn't reporting correctly.

Options menu

  • Implemented options menu for changing setting for Cover Spinning and Cover's shape.
    Options

Font stack (or Typography)

  • Switched to -apple-system, BlinkMacSystemFont - San Francisco renders natively on Apple platforms now. Falls back to Inter (Google Fonts) on Linux (not considering Windows a system). Cleaner, sharper, more pleasing for my ADHD eyes.

CSS cleanup

  • Dropped overly-specific selectors like .animate.spinning and .thumbnail-border.circle in favor of global layout classes - .circle, .rounded-square. They cascade cleanly down the DOM and are much easier to work with going forward.

ShairportGUI

Known issues & limitations

Cover art spin delay on pause

  • Cover doesn't stop spinning immediately when playback pauses. This is a shairport-sync timing issue, not something I can fix on my end cleanly.

No playback controls (AirPlay)

  • Pause/Play/Forward/Backward controls aren't implemented for AirPlay (and Spotify yet). The protocol bits that handle this are closed-source, and the shairport-sync repo explicitly notes this limitation. Spotify is a different story - controls are probably doable there since the API is open.

Also - my roadmap for this project (I find it really cool):

UI Overhaul - Apple Music / Spotify aesthetic

  • Full visual redesign taking cues from Apple Music and Spotify's UI language - clean typography, blurred backgrounds, smooth transitions. The current layout works but doesn't feel premium. This would bring it up to that level.

HomeKit RGB integration

  • Implementing ambient lighting sync via HomeKit - LED strip reacts to playback state or cover art colors. Easiest path is through Homebridge. Blocked on hardware for now - need to acquire a controllable LED strip first (I was thinking about it).

Replace Spotify token flow with data from FOSS Spotify Server - spocon

  • Current Spotify token handling is a workaround. spocon runs a local server that handles auth transparently, no token juggling. Straightforward swap once I sit down with it.

Additional providers

  • Tidal - on the list, haven't dug into the API yet
  • Pandora - no idea where to even start with this one, skipping for now

@szoltysek

szoltysek commented Mar 1, 2026

Copy link
Copy Markdown
Author

And I forgot to mention, fixed the npm vulnerabilites and removed some comments, because why not.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant