From ca07e1fdf12480fed88e7ec7dce276a2b1631ad6 Mon Sep 17 00:00:00 2001 From: Jonathan Sykes Date: Sat, 19 Sep 2026 16:12:33 +0800 Subject: [PATCH] Add gapless and crossfade playlist transitions with a mode toggle, and a waveform seek bar for audio-only playback --- CLAUDE.md | 22 +++ frontend/app.js | 384 +++++++++++++++++++++++++++++++++++++++++++- frontend/index.html | 5 + frontend/styles.css | 24 +++ server/server.js | 54 +++++++ 5 files changed, 485 insertions(+), 4 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index 981c307..8e39841 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -115,6 +115,28 @@ JSON shapes mirror the Tauri Rust bridge exactly — don't change one side alone forever and Chrome killed the tab ("Target crashed" in Playwright, no JS error). Never cap with a loop whose exit depends on a deferred removal. +## Playlist transitions + waveform (`Transition` / `Wave` in app.js) +- `data.settings.transition` = `off` | `gapless` | `crossfade` (`crossfadeSec`, + default 6); the ↦/⇥/⤨ button cycles it with a 6-s toast. Applies only to + playlist/queue playback with a next song, not with loop-one or an A-B loop. +- A hidden **bridge `