Changelog
This page records the major version updates for EchoMusic. For the complete changelog, see GitHub Releases.
⚠️ This software is completely free and open-source. Do not obtain it through any paid channels.
🤡 If you acquired it by paying, you've been scammed.
[2.3.1-beta.15] - 2026-08-17
Added
- Added a toggle to disable default browser key behaviors (space, arrow keys, page-up/down scrolling and activation)
Improved
- Improved VHE performance by reducing high-sample-rate overhead through tiered partitioned convolution
Fixed
- Fixed an issue where setting the pause shortcut to Space prevented typing a space in input fields
- Fixed an issue where arrow-key switching failed when the playback queue drawer reached the leftmost or rightmost queue
[2.3.1-beta.14] - 2026-08-16
Improved
- Improved desktop lyric scaling and lock interaction on macOS/Linux, as well as playback and lyric data sync performance
- Extended VHE sample-rate support so non-44.1/48 kHz audio also applies headphone spatial processing, with tiered partitioned convolution to reduce high-sample-rate overhead
Fixed
- Fixed an issue where dragging the desktop lyric window on Windows slowly enlarged it, the scaling hotzone sat outside the window, and the background disappeared during scaling
- Fixed desktop lyric lock state desync, single-character word-level lyrics failing to highlight, and failed enable-state rollback
[2.3.1-beta.13] - 2026-08-16
Improved
- Extended VHE sample-rate support so non-44.1/48 kHz audio also applies headphone spatial processing
Fixed
- Corrected song quality level mapping, removed the erroneous DSD tier, and moved Viper Mastering into the quality selector
[2.3.1-beta.12] - 2026-08-15
Fixed
- Fixed the recently-played statistics page not filling the available width on large screens
[2.3.1-beta.11] - 2026-08-15
Improved
- Improved VPF parameter effect processing, calibrating the full-chain output of EQ, VHE, soundstage, dynamics, bass, clarity, reverb and limiting
Fixed
- Fixed an issue where music kept playing without sound after Windows sleep/hibernation wake
[2.3.1-beta.10] - 2026-08-15
Added
- Added the Effect Community for browsing, downloading and using parameter effects, convolution effects and combo effects online
Improved
- Spatial audio now uses unified full-convolution output, and EQ was adjusted to standard 10-band center frequencies with re-tuned built-in curves
- Improved Personal FM, persisting recommendation mode and recommendation pool options
[2.3.1-beta.9] - 2026-08-14
Added
- Added the Effect Community for browsing, downloading and using community spatial effects online
Improved
- Improved dialog interaction and styling with unified layer management, popup animations, and adjusted intro dialog width
Fixed
- Fixed an issue where overlapping dialogs became unresponsive
[2.3.1-beta.8] - 2026-08-14
Added
- Added QQ QR-code login
Improved
- Improved login method switching and Kugou API network request stability
- Improved app state persistence encapsulation with unified storage key management and cleanup
[2.3.1-beta.7] - 2026-08-13
Improved
- Improved audio output device switching and exception recovery logic
- Improved delayed release of audio devices when not playing, accommodating Bluetooth multipoint switching
Fixed
- Fixed an issue where the old output thread did not fully exit when switching devices, potentially causing dual-device output, speed-ups or stuttering
- Fixed an issue where playback progress stopped updating after track switch or source reload
[2.3.1-beta.6] - 2026-08-13
Fixed
- Fixed an issue where paged lists like "My Favorites" could be cleared after repeated refresh or API failure
[2.3.1-beta.5] - 2026-08-13
Improved
- Improved native audio playback network stream recovery and seek stability
Fixed
- Fixed sound stuttering when playing music on some devices
- Fixed an issue where paged lists like "My Favorites" could repeatedly reload and briefly show empty data during rapid refresh
[2.3.1-beta.4] - 2026-08-12
Fixed
- Fixed an issue where some audio backends could repeatedly buffer-recover after underrun, causing sound stuttering
[2.3.1-beta.3] - 2026-08-12
Improved
- Improved Mini mode initialization to avoid re-entering the main player init flow when switching windows
- Improved desktop lyric second-line display logic: translation/transliteration shown first, next-line preview only when neither is shown
Fixed
- Fixed an issue where switching to Mini mode during Personal FM playback could stop desktop lyric progress
[2.3.1-beta.2] - 2026-08-12
Added
- Added Windows taskbar playback progress display
- Added login device management in the profile center to view and remove non-local devices
- Added a device identity reset entry to clear local
guid,mid,dfidand regenerate on restart
Improved
- Improved the boundary between login state and device identity; logout and session expiry no longer clear the local device identity
Fixed
- Fixed an issue where the login device list could not mark "this device" when the local
midwas not yet synced - Fixed an issue where the native engine's volume equalization could cause sudden volume fluctuations
- Fixed an issue where audio device monitoring on Linux could exhaust PulseAudio/PipeWire connections
[2.3.1-beta.1] - 2026-08-12
Added
- Added plugin desktop lyric and Mini player snapshot subscription APIs
Improved
- Improved the music-age calculation in the profile
Fixed
- Fixed an issue where audio device monitoring on Linux could continuously create PulseAudio client connections, exhausting pipewire-pulse connections and affecting other apps
- Fixed an issue where "My Favorites" could retain stale favorites/follows/videos after login state change or account switch
- Fixed an issue where enabling desktop lyrics and then switching to Mini mode could stop lyric progress
[2.3.0] - 2026-08-11
Fixed
- Fixed an issue where repeatedly clicking "Play All" could trigger duplicate loading and freeze playback
[2.2.9] - 2026-08-11
Added
- Added a toggle for the unlock button display when desktop lyrics are locked; when disabled, unlock via the tray menu
[2.2.9-beta.30] - 2026-08-10
Added
- Added the Tasks module
[2.2.9-beta.29] - 2026-08-05
Added
- Added Linux PulseAudio/PipeWire output device support, allowing selection of audio server devices like Bluetooth headphones on Linux
Improved
- Improved native engine output device hot-switch and disconnect handling, supporting auto-recovery or immediate pause per settings
- Improved native engine playback clock, prioritizing backend live-delay correction of the audible position
- Improved native engine sample rate, channel, output format and device buffer negotiation to reduce output jitter when switching between different sample rates
Fixed
- Fixed an issue where some devices could exhibit speed-up-like playback, stuttering, or stop streaming after output underrun
- Fixed an issue where Windows WASAPI could not auto-recover after output device failure or audio service restart
[2.2.9-beta.28] - 2026-08-04
Fixed
- Fixed an issue where cloud-drive fallback playback and library quality fetch failures lacked clear prompts or left stale prompts
[2.2.9-beta.27] - 2026-08-03
Added
- Added automatic cloud-drive file fallback when the library source is unavailable
Improved
- Improved cloud-source playback strategy: reuse the library playback chain by default, fall back to cloud files only when unavailable
- Improved music cloud drive list default ordering, prioritizing recently added files
- Improved cloud playback quality entry, supporting temporary switching between cloud files and library quality for the current song
Fixed
- Fixed an issue where the cloud quality list could stay stuck loading during track switches
- Fixed an issue where effect presets could still be toggled but not take effect when actually playing cloud files
- Fixed an issue where missing loudness parameters during cloud file playback could break volume equalization
[2.2.9-beta.26] - 2026-08-03
Added
- Added "prefer cloud drive files" setting: when sound effects are disabled and a matched cloud drive file exists, the cloud source is prioritized
Improved
- Improved player audio source status display: shows
CLDbadge on the quality entry when playing from cloud drive
Fixed
- Fixed issue where sound effect presets could still be toggled but not applied when playing cloud drive files
- Fixed issue where clicking a track in the playback queue drawer could activate the wrong queue
[2.2.9-beta.25] - 2026-08-03
Added
- Added cloud drive file deletion
- Added seek forward / backward application and global shortcut settings
- Added plugin system-level global shortcut registration API, allowing plugins to respond to shortcuts when EchoMusic is in background
Improved
- Refactored renderer process plugin runtime: split into context, business API, host API, service, UI, shortcuts, theme, and module loader modules
[2.2.9-beta.24] - 2026-08-03
Hotfix for issues introduced in beta.23.
Fixed
- Fixed several stability issues introduced in beta.23
[2.2.9-beta.23] - 2026-08-02
Added
- Added plugin local audio metadata reading API, allowing local library plugins to read title, artist, album, and duration
- Added basic local audio file scanning capability for future local music library and plugin local media reuse
Improved
- Improved cloud drive upload library matching and association logic
- Improved cloud drive upload flow: no longer reads full file content during selection phase; on-demand read with per-window isolated temporary whitelist
- Unified local audio extension list: cloud drive upload and plugin file scanning derive from the same local playback format list
- Optimized plugin file API: file enumeration, read, write, and audio metadata reading now use async IPC
Fixed
- Fixed issue where some search result track IDs were mapped incorrectly
[2.2.9-beta.22] - 2026-08-01
Added
- Added music cloud drive upload
[2.2.9-beta.21] - 2026-08-01
Added
- Added top gradient color toggle
- Added option to disable theme color source
[2.2.9-beta.20] - 2026-08-01
Improved
- Improved page loading experience with unified skeleton screen component, replacing some full-page loading indicators
- Improved loading placeholder behavior for homepage recommendations, Personal FM, search, details page, plugin marketplace, lyric source selection, and add-to-playlist scenarios
[2.2.9-beta.19] - 2026-07-31
Added
- Added plugin theme icon cover API, generating theme-color icon covers consistent with the built-in details page
Improved
- Improved online update installation flow
Fixed
- Fixed issue where clicking "Install Now" after Windows online update download could be unresponsive
[2.2.9-beta.18] - 2026-07-31
Added
- Added purchased music list with two categories: purchased singles and purchased albums
[2.2.9-beta.17] - 2026-07-29
Fixed
- Fixed issue where switching the system default output device on Windows could still output from the old device when "System Default" was selected
[2.2.9-beta.16] - 2026-07-29
Hotfix for issues introduced in beta.15.
Fixed
- Fixed several stability issues introduced in beta.15
[2.2.9-beta.15] - 2026-07-29
Fixed
- Fixed issue where users could not select an account during verification code login when multiple Kugou accounts shared the same phone number
[2.2.9-beta.14] - 2026-07-27
Improved
- Improved native playback engine buffer recovery strategy, limiting recovery wait threshold to actual cache capacity
- Improved native playback engine parameter updates (speed, EQ, loudness, spatial effects) during playback to reduce unnecessary audio filter rebuilds
- Improved native playback engine exclusive output fallback logic when exclusive audio device fails to start
- Improved native playback engine seek retry logic, reducing probability of decoder restart when rapidly dragging the progress bar
Fixed
- Fixed issue where buffer recovery threshold could exceed actual cache capacity under weak network or slow source conditions
- Fixed issue where native playback engine could directly interrupt playback when some exclusive audio devices failed to start
- Fixed issue where switching some DSP parameters during playback might not fully sync to running filters
[2.2.9-beta.13] - 2026-07-26
Added
- Added text selection and copy capability on comment pages
- Added "Copy Song Info" option in track right-click menu
Fixed
- Fixed issue where trailing characters of some Japanese word-by-word lyrics could be incorrectly deleted
[2.2.9-beta.12] - 2026-07-26
Fixed
- Fixed issue where playback state and track info could become out of sync after a track change failure
[2.2.9-beta.11] - 2026-07-24
First official pre-release shipping the
echo-ffmpeg-playernative playback engine. This version includes all changes from beta.10.
Added
- Added macOS / Windows system media control seek forward/backward semantics; Linux continues using MPRIS relative Seek
- Added 4-channel true-stereo spatial audio IR support
- Added plugin playback display state API
- Added gapless playback
- Added in-engine spectrum analysis
- Added player buffer recovery wait setting
- Added unified playback clock snapshot: plugin
nowPlaying, lyrics, and desktop lyrics snapshots can now obtain playback clock anchors - Added
echo-ffmpeg-playernative playback engine using embedded FFmpeg decoding and native audio output to replace the old playback pipeline - Added third-party dependency and license notice document
THIRD_PARTY_NOTICES.md
Improved
- Optimized Electron icon and tray refresh to reduce memory usage
- Optimized image list loading to reduce image decoding and GPU texture usage
- Optimized desktop lyrics filtering logic
- Optimized preferences entry: macOS native menu now includes Preferences item; Windows/Linux support window-level
Ctrl+,to open settings - Optimized desktop lyrics transition animation speed
- Optimized timeline synchronization for page lyrics, desktop lyrics, and mini player lyrics, using unified playback clock snapshot for re-anchoring
- Converged output device protection to a native-event-based "Pause on device disconnect" toggle, disabled by default
- Optimized player state machine
- Optimized track change interaction responsiveness
- Removed
echo-spectrum-capturenative audio capture spectrum output module - Project license changed to GNU GPL v3.0
Fixed
- Fixed issue where native playback engine buffer recovery and resample output were unstable under network fluctuation
- Fixed issue where dragging the progress bar to the beginning could cause the progress display to freeze
- Fixed issue where desktop lyrics filtering could desync line index and word-by-word progress
- Fixed issue where word-by-word lyric progress could disappear after pausing desktop lyrics
- Fixed issue where desktop lyrics could gradually drift ahead during prolonged playback
- Fixed issue where the previous lyric line could occasionally flicker when page lyrics switched lines
- Fixed issue where the main window size could progressively enlarge on Windows after app updates, shutdown, restart, or logout
- Fixed issue where Windows SMTC did not respond to third-party media panel playback progress adjustment requests
- Fixed issue where spatial audio Dry/Wet mix formula was inaccurate, causing wet signal loudness to be too high after superposition
- Fixed issue where some EQ bands could retain stale values when a short array was passed to EQ settings
- Fixed issue where Electron could crash on startup on Windows 11 due to inability to open the
nuldevice - Fixed CI build pipeline
[2.2.9-beta.10] - 2026-07-23
New
- Added macOS / Windows system media control fast-forward and rewind semantics; Linux continues with MPRIS relative seek override
- Added 4-channel true-stereo spatial audio IR support
- Added plugin playback display status API
- Added gapless playback
- Added in-engine spectrum analysis within the playback engine
- Added player buffer recovery wait setting
- Added unified playback clock snapshot; plugin
nowPlaying, lyrics, and desktop lyrics snapshots can access the playback clock anchor - Added
echo-ffmpeg-playernative playback engine, using embedded FFmpeg decoding and native audio output to replace the old playback pipeline - Added third-party dependency and licensing notice file
THIRD_PARTY_NOTICES.md
Improvements
- Improved desktop lyrics filtering logic
- Improved preference entry: macOS native menu now includes a Preferences item; Windows / Linux support
Ctrl+,to open settings at window level - Improved desktop lyrics transition animation speed
- Improved timeline sync for page lyrics, desktop lyrics, and mini-player lyrics, unified through playback clock snapshot re-anchoring
- Converged output device protection into a native device event-based "Pause on device disconnect" toggle, default off
- Improved player state machine
- Improved track-switch interaction responsiveness
- Removed
echo-spectrum-capturenative audio capture spectrum output module - Changed project license to GNU GPL v3.0
Fixes
- Fixed native playback engine buffer recovery and resampling output instability during network fluctuations
- Fixed native playback engine progress display potentially freezing after dragging seek bar to the beginning
- Fixed desktop lyrics filtering potentially causing lyric line index and word-level progress desync
- Fixed desktop lyrics word-level progress potentially disappearing after pausing
- Fixed desktop lyrics potentially drifting ahead of time after extended playback
- Fixed page lyrics previous line flickering/jumping during line transitions
- Fixed main window size potentially growing incrementally after app update, shutdown, restart, or logout on Windows
- Fixed Windows SMTC not responding to third-party media panel playback position adjustment requests
- Fixed spatial audio Dry/Wet mix formula inaccuracy causing wet signal loudness boost after blending
- Fixed EQ settings with short arrays potentially leaving stale values in some bands
- Fixed Electron potentially crashing on startup on Windows 11 due to inability to open
nuldevice - Fixed CI build process
[2.2.8-beta.11] - 2026-07-08
New
- Added API proxy and MPV proxy configuration
- Added risk control verification plug-in API
- Added Arch Linux pacman installation package
- Added sqlite plug-in API
- Added desktop lyrics plug-in API
- Added desktop lyrics vertical layout
- Added plug-in related statistical functions
Optimization
- Optimize audio output device hot-plug processing, and uniformly use libmpv device list events to refresh output devices
- Optimize MPV song address selection logic and correctly try alternative CDN addresses
- Optimize API request logic and correctly apply system proxy configuration
- Optimize software menu
- Optimize song right-click menu grouping
Fix
- Fixed an issue where the status of the play queue and private FM page was abnormal after adding the next song to play or queuing for playback through the right-click menu during private FM playback.
- Fixed an issue where Windows x64 packaging fails when the latest upstream mpv release contains only arm64 assets
- Fixed the problem of finding livmpv on Linux
- Fixed the issue where "Checking..." is always displayed when detecting updates on Arch Linux
- Fixed the problem of inconsistent thickness of the dividing lines in the right-click menu of songs
[2.2.8-beta.9] - 2026-07-07
New
- Added API proxy and MPV proxy configuration
- Added risk control verification plug-in API
- Added Arch Linux pacman installation package
- Added sqlite plug-in API
- Added desktop lyrics plug-in API
- Added desktop lyrics vertical layout
- Added plug-in related statistical functions
Optimization
- Optimize MPV song address selection logic and correctly try alternative CDN addresses
- Optimize API request logic and correctly apply system proxy configuration
- Optimize software menu
- Optimize song right-click menu grouping
Fix
- Fixed the issue of occasional CoreAudio/HAL crash during playback under macOS
- Fixed an issue where Windows x64 packaging fails when the latest upstream mpv release contains only arm64 assets
- Fixed the problem of finding livmpv on Linux
- Fixed the issue where "Checking..." is always displayed when detecting updates on Arch Linux
- Fixed the problem of inconsistent thickness of the dividing lines in the right-click menu of songs
[2.2.8-beta.5] - 2026-07-02
Added
- Arch Linux pacman installation package
- SQLite plugin API (
ctx.sqlite) - Desktop lyrics plugin API (
ctx.desktopLyric+ctx.lyricEffectsdesktop scope) - Vertical layout for desktop lyrics
- Plugin statistics functionality
Improved
- Optimized app menus
- Optimized song right-click menu grouping
Fixed
- Fixed update detection stuck on "Checking..." on Arch Linux
- Fixed inconsistent divider line thickness in song right-click menu
[2.2.8] - 2026-07-17
New
- Added sidebar VIP status display
- Added API proxy and MPV proxy configuration
- Added risk control verification plugin API
- Added Arch Linux pacman package
- Added SQLite plugin API
- Added desktop lyrics plugin API
- Added desktop lyrics vertical layout
- Added plugin statistics
Improvements
- Improved Tooltip component z-index layering
- Improved Linux media control compatibility
- Improved song play button: enters source queue when context is available, adds to "My Queue" for sourceless tracks
- Improved VIP song playback failure notification
- Improved Switch component appearance in unchecked state
- Improved audio output device hot-plug handling, unified through libmpv device list events to refresh output devices
- Improved MPV song URL selection logic, correctly attempting fallback CDN addresses
- Improved API request logic, correctly applying system proxy settings
- Improved app menu
- Improved song right-click menu grouping
Fixes
- Fixed sidebar playlist action button Tooltip missing when sidebar is collapsed
- Fixed spectrum capture failing to find monitor source on PipeWire-only Linux causing plugin spectrum with no output
- Fixed dragging or cancel-dragging the playback progress bar potentially causing duplicate seek jumps
- Fixed private FM playback queue and page state becoming corrupted after adding tracks via right-click "Play Next" or "Queue"
- Fixed Windows x64 build failure when upstream latest mpv release only contains arm64 assets
- Fixed Linux libmpv detection issue
- Fixed update detection stuck on "Checking..." on Arch Linux
- Fixed inconsistent divider line thickness in song right-click menu
[2.2.7] - 2026-07-01
Added
- Risk control verification
- Style recommendation
- High DPI support
- Share functionality
- Windows taskbar thumbnail toolbar
- "Queue on Next" in song right-click menu
- "Auto-play on startup" setting, disabled by default
- One-click plugin update
- Account verification flow
- Account password login
- New batch of plugin API capabilities
- Experimental feature: DevTools toggle
Improved
- Homepage recommended playlists now include Hi-Res category filter
- Clicking song name in player bar now prioritizes album detail page
- App startup flow with "Continue Anyway" option
- Unified Linux startup wrapper, preloading system libav to prevent libmpv / libffmpeg symbol conflicts
- Song detail now includes chart performance data
- Playback engine async refactored, blocking operations moved to worker threads
- Optimized page lyrics loading and matching logic
- Optimized audio filter application on track switch
- API modules now loaded on demand instead of all at startup
- Playback history migrated to SQLite for persistence, reducing renderer state overhead
- Reduced high-frequency desktop lyrics IPC sync overhead
- Reduced high-frequency writes for window move, resize, and local state persistence
- Optimized playback history cleanup, auto-removing unreferenced song data
- Split plugin main process base modules to lower plugin system maintenance cost
- Optimized multiple internal pages
- Optimized online plugin loading logic
- Music recognition rewritten using official API
- Optimized MediaSession initialization timing, registering event handlers early
- Optimized song list right-click menu interaction, preventing scroll when menu is open
- Dynamically calculated minimum window height for high DPI compatibility
- Optimized echo-storage module bundling
- Optimized first screen loading
- Optimized gradient layer implementation
Fixed
- Fixed shortcut mute/unmute potentially triggering volume reset
- Fixed Windows libmpv download failure during packaging
- Fixed Linux shortcut unable to pause playback
- Fixed page animation causing blur
- Fixed profile page data display errors
- Fixed Private FM "dislike" not correctly reporting and song info mapping incomplete
- Fixed Windows desktop lyrics mouse stutter when switching tracks while locked
- Fixed desktop lyrics unlock button occasionally persisting
- Fixed plugin system operations causing lyrics page track/lyrics/cover desync
- Fixed progress bar jumping when switching tracks
- Fixed page lyrics memory leak
- Fixed Windows ARM64 build issues
- Fixed playback freezing with stuck progress bar and no sound on network interruption or invalid URL
- Fixed MPRIS cover display and not refreshing after track change
- Fixed Linux packaging libav version regex causing HTTP audio stream playback failure
- Fixed page lyrics per-character highlight intermittently disappearing
- Fixed plugin update or uninstall failing due to file in use after plugin launches an executable
- Fixed VIP expiration causing playback failure even after claiming membership, requiring app restart
- Fixed Windows desktop lyrics width slowly increasing on click
[2.2.6] - 2026-06-14
Added
- Experimental captcha verification dialog
- Global page animations
- Settings search
- Audio buffer configuration for network-limited scenarios
- Spectrum capture
- Plugin system
- External playlist import now supports more platforms
- Auto-start on boot and start minimized to tray
- Mini Mode: compact mini window player
- Sort functionality for songs and albums on artist detail page
- Lyrics selection
- Spatial Audio: import, rename, and remove IR files in settings with quick switching
Improved
- Optimized play queue logic
- Optimized EQ equalizer
- Improved add-to-playlist experience with duplicate detection and synced detail updates
- Improved favorite/unfavorite flow with real-time "Liked Songs" playlist updates
- Optimized various settings items
- Playlist UI with playlist indicator bar
- Improved sidebar collapse behavior
- Improved lyrics selection
- Improved log output
Fixed
- Fixed desktop lyrics occasionally displaying incorrectly after track switch
- Fixed UI thread blocking and lag when play queue has too many songs
- Fixed Windows fullscreen mode with scaling causing window control button display issues
- Fixed page lyrics progress bar tooltip clipping at start and end on hover
- Fixed app freezing after waking from extended sleep
[2.2.7-beta.22] - 2026-06-24
Added
- Share functionality
- Windows taskbar thumbnail toolbar
- "Queue on Next" in song right-click menu
- "Auto-play on startup" setting, disabled by default
- One-click update all plugins
- Account verification flow
- Account password login
- New batch of plugin API capabilities
- Experimental feature: DevTools toggle
Improved
- Optimized lyrics page loading and matching logic
- Optimized audio filter application logic when switching songs
- API modules now load on demand instead of preloading all at startup
- Playback history migrated to SQLite for persistence, reducing renderer state size
- Reduced high-frequency desktop lyrics IPC sync overhead
- Reduced high-frequency writes for window move, resize, and local state persistence
- Optimized playback history cleanup logic, auto-cleaning unreferenced song data
- Split plugin main process base modules to reduce plugin system maintenance cost
- Optimized multiple internal pages
- Optimized online plugin loading logic
- Music recognition rewritten using official API
- Optimized MediaSession initialization timing, registering event handlers early
- Optimized song list right-click menu interaction, preventing list scrolling when menu is open
- Optimized window code logic to prevent accidental window resizing
- Dynamically calculated minimum window height to adapt to high DPI environments
- Optimized echo-storage module bundling
- Optimized first screen loading
- Optimized gradient layer implementation
Fixed
- Fixed desktop lyrics unlock button occasionally persisting
- Fixed plugin system operations causing song, lyrics, and cover desync on the lyrics page
- Fixed progress bar jumping when switching songs
- Fixed lyrics page memory leak
- Fixed Windows ARM64 build issues
- Fixed playback freezing, progress bar stuck, and no sound when network disconnects or URL becomes invalid during playback
- Fixed MPRIS cover display and cover not refreshing after track change
- Fixed Linux packaging libav library version regex causing HTTP audio stream playback failure
- Fixed page lyrics per-character highlight intermittently disappearing
- Fixed plugin update or uninstall failing due to file being in use after plugin launches an executable
- Fixed VIP membership expiration causing playback failure even after claiming membership in Profile, requiring app restart
- Fixed desktop lyrics width slowly increasing when clicked on Windows
[2.2.6-beta.8] - 2026-06-04
Added
- External playlist import now supports more platforms
- Auto-start on boot and start minimized to tray
- Mini Mode: shrink the player to a compact mini window
- Sort functionality for songs and albums on the artist detail page
- Lyrics selection feature
- Spatial Audio support: import, rename, and remove IR audio files in settings, with quick switching in the effects popup
Improved
- Optimized certain settings items
- Optimized playlist UI with playlist indicator bar
- Improved sidebar collapse behavior
- Improved lyrics selection
- Improved log output
Fixed
- Fixed UI thread blocking and lag when the play queue has too many songs
- Fixed fullscreen mode on Windows where scaling adjustments could cause window control buttons to display incorrectly
- Fixed page lyrics progress bar tooltip clipping at start and end when hovering
- Fixed app freezing after waking from extended sleep
[2.2.5] - 2026-05-31
Added
- Add-to-playlist feature in play queue
- Collapsible "Discover Music" and "My Library" sidebar sections
- Custom sorting for sidebar playlists
- Regex-based lyrics content filtering
- Custom GitHub acceleration site configuration for the update module
- Toggle for title bar search box recommendation terms, disabled by default
- Keep bottom action bar visible when lyrics photo mode is collapsed
- Sidebar collapse/expand with title bar button and shortcut switching, configurable toggle, disabled by default
- Input device selection for Music Recognition
Improved
- Optimized play queue enqueue and removal logic
- Play queue respects sorted order when enqueuing
- Improved error page display, ignoring common non-functional browser errors
- Improved lyrics fetching to prioritize translations and transliterations
- Refactored page lyrics
- Refactored settings page
- Optimized list scrolling performance
Fixed
- Fixed title bar search box close animation executing unexpectedly multiple times
- Fixed playlist and other reusable routes not switching correctly when page cache is disabled
- Fixed playback engine failing to start on Windows ARM
- Fixed media session cover not displaying for some songs on Windows
- Fixed file lock issues when Windows users reinstall after uninstalling
- Fixed desktop lyrics dragging issues in Windows touchscreen environments
- Fixed music playback issues on some Linux distributions
- Fixed desktop lyrics not staying on top and mouse passthrough not working on Linux
- Fixed media session not working properly on Linux
- Fixed search page infinite scroll not loading more results
- Fixed artist detail page not loading more albums and MVs on scroll
[2.2.4] - 2026-05-21
Added
- Global theme color system: auto-extract from cover art, preset themes, and custom color modes
- First-time use tip banner on the login page
Improved
- Page cache architecture refactored: each page has its own scroll container
- Simplified page cache settings: removed page selector, now global toggle + max cache count, all cacheable pages cached by default
- macOS builds now include zip format with in-app auto-update support
- Update dialog now shows "Go to Download" button on failure, guiding manual download
- Color picker layout optimized
- VIP expiration text in profile now shows hours/minutes precision with hover tooltip for start and full expiration time
- Dark mode overall brightness increased by one level
- Batch operations: confirmation dialog before deletion; add-to-playlist and delete now use server-side batch APIs for major speed boost
- Batch action buttons now show real-time progress and loading state
- Batched add-to-playlist order reversed to match playlist default reverse display
Fixed
- Fixed title bar right-click crash
- Fixed some songs not scrolling or highlighting on the lyrics page
- Fixed window not restoring to previous size after closing/restarting while maximized
Refactored
- Search box now shows trending recommendation terms when expanded, click to quick search
- Fixed scroll position not resetting on route change
[2.2.3] - 2026-05-08
Added
- Click cover on lyrics page to copy song info
- Personal FM: added "Peak" mode and "Gamma" recommendation pool for more diverse recommendations
- External playlist import functionality
- Music Recognition: supports microphone recording and system audio capture
- Fullscreen button on Windows/Linux title bar
- Experimental DSD premium quality option (limited song availability)
- Experimental equalizer
Fixed
- Fixed native addon loading failure on Windows without Visual C++ Redistributable (statically linked MSVC C Runtime)
- Fixed first song always being the first in the playlist when shuffle is on
- Fixed QR code refresh button overlapping with scan prompt text on login page
- Fixed libmpv dependency issues on Linux
Refactored
- Playback engine migrated from mpv subprocess to libmpv embedded via Rust NAPI addon directly calling libmpv C API
- Separated audio quality and audio effects logic and trigger buttons; merged effects and equalizer
Improved
- Tray icon redesigned with brand blue + white glyph, clearly visible on both light and dark taskbars, unified across Windows and Linux
- Personal FM: improved playback logic, correctly sending
is_overplay: trueon natural song end to reduce recommendation repeats - Personal FM: added
/personal/fmand/ai/recommendto non-cached route list for real-time recommendations - My Favorites: split followed users and artists into separate tabs
- Optimized playback logic and UI blocking/race condition issues
- Adjusted page lyrics translation/transliteration font sizes
- Lyrics out-of-sync warning when playback duration differs significantly from original track length
[2.2.2] - 2026-04-27
Refactored
- Playback engine upgraded to mpv with independent process playback, supporting more audio formats with higher decoding quality
- Vocal/instrumental track switching faster and more stable
- Volume normalization and crossfade adapted for new engine
- Audio output device list more accurate, switching more reliable
- Comment replies changed to inline expand/collapse for unified interaction
Added
- Exclusive Audio Device toggle: bypass system mixer for direct output and higher audio quality
- Auto Check for Updates toggle in settings
- Logout confirmation dialog to prevent accidental clicks
- Comment button on lyrics page to view current song comments
- Long comments auto-truncated with expand/collapse support
Improved
- Lyrics page light theme background readability improved
- Lyrics page play button and cover card visual consistency
- Audio device status hints layout more compact
- Play queue, batch operations, and comment drawer unified at bottom
Fixed
- Modals blocked by player bar
- Lyrics translation and transliteration line colors following custom colors
- Progress bar drag handle lagging behind mouse
Known Changes
- Slight increase in app package size
[2.2.1] - 2026-04-24
Added
- Vocal and Instrumental audio effect options with separated playback
- Extracted track data cached for instant vocal/instrumental switching on the same song
- Photo mode lyrics auto-collapse: auto-collapse to bottom two lines after inactivity, with configurable toggle and delay
- Photo mode button adaptive color: auto-switches light/dark based on background brightness, with toggle
- Lyrics page changed to overlay mode, fixing page cache invalidation on open/close
- Lyrics page open/close transition animation
- Font settings
Improved
- Unified dark/light theme behavior in photo mode
- Photo mode cover card and controller layout optimized
- Lyrics page popup hierarchy adapted for overlay mode
- Play queue now supports direct drag-to-reorder
- Desktop lyrics lock/unlock interaction improved: can interact after locking without moving out of window
- Desktop lyrics text shadow changed to soft projection style
- Desktop lyrics multi-monitor support, remembers monitor position
- Disable GPU Acceleration toggle for troubleshooting rendering issues
Fixed
- Lyrics stuck on "Loading" during rapid track switching
- Profile still showing previous account info after logout and login with different account
- Lyrics page shortcut key not opening
- Page cache invalidation on lyrics page open/close
- "My Favorites" page current song position offset
- Desktop lyrics position shifting on each open in Windows
- Progress bar flickering when switching audio quality or effects
- Volume normalization incorrectly applying default attenuation without valid loudness data
- Desktop lyrics line switching delay
- Scroll position not preserved when returning to page
- Lyrics played/unplayed color defaults inconsistency
- Artist detail info completed (followers, birthday, MV count)
- Album detail page showing album type and language, sticky header with favorite button
- Playlist detail page sticky header with favorite button
- Sidebar layout spacing adjusted
[2.2.0] - 2026-04-21
Added
- Lyrics and MV search tabs on the search page
- MV search results in card grid layout, reusing existing MV card component
- "Search Page" quick entry button on right side when title bar search box is expanded and empty
- Volume Normalization: automatically adjusts gain based on track LUFS loudness data for consistent volume across songs
Improved
- Playback engine refactored from Howler.js to native HTML5 Audio, eliminating middleware event loss and state sync issues
- Volume normalization via Web Audio API (GainNode), reusing the same audio element without rebuilding the processing chain on track change
- Crossfade refactored to dual GainNode architecture (fadeGainNode + normGainNode), using Web Audio API native linearRampToValueAtTime scheduling, independent of JS timers, works even when window is minimized
- Lyrics page word-level animation upgraded to gradient fill effect matching desktop lyrics, using rAF real-time interpolation for smooth transitions
- Directly listen to native audio durationchange event, fixing inaccurate duration for streaming audio
Fixed
- Fixed playback suddenly freezing with progress bar stuck and unresponsive to drag
- Fixed song progress reaching end but ended event not triggering, delaying next track switch
- Fixed auto track switch causing no sound due to crossfade
- Fixed HTML entities in English lyrics not being decoded (e.g.,
'shown as raw text)
[2.1.9] - 2026-04-20
Added
- My Favorites page with Songs, Artists, Albums, and Videos tabs
- Auto-rotating lyrics photo backgrounds
- API cache layer (LRU, 200 entries max, 30-minute TTL), write operations auto-clear related caches
- Page cache (KeepAlive) settings with customizable cached pages and max count
- MultiSelect dropdown component
Improved
- Removed global request timestamps; cache strategy managed by main process cache layer
- Title bar refresh button clears API cache on click for latest data
- "Liked Songs" playlist restored to custom playlist list in sidebar
- Favorited albums moved to "My Favorites" page
- Lyrics page translation/transliteration refactored as independent toggles
- Lyrics photo background mask and toolbar visual improvements
- Non-current and unplayed lyrics line color readability improved
Fixed
- Lyrics color picker incorrect defaults
- Audio quality/effects badge and playlist song count badge settings not applying on lyrics page
[2.1.8] - 2026-04-19
Added
- MV tab on artist detail page with category filtering and scroll loading
- Audio quality and effects badge display toggle in settings
- Silent installation toggle: auto-complete updates in background without setup wizard
- Linux arm64 build
Improved
- Native CSS dragging solution, completely fixing Windows high-DPI window drag flickering
- Removed ineffective PlayerBar frosted glass effect, reducing GPU overhead
- Artist detail page albums and MVs changed to lazy loading, request data only on tab switch
- Artist detail page albums support scroll pagination
- Modal and drawer components compatible with native drag layer, no interaction interference when open
Fixed
- Lyrics page photo images failing to load
- Login expiration check falsely triggering on network disconnect, incorrectly clearing login state
- Login expired dialog clearing login state before user confirmation
- Manual track switch in single loop mode now follows list order, no longer repeating current song
- Page scroll position not resetting after route change
- macOS update dialog missing online update button
[2.1.7] - 2026-04-19
Added
- Changelog entry in settings page
Fixed
- Window slowly enlarging when dragging on Windows high-DPI
- Version update content styles not displaying correctly
[2.1.6] - 2026-04-18
Added
- Artist list page under Discover
- Version update log viewable when checking for updates
- In-app online update for Windows and Linux
Improved
- Refactored internal communication architecture for improved API stability and response speed
- Further reduced installer size
- Startup speed optimization
- Request log format optimization
Fixed
- Lyrics page play queue overlapping with window control buttons
- API service becoming unresponsive after extended use, requiring app restart
- API service port conflicts
- Network proxy causing app to malfunction
- Title bar not draggable on certain pages
Earlier Versions
For earlier test versions (2.1.5 and below), please see GitHub Releases.