Releases: lullabyX/sone
Release list
v0.21.0
▶️ Video Playback
- Dedicated video player — watch music videos fullscreen or minimized to the player bar
- HLS streaming — playback starts at your selected quality and adapts down when bandwidth drops
- Restored on relaunch — a playing video is restored to the player bar across restarts
🔀 One Queue for Videos and Tracks
- Unified queue — videos and tracks share a single queue; previous/next, shuffle, repeat, autoplay, and history all work across both
- Context-aware — playing a video queues the rest of its context
🎛️ Player Controls
- Full transport — play/pause, previous/next, shuffle, and repeat
- Video controls — quality selector, volume, favorite, fullscreen, and minimize
- Control videos from anywhere — the system tray, MPRIS media keys, floating miniplayer, and in-app keyboard shortcut all drive video playback
❤️ Favorite Videos
- Heart your videos — favorite music videos, kept separate from your track favorites, reflected across every surface
💜 Loved Page — Tracks & Videos Tabs
- New Videos tab — the Loved Tracks page gains a Videos tab with a paginated, searchable grid
- Tab-aware actions — Play and Shuffle act on the selected tab; playing queues the rest
🎵 Videos in Playlists
- Mixed playlists — add videos to playlists; mixed video and track playlists render correctly with accurate "N Videos · M Tracks" counts
🔍 Explore & Search
- Video rows on Explore — Featured playlist promos and 16:9 video cards; Featured promos open their linked content
- Video search — a Videos section in All Results, a dedicated Videos tab, and video rows in Top Hits
v0.20.0
👤 Profiles
- View your profile page — avatar, bio, social links, and your public playlists.
- Edit your profile in-app: write a bio, add social/brand links, and upload & crop an avatar (or remove it).
- Public playlists appear as a horizontal scrolling row with a "View all" page.
- Your avatar now shows in the account menu — click your name to jump to your profile.
⚙️ Redesigned Settings
- Settings is now a single centered window with a grouped sidebar instead of scattered modals.
- Organized into tabs: Playback, Themes, Discord, Network, MCP, Scrobbling, General, and Utilities.
- Themes, scrobbling, and gapless controls all moved into Settings; the old standalone dialogs are gone.
- Title-bar / window decoration options are now a clear radio list.
- Reveal the log folder directly from Utilities for easier troubleshooting.
🎨 Themes
- Three new presets — Noir, Meadow, and Blossom.
- A custom in-app color picker with a live "app in miniature" preview, so you can see changes before applying.
- Preset tiles redesigned as surface swatches with accent and background dots.
🔊 Streaming Quality
- Set a maximum streaming quality ceiling in Playback settings — SONE never requests above it.
- Album quality badges now correctly read Hi-Res Lossless from the stream.
🖼️ Cover Art & Page Design
- Full-width cover-art banners with a theme-aware blur sit behind album, playlist, mix, and artist headers.
- Animated Album Cover — album covers gently animate in the drawer, fullscreen view, and on the album page.
- Album, playlist, artist, and mix headers redesigned — artist image, quality tag, creator line, total duration, and clearly labelled action buttons.
- Full-bleed artist hero with fan count and progressive image loading.
- An animated "Living Heart" banner on the Loved Tracks header.
- Matching skeleton loaders across all redesigned pages for smoother loads.
🔌 MCP, Network & Discord
- MCP tab shows full connection details with a portable config you can copy; your token is masked in the URL.
- Network tab adds an endpoint builder with a live connection status banner.
- Discord tab adds tags and a live presence preview.
🐛 Fixes
- Logging out now fully tears down your session — audio, scrobbling, Discord, and MCP — and clears all cross-account state. Logging back in restores Discord/MCP and refreshes your region.
- Playing a recommended track from a playlist now queues those recommendations as their own source, not the playlist's own tracks.
- The shuffle button on album/playlist/mix pages no longer flips your global shuffle mode.
- Repeat-all now preserves play history on source-backed playlists.
- Playback position stays correct on pause/resume, track load, and miniplayer sync.
- The favorite button is hidden on playlists you created, which now show your profile name as the creator.
- API error details are surfaced in readable toasts instead of raw response bodies.
- Sensitive data is redacted from session-refresh logs.
- Disabled the WebKitGTK DMA-BUF renderer on NVIDIA (X11 and Wayland) to fix rendering glitches.
📦 Packaging
- New Snap package (core24) with working rendering, GPU acceleration, MPRIS, and screen-inhibit support.
📦 Install via repository (auto-updates with your system)
Add the SONE repository once and apt upgrade / dnf upgrade / zypper up will keep it current. The setup script auto-detects your distro and imports the signing key.
Debian / Ubuntu (apt)
curl -1sLf 'https://dl.cloudsmith.io/public/lullabyx/sone/setup.deb.sh' | sudo -E bash
sudo apt install soneDerivatives (Kubuntu, Linux Mint, Pop!_OS, Zorin, MX, LMDE) use the same command.
Fedora (dnf)
curl -1sLf 'https://dl.cloudsmith.io/public/lullabyx/sone/setup.rpm.sh' | sudo -E bash
sudo dnf install soneopenSUSE (zypper)
curl -1sLf 'https://dl.cloudsmith.io/public/lullabyx/sone/setup.rpm.sh' | sudo -E bash
sudo zypper install sonev0.19.0
🎵 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.
🏠 Home
- Home page is now organized into tabs, with magazine-style cards and quick deep-link shortcuts.
- Remembers your last-used tab, with skeleton placeholders and a fade-in while loading.
▶ Now Playing
- Album cover gently tilts toward your cursor with a true-perspective 3D effect.
- Tap the time display to switch between total duration and time remaining.
- Adjust volume by scrolling the mouse wheel over the volume control.
💤 Keep Awake
- Your screen no longer sleeps or blanks while music is playing — across X11, Wayland, and D-Bus/portal desktops.
📡 Scrobbling
- Sends the primary artist, plus MusicBrainz artist IDs when available, to Last.fm, Libre.fm, and ListenBrainz for more accurate matching.
🔔 Updates
- A gentle toast lets you know when a new version of SONE is available.
📝 Logging
- Disk logs now capture more detail by default and keep more history (~50MB), making bug reports and troubleshooting easier.
🐛 Fixes
- Support for DACs with a fixed channel count, via automatic channel negotiation and a stereo mix matrix.
- Exclusive and bit-perfect output now correctly resolve ALSA plugin devices (
front:,hdmi:) to the right sound card. - Signal Path now classifies bit-depth widening as lossless instead of lossy.
- Player overlays close properly on navigation and browser back/forward.
- Miniplayer: clicking the album art focuses the main window, and clicking the track title opens the album.
- "Go to track radio" works even when a track has no associated mix.
- Smoother loading on long "View all" lists with incremental pagination.
📦 Install via repository (new — auto-updates with your system)
Add the SONE repository once and apt upgrade / dnf upgrade / zypper up will keep it current. The setup script auto-detects your distro and imports the signing key.
Debian / Ubuntu (apt)
curl -1sLf 'https://dl.cloudsmith.io/public/lullabyx/sone/setup.deb.sh' | sudo -E bash
sudo apt install soneDerivatives (Kubuntu, Linux Mint, Pop!_OS, Zorin, MX, LMDE) use the same command.
Fedora (dnf)
curl -1sLf 'https://dl.cloudsmith.io/public/lullabyx/sone/setup.rpm.sh' | sudo -E bash
sudo dnf install soneopenSUSE (zypper)
curl -1sLf 'https://dl.cloudsmith.io/public/lullabyx/sone/setup.rpm.sh' | sudo -E bash
sudo zypper install sonev0.18.0
🔌 MCP server
SONE now ships an embedded Model Context Protocol server (streamable-HTTP, port 5577) so external agents like Claude Code can drive your library and playback.
- Search, favorites, playlists (full CRUD), now-playing, queue, lyrics
- Playback control: play / pause / next / seek / volume / shuffle / queue
- Settings tab with live enable toggle and token regeneration
- Off by default; stateless transport survives SONE restarts
🔬 Signal Path transparency
A new panel that shows exactly what your audio is going through, end to end. Open it by clicking the format/quality badge next to the now-playing track.
- Probes the live GStreamer pipeline including autoaudiosink children
- Maps
pactlsink → ALSA card and surfaces OS mixer as a cable alteration - PRISTINE verdict based on audio-bit integrity, not just bit-perfect mode
- Expand-to-flow-diagram view with friendly DAC names
What SONE reads from your system to build this view:
- GStreamer pad caps on the live playback pipeline
pactl infooutput (default sink name, volume, mute)/proc/asound/*/pcm*/sub*/hw_paramsfor the active ALSA card- Nothing is sent off-device.
💬 Themed tooltips
Native browser tooltips are gone — replaced with a themed TooltipLayer that matches the rest of the UI.
🐛 Bug fixes
- Bit-perfect mode now forces unity volume and disables normalization
- Truthful bit-depth promotion toast
- Skip metadata-unavailable tracks instead of stalling
- Custom title bar restored on login and auth-check screens
Build & packaging
- Migrated package manager from
npmtopnpm(Node 22+ required) — moving away from npm in light of recent supply-chain incidents in the npm ecosystem; pnpm's stricter dependency resolution, content-addressed store, and lockfile integrity give us a safer install pipeline - Tauri JS ↔ Rust pinned to 2.11.x
- Arch PKGBUILD:
libpulse/pulseaudio-utilsadded forpactl
v0.17.0
Logging
- Optional disk logging to ~/.config/sone/logs/ with daily rotation, toggled from Settings → Utilities
- Defaults to on; pre-Tauri probe ensures early-startup logs are captured
Performance
- Virtualized the loved tracks list and main playlist track list for smooth scrolling on large libraries
Loved Tracks
- Play and Shuffle buttons added to the loved tracks page
Settings
- Redesigned with a vertical tab rail, one section per tab
- Taller modal and tab state resets on reopen
MPRIS
- Publishes live playback position so external media widgets show progress
Fixes
- Reduced WebKitGTK font blur on scroll/resize via text-rendering: geometricPrecision (#104)
- Active search tab is preserved across back/forward navigation
- Mini search stays open during context menu interactions and when starting playback
v0.16.0
Keyboard Shortcuts
- Customize in-app keyboard shortcuts from settings page
MPRIS
- Full coverage of Root and Player interfaces for desktop integration
About
- New About modal with version and project info, accessible from the user menu
Playback
- Unavailable tracks are automatically skipped and shown greyed out in track lists
- Guard against rapid re-entry when starting a track
Fixes
- Context menu positioning corrected at non-default zoom levels
- Home page refreshes when the window regains focus after 5 minutes
- Search track row navigates to the album; tap the cover to play
- Visible text selection highlight across themes
- WebKit permission prompts denied in the PKCE login window
- Tightened miniplayer shadow margin for a uniform appearance
- "My Tracks" tile in Recently played routes to Loved Tracks instead of failing playback
v0.15.0
Sign-In
- New PKCE login flow with an embedded webview. The device code method is no longer returning
LOSSLESSformat. Please logout and sign back with PKCE
Audio
- Logarithmic volume control with a cubic taper for smoother, more natural changes across the slider's range
- Keyboard volume shortcuts now respect bit-perfect mode
- Persisted volume is read on launch so the backend syncs to the correct level
Discord Rich Presence
- Customizable status text — set your own line shown on Discord
Title Bar
- Custom title bar with a setting to hide native window decorations
Fixes
- 404 page and global error boundary handle missing routes and unexpected errors gracefully
- Disabled WebKitGTK DMA-BUF renderer on NVIDIA under Wayland to fix rendering glitches
- Clamped volume slider input to prevent out-of-range values
v0.14.1
Track Sorting
- Sort tracks in playlists and favorites by date added, name, or artist
- Sortable column headers with loading skeleton
- Sort preferences persist per playlist
Queue
- Append to queue for incremental queue growth
Fixes
- Source-aware play/pause/resume button on playlist, album, and mix pages
- Non-blocking play handlers prevent UI freezes on large playlists
- Batch persister with queueMicrotask to avoid redundant writes
- Prevented double-fetch on playlist navigation
- Fixed long history performance
- Extracted SourcePlayButton to prevent full-page re-renders
v0.13.0
Explicit Content
- Filter explicit content with a new toggle in settings
- Explicit badge on track titles
Fullscreen Player
- Prevent sleep and display off while the fullscreen player is active
Fixes
- Adjusted text sizes and spacing and other UI elements for miniplayer
- Share button copies link to clipboard in miniplayer
- Fixed "Playing From" not updating when queuing individual tracks
- Fixed toast z-index in fullscreen player
v0.12.0
What's New
Miniplayer
- Compact floating window with album art, playback controls
- Vibrant color background that adapts to your album art
- Resizable and has multiple adaptive layout
Discord Rich Presence
- Show what you're listening to on Discord with album art, track info, and a direct TIDAL share link
Playlist Management
- Organize playlists into folders with create, rename, move, and delete support
- Edit playlist name, description, and toggle public/private visibility
- Sorting for playlist. Both in sidebar and view-all page
- Recommended tracks at the bottom of playlists
Playback
- "Playing from" label in the player bar shows your current listening source
- Open
tidal://links directly in SONE with deep link support - Share track, playlist, album, artist and mixes link from the context menu
Audio
- Bit-depth promotion (mathematically lossless) in bit-perfect mode.
- Ctrl+E and Ctrl+B shortcuts to toggle exclusive and bit-perfect mode
System
- MPRIS shuffle, repeat, and absolute seek support
- Settings moved to a dedicated modal
Bug Fixes
- Fixed UI freezes on rapid track changes
- Fixed stale playback position on track change
- Fixed playlist cache not updating after mutations
- Fixed MPRIS status stuck on "Stopped" after track change
- Fixed window decorations not restoring correctly from tray on KDE