Skip to content

Latest commit

ย 

History

40 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

MusicFusion

CI Release License Android 21+ Java 8 APK 250KB 0 deps 9M+ tracks 2945 radio 6 sources 100% private Stars Forks

MusicFusion

6 sources ยท 9M+ tracks ยท 2,945 radio ยท 0 ads ยท 0 tracking
The only Android music player you'll ever need

Why ยท Features ยท Sources ยท Screenshots ยท Install ยท Architecture ยท Roadmap ยท License


๐ŸŽฏ Why MusicFusion?

Problem Spotify / YouTube / Apple MusicFusion
Price ยฅ10-30/ๆœˆ Free forever
Ads Yes (free tier) Zero ads
Privacy Tracks you + sells data Zero tracking
Offline Premium only Always free
Login required Yes No signup
Source lock-in One provider 6 sources
Battery drain High (DRM, telemetry) Minimal
APK size 50-100MB <250KB
Reverse engineering Impossible (DRM) Open source

MusicFusion is built on one principle: music is a human right, not a subscription service.

โœจ Features (v13)

๐ŸŽต Playback

  • Gapless playback (ๆ— ็ผๆ’ญๆ”พ)
  • ReplayGain (้Ÿณ้‡ๆ ‡ๅ‡†ๅŒ–)
  • 10-band graphic equalizer with custom curve save/load
  • Crossfade between tracks
  • Speed control (0.5x-2x)
  • Sleep timer
  • Lyrics display (offline + online)
  • Audio focus (duck when other apps play)

๐Ÿ“š Library

  • 9M+ tracks from 6 sources
  • Local files (mp3, flac, ogg, opus, m4a, wav)
  • Smart playlists with auto-generation
  • Favorites, history, queue
  • Bulk operations (select, delete, move)
  • Search across local + online (with source filter)
  • MusicBrainz metadata auto-enrichment

๐ŸŒ Online Sources (6)

ๅฃๅพ„่ฏดๆ˜Ž๏ผšไปฅ src/com/musicfusion/app/ ไธ‹ๅฎž้™…ๅญ˜ๅœจ็š„ source ๅฎž็ŽฐไธŽ SearchFilters / ๆœ็ดข็ญ›้€‰ไธญ็š„ 6 ไธชๆฅๆบไธบๅ‡†ใ€‚

  • Audius โ€” decentralized, crypto-paid artists
  • Internet Archive โ€” public domain + CC
  • RadioBrowser โ€” live radio stations
  • SomaFM โ€” listener-supported commercial-free
  • Openverse โ€” CC-licensed audio search with license/file-type filters
  • Jamendo โ€” independent artists (requires free client_id, see in-app settings)

โฌ‡๏ธ Download & Offline

  • Download manager (pause/resume/queue, MediaStore API 29+)
  • Auto-download playlists for offline
  • Smart cache (delete played songs after N days)
  • Per-track quality selector (96k / 128k / 192k / 320k)

๐Ÿ“ป Podcasts

  • RSS/OPML import & export
  • Auto-update subscriptions
  • Playback speed (0.5x-2.5x)
  • Skip silences
  • Sleep timer per episode
  • Chapters support
  • Download for offline

๐ŸŽจ UI/UX

  • AMOLED / high-contrast / light / sepia / custom themes
  • Material You dynamic colors (Android 12+)
  • Listen stats (charts: weekly / monthly / yearly, top genres, time-of-day heatmap, top artists)
  • Multiple widget sizes (2x1, 4x1, 4x2 with lyrics line)
  • BigPictureStyle notification (large art + scrolling lyrics + progress)
  • Android Auto media browser (read-only manifest)
  • Quick Settings tile (play/pause/skip)
  • App Shortcuts (long-press app icon: resume / search / radio / downloads / smart playlist)

๐Ÿ”— Integrations

  • Last.fm Scrobble (optional, opt-in, no key required)
  • MusicBrainz metadata enhancement
  • Discord Rich Presence (shows current song)
  • MPRIS (Linux desktop control)

๐Ÿ”’ Privacy

  • Zero telemetry (no Firebase, no Crashlytics, no Google Play Services)
  • All data on-device (or your own server)
  • No accounts, no login
  • Network requests only to whitelisted sources
  • Open source โ€” verify yourself

๐Ÿ—๏ธ Architecture (40 source files, 11000+ lines)

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                     UI Layer (Activities)                     โ”‚
โ”‚  MainActivity โ”‚ WidgetActivity โ”‚ ShortcutsActivity โ”‚ AutoUI  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”˜
       โ”‚                                                       โ”‚
       โ–ผ                                                       โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”                              โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ PlayerService    โ”‚โ—„โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ IPC โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–บโ”‚  DownloadManager  โ”‚
โ”‚  (MediaSession)  โ”‚                              โ”‚  (MediaStore API) โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜                              โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
       โ”‚
       โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                  Source Layer (6 implementations)              โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ Audius โ”‚ Archive โ”‚ RadioBrowser โ”‚ SomaFM โ”‚ Openverse โ”‚ Jamendo โ”‚
