The native desktop client for TIDAL on Windows. Lossless streaming with bit-perfect WASAPI exclusive output up to 24-bit/192kHz (MAX) — your DAC, not the Windows resampler.
Important
Requires an active TIDAL subscription. Not affiliated with TIDAL.
This project is a Windows port of SONE, a brilliant native Linux desktop client for TIDAL.
- Original Repository & Credits: Huge thanks to the original creator lullabyX for their incredible work on lullabyX/sone.
- Disclaimer: This Windows port was created for personal use and may not be actively or correctly maintained in the future.
The Windows desktop app TIDAL should have built.
SONE delivers the complete, fully-featured experience you expect with seamless library management and a sleek, familiar workflow—and then supercharges it.
We went beyond the basics with direct-to-DAC bit-perfect WASAPI exclusive output, a resizable-adaptive floating miniplayer, custom themes, Discord Rich Presence, and multi-service scrobbling (Last.fm, Libre.fm, ListenBrainz)—all wrapped in a fast, native Windows application.
Table of Contents
- Lossless FLAC and High Quality streaming up to Hi-Res (24-bit/192kHz) with automatic quality fallback
- Bit-perfect output — no resampling, no dithering. Your DAC receives the unaltered decoded signal
- Exclusive WASAPI — bypasses the Windows Audio Engine entirely for direct hardware access
- Smart DAC matching — automatically detects your hardware's supported formats and sample rates, picking the best fit
- Volume normalization (ReplayGain) with automatic context switching between album and track gain
- Autoplay — discovers and plays similar tracks when your queue ends
- Custom themes — 12 presets and a full color picker for accent and background with both light/dark mode
- Lyrics — synced lyrics display for supported tracks
- Miniplayer — compact floating window with album art, playback controls, and resizable-adaptive layout
- Full-screen player — maximized view with album art, lyrics option and auto-hiding controls
- Queue persistence — picks up where you left off across restarts
- Windows SMTC Integration — full system media keys, play/pause state, track metadata, and taskbar audio integration
- Scrobbling — track your listening history on Last.fm, Libre.fm, and ListenBrainz with full ISRC and MusicBrainz metadata
- Proxy support — route traffic through HTTP, HTTPS, or SOCKS5 proxies
- Discord Rich Presence — show what you're listening to with album art, track info, and a direct TIDAL link
- System tray with playback controls and minimize-to-tray
- Keyboard shortcuts for all common actions with a built-in shortcut overlay
- Library management — browse and sort your playlists, albums, artists, and mixes with playlist folder support
- Share — share tracks, albums, playlists, artists, and mixes with your friends via a direct TIDAL link
- Deep links — open
tidal://URLs directly in SONE
SONE is a lightweight, native alternative to the official TIDAL desktop player.
- Full audio quality — browsers and standard Electron apps downsample audio to a fixed Windows sample rate (often 48kHz) before it leaves the application. SONE is native — it outputs at the source's original sample rate, up to 192kHz (TIDAL's max). Exclusive WASAPI mode bypasses the system mixer entirely for bit-perfect output to your DAC.
- Familiar interface — a modern UI inspired by the streaming apps you already use
- Direct hardware access — GStreamer talks directly to your audio hardware. Lock your DAC to the exact source format, bypassing the Windows mixer
- Lightweight — built with Tauri and Rust. Small binary, low memory footprint
- Encrypted at rest — credentials, cache, and settings are encrypted with AES-256-GCM
- No telemetry, no tracking — fully open source under GPL-3.0. Your listening data stays on your machine
To compile Sone on Windows and package it with a minimal, portable GStreamer runtime (~20MB):
- Rust: Install via rustup.rs.
- Node.js: Install Node.js 18+ (LTS).
Sone uses GStreamer (MSVC 64-bit) to handle audio decoding and streaming.
- Go to the GStreamer download page.
- Under Windows, download and run the latest MSVC 64-bit installers:
- Runtime installer (e.g.
gstreamer-1.0-msvc-x86_64-*.msi) - Development installer (e.g.
gstreamer-1.0-devel-msvc-x86_64-*.msi)
- Runtime installer (e.g.
- Choose a Complete installation for both.
To bundle only the essential DLLs inside Sone's installer, create a folder under Sone at src-tauri/gstreamer-runtime/ and structure it with files sourced from your GStreamer installation (C:\Users\<username>\AppData\Local\Programs\gstreamer\1.0\msvc_x86_64\ by default):
src-tauri/gstreamer-runtime/
├── *.dll (Core DLLs)
└── lib/
├── gio/
│ └── modules/
│ └── gioopenssl.dll (GIO Module)
└── gstreamer-1.0/
└── *.dll (Plugin DLLs)
-
Core DLLs (from GStreamer's
bin/):ffi-7.dll,FLAC-8.dll,gio-2.0-0.dll,glib-2.0-0.dll,gmodule-2.0-0.dll,gobject-2.0-0.dll,gstadaptivedemux-1.0-0.dll,gstaudio-1.0-0.dll,gstbase-1.0-0.dll,gstisoff-1.0-0.dll,gstnet-1.0-0.dll,gstpbutils-1.0-0.dll,gstreamer-1.0-0.dll,gstriff-1.0-0.dll,gstrtp-1.0-0.dll,gsttag-1.0-0.dll,gsturidownloader-1.0-0.dll,gstvideo-1.0-0.dll,intl-8.dll,libcrypto-3-x64.dll,libssl-3-x64.dll,nghttp2.dll,ogg-0.dll,orc-0.4-0.dll,pcre2-8-0.dll,psl-5.dll,soup-3.0-0.dll,sqlite3-0.dll,xml2-16.dll,z-1.dll. -
Plugins (from GStreamer's
lib/gstreamer-1.0/):gstadaptivedemux2.dll,gstasio.dll,gstaudioconvert.dll,gstaudioparsers.dll,gstaudioresample.dll,gstcoreelements.dll,gstdash.dll,gstdecklink.dll,gstflac.dll,gstisomp4.dll,gstplayback.dll,gstsoup.dll,gsttypefindfunctions.dll,gstvolume.dll,gstwasapi2.dll,gstwinks.dll. -
GIO Modules (from GStreamer's
lib/gio/modules/):gioopenssl.dll(essential for secure HTTPS connection to TIDAL).
Open your terminal and run the preparation script to automatically configure Tauri's installers:
node scripts/prepare-gstreamer.jsThis generates gstreamer-hooks.nsi and gstreamer-fragment.wxs dynamically based on your files.
npm install
npm run tauri dev # Development mode
npm run tauri build # Release build (produces standalone .exe and .msi)- Launch the app
- Click Get Login Code. You'll be automatically redirected to the official link.tidal.com to login and approve Sone. Optionally, scan the QR Code to login via your mobile device.
- Your library loads automatically — browse and play!
I'm getting a "Device busy" error in exclusive or bit-perfect mode
Another application is already holding the exclusive lock on your audio device. Exclusive and bit-perfect modes need direct hardware access — only one application can hold the device at a time. Close the locking application or change the output device inside SONE's settings.
What is the difference between exclusive mode and bit-perfect mode?
Both bypass Windows audio engine/WASAPI shared resampler and write directly to the hardware device.
Exclusive mode locks the device so no other app can play sounds. Audio is converted to a fixed format (32-bit integer, stereo) while preserving the source's native sample rate — no resampling occurs. You still have software volume control and volume normalization (ReplayGain).
Bit-perfect mode goes a step further. There is zero processing — no format conversion, no resampling, no volume control. The decoded audio reaches your DAC exactly as it was encoded. Sone's volume slider is disabled. This is the mode to use if you want the purest signal path to your DAC.
- Backend: Rust (Tauri 2)
- Frontend: React 19, Tailwind 4, Jotai
- Audio: GStreamer (WASAPI backend)
- Config:
%APPDATA%/sone/
TL;DR — SONE is an open-source, native Windows desktop client for TIDAL built with Tauri 2 and Rust. It streams lossless FLAC and Hi-Res audio up to 24-bit/192kHz, with exclusive WASAPI output that bypasses the Windows Audio Engine entirely for bit-perfect playback directly to your DAC. Lightweight, encrypted at rest — no telemetry, no tracking.


