SimpMusic
A simple, open-source music app
Stream, download and enjoy your music — ad-free inside the app. Available on Android, Windows, macOS and Linux.
Read on to learn what's new, how to install, and pick your platform below
What's new in v1.7.0
Released 2 weeks agoFull changlogs here: https://www.simpmusic.org/blogs/new-update-simpmusic-v170
🎉 New features
Playback & player
- Last.fm scrobbling (Full build only) —
lastfm/lastfm-emptymodule 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
Browsing & search
- 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;
SwingPanelremoved - 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, droppingmaterial-icons-extendedand 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-volumeso it applies instantly - Normalise Tidal key names before Camelot matching — Tidal spells accidentals out (
"FSharp","CSharp") rather than using symbols, sokeyToSemitonefailed 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 thecalculateKeyGapDurationFactorfallback from1.0toUNKNOWN_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
pageTypeinstead 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 anao_coreaudiouse-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
ytdloption 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
NormalAppBaruses 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-newpipebumped - 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.mdupdated for Last.fm, the from-source Linux libmpv build, Compose video rendering, and the video crossfade rules
What's Changed
- Feat/queue button desktop miniplayer by @laoluogun in https://github.com/maxrave-dev/SimpMusic/pull/2275
- Feat/desktop mpv backend by @maxrave-dev in https://github.com/maxrave-dev/SimpMusic/pull/2284
- Fix/volume unmute to original value by @laoluogun in https://github.com/maxrave-dev/SimpMusic/pull/2274
- New version: v1.7.0 by @maxrave-dev in https://github.com/maxrave-dev/SimpMusic/pull/2281
New Contributors
- @laoluogun made their first contribution in https://github.com/maxrave-dev/SimpMusic/pull/2275
Full Changelog: https://github.com/maxrave-dev/SimpMusic/compare/v1.6.0...v1.7.0
How to install
Pick your platform — clear steps with what to tap and what to allow
Choosing the right Android APK
Each release ships several APK files split by CPU architecture (ABI splits) and by build flavour. Per-architecture APKs are smaller and install faster, while the universal APK works on every device but is the largest. If you are unsure, pick arm64-v8a — it covers virtually every Android phone released since 2017.
Two build flavours per ABI:
- full — the standard build with every feature. Recommended for most users. This is what the download picker highlights by default.
- foss — strict free / open-source build with all proprietary dependencies stripped. Used for F-Droid distribution and by users who avoid closed-source libraries.
arm64-v8aRecommended
64-bit ARM. Used by virtually every modern Android phone (almost all flagships and mid-range devices since 2017).
armeabi-v7a
32-bit ARM. Pick this only on older or low-end phones, typically released before 2017.
x86_64
64-bit Intel/AMD. Mainly for Android emulators, ChromeOS, and a few Intel-powered tablets.
universal
Bundles every architecture. Largest file — choose this only if you do not know your phone's CPU.
Not sure which one to pick? On your phone open Settings → About phone and check the chipset, or install a free tool like Droid Hardware Info and look at the Instruction Sets field. If it lists arm64-v8a, take the arm64 build.
System requirements
- Android 8.0 (API 26) or newer, including Android Auto
- Windows 10 or newer (64-bit)
- macOS 15 (Sequoia) or newer · Apple Silicon and Intel
- Modern Linux distributions (AppImage, x86_64)
- Approximately 150 MB of free disk space
- An active internet connection
Frequently asked questions
Quick answers about installing, using and trusting SimpMusic
Stable or Nightly?
Two release tracks for two kinds of users
Stable
Tagged releases that have been manually tested before publication. Recommended for everyday use — fewer surprises, slower update cadence.
- Manually QA'd
- Update notes per release
- Sync with F-Droid and IzzyOnDroid
↓ Use the platform picker below to grab the latest stable build
Nightly
Built automatically by GitHub Actions from the latest commit on main. You get new features first — and the occasional rough edge.
- Always the latest changes
- May contain bugs or missing translations
- Great for testers and contributors
Get SimpMusic
Download SimpMusic v1.7.0
Pick your platform — file downloads start instantly. You'll see install instructions right after.
Source available on GitHub · SHA256 checksums on every release page
Join the community
SimpMusic is built by music lovers, in the open
Join the Discord
Ask questions, share playlists and report bugs to a friendly community.
Star on GitHub
The fastest free way to support the project. Helps SimpMusic reach more music lovers.
Sponsor development
Keep servers, signing certs and translators paid for. Every donation matters.
Donate
