• WANTED: Happy members who like to discuss audio and other topics related to our interest. Desire to learn and share knowledge of science required. There are many reviews of audio hardware and expert members to help answer your questions. Click here to have your audio equipment measured for free!

PCM vs DSD

That’s probably not correct. From what can be seen from diagrams of the ESS chips, the internal path is always PCM. DSD gets converted to PCM with the same sample rate (by just expanding the bits and applying a selectable low pass), and then the upsampling steps are just skipped. The various chips have some variation here, but they all work in a similar manner.
View attachment 297279


AKM chips are different. There you can actually ship all the PCM conversion and processing and feed 1-bit to the modulators.

Also: how does one do asynchronous DSD resampling?
Um, isn't that just what I wrote, just in other words? Other than these block diagrams we don't have any sources. And these block diagram may miss out important details to keep them low complexity.

Anyway, my main point was that it can be shown, most likely for any ESS DAC and ADC, that in PCM mode there is a periodic wiggle on the transfer function (sample in --> sample out) on the final output DAC and this period is one bit size of the final output DAC (see my hump emulator project). When this wiggle is low enough, there still is HD and IMD but it's buried in the noise. We also know that the disturbance scales exactly with clock frequency of the final output DAC.

This suggests it is a RF glitch energy distribution issue. DACs always have RF glitches on the output but when they average out to a constant value this does not affect distortion at all but that's not what we see in PCM mode, only in DSD mode. Therefore, the feed to the "noise shaped modulators" must be significantly different.
 
The main difference here is obviously the filtering. I wonder if the PCM noise spectrum would be different with different filter selections. Which one did you use in this case?
I believe is the apodizing one (default) as I reseted it all to default values so to be the same with the rest KTB (without a controller like Ian's there no way to select filters,DPLL bandwidth,volume control,etc).

But I can try with different ones,any specific you have in mind?I believe it's the same 7 ones as in every 9038QM.
 
I believe is the apodizing one (default) as I reseted it all to default values so to be the same with the rest KTB (without a controller like Ian's there no way to select filters,DPLL bandwidth,volume control,etc).

But I can try with different ones,any specific you have in mind?I believe it's the same 7 ones as in every 9038QM.
Try linear phase fast rolling, it has better attenuation.
 
Try linear phase fast rolling, it has better attenuation.
As we want to see the energy I did them all with 50Hz to see.
So sine at 50Hz,256K FFT,50 averages (filter names on the chart) :

Cor min fast.PNG Brickwall.PNG Linear fast.PNG Linear slow.PNG Minimum fast.PNG Minimum slow.PNGApodizing.PNG

and all together:

all.PNG

Not much of a difference,the energy is there more or less.
What changes is the very low level spikes,the "energy" is the same.

Edit:It makes sence as the filtering would apply above 10Khz,we could see differences there but the point is this energy appearing in a broad audible spectrum.
(not audible by itself of course,way down)
 
Last edited:
Um, isn't that just what I wrote, just in other words?
No, you implied that they would send 1-bit data to the final stage:
In DSD mode, the signal is 1 bit only and already has the noise shaping applied to it. The final DAC appears to be fed directly with a (even asynchronously) resampled version of that 1-bit stream and the output cells are now switched between large signals on average, not just a few LSB's.
I'm saying that is not the case. It's always PCM going into the multi-bit modulator.

Besides, you haven't told us how DSD async resampling works?
Other than these block diagrams we don't have any sources. And these block diagram may miss out important details to keep them low complexity.
I agree that a lot of information is missing, but the diagram is quite clear on what is going on.

Why have a multi-bit modulator to then bypass it with a 1-bit version for DSD, and have it perform seemingly a bit better? That would be a vast waste of resources.
 
As we want to see the energy I did them all with 50Hz to see.
So sine at 50Hz,256K FFT,50 averages (filter names on the chart) :

View attachment 297489 View attachment 297490 View attachment 297491 View attachment 297492 View attachment 297493 View attachment 297494View attachment 297495

and all together:

View attachment 297496

Not much of a difference,the energy is there more or less.
What changes is the very low level spikes,the "energy" is the same.

Edit:It makes sence as the filtering would apply above 10Khz,we could see differences there but the point is this energy appearing in a broad audible spectrum.
(not audible by itself of course,way down)
That's a nice test. Interesting that there is so little difference!
 
@Sokel, can you perchance post the PCM file you use for testing?
 
@Sokel, can you perchance post the PCM file you use for testing?
You mean the test file?
Tests files are internally generated by Multitone Analyzer but I can export it and share it if you like.
I guess you want the specific 50Hz one?
 
Thanks, a 64-bit file is not what the DAC accepts, is it? It gets converted to 24 or 32-bit somewhere?
To tell you the truth I don't exactly know,DAC's and ADC output and input is set at 32bit.
Here are the settings:

set.PNG

@pkane knows exactly how it does it (thousands of thanks by the way) .

As a side note,I can share the whole dataset of the 50Hz filter measurements later that I get back on my PC so any folk here can import them in MT and inspect it for itself.
 
So,here is the whole dataset of the 50Hz measurements shown on 24 post.
All one has to do is install Multitone,and import the file (through the "History" feature) .

This way can see any possible parameter,settings,etc.
Can't get more transparent than this :p

If someone find any mistakes please tell me,I'm a newbie in measurements,so...

 
All one has to do is install Multitone,and import the file (through the "History" feature) .
Sadly it's Windows only, and it doesn't seem to run in Crossover on MacOS at the moment ;)

Maybe @pkane can recommend what software dependencies might be missing for this to work (like .net version, etc)?
 
Sadly it's Windows only, and it doesn't seem to run in Crossover on MacOS at the moment ;)
It's a pitty cause there are tons of info there,if someone presses the white rectangular on top (the one that usually shows SINAD,etc ) can get a very detailed picture of any measurement and more over can compare the numbers with any or the rest of the measurements.
And off course can see the waveform,zoom in in incredible detail,etc.

