The Complete Guide to PCM to DSD Conversion: Principles, Parameters & Practice
Going from PCM to DSD is not just a format change — it is a full resampling + noise shaping + modulation pipeline. This guide explains each step and gives you ready-to-use DpdoEngine configurations.
1. What is DSD, and why convert to it?
DSD (Direct Stream Digital) is a 1-bit audio format developed by Sony/Philips for SACD in the late 1990s. Unlike PCM, which represents amplitude with multi-bit samples, DSD uses an extremely high sample rate (2.8224 MHz at DSD64) and represents the signal as a 1-bit pulse-density stream — the density of the bitstream encodes the signal amplitude.
Why convert PCM to DSD?
- Playback-chain alignment: Modern DACs are internally delta-sigma based — PCM input is ultimately converted to a 1-bit-like stream inside the DAC. Converting to DSD in advance moves the modulation to the source, bypassing the DAC's second conversion stage.
- SACD ecosystem: SACD images and many players/software accept DSD formats only (DSF/DFF).
- Listening preference: Some listeners find DSD's high-frequency roll-off softer and its shaped noise distribution more "analog-like" — subjective, of course; the rest of this guide sticks to measurable data.
⚠️ Important premise: conversion creates no information. High-frequency content absent from the PCM source will not appear after conversion. The goal is transparency — faithfully mapping PCM into the DSD domain with minimal loss. This is also the essential difference between "pure DSD" (native DSD recordings) and "converted DSD": the former is DSD from the recording stage; the latter is a re-expression of PCM material.
2. The PCM → DSD conversion pipeline (three stages)
2.1 Resampling (oversampling)
The PCM sample rate (44.1/96/192 kHz…) is far below the DSD output rate (2.8224 MHz and up). The converter must first interpolate the samples to the target rate.
- DSD64 (2.8224 MHz) = 44.1 kHz × 64 → oversampling ratio OSR=64
- DSD128 (5.6448 MHz) = ×128 → OSR=128
- DSD256 (11.2896 MHz) = ×256 → OSR=256
Quality point: the resampling filter design directly determines conversion transparency and phase response. FIR filters (finite impulse response) are the mainstream choice — more taps mean a steeper filter and better stopband attenuation, at the cost of computation. DpdoEngine defaults to FIR with auto taps (minimum 4096 window / 512 Remez).
2.2 Noise shaping
When reducing the resampled multi-bit signal to 1-bit, quantization error produces enormous noise. Noise shaping uses a feedback loop to push that quantization noise into the ultrasonic band (>20 kHz) where the ear is insensitive, preserving in-band SNR.
- Order: 3/5/7/9/11. Higher orders push the noise further away — lower in-band noise floor, higher out-of-band peak, steeper shaping curve — at the cost of modulator stability margins and computation.
- Structures: IIR (infinite impulse response) and FIR families. IIR is computationally efficient with better in-band performance at a given order; FIR offers linear phase and constant group delay, suited to phase-sensitive mastering.
- DpdoEngine default: 7th-order IIR; MASH, CIFB and polynomial structures also available.
2.3 Modulation & output
The shaped signal is finally generated as a 1-bit PDM stream, packaged into a DSF or DFF container (optionally with DST lossless compression, reducing size by 30–50%).
3. Choosing parameters: a practical decision table
| Goal | Recommended config | Rationale |
|---|---|---|
| General playback (streaming/portable) | OSR 64, 7th-order IIR | Best DSD64 compatibility; in-band noise already very low |
| Audiophile playback | OSR 128, 11th-order IIR | Higher rate + strongest in-band shaping; double the file size is acceptable |
| Mastering/archival | OSR 128–256, FIR | Linear phase; predictable behavior through multi-stage processing |
| Low-end CPU | OSR 64, 7th-order IIR | Low compute; real-time priority |
| Multichannel SACD authoring | OSR 64–128, 9th-order IIR + DST | DST noticeably shrinks the image |
In-band noise: the essence of noise shaping is pushing quantization noise further away — higher orders press the in-band floor lower, raise the out-of-band peak, and steepen the curve. The audible difference between the default 7th order and 11th order shows most in quiet passages and high-frequency detail; verify with dsp_bench/thdn measurements.
4. In practice: converting with DpdoEngine
Basic conversion
# WAV → DSF (DSD64, default 7th-order IIR)
DpdoEngine -i input.wav output.dsf --oversampling 64
# FLAC → DFF (DSD128, 11th-order IIR)
DpdoEngine -i input.flac output.dff --oversampling 128 --order 11
# Full setup: OpenCL acceleration + metadata + PDF report
DpdoEngine -i input.flac output.dsf --oversampling 256 --order 7 \
--opencl --report --artist "Artist" --album "Album" --year "2026"
Batch conversion
# Batch WAV → DSF (using the convert script shipped with the release)
cd album-directory
bash convert wav2dsf 128
Verifying quality after conversion
# Measure distortion and noise floor of the output (THD+N)
thdn output.dsf
# Compare in-band performance of different noise shaping orders
dsp_bench --input test.wav --order 9 --order 11
5. FAQ
DSD64/128/256 — which one? First check what your DAC and playback chain support. If all are supported, 128 is the sweet spot between sound and size; 64 has the widest compatibility; 256+ is for when storage is no object.
DSF or DFF? DSF is the most common container (good metadata support, widest software compatibility); DFF is the broadcast-industry standard. No substantive audio difference — default to DSF.
Should I use DST? DST is lossless compression, saving 30–50% with perfect reversibility. Recommended for archiving or image authoring; skip it if you prefer minimal decode complexity.
Does the PCM source rate matter? Yes. Higher source rates mean smaller resampling interpolation error. 44.1 kHz sources convert well, but 96 kHz+ sources are more comfortable at DSD256.
Written by Dpdo. Conversion data based on DpdoEngine 6.68; parameter details in the parameter reference.