What's new in Kiosk Satellite v0.31.1-beta
Audio Sync Offset for Bluetooth Speakers
A new Audio sync offset slider in the Sendspin settings shifts this one device's playback against the group timeline, from -1000 to +1000 ms. Negative plays this device earlier, which is the cure for a Bluetooth speaker: its own buffering happens past the point Android can measure, so that endpoint always lagged the group and the only workaround was delaying every other player to match it. Tune it by ear once and the other players never know. Changes apply live while the music plays, no restart and no rebuffer.
Lyrics Timing Rebuilt on Firmer Ground
The Now Playing lyrics clock has been reworked around what the speaker is actually playing, paired against the server's reported position at the same instant, which makes it immune to buffering depth, message ordering at track boundaries, and the server's shifting notion of "position" (including a stream-end quirk that once anchored the display 42 hours into a 3-minute song). Fixes lyrics pinning on their last line after replaying a finished queue, lyrics running ahead or behind after restarting the app mid-song, and the lyrics view inheriting the previous song's scroll position on a track change. Malformed metadata now heals itself within seconds instead of sticking for the whole track.
Improvements
- The LRCLIB lyrics fallback now requires the artist to appear in the credit when the artist is known: a song with the same title and nearly the same length is not the same song, as one Italian namesake demonstrated.
- Crash recovery on Fire OS and Android 12+ is now graceful: a crashed kiosk comes back in about a second with its watchdog re-armed, and an explicit restart command always works instead of being throttled after repeated recoveries. (#94)