Skip to content

Releases: Kosmodrom-lab/CPlay

cplay v2.5

Choose a tag to compare

@Kosmodrom-lab Kosmodrom-lab released this 24 Oct 00:18
aaca212

Release v2.5 — Dynamic Memory Blitting, Integrated DSP & Responsive Engine

cplay v2.5 introduces a complete architectural refactoring of the console blitting pipeline, expanding matrix memory buffering across all UI screens, upgrading real-time audio telemetry, and delivering a rock-solid high-DPI options interface.

🚀 Key Improvements & Features
🎛️ Dual-Screen & Matrix Memory Blitting Pipeline
Zero-Flicker Full-Matrix Buffering: Extended direct video memory matrix writes (CHAR_INFO) across all screens (Player View, EQUALIZER & DSP, Audio Engine & Accessibility, and Playlist Browser).

Single Atomic Flushes: Standardized screen updates using FlushBufferEx(), eliminating console flicker and cursor tearing during rapid navigation.

📊 Live Hardware Monitoring
Smart Device Label Extraction: Parsed and clean-formatted active Windows audio endpoints (extracting core device descriptions) aligned flush-right on the bottom telemetry bar.

🎚️ High-DPI Responsive Graphic EQ & DSP Module
High-DPI Responsive Response Curve: Re-engineered DrawEqResponseGraph() to scale dynamically with Windows Display DPI scaling (100%, 125%, 150%, 200%), ensuring smooth rendering on high-resolution displays.

Re-aligned Options Layout: Shifted options listboxes and parameter form down by 1 row to give the header room to breathe and eliminate bottom label clipping on the EQ response graph.

Integer-Scaled Parameter Logic: Refactored floating-point EQ gain evaluations across numeric form displays and file persistence to pure integer math, guaranteeing deterministic formatting.

⚡ Performance & Engine Refinements
Optimized Cover Art Scaling: Reduced background GDI software scaling frequency from 20 FPS to a balanced 1-second ticker (with instant repaints on window restore), dramatically lowering idle CPU load.

Seamless Audio Device Switching: Built smooth BASS device re-initialization and stream position restoration when changing output soundcards on the fly.

CPlay v2.4

Choose a tag to compare

@Kosmodrom-lab Kosmodrom-lab released this 23 Oct 07:44
fbfbda2

CPlay v2.4 — Release Notes

This release focuses on rendering stability, high-DPI scaling accuracy, and search performance optimizations across Windows 10 and 11 environments.


ߚ What's New & Fixed in v2.4

  • GDI Cover Art & Focus Interruption Fix

    • Fixed an issue where opening external GUI applications (such as tPad) caused the cover art to disappear due to console clipping region invalidation.
    • RenderCoverArtFast() now validates window clipping regions, automatically recreates memory DCs upon context switches, and re-blits on main loop ticks to ensure artwork never vanishes.
    • Added view-state guarding so cover art only renders on the main screen and no longer bleeds through into the Playlist or Options views.
  • Native High-DPI Display Scaling Support

    • Resolved compiler linkage issues with SetProcessDPIAware() by linking user32.ilb.
    • Grid-to-pixel calculations in RenderCoverArtFast() now map 1:1 across 125%, 150%, and 200% display scaling on Windows 10/11 without pixel distortion or blur.
  • Zero-Allocation Playlist Search Acceleration

    • Replaced INSTR(LCASE$(...), LCASE$(...)) in FilterPlaylist() with Fletchie's xinstr() using direct string pointers (&fileNameOnly, &cleanQuery).
    • Completely eliminated temporary heap allocations (LCASE$) during search filters, unlocking instant, lag-free search passes over collections of 40,000+ tracks.

ߎΠKeyboard Controls Reminder

Key Function
Space Play / Pause
Left / Right Seek -5s / +5s
Up / Down Volume Up / Down
N / P Next / Previous Track
S Toggle Shuffle
B Open Playlist Browser & Search
O Open Equalizer & Audio DSP Settings
C / L Toggle Extended Comments / Synced Lyrics
T Cycle Retro Color Themes
Q Exit CPlay

cplay v2.3 — Seamless USB DAC Support & Dynamic Device Switching

