Windows · Free · Beta

Hear it. See it. Believe it.

High fidelity, visible at every stage.

ffaudio library album grid (light theme): a wall of 49 album covers, with the transport bar reading FLAC 96k/24. ffaudio library album grid (dark theme): a wall of 49 album covers, with the transport bar reading FLAC 96k/24.

Every player claims to be lossless.

ffaudio lets you check.

At a Glance

A verifiable signal path Every stage, in plain sight
DSD512 Native DSD ceiling
µËÀö¾ý邓丽君 CJK tag repair
WASAPI Exclusive Bypasses the system mixer
Per-track output rate The device follows the track
Native DSD Bitstream over ASIO, straight to the DAC

Bit-Perfectbit for bit to the DAC

A verdict, on the spot
Gapless Seamless within a format
High-precision SRC Shared mode, done right. The system resampler is never used
DoP Standard DSD-over-PCM framing
SACD ISO With DST decoding
Installable FIR Bring your own DSD2PCM filters
64-bit DSP Equalizer · Crossfeed · Convolution IR · ReplayGain
Waveform seek bar · peaks precomputed
From FLAC to SACD Common and obscure lossless alike
CUE · ZIP Imported, no extraction
Search DSL artist:"…" sr:96000
Scrolling lyrics LRC, on the full-screen page
Smart playlists Rule-driven, always current

Signal Path

A signal path you can verify

Open the signal-path panel and every stage is in plain sight: decoding, volume, DSD handling, sample-rate and bit-depth conversion, output format negotiation. The verdict is a badge, right there.

Illustration · PCM, bit-exact

SourceFLAC · 96kHz / 24bit · 2ch DecodeSymphonia OutputASIO · S24 · 96kHz

Bit-Perfectaudio data reaches the DAC bit for bit, unmodified

Illustration · native DSD passthrough

SourceDSF · DSD64 · 2ch ProcessingNative DSD passthrough OutputASIO · DSD64 · 2ch

Bit-Perfectaudio data reaches the DAC bit for bit, unmodified

Illustration · same panel, with DSP engaged

SourceFLAC · 44.1kHz / 16bit DecodeSymphonia DSPEqualizer · 64-bit ResampleHigh-precision SRC · 44.1 → 48kHz OutputWASAPI Shared · F32 · 48kHz

DSP processedevery intervening stage is shown, with the reasons listed

Resampling happens inside the app, already aligned to the system mix rate. The system resampler is never used.

Stylized illustrations, not UI screenshots; stage names and verdict wording are taken from the actual in-app signal-path view.

Five verdicts, five halo colors

The in-app badges and halos share one palette. The classification is based on what happened to the signal after it left the source file:

  • Bit-Perfect · gold

    Audio data reaches the DAC bit for bit, unmodified.

  • Lossless conversion · purple

    Numerically reversible container and format changes (e.g. 16-bit carried in a 32-bit container, format normalization). Sample values untouched.

  • Rate-domain conversion · cyan

    Sample-rate conversion or DSD2PCM: the signal is reconstructed in another rate domain, with no subjective voicing.

  • DSP processed · magenta

    Equalizer, crossfeed, convolution, software volume: active processing that deliberately changes the sound.

  • Unknown · gray

    When the path state cannot be proven, it is labeled unknown. No guessing, no gloss.

No assumptions

The Bit-Perfect badge lights up only when audio data truly reaches the DAC bit for bit. Change one setting that affects the sound and the badge changes on the spot, with every reason listed.

No blind trust

The ASIO output rate is read back from the driver, not remembered from the request. If an external clock overrides the rate, the panel shows the override.

No compromises

In WASAPI shared mode, resampling happens inside the app with a high-precision SRC, aligned to the system mix rate. A dedicated diagnostic states whether the system resampler was bypassed. When it cannot be proven, it reads Unknown.

Three DSD modes, one track

Same DSF, same DAC — only the playback mode changes. The panel rewrites itself stage by stage, and the badge follows.

Native DSD

Signal-path panel: DSF 5.6MHz/1bit 2ch → Native DSD (DSD128 → ASIO Native DSD 1-bit) → ASIO Native DSD (ASIO MADIface USB · DSD128 5.6MHz 2ch), Bit-Perfect badge lit.
The DSD128 bitstream goes to ASIO Native DSD as-is, never entering the PCM domain. Bit-Perfect lit.

