DpdoPlayerEngine — DSD 音頻播放器
概述
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,兩端同一引擎。