Jump to content
Ron Scubadiver

Converting DSD to PCM

Rate this topic

Recommended Posts

I have a some DSD (DSF) files which I would like to convert to PCM for portability and reduced storage space.

 

The main alternatives:

 

1. Use foo_input_sacd in Foobar2000 with 352k output.  Convert using the FIR low pass.  I found this:

http://s-audio.systems/catalog/dsd-filter  It sounds better (to me) and runs faster than the supplied FIR filters.

Next downsample to either 88.2k or 96k using SSRC. 

 

2. Do it with JRiver.

 

Saracon is out because I don't have it.  Tests of Korg Audiogate say it has high noise levels.

 

Any other ideas?

Share this post


Link to post
Share on other sites

Noise level depend on sigma-delta modulator, filter band of DSD decoder, playback apparatus/software. Wider band can cause higher noise level.

 

Read theoretical information about DSD decoders (check articles at the page bottom too) https://samplerateconverter.com/content/dsd-decoder-audio

 

Read independent comparison of DSD to PCM converters http://archimago.blogspot.ru/2015/04/analysis-dsd-to-pcm-2015-foobar-sacd.html


AuI ConverteR 48x44 - HD audio converter/optimizer for DAC of high resolution files

ISO, DSF, DFF (1-bit/D64/128/256/512/1024), wav, flac, aiff, alac,  safe CD ripper to PCM/DSF,

Seamless Album Conversion, AIFF, WAV, FLAC, DSF metadata editor, Mac & Windows
Offline conversion save energy and nature

Share this post


Link to post
Share on other sites
51 minutes ago, audiventory said:

Noise level depend on sigma-delta modulator, filter band of DSD decoder, playback apparatus/software. Wider band can cause higher noise level.

 

Read theoretical information about DSD decoders (check articles at the page bottom too) https://samplerateconverter.com/content/dsd-decoder-audio

 

Read independent comparison of DSD to PCM converters http://archimago.blogspot.ru/2015/04/analysis-dsd-to-pcm-2015-foobar-sacd.html

I didn't get much from the first link.  The second one I am familiar with.  It's a bit dated because he did not test foo_input_sacd.  He concluded Audiogate wasn't as noise free as Saracon  or JRiver.

Share this post


Link to post
Share on other sites

A few test files revealed the following:

 

S-Audio has a medium steep filter starting at 30khz.  There is a lot of high frequency noise left so the bit rate is around 9000 (352k) and the resultant flac file is bloated, say 260k.  JRiver using the 30k, 24 db/octave produced similar results in terms of file size and bitrate.   They had very different looking spectrograms,  but I can't infer anything from that.

 

The 30khz FIR in foobar produced a bitrate of around 5700  at 352k . It's fairly steep.

 

Thee JRiver default filter 24k,  48db/octave had a bitrate around 5400 and a slightly smaller file despite using flac set for compression 6 where I have foobar using 8.  Noise above 24k was absent, although some potentially useful signal between 24 and 30 k was gone.  Of course, I don't know if signal beyond the audible range is useful.  The MQA developers think it's essential as that's what's in their lossy secret sauce stream.

 

The alternatives producing large files have now been eliminated.

Share this post


Link to post
Share on other sites
2 hours ago, mansr said:

https://github.com/mansr/sox

 

There might be a pre-built package for your OS somewhere. I don't know.

I found a windows build somewhere, but haven't tried it yet. Obviously, your work.  I am leaning towards foobar, 30k lowpass FIR and SOX to down sample to 96k based on availability, convenience, speed and SQ.

Share this post


Link to post
Share on other sites
35 minutes ago, Ron Scubadiver said:

I found a windows build somewhere, but haven't tried it yet. Obviously, your work.  I am leaning towards foobar, 30k lowpass FIR and SOX to down sample to 96k based on availability, convenience, speed and SQ.

You can do all of those in one pass with Sox.

Share this post


Link to post
Share on other sites
2 hours ago, mansr said:

You can do all of those in one pass with Sox.

There doesn't seem to be any list of parameters for the DSD patches.  Do those pop up if I run the binary with a /? or -help or something.  Somewhere I saw there are scripts for batch processing.  I am sure it works, but it does get complicated.

Share this post


Link to post
Share on other sites
8 hours ago, Ron Scubadiver said:

