DpdoPlayerEngine — DSD 音频播放器
命令行版文件名是 DpdoPlayerEngine;图形界面版文件名是 DpdoPlayer。
概述
DpdoPlayerEngine 是为 DSD 回放优化的命令行音频播放器,支持原生 DSD 直出和 DoP(DSD over PCM)两种传输模式,兼容各类 USB DAC 和 DSD 解码器。
规格速览
| 规格 | 参数 |
|---|---|
| 音频格式 | DSD(DSF / DFF / DST / WSD)· SACD ISO · DTS / DTS-WAV · PCM(WAV / AIFF / FLAC)· ALAC / TTA / WavPack / APE · CUE |
| 传输模式 | 原生 DSD 直出 / DoP(DSD over PCM)/ DSD→PCM 解码播放 |
| 输出模式 | standard / differential / BTL |
| 通道布局 | 立体声 / 多声道直通 / 自定义映射 |
| 流模式 | 低延迟(-stream) |
| 平台 | Windows / Linux / macOS |
| 当前版本 | 6.75.0 |
基本用法
DpdoPlayerEngine <audio_file> [options]
支持的音频格式: - DSD:DSF(.dsf)/ DFF(.dff)/ DST 压缩 DSF/DFF(自动解压播放)/ WSD(.wsd,Korg 格式,自 6.70.0 起)/ SACD ISO(.iso,含 DST 解压) - DTS:.dts / DTS-WAV(核心 2.0–5.1) - PCM:WAV / AIFF / AIFC / FLAC - 无损压缩格式:ALAC(.m4a / .mp4)/ TTA(.tta)/ WavPack(.wv)/ APE(.ape) - 播放表:CUE(分轨无缝) - 暂不支持:MP3 / AAC / OGG
最简单的播放:
# 播放单个 DSF 文件
DpdoPlayerEngine track.dsf
# 播放 DFF 文件
DpdoPlayerEngine track.dff
设备配置
-dev 参数设置音频输出设备:
# 列出可用设备
DpdoPlayerEngine track.dsf -dev list
# 选择指定设备(通过设备 ID)
DpdoPlayerEngine track.dsf -dev 1
# 选择指定设备(通过设备名称)
DpdoPlayerEngine track.dsf -dev "USB Audio DAC"
设备列表输出示例:
Available audio devices:
0: Default Output
1: USB Audio DAC (ALSA)
2: HDMI Audio Output
通道布局
-layout 参数配置输出通道映射:
# 强制立体声输出(左右声道)
DpdoPlayerEngine track.dsf -layout stereo
# 强制多声道直出
DpdoPlayerEngine track.dsf -layout multichannel
# 自定义映射(左声道映射到输出 1,右声道映射到输出 2)
DpdoPlayerEngine track.dsf -layout "1,2"
布局选项
| 值 | 说明 |
|---|---|
stereo | 标准立体声 |
multichannel | 多声道直通 |
reverse | 左右声道互换 |
mono | 单声道混合 |
custom | 自定义通道映射(逗号分隔通道索引) |
播放模式
-mode 设置输出模式:
# 标准模式
DpdoPlayerEngine track.dsf -mode standard
# 差分输出(Differential)
DpdoPlayerEngine track.dsf -mode differential
# BTL 桥接模式(Bridge-Tied Load)
DpdoPlayerEngine track.dsf -mode btl
模式说明
| 模式 | 说明 | 适用场景 |
|---|---|---|
standard | 标准单端输出 | 通用兼容模式 |
differential | 差分信号输出,每声道正反相两路输出 | 平衡 DAC |
btl | BTL 桥接负载,正端和负端反相驱动 | 高功率输出 |
DoP 模式(DSD over PCM)
-dop 控制 DSD over PCM 行为:
# 自动选择 DoP 或原生 DSD
DpdoPlayerEngine track.dsf -dop auto
# 强制 DoP 模式
DpdoPlayerEngine track.dsf -dop force
# 强制原生 DSD 模式
DpdoPlayerEngine track.dsf -dop native
能否真的走 DoP 由设备侧证据判定:端点「能开 176400 独占」不等于「能解 DoP」—— 板载声卡电路上就没有 DSD 通路,被喂 DoP 只会把 DoP 标记当普通 PCM 放出来(听到的是丝丝声)。判为不支持的端点,-dop force 会被拒绝并自动改用 DSD→PCM 解码播放;图形界面(DpdoPlayer)的设备下拉会直接显示判定(⟨DoP 2x⟩ / ⟨DoP 1x⟩ / ⟨DoP 未确认⟩ / ⟨仅 PCM⟩),判定不确定的设备可点「标记为 DSD 解码器」一键标记。
DoP 选项
| 值 | 说明 |
|---|---|
auto | 自动检测设备能力,选择最优传输方式 |
force | 强制使用 DoP 封装(将 DSD 嵌入 24-bit PCM 帧传输) |
native | 强制使用原生 DSD 传输(需设备支持) |
提示: 大多数现代 USB DAC 支持原生 DSD 传输,建议先尝试
native。若出现噪音或无声,切换到force模式。
音量控制
-vol 设置播放音量(百分比):
# 设置音量为 80%
DpdoPlayerEngine track.dsf -vol 80
# 最大音量
DpdoPlayerEngine track.dsf -vol 100
# 低音量监听
DpdoPlayerEngine track.dsf -vol 30
音量范围:0–100,默认值取决于设备初始设置。
音量直接改设备侧的硬件音量(Linux = ALSA 硬件 mixer,Windows = 端点音量),宿主不做数字衰减 —— 1-bit DSD 过一遍软件乘法就是有损的。 不指定
-vol时设备音量原样不动;-vol 100是把设备音量拉到最大。
DSD → PCM 解码播放
-pcm 模式让没有 DSD 硬解能力的 DAC 也能播放 DSD 文件:播放时通过 Pdm2Pcm 实时解码为 PCM 输出。
# 自动采样率解码播放(DSD/64 或 DSD/32)
DpdoPlayerEngine track.dsf -pcm
# 指定解码采样率
DpdoPlayerEngine track.dsf -pcm 352800
# 16-bit 输出
DpdoPlayerEngine track.dsf -pcm -pcm-bits 16
-pcm [rate]— 启用 DSD→PCM 解码播放,rate 0(省略)= 自动(DSD/64 或 DSD/32)-pcm-bits <16|24|32>— 输出位深,默认 24-bit,内置噪声整形把量化噪声推到高频,显著改善听感
提示:24-bit 输出配合噪声整形是音质与兼容性的最佳平衡点;16-bit 适合老式设备,32-bit 适合后续处理链。
流模式
-stream 启用流模式,优化低延迟播放场景:
# 流模式播放
DpdoPlayerEngine track.dsf -stream
流模式特点
- 更低延迟 — 减少音频缓冲区大小
- 实时播放 — 适用于配合管道输入的实时监听场景
- 自动适配 — 根据系统性能动态调整缓冲区
配合 DpdoEngine 管道实现实时转换播放
# 实时转换 PCM → DSD 并通过 DpdoPlayerEngine 播放
DpdoEngine -i input.flac output.dsf -osr 64 -pipe | DpdoPlayerEngine - -vol 80
# 实际场景:实时监听录音
DpdoEngine -record -format dsf recording.dsf -pipe | DpdoPlayerEngine - -stream
其中 - 表示从标准输入读取音频数据。
完整播放示例
# 高规格播放配置
DpdoPlayerEngine sacd_track.dsf \
-dev "USB DAC" \
-layout stereo \
-mode differential \
-dop native \
-vol 85
# 多声道原生 DSD 播放
DpdoPlayerEngine multichannel.dsf \
-dev 1 \
-layout multichannel \
-mode standard \
-dop native
# 低延迟流模式播放
DpdoPlayerEngine live_recording.dsf \
-stream \
-dev 0 \
-vol 70
故障排除
无声音输出
- 确认 DAC 已正确连接并被系统识别
- 使用
-dev list列出可用设备,确认选择了正确的设备 - 尝试切换 DoP 模式:
-dop auto→-dop force(端点没有 DSD 通路时,force会被自动改为 DSD→PCM 解码) - 检查音量设置:
-vol 100
播放有噪音/爆音
- 如果使用原生 DSD 出现噪音,尝试 DoP 模式:
-dop force;但板载声卡等没有 DSD 通路的端点不要用 DoP(只会听到丝丝声)—— 播放器会自动拦下并改走 DSD→PCM - 检查 USB 线质量和连接稳定性
- 尝试降低 DSD 规格(如从 DSD256 降为 DSD128 的源文件)
设备未列出
- 确认操作系统已安装 DAC 驱动程序
- 对于 Linux 系统,确保 ALSA 配置正确
- 检查 USB 连接
图形界面(GUI)版本

