Team, a company named dSC recently published a specification for direct
dsd playback via existing pcm pipe line. This is not the same as converting the
dsd data to pcm as the original dsd data is maintained for playback at the dac.
Please read on to understand what they proposed!
The audio player takes the real, genuine, raw DSD DFF file. It then
extracts the raw DSD from the file. To send this raw DSD to the DAC,
we have to use a carrier format that is known to work for existing
operating systems, and has infrastructure commonly in use, to ensure
the standard is open and quick to implement. To this end we looked at
the available formats, and some quick sums bring us:
DSD = 1 bit at 2.822400 MHz per channel
CD = 16 bits at 44100Hz per channel
16/176 = 16 bits at 176400Hz = 2.822400MBits a second per channel -
the exact same number of bits as raw DSD.
This means that we can pack the same data as either 16/176400 or
1/2822400. If we then use a very common format, 24/176400 we have an
extra 8 bits per sample we can use as an indicator (10101010) to the
DAC that the data is DSD.
The DAC receives these samples via the audio interface, and looks for
the top 8 bits being 10101010 on both channels all the time. It can
then discard these 8 bits, which leaves us with the same bits that
were in the original DSD file. The DAC can now feed this raw DSD into
it's DSD input.
I have code to convert the dsd to packed pcm per the specification and
was wondering if this feature can be added to DBPowerAmp. I can provide
my code as needed and I can test the plug-in. The idea is to
convert the dsdiff file to flac/wav so that "any" player could stream the dsd content
to dacs. This would also allow for proper tags to be added to the resulting flac/wav file.
You can find the dCS specification here:
Thanks
JR
dsd playback via existing pcm pipe line. This is not the same as converting the
dsd data to pcm as the original dsd data is maintained for playback at the dac.
Please read on to understand what they proposed!
The audio player takes the real, genuine, raw DSD DFF file. It then
extracts the raw DSD from the file. To send this raw DSD to the DAC,
we have to use a carrier format that is known to work for existing
operating systems, and has infrastructure commonly in use, to ensure
the standard is open and quick to implement. To this end we looked at
the available formats, and some quick sums bring us:
DSD = 1 bit at 2.822400 MHz per channel
CD = 16 bits at 44100Hz per channel
16/176 = 16 bits at 176400Hz = 2.822400MBits a second per channel -
the exact same number of bits as raw DSD.
This means that we can pack the same data as either 16/176400 or
1/2822400. If we then use a very common format, 24/176400 we have an
extra 8 bits per sample we can use as an indicator (10101010) to the
DAC that the data is DSD.
The DAC receives these samples via the audio interface, and looks for
the top 8 bits being 10101010 on both channels all the time. It can
then discard these 8 bits, which leaves us with the same bits that
were in the original DSD file. The DAC can now feed this raw DSD into
it's DSD input.
I have code to convert the dsd to packed pcm per the specification and
was wondering if this feature can be added to DBPowerAmp. I can provide
my code as needed and I can test the plug-in. The idea is to
convert the dsdiff file to flac/wav so that "any" player could stream the dsd content
to dacs. This would also allow for proper tags to be added to the resulting flac/wav file.
You can find the dCS specification here:
Thanks
JR
Comment