Skip to content

Releases: HaydenGriffin/afterglow

Afterglow 1.6.0

Choose a tag to compare

@HaydenGriffin HaydenGriffin released this 18 Oct 15:21
  • Visual style Off (user request). Display → Extras gains Visual style: MilkDrop (the default) or
    Off: no visuals, just the music on a black screen. With Visuals only nothing is drawn but the notices, which
    fade; with Visuals + track the track card sits on black; Album and Lyrics show their posters whole, as with
    MilkDrop behind them turned off; the lyric overlays still show. The black is true black (OLED pixels off), and
    MilkDrop does not render while Off (it is not even started when the app opens with Off), except during a preset
    scan you start. The render loop stops too: only a waveform check four times a second keeps "Waiting for music"
    current. A MilkDrop that cannot run on this TV says nothing about it while Off. In the Visuals modes the preset
    keys (↑ / ↓, Yellow, Blue) do nothing while Off. Saved on this TV and synced with its settings on the account
    (visualStyle); a value this build does not know reads as MilkDrop. LG has no Halo or Spectrum, so the PS5's
    four styles are two here.

Afterglow 1.5.6

Choose a tag to compare

@HaydenGriffin HaydenGriffin released this 16 Oct 20:46
  • New logo. The wordmark is afterglow in lowercase Archivo with its o as the sun, setting below the
    baseline; the launcher icon is a close-up of that sunset, a night sky over dark ground with a two-step glow
    round the sun. New app icons, favicon and social preview; iconColor is the sky (#16233A). See
    docs/brand/README.md.
  • The logo inside the app, only where you pass through or go on purpose, never on the now-playing or idle
    poster, where a still logo would burn into the OLED: sign-in is the sunset scene, sky over the ink ground
    with the wordmark standing on the horizon and the form below; the webOS launch splash is the same scene
    (splashBackground in appinfo.json); a small wordmark sits above Waiting for music; and Settings ends
    in a quiet About line, the wordmark and the version.
  • Music playing on another speaker can be joined or moved: while Play on this
    TV is on, Queue and Playing on offer Join (the TV joins that
    speaker's group, where Music Assistant allows it) and Move here (the
    music moves to the TV, as the old Play on this TV row did). Nothing happens
    until you choose one.
  • Playing on says what each speaker plays: the song and artist, Paused, or
    Idle, instead of Speaker or Group.
  • Speakers together: Volume for each speaker sets one member's volume
    (players/cmd/volume_set) beside the group's Volume; speakers with a fixed
    volume are left out.
  • Cover art in the visuals (Settings → Visuals & presets, on by default): the 44 presets that sample a
    picture get the song's cover instead of Butterchurn's clouds, faded in over 2 s once the artwork and its
    colours have arrived, at most every 4 s. One fixed 512 × 512 texture is updated in place for the whole page,
    never one per song, and released with MilkDrop.
  • Change preset adds Each song (a new preset when the queue moves to another song, after 2 s, at least
    10 s apart) and On big moments (when the music's energy jumps, at least 25 s apart). Both go through the
    preset list, favourites and skip-slow as the timer does.
  • In Shuffled order, ↓ now goes back to the preset actually shown before (the last 50), and ↑ forward again,
    instead of another random pick.
  • Scan to save: Details shows a QR code beside the facts that opens the
    playing song on a phone, on a public service Music Assistant knows it from
    (Spotify, Tidal, Apple Music, YouTube Music, Deezer, Qobuz, SoundCloud),
    preferring the one it plays from. Drawn on the TV with Project Nayuki's QR
    Code generator (MIT); hidden when the song has no public page.
  • Check my setup (Settings, Account & diagnostics): Music Assistant
    reachable and 2.10 or newer, the token accepted, this TV's speaker known and
    connected, the MilkDrop Visualizer plugin found, lrclib.net answering (busy
    is not a failure) and the preset scan done, each failure with one next step.
    Runs only when asked. An empty idle poster offers it as Check setup.
  • README: the per-album and per-artist preset locks removed in 1.5.2 are no
    longer described.
  • Display → Lyrics: changing Lyrics timing during a song offers once to
    Keep this timing for this song? (Keep / Not now). A kept timing applies
    to that song's lyrics only, the other songs keep theirs, and Forget timing
    for this song
    drops it. Kept for the 100 most recently changed songs,
    synced with this TV's account settings.
  • Display → Lyrics → Choose other lyrics: wrong lyrics can be swapped for
    another version from lrclib.net (up to six, with length, Timed or Plain and
    album; a much longer one says so). The pick is kept for the song and fetched
    by its LRCLIB id on later plays; Automatic goes back.
  • Details → Go to a line: with timed lyrics, pick a line and the song
    plays from it.
  • The whole library: Browse reads library lists (favourites, all playlists,
    all albums, radio, podcasts, audiobooks) 60 at a time as the focus nears
    the end, with Loading more… and More couldn’t load (OK tries again)
    at the end, up to 10,000 items. An album's, playlist's or artist's songs
    are no longer cut at 200. Only a window of rows is in the page, so long
    lists stay quick; the scrollbar and More still tell the truth.
  • Queue: Up next is read 25 songs at a time as you scroll, up to 500 (was the
    next 12).
  • Details: Go to the album, Go to artist and, for a podcast
    episode, Go to the podcast open Browse on that page; Back returns to
    Details.
  • Audiobooks and podcasts: Browse has Continue listening, Podcasts
    and Audiobooks (a podcast offers Show episodes). Playing one resumes
    where it was left. While one plays, Details offers Speed (0.75× to 2×)
    and Chapters (jump to a chapter's start); radio and Retry lyrics are not
    offered for them. The idle poster offers up to three in progress after the
    paused song ("OK carries on").
  • The browser demo (?mock=1) has a 400-song playlist, 150 more albums,
    podcasts and audiobooks with chapters.
  • Save the queue as a playlist. Queue → Save as a playlist saves the
    whole queue as a Music Assistant playlist named “Queue · 16 Oct” (unique
    with “(2)”), no keyboard needed. The row and a notice confirm, say how many
    songs could not be added, or why Music Assistant refused (an account that
    cannot change playlists, nowhere to keep them).
  • Add to a playlist on Details, a queued song and a song in Browse: New
    playlist or one of the eight playlists you can change, most recently changed
    first; the song's row confirms with a tick, as Play next does.
  • Tonight's programme. After a listening session the idle poster offers
    Tonight (or Today) before Browse: the evening's songs set as a
    concert programme with their artists and start times, and Keep it as a
    playlist
    . Offered only, never opened by itself; built from Music
    Assistant's played history for the queue, so it survives a restart.

Afterglow 1.5.5

Choose a tag to compare

@HaydenGriffin HaydenGriffin released this 16 Oct 12:27
  • Long lists show that they continue: More with a chevron at the bottom
    edge over a fade of the last visible row, and at the top once scrolled, on
    Settings, Display, Queue (and its Play on and Speakers together pages),
    Details and Browse. The focused row keeps one row of context beyond it, so
    the cue never covers it; the scrollbar stays.
  • Display → Lyrics over Visuals + track is now Off / One line /
    Stage (the current line large, centred). While one is chosen,
    Position (Top, Middle, Bottom), Background (Box, Shade, None) and
    Size (Small, Medium, Large) follow, kept separately per overlay (One
    line: Bottom, Box, Medium; Stage: Middle, Box, Medium), saved on this TV and
    synced with its account settings. Shade is a full-width dark band that
    fades out above and below the text. A TV that had the overlay On keeps One
    line. Bottom still stacks above the track card; Middle moves off a tall
    card or the "Waiting for music" line; Dim track info and the OLED shift
    apply to every look.
  • The progress bar under Album and Lyrics moves smoothly every frame, by
    transform rather than width; small clock corrections are eased in and never
    move it backwards, seeks and new songs snap, and it holds still while paused.
  • The browser demo (?mock=1) shows the track card as live songs do.

Afterglow 1.5.4

Choose a tag to compare

@HaydenGriffin HaydenGriffin released this 16 Oct 09:49
  • When lyrics fail to load (LRCLIB answering "server busy"), Afterglow keeps
    retrying while the song plays, after 30 s, 1 min and then every 2 min,
    instead of giving up after one retry.
  • afterglowDiagnostics() reports the lyrics status and why the last lookup
    failed.

Afterglow 1.5.3

Choose a tag to compare

@HaydenGriffin HaydenGriffin released this 15 Oct 23:18

1.5.3 — Poster block identity (16 October 2026)

  • New identity: the AFTER/GLOW poster-block wordmark in Archivo; new launcher icons
    (ink on a paper tile; AF/GL at small sizes), README wordmark, social preview
    and a favicon for the browser demo. Masters and usage notes in docs/brand/.

Afterglow 1.5.2

Choose a tag to compare

@HaydenGriffin HaydenGriffin released this 15 Oct 22:36

1.5.2 — Fewer features (15 October 2026)

  • Removed Bedtime: Music Assistant's sleep timer (Queue panel) and the TV's own
    sleep timer cover it.
  • Removed preset locks per album or artist: favourite presets with automatic
    changes off cover holding a preset.

1.5.1 — Review fixes and an Online lyrics switch (15 October 2026)

  • Display → Lyrics gains Online lyrics (On by default, synced): Off keeps
    lyrics to what Music Assistant provides and nothing is sent to lrclib.net;
    switching it back On looks up a song that had no lyrics again.
  • Bedtime brings the volume back only after the pause has succeeded; if the
    pause fails, the music stays silenced and bedtime keeps retrying.
  • Play, Pause, Play/Pause, Stop, fast-forward, rewind and Space act once per
    press, so holding fast-forward or rewind no longer skips many tracks; skips
    pressed while one is under way collapse to one waiting skip per direction.
  • Transient lyrics failures stay retryable instead of being remembered as
    missing.
  • The TV speaker watches its connection and reconnects when it drops.
  • A pinned speaker that pauses no longer makes the relay reconnect every 10 s.
  • Token renewal and Log out are safe with two TVs of the same name: tokens are
    revoked by id, and Log out removes only this TV's own token. New sign-ins
    name the token "Afterglow on ()".
  • New Play on this TV speakers get the id webos-afterglow-tv. A TV keeps its
    stored speaker id; a TV with none reuses webos-viz-man-tv only while Music
    Assistant still knows that player.