Jump to content
IGNORED

DeltaWave null-testing audio comparator (beta)


Recommended Posts

23 minutes ago, esldude said:

I think I posted a link to a post on ASR in the last few days.  As well as those frequencies, they are set to different phases I assume to reduce peak levels.  

 

Both the frequencies and the phases are computed. Frequencies are spaced by 1/10 of a decade, while phases use some sort of a low crest factor algorithm, probably one of the ones @Arpiben posted earlier: 

 

https://audiophilestyle.com/forums/topic/55878-deltawave-null-testing-audio-comparator-beta/?do=findComment&comment=999494

 

Link to comment
8 hours ago, esldude said:

I think I posted a link to a post on ASR in the last few days.  As well as those frequencies, they are set to different phases I assume to reduce peak levels.  

Yes you did and I am very grateful for it.

The point is that for fun and learning purposes I wanted to retrieve the exact frequencies and phases. 

Now one can  generate its own multitone ...

Rgds.

Link to comment
On 10/28/2019 at 5:03 PM, modmix said:

Comparing a file with itself needs DriftCorrection=true to give BIT-PERFECT,
Does that make sense?
TIA
Ulli

01_CorrectDrift-true-vs-false.txt.jpg

Looks like the cross-correlation step produced an offset of 1 sample (which is incorrect, should be 0). Let me see if I can reproduce this here, but the drift correction step ‘corrected’ the error :)

Link to comment
On 10/28/2019 at 5:03 PM, modmix said:

Comparing a file with itself needs DriftCorrection=true to give BIT-PERFECT,
Does that make sense?
TIA
Ulli

01_CorrectDrift-true-vs-false.txt.jpg

 

Hi Ulli,

 

I tried to reproduce the problem here but failed with any of the files I've tried. Would it be possible for you to share this WAV file with me so I can see what's different?

Link to comment
1 hour ago, modmix said:

You have PN.

 

Thanks, Ulli! Found the problem. It's caused by the type of the waveform this is -- there are multiple ways that the first part of the waveform can match between the comparison and the reference, because it's mostly all zeros. Shouldn't normally be a problem, but there's actually some left-over test code that is triggered by this condition that attempts to handle simple/repeating waveforms. All I needed to do is to remove the unnecessary code to make it work right :)The fix will be in the next version.

Link to comment
8 hours ago, TomCapraro said:

Hi Paul, I found out that the Adobe Audition resampler was able to recover almost 10dB compared to the resampler provided by DeltaWave.
I believe there is room for improvement.
The RMS jitter is also lower; 4.2ps for Audition versus 6.7ps for the DeltaWave resampler.

resamp.jpg

 

Ha! When I have an R&D team the size of Adobe, I might be able to do 10dB better :)

 

Seriously, the resampler was always an afterthought. I never thought it would be good enough to get a sufficiently good null between different sampling rates, so I didn’t spend much time on it. 

 

I initially used the built-in resampler in Windows, but that turned out to be very poor, with lots of aliasing. So I implemented something a bit better. I’ve not done any real research into better resamplers. If someone can point me to a good library/source code for a good resampler, I’ll consider adding it to DW.

 

Link to comment
3 hours ago, pkane2001 said:

 

Ha! When I have an R&D team the size of Adobe, I might be able to do 10dB better :)

 

Seriously, the resampler was always an afterthought. I never thought it would be good enough to get a sufficiently good null between different sampling rates, so I didn’t spend much time on it. 

 

I initially used the built-in resampler in Windows, but that turned out to be very poor, with lots of aliasing. So I implemented something a bit better. I’ve not done any real research into better resamplers. If someone can point me to a good library/source code for a good resampler, I’ll consider adding it to DW.

 

We speak very well of "SOX"
If it is not difficult we can test it.

https://sourceforge.net/p/soxr/wiki/Home/

 

Link to comment
52 minutes ago, TomCapraro said:

Nothing to do Paul, not taking into account the SOX libraries, I tried and the Adobe Audition resampler (the same as Cool Edit Pro) is always superior. Don't waste your time.

 

I'll probably take a look at some point :) Just compared downsampling to Audacity (96k->44.1k) and it looks like DW is a bit better (DW is blue):

 

image.thumb.png.7b2c49c3c2014bf4f8f9db99c7ad7204.png

 

Upsampling appears just a bit worse in DW compared to Audacity. I'll check to see if there's something obvious I can improve.

Link to comment
19 minutes ago, TomCapraro said:

The tests are carried out in this way: first I operate the downsampler on the file and then the upsampler, at the end comparison the result of the sum of both operations.

Hi TomCapraro,

  Is your file a chirp ? Samplers improved a lot in DW but if one wants some more extra dB you may build and apply your own ones. 😉 

Rgds.

 

Link to comment
1 hour ago, pkane2001 said:

Updated version 1.0.46 of DeltaWave is now available!

Changes in 1.0.46b

  • Added non-linearity plot
  • Added legend and harmonic arrows option to matched spectrum plot
  • Fixed Kaiser window not producing correct results when FFT size is equal to the number of samples
  • Turned off curve fitting in phase plot (made the plot too busy and often looked chaotic)
  • Improved the quality of up/down sampling, added appropriate level of dither for the original bit size
  • Changed lower limit on plots to -400dB from -300dB

Non-linearity plot (bits on the horizontal axis):

image.thumb.png.61506cd29ae2125bc5eee1d7ecb2348d.png

 

 

Harmonic distortion legend (only when measuring simple waveforms consisting of a sine wave plus harmonics):

image.thumb.png.9dfc1a769789f7364e5965b07dd7a0fd.png

 

image.png.cb40fdec42ea122a5deab804d3f8fc65.png

 

 

 

Forgot one more new feature: In simple waveform measurement mode drift measurement and correction is now working as long as the drift is not overly excessive.

 

Link to comment

Hi Paul, thank you for the new version and ask you a few things:
1) the previous version, with the same files and settings, generated a jitter value of 19ps, while version 1.0.46 generates a value of 30ps (which of the two values do you think is the most correct?)

2) Has the "group delay" line been eliminated?

 

3) you can better explain the mechanism of the non-linearity function

Link to comment
25 minutes ago, TomCapraro said:

Hi Paul, thank you for the new version and ask you a few things:
1) the previous version, with the same files and settings, generated a jitter value of 19ps, while version 1.0.46 generates a value of 30ps (which of the two values do you think is the most correct?)

2) Has the "group delay" line been eliminated?

 

3) you can better explain the mechanism of the non-linearity function

 

Hi Tom,

 

1) Do you have drift correction turned on or off? Which FFT window?

 

2) Group delay line was eliminated since it sometimes took a very long time to generate it, and it often looked very chaotic. I can re-enable it, if you find it useful. It is just a polynomial approximation to the actual phase error

 

3) The method for non-linearity computes the error for each individual sample value. This is repeated for all possible sample values in the file and plotted on a chart.  Any sample values that occur rarely in the file will have a less accurate error value. White noise as close as possible to 0dBFS max value is probably best for measuring non-linearity, as it should produce an equal number of all sample values in the file.

 

Regards,

      -Paul

Link to comment
46 minutes ago, TomCapraro said:

The drift function was activated, both in version 1.045 and in that 1.046.
In the previous version it generated a value of 19ps, in the latter 30ps.

 

FFT dirichlet.

 

That's probably the main difference (drift correction). In the previous version drift was not computed or corrected. If the file is too short, the drift computation may not very accurate. Drift correction also introduces extra computations (FFTs) into the process that can reduce the precision a little. This can explain the difference between 19 and 30ps.

 

By the way, what was the drift value reported by version 1.0.46?

Link to comment

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