Edit: An example of the file:


DescriptionCurrent (COR min fast)BrickwallLinear fastLinear slowMinimum fastMinimum slowApodizing
Title Chart 96kHz, 256k fft, In L Out L+R COR min fast Chart 96kHz, 256k fft, In L Out L+R Brickwall Chart 96kHz, 256k fft, In L Out L+R Linear fast Chart 96kHz, 256k fft, In L Out L+R Linear slow Chart 96kHz, 256k fft, In L Out L+R Minimum fast Chart 96kHz, 256k fft, In L Out L+R Minimum slow Chart 96kHz, 256k fft, In L Out L+R Apodizing
VersionMultitone Analyzer v1.0.84Multitone Analyzer v1.0.84Multitone Analyzer v1.0.84Multitone Analyzer v1.0.84Multitone Analyzer v1.0.84Multitone Analyzer v1.0.84Multitone Analyzer v1.0.84
Test Signal50Hz sine50Hz sine50Hz sine50Hz sine50Hz sine50Hz sine50Hz sine
Test SettingsGain:-4dB Tones:1 crest=1.4Gain:-4dB Tones:1 crest=1.4Gain:-4dB Tones:1 crest=1.4Gain:-4dB Tones:1 crest=1.4Gain:-4dB Tones:1 crest=1.4Gain:-4dB Tones:1 crest=1.4Gain:-4dB Tones:1 crest=1.4
Sample RateFs(out): 96000Hz/L+R Fs(in): 96000Hz/LFs(out): 96000Hz/L+R Fs(in): 96000Hz/LFs(out): 96000Hz/L+R Fs(in): 96000Hz/LFs(out): 96000Hz/L+R Fs(in): 96000Hz/LFs(out): 96000Hz/L+R Fs(in): 96000Hz/LFs(out): 96000Hz/L+R Fs(in): 96000Hz/LFs(out): 96000Hz/L+R Fs(in): 96000Hz/L
FFTSize:262144 Window:Blackman-Harris 7Size:262144 Window:Blackman-Harris 7Size:262144 Window:Blackman-Harris 7Size:262144 Window:Blackman-Harris 7Size:262144 Window:Blackman-Harris 7Size:262144 Window:Blackman-Harris 7Size:262144 Window:Blackman-Harris 7
AveragesAverages:50 Type:Amplitude Overlap:87.5%Averages:50 Type:Amplitude Overlap:87.5%Averages:50 Type:Amplitude Overlap:87.5%Averages:50 Type:Amplitude Overlap:87.5%Averages:50 Type:Amplitude Overlap:87.5%Averages:50 Type:Amplitude Overlap:87.5%Averages:50 Type:Amplitude Overlap:87.5%
Range20 - 20000Hz20 - 20000Hz20 - 20000Hz20 - 20000Hz20 - 20000Hz20 - 20000Hz20 - 20000Hz
Fundamental-2.4dBFS @ 49.8Hz-2.4dBFS @ 49.8Hz-2.4dBFS @ 49.8Hz-2.4dBFS @ 49.8Hz-2.4dBFS @ 49.8Hz-2.4dBFS @ 49.8Hz-2.4dBFS @ 49.8Hz
Level-2.4dBFS -5.4dB(rms)-2.4dBFS -5.4dB(rms)-2.4dBFS -5.4dB(rms)-2.4dBFS -5.4dB(rms)-2.4dBFS -5.4dB(rms)-2.4dBFS -5.4dB(rms)-2.4dBFS -5.4dB(rms)
TD+N-101.3dB-101.3dB-101.3dB-101.3dB-101.3dB-101.3dB-101.3dB
IMD-- dB-- dB-- dB-- dB-- dB-- dB-- dB
THD-109dB-109dB-108.9dB-108.7dB-109dB-108.9dB-108.9dB
Noise-109.9dB-109.8dB-110.1dB-110.1dB-110.1dB-110.1dB-109.9dB
N+D-105dB-105dB-105.1dB-105dB-105.1dB-105dB-105dB
SNR107.5dB107.4dB107.7dB107.7dB107.7dB107.7dB107.5dB
SFDR114.5dB @ 4532.2Hz114.5dB @ 4532.2Hz114.5dB @ 4532.2Hz114.5dB @ 4532.2Hz114.4dB @ 4532.2Hz114.5dB @ 4532.2Hz114.4dB @ 4532.2Hz
ENOB17.4 bits17.4 bits17.4 bits17.4 bits17.4 bits17.4 bits17.4 bits
Delay-1.4ms-2.5ms-1.3ms-2.1ms-2.3ms-2.2ms-2.5ms
Drift0ppm0ppm0ppm0ppm0ppm0ppm0ppm
Jitter(peak)0ps @ 48Hz0ps @ 48Hz0ps @ 48Hz0ps @ 48Hz0ps @ 48Hz0ps @ 48Hz1692ps @ 30.4Hz
Jitter(rms)NaNpsNaNpsNaNpsNaNpsNaNpsNaNps1589.5ps
HarmonicsH2:-110.3dB/-99° H3:-116.4dB/-134° H4:-137.2dB/+77° H5:-120.3dB/-123° H6:-136.4dB/+119° H2:-110.2dB/-99° H3:-116.7dB/-133° H4:-136.4dB/+52° H5:-120.5dB/-122° H6:-135.9dB/+123° H2:-110.3dB/-98° H3:-116.3dB/-133° H4:-137.8dB/+113° H5:-120.0dB/-121° H6:-137.5dB/+135° H2:-110.1dB/-97° H3:-116.0dB/-134° H4:-134.4dB/+96° H5:-120.2dB/-122° H6:-136.3dB/+86° H2:-110.3dB/-99° H3:-116.3dB/-134° H4:-138.5dB/+104° H5:-120.1dB/-123° H6:-136.6dB/+113° H2:-110.2dB/-97° H3:-116.2dB/-133° H4:-139.5dB/+98° H5:-120.1dB/-123° H6:-136.1dB/+97° H2:-110.3dB/-100° H3:-115.9dB/-135° H4:-138.0dB/+134° H5:-120.2dB/-123° H6:-135.5dB/+104°
 
