Psychotoxical baa701dd74 fix: Playback stability, seek stop bug, and UI polish
- playerStore: Guard onend against spurious 'ended' events fired by
  WebKit/GStreamer immediately after a direct audioNode.currentTime seek.
  Root cause of the deterministic "second click on progress bar stops song"
  bug: a lastSeekAt timestamp + position check now silently drops any
  'ended' event that fires within 1 s of a seek if the playhead isn't
  actually near the track end.

- playerStore: Debounce togglePlay with a 300 ms lock to prevent rapid
  double-clicks from issuing pause→play before GStreamer has finished its
  state transition, which caused a multi-second pipeline hang.

- NowPlayingDropdown: Clicking a Live entry now navigates to the album page.

- QueuePanel: DnD drop target index now calculated from clientY position
  at drop time instead of refs, eliminating the dragend-before-drop race
  on macOS WKWebView and Windows WebView2.

- styles: Increased Hero background blur for a more immersive look.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-14 14:41:02 +01:00
2026-03-09 19:17:23 +01:00
2026-03-09 18:58:53 +01:00

Psysonic Logo

Psysonic

A modern, gorgeous, and blazing fast desktop client for Subsonic API compatible music servers (Navidrome, Gonic, etc.).

Latest Release License Built with Tauri


Psysonic is a beautiful desktop music player built completely from the ground up for the modern era. Utilizing Tauri v2 and React, it offers a native-feeling, lightweight, and incredibly fast experience with a stunning UI inspired by the Catppuccin aesthetic.

Designed specifically for users hosting their own music via Navidrome or other Subsonic API servers, Psysonic aims to be the best way to interact with your personal library.

Psysonic Screenshot

Features

  • 🎨 Gorgeous UI: 8 deeply integrated themes (Catppuccin series + Nord series) with smooth glassmorphism effects and micro-animations.
  • Blazing Fast: Built with Rust & Tauri, resulting in minimal RAM usage compared to typical Electron apps.
  • 🌍 Internationalization (i18n): Fully translated into English and German.
  • 📻 Live "Now Playing": See what other users on your server are currently listening to in real-time.
  • 🎵 Last.fm Scrobbling: Full integration for scrobbling your tracks via the Navidrome server.
  • 💾 IndexedDB Caching: Ultra-fast loading times with persistent IndexedDB image caching for cover art and artist images.
  • 📀 Album Downloads: Support for downloading entire albums directly to your local machine.
  • 💿 Album & Artist Views: Beautiful grid displays and detailed artist pages with related albums and color-coded initial avatars for fast browsing.
  • 🎛️ Queue Management: Drag & drop support, playlist saving, and loading directly built into the queue. Server-side queue synchronization is fully supported.
  • 🔄 Update Notifications: Built-in update checker that notifies you when a new version is available on GitHub.
  • 🖥️ Cross-Platform: Available natively for Windows, macOS, and Linux (including Wayland support).

● Known Limitations

  • Seeking (all platforms): Seeking may occasionally be unreliable — especially on Linux/GStreamer. This is a known issue currently being worked on.
  • Queue drag & drop (macOS / Windows): Queue reordering via drag & drop is being actively worked on and may not always behave correctly on macOS and Windows.
  • Linux (drag & drop cursor feedback): Due to a WebKitGTK limitation, the drag cursor does not reflect the drop operation type — it may appear as a "forbidden" symbol or show no indicator at all, depending on the desktop environment. Drag and drop itself works correctly.

📥 Installation

Navigate to the Releases page and download the installer for your operating system.

  • Windows: .exe or .msi
  • macOS: .dmg (Universal or Apple Silicon)
  • Linux: .AppImage or .deb

🚀 Getting Started

  1. Download and install Psysonic.
  2. Open the app and enter your Subsonic/Navidrome server details (URL, Username, Password).
  3. If applicable, you can provide both an external URL and a local LAN IP. Psysonic allows you to quickly toggle between them in the Settings.
  4. Enjoy your music!

🛠️ Development

If you want to build Psysonic from source or contribute to the project:

Prerequisites

Setup

# Clone the repository
git clone https://github.com/Psychotoxical/psysonic.git
cd psysonic

# Install node dependencies
npm install

# Run in development mode
npm run tauri:dev

# Build for production
npm run tauri:build

🤝 Contributing

Contributions are completely welcome! Whether it is translating the app into a new language, fixing a bug, or proposing a new feature.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

📄 License

Distributed under the MIT License. See LICENSE for more information.

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%