Skip to content

Releases: lullabyX/sone

v0.21.0

Choose a tag to compare

@lullabyX lullabyX released this 14 Jul 21:56

▶️ 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

Choose a tag to compare

@lullabyX lullabyX released this 21 Jun 15:31

👤 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 sone

Derivatives (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 sone
openSUSE (zypper)
curl -1sLf 'https://dl.cloudsmith.io/public/lullabyx/sone/setup.rpm.sh' | sudo -E bash
sudo zypper install sone

v0.19.0

Choose a tag to compare

@lullabyX lullabyX released this 06 Jun 22:26

🎵 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 sone

Derivatives (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 sone
openSUSE (zypper)
curl -1sLf 'https://dl.cloudsmith.io/public/lullabyx/sone/setup.rpm.sh' | sudo -E bash
sudo zypper install sone

v0.18.0

Choose a tag to compare

@lullabyX lullabyX released this 21 May 12:24

🔌 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 pactl sink → 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
signal_path_shots_so-1 signal_path_shots_so-2

What SONE reads from your system to build this view:

  • GStreamer pad caps on the live playback pipeline
  • pactl info output (default sink name, volume, mute)
  • /proc/asound/*/pcm*/sub*/hw_params for 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 npm to pnpm (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-utils added for pactl

v0.17.0

Choose a tag to compare

@lullabyX lullabyX released this 17 May 21:41

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

Choose a tag to compare

@lullabyX lullabyX released this 16 May 18:18

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

Choose a tag to compare

@lullabyX lullabyX released this 10 May 23:17

Sign-In

  • New PKCE login flow with an embedded webview. The device code method is no longer returning LOSSLESS format. 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

Choose a tag to compare

@lullabyX lullabyX released this 21 Mar 04:03

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

Choose a tag to compare

@lullabyX lullabyX released this 19 Mar 02:39

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

Choose a tag to compare

@lullabyX lullabyX released this 16 Mar 03:31

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