Jump to content
IGNORED

DeltaWave null-testing audio comparator (beta)


Recommended Posts

1 hour ago, pkane2001 said:

 

Lasciatemi provare a disattivare il nuovo algoritmo di calcolo della deriva, poiché è l'unica differenza che posso vedere tra queste versioni. Pubblicherò una nuova versione da provare a breve.

 

2019-03-26 14:52:23.5003|DEBUG|Wave.WaveForm|Settings: 
    Gain:False, Remove DC:False
    Non-linear Gain:False    EQ FFT Size:524288, EQ Frequency Cut: 0Hz - 0Hz, EQ Threshold: -160dB
    Correct Drift:False, Precision:30
    Upsample:False, Window:Hann
    Spectrum Window:Hann, Spectrum Size:65536
    Spectrogram Window:Hann, Spectrogram Size:32768, Spectrogram Steps:1024
    Dither:False
    Trim Silence:False

2019-03-26 14:52:23.8908|INFO|Wave.WaveForm|Discarding Reference:  Start=0s, End=0s
2019-03-26 14:52:23.8908|INFO|Wave.WaveForm|Discarding Comparison: Start=0s, End=0s
2019-03-26 14:52:24.2032|INFO|Wave.WaveForm|
Initial peak values Reference: -1,283dB   Comparison: -1,283dB
2019-03-26 14:52:24.2032|INFO|Wave.WaveForm|Initial RMS values Reference: -16,121dB   Comparison: -16,121dB

2019-03-26 14:52:24.2188|INFO|Wave.WaveForm|Null Depth=300dB
2019-03-26 14:52:24.2188|DEBUG|Wave.WaveForm|Progress Updating Charts, , 23,0769230769231%
2019-03-26 14:52:24.4375|DEBUG|Wave.WaveForm|Progress Cross-correlation, , 11,5384615384615%
2019-03-26 14:52:25.4998|INFO|Wave.WaveForm|X-Correlation offset: 0 samples
2019-03-26 14:52:25.4998|DEBUG|Wave.WaveForm|Progress Cross-correlation offset: 0 samples, , 15,3846153846154%
2019-03-26 14:52:25.7497|DEBUG|Wave.WaveForm|bMatch && settings.CorrectDrift. Iterations=5
2019-03-26 14:52:25.7497|DEBUG|Wave.WaveForm|Progress Update Xcorr Charts, , 30,7692307692308%
2019-03-26 14:52:25.8747|DEBUG|Wave.WaveForm|findOffset 0: start=2,55973980337357E-17, end=8,87237794656275E-17, drift=2,28023714062504E-17, len=2768413
2019-03-26 14:52:25.8747|DEBUG|Wave.WaveForm|Progress Fixing offset 0% Error=2,28023714062504E-23, , 69,2307692307692%
2019-03-26 14:52:26.5103|DEBUG|Wave.WaveForm|findOffset 1: start=6,28558297267412E-07, end=-7,48927801896416E-09, drift=-2,29751693582705E-07, len=2768413
2019-03-26 14:52:26.5103|DEBUG|Wave.WaveForm|Progress Fixing offset 20% Error=-2,29751693582705E-13, , 69,6153846153846%
2019-03-26 14:52:27.1638|DEBUG|Wave.WaveForm|findOffset 2: start=1,27975777633057E-07, end=3,03954368915953E-08, drift=-3,52477541253643E-08, len=2768413
2019-03-26 14:52:27.1794|DEBUG|Wave.WaveForm|Progress Fixing offset 40% Error=-3,52477541253643E-14, , 70%
2019-03-26 14:52:27.8475|DEBUG|Wave.WaveForm|findOffset 3: start=2,42816862281852E-08, end=-1,42595800048101E-09, drift=-9,28605819603732E-09, len=2768413
2019-03-26 14:52:27.8475|DEBUG|Wave.WaveForm|Progress Fixing offset 60% Error=-9,28605819603732E-15, , 70,3846153846154%
2019-03-26 14:52:28.7427|DEBUG|Wave.WaveForm|findOffset 4: start=8,83524608416546E-09, end=-5,96800285409956E-09, drift=-5,347196729052E-09, len=2768413
2019-03-26 14:52:28.7427|DEBUG|Wave.WaveForm|Progress Fixing offset 80% Error=-5,347196729052E-15, , 70,7692307692308%
2019-03-26 14:52:29.4769|DEBUG|Wave.WaveForm|findOffset 5: start=6,52020086142971E-09, end=-6,65516151916191E-09, drift=-4,75917515941141E-09, len=2768413
2019-03-26 14:52:29.4769|DEBUG|Wave.WaveForm|Progress Fixing offset 100% Error=-4,75917515941141E-15, , 71,1538461538461%
2019-03-26 14:52:30.0552|DEBUG|Wave.WaveForm|Drift found but not corrected: 0

