{"id":46088293,"url":"https://github.com/lullabyx/sone","last_synced_at":"2026-06-07T00:01:36.184Z","repository":{"id":341320086,"uuid":"1164791728","full_name":"lullabyX/sone","owner":"lullabyX","description":"Native TIDAL desktop client for Linux. Modern UI, custom themes, and bit-perfect lossless audio up to 24-bit/192kHz via exclusive ALSA.","archived":false,"fork":false,"pushed_at":"2026-05-31T00:29:41.000Z","size":46754,"stargazers_count":211,"open_issues_count":40,"forks_count":13,"subscribers_count":5,"default_branch":"master","last_synced_at":"2026-05-31T02:24:44.467Z","etag":null,"topics":["192khz","alsa","audio-player","audiophile","desktop-app","flac","hi-res-audio","hifi","linux","lossless","lossless-audio","music-player","music-streaming","rust","tidal"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lullabyX.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"patreon":"lullabyX"}},"created_at":"2026-02-23T13:45:16.000Z","updated_at":"2026-05-31T00:29:42.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/lullabyX/sone","commit_stats":null,"previous_names":["lullabyx/sone"],"tags_count":18,"template":false,"template_full_name":null,"purl":"pkg:github/lullabyX/sone","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lullabyX%2Fsone","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lullabyX%2Fsone/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lullabyX%2Fsone/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lullabyX%2Fsone/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lullabyX","download_url":"https://codeload.github.com/lullabyX/sone/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lullabyX%2Fsone/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34003814,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-06T02:00:07.033Z","response_time":107,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["192khz","alsa","audio-player","audiophile","desktop-app","flac","hi-res-audio","hifi","linux","lossless","lossless-audio","music-player","music-streaming","rust","tidal"],"created_at":"2026-03-01T17:11:22.907Z","updated_at":"2026-06-07T00:01:36.177Z","avatar_url":"https://github.com/lullabyX.png","language":"TypeScript","funding_links":["https://patreon.com/lullabyX"],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"sone.png\" alt=\"SONE\" width=\"150\"\u003e\n  \u003ch1\u003eSONE\u003c/h1\u003e\n\u003cp\u003eThe native desktop client for \u003ca href=\"https://tidal.com\"\u003eTIDAL\u003c/a\u003e on Linux. Lossless streaming with bit-perfect ALSA output up to 24-bit/192kHz (MAX) — your DAC, not your browser's resampler.\u003c/p\u003e\n\n[![License: GPL-3.0](https://img.shields.io/badge/License-GPL--3.0-blue.svg)](LICENSE)\n[![Platform: Linux](https://img.shields.io/badge/Platform-Linux-yellow.svg)]()\n[![Built with Tauri 2](https://img.shields.io/badge/Built_with-Tauri_2-orange.svg)](https://v2.tauri.app/)\n\n  \u003ca href=\"https://flathub.org/apps/io.github.lullabyX.sone\"\u003e\n    \u003cimg width=\"200\" alt=\"Download on Flathub\" src=\"https://flathub.org/api/badge?locale=en\"/\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\u003e [!IMPORTANT]\n\u003e Requires an active [TIDAL](https://tidal.com) subscription. Not affiliated with TIDAL.\n\nhttps://github.com/user-attachments/assets/67d7a8ed-352b-4ce6-8b9c-70b7427a5f22\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"data/sone_homepage_readme.png\" width=\"32%\" alt=\"SONE Linux TIDAL client — home page with lossless streaming library\" /\u003e\n  \u003cimg src=\"data/sone_drawer_readme.png\" width=\"32%\" alt=\"SONE now playing drawer — Hi-Res FLAC playback with synced lyrics\" /\u003e\n  \u003cimg src=\"data/sone_theme_readme.png\" width=\"32%\" alt=\"SONE custom theme — native Linux music player with full color customization\" /\u003e\n\u003c/p\u003e\n\n## The Vision\n\nThe Linux desktop app TIDAL never built.\n\nSONE finally gives Linux users a first-class streaming client. It delivers the complete, fully-featured experience you expect with seamless library management and a sleek, familiar workflow—and then supercharges it.\n\nWe went beyond the basics with direct-to-DAC bit-perfect ALSA 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 Linux app.\n\n\u003cdetails\u003e\n\u003csummary\u003eTable of Contents\u003c/summary\u003e\n\n- [Features](#features)\n- [Why SONE?](#why-sone)\n- [Installation](#installation)\n- [Usage](#usage)\n- [FAQ](#faq)\n- [Tech Stack](#tech-stack)\n- [Contributing](#contributing)\n- [Disclaimer](#disclaimer)\n- [License](#license)\n\n\u003c/details\u003e\n\n## Features\n\n### Audio\n\n- **Lossless FLAC and MQA streaming** up to Hi-Res (24-bit/192kHz) with automatic quality fallback\n- **Bit-perfect output** — no resampling, no dithering. Your DAC receives the unaltered decoded signal\n- **Exclusive ALSA** — bypasses PipeWire/PulseAudio entirely for direct hardware access\n- **Smart DAC matching** — automatically detects your hardware's supported formats and sample rates, picking the best fit\n- **Signal Path Transparency** — see exactly what your audio is going through end-to-end. Probes the live GStreamer pipeline, OS mixer (`pactl`), and ALSA card (`/proc/asound`); flags every conversion, format mismatch, or volume alteration with a PRISTINE verdict for bit-clean playback\n- **Volume normalization** (ReplayGain) with automatic context switching between album and track gain\n- **Autoplay** — discovers and plays similar tracks when your queue ends\n- **Gapless playback** — seamless, silence-free transitions between tracks in normal output mode. On by default; requires GStreamer 1.24+ and falls back automatically when unavailable\n\n### Interface\n\n- **Custom themes** — 12 presets and a full color picker for accent and background with both light/dark mode\n- **Lyrics** — synced lyrics display for supported tracks\n- **Miniplayer** — compact floating window with album art, playback controls, and resizable-adaptive layout\n- **Full-screen player** — maximized view with album art, lyrics option and auto-hiding controls\n- **Queue persistence** — picks up where you left off across restarts\n- **MPRIS integration** — media keys, shuffle, repeat, seek, and desktop widget support\n- **Proxy support** — route traffic through HTTP, HTTPS, or SOCKS5 proxies\n- **System tray** with playback controls and minimize-to-tray\n- **Keyboard shortcuts** for all common actions with a built-in shortcut overlay\n\n### Library\n\n- **Library management** — browse and sort your playlists, albums, artists, and mixes with playlist folder support\n- **Share** — share tracks, albums, playlists, artists, and mixes with your friends via a direct TIDAL link\n- **Deep links** — open `tidal://` URLs directly in SONE\n\n### Integrations\n\n- **MCP server** — built-in [Model Context Protocol](https://modelcontextprotocol.io) server on port 5577 lets external AI agents (Claude Code, etc.) search your library, control playback, and manage playlists/favorites. Off by default; enable in Settings with one-click token generation\n- **Scrobbling** — track your listening history on Last.fm, Libre.fm, and ListenBrainz with full ISRC and MusicBrainz metadata\n- **Discord Rich Presence** — show what you're listening to with album art, track info, and a direct TIDAL link\n\n## Why SONE?\n\nSONE is a lightweight, native alternative to the official TIDAL web player and Electron-based unofficial clients.\n\n- **Full audio quality** — browsers and Electron apps downsample audio to 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 ALSA mode bypasses the system mixer entirely for bit-perfect output to your DAC.\n- **Familiar interface** — a modern UI inspired by the streaming apps you already use\n- **Direct hardware access** — GStreamer talks directly to your audio hardware. Lock your DAC to the exact source format, bypassing the system mixer\n- **Lightweight** — built with Tauri and Rust. Small binary, low memory footprint\n- **Encrypted at rest** — credentials, cache, and settings are encrypted with AES-256-GCM\n- **No telemetry, no tracking** — fully open source under GPL-3.0. Your listening data stays on your machine\n\n## Installation\n\n### Flathub\n\nSONE is officially available on Flathub, making it easy to install on any Linux distribution. You can install it via your software center or by using the CLI:\n\n**Install the application**\n\n```\nflatpak install flathub io.github.lullabyX.sone\n```\n\n**Run the application**\n\n```\nflatpak run io.github.lullabyX.sone\n```\n\n\u003ca href=\"https://flathub.org/apps/io.github.lullabyX.sone\"\u003e\n  \u003cimg width=\"200\" alt=\"Download on Flathub\" src=\"https://flathub.org/api/badge?locale=en\"/\u003e\n\u003c/a\u003e\n\n### OS Packages\n\nPre-built packages for Ubuntu/Debian (.deb), Fedora (.rpm), openSUSE (.rpm), and Arch Linux (PKGBUILD) are available on the [GitHub Releases](https://github.com/lullabyX/sone/releases) page.\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/lullabyX/sone/releases/latest\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Debian%20/%20Ubuntu-.deb-A81D33?style=for-the-badge\u0026logo=debian\" height=\"60\" alt=\"Download SONE .deb package for Debian and Ubuntu\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/lullabyX/sone/releases/latest\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Fedora-.rpm-51A2DA?style=for-the-badge\u0026logo=fedora\" height=\"60\" alt=\"Download SONE .rpm package for Fedora Linux\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/lullabyX/sone/releases/latest\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/openSUSE-.rpm-73BA25?style=for-the-badge\u0026logo=opensuse\" height=\"60\" alt=\"Download SONE .rpm package for openSUSE Linux\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/lullabyX/sone/releases/latest\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Arch%20Linux-PKGBUILD-1793D1?style=for-the-badge\u0026logo=archlinux\" height=\"60\" alt=\"Download SONE PKGBUILD for Arch Linux and Manjaro\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://aur.archlinux.org/packages/sone\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/AUR-sone-1793D1?style=for-the-badge\u0026logo=archlinux\" height=\"60\" alt=\"Install SONE from AUR (build from source)\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://aur.archlinux.org/packages/sone-bin\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/AUR-sone--bin-1793D1?style=for-the-badge\u0026logo=archlinux\" height=\"60\" alt=\"Install SONE from AUR (pre-built binary)\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\nOr add the repository so `apt upgrade` / `dnf upgrade` / `zypper up` keep SONE current automatically (the setup script auto-detects your distro and imports the signing key):\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eDebian / Ubuntu (apt)\u003c/b\u003e\u003c/summary\u003e\n\n```bash\ncurl -1sLf 'https://dl.cloudsmith.io/public/lullabyx/sone/setup.deb.sh' | sudo -E bash\nsudo apt install sone\n```\n\nDerivatives (Kubuntu, Linux Mint, Pop!\\_OS, Zorin, MX, LMDE) use the same command.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eFedora (dnf)\u003c/b\u003e\u003c/summary\u003e\n\n```bash\ncurl -1sLf 'https://dl.cloudsmith.io/public/lullabyx/sone/setup.rpm.sh' | sudo -E bash\nsudo dnf install sone\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eopenSUSE (zypper)\u003c/b\u003e\u003c/summary\u003e\n\n```bash\ncurl -1sLf 'https://dl.cloudsmith.io/public/lullabyx/sone/setup.rpm.sh' | sudo -E bash\nsudo zypper install sone\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eArch Linux (AUR)\u003c/b\u003e\u003c/summary\u003e\n\n```bash\nyay -S sone-bin    # prebuilt binary — or 'yay -S sone' to build from source\n```\n\n\u003c/details\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://cloudsmith.com\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/OSS%20hosting%20by-cloudsmith-blue?logo=cloudsmith\u0026style=for-the-badge\" alt=\"Package hosting by Cloudsmith\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n### Nix\n\nSONE ships a [Nix flake](flake.nix). On any system with Nix and flakes enabled, run it without installing:\n\n```bash\nnix run github:lullabyX/sone\n```\n\nOr install it into your profile:\n\n```bash\nnix profile install github:lullabyX/sone\n```\n\nThe flake builds from source (no binary cache yet) and also exposes a development shell with every build and runtime dependency wired up:\n\n```bash\nnix develop github:lullabyX/sone   # then: pnpm tauri dev\n```\n\n### Building from source\n\n**Rust:**\n\n```bash\ncurl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y\nsource \"$HOME/.cargo/env\"\n```\n\n**Node.js** 22+ (via [nvm](https://github.com/nvm-sh/nvm), [fnm](https://github.com/Schniz/fnm), or your preferred method)\n\n**pnpm** 11.x:\n\n```bash\nnpm install -g pnpm@11.1.3\n# or, if corepack ships with your Node install:\ncorepack enable\n```\n\n**System dependencies:**\n\n\u003cdetails\u003e\n\u003csummary\u003eUbuntu / Debian\u003c/summary\u003e\n\n```bash\nsudo apt install -y \\\n    build-essential curl wget file patchelf \\\n    libwebkit2gtk-4.1-dev libgtk-3-dev libayatana-appindicator3-dev librsvg2-dev libssl-dev libdbus-1-dev \\\n    libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev \\\n    gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-libav \\\n    libsecret-1-dev libasound2-dev xdg-utils \\\n    pulseaudio-utils\n```\n\n`pulseaudio-utils` provides the `pactl` binary, used by the signal-path panel to read OS mixer state (sink format/rate, volume, mute) in Normal mode. SONE runs without it but the Normal-mode panel will show degraded info. Exclusive mode is unaffected.\n\nOptional (for exclusive ALSA output):\n\n```bash\nsudo apt install -y gstreamer1.0-alsa\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eFedora\u003c/summary\u003e\n\n```bash\nsudo dnf install -y \\\n    gcc gcc-c++ make curl wget file patchelf \\\n    webkit2gtk4.1-devel gtk3-devel libappindicator-gtk3-devel librsvg2-devel openssl-devel dbus-devel \\\n    gstreamer1-devel gstreamer1-plugins-base-devel \\\n    gstreamer1-plugins-base gstreamer1-plugins-good gstreamer1-plugins-bad-free gstreamer1-plugin-libav \\\n    libsecret-devel alsa-lib-devel xdg-utils \\\n    pulseaudio-utils\n```\n\n`pulseaudio-utils` provides the `pactl` binary, used by the signal-path panel to read OS mixer state (sink format/rate, volume, mute) in Normal mode. SONE runs without it but the Normal-mode panel will show degraded info. Exclusive mode is unaffected.\n\nOptional (for exclusive ALSA output):\n\n```bash\nsudo dnf install -y gstreamer1-plugins-base-tools\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eArch Linux\u003c/summary\u003e\n\n#### AUR\n\nSONE is available on the AUR in two variants:\n\n- [`sone`](https://aur.archlinux.org/packages/sone) — builds from source\n- [`sone-bin`](https://aur.archlinux.org/packages/sone-bin) — pre-built binary, no compilation required\n\n**Install with your AUR helper:**\n\n```bash\nyay -S sone       # build from source\n# or\nyay -S sone-bin   # pre-built binary\n```\n\n#### Manual Install\n\n```bash\nsudo pacman -S --needed \\\n    base-devel curl wget file patchelf \\\n    webkit2gtk-4.1 gtk3 libayatana-appindicator librsvg openssl dbus \\\n    gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad gst-libav \\\n    libsecret alsa-lib xdg-utils \\\n    libpulse\n```\n\n`libpulse` provides the `pactl` binary, used by the signal-path panel to read OS mixer state (sink format/rate, volume, mute) in Normal mode. SONE runs without it but the Normal-mode panel will show degraded info. Exclusive mode is unaffected.\n\nOptional (for exclusive ALSA output):\n\n```bash\nsudo pacman -S --needed gst-plugin-pipewire alsa-plugins\n```\n\n\u003c/details\u003e\n\n**Build and run:**\n\n```bash\ngit clone https://github.com/lullabyX/sone.git\ncd sone\npnpm install\npnpm tauri dev             # Development mode\npnpm tauri build           # Release build (produces .deb, .rpm, .AppImage)\n```\n\n**Using build scripts:**\n\nDocker-based build scripts are provided in `build-scripts/build/` to produce distro-specific packages in isolated environments. Requires Docker.\n\n```bash\n./build-scripts/build/all.sh              # Build all packages in parallel (deb, rpm, pacman)\n./build-scripts/build/deb.sh              # Build .deb only (Ubuntu 22.04)\n./build-scripts/build/rpm.sh              # Build .rpm only (Fedora)\n./build-scripts/build/pacman.sh           # Build pacman package only (Arch)\n./build-scripts/build/all.sh --omit rpm   # Build all except rpm\n```\n\nOutput goes to `dist/\u003cformat\u003e/`. Pass `--no-cache` to force a clean Docker build.\n\n## Usage\n\n1. Launch the app\n2. Click **Get Login Code**. You'll be automatically redirected to the official [link.tidal.com](https://link.tidal.com) to login and approve the code. Optionally, you can scan the **QR Code** to login via your mobile device.\n3. Your library loads automatically — browse and play!\n\n\u003e [!NOTE]\n\u003e **NVIDIA GPU users:** If you see a blank window, rendering glitches, or a Wayland protocol error on launch, start the app with:\n\u003e\n\u003e ```bash\n\u003e WEBKIT_DISABLE_COMPOSITING_MODE=1 sone\n\u003e ```\n\n\u003cdetails\u003e\n\u003csummary\u003eTroubleshooting\u003c/summary\u003e\n\n**No sound?**\nMake sure GStreamer plugins are installed — you need at minimum `gstreamer1.0-plugins-base`, `gstreamer1.0-plugins-good`, `gstreamer1.0-plugins-bad`, and `gstreamer1.0-libav` (or your distro's equivalents).\n\n**Playback errors in exclusive/bit-perfect mode?**\nSONE automatically detects your DAC's supported formats and sample rates, but if playback still fails, your hardware may not support the source format at all. Try a lower quality tier or switch to normal output mode.\n\n**\"Error 71 (Protocol error) dispatching to Wayland display\" on launch?**\nThis is a known WebKitGTK/Wayland issue affecting Tauri apps on systems with NVIDIA GPUs ([tauri-apps/tauri#10702](https://github.com/tauri-apps/tauri/issues/10702)). As a workaround, launch SONE with the DMA-BUF renderer disabled:\n\n```bash\nWEBKIT_DISABLE_DMABUF_RENDERER=1 sone\n```\n\nIf you're using X11 or don't have an NVIDIA GPU but still see this error, try updating your WebKitGTK and graphics drivers to the latest versions.\n\n**Blank window or rendering glitches on NVIDIA?**\nIf the app launches but shows a blank/white window or has visual artifacts, try disabling WebKit's compositing mode:\n\n```bash\nWEBKIT_DISABLE_COMPOSITING_MODE=1 sone\n```\n\nThis is a known issue with NVIDIA's proprietary drivers and WebKitGTK hardware acceleration.\n\n\u003c/details\u003e\n\n## FAQ\n\n\u003cdetails\u003e\n\u003csummary\u003eIs SONE free and open source?\u003c/summary\u003e\n\nYes. SONE is fully open source under the GPL-3.0 license, with no telemetry or tracking — your listening data stays on your machine.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eDo I need a TIDAL subscription?\u003c/summary\u003e\n\nYes. SONE is a client for TIDAL and requires an active paid TIDAL subscription. SONE is an independent project and is not affiliated with or endorsed by TIDAL.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eWhich Linux distributions are supported?\u003c/summary\u003e\n\nAny modern Linux distribution. SONE is on Flathub (works everywhere), and ships native packages for Debian/Ubuntu (`.deb`), Fedora and openSUSE (`.rpm`), and Arch Linux (AUR).\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eDoes SONE support offline downloads?\u003c/summary\u003e\n\nNo. SONE is a streaming client only — it streams directly from TIDAL and does not download tracks for offline playback.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eI'm getting a \"Device busy\" error in exclusive or bit-perfect mode\u003c/summary\u003e\n\nYour system's sound server (PulseAudio or PipeWire) or another application is already using the ALSA device. Exclusive and bit-perfect modes need direct hardware access — only one application can hold the device at a time.\n\nTo fix this, either close the other application using the device, or select a different output device in SONE's settings.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eWhat is the difference between exclusive mode and bit-perfect mode?\u003c/summary\u003e\n\nBoth bypass your system's sound server (PulseAudio/PipeWire) and write directly to the ALSA hardware device. The difference is in how much processing happens before audio reaches your DAC.\n\n**Exclusive mode** locks the ALSA device so no other application can use it. 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).\n\n**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. The volume slider is locked at 100% and disabled. This is the mode to use if you want the purest signal path to your DAC.\n\nIn short: exclusive gives you direct hardware access with volume control. Bit-perfect gives you a completely unaltered signal.\n\n\u003c/details\u003e\n\n## Tech Stack\n\n- **Backend:** Rust ([Tauri 2](https://v2.tauri.app/))\n- **Frontend:** React 19, Tailwind 4, Jotai\n- **Audio:** [GStreamer](https://gstreamer.freedesktop.org/)\n- **Config:** `~/.config/sone/`\n\n## Contributing\n\nIssues and pull requests are welcome on [GitHub](https://github.com/lullabyX/sone). To set up a development environment, follow the [Building from source](#building-from-source) instructions.\n\nIf you enjoy using SONE, consider giving the project a star to help others find it.\n\n## Disclaimer\n\nSONE is an independent, community-driven project. It is **not affiliated with, endorsed by, or connected to TIDAL** in any way. All content is streamed directly from TIDAL's service and requires a valid paid subscription. SONE is a streaming client only — it does not support offline downloads, and does not redistribute or circumvent protection of any content. As with any third-party client, please be aware of TIDAL's terms of use.\n\nAll trademarks belong to their respective owners.\n\n## License\n\n[GPL-3.0-only](LICENSE)\n\n---\n\n**TL;DR** — SONE is an open-source, native Linux 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 ALSA output that bypasses PulseAudio and PipeWire entirely for bit-perfect playback directly to your DAC. Lightweight, encrypted at rest, and fully offline — no telemetry, no tracking.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flullabyx%2Fsone","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flullabyx%2Fsone","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flullabyx%2Fsone/lists"}