F-Droid、IzzyOnDroid 与 GitHub 版本才包含 Deezer/YouTube Music 封面和 LRCLib 歌词等全部功能;翻译请走 Weblate,不要直接改 values-*/strings.xml 提 PR
Rhythm
cromaguyGPL-3.0活跃维护一款用 Kotlin 写的开源 Android 本地音乐播放器,主打隐私优先,界面采用 Material 3 Expressive 设计,基于 Media3 ExoPlayer 播放。
Your Music, Your Rhythm. An open-source, privacy-first Android music player featuring a beautiful Material 3 Expressive UI. Built entirely in Kotlin.
从 GitHub Releases 下载 APK 安装:https://github.com/cromaguy/Rhythm/releases/latestAndroid 8.0+(API 26),2GB RAM,50MB 存储空间;README 未说明 CPU/GPU 型号要求
开源隐私优先的 Android 本地音乐播放器,用 Material 3 Expressive 界面播放高解析音频
一款用 Kotlin 写的开源 Android 本地音乐播放器,主打隐私优先,界面采用 Material 3 Expressive 设计,基于 Media3 ExoPlayer 播放。
核心能力
- 基于 Media3 ExoPlayer 实现无缝播放与高解析模式
- 内置 10 段均衡器,附带 6032+ AutoEQ 设备预设
- 通过 FFmpeg 解码 EAC3-JOC/Dolby Atmos 音频
- 接入 LRCLib 显示逐词高亮的同步歌词
- 支持 Subsonic、Navidrome、Jellyfin 服务器串流与下载
容易踩的坑
- v5.5.499.1302-stable5.5.499.1302 Stable最新正式版2026-10-13 · 2026-10-13 16:16 UTC
Rhythm 5.5 - Feature Update
What's New:
- Fixed: Playback Speed & Pitch Controls: Resolved an issue where adjusting playback speed and pitch in the player bottom sheet had no effect, particularly on FLAC and high-resolution audio files (#666).
- Fixed: Speed & Pitch Continuity: Playback speed and pitch adjustments now stay properly synchronized across track changes, crossfade transitions, and background service reconnects.
- Fixed: Dolby Atmos & Surround Sound Detection: Refined format detection so Dolby Atmos and multi-channel surround tracks accurately display their dedicated quality badges without false positives on stereo media.
- Fixed: Audio Engine Compatibility: Tuned 32-bit PCM float output to safely coordinate with software equalizer effects, bass boost, spatializer, and time-stretching.
- Many more reported Bug Fixes, UI & Performance Improvements.
Known Issues:
- Translation contributions are being collected.
- Report to GitHub Issues or Community on Discord & Telegram.
Build Information:
- Build: 1302
- Type: Stable Release
[!NOTE] Important Update Notes
- The app is in active development, so many features might be missing compared to other FOSS players.
- You will find several improvements and changes with each release, so please stay up to date.
[!TIP]
- Turn on Auto-Backup so that no matter what happens, you can always recover your data.
- You can turn off/on/manage APIs based on your needs from Settings.
If you enjoy Rhythm and want to support open-source development:
- Patreon: patreon.com/AnjishnuNandi
- GitHub Sponsors: github.com/sponsors/cromaguy
🏆 Special Credits
- The Community: A big thanks to all Testers, Contributors, and Users!
- v5.5.498.1300-stable5.5.498.1300 Stable2026-10-11 · 2026-10-11 10:12 UTC
查看更新说明
Rhythm 5.5 - Feature Update
What's New:
- Added: Real-Time Playback Quality Info: Tap the audio quality badge in the player to inspect comprehensive audio telemetry, including source format, active decoder engine, decoded stream specs (sample rate, bit depth, bitrate, channels), and real-time output destination (Bluetooth codec & transmission rate, USB DAC Bit-Perfect pass-through, or Android HAL routing/resampling status).
- Added: Native Capabilities Screen: Inspect device audio pipeline parameters, native HAL clock rates, kernel buffer frame bursts, DSP audio offload support, 32-bit float support, physical audio endpoints, and SoC hardware details with one-tap diagnostic report export.
- Added: External Capabilities & Software Decoders: Manage software audio engines, prioritize on-chip hardware codecs over software emulation, toggle 32-bit PCM float output, and inspect/toggle individual platform and software decoders.
- Added: Decoder Extensions Screen: Configure external audio extensions and inspect extended codec capabilities (FFmpeg, MIDI plugins) with ExoPlayer compatibility status.
- Added: Persistent Quality Badge Option: Added setting in Tuner to keep the audio quality indicator persistently visible on the Expressive Player instead of auto-hiding after 5 seconds.
- Added: Player Bottom Controls Customization: Normal mode bottom player controls can now be customized with pin limits and status indicators.
- Changed: Queue & Playlist Reordering: Completely overhauled drag-and-drop list reordering with smoother auto-scrolling during drag, fluid edge blending, and stabilized list scroll.
- Changed: AutoEQ Preset Persistence: Imported custom AutoEQ profiles are now permanently retained across sessions and properly interpolated across device hardware bands.
- Changed: Audio Output Detection: Enhanced automatic switching and detection between USB DACs, Bluetooth A2DP/BLE, wired headphones, and internal speakers using system MediaRouter integration.
- Changed: Crossfade Engine Overhaul: Refined track transition controller, reverb tail tolerances, and artwork cache calculation during crossfades.
- Changed: Missing Media Handling: Queue now gracefully skips and prunes deleted or missing local audio files instead of halting playback.
- Performance: Expanded Subsonic Library Sync: Raised library sync limit from 5,000 to 50,000 songs.
- Performance: Resilient Page Checkpointing: Subsonic full library sync now checkpoints each page to disk, allowing interrupted syncs to resume seamlessly without restarting from scratch.
- Performance: Off-Main-Thread Processing: Catalog mapping, grouping, deduplication, and sorting moved completely off the main thread for smooth 120Hz scrolling.
- Performance: Optimized Catalog Cache: Compact on-disk catalog caching without expiring signed URLs, with atomic file writes and batched saves.
- Performance: Deezer Artist Artwork Caching: Deduped artist image queries to fetch once per artist and eliminated redundant network requests.
- Fixed: Date Added Reset: Resolved issue where "Date Added" timestamps reset when moving, renaming, or recreating local audio files (#661).
- Fixed: Subsonic Liked Songs: Fixed starred Subsonic tracks not appearing in the Liked Songs playlist (#639).
- Fixed: Subsonic Sync Storms: Fixed redundant library re-fetches and sync storms on app startup when the server library is unchanged (#620).
- Fixed: Subsonic Network Timeouts: Added automatic retry for timed-out library sync requests and bounded album queries (#633).
- Fixed: Jellyfin & Navidrome Endpoints: Resolved playback quality switching, downl
- v5.5.492.1288-beta5.5.492.1288 Betapre-release2026-10-01 · 2026-10-01 08:50 UTC
查看更新说明
Rhythm 5.5 - Bug Fix Update
What's New:
- Added: USB DAC and USB headset now appear in the audio output switcher with device product names
- Added: New Audio Routing dialog to switch between Bit-Perfect, app-managed, and system routing modes
- Fixed: Equalizer sliders no longer reset adjacent band values when adjusting a single band (#618)
- Fixed: ReplayGain no longer causes a volume burst when switching tracks (#610)
- Fixed: Crossfade queue no longer stalls after a few tracks and correctly continues through the playlist (#652)
- Fixed: Skip Silence no longer accelerates or distorts quiet song intros (#652)
- Fixed: USB DAC playback no longer incorrectly triggers RhythmGuard speaker volume protection
- Fixed: Lyrics desync on track skip and queue state loss on shuffle toggle (#612, #613)
- Fixed: Recycled bitmap crash in MediaSession artwork scaling (#603)
- Fixed: Online artwork no longer disappears when switching tracks or refreshing the library (#616)
- Fixed: Jellyfin and Navidrome playback, download endpoints, lyrics, and quality switching (#561, #605, #606, #617)
- Fixed: Bluetooth CDM SecurityException handled gracefully instead of crashing
- Performance: Audio processors (EQ, Bass Boost, Virtualizer, ReplayGain) now bypass the buffer pipeline entirely when disabled, eliminating unnecessary memory copies per audio packet
- Performance: Preferred audio device now correctly bound to ExoPlayer's AudioTrack so AudioFlinger applies Bit-Perfect mixer configuration instead of falling back to resampling
- Many more reported Bug Fixes, UI & Performance Improvements.
Known Issues (Will be fixed on a later build):
- Translation contributions are being collected.
- Report to GitHub Issues or Community on Discord & Telegram.
Build Information:
- Build: 1288
- Type: Beta Release
[!NOTE] Important Update Notes
- Don't restore old backups
[!CAUTION] This is a Beta build. Please report Issues if found.
If you enjoy Rhythm and want to support open-source development:
- Patreon: patreon.com/AnjishnuNandi
- GitHub Sponsors: github.com/sponsors/cromaguy
🏆 Special Credits
- The Community: A b
- v5.5.487.1274-stable5.5.487.1274 Stable2026-09-18 · 2026-09-18 16:58 UTC
查看更新说明
Rhythm 5.5 - Feature Update
What's New:
- Fixed: fix(player): bypass ExoPlayer cache for local media and sanitize OGG metadata writes
- Fixed: fix(player): harden audio offload gating and migrate to PlayerTransferState
- Fixed: perf(artwork): implement two-tier artwork cache with zero-copy descriptor serving
- Many more reported Bug Fixes, UI & Performance Improvements.
Known Issues:
- Translation contributions are being collected.
- Report to GitHub Issues or Community on Discord & Telegram.
Build Information:
- Build: 1274
- Type: Stable Release
[!NOTE] Important Update Notes
- The app is in active development, so many features might be missing compared to other FOSS players.
- You will find several improvements and changes with each release, so please stay up to date.
[!TIP]
- Turn on Auto-Backup so that no matter what happens, you can always recover your data.
- You can turn off/on/manage APIs based on your needs from Settings.
If you enjoy Rhythm and want to support open-source development:
- Patreon: patreon.com/AnjishnuNandi
- GitHub Sponsors: github.com/sponsors/cromaguy
🏆 Special Credits
- The Community: A big thanks to all Testers, Contributors, and Users!
- v5.5.485.1270-stable5.5.485.1270 Stable2026-09-17 · 2026-09-17 17:11 UTC
查看更新说明
Rhythm 5.5 - Feature Update
What's New:
- Added: Persistent playback queue and shuffle memory: automatically restores your playlist, exact track position, and shuffle state across app restarts (#595)
- Added: AutoEQ headroom protection: automatic preamp attenuation (-maxGain) prevents audio distortion and digital clipping when boosting EQ bands
- Added: AutoEQ speaker bypass: automatically turns off AutoEQ when playing through device speakers and restores it when headphones or external audio connect
- Added: Custom AutoEQ profile management: import, save, and reorder custom equalizer profiles across sessions
- Added: Multi-voice and duet lyrics display with synchronized part highlighting across LRC, TTML, and syllable renderers (#587)
- Added: Theme Intensity customization (Standard, Medium, Vivid) and Expressive Color Set options for dynamic Material 3 palettes (#590)
- Added: Android Photo Picker integration for selecting custom album and playlist artwork without requiring media storage permissions
- Added: On-demand lossless album artwork streaming directly from embedded audio tags with instant visual updates
- Changed: Equalizer preset frequency mapping now logarithmically interpolates 10-band presets to match device hardware bands accurately
- Changed: Dynamic color extraction from album artwork refined to preserve natural hues and color vibrancy
- Changed: Adopted Android 15 edge-to-edge layout design and modernized Material 3 Slider interactions
- Fixed: Fixed playback queue being wiped or re-shuffled when reopening the app or restarting playback (#595)
- Fixed: Fixed lyric fetching for explicit songs and downloaded audio files, and resolved LRCLIB HTTP 520 connection errors (#587, #583)
- Fixed: Fixed lyrics cache invalidation and eliminated fetch cancellation thrashing during rapid song skips (#585)
- Fixed: Hardened background media service startup flow to prevent service crashes and notification failures
- Fixed: Equalizer curve rendering clamped within display bounds to eliminate visual clipping artifacts
- Performance: Zero-latency song details sheet: offloaded file path resolution and MediaStore queries to background threads to eliminate UI thread blocking (#589)
- Performance: Efficient on-demand artwork streaming eliminating redundant disk caching and memory overhead
- Added: Updated translations
- Many more reported Bug Fixes, UI & Performance Improvements.
Known Issues:
- Translation contributions are being collected.
- Report to GitHub Issues or Community on Discord & Telegram.
Build Information:
- Build: 1270
- Type: Stable Release
[!NOTE] Important Update Notes
- The app is in active development, so many features might be missing compared to other FOSS players.
- You will find several improvements and changes with each release, so please stay up to date.
[!TIP]
- Turn on Auto-Backup so that no matter what happens, you can always recover your data.
- You can turn off/on/manage APIs based on your needs from Settings.
[](https://f-droid.org/packages/chromahub.rh
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
Project Rhythm
Your Music, Your Rhythm.
🌐 Website • ▶️ Google Play • 📥 Download • 🎧 Discord • 💬 Telegram • 📖 Wiki
💖 Support the Developer
Building and maintaining Rhythm is a massive labor of love, provided completely free and open-source. If you love using this app, please consider supporting development!
| ☕ One-Time Support | 🤝 Ongoing Sponsorship |
|---|---|
✨ Why Choose Rhythm?
Rhythm is a modern, open-source music player built with Material 3 Expressive design. It delivers professional-grade audio with High-Resolution playback, EAC3-JOC/Dolby Atmos via FFmpeg, and completely respects your privacy.
| 🎨 Design & UI | 🎵 Audio Engine |
|---|---|
| Material You: Dynamic theming with wallpaper colors (Android 12+). | Pro Audio: Media3 ExoPlayer with gapless playback & High-Res mode. |
| Expressive UI: Refined adaptive shapes and Material 3 design. | 10-Band EQ: Professional equalizer with 6032+ AutoEQ device presets. |
| Tablet UI: Optimized multi-pane layout for tablets. | Replay Gain: Track/album loudness normalization. |
| Material Symbols: Crisp, scalable variable-weight icons. | Crossfade: Smooth transitions with adjustable duration. |
| 🎤 Features & Tools | 🔒 Privacy & Data |
|---|---|
| Synced Lyrics: LRCLib integration with word-by-word highlighting + full-screen view. | 100% FOSS: Completely open-source with zero tracking. |
| Smart Library: A–Z scroll bar, multi-select batch operations, Album Artists & Dates tabs. | Offline Capable: Designed to work flawlessly without the internet. |
| Rhythm Stats 2.0: Comprehensive stats with Overview, Songs, Albums, Artists, History. | Local First: Your data and habits stay securely on your device. |
| Go Mode (Streaming): Local + server playback (Subsonic, Navidrome, Jellyfin) with nearby-server discovery. | |
| Rhythm Go Downloads: Download streaming tracks for offline playback. | |
| Rhythm Guard: Integrated hearing safety and volume protection. | |
| Mono Audio: Downmix to mono for single-earpiece listening. | |
| Foldable Ready: Posture-aware player layouts that adapt to tabletop, book, and separated-screen postures. | |
| Home Screen Widgets: Multiple layouts including a dedicated Lyrics widget. |
System Requirements: Android 8.0+ (API 26) • 2GB RAM • 50MB Storage
📱 Screenshots
Tablet
📥 Download & Install
Choose your preferred platform to download the latest version of Rhythm:
| Source | Badge | Details |
|---|---|---|
| Google Play | Install on Android • Join from Web (Open Testing) | |
| GitHub | Direct APK download (Full Features) | |
| F-Droid | Official repository (Full Features) | |
| IzzyOnDroid | Privacy-focused repo (Full Features) | |
| Obtainium | Auto-updates straight from GitHub | |
| OpenAPK | Alternative APK source |
💡 Note: F-Droid, IzzyOnDroid, and GitHub releases include all features, including Deezer & YouTube Music artwork, LRCLib lyrics, and YouTube Music artwork. See Build Variants or the Wiki Build Instructions for details. Need help? Check out the Installation Guide.
🛠 Technology Stack
Built with modern tools and clean architecture:
- UI & Design: Jetpack Compose, Material 3, Glance Widgets, Coil, AndroidX Palette.
- Audio Engine: Media3 ExoPlayer, FFmpeg Decoder, JAudioTagger.
- Architecture: MVVM + Clean Architecture, 100% Kotlin, Kotlin Coroutines + Flow.
- Data & Network: Room + SQLite, Retrofit, OkHttp, Gson.
- Build & Management: AGP, Kotlin, WorkManager, LeakCanary.
📖 Full tech stack: Read more in the Wiki.
🌍 Translations
Rhythm is translated into 28+ languages by the community via Weblate. You don't need to write code to contribute — just visit the link below and start translating!
| Language | Status |
|---|---|
| 🇬🇧 English | Source (always 100%) |
| 🌐 28+ others | View all on Weblate |
How to help translate:
- Go to hosted.weblate.org/engage/rhythm/
- Register a free account
- Pick your language and start translating
⚠️ Please do not submit PRs that edit
values-*/strings.xmlfiles directly — translations are managed exclusively through Weblate, which syncs back automatically.
🤝 Contributing & Community
We welcome contributions! See our CONTRIBUTING.md for guidelines.
- 🐛 Found a bug? Open an issue
- 💡 Have an idea? Request a feature
- 💬 Want to chat? Join Discord, Telegram or GitHub Discussions
- 📖 Need help? Read the Wiki
- 🌍 Want to translate? Translate on Weblate
🏆 Credits
Lead Developer & Architect: Anjishnu Nandi
Huge Thanks To:
- Izzy - IzzyOnDroid repository management
- linsui & Licaon_Kter - F-Droid repository management
- theovilardo - Guide & PixelPlayer's Lead Dev
- Nick - Guide & Gramophone's Maintainer
- Alex - Lyrically API's Lead Dev
- vivi - Guide & Lead Developer of Vivi Music
- The Google Material Design Team, AOSP, JetBrains, and the fantastic Open Source Community.
✨ Made with ❤️ by Team ChromaHub
License: GNU General Public License v3.0 © 2026 Team ChromaHub. All rights reserved. ⭐ If Rhythm improved your daily listening, don't forget to star the repository! ⭐