Skip to content

v1.2.3

Choose a tag to compare

@heartached heartached released this 08 Jul 03:13
· 515 commits to main since this release

Flowing word-by-word lyrics (ELRC karaoke)

Noctis_ELRC_Project.mp4

Noctis now reads word-level ELRC timings and animates them live on the full lyrics page — lyrics move with the vocal, not just line by line:

  • Word-by-word sweep: Each word lights up the moment it's sung, sweeping across the active line in real time.
  • Held-note glow: Words held for a second or longer swell with a soft glow, so long notes feel alive.
  • Active-line zoom: The line being sung scales up and brightens while the others recede, keeping your eye in the right place.
  • Cascading scroll: Lines settle into place top-down as the song moves — physical, not snapping.
  • Full CJK support: Chinese, Japanese, and Korean lyrics render with proper per-script fonts — no more boxes.
  • Share as video: Export the karaoke sweep as an MP4 lyric card straight from Share Lyrics.

Download

Pick your platform from the Assets below:

Platform Files
Windows Noctis-v1.2.3-Setup.exe (installer) · Noctis-windows-x64.zip (portable)
macOS Noctis-osx-arm64.dmg (Apple Silicon) · Noctis-osx-x64.dmg (Intel)
Linux Noctis-x86_64.AppImage · Noctis-linux-x64.tar.gz · Noctis-linux-arm64.tar.gz

Running on macOS — the app isn't code-signed, so Gatekeeper quarantines it on first launch. After dragging Noctis into your Applications folder, clear the flag once in Terminal:

xattr -dr com.apple.quarantine /Applications/Noctis.app

Then open Noctis normally.

What's Changed

Fixed

  • Fixed playback being too quiet (EQ preamp issue from v1.2.2)
  • Fixed gapless playback volume blip between tracks
  • Fixed audio glitch when scrubbing during library scan
  • Fixed scan progress flooding the UI
  • Fixed library scan taking forever with lossy files
  • Fixed album art not showing until scan completed
  • Fixed app state not saving on exit (queue, history, scrobbles)
  • Fixed album art cache evicting wrong images
  • Fixed intermittent crashes when removing library tracks during refresh
  • Fixed potential crash on quit during track load
  • Fixed rating/artwork tag writes corrupting playback on macOS/Linux
  • Fixed duplicate-remover silently hiding files
  • Fixed seek bar/lyrics freezing after seeking during track transition
  • Fixed very short tracks stalling the queue
  • Fixed folder tree scrollbar jumping when selecting folders
  • Fixed EQ indicator color and positioning on now-playing row
  • Fixed SMTC session not registering on Windows
  • Fixed SMTC artwork not showing
  • Fixed app losing multi-selected albums when scrolling
  • Fixed context menus clipping off-screen at bottom
  • Fixed word-sweep stutter in lyrics (trailing whitespace issue)
  • Fixed held-note glow clipping in word-synced lyrics
  • Fixed text shearing on line-final words in lyrics
  • Fixed Esc key behavior (now clears selection consistently)
  • Fixed custom EQ dropping volume ~12 dB when boosted
  • Fixed ~1s audio cut when dragging/resetting EQ
  • Fixed split-second cut at start of next track (AutoMix cleanup)
  • Fixed CJK characters rendering as boxes in share cards
  • Fixed card-options flyout shifting left on toggle
  • Fixed albums showing placeholder art in grid but real art in detail
  • Fixed album tiles losing selection on scroll
  • Fixed import progress freezing the UI
  • Fixed dropped files losing folder artwork
  • Fixed per-play library save stalling UI
  • Fixed drag-drop import freezing the whole app
  • Fixed invisible wall clipping in lyrics view
  • Fixed phantom 1-star ratings on new imports
  • Fixed EQ visualizer freezing after pause
  • Fixed non-playing rows rendering unreadable when scrolled
  • Fixed previously-played track staying highlighted
  • Fixed now-playing track not visible in Folders view
  • Fixed RunLibraryScan no-opping when scan already active
  • Fixed removing a folder not dropping its tracks
  • Fixed memory explosion (18+ GB from SetEqualizer NRE loop)
  • Fixed Single Instance behavior (taskbar launch now surfaces existing window)
  • Fixed LastFm and ListenBrainz tokens stored as plain text
  • Fixed filename-based argument injection in ffprobe reader

Added

  • Added main player track title clickable to view album
  • Added live track population during library scan (progressive fill)
  • Added live album art during library scan
  • Added live scan counter showing current progress
  • Added DSD support (.dsf/.dff files with metadata)
  • Added "Auto" background in Share Lyrics color picker (derives from artwork)
  • Added card-options dropdown in Share Lyrics (1:1 / 9:16 · Auto / White / Black · Sync)
  • Added delete-from-disk on "Remove from Library" (Apple Music-style 3-way prompt)
  • Added per-platform trash support (Windows Recycle Bin, macOS Trash, Linux)
  • Added Spotify-style lyric share cards with vibrant background color
  • Added selectable lyric weight in share cards (semibold default)
  • Added scan checkpoint on exit / resume on next launch
  • Added DSD library support (.dff DSDIFF reader)
  • Added codec badges for lossy audio (AAC / MP3 / OPUS / OGG / WMA)
  • Added Windows media overlay (SMTC) integration with media keys support
  • Added Tray menu playback controls (Play/Pause, Next, Previous)
  • Added track numbers to Folders Section (right-aligned with perfect digit alignment)
  • Added Explicit "E" badge in Folders Section
  • Added animated EQ indicator on now-playing row in Folders
  • Added Collapse Album Editions setting
  • Added Player Bar Opacity slider in Settings
  • Added hover to expand sidebar toggle in Settings
  • Added Restore last played track on startup toggle
  • Added Back + Search icons to sidebar (relocated from top bar)
  • Added Search pill flyout animation
  • Added Now Playing track highlight in all views (accent red text)
  • Added right-click context menu for songs in Folders view
  • Added Folder expansion state preservation
  • Added Held-note emphasis (words sung ≥1s swell with soft glow)
  • Added Cascading scroll in lyrics (lines settle top-down)
  • Added Active-line zoom in word-synced lyrics
  • Added drag-drop import progress indicator with live status
  • Added real-time library fill-in during drop imports (~1.5s batches)
  • Added Karaoke word-sweep in Share Lyrics MP4 export
  • Added "Karaoke video" toggle in card-options
  • Added per-script font fallback for CJK lyrics on share cards
  • Added Esc key to deselect across all multi-select views

Improved

  • Improved scrollbar styling and behavior across the app
  • Improved autoscroll with velocity physics (px/second, linear-to-quadratic curve)
  • Improved album edition handling and representative album selection
  • Improved playback bar readability with adjustable background opacity
  • Improved Settings integration for sidebar and album edition preferences
  • Improved code maintainability (consolidated album title normalization)
  • Improved UI dialog launching and removed duplicate implementations
  • Improved streaming file enumeration (no up-front .ToList(), progressive processing)
  • Improved scan parallelism (capped at min(ProcessorCount, 8) with env override)
  • Improved album art cache now exact-match and cheaper
  • Improved web remote request buffering
  • Improved metadata scanning speed (ffprobe hang prevention)
  • Improved memory growth (proper native memory reporting for album art)
  • Improved song search across all views
  • Improved UI startup load time (offloaded cache restore to background thread)
  • Improved side panel font zoom consistency on word-timed lyrics
  • Improved per-word lift and line lift animation
  • Improved album grid artwork sharpness (768px decode vs 512px)

Full Changelog: v1.2.2...v1.2.3