There doesn't seem to be any list of parameters for the DSD patches.  Do those pop up if I run the binary with a /? or -help or something.  Somewhere I saw there are scripts for batch processing.  I am sure it works, but it does get complicated.

To convert from DSD to PCM there are no special parameters. A simple "sox input.dsf -b 24 output.flac rate -v 96k" is all you need. If you want to do additional filtering, various options are documented in the manual. The "-b 24" flag is important since otherwise the output will be dithered to 8 bits as the default output precision is the closest available to the input, which is 1-bit in the DSD case. This isn't great, but it's a bit tricky to fix in a good way.

Share this post


Link to post
Share on other sites
9 minutes ago, mansr said:

Whose website is that?

Citation from:  https://audiodigitale.eu/

Quote

In this tutorial I’m going to illustrate how to implement and enable PCM->DSD conversion on-the-fly on Logitech Media Server.

Personally, I prefer to compile SoX-DSD from the GIT instead to use binaries from an unknown site. The man-page I attached in my earlier post has been generated during compilation for my Ubuntu 17.10 (64) installation.

@mansr: Do you know (perhaps more trustworthy) sites providing binaries for various OS of your DSD-enabled SoX?

Share this post


Link to post
Share on other sites
9 minutes ago, klassikmann said:

Personally, I prefer to compile SoX-DSD from the GIT instead to use binaries from an unknown site. The man-page I attached in my earlier post has been generated during compilation for my Ubuntu 17.10 (64) installation.

@mansr: Do you know (perhaps more trustworthy) sites providing binaries for various OS of your DSD-enabled SoX?

I don't, unfortunately.

Share this post


Link to post
Share on other sites
20 hours ago, Ron Scubadiver said:

I didn't get much from the first link. 

 

For better understanding of DSD issues I recommended above to read other links at the page too:

 

1. https://samplerateconverter.com/educational/what-is-dsd-audio

 

2. https://samplerateconverter.com/educational/dsd-converter-files

 

and

 

3. https://samplerateconverter.com/educational/dsd-dsf-dff-audio

 

4. https://samplerateconverter.com/educational/dsd-vs-pcm


AuI ConverteR 48x44 - HD audio converter/optimizer for DAC of high resolution files

ISO, DSF, DFF (1-bit/D64/128/256/512/1024), wav, flac, aiff, alac,  safe CD ripper to PCM/DSF,

Seamless Album Conversion, AIFF, WAV, FLAC, DSF metadata editor, Mac & Windows
Offline conversion save energy and nature

Share this post


Link to post
Share on other sites
20 hours ago, Ron Scubadiver said:

He concluded Audiogate wasn't as noise free as Saracon  or JRiver.

 

Noise and distortions level is first things, that need to check in DSD systems.

 

After it filters linearity and flatness.

 

Next thing is overload tolerance of sigma-delta modulator.

 

Unfortunatelly used DSD demodulator is half of total quality. Because noise is defined by the modulator first.


AuI ConverteR 48x44 - HD audio converter/optimizer for DAC of high resolution files

ISO, DSF, DFF (1-bit/D64/128/256/512/1024), wav, flac, aiff, alac,  safe CD ripper to PCM/DSF,

Seamless Album Conversion, AIFF, WAV, FLAC, DSF metadata editor, Mac & Windows
Offline conversion save energy and nature

Share this post


Link to post
Share on other sites

I found a workaround to the 24k low pass in JRiver which produces smaller files than the 30k, 24 db/ octave built in filter.  Just turn off DSD filtering in advanced options and set up a 30k, 48db/octave in lowpass parametric eq accessed from the conversion options dialogue.

Share this post


Link to post
Share on other sites
1 minute ago, Ron Scubadiver said:

I found a workaround to the 24k low pass in JRiver which produces smaller files than the 30k, 24 db/ octave built in filter. 

 

I'd recommend use 20 kHz filter band (with -170 ... 200 dB suppressing at filter's stop band). Because noise has enough high level after 24 kHz, approximatelly (depend on sigma delta modulator and record).

But you can check wider bands at your playback software/hardware. Sometimes wider band can cause audible noise due intermodulation distortions.

It is general recommendations. There is need to learn each system individually.


AuI ConverteR 48x44 - HD audio converter/optimizer for DAC of high resolution files

ISO, DSF, DFF (1-bit/D64/128/256/512/1024), wav, flac, aiff, alac,  safe CD ripper to PCM/DSF,

