DoP vs DSD delivered to Gryphon by macOS

Sanity check, please.

I did an A/B comparison between a native DSD file and a DoP FLAC file. Intel MacBook Pro running Monterey feeding the iFi XDSD Gryphon DAC via a USB-C connection. The Gryphon was set to use its GTO filter.

There was a noticeable degradation of sound quality when listening to the DoP FLAC file. Both files were decoded as DSD64 by the Gryphon. So I switched the DAC into bit perfect mode and then both files sounded identical.

Jussi Laako at Signalyst mentioned in a different topic that DACs with Burr Brown chips bypass the delta sigma modulators and perform bit perfect D/A conversions when they’re fed DSD audio.

Does it make sense that a DoP FLAC file would be treated initially as a PCM audio file by the DAC, but a native DSD file passed as DoP by the OS would not?

If that is really what happens, then that would explain why the GTO filter setting produced sonic differences between the two files.

What is this? DoP takes a DSD file and encapsulates it in a PCM stream. It’s still a native DSD signal when the DAC receives it, so both should be identical.

Interesting. In theory, once you encapsulate DSD in PCM, you can also put it into a FLAC container. I assume that’s what the OP is using. I haven’t heard of this before to be honest, and I’m not sure why one would want to do that instead of just using DSF files and configure the driver to do native or DoP packaging. While I’m not familiar with the details of DoP, I think it uses some marker bits for detection, so it has some overhead over PCM. I also suspect FLAC will not be able to compress the file much. DSF also supports metadata (ID3v2) so again I don’t see the benefit…

Neither am I. All I know is that when I play DSD over PCM my DAC recognizes DSD.

If the DAC mistook DoP for PCM, the output should not resemble any music genre…

@Jeff_Bellune, you could try to play a DSF or DFF file and configure the output to use native DSD first, then DoP, and see if there’s any difference in output, to see if the DAC is treating the two any differently.

dBPoweramp will let you convert a .dsf file to DoP FLAC. The reason I use that conversion is twofold:

  1. Cloud storage of my .dsf files for multiple device access and archive is not possible with current versions of the storage software that I use (VOX and VOX Universe). FLAC files encoded as DoP are accepted readily.
  2. Some players won’t play .dsf files but they will pass DoP FLAC to the DAC. (I use Roon a lot, but not exclusively.)

@Marian , my library is on a Mac, which doesn’t allow ASIO. Therefore, all DSD audio is sent by the OS as DoP, even in Roon.

So the difference between playing a native DSD file and a DoP FLAC file is that in the first case, the OS is packaging DSD in DoP, while in the second case, it’s been done by dbPoweramp, right? If so, the DAC receives DoP in both cases, so unless there’s a bug in dbPoweramp, it should be the same thing.

1 Like

If I set the DAC to bit-perfect D/A conversion, then the DoP from the OS and the DoP FLAC sound identical. No bug suspected in dBPoweramp.

If I have one of the DAC’s built-in filters active, there is a difference in the way the two DoP packages sound. I perceive that difference as “degraded”.

Since the BurrBrown chip in the DAC automatically does bit-perfect conversion of DSD audio, effectively bypassing the built-in filter, I have to assume that the DAC applies the filter to the DoP FLAC like it would for any normal FLAC file even though the DoP FLAC file contains DSD audio.

I only asked about that here to see if anyone else thinks that is a reasonable assumption, or if anyone knows for sure that is what’s going on.

But if you treated DoP as PCM, wouldn’t you get garbage out? Also, shouldn’t the DAC identify the stream as PCM? Can you clarify how is the sound “degraded”?

Apparently not.

I think it sees the FLAC file, assumes PCM, applies the filter, unpacks the DSD stream and then does a D/A conversion on the DSD stream. I also think when it gets DoP audio from the OS, it sees it as DSD right away, bypasses the filter and does the D/A conversion on the packed DSD stream.

The DoP FLAC is less warm, harsher and has a bit more reverb than the OS DoP stream. Again, if I disable the filter on the DAC and put it into bit-perfect mode, the two streams sound identical.

In the earliest days when the software you depend on did not recognize DSF, it was a necessity to workaround software limitation.

At Lumin we actually pioneered DSD network streaming in 2012, so we knew of the time when none of the UPnP servers would serve DSF file. At that time DoP file was the only possible way to do DSD network streaming.

