Summary
- Using Tauri with Rust backend and React 19 + TypeScript frontend
- SQLite database for persistent library storage with full metadata indexing (tracks, albums, artists, genres)
- Multi-queue system enabling users to create, switch, and manage multiple playback queues simultaneously
- Synchronized lyrics supporting embedded tags and LRC file format with real-time highlighting
- Native OS integration via Windows SMTC for media controls and system-level playback management
- Audio engine powered by Rodio/Symphonia for reliable playback across multiple audio formats
- Material UI design with dark/light theming, keyboard shortcuts, and responsive layout
Musicsloth is a full-featured desktop music player application built with Tauri, combining a high-performance Rust backend with a modern React/TypeScript frontend.
Inspired by the Android app Musicolet, this project delivers a native desktop experience for managing and playing local music libraries. The application features a SQLite-backed library system that scans, indexes, and organizes music by albums, artists, and genres, with robust metadata extraction supporting multiple audio formats including FLAC, MP3, OGG, and more.
The audio playback architecture leverages Symphonia, a pure-Rust audio decoding library, paired with cpal for audio output. This approach moves audio decoding entirely into the Rust backend, eliminating dependency on browser or system codecs that vary across platforms. Symphonia provides native support for all major formats (MP3, FLAC, AAC/M4A, OGG Vorbis, WAV) through a unified decoding pipeline that feeds samples into a lock-free ring buffer for glitch-free playback. This architecture enables precise seek control, volume manipulation at the sample level, and lays the groundwork for advanced features like gapless playback, ReplayGain normalization, and real-time equalizer processing.
The player offers comprehensive queue and playlist management capabilities, including support for multiple named queues, drag-and-drop reordering, and playlist import/export.
Another standout feature is the synchronized lyrics display, which parses both embedded lyrics and standalone LRC files to provide time-synced scrolling during playback. The application integrates with Windows System Media Transport Controls (SMTC) for native media key support and lock screen integration, delivering a polished user experience that feels native to the operating system.
Built with scalability and performance in mind, Musicsloth utilizes virtualized scrolling for large libraries, efficient connection pooling for database operations, and a clean separation between the Rust audio engine and the TypeScript UI layer communicating via Tauri’s IPC system.
The project demonstrates modern full-stack desktop development practices, combining systems programming with web technologies to create a responsive, feature-rich application.
(This project is still under development, so it’s not able to be downloaded at the moment)
