DpdoPlayerEngine — DSD 오디오 플레이어
개요
DpdoPlayerEngine는 DSD 재생에 최적화된 CLI 오디오 플레이어입니다. 네이티브 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 브리지 모드
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를 넣어도 마커가 일반 PCM으로 재생될 뿐입니다(들리는 것은 히스). 불가로 판정된 엔드포인트에서는 -dop force가 거부되고 자동으로 DSD→PCM 재생으로 전환됩니다. GUI(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
볼륨 범위: 0–100, 기본값은 장치 초기 설정에 따라 다릅니다.
볼륨은 장치 측(Linux = ALSA 하드웨어 믹서, 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 --oversampling 64 --pipe | DpdoPlayerEngine - -vol 80
# 실제 시나리오: 녹음 실시간 모니터링
DpdoEngine --record recording.dsf --pipe | DpdoPlayerEngine - -stream
여기서 -는 stdin에서 오디오 데이터를 읽는다는 뜻입니다.
전체 재생 예시
# 고사양 재생 설정
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 소스)
장치가 나열되지 않음
- OS에 DAC 드라이버 설치 확인
- Linux에서 ALSA 설정 확인
- USB 연결 확인
GUI 버전

위: 플레이어 GUI(DpdoPlayer). 패커와 오디오 도구의 GUI 는 각 제품 페이지에 있습니다.
DpdoPlayer를 선택하는 이유
DSD 재생 자체는 다른 프로그램도 합니다. DpdoPlayer는 다음 부분을 구체적으로 구현했습니다(모두 검증 가능한 동작입니다).
- DSD 네이티브 출력 + 확실한 대비책: native / DoP 우선. DSD를 지원하지 않는 DAC도 PDM2PCM 실시간 디코딩으로 재생됩니다. 믹싱이 필요한 구성은 자동으로 디코딩 재생으로 전환하고 로그에 명시합니다.
- 여러 DAC를 전제로 한 설계: 채널당 DAC 1대(차동/밸런스, BTL) 또는 다채널 DAC 1대. 장치↔채널 매핑을 설정할 수 있어 배선 그대로 구성합니다.
- 설정 가능한 채널 구성, 절대 조용히 바꾸지 않음: 믹스 행렬 + 믹스 게인(프리셋 direct / bs775 / all-channel-stereo 또는 사용자
*.json, GUI와 CLI가 같은 구성). 잘못된 구성(알 수 없는 채널 이름, 계수 범위 초과, 길이 불일치)은 재생을 거부합니다. - 듣기 전에 클리핑을 알 수 있음: 실측 스캔이 현재 구성으로 소재 전체를 통과시켜 채널별 피크, 클리핑 여부, 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, 엔진은 양쪽 공통입니다.