Skip to content

W5DEV/music-shuffler

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

16 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐ŸŽต Music Shuffler

A fast, lightweight music player that creates instant random playlists from your music library. Built in Rust for maximum performance and reliability.

Windows Rust GitHub release

โœจ Features

  • ๐ŸŽฒ Instant Random Playlists - Generate 50 random songs in seconds
  • โšก Lightning Fast - Optimized for huge music libraries (100GB+)
  • ๐Ÿ”„ Smart Caching - First scan takes time, every launch after is instant
  • ๐ŸŽต Multi-Format Support - MP3, FLAC, OGG, WAV, M4A, AAC
  • ๐Ÿ–ผ๏ธ Album Art Display - Beautiful album artwork when available
  • ๐Ÿ“Š Real-time Progress - Live progress bars and time tracking
  • ๐Ÿ’พ Remembers Everything - Your directory, preferences, and metadata
  • ๐ŸŽฏ Zero Configuration - Just select your music folder and go

๐Ÿš€ Quick Start

Download & Run

  1. Download the latest release
  2. Extract music-shuffler-windows.zip
  3. Run music-shuffler.exe
  4. Select your music directory
  5. Click "Generate Playlist"
  6. Enjoy your music! ๐ŸŽถ

First Launch Experience

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                    ๐ŸŽต Music Shuffler                        โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚           Select a music directory to get started          โ”‚
โ”‚                                                            โ”‚
โ”‚  [Select Directory]  [Generate Playlist]                   โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ Playlist                โ”‚  Now Playing                     โ”‚
โ”‚                         โ”‚                                  โ”‚
โ”‚ โ™ช Bohemian Rhapsody     โ”‚  [Album Art]                     โ”‚
โ”‚   Hotel California      โ”‚                                  โ”‚
โ”‚   Stairway to Heaven    โ”‚  Bohemian Rhapsody               โ”‚
โ”‚   Sweet Child O' Mine   โ”‚  Queen                           โ”‚
โ”‚   Free Bird             โ”‚  A Night at the Opera            โ”‚
โ”‚   ... (45 more songs)   โ”‚                                  โ”‚
โ”‚                         โ”‚  โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘ 2:34 / 5:55        โ”‚
โ”‚                         โ”‚        โฎ  โธ  โญ                  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๐Ÿ“‹ System Requirements

  • OS: Windows 10 or later (64-bit)
  • RAM: 100MB (scales with library size)
  • Storage: 25MB + cache space
  • Audio: Any Windows-compatible audio device

๐ŸŽฏ Performance

Library Size First Scan Subsequent Launches Playlist Generation
1GB (500 songs) 5-10 seconds 0.1 seconds 0.1 seconds
10GB (5,000 songs) 15-30 seconds 0.2 seconds 0.2 seconds
100GB (50,000 songs) 30-60 seconds 0.5 seconds 0.3 seconds

Performance scales beautifully thanks to intelligent caching and parallel processing.

๐ŸŽต Supported Formats

Format Metadata Album Art Playback Quality
MP3 โœ… Full โœ… Yes High
FLAC โœ… Full โœ… Yes Lossless
OGG โœ… Full โœ… Yes High
WAV โš ๏ธ Limited โŒ No Lossless
M4A โœ… Full โœ… Yes High
AAC โœ… Full โš ๏ธ Limited High

๐Ÿ”ง How It Works

Intelligent Scanning

  1. Parallel Discovery - Uses all CPU cores to find music files
  2. Smart Filtering - Only processes actual music files
  3. Metadata Extraction - Reads title, artist, album, and duration
  4. Cache Building - Saves everything for instant future access

Smart Caching

  • File List Cache - Remembers all discovered music files
  • Metadata Cache - Stores extracted song information
  • Change Detection - Only re-processes modified files
  • Cross-Session - Cache persists between app launches

Audio Engine

  • Rust-Native - Built with the Rodio audio library
  • Low Latency - Minimal delay between track changes
  • Robust Decoding - Handles various encoding qualities
  • Error Recovery - Gracefully skips corrupted files

