PixelPlayer ๐ต
July 13, 2026 ยท View on GitHub
A beautiful, feature-rich music player for Android
Built with Jetpack Compose and Material Design 3
โผ๏ธ DISCLAIMER
- No fork of this project will recieve support, if you use a fork, ask the forker to support you.
โจ Features
๐จ Modern UI/UX
- Material You - Dynamic color theming that adapts to your wallpaper
- Smooth Animations - Fluid transitions and micro-interactions
- Customizable UI - Adjustable corner radius and navigation bar settings
- Dark/Light Theme - Automatic or manual theme switching
- Album Art Colors - Dynamic color extraction from album artwork
๐ต Powerful Playback
- Media3 ExoPlayer - Industry-leading audio engine with FFmpeg support
- Background Playback - Full media session integration
- Queue Management - Drag-and-drop reordering
- Shuffle & Repeat - All playback modes supported
- Gapless Playback - Seamless transitions between tracks
- Custom Transitions - Configure crossfades between songs
๐ Library Management
- Multi-format Support - MP3, FLAC, AAC, OGG, WAV, and more
- Browse By - Songs, Albums, Artists, Genres, Folders
- Smart Artist Parsing - Configurable delimiters for multi-artist tracks
- Album Artist Grouping - Proper album organization
- Folder Filtering - Choose which directories to scan
๐ Discovery & Organization
- Full-text Search - Search across your entire library
- Daily Mix - AI-powered personalized playlist based on listening habits
- Playlists - Create and manage custom playlists
- Statistics - Track your listening history and habits
๐ค Lyrics
- Synchronized Lyrics - LRC format via LRCLIB API
- Lyrics Editing - Modify or add lyrics to your tracks
- Scrolling Display - Follow along as you listen
๐ผ๏ธ Artist Artwork
- Deezer Integration - Automatic artist images from Deezer API
- Smart Caching - Memory (LRU) + database caching for offline access
- Fallback Icons - Beautiful placeholders when images unavailable
๐ฒ Connectivity
- Chromecast - Stream to your TV or smart speakers
- Android Auto - Full Android Auto support for in-car playback (Soon)
- Widgets - Home screen control with Glance widgets
โ๏ธ Advanced Features
- Tag Editor - Edit metadata with TagLib (MP3, FLAC, M4A support)
- AI Playlists - Generate playlists with AI (Supports Gemini, Deepseek, OpenAI, etc.)
๐ ๏ธ Tech Stack
| Category | Technology |
|---|---|
| Language | Kotlin 100% |
| UI Framework | Jetpack Compose |
| Design System | Material Design 3 |
| Audio Engine | Media3 ExoPlayer + FFmpeg |
| Architecture | MVVM with StateFlow/SharedFlow |
| DI | Hilt |
| Database | Room |
| Networking | Retrofit + OkHttp |
| Image Loading | Coil |
| Async | Kotlin Coroutines & Flow |
| Background Tasks | WorkManager |
| Metadata | TagLib |
| Widgets | Glance |
๐ฑ Requirements
- Android 11 (API 30) or higher
- 6GB RAM recommended for smooth performance
๐ Getting Started
Prerequisites
- Android Studio Ladybug | 2024.2.1 or newer
- Android SDK 29+
- JDK 11+
Installation
-
Clone the repository
git clone https://github.com/theovilardo/PixelPlayer.git -
Open in Android Studio
- Open Android Studio
- Select "Open an Existing Project"
- Navigate to the cloned directory
-
Sync and Build
- Wait for Gradle to sync dependencies
- Build the project (Build โ Make Project)
-
Run
- Connect a device or start an emulator
- Click Run (โถ๏ธ)
โฌ๏ธ Download
๐ Project Structure
app/src/main/java/com/theveloper/pixelplay/
โโโ data/
โ โโโ database/ # Room entities, DAOs, migrations
โ โโโ model/ # Domain models (Song, Album, Artist, etc.)
โ โโโ network/ # API services (LRCLIB, Deezer)
โ โโโ preferences/ # DataStore preferences
โ โโโ repository/ # Data repositories
โ โโโ service/ # MusicService, HTTP server
โ โโโ worker/ # WorkManager sync workers
โโโ di/ # Hilt dependency injection modules
โโโ presentation/
โ โโโ components/ # Reusable Compose components
โ โโโ navigation/ # Navigation graph
โ โโโ screens/ # Screen composables
โ โโโ viewmodel/ # ViewModels
โโโ ui/
โ โโโ glancewidget/ # Home screen widgets
โ โโโ theme/ # Colors, typography, theming
โโโ utils/ # Extensions and utilities
๐ค Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
๐ License
This project is licensed under a Proprietary License - see the LICENSE file for details.
Portions contributed before 2026-05-12 remain available under the MIT License; see THIRD_PARTY_NOTICES.md.
Made with โค๏ธ by theovilardo