2019-03-26 14:52:32.4921|DEBUG|Wave.WaveForm|Progress Updating charts, , 93,8461538461538%
2019-03-26 14:52:32.7590|INFO|Wave.WaveForm|Gain matching disabled.
Phase offset=0ms (0 samples)
Difference (rms) = -84,8dB [-89,19dBA]
Correlated Null Depth=68,78dB [69,82dBA]
Clock drift: 0 ppm
2019-03-26 14:52:32.7748|INFO|Wave.WaveForm|

2019-03-26 14:52:32.7748|INFO|Wave.WaveForm|Files are NOT a bit-perfect match (match=25,91%) at 16 bits
2019-03-26 14:52:32.7748|INFO|Wave.WaveForm|Files are NOT a bit-perfect match (match=0,64%) at 32 bits
2019-03-26 14:52:32.8372|INFO|Wave.WaveForm|Files match @ 50% when reduced to 13,92 bits
2019-03-26 14:52:32.8372|INFO|Wave.WaveForm|

2019-03-26 14:52:33.4308|INFO|Wave.WaveForm|Phase difference (full bandwidth): 0,00488392235301086°
2019-03-26 14:52:33.4308|INFO|Wave.WaveForm|                 0-10,000Hz: 0,00426920923450547°
2019-03-26 14:52:33.4464|INFO|Wave.WaveForm|                 0-20,000Hz: 0,00427447453734952°
2019-03-26 14:52:33.4464|INFO|Wave.WaveForm|                 0-24,000Hz: 0,00439718356828995°
2019-03-26 14:52:33.4464|INFO|Wave.WaveForm|                 0-44,100Hz: 0,00411162825864266°
2019-03-26 14:52:33.4620|INFO|Wave.WaveForm|                 0-48,000Hz: 0,00488392235301086°
2019-03-26 14:52:33.4620|DEBUG|Wave.WaveForm|Progress Updating charts, , 95,3846153846154%
2019-03-26 14:52:33.5557|DEBUG|Wave.WaveForm|Progress Updating charts, , 96,9230769230769%
2019-03-26 14:52:33.5557|DEBUG|Wave.WaveForm|Progress Updating charts, , 98,4615384615385%
2019-03-26 14:52:33.6182|INFO|Wave.WaveForm|RMS of the difference of spectra: -169,022929886661dB
2019-03-26 14:52:33.8994|INFO|Wave.WaveForm|DONE!

2019-03-26 14:52:33.8994|DEBUG|Wave.WaveForm|Progress [NOT Bit Perfect ] 0,63% Gain matching disabled. Phase offset=0ms Difference (rms) = -84,8dB [-89,19dBA] Correlated Null Depth=68,78dB [69,82dBA] Clock drift: 0 ppm, , 100%
2019-03-26 14:52:33.9150|INFO|Wave.WaveForm|Signature: bff25344e75ac416a03691702340650a
 

Link to comment

2019-03-26 15:03:25.2516|DEBUG|Wave.WaveForm|Settings: 
    Gain:False, Remove DC:False
    Non-linear Gain:False    EQ FFT Size:524288, EQ Frequency Cut: 0Hz - 0Hz, EQ Threshold: -160dB
    Correct Drift:False, Precision:30
    Upsample:False, Window:Hann
    Spectrum Window:Hann, Spectrum Size:65536
    Spectrogram Window:Hann, Spectrogram Size:32768, Spectrogram Steps:1024
    Dither:False
    Trim Silence:False

2019-03-26 15:03:25.4980|INFO|Wave.WaveForm|Discarding Reference:  Start=0s, End=0s
2019-03-26 15:03:25.5020|INFO|Wave.WaveForm|Discarding Comparison: Start=0s, End=0s
2019-03-26 15:03:25.8331|INFO|Wave.WaveForm|
Initial peak values Reference: -1,283dB   Comparison: -1,283dB
2019-03-26 15:03:25.8331|INFO|Wave.WaveForm|Initial RMS values Reference: -16,121dB   Comparison: -16,121dB

