Jump to content
pkane2001

DeltaWave null-testing audio comparator (beta)

Rate this topic

Recommended Posts

17 hours ago, lucretius said:

Hi Paul,

 

When I close DeltaWave, I get this error message:

 

image.png.7855396ccac6a9f444372bf051ed527f.png

 

Any ideas?  Thanks!

 

That error indicates a permission problem with the ProgramData folder created by DeltaWave.  You should check that the permissions are set properly for your logged-in user in Windows. This is where DeltaWave saves settings that will be used the next time you start it.

Share this post


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

 

That error indicates a permission problem with the ProgramData folder created by DeltaWave.  You should check that the permissions are set properly for your logged-in user in Windows. This is where DeltaWave saves settings that will be used the next time you start it.

 

Thanks, Paul!

 

I adjusted the access settings to the C:\ProgramData\DeltaWave folder and the problem is fixed.  Strangely, I used the same user account that had created the error (this user account previously had full control access to "This folder only" and not the files, etc.) .  Also strange, the _DeltaWaveDefault.dw file already had the appropriate permissions before adjustments.  WIndows ... pffft.

Share this post


Link to post
Share on other sites
On 11/7/2019 at 3:26 PM, Arpiben said:

 Hi @pkane2001

 

In case it helps the gain=4 applied to Comparison is also present with whatever audio files/FFT length/window provided that:

Correct Phase Drift + Measure Simple Waveform + NO Match Gain are enabled. 

Rgds

 

N.B. if Match Gain is enabled then Comparison will have a correction of something like gn = 0.25*****.

 

 

Hi Paul,

 

Summarizing it DW v1.0.46b introduces a gain factor of 4 for comparison file during Matching as soon as Correct Phase Drift is selected. This behaviour was not encountered in previous releases.

Rgds.

Share this post


Link to post
Share on other sites
18 minutes ago, Arpiben said:

 

Hi Paul,

 

Summarizing it DW v1.0.46b introduces a gain factor of 4 for comparison file during Matching as soon as Correct Phase Drift is selected. This behaviour was not encountered in previous releases.

Rgds.

 

Hi Arpiben, thanks for the summary :) I did find and fix this issue. Also  the one reported by Tom related to increased jitter value when using drift correction with simple waveforms. Just need more time to complete my testing before releasing. Let me know if you need an early version, and I can post something you can start using.

Share this post


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

 

Hi Arpiben, thanks for the summary :) I did find and fix this issue. Also  the one reported by Tom related to increased jitter value when using drift correction with simple waveforms. Just need more time to complete my testing before releasing. Let me know if you need an early version, and I can post something you can start using.

 

Great Paul! Take your time there are no blocking points 😉, therefore no need for a pre release. 

I will patiently wait.

Thanks.

Share this post


Link to post
Share on other sites

Hi Paul,

 

I am ok with the corrections brought by the new release but I still have some pending questions if you allow 😉:

 

1° Clock driftt curve seem to have disappeared.

 

2° Dealing with integer offset sample values lead to correct/accurate result only if phase drift is unselected. Otherwise we are getting wrong offset/drift values.

3° Dealing with subsample offset values can you tell what is the expected resolution?

 

For point 2° I understand it all depends on the strategy adopted for the correction but I am a bit disappointed we can not detect such cases even with audio files versus simple waves. 

For point 3°, in case of subsample offsets I would like to know what is the expected resolution. In principle it should depend if you are using or not interpolation and so on... 

 

Thanks a lot Paul.

 

Tests have been performed with a 1kHz pure sine with a fixed timed offset:

