Your Music, Your Rhythm
π Visit Our Website | π₯ Download Latest Release | π¬ Join Telegram Community
Click to expand
Rhythm is not just another music player - it's a complete audio experience designed with passion and attention to detail. Here's what sets us apart:
- β¨ Dynamic Theming - Colors extracted from your wallpaper (Android 12+)
- π Adaptive UI - Seamless light/dark mode transitions
- π Physics-based Animations - Smooth, natural motion throughout
- π Responsive Design - Perfect on phones, tablets, and foldables
- π¨ Custom Color Schemes - Personalize your experience
- π§ Media3 ExoPlayer - Studio-quality audio playback
- π Gapless Playback - Perfect transitions between tracks
- π΅ AutoEQ Integration - Device-tuned presets for 6032+ devices with import/export
- πΌ 10-Band Equalizer - Professional-grade audio customization
- π Rhythm Stats - Comprehensive playback statistics and insights
- π Smart Audio Focus - Handles calls and notifications elegantly
- π» Volume Control - Independent app volume or system integration
- π― Audio Quality Detection - Dolby, DTS, Lossless, and Hi-Res badges
Rhythm uses Media3 ExoPlayer 1.9.0 for professional-grade audio playback with comprehensive format support. Here's what you can expect:
| Format | Container | Quality | Notes |
|---|---|---|---|
| FLAC | .flac |
Lossless | Full support for all bit depths and sample rates |
| ALAC | .m4a, .alac |
Lossless | Native Apple Lossless support |
| MP3 | .mp3 |
Lossy | All bitrates and VBR support |
| AAC | .m4a, .aac, .mp4 |
Lossy | AAC-LC, HE-AAC, HE-AACv2 |
| Vorbis | .ogg |
Lossy | Ogg Vorbis audio |
| Opus | .opus, .ogg |
Lossy/Lossless | Modern, efficient codec |
| WAV | .wav |
Lossless | Uncompressed PCM audio |
| PCM | Various | Lossless | Raw audio data |
| Format | Container | Notes |
|---|---|---|
| Dolby Digital (AC-3) | .ac3, .m4a |
Requires compatible device/hardware |
| Dolby Digital Plus (E-AC-3) | .eac3, .m4a |
Requires compatible device/hardware |
| DTS | .dts, .m4a |
Requires compatible device/hardware |
| Dolby Atmos | Various | Requires Atmos-compatible device |
| WMA | .wma |
May require device codecs |
| Format | Alternative |
|---|---|
| APE (Monkey's Audio) | Convert to FLAC |
| DSD/DSF | Convert to FLAC or PCM |
| MQA | Use FLAC version |
| WMA Lossless | Convert to FLAC |
| AIFF | Convert to WAV |
Rhythm automatically detects and displays audio quality badges:
- Lossless: FLAC, ALAC, WAV, PCM
- Dolby: AC-3, E-AC-3, Atmos
- DTS: DTS Audio
- Hi-Res: β₯48kHz sample rate or lossless
- Container Detection: Some formats use identical containers (e.g., AAC and ALAC both use .m4a)
- Hardware Dependencies: Dolby/DTS formats require device-specific decoders
- Codec Extensions: Rare formats may need additional libraries (not included by default)
- Bit Depth: Limited to device capabilities (typically 16-bit or 24-bit)
- Sample Rate: Limited to device hardware (typically up to 192kHz)
- For Best Compatibility: Use FLAC, MP3, or AAC formats
- For Lossless Audio: FLAC is universally supported and recommended
- For Hi-Res Audio: Check your device's capabilities first
- Format Conversion: Use tools like FFmpeg or dBpoweramp for unsupported formats
Note: If a format doesn't play, it may be due to device/exoplayer limitations rather than app issues. Try converting to a supported format or check your device's audio capabilities.
- π€ Advanced Lyrics - Synchronized lyrics with LRCLib, embedded extraction, word-by-word display, and manual sync adjustment
- π Smart Search - Lightning-fast fuzzy search across your library with settings search
- π² Advanced Shuffle - True random, artist-aware, and weighted algorithms with persistent settings
- π Enhanced Playlists - Reorder, sort, multi-select, import/export, grid view, and smart playback options
- πΎ Auto-Resume - Picks up exactly where you left off with RAM removal controls
- π Rich Metadata - Beautiful album art and comprehensive tag support with embedded lyrics
- βοΈ Smart Settings - Default playlists toggle, gesture controls, player customization, and theme management
- π¨ Theme Engine - Dynamic colors, custom schemes, system fonts, festive themes, and Material You
- π LRCLib Integration - Community-driven synced lyrics with priority settings
- π Auto-Updates - Stay up-to-date via GitHub releases with Obtainium support
- π¨ Spotify Canvas - Dynamic visual experience for your music
- πΌοΈ Online Artwork - Fetch high-quality album art from Deezer
- π± Telegram Support - Join our active community
- π Multilingual - Support for multiple languages with ongoing translations
- π Festive Themes - Diwali, Christmas, and seasonal theme engines
- ποΈ Modern Design - Android 16 expressive style with rounded corners and vibrant colors
- π 9 Responsive Layouts - From compact 2x1 to premium 5x5, perfect fit for every home screen
- β‘ Real-Time Updates - Glance widgets with instant state synchronization using Glance framework
- π¨ Material 3 Colors - Dynamic theming with translucent backgrounds and proper contrast
- π Dual Support - Both legacy RemoteViews and modern Glance implementations
- π¦ Complete Grid Coverage - 2x1, 2x2, 2x3, 3x2, 3x3, 4x2, 4x4, 5x2, 5x5 layouts available
- π Rhythm Stats Widget - Dedicated statistics widget with real-time data
π Smart Home |
|
π€ Synced Lyrics |
π Rich Library |
π Smart Queue |
π Instant Search |
βοΈ Deep Settings |
π€ Artist Pages |
- π₯ Visit our Releases page
- πΎ Download the latest
Rhythm-vX.X.X-release.apkfile - βοΈ Enable "Install from unknown sources" in your device settings
- π² Open the downloaded APK and install
- π Launch Rhythm and enjoy your music!
Note: The APK is signed with our official keystore for security
- π± Install Obtainium from F-Droid or GitHub
- β Add this repository:
https://github.com/cromaguy/Rhythm/ - π Search for "Rhythm" and install
- π Enjoy automatic updates from GitHub releases!
Recommended for tech-savvy users who want direct GitHub integration
- π± Install F-Droid if you haven't already
- β Add IzzyOnDroid repository:
https://apt.izzysoft.de/fdroid/repo - π Search for "Rhythm" in F-Droid
- π₯ Install directly from the app
- π Enjoy automatic updates!
Recommended for privacy-conscious users
After installing Rhythm, you'll go through a comprehensive onboarding process to set up your music experience. Here's what to expect and how to use the app effectively.
Rhythm features a 9-step guided setup to personalize your music experience:
- Introduction to Rhythm's features
- Overview of the setup process
- Click "Get Started" to begin
- Storage Access: Required to scan and play your music files
- Notification Access (Android 13+): For playback controls and updates
- Bluetooth Access: For wireless audio output devices
- Grant permissions to continue with setup
- Choose whether to restore from a previous backup
- Set up automatic backup preferences
- Configure backup frequency and location
- Haptic Feedback: Enable tactile vibrations for interactions
- Default Landing Screen: Choose Home or Library as your starting screen
- System Volume Control: Use device volume buttons for playback
- Queue Behavior: Auto-add to queue, clear queue on new song
- Playback Persistence: Remember repeat and shuffle modes across restarts
- ExoPlayer Shuffle: Choose media player or manual shuffle handling
- Lyrics Display: Enable synchronized lyrics and choose source priority
- Configure audio focus handling and equalizer access
- Select light/dark theme or system default
- Enable Material You dynamic colors (Android 12+)
- Choose accent colors and app appearance
- Set up custom color schemes
- Advanced Tab Management: Reorder Songs, Playlists, Albums, Artists, and Explorer tabs with show/hide controls
- Tab Visibility Control: Show/hide tabs based on your preferences
- Playlist Management: Create, import, export, reorder, sort, multi-select, and grid view playlists
- Explorer Enhancement: Folder-based browsing with playlist creation from folders
- Genre Browsing: Dedicated genre tab with smart categorization
- Configure detailed library settings in Tuner > Theme Customization
- Additional display and sorting options available in app settings
- Scanning Tips: Understanding blacklist vs whitelist filtering modes
- Storage Management: Information about cache management
- Configure detailed filtering in Tuner > Media Scan after setup
- Review scan results and library statistics
- Configure automatic update checking
- Choose update channel (stable/beta)
- Set update notification preferences
- Enable background update downloads
- Review your configuration
- Start initial media scan
- Begin using Rhythm!
Rhythm requests the following permissions for optimal functionality:
| Permission | Why Needed | Where Used |
|---|---|---|
π Storage AccessREAD_EXTERNAL_STORAGE (API β€32)WRITE_EXTERNAL_STORAGE (API β€29)READ_MEDIA_AUDIOREAD_MEDIA_IMAGESREAD_MEDIA_VISUAL_USER_SELECTED |
Access music files and album artwork on your device | β’ Media library scanning β’ Music playback β’ Album art display β’ Playlist management β’ Metadata editing |
π NotificationsPOST_NOTIFICATIONS |
Show playback controls and update notifications | β’ Media notification controls β’ Update availability alerts β’ Background playback status |
πΆ Internet AccessINTERNETACCESS_NETWORK_STATE |
Fetch lyrics, artwork, and app updates | β’ LRCLib lyrics integration β’ Online album artwork β’ GitHub update checking β’ Deezer & YouTube Music APIs |
π§ Audio SettingsMODIFY_AUDIO_SETTINGS |
Control audio output and routing | β’ Audio focus management β’ Bluetooth device switching β’ Volume control integration β’ Equalizer support |
π± BluetoothBLUETOOTHBLUETOOTH_ADMIN (API β€30)BLUETOOTH_CONNECTBLUETOOTH_SCAN |
Connect to wireless audio devices | β’ Bluetooth speaker/headphone support β’ Audio output device selection β’ Wireless playback controls |
π² Install PackagesREQUEST_INSTALL_PACKAGES |
Install app updates automatically | β’ In-app APK installation β’ Automatic update deployment |
π² Home Screen WidgetsBIND_APPWIDGETUPDATE_APPWIDGET |
Display and update home screen widgets | β’ Legacy RemoteViews widgets β’ Modern Glance widgets β’ Real-time playback state β’ Background widget updates |
π΅ Media PlaybackFOREGROUND_SERVICEFOREGROUND_SERVICE_MEDIA_PLAYBACK |
Background music playback | β’ Continuous music playback β’ Lock screen controls β’ Background audio processing |
Privacy Note: Rhythm is fully FOSS-compliant and only uses standard media permissions. We removed
MANAGE_EXTERNAL_STORAGEandACCESS_MEDIA_LOCATIONas they're not needed for music playback. All permissions are used solely for the app's core functionality, and no personal data is ever uploaded.
Android 16 Update: Widget support now includes modern Glance framework with 9 responsive layouts (2x1 to 5x5), real-time state synchronization, and Material 3 design with dynamic theming.
- Launch the App: Open Rhythm from your app drawer
- Grant Permissions: Allow access to your music library
- Wait for Scan: Initial media scan may take a few minutes
- Start Playing: Browse your library and tap any song to play
- π Home Screen: Quick access to recently played, favorites, and recommendations
βΆοΈ Player: Full-screen player with lyrics, queue, and controls- π Library: Browse by songs, albums, artists, playlists, and folders
- π Search: Fast fuzzy search across your entire music collection
- π Queue: Manage playback queue and upcoming tracks
- βοΈ Settings: Customize appearance, audio, and behavior
- Play/Pause: Tap the play button or use notification controls
- Skip Tracks: Use next/previous buttons or swipe gestures
- Shuffle/Repeat: Access from player controls or notification with persistent modes
- Volume: Use device volume buttons or in-app slider with independent control
- Seek: Drag the progress bar or tap lyrics to jump to any position
- Queue Management: Add next, reorder, and manage upcoming tracks
- Sleep Timer: Set automatic playback stop time
- External Player: Switch to other music apps seamlessly
- Add to Playlists: Long-press songs to create or add to playlists with smart dialogs
- Edit Metadata: View and edit song information and album art
- Full file editing support with proper permission handling
- Changes are saved directly to audio files
- Supports batch operations and artwork editing
- Advanced Playlists: Reorder songs, sort by criteria, multi-select removal, grid view
- Genre Browsing: Explore music by genre with smart categorization
- Explorer: Folder-based browsing with playlist creation capabilities
- Import/Export: Full playlist import/export functionality
- Blacklist Folders: Exclude unwanted folders from your library
- Backup/Restore: Protect your playlists and settings
- Themes: Switch between light/dark modes, system default, and custom color schemes
- AutoEQ: Device-tuned audio presets for 6032+ devices with import/export
- Equalizer: Access 10-band professional equalizer for audio adjustments
- Player Customization: Customize progress bars, gestures, and player appearance
- Gestures: Control gesture usage on mini and full player
- Fonts: System fonts with ability to import custom fonts
- Carousel Styles: Reorder home screen sections and customize layouts
- Time & Home Formatting: Customize time display and home screen appearance
- Sleep Timer: Set automatic playback stop time
- Output Selection: Choose audio output device (speaker, Bluetooth, etc.)
- Default Playlists: Toggle visibility of system-generated playlists
- Add Widget: Long-press home screen β Widgets β Rhythm Music
- Resize Widget: Long-press widget β Drag handles to resize (2x1 to 5x5)
- Widget Types:
- Legacy Widget - RemoteViews with 7 sizes (extra small to 5x5)
- Glance Widget - Modern Material 3 with 9 responsive layouts
- Controls: Play/pause, skip next/previous directly from widget
- Real-Time Updates: Widget shows current song, artist, and album art
- Automatic Updates: Background WorkManager ensures fresh data
- Go to Settings β Apps β Rhythm β Permissions to grant manually
- Restart the app after granting permissions
- Check that storage access is enabled for your music folders
- Full Support: Edit metadata directly in audio files with proper permission handling
- What works:
- β Modify song title, artist, album, genre, year, and track number
- β Edit album artwork and embedded images
- β Batch operations for multiple files
- β Changes persist across app restarts and device reboots
- Permission Requirements:
- Requires storage permissions to modify files
- Go to Settings β Apps β Rhythm β Permissions to grant manually
- Restart the app after granting permissions
- Ensure music files are in accessible locations
- Check blacklist/whitelist settings in Settings β Library
- Try rescanning media from Settings β Library β Rescan Media
- Check audio output device selection
- Verify Bluetooth connection if using wireless audio
- Clear app cache if experiencing audio glitches
- Check internet connection for update downloads
- Enable "Install from unknown sources" for APK updates
- Download updates manually from our Releases page
- π± In-App Help: Access help from Settings β About β Help
- π¬ Community Support: Join our Telegram group
- π Report Issues: Use GitHub Issues for bugs
- π Documentation: Check our website for guides
| Category | Technology | Purpose |
|---|---|---|
| π¨ UI Framework | Jetpack Compose | Modern declarative UI toolkit for Android |
| π Design System | Material 3 | Latest Material Design components and theming |
| π΅ Audio Engine | Media3 ExoPlayer 1.9.0 | Professional-grade media playback |
| π² Widgets | Glance 1.1.1 | Modern reactive widgets with Material 3 |
| π» Language | Kotlin 100% | Modern, safe, and concise programming |
| ποΈ Architecture | MVVM + Clean | Separation of concerns and testability |
| β‘ Async | Coroutines & Flow | Reactive and efficient asynchronous programming |
| π State Management | StateFlow | Reactive UI state management |
| β° Background Work | WorkManager | Reliable background widget updates |
| π§ Navigation | Navigation Compose | Type-safe navigation between screens |
| πΌοΈ Image Loading | Coil | Efficient image loading and caching |
| π Networking | Retrofit + OkHttp | Type-safe HTTP client |
| π¦ Serialization | Gson | JSON parsing and serialization |
| π¨ Color Extraction | Palette | Dynamic color extraction from images |
| π Permissions | Accompanist | Compose utilities for runtime permissions |
| π§ Build System | Gradle KTS | Kotlin-based build configuration |
app/
βββ π± ui/
β βββ screens/ # Composable screens (Home, Player, Library, etc.)
β βββ components/ # Reusable UI components
β βββ navigation/ # Navigation graph and routes
β βββ theme/ # Material 3 theming and colors
βββ π΅ domain/
β βββ models/ # Data models (Song, Album, Artist, Playlist)
β βββ repository/ # Repository interfaces
β βββ usecases/ # Business logic use cases
βββ πΎ data/
β βββ local/ # Local data sources (MediaStore, Room)
β βββ remote/ # Remote data sources (APIs)
β βββ repository/ # Repository implementations
βββ πΌ services/
β βββ MusicService # Background music playback service
β βββ MediaNotification # Media notification handling
βββ π§ utils/ # Utility classes and helpers
Key Patterns:
- β MVVM (Model-View-ViewModel) - Clear separation of UI and business logic
- β Repository Pattern - Abstract data sources
- β Use Case Pattern - Encapsulate business logic
- β Dependency Injection - Loose coupling and testability
- β Observer Pattern - Reactive data flow with Flow and StateFlow
- β State Hoisting - Compose best practices for state management
Rhythm is built on the shoulders of giants. We use the following open source libraries:
Click to view all dependencies
| Library | Purpose | License |
|---|---|---|
| Jetpack Compose | Modern UI toolkit for Android | Apache 2.0 |
| Material 3 | Material Design components | Apache 2.0 |
| Media3 ExoPlayer | Media playback library | Apache 2.0 |
| Kotlin Coroutines | Asynchronous programming | Apache 2.0 |
| Kotlin Flow | Reactive streams | Apache 2.0 |
| AndroidX Navigation | Navigation components | Apache 2.0 |
| Coil | Image loading library | Apache 2.0 |
| Retrofit | Type-safe HTTP client | Apache 2.0 |
| OkHttp | HTTP client | Apache 2.0 |
| Gson | JSON serialization | Apache 2.0 |
| Accompanist Permissions | Permission handling | Apache 2.0 |
| AndroidX Palette | Color extraction | Apache 2.0 |
| AndroidX Core KTX | Kotlin extensions | Apache 2.0 |
| AndroidX Lifecycle | Lifecycle management | Apache 2.0 |
| Material Icons Extended | Comprehensive icon set | Apache 2.0 |
This project is licensed under GPL-3.0. Libraries used have their respective open source licenses, which permit use, reproduction, and distribution with proper attribution.
We're grateful to:
- Google - Android platform, Jetpack libraries, Material Design
- JetBrains - Kotlin programming language
- Square - Retrofit and OkHttp libraries
- Coil - Excellent image loading solution
- Open Source Community - For continuous inspiration and support
We believe great software is built by great communities! Here's how you can help make Rhythm even better:
π Quick Links:
- π Report Issues - Found a bug? Open an issue
- π‘ Suggest Features - Have an idea? Create a feature request
- π¨βπ» Code Contributions - Ready to contribute code? See our Contributing Guidelines
- π Translations - Help translate Rhythm to your language
- π¬ Community Support - Help other users in Discussions
- Read our Contributing Guidelines
- Check existing Issues and Pull Requests
- Join our Telegram Community for discussions
![]() Anjishnu Nandi Lead Developer & Project Architect Core development, UI/UX design, Head of Team ChromaHub |
We're grateful to these amazing individuals who have contributed to making Rhythm better:
- Izzy - Manages updates on IzzyOnDroid
- Christian - Collaboration & Project Booming's Lead Dev
- Alex - Spotify Canvas API Integration
- Google Material Design Team - For the beautiful Material You design system
- Android Open Source Project - For the amazing Android platform
- Jetpack Compose Team - For revolutionizing Android UI development
- Open Source Community - For continuous inspiration, libraries, and support
- All Beta Testers - For invaluable feedback and bug reports
- Our Users - For choosing Rhythm and making it better with your feedback
This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.
| Resource | Link |
|---|---|
| π Official Website | rhythmweb.vercel.app |
| π₯ Latest Release | Download APK |
| π GitHub Repository | cromaguy/Rhythm |
| π± IzzyOnDroid | F-Droid Repo |
| π± Obtainium | Add Source |
| π± OpenAPK | Download |
| π¬ Telegram Support | Join Group |
| π Issue Tracker | Report Bug |
| π‘ Discussions | Community Forum |