DoP

Signal-path panel: DSF 5.6MHz 2ch → DoP Encoder (DSD128 → DoP 352.8kHz/24bit) → ASIO (ASIO MADIface USB · DSD128 352.8kHz 2ch), Bit-Perfect badge lit.
The same bitstream rides inside 352.8kHz/24bit PCM frames. The bits themselves are untouched, so it stays Bit-Perfect.

DSD2PCM

Signal-path panel: DSF 5.6MHz 2ch → DSD to PCM conversion (DSD128 → 352.8kHz S32) → bit-perfect volume passthrough → ASIO (S32 352.8kHz 2ch), badge reading Rate Domain Converted.
Rebuilt into a 352.8kHz S32 PCM domain. No voicing applied — but the badge honestly drops to Rate Domain Converted.

Output & Formats

Output & format support

The output rate follows the track: when the format changes, the device is re-initialized at the track's native format; consecutive tracks in the same format play gaplessly. No global fixed-rate resampling.

Output backends

BackendNotes
ASIOExclusive passthrough with native DSD output; the effective rate is read back from the driver
WASAPI ExclusiveExclusive output, bypassing the system mixer
WASAPI SharedShared mode for any device. Resampling is done in-app with a high-precision SRC aligned to the system mix rate, bypassing the system resampler, with a diagnostic to verify it

DSD playback

ModeNotes
Native DSDRaw DSD bitstream over ASIO, never entering the PCM domain
DoPStandard DSD-over-PCM framing for DoP-capable devices
DSD2PCMMultistage FIR cascade, or a single-stage Direct 641-tap filter (four low-pass cutoffs); loads custom FIR coefficient files (.txt / .bin); F32 / F64 precision

Formats

  • FLAC
  • MP3
  • WAV
  • AAC
  • ALAC / M4A
  • AIFF / AIF
  • APE
  • DSF
  • DFF
  • SACD ISO with DST decoding · stereo

DSD supported up to DSD512 (22.6 MHz).

CUE & archives

CUE sheets

Single-file album images with a .cue are split into individual tracks. Play, search, and queue them directly, or export per-track FLAC.

ZIP import

Audio and CUE inside ZIP archives are discovered during scanning and imported automatically. No manual extraction needed.

Library

A library that takes itself seriously

Smart playlists

Rule-driven collections: combined conditions, nested groups, ordering. Change the rules and the list follows.

Search DSL

Query the library precisely with combined conditions:

artist:"Miles Davis" year:>2000 sr:96000

Waveform seek bar

The seek bar is the waveform. Peaks precomputed and cached.

CUE → FLAC export

Split single-file album images into per-track FLAC by CUE sheet, with filename templates and conflict pre-checks.

Batch tag editing

Including classical-music fields: work, movement, conductor, ensemble, soloists.

Artist relationship graphexperimental

Collaboration, composition, conducting, and ensemble relations visualized, with community and heat views. Off by default; enable in settings.

CJK tag repair

Tag in the fileµËÀö¾ý ffaudio shows邓丽君

Old rips often carry GBK or Big5 tags that display as garbage. ffaudio detects the original encoding and puts the right characters back.

Beta

Download the beta

Notes

  • This is beta software. Features and stability are still being refined; do not run it against the only copy of your library metadata.
  • Portable build only, for now. Unzip and run. No installer.
  • About the "Unknown publisher" prompt: the program carries no Windows code signature. The reason is simple: certificates are expensive, and I have not bought one yet. On first run, SmartScreen will show "Windows protected your PC". Click More info, then Run anyway.
  • On open-sourcing: this is my first large project — the comments and repository hygiene are still immature. Opening the source is deferred until it ships alongside the future macOS / Linux builds.

Requirements

System requirements

Operating system
Windows 10 / 11 (x64)
ASIO output
Requires the device vendor's ASIO driver
WASAPI output
Built into Windows, no extra driver

Colophon

A note from the developer

ffaudio is designed and developed by one person.

If ffaudio has been useful to you, a tip or donation is welcome. And if you know of an opening, a pointer would be much appreciated.