From c91fdd7e1dd737730be720a2a6af1aff711ca6b3 Mon Sep 17 00:00:00 2001 From: Psychotoxical Date: Sun, 15 Mar 2026 21:24:00 +0100 Subject: [PATCH] feat: Waveform seekbar, MilkDrop visualizer, EQ bars, in-app browser, and UX improvements (v1.3.0) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - PlayerBar redesigned: canvas waveform seekbar (500 bars, blue→mauve gradient + glow) replaces thin slider; new flex layout; queue toggle moved to content header (consistent with sidebar pattern) - MilkDrop visualizer in Ambient Stage via Butterchurn; hidden audio analysis, preset shuffle, smooth blend transitions - Tracklist: animated EQ bars for playing track, play icon when paused, align-items: center fix - Artist pages: Last.fm + Wikipedia open in native Tauri WebviewWindow (in-app browser) - Hero/Discover deduplication: single fetch of 20 random albums split between sections - Update checker: runs every 10 minutes during runtime; version shown without v-prefix - Settings version: now read from package.json instead of hardcoded - Help page: new Random Mix section, updated Playback + Library sections, improved accordion styling - Bump version to 1.3.0 Co-Authored-By: Claude Sonnet 4.6 --- CHANGELOG.md | 44 ++++++ README.md | 12 +- package-lock.json | 63 ++++++++- package.json | 4 +- src-tauri/Cargo.lock | 2 +- src-tauri/Cargo.toml | 2 +- src-tauri/capabilities/default.json | 4 +- src-tauri/gen/schemas/capabilities.json | 2 +- src-tauri/tauri.conf.json | 5 +- src/App.tsx | 11 ++ src/components/FullscreenPlayer.tsx | 62 ++++++-- src/components/Hero.tsx | 9 +- src/components/PlayerBar.tsx | 160 +++++++++------------ src/components/QueuePanel.tsx | 19 ++- src/components/Sidebar.tsx | 13 +- src/components/VisualizerCanvas.tsx | 130 +++++++++++++++++ src/components/WaveformSeek.tsx | 180 ++++++++++++++++++++++++ src/i18n.ts | 78 +++++++--- src/pages/AlbumDetail.tsx | 17 ++- src/pages/ArtistDetail.tsx | 17 ++- src/pages/Help.tsx | 15 +- src/pages/Home.tsx | 8 +- src/pages/RandomMix.tsx | 29 +--- src/pages/Settings.tsx | 3 +- src/styles/components.css | 62 ++++++-- src/styles/layout.css | 99 +++++-------- src/styles/theme.css | 2 + src/types/butterchurn.d.ts | 20 +++ 28 files changed, 800 insertions(+), 272 deletions(-) create mode 100644 src/components/VisualizerCanvas.tsx create mode 100644 src/components/WaveformSeek.tsx create mode 100644 src/types/butterchurn.d.ts diff --git a/CHANGELOG.md b/CHANGELOG.md index e4373d81..63d66efa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,50 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [1.3.0] - 2026-03-15 + +### Added + +#### Player Bar — Complete Redesign +- **Waveform seekbar**: Replaces the classic thin slider. A canvas-based waveform with 500 deterministic bars (seeded by `trackId`) fills the full available width. Played portion renders as a blue → mauve gradient with a soft glow; buffered range is slightly brighter; unplayed bars are dimmed to 28% opacity. Click or drag anywhere to seek. +- **New layout**: Single flex row — `[Cover + Track Info] [Transport Controls] [Waveform + Times] [Volume]`. More breathing room for the waveform; controls feel lighter and better proportioned. +- **Queue toggle relocated**: Moved from the bottom player bar to the top-right of the content header — consistent with the sidebar collapse button pattern. Uses `PanelRightClose` / `PanelRight` icons (same family as `PanelLeftClose` / `PanelLeft` in the sidebar). + +#### Ambient Stage — MilkDrop Visualizer +- **Butterchurn integration**: Clicking the waveform icon (top-right of the fullscreen player) activates the MilkDrop visualizer powered by [butterchurn](https://github.com/jberg/butterchurn) + `butterchurn-presets`. +- A hidden `