A powerful, feature-rich offline music player with AI-powered playlists, intelligent EQ, crossfading, DJ mode, and advanced analysis
- Multi-Format Support: MP3, WAV, OGG, M4A, FLAC, AAC, WMA
- Advanced Playlist Management: Load, shuffle, loop (all/one), search, smart filtering
- Smart Folder Loading: One-click folder selection with auto-reload on startup
- Folder Persistence: Remembers your music folder across sessions via IndexedDB
- Hardware Media Controls: Works with keyboard shortcuts, media keys, headphone buttons, lock screen controls
- Persistent Storage: Remembers your playlist, settings, folder location, and custom metadata across sessions
- Background Playback: Continues playing when tab/app is minimized (PWA mode)
- Seamless Crossfade: Intelligent crossfading with BPM-aware start points and smooth transitions
- Jump to Current: Quickly scroll to the currently playing track in your playlist
- Playlist Search: Fast search through 10+ tracks with real-time filtering
- 4 Professional Visualizer Modes:
- ๐๏ธ Bars - Classic frequency spectrum bars with smooth gradients
- โญ Circular - Radial spectrum analyzer with pulsing center
- ๐ Waveform - Dual mirrored wave display
- โจ Particles - Interactive particle system that reacts to music
- Mood-Based Visualizer Colors: Real-time color adaptation based on track analysis (energetic=red/orange, calm=blue, bright=yellow, dark=purple)
- BPM-Synced Visual Effects: Visualizer pulses and animations sync with detected BPM
- Energy-Modulated Animations: Animation intensity scales with track energy levels
- Fullscreen Visualizer: Immersive full-window visualization with auto-hide controls
- Fullscreen Lyrics Mode: Dedicated lyrics view with edge visualizer effects
- Dynamic Backgrounds: Album art colors automatically influence UI theme
- Custom Backgrounds: Upload your own background images or use URLs
- Album Art Extraction: Automatic extraction and display from ID3 tags with color analysis
- WebVTT Support: Time-synced lyrics with precise millisecond timing
- Auto-Scroll: Automatically follows current playback position
- Click-to-Jump: Tap any lyric line to seek to that position
- Export Options: Download lyrics as text file or copy to clipboard
- Fullscreen Lyrics View: Dedicated immersive lyrics mode with edge-based visualizer
- ๐ Automatic Lyrics Fetcher: Standalone tool to bulk-download synced lyrics from LRCLIB API
- Lyrics Validation: Automatic VTT file validation with error reporting
- 10 Professional EQ Presets:
- Flat (Reference)
- Bass Boost (Modern genres)
- Treble Boost (Dull recordings)
- Rock (Aggressive midrange)
- Jazz (Warmth + air)
- Electronic (V-curve)
- Classical (Minimal, natural)
- Acoustic (Midrange focus)
- Podcast/Speech (Intelligibility)
- Vocal Clarity (Smile curve)
- 3-Band Manual EQ: Bass (200Hz), Mid (1kHz), Treble (3kHz) with ยฑ12dB range
- ๐ Auto-EQ System: Intelligent preset selection based on analysis
- Genre-based selection with audio analysis override
- Context-aware scoring (35+ confidence threshold)
- Vintage recording detection and handling
- Speech/podcast detection
- BPM and key compatibility checking
- Volume Control: Slider, keyboard shortcuts, mouse wheel scroll support
- Mute Toggle: Quick mute/unmute with volume memory
- ๐ Deep Music Analysis Tool: Standalone HTML tool for comprehensive track analysis
- Analyzes ENTIRE track duration (not just samples)
- BPM detection (40-200 BPM range)
- Energy calculation (LUFS-based, EBU R128 inspired)
- Spectral centroid analysis
- Dynamic range measurement (crest factor in dB)
- 6-band frequency analysis (sub-bass to brilliance)
- Vocal prominence detection
- Vintage recording detection
- Mood classification (energetic, calm, bright, dark, neutral)
- Tempo classification (slow, moderate, fast, very-fast)
- Exports analysis as .txt files
- Batch processing with progress tracking
- ZIP download for all analysis files
- Analysis Text Parser: Loads pre-generated .txt analysis files
- Background Analysis: Automatically analyzes tracks loaded without deep analysis
- Analysis Caching: Saves results to memory for instant playlist generation
- Custom Metadata Editor: Edit title, artist, album, year, genre, composer, comments
- Persistent Custom Tags: Survives browser restarts using localStorage
- Custom Metadata Storage: File-based storage system (name + size keys)
- ID3 Tag Reading: Automatic extraction from audio files (via jsmediatags)
- Multi-Format Support: MP3, M4A, FLAC, OGG, WAV, AAC, WMA metadata parsing
- Playlist Integration: Updates display instantly across all views
- Album Art Extraction: Automatic extraction and display from ID3 tags
- Metadata Preview: Live preview in editor modal
- AI-Powered Analysis: Analyzes BPM, energy, mood, key, danceability, loudness
- Enhanced Mood Detection: Considers tempo (BPM) alongside energy and spectral brightness
- 8 Intelligent Templates:
- ๐ช High Energy Workout - Energetic tracks to power through workouts
- ๐ Focus & Study - Calm, consistent tracks for concentration
- ๐ง Seamless DJ Mix - BPM and key-matched for smooth transitions
- โ๏ธ Gentle Wake Up - Gradually increasing energy
- ๐ Party Mix - High energy, danceable tracks
- ๐ Chill Vibes - Relaxed, mellow atmosphere
- ๐ Running Pace - Consistent tempo for running (150-180 BPM)
- ๐ด Sleep & Relaxation - Descending energy for winding down
- Analysis Caching: Save analysis results to memory for instant playlist generation
- Enhanced Visualizer Integration: Mood analysis influences visualizer colors and effects
- Detailed Stats: Track count, duration, average BPM, energy levels, mood distribution
- Playlist Preview: Review generated playlist before loading
- One-Click Loading: Load smart playlist directly to player
- ๐ Crossfade Manager: Intelligent track transitions
- Configurable fade duration (1-10 seconds)
- BPM-aware crossfade timing
- Smart intro detection and skipping
- Key compatibility checking
- Dual audio system with preloading
- Smooth volume ramping
- ๐ DJ Mode: Automatic playlist reordering
- BPM and key matching for seamless transitions
- Harmonic mixing using Camelot wheel
- Mood compatibility checking
- Energy flow optimization
- Danceability consistency
- Automatic mix generation
- Original playlist restoration
- Touch Gestures:
- Swipe right/left on cover art for previous/next track
- Pull-to-refresh on playlist to reload folder
- Long-press on tracks for context menu
- Haptic Feedback: Physical button feel on all interactions (light, medium, heavy, success, error)
- Responsive UI: Adapts perfectly to any screen size
- PWA Support: Install as native app on iOS/Android
- Status Bar Auto-Hide: Fullscreen experience on Android
- Mobile Context Menu: Long-press for track options
- Gesture Indicators: Visual hints for swipe gestures
- Optimized Button Sizes: 48px minimum touch targets
- Extension Mode: Runs as Chrome extension with dedicated window
- PWA Mode: Installable web app with offline support
- Folder Persistence: Remembers last used folder with auto-reload
- Optimized Keyboard Shortcuts: Chrome OS-specific shortcuts
- Hybrid Input Support: Optimized for touchscreen + keyboard usage
- Platform Detection: Automatic Chrome OS feature detection
- Picture-in-Picture: Floating mini-player always on top (Chrome/Edge)
- Multi-strategy fallback system for maximum compatibility
- Main video, custom stream, and audio-only modes
- Automatic video cleanup and resource management
- Sticky Mini Player: Keeps controls visible while scrolling
- 3 View Modes: Full, Compact, Mini for different workflows
- Debug Console: Real-time logging for troubleshooting
- Performance Manager: Adaptive frame rates based on visibility and mode
- Color Extraction: Dominant color extraction from album art with caching (50-item LRU cache)
- Drag & Drop: Drop audio/VTT files anywhere to load instantly
- Error Recovery System: Automatic retry with exponential backoff
- Custom Progress Bar: Click anywhere to seek, smooth scrubbing
- Playlist Status: Real-time track count, loop mode, shuffle status
- Volume Scroll: Mouse wheel control over volume slider
- Keyboard Shortcuts: 15+ shortcuts for efficient control
- Modular Architecture: Cleanly separated components for audio processing, UI management, and file handling.
- UI Manager: Centralized UI interaction system with non-intrusive toast notifications.
- Error Recovery System: Circuit breaker pattern and automatic retries with global error reporting.
- Service Worker: Offline functionality with cache-first strategy.
- GitHub Pages Support: Automatic base path detection and configuration.
- Folder Handle Persistence: IndexedDB storage with permission verification.
- Custom Metadata Storage: localStorage-based with size/name keys.
- Analysis Cache: In-memory caching with localStorage backup.
- Color Cache: LRU cache (50 items) for album art colors.
- Playlist Persistence: localStorage with timestamp tracking.
- Auto-Reload Preference: Remember folder auto-load setting.
- Open
index.htmlin any modern browser - Click "๐ Load Music & Lyrics"
- Select your music files (+ optional .vtt lyric files)
- Enjoy! ๐
- Click "๐ Select Music Folder"
- Grant permission when prompted
- Auto-loads all music in folder
- Next time: Automatically reloads last folder on startup
- Open
deep-music-analysis.htmlin browser - Select your music folder
- Click "Analyze All Songs" (analyzes entire tracks)
- Wait for processing (30-60s per song)
- Download analysis files as ZIP
- Extract .txt files to music folder
- Load in main player - enhanced features activate!
Android:
- Chrome โ Menu (โฎ) โ "Add to Home Screen"
- Tap icon to launch fullscreen app
iOS:
- Safari โ Share โ "Add to Home Screen"
- Tap icon to launch
- Chrome โ
chrome://extensions - Enable "Developer mode"
- Click "Load unpacked"
- Select project folder
- Click extension icon to open
| Key | Action |
|---|---|
| Space | Play/Pause |
| N | Next track |
| P | Previous track |
| M | Mute/Unmute |
| โ | Skip forward 5s |
| โ | Rewind 5s |
| C | Cycle view mode (Full โ Compact โ Mini) |
| S | Toggle sticky player |
| F | Picture-in-Picture |
| V | Fullscreen visualizer |
| D | Debug panel |
| O | Open folder picker |
| ESC | Close fullscreen modes |
Chrome OS Exclusive:
- Alt+M: Toggle mini player
- Ctrl+Shift+L: Open folder picker
Method 1: File Picker
Click "๐ Load Music & Lyrics"
โ Select files (Ctrl+Click for multiple)
โ Include .vtt files for lyrics
โ Include .txt analysis files for enhanced features
โ Player loads automatically
Method 2: Folder Picker (Desktop/Chrome OS only)
Click "๐ Select Music Folder"
โ Grant permission
โ All music auto-loads
โ Enable auto-reload to remember folder
โ Click "๐๏ธ Forget Folder" to reset
Method 3: Drag & Drop
Drag music files onto page
โ Drop anywhere
โ Instant load
Using the Analysis Tool:
- Open
deep-music-analysis.html - Select your music folder (MP3, M4A, FLAC, WAV, OGG)
- Click "Analyze All Songs"
- Wait for comprehensive analysis (entire track duration)
- Download generated .txt files as ZIP
- Extract ZIP to your music folder
- Load music in main player
What Gets Analyzed:
- Duration: Total track length
- BPM: Tempo detection (40-200 BPM)
- Key: Musical key detection
- Tempo: Classification (slow/moderate/fast/very-fast)
- Mood: Enhanced detection (energetic/calm/bright/dark/neutral)
- Energy (LUFS): Professional loudness measurement
- Danceability: Beat consistency and groove
- Loudness: Perceptual loudness
- Spectral Centroid: Brightness measurement
- Vocal Prominence: Voice detection ratio
- Dynamic Range: Crest factor in dB
- Frequency Bands: 6-band analysis (sub-bass to brilliance)
- Vintage Detection: Identifies old recordings
Benefits of Deep Analysis:
- Enhanced visualizer with mood-based colors
- BPM-synced visual effects
- Accurate Auto-EQ preset selection
- Better smart playlist generation
- Mood indicators in playlist
- DJ mode compatibility
-
Name your VTT file to match audio:
Song.mp3 Song.vtt โ Must match exactly! -
VTT Format:
WEBVTT 00:00:00.000 --> 00:00:05.000 First line of lyrics 00:00:05.000 --> 00:00:10.000 Second line of lyrics -
Load together with music files
- Open
lyrics-fetcher.htmlin your browser - Click "๐ Select Music Folder"
- Choose your music folder
- Click "๐ค Fetch Lyrics for All Songs"
- Wait for automatic processing (uses LRCLIB API)
- Download generated VTT files as ZIP
- Extract ZIP and place VTT files in your music folder
- Reload music player - lyrics appear automatically!
Quick Presets:
- Click dropdown โ Select preset
- Instant apply (saved automatically)
Manual Adjustment:
- Drag vertical sliders
- Bass: Low frequencies (drums, bass)
- Mid: Vocals, guitars
- Treble: High frequencies (cymbals, hi-hats)
- Reset: Click "Reset" button
๐ Auto-EQ Mode:
- Click "๐๏ธ Auto-EQ" button to enable
- Player automatically selects optimal preset per track
- Based on genre tags and audio analysis
- Respects vintage recordings (uses flat or gentle presets)
- Adapts to speech content (uses podcast preset)
- 35% confidence threshold for activation
- Hover over track in playlist
- Click โ๏ธ (edit button)
- Modify title, artist, album, year, genre, composer, comments
- Preview changes in real-time
- Click "๐พ Save Changes"
- Changes persist across sessions via localStorage
- Custom metadata stored by filename + size
- Click "๐ง Smart Playlists" button
- Analyze your music library (one-time process)
- Wait for enhanced mood detection with tempo analysis
- Choose a playlist template:
- Workout, Study, DJ Mix, Wake Up, Party, Chill, Running, Sleep
- Review generated playlist with detailed stats
- Load to main player with one click
- Enhanced: Visualizer adapts to playlist mood
๐ Benefits of Smart Playlists:
- Mood-based visualizer colors
- BPM-synced effects
- Energy-modulated animations
- Perfect for different activities
- Saves analysis cache for future use
Crossfade:
- Click "๐๏ธ Crossfade" to enable
- Tracks blend smoothly (2-5 seconds)
- BPM-aware start points
- Skips quiet intros on high-energy tracks
- Adjustable duration (1-10 seconds)
DJ Mode:
- Click "๐ง DJ Mode" to enable
- Playlist automatically reordered for seamless mixing
- BPM and key matching
- Harmonic mixing (Camelot wheel)
- Mood compatibility
- Click again to restore original order
- Click "๐จ Background"
- Choose:
- "๐ค Upload Image" โ Select file (under 5MB)
- "๐ Use Image URL" โ Paste link
- Preview before applying
- Reset anytime to default gradient
- Click "๐ Fullscreen Visualizer" (or press V)
- ๐ Enhanced Features:
- Mood-based color schemes (red=energetic, blue=calm, etc.)
- BPM-synced pulses
- Energy-modulated animation speed
- Switch modes: Bars / Circular / Waveform / Particles
- Controls:
- Auto-hide after 3 seconds
- Move mouse to reveal
- ๐๏ธ button to force hide/show
- Navigate: Previous/Next/Play/Pause
- Close: โ button or press ESC
- Click "๐ค Fullscreen Lyrics"
- Features:
- Edge-based visualizer effects
- Auto-scroll to current line
- Click any line to jump
- Navigate: Previous/Next buttons at bottom
- Close: โ button or press ESC
- All features visible
- Visualizer, EQ, lyrics, playlist
- Best for desktop
- Hides visualizer, EQ, lyrics
- Shows player essentials + playlist
- Good for multitasking
- Minimal: Now playing + progress bar only
- Maximum space savings
- Perfect for background music
Toggle: Click "๐ Full View" button or press C
Enable sticky mode:
- Click "๐ Sticky Off"
- Player sticks to bottom of window
- Stays visible while scrolling
- Perfect with mini mode
- Press S to toggle
Use case: Browse playlist while controlling playback
- Click "๐บ Float"
- Creates draggable mini window
- Always on top of other windows
- Shows track info and visualizer
- Multi-strategy fallback system for maximum compatibility:
- Primary: Uses main video element
- Fallback 1: Creates custom video stream
- Fallback 2: Minimal audio-only approach
- Automatic resource cleanup
- Works on Chrome, Edge, and Chrome OS
- Press D or click "๐ Debug"
- Shows real-time console logs
- Displays metadata extraction info
- Analysis status and errors
- Helpful for troubleshooting
- Adaptive Frame Rates: Adjusts based on visibility
- Tab Hidden: Reduces CPU usage when tab not visible
- Compact/Mini Mode: Disables visualizer to save resources
- Smart Caching: Color extraction, analysis results, metadata
- Canvas Performance: Optimized drawing algorithms
New: Mood-based visual effects!
- Energetic tracks: Red/orange color scheme with strong pulses
- Calm tracks: Blue color scheme with gentle waves
- Bright tracks: Yellow/gold colors with sparkles
- Dark tracks: Purple/indigo colors with deep effects
- Neutral: Default red scheme
How it works:
- Track is analyzed for mood (energy + BPM + brightness)
- Mood classification influences visualizer colors
- BPM affects pulse speed and animation intensity
- Energy level controls visualizer sensitivity
- Real-time synchronization with music analysis
| Gesture | Action |
|---|---|
| Swipe Right on cover art | Previous track |
| Swipe Left on cover art | Next track |
| Pull Down on playlist | Refresh folder |
| Long Press on track | Context menu (Play Now / Add to Queue / Show Info) |
| Tap lyric line | Jump to that time |
Haptic Feedback Types:
- Light: Play/pause, volume changes
- Medium: Track changes
- Heavy: Long press detection
- Success: Playlist loaded
- Error: Operation failed
- Use FLAC or high-bitrate MP3 (320kbps)
- Enable Auto-EQ for intelligent preset selection
- Use Bass Boost preset for EDM/Electronic
- Use Vocal preset for podcasts
- Use Classical preset for orchestral music
- Use the Lyrics Fetcher tool for bulk downloads
- Manual VTT files: Match filename exactly with audio
- Create VTT files with proper timestamps (HH:MM:SS.mmm)
- Example:
Song.mp3needsSong.vtt(exact match) - Any filename difference prevents VTT matching
- Always run deep analysis for best experience
- Enhanced visualizer with mood colors
- BPM-synced effects
- Accurate Auto-EQ
- Better smart playlists
- Clear analysis cache (
musicAnalysisCachein localStorage) after updates
- Improved Mood Detection: Uses tempo + energy + brightness
- Analyze your library once, reuse forever
- Save analysis cache for instant generation
- Try different templates for same music
- DJ Mode works best with analyzed tracks
- Enable both for ultimate DJ experience
- DJ Mode auto-disables shuffle (incompatible)
- Crossfade respects track intros and BPM
- Works best with similar genres
- DJ Mode uses Camelot wheel for harmonic mixing
- Use Compact or Mini mode if visualizer lags
- Close unused browser tabs
- Disable visualizer in settings for maximum battery life
- Smart Playlists: Analyze in batches if you have 100+ tracks
- Deep analysis: Process overnight for large libraries
- Browser cache: ~50 tracks (color cache)
- Folder mode: Unlimited (direct file access)
- Playlists persist in localStorage
- Custom metadata stored separately by file
- Analysis cache in memory + localStorage backup
- IndexedDB for folder handles
- All processing happens locally on your device
- No data sent to servers (except LRCLIB for lyrics)
- Music files never leave your device
- No tracking, no analytics, no ads
- Analysis files stay local
| Browser | Desktop | Mobile | Features |
|---|---|---|---|
| Chrome | โ Full | โ Full | All features including PiP, folder access |
| Edge | โ Full | โ Full | All features including PiP, folder access |
| Firefox | โ Most | โ Most | No folder picker, PiP support varies |
| Safari | No folder picker, no PiP, basic features only |
Recommended: Chrome 86+ or Edge 86+ for best experience
Minimum Requirements:
- ES6+ JavaScript support
- Web Audio API
- Canvas API
- FileReader API
- LocalStorage API
- Media Session API (for background playback)
โโโ index.html # Main app HTML
โโโ style.css # All styling
โโโ script.js # Main app logic (2000+ lines)
โ
โโโ Core Audio:
โโโ audio-presets-manager.js # 10 EQ presets with professional curves
โโโ visualizer-manager.js # 4-mode visualizer (enhanced with mood)
โโโ performance-manager.js # Adaptive frame rates
โ
โโโ Metadata & Parsing:
โโโ metadata-parser.js # Multi-format ID3 reader (MP3/M4A/FLAC/OGG/WAV/AAC/WMA)
โโโ vtt-parser.js # Lyrics parsing with validation
โโโ metadata-editor.js # Custom metadata editing UI
โโโ analysis-text-parser.js # Deep analysis .txt file parser
โ
โโโ Smart Features:
โโโ music-analyzer.js # BPM, energy, mood, key detection
โโโ smart-playlist-generator.js # 8 AI playlist templates
โโโ auto-eq-manager.js # Intelligent EQ preset selection
โโโ crossfade-manager.js # Seamless track transitions
โโโ dj-mode-manager.js # Automatic playlist reordering
โ
โโโ UI & UX:
โโโ custom-background.js # Background image manager
โโโ mobile.js # Touch gestures + haptics
โโโ error-recovery.js # Exponential backoff retry
โโโ config-constants.js # App configuration
โ
โโโ Platform Support:
โโโ chromeOS-detector.js # Platform detection
โโโ background.js # Chrome extension service worker
โโโ background-audio-handler.js # Media Session API + wake locks
โโโ gh-pages-config.js # GitHub Pages base path
โโโ sw-init.js # Service worker initialization
โโโ service-worker.js # PWA offline support
โ
โโโ Standalone Tools:
โโโ lyrics-fetcher.html # Bulk lyrics downloader (LRCLIB API)
โโโ deep-music-analysis.html # Comprehensive track analyzer
โโโ smart-playlist-ui.html # Smart playlist demo/tester
โ
โโโ PWA Assets:
โโโ manifest.webmanifest # PWA manifest
โโโ icon-192.png # App icon (192x192)
โโโ icon-512.png # App icon (512x512)
โ
โโโ Widget Support (Android 12+):
โโโ widget-minimal.html # Minimal widget
โโโ widget-full.html # Full widget with album art
โโโ widget-data-*.json # Widget data templates
โโโ widget-adaptive-cards.json # Adaptive card templates
Total Lines of Code: ~15,000+ JavaScript Files: 25+ Features: 100+
- ๐จ Enhanced Mood Detection: Analyzes tempo (BPM) + energy + spectral brightness
- ๐จ 5 Accurate Mood Classifications: Energetic, Calm, Bright, Dark, Neutral
- ๐จ Mood-Based Visualizer Colors: Real-time color adaptation
- ๐จ BPM-Synced Visual Effects: Pulses sync with detected BPM
- ๐จ Energy-Modulated Animations: Intensity scales with track energy
- ๐จ Album Art Color Integration: Uses dominant colors when available
- ๐ Comprehensive Track Analysis: Analyzes entire track duration
- ๐ Professional Metrics: LUFS energy, crest factor, frequency bands
- ๐ Batch Processing: Analyze entire music library
- ๐ Export System: Download all analysis as .txt files (ZIP)
- ๐ Integration: Load .txt files for enhanced player features
- ๐๏ธ Intelligent Preset Selection: Context-aware scoring system
- ๐๏ธ Genre Recognition: Automatic genre-based presets
- ๐๏ธ Vintage Detection: Special handling for old recordings
- ๐๏ธ Speech Detection: Podcast preset for speech content
- ๐๏ธ 35% Confidence Threshold: Only applies when confident
- ๐๏ธ Seamless Transitions: BPM-aware crossfading
- ๐๏ธ Smart Intro Skipping: Detects and skips quiet intros
- ๐ง Harmonic Mixing: Camelot wheel key matching
- ๐ง Automatic Reordering: Intelligent playlist sequencing
- ๐ง Mood Compatibility: Smooth emotional transitions
- ๐ฑ Pull-to-Refresh: Reload folder with gesture
- ๐ฑ Haptic Feedback: 6 types (light, medium, heavy, success, error, warning)
- ๐ฑ Context Menu: Long-press for track options
- ๐ฑ Gesture Indicators: Visual swipe hints
Contributions welcome! Please:
- Fork the repository
- Create feature branch (
git checkout -b feature/AmazingFeature) - Test thoroughly across browsers
- Commit changes (
git commit -m 'Add AmazingFeature') - Push to branch (
git push origin feature/AmazingFeature) - Submit pull request
Areas for Contribution:
- Additional visualizer modes
- More EQ presets and Auto-EQ improvements
- Smart playlist templates
- Mobile gesture improvements
- Browser compatibility fixes
- Performance optimizations
- Translation/localization
- Better analysis algorithms
- Machine learning integration
MIT License - See LICENSE file
This means you can:
- โ Use commercially
- โ Modify freely
- โ Distribute
- โ Use privately
Libraries Used:
- jsmediatags - Metadata tag reading
- JSZip - ZIP file generation (lyrics fetcher)
APIs Used:
- LRCLIB - Synced lyrics database (free, no API key required)
Inspiration: Built with โค๏ธ for music lovers who want complete control over their listening experience without cloud dependencies or subscriptions.
Found a bug? Have a feature request?
- ๐ง Email: pieredino@gmail.com
Common Issues:
- No sound: Check browser audio permissions
- Folder not loading: Grant filesystem permissions
- Lyrics not showing: Ensure VTT filename matches audio exactly
- PiP not working: Use Chrome/Edge, try refreshing page
- Slow performance: Try Compact/Mini mode
- ๐ Mood detection issues: Clear analysis cache (
musicAnalysisCachein localStorage) after updates
Planned Features:
- Playlist import/export (M3U, PLS)
- Audio effects (reverb, echo, etc.)
- Podcast support with chapters
- Radio streaming support
- Wrapped-Like Listening Reports
- More smart playlist templates
- Advanced mood detection with machine learning
- Custom visualizer color themes
- Crossfade between tracks
If you like this project:
- โญ Star this repository
- ๐ด Fork and customize
- ๐ข Share with friends
- ๐ Contribute improvements
"Impossible is a social construct. Anything is possible if you don't know it shouldn't be."
Enjoy your music! ๐ต๐ง๐ถ
Built for offline freedom. Enhanced with intelligence. Powered by the web.