Download Latest Version 1.7.0 source code.zip (29.9 MB)
Email in envelope

Get an email when there's a new version of SimpMusic

Home / v1.7.0
Name Modified Size InfoDownloads / Week
Parent folder
SimpMusic-x86_64.AppImage 2026-08-07 144.3 MB
SimpMusic-full-x86_64-release.apk 2026-08-07 29.5 MB
SimpMusic-full-universal-release.apk 2026-08-07 55.0 MB
SimpMusic-full-armeabi-v7a-release.apk 2026-08-07 28.0 MB
SimpMusic-1.7.0-mac-amd64.dmg 2026-08-07 244.0 MB
SimpMusic-full-arm64-v8a-release.apk 2026-08-07 28.0 MB
SimpMusic-Windows-installer.zip 2026-08-07 228.1 MB
SimpMusic-1.7.0-mac-aarch64.dmg 2026-08-07 229.9 MB
SimpMusic-foss-x86_64-release.apk 2026-08-07 27.8 MB
SimpMusic-foss-universal-release.apk 2026-08-07 52.7 MB
SimpMusic-foss-armeabi-v7a-release.apk 2026-08-07 26.3 MB
SimpMusic-foss-arm64-v8a-release.apk 2026-08-07 26.3 MB
1.7.0 source code.tar.gz 2026-08-07 29.5 MB
1.7.0 source code.zip 2026-08-07 29.9 MB
README.md 2026-08-07 6.5 kB
Totals: 15 Items   1.2 GB 53

Full changlogs here: https://www.simpmusic.org/blogs/new-update-simpmusic-v170

🎉 New features

Playback & player

  • Last.fm scrobbling (Full build only) — lastfm / lastfm-empty module pair, a login screen, its own settings group, and scrobbling during playback
  • Reworked Now Playing: new backdrop and artist card; added an inline lyric line and removed the blurred backgrounds
  • Playlist import from a converted file, straight from Settings; writes to the database in batches
  • Charts: added seven new YouTube Music countries — Hong Kong, Malaysia, Philippines, Singapore, Taiwan, Thailand and Vietnam
  • The empty search screen now shows browse categories
  • Play a song directly from a browse category's shelf
  • Home: long-press a quick pick to open the Now Playing sheet
  • Library: show item counts in dynamic playlist headers

Settings

  • Ask for confirmation before logging out of a linked account

Desktop

  • Replaced VLC with libmpv as the sole playback backend — including DJ crossfade filters and a switch to DASH streams
  • Linux: build libmpv from source in a container instead of extracting it from the AppImage
  • Tray menu and tooltip now show the current track
  • The volume slider expands only on hover
  • The player bar timeline is tinted while a crossfade is running
  • Video now renders through Compose frames; SwingPanel removed
  • Windows: removed the debug terminal window
  • "Play next" now works on the desktop side
  • Added a Queue button to the mini player — PR [#2275] by @laoluogun

Internal

  • Migrated every icon to generated Material Symbols ImageVectors, dropping material-icons-extended and the XML drawables

🐛 Fixes

Crossfade & player

  • Skip the crossfade when the next track plays as video, and when the current track plays as video
  • Keep the correct incoming track when a transport control is pressed mid-crossfade
  • Align the restored queue with the player, and guard against saves during a rebuild
  • Keep the progress slider within Material3's default range
  • Volume: apply it to the player before persisting it; unmute restores the original level — PR [#2274]
  • Desktop: release the crossfade handle when loading another track; route volume through ao-volume so it applies instantly
  • Normalise Tidal key names before Camelot matching — Tidal spells accidentals out ("FSharp", "CSharp") rather than using symbols, so keyToSemitone failed to parse them and roughly 22% of tracks silently lost their key in DJ crossfade. Fixed by normalising the string before matching, and by changing the calculateKeyGapDurationFactor fallback from 1.0 to UNKNOWN_GAP_DEFAULT_FACTOR — an unparseable key was previously treated as a perfect match

Data & parsing

  • Lyrics: stop dropping the first character when no space follows the timestamp
  • Identify song columns by pageType instead of a fixed index
  • Keep only the first subtitle group as artists
  • The database now repairs artist names and album names stored by an older parse
  • Treat personalised mixes as radio playlists
  • Browse categories: key sections by title and cache them on disk, parse the songs shelf, and render every section the API returns

Downloads & cache

  • Stop re-resolving stream URLs for tracks that are already fully downloaded
  • Serve directly from cache only when the whole track is on disk

Desktop

  • macOS: switched audio output to avfoundation — avoids an ao_coreaudio use-after-free crash when headphones are plugged in or removed
  • macOS: register now-playing handlers on the main queue; stopped trimming native memory, which was causing a crash
  • Disabled skiko vsync (the cause of freezes when changing displays) and restore the window on Dock reopen
  • Backup: stopped double-wrapping the zip output stream
  • Registered URL schemes at the correct level in conveyor.conf, and restored external link opening on Linux
  • libmpv bundle: resolve by absolute path and drop POSIX open flags on Windows; strip AppleDouble sidecars that made macOS report "app is damaged"; treat an absent ytdl option as success
  • Raised the macOS floor to 15.0 for the bundled libmpv — a breaking change for users on older macOS

User interface

  • Force-dark screens now use a real dark colour scheme rather than just dark text
  • Bottom sheet: title, artist and the like label take their colours from the dark palette
  • Search: leave room for the floating search bar in every state; cap the browse grid width and use four columns on wide layouts
  • Quick picks: keep titles on one line with a marquee
  • Smoother artwork scrims via a smoothstep gradient
  • NormalAppBar uses the transparent colours the app uses elsewhere
  • Show a generic album label when the album name is unknown
  • Analytics: lengthened the header scrim so the top song title no longer overlaps the stats
  • Repaired the notification bell icon path
  • Library: the "create playlist" label uses the theme colour
  • Spotify: match the login status URL when it carries a query string

⚡ Performance (Desktop)

  • Tuned the allocator and GC to cut resident memory
  • Return freed native memory to the OS when playback idles
  • Capped mpv's demuxer cache

🔧 Infrastructure & dependencies

  • PipePipeExtractor to v6.2.0, brave-newpipe bumped
  • Bumped a batch of dependencies
  • Refreshed the Gradle daemon JVM toolchain URLs
  • CI/CD: workflow updates; stage natives in the release workflow and verify the libmpv bundles
  • CLAUDE.md updated for Last.fm, the from-source Linux libmpv build, Compose video rendering, and the video crossfade rules

What's Changed

New Contributors

Full Changelog: https://github.com/maxrave-dev/SimpMusic/compare/v1.6.0...v1.7.0

Source: README.md, updated 2026-08-07