Skip to content

Releases: sneedster/harmonicast

v1.1.27 — Plex scrobbling and room reliability

Choose a tag to compare

@sneedster sneedster released this 17 Oct 22:25

Changes

  • Report eligible online playback state and progress to Plex so its existing Last.fm integration can scrobble qualifying listens, without duplicate completion play counts. Offline/guest/stale-source observations are excluded.
  • Resume nearby Bluetooth guest heartbeats after the host rejects an operation.
  • Enable room music acquisition by default after the configured backend and permissions are verified. Preserve explicit opt-outs and shared-owner grants; downloads still require a request.

Verification

  • Version 1.1.27, code 91; existing package and signing identity preserved.
  • All 429 Android tests across 61 classes pass; debug lint has zero errors and 43 existing warnings.
  • Signed release assembly, vital lint, APK metadata and same-certificate comparison with published v1.1.26 pass.
  • Independent code re-review and DeepSeek release review completed with no introduced blocker remaining.

Device acceptance still needed

This release has not been installed or physically tested by the agent. Confirm a Harmonicast play reaches Last.fm and test passenger room stability in Android Auto. The rejected-command heartbeat bug is fixed, but the reported rapid disconnect/reconnect symptom is not yet proven resolved. Physical listening and TV acceptance also remain pending.

v1.1.26 — Guest rooms for Android Auto

Choose a tag to compare

@sneedster sneedster released this 17 Oct 19:23

Guest rooms for Android Auto

  • Automatically open a guest room when Android Auto projection connects, using the existing Plex-access check and guest permissions.
  • Close only the Auto-started room when projection disconnects, including cancelling a pending access check. Preserve rooms opened or opening manually.
  • Respect manual room closure until the next Auto connection; repeated connection updates do not reopen sharing.
  • Keep room music acquisition off by default. Nearby Bluetooth discovery still needs existing permissions; browser guests still need a reachable shared local network.

Installation

Download harmonicast-1.1.26.apk below and install over your existing Harmonicast app. Version 1.1.26, code 90, signed with the existing release certificate.

Validation

All 395 Android tests in 56 isolated classes passed with zero failures, errors, or skips. Debug lint passed with zero errors and 43 existing warnings. Signed release assembly, release vital lint, APK package/version, and same-certificate checks passed.

Live Android Auto connection, passenger joining, installation, physical listening, and physical TV acceptance remain unverified for this release. Earlier physical-listening confirmation applies to v1.1.25, not this new behavior.

SHA-256: 515697bafd105783a084edf0bc3308164b33dde4082cf1b949ae9fa03fb66851

v1.1.25 — Ratings on cached playback

Choose a tag to compare

@sneedster sneedster released this 13 Oct 22:09

Version code: 89.

  • Refresh metadata for songs already in the rolling queue cache so Now Playing retains current Plex ratings before any vote.
  • Preserve cached audio and keep stream credentials out of stored cache metadata.

Validation: all 386 Android tests in 55 isolated classes, debug lint, signed release assembly, release vital lint, APK version, and same-certificate checks passed. Phone installation, physical listening, TV, and Android Auto acceptance remain unverified. See Android validation.

SHA-256: 913d5679fa9f932dc12801b459550686898e88a33c9e48eb72b94b4f3ebf7146.

v1.1.24 — Artist Radio and automatic-mix recovery

Choose a tag to compare

@sneedster sneedster released this 11 Oct 05:24

Artist Radio that fills and automatic-mix recovery
Version code: 88.

  • Treat the Artist Radio sound match range as a starting target. Expand by 0.05 up to 0.30 when needed to find up to 20 fresh songs, while preserving the saved setting and original song/related-artist rules.
  • Preserve the existing queue and station when starting Artist Radio finds no songs.
  • Make explicit automatic-mix playback exit Artist Radio and refill normally, including after an empty radio attempt, while preserving manual requests.

Validation: all 385 Android tests in 55 classes, debug lint, signed release assembly, release vital lint, APK version and same-certificate checks passed. Read-only live Plex checks at target 0.10 returned songs for Lady Gaga, Prince, and Sinéad O’Connor. Phone installation, physical listening, TV, and Android Auto acceptance remain unverified. See Android validation.

v1.1.23 — Artist Radio and more varied automatic mixes

Choose a tag to compare

@sneedster sneedster released this 11 Oct 04:44

Version code: 87.

  • Artist Radio mixes the starting performer with directly related artists while matching the original song's sound. Continuation stays anchored to that original song, including after restarting the app or taking a Somewhere Different detour.
  • Preserve manual requests when starting radio, replace the previous automatic tail, and avoid duplicate recordings. Settings → Artist Radio controls the sound match range; sparse stations stay short instead of widening automatically.
  • Spread automatic mixes across albums throughout rolling queue refills, including fallback candidates, while retaining rated/unrated mix settings.

