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)