2019-03-26 15:03:25.8441|INFO|Wave.WaveForm|Null Depth=300dB
2019-03-26 15:03:25.8441|DEBUG|Wave.WaveForm|Progress Updating Charts, , 23,0769230769231%
2019-03-26 15:03:26.0346|DEBUG|Wave.WaveForm|Progress Cross-correlation, , 11,5384615384615%
2019-03-26 15:03:27.2125|INFO|Wave.WaveForm|X-Correlation offset: 0 samples
2019-03-26 15:03:27.2125|DEBUG|Wave.WaveForm|Progress Cross-correlation offset: 0 samples, , 15,3846153846154%
2019-03-26 15:03:27.4728|DEBUG|Wave.WaveForm|bMatch && settings.CorrectDrift. Iterations=5
2019-03-26 15:03:27.4728|DEBUG|Wave.WaveForm|Progress Update Xcorr Charts, , 30,7692307692308%
2019-03-26 15:03:27.5735|DEBUG|Wave.WaveForm|findOffset 0: start=0, end=0, drift=0, len=2768413
2019-03-26 15:03:27.5735|DEBUG|Wave.WaveForm|Drift found but not corrected: 0

2019-03-26 15:03:27.5735|DEBUG|Wave.WaveForm|Progress Fixing offset 0% Error=0, , 69,2307692307692%
2019-03-26 15:03:27.9286|DEBUG|Wave.WaveForm|Progress Updating charts, , 93,8461538461538%
2019-03-26 15:03:28.3305|INFO|Wave.WaveForm|Gain matching disabled.
Phase offset=0ms (0 samples)
Difference (rms) = -300dB [-300dBA]
Correlated Null Depth=300dB [300dBA]
Clock drift: 0 ppm
2019-03-26 15:03:28.3305|INFO|Wave.WaveForm|

2019-03-26 15:03:28.3305|INFO|Wave.WaveForm|Files are a bit-perfect match at 16 bits
2019-03-26 15:03:28.3448|INFO|Wave.WaveForm|Files are a bit-perfect match at 32 bits
2019-03-26 15:03:28.3448|INFO|Wave.WaveForm|

2019-03-26 15:03:28.8855|INFO|Wave.WaveForm|Phase difference (full bandwidth): 5,00363775339433E-14°
2019-03-26 15:03:28.8914|INFO|Wave.WaveForm|                 0-10,000Hz: 5,08158758184165E-14°
2019-03-26 15:03:28.8914|INFO|Wave.WaveForm|                 0-20,000Hz: 5,96669840608373E-14°
2019-03-26 15:03:28.8914|INFO|Wave.WaveForm|                 0-24,000Hz: 5,87123840349579E-14°
2019-03-26 15:03:28.9070|INFO|Wave.WaveForm|                 0-44,100Hz: 5,13744478736082E-14°
2019-03-26 15:03:28.9070|INFO|Wave.WaveForm|                 0-48,000Hz: 5,00363775339433E-14°
2019-03-26 15:03:28.9070|DEBUG|Wave.WaveForm|Progress Updating charts, , 95,3846153846154%
2019-03-26 15:03:28.9994|DEBUG|Wave.WaveForm|Progress Updating charts, , 96,9230769230769%
2019-03-26 15:03:29.0032|DEBUG|Wave.WaveForm|Progress Updating charts, , 98,4615384615385%
2019-03-26 15:03:29.0514|INFO|Wave.WaveForm|RMS of the difference of spectra: NaNdB
2019-03-26 15:03:29.3058|INFO|Wave.WaveForm|DONE!

2019-03-26 15:03:29.3058|DEBUG|Wave.WaveForm|Progress [BIT PERFECT!] Gain matching disabled. Phase offset=0ms Difference (rms) = -300dB [-300dBA] Correlated Null Depth=300dB [300dBA] Clock drift: 0 ppm, , 100%
2019-03-26 15:03:29.3058|INFO|Wave.WaveForm|Signature: a6dd658afbae9719e993a86ddbdbaa2a
 

Link to comment
1 hour ago, TomCapraro said:

leaving the files loaded and making the comparison repeated times over 10 times 5 times is bit perfect and 5 times not perfect
provides random results

 

Very strange, and I still can't reproduce it, even changing precision, reinstalling, etc. Random is even harder to explain.

 

Let's try the change I suggested earlier. Please uninstall the current version, then download and install this update:

 

https://drive.google.com/open?id=1gLXAumjPOekHLuE3UvuO6K0E3HaL8fvA

 

Please let me know if this solves the problem.

Link to comment
25 minutes ago, pkane2001 said:

 

Very strange, and I still can't reproduce it, even changing precision, reinstalling, etc. Random is even harder to explain.

 