โ”‚ P2P      โ”‚ HTTP     โ”‚ HTTP+JSON     โ”‚ HTTP   โ”‚                โ”‚
โ””โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”˜                โ”‚
     โ”‚          โ”‚            โ”‚            โ”‚                    โ”‚
     โ–ผ          โ–ผ            โ–ผ            โ–ผ                    โ”‚
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”            โ”‚
โ”‚          Common Interface (Source.java)         โ”‚            โ”‚
โ”‚  search() ยท stream() ยท getPlaylist() ยท getInfo  โ”‚            โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜            โ”‚
                     โ”‚                                        โ”‚
                     โ–ผ                                        โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚              Database Layer (SQLite)                        โ”‚
โ”‚  tracks ยท artists ยท albums ยท playlists ยท history ยท queue  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Tech highlights

  • Pure Java 8 โ€” no Kotlin, no dependencies
  • Service-based playback โ€” survives activity death
  • MediaSession integration โ€” system media controls
  • Material 3 components with Material You dynamic colors
  • Foreground service for background playback
  • MediaBrowserService for Android Auto
  • AppWidgets with 3 sizes (2x1, 4x1, 4x2)
  • WorkManager for scheduled tasks (podcast refresh, cache cleanup)
  • Room style database abstraction (just raw SQLite, no lib)
  • Glide-style image loading (just BitmapFactory, no lib)

๐Ÿ“ฆ Quick Start

Requirements

  • Android 5.0+ (API 21+)
  • ~5MB free space

Install (prebuilt APK)

# Download latest release
wget https://github.com/ice-wocker/MusicFusion/releases/latest/download/musicfusion.apk

# Or via ADB
adb install musicfusion.apk

Build from source

git clone https://github.com/ice-wocker/MusicFusion
cd MusicFusion
ANDROID_HOME=/path/to/android-sdk ./build.sh   # ไบงๅ‡บ musicfusion.apk

่ฆๆฑ‚๏ผšJDK 17 + Android SDK๏ผˆbuild-tools / platforms ไปปไธ€็‰ˆๆœฌๅ‡ๅฏ๏ผŒ่„šๆœฌ่‡ชๅŠจๆŒ‘้€‰๏ผ‰ใ€‚ ่„šๆœฌไธๅ†ไพ่ต– Termuxโ€”โ€”aapt2 / d8 / zipalign / apksigner ๅ…จ้ƒจๅ–่‡ช ANDROID_HOME๏ผŒWindows / macOS / Linux ็š„ CI ้ƒฝ่ƒฝ่ท‘ใ€‚

First-run

  1. Open app โ†’ tap search โ†’ pick any source (e.g. Audius)
  2. Search for an artist โ†’ tap result โ†’ tap play
  3. All playing happens in PlayerService (survives app close)
  4. Tap album art โ†’ full screen player

๐Ÿ› ๏ธ Development

# Build with debug info
./build.sh --debug

# Run tests
./scripts/test-all.sh

# Generate signed release APK
./build.sh --release

See CONTRIBUTING.md for how to add a new source.

๐Ÿ—บ๏ธ Roadmap

v14 (Q1 2026)

  • Cloud sync (optional, your own server)
  • Custom equalizer presets (community sharing)
  • Lyrics translation (offline)
  • Discord RPC improvements
  • MPRIS v2 (more desktop players)

v15 (Q2 2026)

  • Spotify Connect (if you happen to have Premium)
  • Last.fm loved tracks import
  • MusicBrainz "similar artists" radio
  • Bandcamp source
  • YouTube Music source (if API allows)

v16+ (future)

  • Web client (PWA, runs on any device)
  • iOS port (if SwiftUI stable enough)
  • CarPlay (when Apple allows)
  • Watch app (Wear OS)
  • Plugin system (3rd party sources)

๐Ÿ› FAQ

Q: Why is the APK so small (<250KB) compared to Spotify (~100MB)? A: We use 0 third-party libraries. No Firebase, no Google Play Services, no analytics SDK, no DRM. Just pure Android framework + SQLite.

Q: Can I add my own music server? A: Yes! The source layer is modular โ€” implement Source.java interface and register. See docs/add-source.md.

Q: Does it support FLAC/Opus? A: Yes, Android's MediaPlayer/ExoPlayer handle all Android-supported formats.

Q: Will it work on Android Auto? A: Partial. The MediaBrowserService is registered, but full Auto UI requires a Google Play release.

Q: Why no Equalizer presets? A: v13 ships with default presets (Pop/Rock/Classical/Jazz). User presets are coming in v14.

๐Ÿค Contributing

Contributions welcome! See CONTRIBUTING.md for the dev guide.

  • ๐Ÿ› Bug reports โ†’ issues
  • ๐Ÿ’ก Feature requests โ†’ discussions
  • ๐Ÿ”ง PRs โ†’ fork โ†’ feature branch โ†’ PR

Most needed:

  • New source implementations (Subsonic, Navidrome, Plex)
  • Lyrics source integrations
  • UI/UX design improvements
  • Translation (we need i18n)

๐Ÿ“œ License

MIT License. See LICENSE.

Copyright (c) 2026 ice-wocker

โญ Star History

Star History Chart


Built with โ„ by ice-wocker โ€” making small, free, single-file tools.

About

Aggregated music player for Android. 9M+ legal tracks + 2,945 radio stations. 6 sources: Audius, Internet Archive, RadioBrowser, SomaFM, Openverse, Jamendo. Pure Java, 0 dependencies, full offline caching.

Topics

Resources

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages