cucadmuh d48ea819c1 fix: stabilize preview seekbar, post-sleep audio recovery, and card hover behavior (#476)
* fix(player): freeze main seekbar during track preview

Preview pauses the main sink in Rust while isPlaying stays true in the
store, so WaveformSeek's interpolation rAF must not advance progress.

* fix(audio): recover output after sleep and stalled streams

Add platform-specific post-sleep recovery hooks for Windows and Linux, and add a watchdog that reopens the output stream when playback is active but sample progress stalls, so audio can recover without restarting the app.

* fix(ui): remove card hover lift and smooth artwork zoom

Remove vertical hover translation from album and artist cards, and move image fade transition out of inline styles so cover zoom uses CSS timing consistently.

* fix(player): prevent seekbar jump after preview ends

Reset interpolation anchor timing when preview freeze state changes so the main seekbar does not momentarily jump forward before resyncing.

* fix(audio): reduce false watchdog recoveries and add diagnostics

Arm stalled-output recovery only after long poll gaps that suggest sleep/resume, and add detailed watcher logs for arm/clear/trigger paths to diagnose unintended stream reopens.

* chore(ui): drop card GPU hints and clarify macOS sleep scope

Remove translateZ and will-change hints from album and artist cover images to avoid per-card compositing overhead on software-composited Linux paths, and document why post-sleep recovery hooks currently target only Windows and Linux.

* docs(audio): document intentional Win32 callback pointer lifetime

Add inline rationale for the two Box::into_raw pointers in Windows suspend/resume registration so future maintenance does not treat the process-lifetime pointers as accidental leaks.

* docs(changelog): summarize playback stability updates for PR #476

Add a high-level changelog entry for preview seekbar fixes, sleep/wake audio recovery hooks and watchdog diagnostics, and card-hover stability adjustments from PR #476.

* docs(contributors): add cucadmuh entry for PR #476

Logs the post-sleep audio recovery, preview-seekbar fixes and card
hover stability work in the Settings → System → Contributors list.
2026-05-06 13:28:38 +03:00

Psysonic Logo

The Ultimate Desktop Client for Self-Hosted Music Libraries

Fast. Beautiful. Native. Feature-packed. Built primarily for Navidrome. Also compatible with Gonic, Airsonic, LMS and other Subsonic-compatible servers with partial feature support.


Latest Release GitHub Stars License GPLv3 Tauri v2 Discord Community Telegram Community AUR psysonic AUR psysonic-bin Cachix



No telemetry • Native performance • Massive feature set • Community driven


Psysonic Screenshot


Warning

Psysonic is under heavy active development. Bugs and rough edges are to be expected. We reserve the right to change, remove, or rework existing features at any time without prior notice.

Server Compatibility

Psysonic is optimized first and foremost for Navidrome.

Many advanced functions integrate directly with Navidrome APIs for the best possible experience. Other Subsonic-compatible servers generally work well, but some features may be limited depending on server capabilities.

Why Psysonic?

Most Subsonic clients feel like web wrappers.

Psysonic does not.

It is a true desktop experience built with Rust, Tauri v2, and React for users who care about speed, aesthetics, customization, and serious music library management.

If you host your own music, this is what the premium experience should feel like.


Core Features

Playback Engine

  • Gapless playback
  • Crossfade
  • ReplayGain support
  • Smart Loudness Normalization
  • Infinite Queue
  • Smart Radio sessions
  • High responsiveness with low memory usage

Audio Tools

  • 10-band Equalizer
  • Presets
  • AutoEQ headphone correction
  • Per-device optimization

Library Power

  • Lightning-fast search
  • Albums / Artists / Tracks / Genres
  • Ratings system
  • Multi-select bulk actions
  • Drag & drop playlist management
  • Huge library friendly

Lyrics & Discovery

  • Synced lyrics with seek support
  • Auto-scroll sidebar lyrics
  • Fullscreen lyric mode
  • Last.fm scrobbling
  • Similar artists / love tracks / stats

Personalization

  • Huge theme collection
  • Catppuccin / Nord inspired styles
  • Glassmorphism effects
  • Font customization
  • Zoom controls
  • Keybind remapping
  • Theme Scheduler (day/night auto switch)

Power User Extras

  • CLI controls
  • USB / portable sync
  • Backup & restore settings
  • In-app auto updater
  • LAN / remote auto switching

Orbit (Upcoming)

Listen Together. In Sync. Soon.

Currently in final development and testing. Orbit will introduce synchronized shared listening sessions directly inside Psysonic.

  • Host-controlled playback
  • Join via link
  • Shared listening sessions
  • Guest song suggestions
  • Real-time queue interaction

Rolling out in an upcoming release. Community feedback will help shape the final experience.


Platforms

OS Support
Windows Native Installer (certificate pending)
macOS Signed DMG
Linux AppImage / DEB / RPM / AUR (psysonic, psysonic-bin) / NixOS

Supports 8 languages and growing.


Install

Linux

curl -fsSL https://raw.githubusercontent.com/Psychotoxical/psysonic/main/scripts/install.sh | sudo bash

Windows

Download the latest installer from Releases.

SmartScreen warnings may appear until the code-signing certificate is active.

macOS

Download the signed DMG from Releases.


Development

git clone https://github.com/Psychotoxical/psysonic.git
cd psysonic
npm install
npm run tauri:dev

Build release:

npm run tauri:build

Privacy First

  • No telemetry
  • No spyware nonsense
  • No analytics harvesting
  • Your library stays yours

Community

Join Discord, report bugs, suggest features, share themes, shape the future.


License

GNU GPL v3.0


Forks and Attribution

Psysonic is GPLv3 software. You are free to fork, modify, and redistribute it under the terms of that license.

If you distribute a modified or rebranded version, please clearly state that it is based on Psysonic and preserve attribution to the original project.

Features such as Orbit were originally designed and implemented in Psysonic. Forks must not present original Psysonic work as their own independent creation.


Stop using boring music clients.

Use Psysonic.

S
Description
fork a psysonic player for contrib
Readme 58 MiB
Languages
TypeScript 68.9%
Rust 25.7%
CSS 4.7%
JavaScript 0.3%
Shell 0.2%