y = sin(2*pi*f0*(t+/-TIE)        f0=1kHz / fs=64kHz / TIE= k/fs or 1/(k*fs)

Share this post


Link to post
Share on other sites
1 hour ago, Arpiben said:

Hi Paul,

 

I am ok with the corrections brought by the new release but I still have some pending questions if you allow 😉:

 

1° Clock driftt curve seem to have disappeared.

 

2° Dealing with integer offset sample values lead to correct/accurate result only if phase drift is unselected. Otherwise we are getting wrong offset/drift values.

3° Dealing with subsample offset values can you tell what is the expected resolution?

 

For point 2° I understand it all depends on the strategy adopted for the correction but I am a bit disappointed we can not detect such cases even with audio files versus simple waves. 

For point 3°, in case of subsample offsets I would like to know what is the expected resolution. In principle it should depend if you are using or not interpolation and so on... 

 

Thanks a lot Paul.

 

Tests have been performed with a 1kHz pure sine with a fixed timed offset:

y = sin(2*pi*f0*(t+/-TIE)        f0=1kHz / fs=64kHz / TIE= k/fs or 1/(k*fs)

 

Hi Apriben,

 

1: Which curve has disappeared? Group delay is back in v.47,  maybe in a different color:

image.thumb.png.853b2206eb610a0c341d207785c0e0bc.png

 

2. I'll take a look. I tested with a number of files that included measured, not generated waveforms and these seemed to work as expected. I'll try the generated test files later.

 

3. The resolution is better than it was in the early versions but depends on the number of samples in the file. More samples produces higher accuracy. There's no interpolation involved in the process, just a least-squares fit to the phase data.

 

Share this post


Link to post
Share on other sites
29 minutes ago, pkane2001 said:

 

Hi Apriben,

 

1: Which curve has disappeared? Group delay is back in v.47,  maybe in a different color:

image.thumb.png.853b2206eb610a0c341d207785c0e0bc.png

 

2. I'll take a look. I tested with a number of files that included measured, not generated waveforms and these seemed to work as expected. I'll try the generated test files later.

 

3. The resolution is better than it was in the early versions but depends on the number of samples in the file. More samples produces higher accuracy. There's no interpolation involved in the process, just a least-squares fit to the phase data.

 

 

I am not seeing anymore any curve for Clock Drift but it is maybe me.....

Rgds

 

image.thumb.png.14c57d5ab39d9bdb2a135bd5123dfd02.png

Final peak values Reference: 0dB   Comparison: 0,144dB
Final RMS values Reference: -3,01dB   Comparison: -3,011dB

Gain= 0dB (1x) DC=0 Phase offset=-0,014423ms (-0,923 samples)
Difference (rms) = -48,65dB [-49,4dBA]
Correlated Null Depth=89,23dB [86,31dBA]
Clock drift: 0,35 ppm


Files are NOT a bit-perfect match (match=1,65%) at 16 bits
Files are NOT a bit-perfect match (match=0%) at 32 bits
Files match @ 49,9958% when reduced to 7,59 bits


---- Phase difference (full bandwidth): 301,35525199606°
    0-10kHz: 18,11°
    0-20kHz: 250,05°
    0-24kHz: 273,80°
---- Variable Group Delay. Frequency matched from 0Hz to 20,0kHz:
    1kHz = 4,8μs (1,71°)
    2kHz = 1,1μs (0,77°)
    4kHz = 201,9ns (0,29°)
    8kHz = 536,4ns (1,54°)
    16kHz = 626,8ns (3,61°)
Timing error (rms jitter): 8,7sec

RMS of the difference of spectra: -307,944098772555dB
gn=1,00000055023175, dc=0, dr=3,45958E-07, of=-0,923065564

---Measurements (for a simple sine-wave only)---

Comparison DR = 142,53dB

Comparison THD+N = -7,42dB

Comparison THD   = -161,95dB
    H1 (1000Hz) =    0dB
    H2 (2000Hz) = -160,71dB
    H3 (3000Hz) = -165,61dB
    H4 (4000Hz) = -168,54dB
    H5 (5000Hz) = -170,79dB
    H6 (6000Hz) = -172,41dB
    H7 (7000Hz) = -173,66dB
    H8 (8000Hz) = -174,89dB
    H9 (9000Hz) = -175,96dB
    H10 (10000Hz) = -176,72dB
DONE!

Signature: 5d2847516850f38b5b7f631ab6b32783

Share this post


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

 

 

 @TomCapraro, here's the jitter result (and overall better null values, too!) with version 1.0.47:

 

 

 

 

 

I tried Paul, it works excellently.
I believe you have reached theoretical perfection because with the signal I use, no smudge is generated.
Congratulations, a result above expectations.

Share this post


Link to post
Share on other sites
14 minutes ago, Arpiben said:

 

I am not seeing anymore any curve for Clock Drift but it is maybe me.....

Rgds

 

image.thumb.png.14c57d5ab39d9bdb2a135bd5123dfd02.png

Final peak values Reference: 0dB   Comparison: 0,144dB
Final RMS values Reference: -3,01dB   Comparison: -3,011dB

Gain= 0dB (1x) DC=0 Phase offset=-0,014423ms (-0,923 samples)
Difference (rms) = -48,65dB [-49,4dBA]
Correlated Null Depth=89,23dB [86,31dBA]
Clock drift: 0,35 ppm


Files are NOT a bit-perfect match (match=1,65%) at 16 bits
Files are NOT a bit-perfect match (match=0%) at 32 bits
Files match @ 49,9958% when reduced to 7,59 bits


---- Phase difference (full bandwidth): 301,35525199606°
    0-10kHz: 18,11°
    0-20kHz: 250,05°
    0-24kHz: 273,80°
---- Variable Group Delay. Frequency matched from 0Hz to 20,0kHz:
    1kHz = 4,8μs (1,71°)
    2kHz = 1,1μs (0,77°)
    4kHz = 201,9ns (0,29°)
    8kHz = 536,4ns (1,54°)
    16kHz = 626,8ns (3,61°)
Timing error (rms jitter): 8,7sec

RMS of the difference of spectra: -307,944098772555dB
gn=1,00000055023175, dc=0, dr=3,45958E-07, of=-0,923065564

---Measurements (for a simple sine-wave only)---

Comparison DR = 142,53dB

Comparison THD+N = -7,42dB

Comparison THD   = -161,95dB
    H1 (1000Hz) =    0dB
    H2 (2000Hz) = -160,71dB
    H3 (3000Hz) = -165,61dB
    H4 (4000Hz) = -168,54dB
    H5 (5000Hz) = -170,79dB
    H6 (6000Hz) = -172,41dB
    H7 (7000Hz) = -173,66dB
    H8 (8000Hz) = -174,89dB
    H9 (9000Hz) = -175,96dB
    H10 (10000Hz) = -176,72dB
DONE!

Signature: 5d2847516850f38b5b7f631ab6b32783

 

Just realized you said clock drift :) I’ll need to check, as the method of calculating the drift over time is not applicable to simple waveforms. I’ll see if I can rework this.

Share this post


Link to post
Share on other sites

Spectacular loopback (7,6ps jitter) 

 

 

DeltaWave v1.0.47, 2019-11-18T21:26:00.2068807+01:00
Reference:  White_PN_64k_20_20000_96.0k_Float_LR.wav[L] 1736704 samples 96000Hz 32bits, stereo, MD5=00
Comparison: A REC WHITE PN64K.wav[L] 1769472 samples 96000Hz 32bits, mono, MD5=00
Settings: 
    Gain:True, Remove DC:True
    Non-linear Gain EQ:True    Non-linear Phase EQ: True
    EQ FFT Size:65536, EQ Frequency Cut: 0Hz - 20000Hz, EQ Threshold: -160dB
    Correct Drift:True, Precision:30
    Non-Linear drift Correction:True
    Upsample:False, Window:Hann
    Spectrum Window:Dirichlet, Spectrum Size:65536
    Spectrogram Window:Hann, Spectrogram Size:4096, Spectrogram Steps:2048
    Dither:False
    Trim Silence:True
    Enable Simple Waveform Measurement: True

Discarding Reference:  Start=1,5s, End=1,5s
Discarding Comparison: Start=1,5s, End=1,5s

Initial peak values Reference: -1,743dB   Comparison: -1,173dB
Initial RMS values Reference: -7,71dB   Comparison: -7,172dB

Null Depth=11,826dB
X-Correlation offset: -11948 samples
Trimming 0 samples at start and 1 samples at the end that are below -90,31dB level


Trimmed 0 samples ( 0,00ms) front, 0 samples ( 0,00ms end)


Final peak values Reference: -1,743dB   Comparison: -1,742dB
Final RMS values Reference: -7,71dB   Comparison: -7,71dB

Gain= -0,0041dB (0,9995x) DC=0 Phase offset=-124,457889ms (-11947,957 samples)
Difference (rms) = -90,74dB [-97,64dBA]
Correlated Null Depth=104,89dB [108,33dBA]
Clock drift: 0 ppm


Files are NOT a bit-perfect match (match=29,41%) at 16 bits
Files are NOT a bit-perfect match (match=0%) at 32 bits
Files match @ 49,9859% when reduced to 15,02 bits


---- Phase difference (full bandwidth): 5,58137477058578°
    0-10kHz: 0,09°
    0-20kHz: 0,06°
    0-24kHz: 0,98°
---- Variable Group Delay. Frequency matched from 0Hz to 20,0kHz:
    1kHz = 308,9ns (0,11°)
    2kHz = 95,4ns (0,07°)
    4kHz = 176,8ns (0,25°)
    8kHz = 134,8ns (0,39°)
    16kHz = 1,2ns (0,01°)
Timing error (rms jitter): 7,6ps

RMS of the difference of spectra: -138,586419261496dB

aaaa.jpg

Share this post


Link to post
Share on other sites
6 minutes ago, modmix said:

A 96/24 file is truncated to 96/16 using two different tools.

DW Linearity does show 22 bits (2 to 24) - how come?

Thanks
Ulli

07 - sox 24to16 out.jpg

 

Linearity is the difference in the expected (linear) result when some sample value is used at the input and the actual output. If you take a 24 bit file and convert it to 16 bits in software by scaling, you don't lose linearity, you just lose a few bits of resolution.

Share this post


Link to post
Share on other sites

You are right if it were done by scaling.

For the files in use the lower bits are truncated (with dither ,-)

DIGICheck does proof that nicely.

 

07 - 24 bit Digicheck.jpg

07 - 16 bit Digicheck.jpg

Share this post


Link to post
Share on other sites

hmmm...

A 16bit file can have 2^16 distinct values.

The difference between values in two 16bit files can be in the range 0 - 2^16 - in steps of one or many bits but not smaller.

How does that translate to 24bits?

 

Share this post


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

hmmm...

A 16bit file can have 2^16 distinct values.

The difference between values in two 16bit files can be in the range 0 - 2^16 - in steps of one or many bits but not smaller.

How does that translate to 24bits?

 

 

DeltaWave works on floating point values, -1 to 1. Regardless of whether the original samples are 24, 16 bits or 8 bits, the values are converted first to -1 to 1 range. The 24 bit non-linearity test is done after converting the matched data from -1..1 range to 24 bits.

Share this post


Link to post
Share on other sites
200/5000
 
 
 
I am challenging myself to achieve the best possible loopback.
I will need it for precision comparisons.
This version of DeltaWave combined with my setup (A / D) is showing exceptional.

fggf.jpg

Share this post


Link to post
Share on other sites

DeltaWave v1.0.47, 2019-11-24T21:19:25.8468774+01:00
Reference:  White_PN_64k_20_20000_96.0k_Float_LR.wav[L] 1966080 samples 96000Hz 32bits, stereo, MD5=00
Comparison: rec 1.wav[L] 2039902 samples 96000Hz 32bits, mono, MD5=00
Settings: 
    Gain:True, Remove DC:True
    Non-linear Gain EQ:True    Non-linear Phase EQ: True
    EQ FFT Size:65536, EQ Frequency Cut: 10Hz - 20000Hz, EQ Threshold: -96dB
    Correct Drift:True, Precision:30
    Non-Linear drift Correction:True
    Upsample:False, Window:Hann
    Spectrum Window:Dirichlet, Spectrum Size:65536
    Spectrogram Window:Hann, Spectrogram Size:4096, Spectrogram Steps:2048
    Dither:False
    Trim Silence:True
    Enable Simple Waveform Measurement: True

Discarding Reference:  Start=0s, End=0s
Discarding Comparison: Start=0s, End=0s

Initial peak values Reference: -1,743dB   Comparison: -1,455dB
Initial RMS values Reference: -7,71dB   Comparison: -7,847dB

Null Depth=23,173dB
X-Correlation offset: -37778 samples
Trimming 0 samples at start and 1 samples at the end that are below -90,31dB level


Trimmed 0 samples ( 0,00ms) front, 0 samples ( 0,00ms end)


Final peak values Reference: -1,743dB   Comparison: -1,743dB
Final RMS values Reference: -7,711dB   Comparison: -7,711dB

Gain= -0,0045dB (0,9995x) DC=0 Phase offset=-393,520374ms (-37777,956 samples)
Difference (rms) = -90,85dB [-100,16dBA]
Correlated Null Depth=110,93dB [120,21dBA]
Clock drift: 0 ppm


Files are NOT a bit-perfect match (match=43,81%) at 16 bits
Files are NOT a bit-perfect match (match=0%) at 32 bits
Files match @ 50,0927% when reduced to 15,73 bits


---- Phase difference (full bandwidth): 7,3117639267298°
    0-10kHz: 0,06°
    0-20kHz: 0,04°
    0-24kHz: 3,12°
---- Variable Group Delay. Frequency matched from 0Hz to 20,0kHz:
    1kHz = 315,4ns (0,11°)
    2kHz = 91,1ns (0,07°)
    4kHz = 173,2ns (0,25°)
    8kHz = 131,4ns (0,38°)
    16kHz = 4,3ns (0,02°)
Timing error (rms jitter): 3,8ps

RMS of the difference of spectra: -141,909662244273dB

Share this post


Link to post
Share on other sites

Thank you pkane2001 so much for DeltaWave.  As a longtime fiddler with Diffmaker, I find DeltaWave the absolute ultimate program to follow that.  The charts and the other added features are just wonderful.

 

I have a question about something I've seen when comparing 44.1k 32f downsamples made in different resamplers from 96k 32f masters.  Not specific to DeltaWave but I'm seeing it in DeltaWave so I thought someone here might be able to explain it.

 

SoX 14.4.2 downsamples are showing something when comparing to other resamplers I don't see in any of the other resamplers or in previous versions of SoX.  The Spectrum of Delta chart is showing a rise from 15k to 22k in the difference.  I don't see this with anything except SoX 14.4.2.  I don't think it's affecting the frequency response because that would be apparent in the charts at Infinitewave so is it some other kind of difference when comparing?, something different when comparing from any previous version of SoX?

 

Can anyone else reproduce this, or does anyone know what is causing it?  Even if it's nothing technically wrong, it makes 14.4.2 seem slightly odd when comparing to other resamplers in this way  (if anyone else can reproduce it, that is.)

 

It happens in SoX 14.4.2 with all commands I've tried:  rate -v, rate -vs, rate -v -b 99.7.

 

The first picture is a SoX 14.4.1a downsample vs an SSRC downsample.

The second picture is a SoX 14.4.2 downsample vs an SSRC downsample.

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...