Sound matching is best effort: Plex does not expose BPM or energy in the inspected metadata, so exact tempo compatibility is not guaranteed. The full Android suite, read-only live Plex selection, and rendered settings checks passed. Physical listening, TV, and Android Auto acceptance remain unverified. See Android validation.

v1.1.22 — Artwork that stays with your music

Choose a tag to compare

@sneedster sneedster released this 05 Oct 23:41

Keep Now Playing artwork when cached audio metadata arrives, and keep covers available with offline music.

  • Cache private covers for saved downloads and the rolling queue, using the selected Plex cover with embedded artwork as a fallback.
  • Add covers to existing complete downloads without downloading the audio again. Saved covers survive rolling-cache cleanup.
  • Refresh phone, TV, media-session and room artwork when covers become available, while keeping Plex credentials and private paths out of shared metadata.

Version code 86 supersedes the code 85 artwork preview. Install over your current app to retain settings; the signing certificate is unchanged.

Validation: all 363 Android tests in 53 isolated classes, debug lint, both Chromium guest/display suites, signed release assembly, release vital lint, APK version and same-certificate checks passed. Physical-device artwork, real embedded-picture extraction, TV, Android Auto and prolonged worker scheduling remain unverified. See Android validation.

v1.1.21 — More ways to listen

Choose a tag to compare

@sneedster sneedster released this 04 Oct 04:42

Version code: 84, superseding the code 83 listening preview.

  • Save named automatic mix presets and rediscover forgotten favorites, underplayed tracks, or music you have never played. Home mix cards show representative album artwork; Recently played shows track titles and artists.
  • Download tracks, albums, and playlists for offline listening. A separate rolling queue cache preloads the current track and next 11 by default, with mobile data allowed, to keep complete cached tracks playing through coverage gaps. Cache rotation preserves manually saved downloads.
  • Save named sound profiles with all ten equalizer bands, preamp, and enabled state.
  • Add optional music-reactive TV backgrounds inspired by 1990s demos: plasma, starfield, and wireframe/copper effects with classic neon colors. Enable them in Settings → Appearance → TV visualizer; Off is the default.
  • Take me somewhere different adds up to three tracks from a wider sonic neighborhood while preserving manual requests and ordinary radio continuation. Track Radio remains on Now Playing.

Validation: all 354 Android tests, debug lint, both browser guest/display suites, signed assembly, release vital lint, APK version, and same-certificate checks passed. The stable APK upgraded the Pixel preview to 1.1.21 (84). Pixel 10 Pro checks covered presets, rediscovery, sonic detours, artwork, downloads, and offline cold-start/next-track playback with a complete 12-track cache. Physical TV, Android Auto, prolonged background scheduling, and independent audio listening checks remain unverified. Final stable packaging checks are recorded in Android validation.

HarmoniCast v1.1.20 — room access and playback hardening

Choose a tag to compare

@sneedster sneedster released this 30 Sep 00:51

Version code: 82.

  • Keep the live room code out of unauthenticated guest and display pages while retaining host-screen and QR invitations.
  • Exclude saved Plex sign-in and queue data from Android backup and device transfer. Sign in again after moving to a new device.
  • Reject oversized room HTTP request lines and headers without unbounded allocation.
  • Resolve the next media item before publishing playback state, and return an error for unknown media item IDs instead of a fabricated item.
  • Add regression coverage for blank track IDs in recent-play history and make the Android release test gate run each test class in isolation.

Validation: all 329 Android tests across 46 classes passed, with no failures, errors, or skips. Debug lint, both browser guest/display suites, signed release assembly, release vital lint, APK version, and same-certificate verification passed. No physical-device or Android Auto DHU check was performed for this release.

APK SHA-256: c8c8de09916f235b3116b7e623f96771316ae19e43307d4b8c9d90060b0497ff.

HarmoniCast v1.1.19 — equalizer and playback controls

Choose a tag to compare

@sneedster sneedster released this 24 Sep 04:08

Version code: 81.

  • Add a ten-band equalizer with a single interactive graph, built-in presets, and precise band controls.
  • Adjust preamp separately, with live equalizer changes and settings saved on this device. The equalizer is off by default.
  • Fix local playback controls failing to respond after connection discovery or controller disconnection.

Validation: all 328 Android tests and debug lint passed. Signed release assembly, release vital lint, APK version, and same-certificate verification passed. No physical-device installation was performed for this release.

v1.1.18 — Artist and album reading tabs

Choose a tag to compare

@sneedster sneedster released this 24 Sep 01:52

Version code: 80.

  • Keep a wide artist banner and Artist / Album tabs fixed while the selected text scrolls.
  • Prefer Plex artist background art, with the artist thumbnail as fallback.
  • Remember each tab’s scroll position and show separate missing-biography/review messages.
  • Limit swipe-down dismissal to the header so reading cannot accidentally close the page.

Validation: all 280 Android tests passed with per-class isolation; debug lint, signed release assembly, release vital lint, APK version, and same-certificate checks passed. No physical-device installation was performed.