Skip to content

Claude/spectrum autoplay fixes - #14

Merged
QrowZK merged 2 commits into
mainfrom
claude/spectrum-autoplay-fixes
Aug 3, 2026
Merged

Claude/spectrum autoplay fixes#14
QrowZK merged 2 commits into
mainfrom
claude/spectrum-autoplay-fixes

Conversation

@QrowZK

@QrowZK QrowZK commented Aug 3, 2026

Copy link
Copy Markdown
Owner

No description provided.

claude added 2 commits August 3, 2026 00:55
…lant

Rescan during playback caused errors and audible trouble because
music-metadata parsing ran on the MAIN process event loop — the same
loop that refills the WASAPI-exclusive ring every 10ms, services the
RtAudio callbacks, and answers IPC. A real-library rescan starved all
of it.

- Library scanning now runs in a worker thread (electron/scan-worker.js)
  with the same incremental mtime logic, art caching, and progress
  events; main only writes the result and refreshes the media server.
  Cancel posts into the worker; a second Rescan click joins the running
  scan instead of racing it.
- Scan strip: the final progress IPC event could arrive AFTER the scan
  invoke resolved, resurrecting the strip at 100% forever. Progress
  events are now gated by a scanActive flag.
- Device writes (_outWrite) can no longer throw uncaught out of the
  10ms pump interval — an invalidated device mid-write became a
  repeating main-process exception; now a rate-limited transient
  native:error toast.
- Spectrum left edge: bars narrower than one FFT bin all flat-read the
  same bin and differed only by tilt — a rigid slanted ramp bouncing in
  unison. Sub-bin bars now interpolate at their center frequency, and
  the display floor is resolution-aware (max(30Hz, 1.5 bins)) so the
  bottom bars always have real data to differentiate them.
- MediaSession artwork dropped: MediaImage rejects the auralis:// scheme
  and logged a console error on every track start.

Verified live under Xvfb: rescan mid-playback → strip clears, zero
renderer errors, playback uninterrupted. Bar-mapping suite extended
with low-bar differentiation assertions (24/24 unique both engines);
full regression suite passes.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0125mBkda6C4Yv2CiekXA6uW
Clicking the artist in an album's hero header now navigates to that
artist's page (uses albumArtist — the same key the artist view filters
on, so compilations resolve consistently). Hover styling matches the
accent language. Verified live: album → artist click → artist page.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0125mBkda6C4Yv2CiekXA6uW
@QrowZK
QrowZK merged commit 5267f40 into main Aug 3, 2026
1 check passed
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.

2 participants