DoP was invented at a time when USB DAC only recognized PCM, not native DSD.

It is a fundamental requirement of a USB DSD DAC to be able to recognize the DSD data encapsulated in a PCM stream - no matter it is a DoP file or the OS encapsulates it just before sending it to DAC.

2 Likes

Do you know whether it can do the opposite i.e. DoP file to DSF ? A few years ago we checked this and thought this was not supported.

I suggest you ask the manufacturer.

Granted. I meant to say that if the DAC confused DoP with PCM, it would display PCM, not DSD.

Two words: no way. It doesn’t work like that. If you interpret DoP as mere PCM, this is what would happen: “If this should happen it would create a tone around 88kHz and roughly -34db, nothing harmful and something that most D/A converters would suppress to some degree before it even reaches the loudspeaker.” The DAC has to detect DoP at input and route the signal based on that. Once the signal enters the up-sampling filter, there is no more detection or extraction. As @wklie said, if the DAC says DSD, it must have detected DoP correctly at input.

Roon sends the PCM stream not the file container. Do you have different results with different players? Also, when using Roon are you using System or Device output?

First, thank you everyone for you comments and information. I appreciate it!
I’ll try to answer these in order.

I don’t see a straightforward way to do it. I’ve asked on the DBPA forum so hopefully I’ll get a definitive answer for you.

Sadly, I’ve asked technical questions of iFi support before, and I received answers that were either factually incorrect or not relevant to my question. I have no hope whatsoever that I would get an accurate and relevant answer to this particular question.

So that leaves me puzzled at the behavior I see with this DAC. Do you have any ideas as to why I would hear a difference in the audio when a filter is selected at the DAC and when bit-perfect is selected when a DoP FLAC file is the source? For DSD source audio passed as DoP by macOS, filter selection does not affect the audio that I hear. Even wild guesses are welcome. :smile:

Roon and (for example) Colibri both behave the same way. DSD .dsf output sound quality at the DAC is not affected by DAC filter choice. DoP FLAC output sound quality at the DAC is affected by DAC filter selection. Here are the relevant signal paths for each in Roon:

DoP FLAC signal path
DSDasDoPSignalPath

DSD DSF signal path

1 Like

Signal paths are as expected.

I have two at this point:

  1. dbPoweramp and Roon/OS encapsulate DoP differently.
    That is very unlikely, as the encapsulation should be lossless. If dbPoweramp can do the reverse conversion from DoP FLAC to DSF, you could do DSF->FLAC->DSF and see if you get the exact same bit stream out.
  2. The perceived differences are purely subjective.
    You should try a blind test, if possible.

If you can’t find a utility to convert from DoP back to DSF, let me know and I’ll look into writing one.

Possible. I will revisit with fresh ears and as blind a test as I can reasonably set up.

VinylStudio Pro will do it for $49.95US. So will the trial version - but only five times. I’ve done it once. I have no way of knowing if the bit streams are identical; Adobe Audition won’t open .dsf files or DoP .flac files. The file sizes of the original .dsf file and the .dsf file created by VinylStudio are identical, however.

1 Like

If you can share the two DSF files, I can check if the bits are the same. How big are they?

Thanks for checking. I just wanted to know whether dbPoweramp might have updated to add that feature since we checked it years ago. The only way that we know of for converting DoP file back to DSF is VinylStudio:

VinylStudio can convert DoP file to DSF. Import the DoP files, make sure that they’re detected as DSD. In the tab for Save Tracks, click More (do not click the Save Tracks button ), choose Convert Recording Format and DSF. After the conversion is done, close VinylStudio and launch Mp3Tag to copy the tags from the DoP files to the newly generated DSF files.

Last time we checked it was possible to do it for a few tracks without purchasing it. So you may carry out the DSF → DoP → DSF conversion as suggested by @Marian.

Assuming the firmware is up to date and there are no misconfiguration in previous experiments, my speculation is some difference at the input interface level triggered an unexpected filter invocation, or the DoP marker is recognized later than filter determination.

Some test you may do:

  • Toggle Roon integer mode setting and see if it makes a difference

  • Adjust Roon resync delay setting and see if it makes a difference

  • Use a non-Roon music software to redo the tests - I have some suspicion that the digital silence Roon may insert at the the beginning may affect this

  • Find another PC and use Windows 10 or 11 built-in USB audio class 2 driver