Repository navigation
New features
Music library
A library built from the tags of the tracks in your playlist (artist, album, title, track number). Tags are read in the background, so the UI stays responsive while it scans.
Index cache in cplay_lib.db, written at quit only if something changed. Delete it to force a rescan.
Browse by Artist → Album → Track from the Playlist screen. Tab switches between the file list and the library, and Y opens the library from the player.
Tag search (3+ letters). Results are typed rows: [Artist], [Album] and [Song].
Enter opens or plays and queues the rest of the list. P plays the highlighted artist, album or list. Esc clears the search, then goes up a level, then leaves.
Spectrum analyzer
20-band analyzer in the extended panel, toggled with V.
ReplayGain
Track and album modes with pre-amp, read from the tags. G cycles OFF / TRACK / ALBUM.
NORM now acts only as a fallback for untagged tracks.
Seeking
Left/Right seek 5 s, Shift 30 s, Ctrl 60 s.
0–9 jump to 0%–90% of the track. Home restarts it.
Help overlay
F1, ? or H opens a keyboard reference that covers the library keys. Playback continues while it’s open.
Playlists
M3U loading handles a BOM and UTF-8.
Wildcard command-line arguments, for example cplay.exe "E:\MUSIC*.mp3".
Performance
Startup with -r on a 41,025-track playlist is now a few seconds. The slowdown was per-character string handling; the cache loader and tag reader now read bytes directly.
With -r, the playlist is no longer rewritten at quit.
Large files are written from a RAM buffer with CreateFileA/WriteFile instead of the BASIC WRITE command.
Fixes
Shift/Ctrl seek now works forward as well as backward.
Fixed a crash during the first library scan.
Fixed the UI freezing at startup while the library cache was re-saved.
After Tab back to the file list, the highlighted row now shows the playing track’s name.
Known limits
The library only contains tracks that are in the loaded playlist. Just point cplay to the folder where
you keep all your MP3 & FLAC files and add the "*" wildcard on the command-line. This way, cplay
now have a true "Music Library" to work with. Next time, start cplay with "-r" switch and you keep
your "Music Library"...
Sorting is by raw lower-cased bytes. Accented letters sort after Z, and “The Beatles” sorts under T.
The cache is checked by file path only. Changed tags are not noticed until you delete cplay_lib.db.
Artists credited as “feat.” appear as separate artists.