DpdoPlayer — DSD 音频播放器

概述

DpdoPlayer 是为 DSD 回放优化的命令行音频播放器,支持原生 DSD 直出和 DoP(DSD over PCM)两种传输模式,兼容各类 USB DAC 和 DSD 解码器。

规格速览

规格参数
音频格式DSF / DFF / DST(自动解压播放)
传输模式原生 DSD 直出 / DoP(DSD over PCM)
输出模式standard / differential / BTL
通道布局立体声 / 多声道直通 / 自定义映射
流模式低延迟(-stream)
平台Windows / Linux / macOS
当前版本6.66.0

基本用法

DpdoPlayer <audio_file> [options]

支持的音频格式: - DSF(.dsf) - DFF(.dff) - DST 压缩 DSF/DFF(自动解压播放)

最简单的播放:

# 播放单个 DSF 文件
DpdoPlayer track.dsf

# 播放 DFF 文件
DpdoPlayer track.dff

设备配置

-dev 参数设置音频输出设备:

# 列出可用设备
DpdoPlayer track.dsf -dev list

# 选择指定设备(通过设备 ID)
DpdoPlayer track.dsf -dev 1

# 选择指定设备(通过设备名称)
DpdoPlayer track.dsf -dev "USB Audio DAC"

设备列表输出示例:

Available audio devices:
  0: Default Output
  1: USB Audio DAC (ALSA)
  2: HDMI Audio Output

通道布局

-layout 参数配置输出通道映射:

# 强制立体声输出(左右声道)
DpdoPlayer track.dsf -layout stereo

# 强制多声道直出
DpdoPlayer track.dsf -layout multichannel

# 自定义映射(左声道映射到输出 1,右声道映射到输出 2)
DpdoPlayer track.dsf -layout "1,2"

布局选项

说明
stereo标准立体声
multichannel多声道直通
reverse左右声道互换
mono单声道混合
custom自定义通道映射(逗号分隔通道索引)

播放模式

-mode 设置输出模式:

# 标准模式
DpdoPlayer track.dsf -mode standard

# 差分输出(Differential)
DpdoPlayer track.dsf -mode differential

# BTL 桥接模式(Bridge-Tied Load)
DpdoPlayer track.dsf -mode btl

模式说明

模式说明适用场景
standard标准单端输出通用兼容模式
differential差分信号输出,每声道正反相两路输出平衡 DAC
btlBTL 桥接负载,正端和负端反相驱动高功率输出

DoP 模式(DSD over PCM)

-dop 控制 DSD over PCM 行为:

# 自动选择 DoP 或原生 DSD
DpdoPlayer track.dsf -dop auto

# 强制 DoP 模式
DpdoPlayer track.dsf -dop force

# 强制原生 DSD 模式
DpdoPlayer track.dsf -dop native

DoP 选项

说明
auto自动检测设备能力,选择最优传输方式
force强制使用 DoP 封装(将 DSD 嵌入 24-bit PCM 帧传输)
native强制使用原生 DSD 传输(需设备支持)

提示: 大多数现代 USB DAC 支持原生 DSD 传输,建议先尝试 native。若出现噪音或无声,切换到 force 模式。


音量控制

-vol 设置播放音量(百分比):

# 设置音量为 80%
DpdoPlayer track.dsf -vol 80

# 最大音量
DpdoPlayer track.dsf -vol 100

# 低音量监听
DpdoPlayer track.dsf -vol 30

音量范围:0–100,默认值取决于设备初始设置。

建议在驱动级使用 DAC 自带音量控制,DpdoPlayer 的音量仅在数字域调整,降低音量会损失部分动态范围。


流模式

-stream 启用流模式,优化低延迟播放场景:

# 流模式播放
DpdoPlayer track.dsf -stream

流模式特点

  • 更低延迟 — 减少音频缓冲区大小
  • 实时播放 — 适用于配合管道输入的实时监听场景
  • 自动适配 — 根据系统性能动态调整缓冲区

配合 DpdoEngine 管道实现实时转换播放

# 实时转换 PCM → DSD 并通过 DpdoPlayer 播放
DpdoEngine -i input.flac output.dsf -osr 64 -pipe | DpdoPlayer - -vol 80

# 实际场景:实时监听录音
DpdoEngine -record -format dsf recording.dsf -pipe | DpdoPlayer - -stream

其中 - 表示从标准输入读取音频数据。


完整播放示例

# 高规格播放配置
DpdoPlayer sacd_track.dsf \
  -dev "USB DAC" \
  -layout stereo \
  -mode differential \
  -dop native \
  -vol 85

# 多声道原生 DSD 播放
DpdoPlayer multichannel.dsf \
  -dev 1 \
  -layout multichannel \
  -mode standard \
  -dop native

# 低延迟流模式播放
DpdoPlayer live_recording.dsf \
  -stream \
  -dev 0 \
  -vol 70

故障排除

无声音输出

  1. 确认 DAC 已正确连接并被系统识别
  2. 使用 -dev list 列出可用设备,确认选择了正确的设备
  3. 尝试切换 DoP 模式:-dop auto-dop force
  4. 检查音量设置:-vol 100

播放有噪音/爆音

  1. 如果使用原生 DSD 出现噪音,尝试 DoP 模式:-dop force
  2. 检查 USB 线质量和连接稳定性
  3. 尝试降低 DSD 规格(如从 DSD256 降为 DSD128 的源文件)

设备未列出

  1. 确认操作系统已安装 DAC 驱动程序
  2. 对于 Linux 系统,确保 ALSA 配置正确
  3. 检查 USB 连接