Let's try the change I suggested earlier. Please uninstall the current version, then download and install this update:

 

https://drive.google.com/open?id=1gLXAumjPOekHLuE3UvuO6K0E3HaL8fvA

 

Please let me know if this solves the problem.

now everything works perfectly
thank you...!!!

Link to comment

Doing some exploring, with the latest drive.google version, and noted a peculiarity a couple of times: after some switching between panels, and zooming, the results panel redraws, with all info gone, apart from Phase differences. Can't get it to restore, even with Refresh button.

 

Also, the us checkbox - I presume microsecs, but somehow 4.3 secs translates to 0:42:517.7006 as a label.

Link to comment
5 hours ago, fas42 said:

Doing some exploring, with the latest drive.google version, and noted a peculiarity a couple of times: after some switching between panels, and zooming, the results panel redraws, with all info gone, apart from Phase differences. Can't get it to restore, even with Refresh button.

 

Also, the us checkbox - I presume microsecs, but somehow 4.3 secs translates to 0:42:517.7006 as a label.

 

The results are cleared any time the plots are refreshed -- I'll fix it so that it preserves them when possible. 

 

Somehow there was an extra zero in the seconds computation causing 10x larger # of seconds! I'll fix that, ASAP.

 

Regards,

 

    -Paul

Link to comment

Hi @pkane2001

 

Please do you mind bringing more details regarding:

Phase difference information: 

  • The phase values are not provided above 48 kHz, any reason or limitation? 
  • Phase difference (full bandwidth): 0,00147477068670476°
                     0-10,000Hz: 0,00423158331862641°
                     0-20,000Hz: 0,0030270942735478°
                     0-24,000Hz: 0,00277569901502977°
                     0-44,100Hz: 0,0021632420867899°
                     0-48,000Hz: 0,00201385547662473°

Matching Gain:

 

  • When selected the Reference Spectrogram (N°1) may be altered when it is not supposed to. Only comparison file or spectrogram N°2 is supposed to be modified. Chart inversion or  samples truncation ?
  • Unmatched gain:Unmatched.thumb.jpg.ed6605446c9c2de977039d5ea3a3411c.jpg
  • Matched gain:Matched.thumb.jpg.72905686eba284c347ca04eeee66d36a.jpg

Thanks.

Link to comment
26 minutes ago, Arpiben said:

Hi @pkane2001

 

Please do you mind bringing more details regarding:

Phase difference information: 

  • The phase values are not provided above 48 kHz, any reason or limitation? 
  • Phase difference (full bandwidth): 0,00147477068670476°
                     0-10,000Hz: 0,00423158331862641°
                     0-20,000Hz: 0,0030270942735478°
                     0-24,000Hz: 0,00277569901502977°
                     0-44,100Hz: 0,0021632420867899°
                     0-48,000Hz: 0,00201385547662473°

Matching Gain:

 

  • When selected the Reference Spectrogram (N°1) may be altered when it is not supposed to. Only comparison file or spectrogram N°2 is supposed to be modified. Chart inversion or  samples truncation ?
  • Unmatched gain:Unmatched.thumb.jpg.ed6605446c9c2de977039d5ea3a3411c.jpg
  • Matched gain:Matched.thumb.jpg.72905686eba284c347ca04eeee66d36a.jpg

Thanks.

 

Reference should not be changed. Let me take a look.

Link to comment

 

37 minutes ago, Arpiben said:

Hi @pkane2001

 

Please do you mind bringing more details regarding:

Phase difference information: 

  • The phase values are not provided above 48 kHz, any reason or limitation? 
  • Phase difference (full bandwidth): 0,00147477068670476°
                     0-10,000Hz: 0,00423158331862641°
                     0-20,000Hz: 0,0030270942735478°
                     0-24,000Hz: 0,00277569901502977°
                     0-44,100Hz: 0,0021632420867899°
                     0-48,000Hz: 0,00201385547662473°

 

These are just RMS values of phase differences between the two signals, for the specified frequency range.

 

The first number (full bandwidth) includes all the frequencies up to Nyquist. The other ranges are just the ones that I wanted to see :) I can certainly add others, if there's interest.

Link to comment
5 hours ago, pkane2001 said:

 

 

These are just RMS values of phase differences between the two signals, for the specified frequency range.

 

The first number (full bandwidth) includes all the frequencies up to Nyquist. The other ranges are just the ones that I wanted to see :) I can certainly add others, if there's interest.

 

Well if the partial ones are only a linear interpolation of the full bandwidth phase difference, IMO, it is useless adding ranges.

