DSD over PCM (DoP) Playback - sbooth/SFBAudioEngine GitHub Wiki
DSD over PCM (DoP) playback has been tested on both macOS and iOS.
DoPDecoder
supports DSD64, DSD128, and DSD256 as well as the 48.0 KHz variants 6.144 MHz and 12.288 MHz.
In order for playback to work correctly the DAC must support DoP at the specified sample rate, and the sample rate for the device (macOS) or session (iOS) must be set to that of the DoPDecoder
's processing format. Resampling destroys the DoP marker and the DAC won't recognize the signal.
Nomenclature | DSD Sample Rate | DoP Sample rate |
---|---|---|
DSD64 | 2.8224 MHz | 176.4 kHz |
DSD128 | 5.6448 MHz | 352.8 kHz |
macOS Example
if let device = AudioObject.make(player.outputDeviceID) as? AudioDevice {
do {
try device.setSampleRate(/* Desired DoP sample rate */)
}
catch let error {
// Handle error
}
}
iOS Example
let session = AVAudioSession.sharedInstance()
try? session.setActive(false)
do {
try session.setPreferredSampleRate(/* Desired DoP sample rate */)
try session.setActive(true)
}
catch let error {
// Handle error
}