๐Ÿ› ๏ธ Troubleshooting

Audio Issues

No sound when playing:

"Device not available" error:

  • Close other audio applications
  • Check default audio device in Windows
  • Try running as Administrator (once)

File Issues

"Invalid main_data offset" error:

Error playing track 'Song Name': mpa: invalid main_data offset
This file may be corrupted. Try re-encoding or replacing it.

Solutions:

  • Re-encode with modern tools (VLC, Audacity, FFmpeg)
  • Download from reputable sources
  • Check file integrity

Performance Issues

Slow first scan:

  • Normal for large libraries (builds cache for future speed)
  • Monitor console output for progress
  • Close other applications during first scan

High memory usage:

  • Expected with very large libraries (50GB+)
  • Memory usage scales with library size
  • Consider splitting huge libraries

๐Ÿ—๏ธ Building from Source

Prerequisites

# Install Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

# Clone repository
git clone https://github.com/W5DEV/music-shuffler.git
cd music-shuffler

Local Build

# Build for current platform
cargo build --release

# Run locally
cargo run

Windows Cross-Compilation (from macOS/Linux)

# One-time setup
./scripts/build-windows.sh

GitHub Actions

  • Automatic builds on every push
  • Windows executables available in Actions artifacts
  • Release builds triggered by tags

๐Ÿค Contributing

We welcome contributions! Here's how to help:

  1. ๐Ÿ› Bug Reports - Open an issue with details
  2. ๐Ÿ’ก Feature Requests - Suggest improvements
  3. ๐Ÿ”ง Code Contributions - Submit pull requests
  4. ๐Ÿ“– Documentation - Improve guides and docs
  5. ๐Ÿงช Testing - Test on different systems

Development Setup

git clone https://github.com/W5DEV/music-shuffler.git
cd music-shuffler
cargo run

๐Ÿ“Š Architecture

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚   GUI (eGUI)    โ”‚    โ”‚  Audio (Rodio)  โ”‚    โ”‚ Files (WalkDir) โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค    โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค    โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ โ€ข Playlist UI   โ”‚    โ”‚ โ€ข MP3/FLAC/OGG  โ”‚    โ”‚ โ€ข Parallel Scan โ”‚
โ”‚ โ€ข Progress Bar  โ”‚    โ”‚ โ€ข Real-time     โ”‚    โ”‚ โ€ข Smart Filter  โ”‚
โ”‚ โ€ข Controls      โ”‚    โ”‚ โ€ข Low Latency   โ”‚    โ”‚ โ€ข Recursive     โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
         โ”‚                       โ”‚                       โ”‚
         โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                                 โ”‚
                    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
                    โ”‚ Metadata Cache  โ”‚
                    โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
                    โ”‚ โ€ข JSON Storage  โ”‚
                    โ”‚ โ€ข Change Track  โ”‚
                    โ”‚ โ€ข Fast Lookup   โ”‚
                    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๐ŸŽ–๏ธ Why Music Shuffler?

vs. Other Players

  • Winamp/VLC: More features, but complex setup
  • Spotify: Streaming, but requires internet/subscription
  • Windows Media Player: Built-in, but slow and dated
  • Music Shuffler: Simple, fast, offline, just works

Perfect For:

  • ๐Ÿ  Local Music Libraries - Your own MP3/FLAC collection
  • ๐ŸŽฒ Discovery - Rediscover forgotten songs in huge libraries
  • โšก Speed - When you want music NOW, not after setup
  • ๐Ÿ”’ Privacy - No tracking, no internet required
  • ๐Ÿ’ป Low Resource - Minimal impact on system performance

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

๐Ÿ™ Acknowledgments

  • Rust Community - For amazing crates and ecosystem
  • eGUI - For the beautiful, immediate-mode GUI framework
  • Rodio - For reliable cross-platform audio
  • Contributors - Everyone who helped improve this project

Made with โค๏ธ and Rust

Music Shuffler: Because sometimes you just want to press play and discover great music. ๐ŸŽต

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published