Skip to content

fizray/sonora

Repository files navigation

Sonora

A fast, lightweight desktop music player powered by Tauri and WebView2.

Built as a personal alternative to bloated Electron-based wrappers — same experience, leaner footprint.

Features

  • Album color theme — UI tints to match the current album art
  • Ambient mode — blurred glow effect behind the player
  • Clock — time display in the nav bar
  • Compact sidebar — collapsed sidebar by default
  • Precise volume — fine-grained scroll-wheel volume control with HUD
  • Exponential volume — more natural volume curve at low levels
  • Audio compressor — dynamic range compression for consistent loudness
  • Performance improvements — CPU/GPU optimizations for smoother playback
  • Discord Rich Presence — shows what you're listening to on your Discord profile
  • Last.fm scrobbling — tracks your listening history via Last.fm
  • Global shortcuts — media key support and configurable hotkeys
  • In-app settings panel — ⚙ button to toggle plugins and configure integrations

Stack

  • Tauri v2 + WebView2 (Windows)
  • Solid.js — renderer UI
  • Rust — native backend (config, IPC, Discord RPC, Last.fm, global shortcuts)

Requirements

  • Windows 10/11 (WebView2 is pre-installed on Windows 11; auto-installs on Windows 10)
  • Node.js >= 22
  • pnpm >= 10
  • Rust stable

Development

git clone https://github.com/fizray/sonora
cd sonora
pnpm install
pnpm renderer:build
pnpm tauri dev

Build

pnpm tauri build

Produces a Windows installer in src-tauri/target/release/bundle/.

Configuration

Settings are stored at %APPDATA%\com.fizray.sonora\config.json.

Use the ⚙ button (bottom-right of the app) to:

  • Toggle plugins on/off
  • Enter Last.fm API credentials and connect your account
  • Changes apply after reload (Ctrl+R)

Last.fm setup

  1. Create an API account at last.fm/api/account/create
  2. Open the ⚙ panel → paste your API key and shared secret
  3. Enable Scrobbler → reload → click Connect Last.fm → approve in the popup

Discord Rich Presence

Enable Discord Rich Presence in the ⚙ panel → reload. Requires Discord desktop app to be running.

License

MIT © fizray

About

A lightweight desktop music experience.

Resources

License

Stars

Watchers

Forks

Contributors