Skip to content

Releases: Behdad-kanaani/korai-player

KMP V1.5

Choose a tag to compare

@Behdad-kanaani Behdad-kanaani released this 03 Jul 09:36

🚀 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 from raw.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/musicdel for secure CORS-free MusicDel website access
  • Multi-purpose Download System: import-from-url function 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 semver library 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

Choose a tag to compare

@Behdad-kanaani Behdad-kanaani released this 11 Jun 15:33

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 pendingPlayRequest lock 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.existsSync check in second-instance handler for audio files
  • Added proper directory readability checks before scanning
  • Worker thread now uses CommonJS require instead of ES module import for compatibility
  • Added robust fallback handling when modules fail to load

UI / Performance

  • Visualizer switched from requestAnimationFrame to 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 isTransitioning flag (500ms cooldown between tracks)

Keyboard Shortcuts

  • Added safety checks for input fields – prevents shortcut triggers while typing
  • Ctrl+K now 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 timeupdate event instead of separate setInterval

🎨 UI Polish

  • Removed border-radius from 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 mode
  • prevTrackEnhanced(): 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 interaction
    • NotSupportedError → Unsupported audio format

Code Quality

  • Replaced import with require in 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 flags
  • src/frontend/app.js – Major rewrite (+734 lines): playback engine, song info modal, vocal extraction
  • src/frontend/styles.css – Import modal, accordion styles, animations
  • src/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-optimize package is now optional (still recommended)

Korai Player V1.4.2

Choose a tag to compare

@Behdad-kanaani Behdad-kanaani released this 09 Jun 23:06

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 playRequestCounter to prevent race conditions in audio element loading
  • Enhanced audio feature extraction – added mood, danceability, vocal presence, and popularity scoring
  • Optimized scanDirAsync to skip inaccessible files without crashing
  • Updated plugin auto-activation – only critical plugins start on boot; others are deferred

📦 Build & Packaging

  • Version bumped: 1.4.01.4.2
  • Fixed plugin assets filter in package.json (all files now included correctly)
  • Added @yawlabs/electron-optimize and 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

Choose a tag to compare

@Behdad-kanaani Behdad-kanaani released this 09 Jun 14:56

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 toolkorai-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

  1. Download the installer
  2. Run the setup (your library and settings are preserved in %APPDATA%\korai-player\)
  3. 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: exponentialRampToValueAtTime instead 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 with additional.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

Choose a tag to compare

@Behdad-kanaani Behdad-kanaani released this 03 Jun 22:32

🎵 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

Choose a tag to compare

@Behdad-kanaani Behdad-kanaani released this 31 May 16:39

🎵 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-glass theme replacing the old apple theme
  • 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 .cue files 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:

  1. Peak Detection - Counts waveform peaks
  2. Autocorrelation - Better for low BPMs (60-120)
  3. 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

Choose a tag to compare

@Behdad-kanaani Behdad-kanaani released this 26 May 18:50

🎵 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


📥 Download

Read more