A full-featured, touch-friendly music player designed for Raspberry Pi with a 480x320 display.
- Landing Menu: Albums, Artists, Favorites
- Album Browser: View all albums organized by metadata
- Artist Browser: Browse music by artist
- Favorites: Quick access to your favorite albums
- Album Detail: See all tracks in an album
- Now Playing: Full-screen playback with album art
- Auto-fullscreen: Automatically fits your display size
- Dynamic sizing: All UI elements scale to your screen
- Auto-advance: Next track plays automatically
- Favorites system: Mark albums you love
- Metadata-based: Organizes by tags, not folders
- Album art: Beautiful display of embedded artwork
- Touch-friendly: Large buttons and list items
- Modern dark theme with gradients
- Red accent colors
- Glass morphism effects
- Smooth animations
- Circular control buttons
For Raspberry Pi/Linux:
sudo apt-get update
sudo apt-get install python3-pyqt5 python3-vlc
pip3 install python-vlc mutagenFor Windows:
pip install PyQt5 python-vlc mutagen pycaw comtypeschmod +x install.sh
./install.sh# Copy to home directory
cp music_player_app.py ~/music_player_app.py
chmod +x ~/music_player_app.py
# Run manually
python3 ~/music_player_app.py# Copy service file
sudo cp music-player.service /etc/systemd/system/
# Enable service
sudo systemctl daemon-reload
sudo systemctl enable music-player.service
sudo systemctl start music-player.service- Landing Page: Choose Albums, Artists, or Favorites
- List View: Select an album from the list
- Album Detail: View and select individual tracks
- Now Playing: Control playback
- Back buttons: Navigate to previous screen
- Track selection: Tap any track to play
- Play/Pause: Large red button
- Previous/Next: Side buttons
- Favorites: Heart icon on album detail page
ESC: Go back / Exit applicationSPACE: Play/Pause
By default, the app looks for music in ~/Music. To change this, edit the last line:
music_folder = os.path.expanduser("~/Music")The app is configured for ALSA device hw:1,0. To change:
self.instance = vlc.Instance([
"--aout=alsa",
"--alsa-audio-device=hw:1,0" # Change this
])The app automatically detects and adapts to your screen size. No configuration needed!
# List audio devices
aplay -l
# Test VLC
cvlc --aout=alsa --alsa-audio-device=hw:1,0 test.mp3- Make sure X server is running
- Check display resolution:
xrandr - Verify DISPLAY variable:
echo $DISPLAY
# Check service status
sudo systemctl status music-player
# View logs
journalctl -u music-player -f- FLAC
- MP3
- M4A
- OGG
- Favorites: Stored in
~/.music_player_favorites.json - Music: Reads from your specified directory
- Metadata: Extracted from audio file tags
music_player_app.py: Main applicationmusic-player.service: Systemd service fileinstall.sh: Installation script
MusicPlayerApp: Main application window- Pages: Landing, Albums, Artists, Favorites, Album Detail, Now Playing
Free to use and modify for personal projects.
Built for Raspberry Pi music enthusiasts!