In the contrary, it helps characterising the different types of Frequency Offsets and/or Time/Phase Errors (cf picture)

I am not expecting DW to retrieve the exact ADCs' Quartz Oscillator clock drift at track or even at mix level...

But your tool can be interesting not only for audio digital comparisons.☺️

Rgds.

 

freq_Offset.jpg.59e1d7c0fe0746c12656b026578ef9e7.jpg

Link to comment
38 minutes ago, Arpiben said:

 

Well if the partial ones are only a linear interpolation of the full bandwidth phase difference, IMO, it is useless adding ranges.

In the contrary, it helps characterising the different types of Frequency Offsets and/or Time/Phase Errors (cf picture)

I am not expecting DW to retrieve the exact ADCs' Quartz Oscillator clock drift at track or even at mix level...

But your tool can be interesting not only for audio digital comparisons.☺️

Rgds.

 

freq_Offset.jpg.59e1d7c0fe0746c12656b026578ef9e7.jpg

 

Partial frequency ranges are not interpolated, these are actual phase differences in the frequency domain, but only including those frequencies in the ranges given. The reason that might be useful is to judge the accuracy of the alignment of the two signals, and since we are talking about audio, proper phase alignment up to around 48KHz might be significant, although below 24KHz is what's really important. Also, phase errors at higher frequencies are larger. Measuring phase error between 0 and 192KHz may be an interesting academic exercise, but not useful in judging the audible quality of waveform alignment.

 

DW already measures clock drift error, although only linear is corrected. I thought about adding a chart showing the actual clock drift visually, since I already compute it.

 

Quote

But your tool can be interesting not only for audio digital comparisons.☺️

 

True. But I want to get that basic function working first :)

 

Link to comment
52 minutes ago, pkane2001 said:

DW already measures clock drift error, although only linear is corrected. I thought about adding a chart showing the actual clock drift visually, since I already compute it.

 

 

Yes!! .... a big Yes!

 

BTW, DW rejects 8 bit files - stops immediately on loading.

Link to comment
24 minutes ago, pkane2001 said:

 

Didn’t think anyone would want to process 8-bit files! 🧐

 

Trying some exercises to have DW process large input files - for my laptop it starts to choke on the amount of data, and the m/c effectively grinds to a halt. So, seeing if reducing the amount of data along one axis will help to get the processing to complete.

Link to comment
3 minutes ago, fas42 said:

 

Trying some exercises to have DW process large input files - for my laptop it starts to choke on the amount of data, and the m/c effectively grinds to a halt. So, seeing if reducing the amount of data along one axis will help to get the processing to complete.

 

8 bit files won't help -- it's limited by the number of samples and the amount of available memory. 1 bit or 8 bits or 24 bits all get converted to 64-bit internal format.

Link to comment

Another little  exercise to see what the impact of alignment was - took the 32 bit, original Marley B, at 44.1k, chopped off the >20k content, upsampled to 88.2k, deleted a single sample at the start, and resampled to 44.1k. So, identical track, misaligned by exactly 0.5 sample - DW got very close, the delta Waveform was of the order of 80dB down - what did it sound like? The volume had to be boosted by about 90dB in DW - and there was the Bob Marley track, with the organ most heavily damaged, but otherwise easily identifiable. Was I listening to a true difference between the files - no, merely the limit of the processing capacity of the software at the moment to more precisly analyse what was going on ... unfortunately.

Link to comment
20 minutes ago, fas42 said:

Another little  exercise to see what the impact of alignment was - took the 32 bit, original Marley B, at 44.1k, chopped off the >20k content, upsampled to 88.2k, deleted a single sample at the start, and resampled to 44.1k. So, identical track, misaligned by exactly 0.5 sample - DW got very close, the delta Waveform was of the order of 80dB down - what did it sound like? The volume had to be boosted by about 90dB in DW - and there was the Bob Marley track, with the organ most heavily damaged, but otherwise easily identifiable. Was I listening to a true difference between the files - no, merely the limit of the processing capacity of the software at the moment to more precisly analyse what was going on ... unfortunately.

 

No, Frank, you were listening to the true difference between the files. The software removes unimportant differences such as volume level, clock drift, and phase offset to help with the comparison. By the way, in the next version I'm adding a feature that will help you prove this to yourself.

 

Remember what we audiophiles normally do for comparison... listen to two different tracks, at different levels, on a different day, sometimes at a different location. I think DeltaWave is just a tad better tool for precise comparisons, no? 

 

By the way, if you know of any other "unimportant" differences that DW should remove, I'm all ears ;)


 

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