上图:播放器图形界面(DpdoPlayer)—— 选文件、挑输出设备、看播放进度。打包器与音频工具各有自己的图形界面,见各自产品页。
为什么选 DpdoPlayer
同样是放 DSD,DpdoPlayer 在下面这几件事上做得更具体(都是可验证的实现,不是宣传语):
- DSD 原生直出,也有兜底:native / DoP 直出优先;没有 DSD 硬解的 DAC 用 PDM2PCM 实时解码照样能放,配了需要混音的方案会自动改用解码播放并在日志里写明。
- 多台 DAC 也能用:一台 DAC 管一个声道(差分 / 平衡、BTL 桥接)或一台多路 DAC;设备↔声道映射可配——外面怎么接线,里面就怎么配。
- 声道方案可配,且不静默:混合矩阵 + 混合音量(预设 direct / bs775 / all-channel-stereo,或自定义
*.json;图形界面与命令行同一份方案)。方案不合法(未知声道名、系数越界、映射长度与设备不符)直接拒绝播放,不会悄悄换成别的口径。 - 播放前先知道会不会削顶:实测扫描用当前方案把整段素材真跑一遍,报每路峰值、是否削顶、以及要落回 0 dBFS 该设的混合音量;另有一个纯矩阵的最坏增益检查(秒出)。
- 位完美路由:分路(每声道各走各的)逐字节不动、没有默认限幅 / AGC / 响度归一化;只有合并才动电平,且系数是静态可复现的。
- 格式覆盖面:DSD(DSF / DFF / WSD / DSD-raw)、SACD ISO(含 DST 解压)、DTS / DTS-WAV、PCM(WAV / AIFF / FLAC)、CUE 播放表(轨间无缝)。
- 音量走设备端点,不动样本数据(1-bit DSD 过一遍软件乘法就是有损);Windows 走 ASIO / WASAPI 独占,Linux 走 ALSA,两端同一个引擎。