Seamless Album Conversion, AIFF, WAV, FLAC, DSF metadata editor, Mac & Windows
Offline conversion save energy and nature

Share this post


Link to post
Share on other sites
51 minutes ago, audiventory said:

I'd recommend use 20 kHz filter band (with -170 ... 200 dB suppressing at filter's stop band). Because noise has enough high level after 24 kHz, approximatelly (depend on sigma delta modulator and record).

 

Then one could as well convert it straight down to 44.1 kHz or 48 kHz sampling rate.

 

I rarely convert DSD to PCM, but I personally prefer to stick to the original filtering specs. Or filter that keeps flat noise floor, IOW largely same slope as the modulator noise has - resulting in practically flat noise floor. And sampling rate converted to 1/16th of the original. That way time domain doesn't get too compromised either. So DSD64 converted to 176.4k PCM.

 

But of course if someone prefers to have traditional brickwall, they also get "PCM-style" sound as a result.

 


Signalyst - Developer of HQPlayer

Pulse & Fidelity - Software Defined Amplifiers

Share this post


Link to post
Share on other sites
47 minutes ago, Miska said:

Then one could as well convert it straight down to 44.1 kHz or 48 kHz sampling rate.

 

Filter 20 kHz and convert to 44 kHz is not the same filter 20 kHz and convert to high resolution from playback point of view. Because DAC is complex system with DSP and analog filter. In my opinion, high resolution is not for ultrasound playback. Because I don't know about direct proofs that ultrasound impact to perceived sound quality.

 

 

49 minutes ago, Miska said:

But of course if someone prefers to have traditional brickwall, they also get "PCM-style" sound as a result.

 

I never heard about "PCM-style" of sound as measurable instance. And I never stumbled about ringing research results.

 

High resolution PCM allow to use wider range of filter transient band steepness. But slope transient band can cause audible noise by utrasound products via intermodulations.


AuI ConverteR 48x44 - HD audio converter/optimizer for DAC of high resolution files

ISO, DSF, DFF (1-bit/D64/128/256/512/1024), wav, flac, aiff, alac,  safe CD ripper to PCM/DSF,

Seamless Album Conversion, AIFF, WAV, FLAC, DSF metadata editor, Mac & Windows
Offline conversion save energy and nature

Share this post


Link to post
Share on other sites
2 hours ago, Miska said:

 

Then one could as well convert it straight down to 44.1 kHz or 48 kHz sampling rate.

 

I rarely convert DSD to PCM, but I personally prefer to stick to the original filtering specs. Or filter that keeps flat noise floor, IOW largely same slope as the modulator noise has - resulting in practically flat noise floor. And sampling rate converted to 1/16th of the original. That way time domain doesn't get too compromised either. So DSD64 converted to 176.4k PCM.

 

But of course if someone prefers to have traditional brickwall, they also get "PCM-style" sound as a result.

 

I don't know if it is right, but I see a lot of posts saying 88.2x24 has the same amount of information as  DSD64.  Then again, those post were not written by someone who develops resampling and conversion software.  On the filters being at too low a frequency, anything below 30k, and possibly higher, I agree.  The part I don't understand is why signal way above the audible range is important.  It certainly is important to the MQA crowd since their secret sauce is lossy compression of frequencies above 24k.

 

If I have to stay at 176 with a 50k (SACD specifcation IIRC) filter there will not be enough of a reduction in file size to make the task worthwhile.

 

From the looks of the output spectrogram the JRiver 24k filter is steeper than the specified 48db/octave slope.  Perhaps 60 or 72.

Share this post


Link to post
Share on other sites
45 minutes ago, Ron Scubadiver said:

I don't know if it is right, but I see a lot of posts saying 88.2x24 has the same amount of information as  DSD64.

This is certainly true in the sense that there's very little music that has any content exceeding the DSD64 noise level at 44 kHz. In other words, anything that isn't drowned out by modulator noise can be represented in 88/24 PCM.

Share this post


Link to post
Share on other sites
43 minutes ago, mansr said:

This is certainly true in the sense that there's very little music that has any content exceeding the DSD64 noise level at 44 kHz. In other words, anything that isn't drowned out by modulator noise can be represented in 88/24 PCM.

That sounds like a well reasoned approach.  

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...