Releases: Behdad-kanaani/korai-player
Release list
KMP V1.5
🚀 Major New Features
1. Auto-Update System
A complete in-app intelligent update system that automatically fetches and applies changed files from GitHub without requiring reinstallation.
- Atomic Update Management (
updateManager.js): Validates files, downloads with retry capability, applies changes, verifies after update, and manages restart procedures - Optimized Updater (
updater.js): Rewritten core using GitHub API and raw file reading fromraw.githubusercontent.com- bypasses rate limits, fetches only changed files upon user confirmation - Update UI (
updateUI.js): Color-coded notifications (green for available, red for errors, yellow for checking) and a smooth progress modal with animations - Real-time Progress Reporting: Users receive instant updates on each stage (backup, downloading, applying, cleanup) and file counts
2. Music Explorer
A dedicated advanced page for music discovery with online service connectivity.
- Explorer Page (
explorer.html): Standalone ultra-premium design with glassmorphism effects and animated backgrounds - Universal Search: Search tracks, artists, and albums via a cloud API (
music.korai.ir) - MusicDel Integration: Direct search and download from MusicDel.ir via internal proxy
- 3-Column Modal: Simultaneous searching with three strategies (first word, user search, full title) displaying results in three separate columns
- Favorites System: Users can save discovered tracks and view them in a dedicated "Favorites" tab
3. Advanced Settings Page
A comprehensive modern settings dashboard for complete control over all player aspects.
- Settings Page (
settings.html): Settings dashboard with sidebar and categorized sections (Playback, Sound & EQ, Appearance, Library, Plugins, AI, System, Advanced) - Centralized Settings Management (
settingsStore.js): Central store for maintaining and synchronizing settings across the entire application - every change auto-saves and notifies other sections - Real-time Sync (
settingsSync.js): Settings like EQ, volume, theme, and RTL/LTR orientation apply live without page refresh - Advanced Settings: Includes user behavior weighting coefficients for the AI recommender system, memory management, plugin timeouts, performance mode, and debug options
4. Smart Playback with "Preferred Genre Mode"
A new playback mode that selects upcoming tracks based on the user's favorite genres.
- New Player Button: Heart icon (
<i class="fa-solid fa-heart"></i>) positioned next to the Shuffle button - Selection Algorithm: When activated, the player identifies the user's favorite genres (based on likes and play counts) and selects subsequent tracks from them rather than playing randomly
- Added Functions in
app.js:togglePreferredGenreMode(),getTopPreferredGenres(),getNextPreferredGenreTrack()
✨ Major Improvements & Upgrades
1. AI Recommender Engine Overhaul
A complete rewrite of the recommendation core for smarter and more accurate suggestions.
- Ensemble Learning Models: Final ranking combines 5 different models: Content Similarity (40%), User Preferences (30%), Context Matching (15%), Genre Similarity (10%), Discovery Coefficient (5%)
- Matrix Factorization: Calculating user similarity for collaborative filtering recommendations
- Context-Aware: Automatically identifies time of day, user activity (workout, studying, partying) and adapts track energy and mood accordingly
- Behavioral Pattern Analysis: Detailed analysis of user behavior over the past 30 days to identify popular genres, favorite artists, and listening patterns
- Smart Playlist Generation (
generateSmartPlaylist): Creates playlists with coherent flow based on energy, genre, and mood - Enhanced Analyzer (
analyzer.js): Extracts more professional features (brightness, warmth, roughness, harmonic content) with smarter genre detection and confidence scoring
2. Advanced MusicDel Integration
Updated exploration system enabling direct search and download from the MusicDel source.
- Server Proxy (
server.js): New endpoints/api/proxy/musicdel,/api/proxy/musicdel/download, and/api/search/musicdelfor secure CORS-free MusicDel website access - Multi-purpose Download System:
import-from-urlfunction supports direct links and video services (with yt-dlp support) for downloading and adding to the library
3. Plugin System Enhancement
Professional plugin management with expanded capabilities.
- Plugins Page (
plugins.html): Complete translations and visual improvements for plugin management - Performance Dashboard: Plugin execution statistics (call count, errors, average time)
- Memory & Time Management: Adjustable timeout and dedicated memory allocation per plugin via the Settings page
4. Playback Improvements
For a flawless and professional listening experience.
- Resume on Start: When enabled, saves the last playing track position and resumes from the same point on restart
- Improved Error Handling: Professional error management with specific error messages (e.g., "Unsupported file format")
- "Stay in Tray" Sync: Users can control player behavior on window close (fully close or minimize to system tray) via settings
5. UI/UX Enhancements
Extensive appearance and user experience improvements.
- "Liquid Glass" Theme: New theme with glass and blur effects applied throughout the application
- Section Entry/Exit Animations: Smooth effects for tabs and different sections opening
- Responsive Design: Complete display improvement across different device sizes
- Full Translation: All new texts translated to both English and Persian for Settings and Explorer pages
6. Backend & Performance
Core improvements for stability and efficiency.
- server.js Fixes: Improved file streaming, better error handling during playback and downloads
- database.js Fixes: Cover storage with unique IDs to prevent collisions
- analyzer.js Enhancement: More accurate algorithms for BPM detection and audio feature extraction
- Memory Management: Further optimizations for reduced CPU and RAM usage
🐛 Bug Fixes
- Tracing & Scan: Fixed sudden stops when scanning folders containing system files
- Vocal Separator: Fixed issue with reading WAV files with different bit depths
- Settings: Ensured correct settings storage and loading on restart
- Playback Controls: Fixed common issues in track playback and stopping, especially in shuffle mode
📦 Technical Changes
File Changes:
- Removed:
advancedSearch.js(replaced with new search system) - Added:
explorer.html,settings.html,plugins.html(updated),settings.css,settings.js,settingsStore.js,settingsSync.js,update.css,updateUI.js,updateManager.js - Major Updates:
main.js,preload.js,package.json(version 1.5.0),server.js,analyzer.js,recommender.js,updater.js,lang.js,app.js,styles.css,additional.css
Dependencies:
- Added
semverlibrary for version comparison in the update system
📝 Notes for Users & Developers
For Users: First launch after update may take some time as the plugin system and new settings are initialized. The "Stay in Tray on Close" option in Settings is highly useful for controlling player behavior when closing the window.
For Developers: The new settingsStore system is the single source of truth for all settings. Use window.settingsStore to access settings. The updateManager update system supports rollback to previous versions.
Korai Player V1.4.5
KORAI Player V1.4.5 Latest
Released this 11 Jun 2026
Release Notes – KORAI Player v1.4.5
🎯 Overview
This is a major feature release focusing on library UI modernization, playback engine reliability, vocal extraction capabilities, and comprehensive timeline visualizer improvements. Includes deep recursive directory scanning and a completely redesigned empty home dashboard.
✨ New Features
Library UI Overhaul – Completely redesigned table view with cover art, BPM column, and collapsible genre filter accordion
Import Loading Modal – Visual feedback during file/folder imports with animated spinner, progress bar, and wave animation
Empty Home Dashboard (Premium Design) – Beautiful animated empty state with feature highlights (AI Analysis, Smart Playlists, Vocal Separator, Studio EQ) and "Import Your First Track" CTA
Song Info Modal – Comprehensive track metadata display including cover art, lyrics, BPM, energy percentage, codec, bitrate, and sample rate
Vocal/Karaoke Extraction – Extract vocal tracks from currently playing songs, creates new tracks automatically, with progress notifications
Timeline Visualizer Improvements – Dynamic bar count (30-80 bars based on container width), idle animation when no track playing, proper "played" portion marking
🐛 Bug Fixes
Core Engine
- Fixed frozen timeline after track import – AudioContext now properly closed and recreated before each track play
- Resolved race conditions with concurrent play requests using request counter and queuing system
- Fixed deep directory scanning – replaced shallow scan with proper recursive scanner (max 100 levels)
- Fixed file path extraction in second-instance handler – correctly filters
.exe,electron,KORAI, and internal flags - Added
emergencyAudioRecovery()system with 3 retry attempts for catastrophic audio failures
Playback & Audio
- Added
pendingPlayRequestlock to prevent concurrent play operations - Fixed repeat mode toggling (Off → Repeat All → Repeat One)
- Improved seek function with bounds clamping and progress fill redundancy
- Better AudioContext state management – resume when suspended, recreate when closed
- Added safety checks for NaN and infinite values in duration handling
Import & Analysis
- Fixed missing
fs.existsSynccheck in second-instance handler for audio files - Added proper directory readability checks before scanning
- Worker thread now uses CommonJS
requireinstead of ES moduleimportfor compatibility - Added robust fallback handling when modules fail to load
UI / Performance
- Visualizer switched from
requestAnimationFrameto interval-based updates (60ms / ~16 FPS) - Fixed scrub tooltip bounds calculation
- Removed duplicate variable declarations (
sleepTimeRemaining,lastSleepUpdateTime) - Fixed language toggle button event listener – skin buttons now properly highlight active skin
- Added missing null checks for various UI elements
Memory Management
- Added beforeunload cleanup for visualizer interval, spectrum interval, and IPC state update listeners
- Fixed transition protection with
isTransitioningflag (500ms cooldown between tracks)
Keyboard Shortcuts
- Added safety checks for input fields – prevents shortcut triggers while typing
Ctrl+Know properly focuses search input
⚡ Performance Optimizations
- Enabled GPU rasterization and zero-copy rendering
- Added Vulkan and SkiaRenderer features where available
- Increased V8 memory limit to 4GB for large libraries
- Added
v8CacheOptions: 'code'for improved startup performance - Enabled
enableBlinkFeatures: 'OverlayScrollbars'for modern scrollbar styling - Throttled media session position updates to ~5% track progress (reduced from every frame)
- Sleep timer now updates from audio
timeupdateevent instead of separate setInterval
🎨 UI Polish
- Removed
border-radiusfrom table cells for cleaner look - Disabled box-shadow on table cells for reduced visual clutter
- Removed neon accent stripe on active rows
- Added monospace fonts for duration and BPM columns (perfect alignment)
- Liquid Glass theme now supports empty home state and album track items
- Fully responsive empty home dashboard with breakpoints at 640px
🛠️ Technical Improvements
Audio Pipeline
- Complete
playTrack()rewrite with request queuing system - Added 50ms settling delay between track changes
- Media load timeout (5 seconds with fallback)
- Retry logic for play attempts (3 attempts with exponential backoff)
- Proper disconnection of existing audio nodes before reconnecting
Enhanced Next/Previous Track
nextTrackEnhanced(): transition lock, improved error handling, better repeat-one modeprevTrackEnhanced(): transition lock, improved seek behavior (>3 seconds seeks to start)- Both functions properly handle shuffle mode history
Error Handling
- Added try-catch for AudioContext close operations
- Safe handling of analyser data when not ready
- Better error propagation with specific error types:
NotAllowedError→ Requires user interactionNotSupportedError→ Unsupported audio format
Code Quality
- Replaced
importwithrequirein worker thread for Node.js compatibility - Added
escapeHtml()usage in song info modal - Better console logging with emojis (🎵, ✅, 🚨)
- Removed unused variables and commented code sections
🔧 Supported Formats
MP3, WAV, OGG, M4A, FLAC
📦 Build & Packaging
Version bumped: 1.4.2 → 1.4.5
Changes: +1688 lines / -339 lines across 7 core files
Key file updates:
main.js– Deep scanning, second-instance handler fixes, performance flagssrc/frontend/app.js– Major rewrite (+734 lines): playback engine, song info modal, vocal extractionsrc/frontend/styles.css– Import modal, accordion styles, animationssrc/backend/server.js– Backend improvements with importedTracks response
📥 Upgrade Notes
- No database migration required – drop-in replacement from v1.4.2
- First launch after update will display the redesigned library UI
- Vocal extraction feature requires additional processing time for first use
- The
@yawlabs/electron-optimizepackage is now optional (still recommended)
Korai Player V1.4.2
Release Notes – KORAI Player v1.4.2
🎯 Overview
This is a bugfix and stability release focusing on library scanning reliability, playback race condition prevention, memory leak fixes, and the introduction of the Change Logs plugin system.
✨ New Features
- Change Logs Plugin – Automatically displays a "What's New" card on first run after each version update
- Empty Folder Warning – User notification when a selected folder contains no supported audio files
🐛 Bug Fixes
Core Engine
- Fixed folder scanning crash when encountering unreadable or permission-restricted files
- Resolved playback race condition when rapidly selecting different tracks
- Fixed memory leak in Plugin Host – event listeners are now properly cleaned up on plugin deactivation
Import & Analysis
- Improved batch import stability – main thread no longer blocks during audio analysis
- Added graceful fallback when analyzer worker thread fails (automatic switch to direct mode)
- Fixed duplicate track detection during folder imports
UI / Performance
- Reduced Liquid Glass theme blur intensity for smoother performance on lower-end devices
- Fixed IPC listener leaks on window unload (renderer cleanup added)
⚙️ Technical Improvements
- Added
playRequestCounterto prevent race conditions in audio element loading - Enhanced audio feature extraction – added mood, danceability, vocal presence, and popularity scoring
- Optimized
scanDirAsyncto skip inaccessible files without crashing - Updated plugin auto-activation – only critical plugins start on boot; others are deferred
📦 Build & Packaging
- Version bumped:
1.4.0→1.4.2 - Fixed plugin assets filter in
package.json(all files now included correctly) - Added
@yawlabs/electron-optimizeand other dependency refinements
🔧 Supported Formats
MP3, WAV, OGG, M4A, FLAC
📥 Upgrade Notes
- No database migration required – drop-in replacement
- First launch after update will display the new Change Logs card (dismissible)
Checksums available upon request | Requires Node.js 18+ / Electron 28+
Korai Player V1.4
KORAI v1.4 — Plugin System & Home Redesign
Open Source. Local First. Intelligence Built In.
🎯 What's new in v1.4
🔌 Plugin System (Complete Architecture)
KORAI now features a full plugin ecosystem — extend functionality without modifying core code.
- Isolated execution — Each plugin runs in a sandboxed worker thread (VM + separate process)
- Permissions system — Plugins must request access (filesystem, network, audio, notifications, clipboard)
- Performance monitoring — CPU/memory/error tracking per plugin; auto-disable on crash
- CLI tool —
korai-plugin create,pack,validate,dev
Plugin Marketplace UI and Audio Effects UI are framework-ready and coming in v1.5.
🏠 Home Page Redesign (Premium v2.0)
- Cinematic hero section with particle animation and vinyl disc art
- Quick stats cards (track count, play time, favorites)
- Mood chips (horizontal scrollable with icons)
- Featured grid with responsive CSS Grid
- Recently added list with hover slide effect
📚 Library Masonry & Virtualization
- CSS Columns layout for masonry effect
- Virtual scrolling for large libraries (50k+ tracks tested)
- IntersectionObserver for lazy image loading
🎨 Visual Upgrades
- 3D cover art with hover scale/glow
- Marquee scrolling for long titles
- Performance mode for low-end devices (auto-detects RAM <4GB, CPU cores <4)
- Persian/Farsi RTL improvements
🔧 Technical Improvements
- Crossfade:
exponentialRampToValueAtTime(offloaded to audio thread) - Visualizer: throttled to 20 FPS, visibility-based rendering
- Database: write debouncing (100ms), async file writes
- Memory optimizations for Liquid Glass theme
📦 Downloads
| Platform | Format | Link |
|---|---|---|
| Windows (x64) | NSIS installer | Download |
macOS & Linux: Planned (no ETA)
⚠️ Honest limitations
- Electron-based → ~180-250MB RAM. Not a C++ app, but cross-platform.
- 5-band EQ, not 10 → Quality over quantity. More bands in v1.5.
- BPM detection is estimated (±5 BPM) → Great for playlist matching, not lab-grade.
- Windows only currently → macOS/Linux planned.
🔧 Upgrade from v1.3
- Download the installer
- Run the setup (your library and settings are preserved in
%APPDATA%\korai-player\) - Launch KORAI
📋 Full Changelog
✨ New Features
- Plugin architecture (PluginManager, PluginHost, PluginWorker with VM sandbox)
- Plugin CLI tool (
korai-plugin create,pack,validate,dev) - PluginPerformanceMonitor (CPU/memory/error tracking)
- Home page redesign (cinematic hero, quick stats, mood chips, featured grid)
- Library masonry with CSS Columns + virtual scrolling
- 3D cover art hover effects
- Marquee scrolling for long titles
- Performance mode (auto-detects low-end devices)
🔧 Improvements
- Crossfade:
exponentialRampToValueAtTimeinstead of JS timers - Visualizer: reduced to 20 FPS, visibility-based rendering
- Database: write debouncing (100ms), async file writes
- Image loading: IntersectionObserver with 200px rootMargin
- Liquid Glass theme: reduced blur intensity for better performance
🐛 Bug Fixes
- Worker threads compatibility (analyzer.worker.js)
- Miniplayer full-window mode (border-radius, background)
- Z-index stacking (immersive player above playback bar)
- Missing genre translations (chill, acoustic, latin)
❌ Removed
additonal.js(typo) → replaced withadditional.js
🙏 Credits
Built with Electron, Express, music-metadata, and lots of coffee.
Download now: KORAI v1.4.0
KORAI — Open source. Local first. Intelligence built in.
KMP V1.3.0
🎵 KORAI Music Player - Release Notes v1.3.0
"Visual Intelligence Update" | June 4, 2026
🚀 Major New Features
🎨 Visual Intelligence (Desktop-first)
| Feature | Description |
|---|---|
| 3D Cover Art | Hover any album cover — it scales, glows, and reacts to your cursor with realistic shadows and CSS 3D transforms |
| Live Waveform Timeline | 45 animated bars that pulse with your music using requestAnimationFrame |
| Marquee Scrolling Text | Long song titles (12s) and artist names (15s) scroll smoothly when they don't fit |
| Artist Cards View | Browse by artist with album art, track counts, and a "Play All" button |
| Spectrum Analyzer | Live frequency visualization in the stats panel |
🔄 Playback Modes (Finally Complete)
| Mode | Description |
|---|---|
| Repeat One | Loop a single track — three modes: None, All, One |
| Smart Shuffle | History tracking prevents immediate repeats. Works across library, playlists, favorites, and artist views |
⚡ Performance & Quality of Life
- Performance Mode — Auto-detects low-resource devices (RAM <4GB, CPU cores <4) and reduces animations to keep playback smooth
- Version Badge — Shows current version with red, pulsing indicator when updates are available
- Auto-Update Notification — Checks every 24 hours. One click to download the latest version
- Song Info Modal — Full metadata display (BPM, energy, bitrate, sample rate) at a glance
- Better Drag & Drop — Visual feedback when dropping files into the player
🔧 Improvements & Fixes
| Category | Details |
|---|---|
| Code Cleanup | Removed ~1,200 lines of low-quality code (including unreliable karaoke) |
| analyzer.js | Faster and more accurate metadata extraction |
| recommender.js | Better similarity scoring for local recommendations |
| Shuffle Logic | Fixed — now respects lastPlaySource (library, playlist, favorites, artist) |
| Timeline Visualizer | Fixed lag, reduced from 55 to 45 bars for better performance |
| Mini-player | Fixed sync issues |
| Search Filters | Improved accuracy |
❌ Removed Features
| Feature | Reason |
|---|---|
| Karaoke Mode | Removed due to poor quality. We don't ship features that don't work well. High-fidelity vocal extraction coming in v1.4 |
📦 Technical Changes (Developers)
New Files
src/backend/updater.js - Auto-update notification engine
src/frontend/additional.css - v1.3 visual upgrades (539 lines)
src/frontend/additonal.js - v1.3 UI handlers (3D cover, waveform, marquee)
Files Changed
12 files changed
+2,400 lines added
-3,600 lines removed
📊 Net change: ~1,200 lines removed (simpler, cleaner, faster)
Version Update
package.json: 1.2.0 → 1.3.0
📊 Feature Comparison (v1.3 vs Others)
| Feature | KORAI v1.3 | Spotify | Apple Music | VLC |
|---|---|---|---|---|
| 3D Cover Art with hover | ✅ | ❌ | ❌ | ❌ |
| Live Waveform Timeline | ✅ | ❌ | ❌ | ❌ |
| Marquee Scrolling Text | ✅ | ❌ | ❌ | ❌ |
| Repeat One Mode | ✅ | ✅ | ✅ | ✅ |
| Smart Shuffle with history | ✅ | ✅ | ✅ | ❌ |
| Performance Mode (low-end) | ✅ | ❌ | ❌ | ❌ |
| Version Badge + Auto-update | ✅ | ✅ | ✅ | ❌ |
| Artist Cards View | ✅ | ✅ | ✅ | ❌ |
🎯 What Makes KORAI v1.3 Different
No other open source player looks like this. No other player combines privacy with this level of visual polish.
| Aspect | KORAI v1.3 | Others |
|---|---|---|
| Visuals | 3D covers, live waveform, marquee text | Static lists or basic grids |
| Privacy | Zero telemetry, open source | Closed source, data collection |
| Cost | Free forever | Subscription or limited free tier |
| Playback | Repeat One + Smart Shuffle | Often missing one or both |
🐛 Known Issues in v1.3.0
| Issue | Status |
|---|---|
| macOS/Linux builds | 🚧 Planned for future release |
| High-fidelity vocal extraction | 🔄 Coming in v1.4 |
| BPM detection ±3 BPM tolerance | ✅ Works great for playlist matching, not lab-grade |
📥 Download
| Type | File |
|---|---|
| Setup (installer) | KORAI-Setup-1.3.0.exe |
🔧 System Requirements
| Component | Minimum |
|---|---|
| OS | Windows 10 (64-bit) |
| RAM | 512 MB (4GB+ recommended for Performance Mode off) |
| Storage | 200 MB |
| Audio | Web Audio API support |
⌨️ Keyboard Shortcuts (v1.3)
| Shortcut | Action |
|---|---|
| Space | Play / Pause |
| ← / → | Seek -10s / +10s |
| Ctrl + ← / Ctrl + → | Previous / Next |
| ↑ / ↓ | Volume +10% / -10% |
| M | Mute |
| F | Toggle fullscreen |
| Esc | Exit fullscreen |
| Ctrl + K | Focus search |
| Ctrl + L | Focus library |
| N | Next track |
| B | Previous track |
| S | Stop |
| R | Cycle repeat modes (None → All → One) |
Media keys (Play, Pause, Next, Previous) work on all platforms.
👨💻 Developer
Behdad Kanaani
Teenage programmer, music enthusiast, AI & computer vision lover
GitHub: @Behdad-kanaani
📄 License
Apache License 2.0 + Commons Clause
Non-commercial use only. Full license text in repository.
⭐ Support the Project
If you enjoy KORAI Music Player, please star the repository on GitHub!
Built with ❤️ by Behdad Kanaani
First of the KORAI Wave
Local-first. Privacy-first. Intelligence built-in.
KMP V1.2
🎵 KORAI Music Player - Release Notes v1.2.0
"Liquid Glass Update" | May 31, 2026
🚀 Major New Features
🎨 Liquid Glass Theme
- Animated moving glass blobs with organic motion and smooth physics
- SVG filter-based glass distortion effect (turbulence + displacement)
- New
liquid-glasstheme replacing the oldappletheme - Frosted glass aesthetic with real-time blur and shine effects
🎤 Artists Tab
- Browse and organize your music by artist name
- Automatically extracts and groups all artists from your library
- Clean, sortable artist grid view
🔍 Advanced Search Engine
Powerful query syntax with support for:
| Query | Meaning |
|---|---|
bpm>120 |
BPM greater than 120 |
bpm<100 |
BPM less than 100 |
bpm:120-140 |
BPM between 120-140 |
genre:rock |
Genre contains "rock" |
genre:rock|metal |
Genre is rock OR metal |
energy>0.7 |
Energy level above 0.7 |
duration<240 |
Duration less than 240 seconds |
playcount>10 |
Played more than 10 times |
likecount>0 |
Has at least 1 like |
year:2020-2024 |
Year between 2020-2024 |
title:"Hello" |
Exact title match |
genre:!pop |
Negation (NOT pop) |
- Combine conditions:
genre:rock bpm>120 energy>0.6 - Auto-complete suggestions as you type
- Multi-field search with
q:operator
🏷️ In-App Tag Editor
Edit metadata directly inside the application:
- Editable fields: Title, Artist, Album, Genre, Year, Track Number, Composer, Lyrics
- Physical file writing support for MP3 (ID3v2 tags)
- Real-time UI refresh after saving
- Works with: MP3, FLAC, OGG, M4A, WAV
📁 Professional Import/Export
| Feature | Supported Formats |
|---|---|
| Export Playlist | M3U, M3U8, PLS, CSV |
| Import Playlist | M3U, M3U8, PLS |
| Export Library | CSV (full metadata) |
🎚️ CUE Sheet Support
- Parse
.cuefiles and extract individual tracks - Support for:
REM,PERFORMER,TITLE,FILE,TRACK,INDEX,FLAGS - Generate CUE sheets from existing playlists
- Automatic track timing and pregap handling
🎛️ Gapless Playback & Crossfade
- Seamless gapless playback between tracks (no silence)
- Adjustable crossfade: 0-12 seconds
- Precise scheduling using Web Audio API
- Configurable via DSP Studio panel
🧠 Real BPM Detection (No more filename guessing!)
Three-algorithm hybrid detection system:
- Peak Detection - Counts waveform peaks
- Autocorrelation - Better for low BPMs (60-120)
- FFT-based Onset Detection - Transient detection
- Falls back to metadata BPM if available
- Updates track data automatically
- Accurate for MP3, WAV, FLAC, OGG, M4A
📊 Enhanced Recommendation Engine
- Discovery bonus - Less-played tracks get higher similarity scores
- Loudness added to similarity metrics
- Improved genre detection based on BPM + Energy
- Better weighted scoring system
🧵 Web Worker for Audio Analysis
- Non-blocking UI - Analysis runs in separate thread
- Real progress tracking during batch import
- Much smoother experience when adding many files
🎨 UI/UX Improvements
- New GitHub Star button in title bar (direct repo link)
- Export Library and Import CUE Sheet buttons in AI panel
- Advanced Search button in navigation bar
- Smooth hover animations for Liquid Glass theme
- Updated splash screen layout
- Improved DSP Studio panel design
🐛 Bug Fixes
| Issue | Status |
|---|---|
| Shuffle logic randomness | ✅ Fixed |
| Queue logic and order | ✅ Fixed |
| File auto-play after import | ✅ Fixed |
| Home dashboard refresh | ✅ Fixed |
📦 Technical Changes (Developers)
New Files
src/backend/bpmDetector.js - Real BPM detection engine
src/backend/cueParser.js - CUE sheet parser/generator
src/backend/playlistExporter.js - M3U/PLS/CSV import/export
src/backend/worker/analyzer.worker.js - Web Worker for analysis
src/frontend/advancedSearch.js - Advanced query search
src/frontend/gaplessPlayer.js - Gapless & crossfade engine
src/frontend/tagEditor.js - In-app metadata editor
New API Endpoints
| Method | Endpoint | Purpose |
|---|---|---|
PUT |
/api/tracks/:id/tags |
Edit metadata |
POST |
/api/playlists/:id/export |
Export playlist |
POST |
/api/playlists/import |
Import playlist |
POST |
/api/library/export |
Export full library |
POST |
/api/search/advanced |
Advanced search |
POST |
/api/cue/parse |
Parse CUE file |
POST |
/api/cue/generate |
Generate CUE from playlist |
GET/POST |
/api/playback/settings |
Gapless/crossfade settings |
POST |
/api/tracks/:id/detect-bpm |
Real BPM detection |
Version Update
package.json: 1.0.0 → 1.2.0
Code Statistics
- +14,317 lines added
- 1,594 lines removed
- 24 files changed
📥 Download
| Type | File |
|---|---|
| Portable (no install) | KORAI-Player-Portable.exe |
| Setup (installer) | KORAI-Player-Setup.exe |
🔧 System Requirements
| Component | Minimum |
|---|---|
| OS | Windows 10 (64-bit) |
| RAM | 512 MB |
| Storage | 200 MB |
| Audio | Web Audio API support |
⌨️ Keyboard Shortcuts
| Shortcut | Action |
|---|---|
Space |
Play / Pause |
Ctrl + K |
Focus search bar |
🐛 Known Issues in v1.2.0
- Crossfade > 3 seconds may cause stuttering on low-end systems
- Real BPM detection less accurate for tracks < 30 seconds
- Tag editing on FLAC/OGG requires manual UI refresh
- CUE sheet parsing requires absolute paths for audio files
👨💻 Developer
Behdad Kanaani
Teenage programmer, music enthusiast, AI & computer vision lover
GitHub: @Behdad-kanaani
📄 License
Apache 2.0
⭐ Support the Project
If you enjoy KORAI Music Player, please star the repository on GitHub!
KMP V1
🎵 KORAI Music Player - Release Notes v1.0.0
First Windows Release
✨ Key Features
5-Band Equalizer & real-time spectrum analyzer
Karaoke Mode - vocal cancellation
AI Recommendations based on BPM & energy
Smart Playlist Generator
Mini-Player (always on top)
Cinematic Fullscreen with vinyl animation
System Tray controls
Sleep Timer (15/30/60 min)
Dual Themes (Dark / Glass)
English & Persian support
Supported Formats
MP3, WAV, OGG, M4A, FLAC