Changelog
What's new in Vibrdrome
- Get Info window with Overview and Raw metadata tabs
- CMD+K / CMD+F search keyboard shortcuts on macOS
- Now Playing toolbar: hides when empty, new Toolbar Background toggle
- New Radio Mix toolbar item (song-similarity mix)
- Radio grid cards: long-press to Delete Station
- Add Station form: labeled sections for Name / Stream URL / Homepage
- Liquid Glass toggle subtitle explains what it does
- iPad floating keyboard no longer drags the mini player up
- Fix: CarPlay Genres crash on tap (SwiftUI rasterization asserted on missing environment)
- Replaced rasterized fallback with a plain SF Symbol; album art still loads async
- Fix: Genres tab crash on open
- Fix: CarPlay Radio now a flat scrollable list (was chunked by 20)
- CarPlay caps raised: Genres uncapped, Favorite Songs/Albums 20 -> 200
- New Apple Music-style Library tab with Playlists / Artists / Albums / Songs / Genres / Downloaded + Recently Added
- Default tab bar: Home, Favorites, Library, Search, Radio
- Favorites tab reworked with Songs / Albums / Artists segments and grid-list toggle
- New home carousels: Favorite Albums and Featured Genre (daily rotation)
- Heart button on Album Detail and Artist Detail to favorite/unfavorite
- Filter menu on Artists and Albums (All / Favorites / Downloaded)
- Genre list now uses real album artwork
- CarPlay: genre list shows album art + audio resumes after Siri/call/message interruptions
- macOS window title hidden next to traffic lights
- Larger section headings across library views
- iPad landscape mini player no longer stretches full-width
- 536 unit tests in 40 suites
- Fix: semicolon-containing genres (Hip Hop; Pop) no longer error on tap
- Fix: first tap on song/album rows now plays or navigates reliably
- Fix: Album search now searches the entire library, not just loaded pages
- Fix: audio glitch when spam-tapping tracks or play/pause
- Tighter touch separation between song title and artist in track rows
- Contributor CARPLAY_ENABLED build flag + signing guide
- 536 unit tests in 40 suites
- Album Collections: save filter presets to sidebar
- 336 AI-generated genre icons (DALL-E 3)
- Genre filter in Albums sort menu
- Grid columns up to 10 on macOS
- Auto-Suggest on/off toggle
- navigationDestination fix
- 536 unit tests in 40 suites
- Queue overhaul: all tracks visible, tap plays without hiding others
- Recently Played records gapless auto-advance, filters brief skips
- Now Playing landscape layout (art left, controls right)
- Grid art scales to 3/4 column settings
- Full context menu on queue tracks
- Watch album art refreshes on track change
- Auto-Suggest on/off toggle in Settings
- Cold-start audio session fix
- 536 unit tests in 40 suites
- Lossless badge in Now Playing (toggleable in Settings)
- Your Top Artists carousel on Home with album art
- Search tab auto-focuses keyboard
- iPad sidebar scrollable past mini player
- Delete downloads crash fix
- 532 unit tests in 40 suites
- Tab bar reorder works instantly without kicking to Home
- Queue layout: Recently Played, Now Playing, Up Next
- Queue auto-scrolls to Now Playing on open
- Play history tracks all playback paths
- 532 unit tests in 40 suites
- Tab bar drag-to-reorder restored
- A-Z section index on Artists with tap-to-jump
- Configurable grid columns (2/3/4) across all grid views
- Search bars hidden by default (pull down to reveal)
- 532 unit tests in 40 suites
- Fix: Sleep timer end-of-track resume advances to next track
- Fix: Recently Played tracks actual play history
- Fix: Track title no longer navigates away (long-press for Song Info)
- ReplayGain info shown in Now Playing streaming info
- Playlist Play Next, Add to Queue on detail and context menus
- 532 unit tests in 40 suites
- Security: credentials to Keychain, download path sanitization
- Accessibility: VoiceOver labels throughout player and track rows
- CarPlay: Recently Played replaces broken Search, radio station sections
- macOS UI overhaul: polished mini player, Now Playing, album detail, grid/list
- iPad: server manager responsiveness fix
- ReplayGain pre-gain and fallback gain for loudness matching
- Album Play Next and Add to Queue actions
- 532 unit tests in 40 suites
- CarPlay overhaul: Now Playing, Up Next, progress tracking, auto-navigate
- Apple Music-style dock: Artists, Albums, Songs, Genres, Favorites tabs
- Toolbar cleanup, green dot in menu, tappable artist on albums
- Offline ListenBrainz/Last.fm scrobble queue
- Last.fm auth fix, visualizer stutter fix
- 8 bug fixes from full app audit (playlist delete, downloads, sleep timer, lyrics)
- 512 unit tests in 37 suites
- Tappable artist name on album detail navigates to artist page
- Offline scrobble queue for ListenBrainz and Last.fm
- Fix: Last.fm auth for passwords with special characters
- Fix: Visualizer no longer stutters audio on open
- 512 unit tests in 37 suites
- Last.fm scrobbling with username/password sign-in flow
- Backup & Restore settings (named JSON export/import)
- Faceted search: Genre, Year, Format filter chips
- Deep links: vibrdrome:// URLs in shared text
- Crossfade curves: Linear, Equal Power, Logarithmic
- Fix: Transcoding through reverse proxy no longer garbles audio
- Fix: Visualizer UI stays visible during menu interaction
- Fix: No audio stutter when opening visualizer
- Album sort fix, multi-select batch actions, refactoring pass
- 512 unit tests in 37 suites
- Fix: Repeat All loops entire queue (was restarting current track)
- Fix: Transcoded streams resume on error instead of restarting
- Settings 2.0: Player, Appearance, Tab Bar sub-pages with 15+ toggles
- Smaller album art, bigger text, spinning art toggle, progress ring
- Home tab with server name, profile menu, playlist creation
- Connection indicator, haptic tab switch, Downloads tab
- Mini player dock matching, white area bug fix
- Always-visible search bars on all browse views
- Now playing indicator with animated waveform
- Swipe actions: Play Next / Add to Queue
- Toolbar drag-to-reorder in Settings
- iOS 26 Liquid Glass and floating tab bar
- Playlist public/private sharing
- macOS keyboard shortcuts and single-instance
- Discord Rich Presence with Application ID
- 510 unit tests in 37 suites
- Now Playing toolbar: bold white icons, customizable in Settings
- Album detail: Apple Music style buttons, lossless badge, per-track hearts
- Mini player tint reduced to match system tab bar
- Text contrast improved for light mode
- Track row: tappable heart, bigger download icon, inline menu
- Smart shuffle: avoids consecutive same-artist tracks
- Recently Played section in Queue view
- Mini player long-press context menu
- Search result counts, haptics on radio/queue/search
- Back button removed from Now Playing (swipe down to dismiss)
- Bottom toolbar: 6 bigger icons with native AirPlay
- Quick Settings sheet: sleep timer, speed, crossfade, download, share
- Spacing improvements throughout
- Now Playing: all titles tappable, album name restored, bigger icons
- Sleep timer moved into more menu
- Custom progress and volume sliders (small dot, no thumb)
- Playlist Play button style matched to Shuffle
- Tighter spacing throughout Now Playing
- Jukebox mode: remote control for server-side audio playback
- Visualizer: much better beat sync with asymmetric smoothing
- Playlist Play button icon visibility fix
- Now Playing spacing improvements
- Album art tap navigates to album detail
- 495 unit tests in 34 suites
- Tap album art in Now Playing to navigate to album detail
- Now Playing redesign: heart/stars/sleep row, shuffle/repeat with transport, volume slider, streaming info, More menu
- Album Detail: full-bleed parallax art header, circular action buttons
- Watch app album artwork and auto-reconnect
- Songs view: 1 API call instead of 51 per page
- Playlist share button
- Offline mode fix: downloaded songs now playable and discoverable
- Offline banner tappable — navigates to Downloads
- Offline search — searches downloaded songs locally
- Bottom padding fix on 7 views (mini player no longer covers content)
- ListenBrainz scrobbling with settings toggle and token input
- Discord Rich Presence (macOS): shows song/artist/album in Discord
- watchOS companion app: Now Playing, Queue, Library, sleep timer, star/shuffle/repeat
- Similar Artists section on Artist Detail
- Artist biography from Last.fm/MusicBrainz
- Mini player swipe left/right for next/previous
- Favorites and Downloads: Play All / Shuffle buttons
- Songs view: infinite scroll, Play All / Shuffle, song count
- Queue total duration in header
- Album Detail: Start Radio, Share buttons
- Song sharing in context menus
- Now Playing fade/scale transition
- Accessibility: 35+ identifiers, improved contrast
- Audio clipping fix for AirPlay/casting
- AirPlay 2 multi-room verified
- 482 unit tests in 33 suites
- Remove Dynamic Island Live Activity (duplicate of system Now Playing, caused double lock screen and zombie notifications)
- CarPlay login: improved Keychain retry with 3 attempts at increasing delays (1s, 2s, 5s)
- CarPlay radio: add DuckDuckGo favicon fallback for stations without Navidrome 0.61 server artwork
- 448 unit tests in 29 suites
- Mini player redesign: capsule shape with spinning album art and circular progress ring
- Tappable genre badge on Now Playing navigates to genre albums
- Inline download button on every track row
- Smart Playlists pill added to Library
- Playlist and Radio grid/list view toggle
- Widget overhaul: album art blur, large size, interactive controls
- Dynamic Island Live Activity for now playing
- Smart queue: auto-continues with similar songs
- Queue sharing: save current queue as playlist
- Album detail: disc separators, Similar Albums carousel
- Artist page: Top Songs section
- CarPlay artwork on all lists, radio stale art fix
- Text Size picker (Small/Default/Large/Extra Large)
- Offline mode banner
- Long-press album art to save/share
- Toolbar spacing increased, underlines removed
- 451 unit tests, security fixes, performance optimizations
- Dynamic Island Live Activity for now playing
- Smart queue: auto-continues with similar songs when queue ends
- Queue sharing: save current queue as playlist
- Album detail: disc separators, Similar Albums carousel
- Artist page: Top Songs section before albums
- Download indicators on tracks
- Offline mode banner
- Long-press album art to save/share
- Playlist and Radio grid/list toggle
- Recently Played carousel
- Widget: album art blur, large size, interactive controls
- Security fixes and 451 unit tests
- Now Playing redesign: controls toolbar moved above progress bar, actions below
- 5-star ratings with Subsonic setRating API
- Sleep timer countdown visible next to moon icon
- Fade/scale animation on Now Playing open
- Genre artwork thumbnails in genres list
- Decades card layout with album art backgrounds
- Playlist artwork mosaic (2x2 grid for playlists without server artwork)
- Play History screen with today/week/all-time stats, top artists, top albums
- Accessibility audit: identifiers added to 17 views, star rating contrast improved
- Performance: stop unnecessary MPNowPlayingInfoCenter updates, use Nuke cache for dominant color
- 442 unit tests in 27 suites
- Tappable artist/album names on Now Playing (dismiss and navigate to detail)
- Queue context menu on long-press (Play Now, Play Next, Remove)
- Queue swipe-left to remove
- CarPlay credential retry with 1s delay
- Home screen widget (Now Playing, small and medium sizes)
- Siri Shortcuts (Play Favorites, Play Random Mix, Toggle Playback, Skip Track, Artist Radio)
- Mini player background tints with album art dominant color
- Up Next subtitle on mini player
- Haptic feedback on playback controls and star
- Pull to refresh on Library
- Search history (saves on submit, shows recent searches)
- Radio station artwork in mini player and CarPlay
- Fix radio artwork crash (MPMediaItemArtwork closure isolation)
- Navidrome 0.61 radio station artwork (coverArt with ra-{id} workaround)
- Security: switch favicon service from Google to DuckDuckGo
- Security: fix isLocalAddress for full RFC 1918 range
- 392 unit tests, security audit, privacy policy updated
- Fix CarPlay logout when connecting (Keychain accessibility change)
- Allow HTTP connections to non-local servers (DuckDNS, dynamic DNS)
- Security warning shown for HTTP URLs recommending HTTPS
- Fix lock screen showing 15-second skip buttons instead of previous/next track
- Library folder switching for multi-library Navidrome servers
- musicFolderId support added to album list, search, starred, and random songs API calls
- Fix CarPlay crash caused by CPSearchTemplate in tab bar
- Search moved to Library > Search in CarPlay
- Radio station favicons from homepage domain and radio-browser.info
- CarPlay threading improvements (@MainActor on scene delegate and search handler)
- CarPlay audio entitlement enabled
- Customizable Library layout (show/hide/reorder pills and carousels)
- 6 new visualizer presets: Lava Lamp, Starfield, Ripple, Fireflies, Prism, Ocean (18 total)
- Smoother visualizer audio reactivity (reduced FFT gain, lower smoothing factor, lerp interpolation)
- Photosensitivity warning on first visualizer launch with "Don't Show Again" option
- Disable Visualizer toggle in Settings > Accessibility
- Epilepsy notice and prefers-reduced-motion CSS on website
- Fix device rotation dismissing player, visualizer, and lyrics views
- Move fullScreenCover for NowPlayingView to ContentView for rotation stability
- Lift showNowPlaying, showVisualizer, showLyrics state to AppState
- Remove unused Metal shader variable
- Rotation UI tests verifying player/visualizer/lyrics stay open
- Audio-reactive visualizer with FFT spectrum analysis
- 12 Metal shader presets
- Library quick access pills and carousels
- Bug fixes and stability improvements
- Initial TestFlight release