Last edited:
Sadly it's Windows only, and it doesn't seem to run in Crossover on MacOS at the moment ;)

Maybe @pkane can recommend what software dependencies might be missing for this to work (like .net version, etc)?

.NET 4.8, I believe others have tested it with Crossover, I haven't yet. I suspect DSD and ASIO may have some challenges in Crossover, simply because of the extra layer of software needed between the actual audio drivers and Multitone.
 

"PCM vs DSD" !

This topic has been repeatedly, and is now, discussed so intensively in our ASR Forum.

I (too) has been sticking to DSD native playback when I was on the stage of pure 2-Ch stereo using single-stereo-DAC passive LCR-network multi-SP-driver audio setup.

After I have decided to go into the world of DSP(XO/EQ/Delay)-based multichannel multi-SP-driver multi-amplifier fully active stereo audio project, however, at least for myself, I found 88.2 KHz or 96 kHz (so up to 44.1 kHz or 48 kHz in L & R) 24(/32) bit PCM (by on-the-fly down conversion of DSD if it would be the case) should be just "enough" and "practically feasible/needed" whatever the discussions on "PCM vs DSD" would be, theoretically as well as "audible or inaudible".

If you would be interested, you can find my (personal) practical rationales (or I may say "justifications")
here on my project thread.
- Summary of rationales for "on-the-fly (real-time)" conversion of all music tracks (including 1 bit DSD tracks) into 88.2 kHz or 96 kHz PCM format for DSP (XO/EQ) processing: #532
 
.NET 4.8, I believe others have tested it with Crossover, I haven't yet. I suspect DSD and ASIO may have some challenges in Crossover, simply because of the extra layer of software needed between the actual audio drivers and Multitone.
I'm not too worried about that at the moment. Running at all would be great ;)

It could just be my Crossover install. I've had issues with other apps as well that ran fine before... now not even the .net installer will properly run...
 
I'm not too worried about that at the moment. Running at all would be great ;)

It could just be my Crossover install. I've had issues with other apps as well that ran fine before... now not even the .net installer will properly run...
I’ve had hit or miss luck with Crossover. When it works, it’s wonderfully simple, but when it doesn’t, configuring it and installing dependencies can be very challenging.
 
If any friend here wants any other test please let me know.

Just in case it matters, or anyone cares:

PCM with and without "dither"



1kHz tone, 16 and 24 bit, with and without dither.

Traces from back to front:

Orange - 16 bit no dither
Green - 24 bit no dither
Black - 16 bit dithered
Blue - 24 bit dithered

No DAC, just analysis of the tone files

index.php
 
Back
Top Bottom