Choose a tag to compare

@Kosmodrom-lab Kosmodrom-lab released this 22 Oct 05:53
ccf3e98

🎧 Engine & Hardware Improvements

Universal USB DAC & High-Res Audio Stabilization: Resolved DirectSound device initialization failures (BASS_ERROR_ILLPARAM / Error 20) and driver buffer starvation artifacts across external USB DACs (validated on FiiO Q series and iBasso DC-03 Pro).

On-the-Fly Dynamic Device Switching: Added seamless audio output device switching during active playback without requiring an application restart, dropping active stream handles, or crashing Windows USB audio endpoints.

USB Ring-Buffer Headroom Optimization: Configured BASS buffer timing parameters (BASS_CONFIG_BUFFER, BASS_CONFIG_UPDATEPERIOD, BASS_CONFIG_DEV_BUFFER) specifically tuned to prevent USB audio packet drops and hotplugging stalls under Windows 7+.

🛠 Fixes & Stability

Startup Initialization Order: Fixed a race condition where audio device initialization ran before device enumeration and configuration parsing. The app now scans soundcards and loads cplay.ini first to guarantee correct hardware targeting.

Context Reset on Driver Failures: Implemented forced BASS_Free() calls between BASS driver init attempts to prevent stale DirectSound handle leaks (BASS_ERROR_ALREADY).

Infinite Track-Skipping Prevention: Guarded the main playlist processing loop against dead/lost audio device contexts (hStream == 0), replacing rapid track-skipping loops with clear, interactive user recovery prompts.

Clean Fallback Execution: Improved fallback logic when targeted soundcards are disconnected—gracefully falling back to the default Windows system endpoint without locking audio handles.

cplay v2.2

Choose a tag to compare

@Kosmodrom-lab Kosmodrom-lab released this 22 Oct 03:50
ccf3e98

CPLAY v2.2 - NATIVE DSP ENGINE & ARCHITECTURE UPDATE

SUMMARY OF CHANGES

  1. AUDIO ENGINE & DSP UPGRADES

    • Bauer Stereophonic-to-Binaural (BS2B) Crossfeed Filter:
      • Added native 16-bit PCM Crossfeed DSP module (CrossfeedDSP / ApplyCrossfeed)
        to eliminate harsh hard-panning and reduce listening fatigue.
      • Blends attenuated (~30%) and low-pass delayed (~220us) signals across channels.
    • Volume Normalization (Exponential AGC):
      • Upgraded automatic gain control (ApplyAgcSmoothed) with dual-rate
        exponential moving averages (fast attack, slow release).
      • Fixed volume "bounce" when switching UI screens by keeping smoothing history.
    • Master DSP Dispatcher Integration:
      • Crossfeed added as the 7th DSP module in ApplyAllDSP.
  2. UI & LAYOUT IMPROVEMENTS

    • Expanded Options Screen Space:
      • DrawOptionsScreen updated to display 7 active DSP modules.
      • Presets Listbox and 10-Band EQ Parameters Form moved down to Row 10.
    • Input Dispatcher Alignment:
      • Updated selection bounds to index 6 for the 7th DSP item.
      • Added spacebar toggle support and crossfeed_enabled INI persistence.
  3. CORE ENGINE & STREAM PIPELINE FIXES

    • Optimized Stream Loop Initialization (WHILE argIdx < g_TrackCount):
      • Reordered loop so CreateTrackStream runs before handle validation.
      • Moved byte position restoring (BASS_ChannelSetPosition) before prebuffering.
      • Placed BASS_ChannelPreBuf(hStream, 2000) at the end of setup to guarantee
        fully processed DSP audio from sample 0.
  4. DOCUMENTATION

    • Added DSP_Guide.txt detailing module operations, equipment profiles
      (IEMs vs. Flatheads), and incompatible DSP combinations.

cplay v2.1

Choose a tag to compare

@Kosmodrom-lab Kosmodrom-lab released this 21 Oct 09:09
39a078d
  • Playlist Browser.

cplay v2.0

Choose a tag to compare

@Kosmodrom-lab Kosmodrom-lab released this 19 Oct 21:06
fb87511
Delete bass2431.inc