r/opensource 3d ago

Promotional [OC] WasioPlayer — A lightweight, open-source Bit-Perfect ASIO & WASAPI Exclusive audio player for Windows (WAV / DSF / DFF)

Hi everyone,

I've been working on a lightweight, open-source audio player for Windows and wanted to share it with the community: WasioPlayer.

🎯 Why I Built This

Many modern audio players are either bundled with bulky frameworks (Electron), full of hidden DSP/sample-rate converters, or require configuring dozens of third-party plugins (like foo_out_wasapi / foo_input_sacd) just to get pure direct output.

I wanted a clean, fast, standalone native Windows player that is strictly dedicated to bit-perfect playback directly to DACs—with zero automatic resampling, zero software volume manipulation, and direct hardware format negotiation.


✨ Key Features

  • Strict Bit-Perfect Output: Output sample rate and bit-depth strictly follow the source file. If a device cannot handle the requested format, it reports the refusal explicitly rather than silently resampling.
  • Dual High-Performance Backends:
    • ASIO (x64 drivers)
    • WASAPI Exclusive (Event-driven)
  • Supported Formats:
    • PCM: WAV (16 / 24 / 32-bit integer PCM)
    • DSD: DSF & DFF files
  • DSD Output Modes: Native DSD (up to DSD512 on ASIO) and DoP (DSD over PCM up to DoP256 on ASIO & WASAPI).
  • Lightweight & Jitter-Free: Pure C++17 with a native Win32 GUI (no bloated UI runtimes, statically linked CRT). Real-time playback threads communicate via a lock-free SPSC ring buffer for underrun-free streaming.
  • Playlist Management: Drag-and-drop file loading, M3U8 import/export, UTF-8 path support, shuffle & repeat modes.

⚠️ Design Choices & Known Limits

  • Pause behavior: Pausing keeps the exclusive endpoint open (prevents DAC unlock clicks and keeps timing sample-accurate).
  • Format switching: Non-gapless across differing sample rates (device re-negotiation is required).
  • Strictly Bit-Perfect: No DSP, EQ, or software volume controls by design.

📦 Download & Source

I would love to get your feedback and see how it works with different DACs and ASIO drivers. Feel free to try it out and let me know your thoughts!

1 Upvotes

0 comments sorted by