Jump to content
IGNORED

DeltaWave null-testing audio comparator (beta)


Recommended Posts

44 minutes ago, Arpiben said:

 

Thanks for the details.

Lissajous: for some cases like frequency drift when dealing with tones/chirps -> allow a quick view. 

Axis Reset Button: working fine. My point was that by default the frequency excursion in the charts  is not always full range but rather 22 kHz. Pressing axis reset normalises it .

Frequency drifts: comparing tones at fo with chirps [fo, fo + 10-4 ppm ] leads to errors in the matching process. Hereafter curves and debug for fo=11025 kHz .

Tones and Chirp generated with Audacity 176.400 kSps/32bits/30s 

 

N.B.: Folder Delta Phase has its curve labelled Phase:

 

image.thumb.png.0f3de684542888dc5e4098c1661befac.png

 

image.thumb.png.14f9f6057df00cf4f894ac7d7a3ddb2f.png

 

image.thumb.png.dfcb6b3bc83441de3931413cc89a2522.png

 

image.thumb.png.7160cb9fa254911391c649d6f37de944.png

 

 

2019-03-16 23:12:16.3373|DEBUG|Wave.WaveForm|Settings: 
    Gain:True, Remove DC:True
    EQ FFT Size:65536, EQ Frequency Cut: 0Hz, EQ Threshold: -160dB
    Correct Drift:True, Precision:30
    Upsample:False, Window:Hann
    Spectrum Window:Blackman, Spectrum Size:524288
    Spectrogram Window:Lanczos, Spectrogram Size:32768, Spectrogram Steps:1024
    Dither:False

2019-03-16 23:12:16.4296|INFO|Wave.WaveForm|Discarding: Start=0s, End=0s
2019-03-16 23:12:16.4306|INFO|Wave.WaveForm|Discarding: End  =0s, End=0s
2019-03-16 23:12:16.5599|INFO|Wave.WaveForm|
Initial peak values File 1: -6,021dB   File 2: -6,021dB
2019-03-16 23:12:16.5599|INFO|Wave.WaveForm|Initial RMS values File 1: -9,031dB   File 2: -9,031dB

2019-03-16 23:12:16.5599|INFO|Wave.WaveForm|Null Depth=118,145dB
2019-03-16 23:12:16.5599|DEBUG|Wave.WaveForm|Progress Updating Charts, , 23,0769230769231%
2019-03-16 23:12:16.7332|INFO|Wave.WaveForm|Trim: skipping 1 samples at start, and 1 samples at end that are below 3,72529029846191E-09 level
2019-03-16 23:12:16.7703|INFO|Wave.WaveForm|Trim: skipping 1 samples at start, and 1 samples at end that are below 3,72529029846191E-09 level
2019-03-16 23:12:16.8083|DEBUG|Wave.WaveForm|Progress Cross-correlation, , 11,5384615384615%
2019-03-16 23:12:18.2818|INFO|Wave.WaveForm|X-Correlation offset: 0 samples
2019-03-16 23:12:18.2818|DEBUG|Wave.WaveForm|Progress Cross-correlation offset: 0 samples, , 15,3846153846154%
2019-03-16 23:12:18.3740|DEBUG|Wave.WaveForm|if (drift)
2019-03-16 23:12:18.3740|DEBUG|Wave.WaveForm|Computing drift, up to 10 iterations, threshold=7,55859041359095E-08
2019-03-16 23:12:18.3740|DEBUG|Wave.WaveForm|Progress Update Xcorr Charts, , 30,7692307692308%
2019-03-16 23:12:19.1275|TRACE|Wave.WaveForm|ComputeDriftSpline: pos=79870: xcorr=0, offs=0,00048828125
2019-03-16 23:12:19.1561|TRACE|Wave.WaveForm|ComputeDriftSpline: pos=119805: xcorr=0, offs=-0,0009765625
2019-03-16 23:12:19.1887|TRACE|Wave.WaveForm|ComputeDriftSpline: pos=0: xcorr=0, offs=-0,011962890625
2019-03-16 23:12:19.9041|TRACE|Wave.WaveForm|ComputeDriftSpline: pos=399350: xcorr=0, offs=0,005859375
2019-03-16 23:12:19.9041|TRACE|Wave.WaveForm|ComputeDriftSpline: pos=758765: xcorr=0, offs=-0,0104166666666667
2019-03-16 23:12:19.9041|TRACE|Wave.WaveForm|ComputeDriftSpline: pos=359415: xcorr=0, offs=-0,00537109375
2019-03-16 23:12:20.5749|TRACE|Wave.WaveForm|ComputeDriftSpline: pos=678895: xcorr=0, offs=-0,01953125
2019-03-16 23:12:20.5749|TRACE|Wave.WaveForm|ComputeDriftSpline: pos=718830: xcorr=0, offs=-0,013671875
2019-03-16 23:12:20.5749|ERROR|Wave.WaveForm|Stopped!
   at System.Threading.Tasks.Task.WaitAll(Task[] tasks, Int32 millisecondsTimeout, CancellationToken cancellationToken)
   at Wave.Analysis.ComputeDriftSpline(Double[] L, Double[] L1, Int32 freq, Int32 data_length, Int32& inc, Int32 steps, Boolean fractional, Double& error, Double& drift, Boolean bLinear) in C:\Users\ypa\documents\visual studio 2015\Projects\Wave\Wave\Analysis.cs:line 887
   at Wave.WaveForm.InitialDriftCorrect(Double[]& L, Double[]& L1, Double& spline_drift, Int32 data_length, Int32 freq, Double min_drift) in C:\Users\ypa\documents\visual studio 2015\Projects\Wave\Wave\WaveForm.cs:line 2223
   at Wave.WaveForm.ProcessAll(Double[] L, Double[] L1, Int32 freq, Int32 freq1, Int32 freq2, Int32 bits1, Int32 bits2, Boolean bMatch) in C:\Users\ypa\documents\visual studio 2015\Projects\Wave\Wave\WaveForm.cs:line 1617
2019-03-16 23:12:20.5899|INFO|Wave.WaveForm|Stopped! One or more errors occurred.
2019-03-16 23:12:20.5899|DEBUG|Wave.WaveForm|Progress Stopped!, , 100%
2019-03-16 23:12:20.5899|INFO|Wave.WaveForm|Signature: 67be077f79437bef4a4d4d9715f7c726

 

Thanks for the log -- I'll review ASAP.

 

Axis reset to 22KHz is a leftover from the days when the plots were painfully slow to render. I had to rewrite large parts of the plot library to speed this up. Back then, I tried to limit the initial display to just the audible range. I'll fix this, but for now, it's easy enough to zoom out to the full range.

 

As far as chirps are concerned, that's a known problem. Something I've been discussing with @esldude recently. The issue is that a sine chirp consists of a repeated waveform. While the amplitude is changing, the frequency remains the same. For a phase-driven alignment algorithm there is nothing to distinguish between one period of a sine wave and another. All of them produce the same perfect match, and this is where things fall apart. There are too many possible solutions. I do intend to come up with a solution to this, but for now, 'naturally occurring' waveforms will produce a much better result than anything generated :)

 

 

Link to comment
1 hour ago, fas42 said:

As promised, some shots of the distortion in 8th copy version of the Bob Marley track, in the key HF area,

5k-20kHz; note the scale on the left:

 

Marley04.thumb.PNG.53f7723b48a6941cc296da1d3ae69060.PNG

 

 

Marley05.thumb.PNG.8164271ae137d76b2c99155db6862a46.PNG

 

 

Marley06.thumb.PNG.63f2abf1cf6f156e44e408a2cf964cb0.PNG

 

 

 

Hi Frank,

 

So you resampled the waveform and then aligned them? Besides the scale on the left, look at the scale on the bottom. It looks like each tick is about 6μs. So when you see waveforms separated by 5 ticks, like it appears here, that's a 30μs phase error, as in the last plot you posted.

Link to comment
34 minutes ago, fas42 said:

Another interesting screen grab, of the Bob Marley samples, showing frequencies >5kHz - the level of distortion is quite marked, of levels of the order of say 20dB down, from peaks,

 

Marley07.thumb.PNG.727b7f610d09a12f3dc02fdca5d40d50.PNG

 

So these are pretty obvious differences on zoom-in, but are they significant?

  • Check the delta waveform to see the real value of the difference
  • Check the delta spectrum plot to see what frequencies and at what level the delta waveform consists of
  • Play the delta waveform over headphones or speakers. First make sure the volume is at a normal listening level for Reference and Comparison tracks, then play the Delta track at that same level. Can you hear the difference?  If not, it's probably inaudible
  • Try raising the DW volume setting while playing the delta. How far do you have to raise it for it to become audible, and what frequencies do you hear? 

These are all tools meant to help quantify and qualify the differences and to determine their audibility.

 

Link to comment
1 minute ago, fas42 said:

The delta waveform has no meaning, as 'music' in itself; the brain will discard it as being of no substance - but added to a "clean" signal it becomes a disturbing difference from the "correct" - exactly what we are trying to find, here.

 

Well, that's debatable as to what the brain will ignore, or not ignore, as you may recall from many past discussions :) The good thing is you don't have to speculate. Just listen.

 

Quote

An interesting exercise would be to amplify the delta multi-fold, and add to clean - when is it easily audible?

 

Yes, that is easy to do and had already been in the plans for a future update!

 

Link to comment
9 hours ago, esldude said:

That brings up a point @pkane2001 might know about or want to know.  I need to redo it.  But I was saving some files without dither in Audacity.  Just to convert from either 16 or 24 bit to 32 bit float. When you save them to 32 bit floating it seems the nulls and matching were better no matter what the reference file in use was.  I believe he has said Deltawave works internally all 32 bit so I wonder why saving a file to it helps?  Again I need to repeat this and make sure I didn't get it mixed up along the way.  

 

 

DeltaWave is using double floating point format internally, 64 bits samples.

 

So I tried an experiment. First, I took the Bob Marley A track and loaded it into Audacity, saved as 16 bit WAV file. Loaded the original and the 16-bit file into DeltaWave. The result? Obviously something is happening at the high-frequency end of the spectrum. The files become a bit-perfect match at about 13 bits, so we changed up to about 2-3 lower bits in this process.

image.thumb.png.b48a2753df6017d9fbf6310d3066074a.png

 

I then saved the same file from Audacity as 32-bit floating point, and compared to the original. The result? Bit perfect at 100%!

image.thumb.png.fa64e9d4917504428d1b4e0f4ce20359.png

 

Then, went into Audacity and set the following quality settings to turn of all possibility of dither:

image.png.b55816a56bac1402d388622b4c655484.png

 

Then exported the same file as 16-bit WAV.. Result? 100% Bit perfect.

image.thumb.png.ed227cb6f65af93d5f19723bf87236bb.png

 

So it looks like you just need to be very careful about the settings in Audacity if you want unmodified data to be exported.

 

Link to comment
1 hour ago, fas42 said:

Something that could be very, very interesting - looked at the 4th, and it's almost the same as the 8th! So, implying that only so much distortion occurs; there's a limit... Will need to carefully check this out... 

 

Keep in mind that whatever filter the DAC and ADC are using in the process will have the most effect on the first pass. Once the damage is done, for the rest of the passes the effect will be a smaller, and so the subsequent delta will be less. Try low-pass filtering (in DW) just around where the filter starts to kick in (for Dennis' files that's a bit above 19kHz) and see if that helps paint a clearer picture.

 

Link to comment
23 minutes ago, fas42 said:

Getting results in Audacity which are not making sense, so far. I Brickwalled at 19kHz, and the waveform is showing frequency changes - is this Audacity "misbehaving"? 

 

Try applying a 19k low pass filter in DeltaWave. If you compare the original to the 19k brickwalled version directly, the null will not be as good due to differences above 19k.

 

image.png.769676814105589950b25f652108c089.png

 

I get about a 92dB null, which is less than a 1 bit difference for a 16bit file. Don't see any abnormal new frequencies. Delta of spectra, zoomed-in (see the left scale!)

 

image.thumb.png.ff393046fa8754cfe4ecca31d6c8df01.png

Link to comment
26 minutes ago, Jud said:

 

I like not requiring Show or Match.  Some of the mouseover information in the Stereo Comparator was a little confusing to me in a rushed two minute tryout this evening.  I'll see whether it becomes clearer tomorrow.  :)

 

What I ultimately want to do is this: Save a file doing a stereo comparison where the reference track is the left channel; and save a file doing a stereo comparison where the reference track is the right channel.  This will enable some MQA vs. hi res comparisons I want to do using DeltaWave with Audirvana+ and/or HQPlayer.

 

Don't know if I have the best descriptions in the tooltips, but the website has a bit more information on this (and other) tests:

 

https://deltaw.org/comparator.html

 

Look for the X/Y Stereo Difference Test section for instructions.

 

Link to comment
23 minutes ago, Jud said:

 

Got it, thanks.  I'm pretty amazed at the pace at which you're making changes in response to requests, and grateful.  

 

What remains in order to do the comparisons I would like, as mentioned in my previous note, is only one thing not currently present in DeltaWave, and that is to enable the mixed down Reference track to be compared and saved in either the right channel or the left.  

 

One reason, as I'm sure you already understand, is to be able to determine whether any preference results from differences between left and right ears, differences in speaker-room interactions between left and right, or is due to differences in the tracks themselves.  If preference switches depending on which channel the reference is played from, it's the track; if it doesn't switch, it's ears or speakers.

 

Saving a file with the comparison, which DeltaWave already has (though not with the Reference file in the right channel as far as I can tell) allows the application of various Audirvana+ and HQPlayer upsampling filters on playback.  For me and many others who use the streaming capabilities of these players, it also allows playback through our main systems.

 

Sure, Jud. Easy enough to do, I actually wanted to do this in the last release, but simply forgot :)

 

Link to comment
37 minutes ago, pkane2001 said:

 

Sure, Jud. Easy enough to do, I actually wanted to do this in the last release, but simply forgot :)

 

 

 

@Jud, please re-download the installation zip file. You may need to uninstall the previous version, first, as I left it as v1.0.18

 

The updated DW has the Save Reference Waveform option under file menu. Sorry I missed it in the last update!

image.png.7bd9c844869c513969dd819e19ee6540.png

 

Link to comment
7 minutes ago, Jud said:

Hi Paul.  What does DeltaWave do with the stereo comparison if the files are different sample rates?

 

Hi Jud.

 

The default is to downsample the higher rate file to match the lower rate of the other file. In settings, you can ask it to upsample, instead. In this case the lower rate file will be upsampled to the higher rate of the other one.

 

image.png.e568439605927db0714a1868e9c20bca.png

Link to comment
3 minutes ago, Jud said:

Well now, it will be interesting to see whether an MQA file in one channel and a non-MQA file in another channel will even play back via Audirvana+ (which does the "first unfold" if set to detect MQA) or an MQA-enabled DAC; or for that matter whether a DAC or Audirvana+ would recognize an MQA stereo file mixed down to mono.

 

 

I haven't been following MQA discussions closely, so can't say. It'll be an interesting experiment. I assume you don't want to resample or otherwise modify MQA track, as any bit changes will likely result in it not being 'authenticated', right? ;)

 

Link to comment
6 minutes ago, Jud said:

 

Hi Paul - 

 

- Would the reference file always play in the left channel, even when swapping reference and compare files?

 

- Can you think of any audible advantages that the reference file might have due to being used essentially as a template for matching the two files (other than phase drift correction, which I'd turn off)?

 

If you play it from the Play menu, then yes. If you use the Comparator Stereo XY mode, you can switch left and right through the menu Swap Reference and Comparison.

 

The results may be different when swapping Reference and Comparison files on the main screen and doing another match. That's because the algorithm will adjust everything, including level to the other file. It's possible that the result will not sound the same, even if because of a slightly different level. They will be similar, but not exactly the same. Best to use the comparator to swap.

 

Link to comment
1 hour ago, fas42 said:

Okay, wasn't happy with the results I was getting with the Bob Marley full spectrum processing, tried doing some band splitting. Still not finding good waveform nulls, so selected a specific frequency which had a peak in the track spectrum, at 5165kHz; notch filtered out the track content at that frequency - in DW, for that, was getting "Cross-correlation found multiple phase inversions -- data may be too noisy or too dissimilar!" messages at times depending upon sample rate.

 

Final effort was to upsample to big numbers, 1.411022M and save in 24 bits - which gave me over a 4 sec clip,

 

Marley14.thumb.PNG.b9b0c6043f78d26a06c1f3f36b27187e.PNG

 

Marley15.thumb.PNG.3b19b9298182a90c3107f7dffbdedaa3.PNG

 

Last zoomed in,

 

Marley13.thumb.PNG.7b02930ff8dd11ff06ba4e19ed23ee3e.PNG

 

Note noise levels are good, so that aspect is working fine. But the delta is still only slightly better than 40dB down, even with this extreme level of sampling.

 

Trying the same exercise with 44.1k/16 bit, and got

 

Marley16.thumb.PNG.ed189b32db248fa0964591c0980f4336.PNG

 

... barely better than the original waveforms - so sample rate, etc, of input waveforms is critical to determining what one gets.

 

Frank, I like that you are testing these different scenarios, but I'm not clear what it is you are trying to achieve. Can you describe what it is you are trying to get to? What nulls are you getting, and with which files?

 

One thing to remember: when you upscale you are not adding any additional information to the waveform. It's a form of averaging and interpolation that, in effect, produces some smoothing of the data by inserting artificially computed values (new samples).

 

The null value is computed as an average (RMS for difference, mean for correlated null). What that means is if you add more values that are 'smoothed' or averaged in between the real ones, you are increasing the number of matching samples, but they are not real. So it's not very surprising that null results improve with upscaled data -- the smoothed, interpolated data is skewing them.

 

By the way, that's why downsampling is the default in DeltaWave for matching sampling rates -- upsampling has an impact on the resulting match.

Link to comment
31 minutes ago, fas42 said:

And problems straight away - I merely attenuated the B wave by 0.38 dB, and this was the result:

 

DeltaWave v1.0.18, 2019-03-20T13:01:47.5458208+11:00
File 1:  Bob Marley B.wav[L] 237568 samples 44100Hz 16bits, MD5=00
File 2: Bob Marley B,-0.38.wav[L] 237568 samples 44100Hz 16bits, MD5=00
Settings:
    Gain:True, Remove DC:True
    Non-linear Gain:False    EQ FFT Size:262144, EQ Frequency Cut: 0Hz - 0Hz, EQ Threshold: -160dB
    Correct Drift:True, Precision:18
    Upsample:False, Window:Hann
    Spectrum Window:Blackman, Spectrum Size:524288
    Spectrogram Window:Lanczos, Spectrogram Size:32768, Spectrogram Steps:1024
    Dither:False

Discarding: Start=20s, End=6s
Discarding: End  =20s, End=6s

Initial peak values File 1: -2.568dB   File 2: -2.948dB
Initial RMS values File 1: -17.94dB   File 2: -18.32dB

Null Depth=27.301dB
X-Correlation offset: 0 samples

Final peak values File 1: -2.568dB   File 2: -2.565dB
Final RMS values File 1: -17.916dB   File 2: -17.916dB

Gain= -0.3842dB (0.9567x) Phase offset=0ms (0 samples)
Difference (rms) = -90.05dB [-96.02dBA]
Correlated Null Depth=91.71dB [85.86dBA]
Clock drift: 0 ppm


Files are NOT a bit-perfect match (match=31.79%) at 16 bits
Files match @ 50% when reduced to 15.08 bits


Phase difference (full bandwidth): 0.992471064268582°
                 0-10,000Hz: 0.0759831135659693°
                 0-20,000Hz: 0.748855122275202°
                 0-24,000Hz: 0.992471064268582°
                 0-44,100Hz: 0.992471064268582°
                 0-48,000Hz: 0.992471064268582°
RMS of the difference of spectra: -167.16135102673dB
DONE!

Signature: 70007d5e4084977dd4c109c0b908bf45

 

Frank, you keep running into Audacity issues. To avoid any kind of truncation or dithering, please use the following settings when processing and exporting from Audacity:

image.png.f86c215a40919918a9b004f064f8923d.png 

 

Then, when exporting, use WAV 32-bit floating PCM format. 

 

Here's what I get when I do that with the -0.38dB processed file (note the nulls). A little better? Note that it shows NOT BIT PERFECT but 100% of the samples matched. That's because some small fraction of one percent of samples didn't match due to the level change:

image.thumb.png.e3846c461efcf2dfde4d7e124e4b63db.png

 

Link to comment
6 hours ago, esldude said:

Did you mean export as 32 bit signed PCM?  I was thinking when I tried running 32 bit float directly into Deltawave it didn't work.   Running Audacity as 32 bit float and exporting to either signed 24 bit PCM or signed 32 bit PCM does work.  Or is my Deltawave working wrong somehow?

 

No, 32 bit float and it's been working for me from the beginning ;) That's the result I posted earlier.

 

In Audacity it looks like this when exporting:

image.png.02b8712119edb49c476d7c1ebe20337b.png

 

If you have a short snipped of a file that gives such a large dB peak, can you please share it? Somehow these are either not recognized or processed properly by the audio library I'm using if it's giving 700dB peak :)

 

Link to comment
5 hours ago, fas42 said:

 

Keep running? Audacity issues? Surprise, surprise - those are the settings I have been using ever since i started using Audacity ...

 

 

But 32 bit WAV files would be very rare - 0.38dB doesn't result in over 6dB loss of accuracy, which is what the results panel implies.

 

 

I not seeing anything here that says that "100% of the samples matched" ... are we talking about "NOT Bit Perfect 100%?" That doesn't make sense ...

 

It's not bit perfect, but 99.99999% of the samples match. Round it to a whole number and you get 100%. Don't have the room to display all the decimal places on the status bar, but maybe I'll stop rounding and truncate instead, then it'll show up as 99%, which is less accurate but maybe a bit less misleading?

Link to comment
5 hours ago, esldude said:

The log file shows 32 bit files with initial peak values that are positive.  Like when using 32 bit wav pcm it is showing 770 db peak.  Deltawave sees it as a 32 bit file, but doesn't seem to work with it.  After adjusting gain or attempting to for 32 bit it shows NaNdb.

 

Here is a log file with both 32 bit.

 

 


2019-03-20 01:29:16.4432|INFO|Wave.WaveForm|Signature: 9f0269cc1c8f6a0731584ab69946631e
2019-03-20 01:43:03.7428|INFO|Wave.WaveForm|ProcessAll
2019-03-20 01:43:03.8990|INFO|Wave.WaveForm|DeltaWave v1.0.18, 2019-03-20T01:43:03.8990752-05:00
2019-03-20 01:43:03.8990|INFO|Wave.WaveForm|File 1:  Bob Marley 2nd gen.wav[L] 1547432 samples 44100Hz 32bits, MD5=00
2019-03-20 01:43:03.8990|INFO|Wave.WaveForm|File 2: Bob Marley 3rd gen.wav[L] 1570828 samples 44100Hz 32bits, MD5=00
2019-03-20 01:43:03.8990|INFO|Wave.WaveForm|Settings: 
    Gain:True, Remove DC:False
    Non-linear Gain:False    EQ FFT Size:32768, EQ Frequency Cut: 0Hz - 0Hz, EQ Threshold: -130dB
    Correct Drift:True, Precision:8
    Upsample:False, Window:Hann
    Spectrum Window:BlackmanHarris, Spectrum Size:16384
    Spectrogram Window:BlackmanHarris, Spectrogram Size:2048, Spectrogram Steps:2048
    Dither:False

2019-03-20 01:43:04.0553|INFO|Wave.WaveForm|Discarding: Start=0s, End=0s
2019-03-20 01:43:04.0709|INFO|Wave.WaveForm|Discarding: End  =0s, End=0s
2019-03-20 01:43:04.2740|INFO|Wave.WaveForm|
Initial peak values File 1: 770.637dB   File 2: 8dB
2019-03-20 01:43:04.2740|INFO|Wave.WaveForm|Initial RMS values File 1: NaNdB   File 2: NaNdB

2019-03-20 01:43:04.2896|INFO|Wave.WaveForm|Null Depth=NaNdB
2019-03-20 01:43:04.3990|INFO|Wave.WaveForm|Trim: skipping 54 samples at start, and 2 samples at end that are below 3.72529029846191E-09 level
2019-03-20 01:43:04.4615|INFO|Wave.WaveForm|Trim: skipping 0 samples at start, and 2 samples at end that are below 3.72529029846191E-09 level
2019-03-20 01:43:05.8837|INFO|Wave.WaveForm|Phase inverted
2019-03-20 01:43:05.8837|INFO|Wave.WaveForm|X-Correlation offset: 1 samples
2019-03-20 01:43:08.0610|ERROR|Wave.WaveForm|Stopped!
   at System.Threading.Tasks.Task.WaitAll(Task[] tasks, Int32 millisecondsTimeout, CancellationToken cancellationToken)
   at Wave.Analysis.ComputeDriftSpline(Double[] L, Double[] L1, Int32 freq, Int32 data_length, Int32& inc, Int32 steps, Boolean fractional, Double& error, Double& drift, Boolean bLinear) in C:\Users\ypa\documents\visual studio 2015\Projects\Wave\Wave\Analysis.cs:line 894
   at Wave.WaveForm.InitialDriftCorrect(Double[]& L, Double[]& L1, Double& spline_drift, Int32 data_length, Int32 freq, Double min_drift) in C:\Users\ypa\documents\visual studio 2015\Projects\Wave\Wave\WaveForm.cs:line 2326
   at Wave.WaveForm.ProcessAll(Double[] L, Double[] L1, Int32 freq, Int32 freq1, Int32 freq2, Int32 bits1, Int32 bits2, Boolean bMatch, Boolean bLoadOnly) in C:\Users\ypa\documents\visual studio 2015\Projects\Wave\Wave\WaveForm.cs:line 1631
2019-03-20 01:43:08.0766|INFO|Wave.WaveForm|Stopped! One or more errors occurred.
2019-03-20 01:43:08.0766|INFO|Wave.WaveForm|Signature: 7a04b178245e32cb8305fd5a920c878a

 

 

And with only one file 32 bit.

 

 

2019-03-20 01:26:41.9963|INFO|Wave.WaveForm|ProcessAll
2019-03-20 01:26:42.1369|INFO|Wave.WaveForm|DeltaWave v1.0.18, 2019-03-20T01:26:42.1369300-05:00
2019-03-20 01:26:42.1369|INFO|Wave.WaveForm|File 1:  Bob Marley B.wav[L] 1377376 samples 44100Hz 16bits, MD5=00
2019-03-20 01:26:42.1369|INFO|Wave.WaveForm|File 2: Bob Marley B 38 drop 24bit.wav[L] 1377376 samples 44100Hz 32bits, MD5=00
2019-03-20 01:26:42.1525|INFO|Wave.WaveForm|Settings: 
    Gain:True, Remove DC:False
    Non-linear Gain:False    EQ FFT Size:32768, EQ Frequency Cut: 0Hz - 0Hz, EQ Threshold: -130dB
    Correct Drift:True, Precision:8
    Upsample:False, Window:Hann
    Spectrum Window:BlackmanHarris, Spectrum Size:16384
    Spectrogram Window:BlackmanHarris, Spectrogram Size:2048, Spectrogram Steps:2048
    Dither:False

2019-03-20 01:26:42.2777|INFO|Wave.WaveForm|Discarding: Start=0s, End=0s
2019-03-20 01:26:42.2933|INFO|Wave.WaveForm|Discarding: End  =0s, End=0s
2019-03-20 01:26:42.4652|INFO|Wave.WaveForm|
Initial peak values File 1: -1.549dB   File 2: 770.628dB
2019-03-20 01:26:42.4808|INFO|Wave.WaveForm|Initial RMS values File 1: -17.348dB   File 2: NaNdB

2019-03-20 01:26:42.4964|INFO|Wave.WaveForm|Null Depth=NaNdB
2019-03-20 01:26:42.5902|INFO|Wave.WaveForm|Trim: skipping 511 samples at start, and 529 samples at end that are below 0.000244140625 level
2019-03-20 01:26:42.6371|INFO|Wave.WaveForm|Trim: skipping 507 samples at start, and 512 samples at end that are below 0.000244140625 level
2019-03-20 01:26:43.9653|INFO|Wave.WaveForm|Phase inverted
2019-03-20 01:26:43.9653|INFO|Wave.WaveForm|X-Correlation offset: 1 samples
2019-03-20 01:26:45.9619|ERROR|Wave.WaveForm|Stopped!
   at System.Threading.Tasks.Task.WaitAll(Task[] tasks, Int32 millisecondsTimeout, CancellationToken cancellationToken)
   at Wave.Analysis.ComputeDriftSpline(Double[] L, Double[] L1, Int32 freq, Int32 data_length, Int32& inc, Int32 steps, Boolean fractional, Double& error, Double& drift, Boolean bLinear) in C:\Users\ypa\documents\visual studio 2015\Projects\Wave\Wave\Analysis.cs:line 894
   at Wave.WaveForm.InitialDriftCorrect(Double[]& L, Double[]& L1, Double& spline_drift, Int32 data_length, Int32 freq, Double min_drift) in C:\Users\ypa\documents\visual studio 2015\Projects\Wave\Wave\WaveForm.cs:line 2326
   at Wave.WaveForm.ProcessAll(Double[] L, Double[] L1, Int32 freq, Int32 freq1, Int32 freq2, Int32 bits1, Int32 bits2, Boolean bMatch, Boolean bLoadOnly) in C:\Users\ypa\documents\visual studio 2015\Projects\Wave\Wave\WaveForm.cs:line 1631
2019-03-20 01:26:45.9619|INFO|Wave.WaveForm|Stopped! One or more errors occurred.
2019-03-20 01:26:45.9775|INFO|Wave.WaveForm|Signature: 22826c7e3da2d2ccfcebafc2cb6c67f1

 

 

Can you please upload a snippet of this file? Somehow I can't reproduce it when I save to 32-bit floating point in Audacity.

 

 

Link to comment
5 hours ago, esldude said:

The log file shows 32 bit files with initial peak values that are positive.  Like when using 32 bit wav pcm it is showing 770 db peak.  Deltawave sees it as a 32 bit file, but doesn't seem to work with it.  After adjusting gain or attempting to for 32 bit it shows NaNdb.

 

Here is a log file with both 32 bit.

 

 


2019-03-20 01:29:16.4432|INFO|Wave.WaveForm|Signature: 9f0269cc1c8f6a0731584ab69946631e
2019-03-20 01:43:03.7428|INFO|Wave.WaveForm|ProcessAll
2019-03-20 01:43:03.8990|INFO|Wave.WaveForm|DeltaWave v1.0.18, 2019-03-20T01:43:03.8990752-05:00
2019-03-20 01:43:03.8990|INFO|Wave.WaveForm|File 1:  Bob Marley 2nd gen.wav[L] 1547432 samples 44100Hz 32bits, MD5=00
2019-03-20 01:43:03.8990|INFO|Wave.WaveForm|File 2: Bob Marley 3rd gen.wav[L] 1570828 samples 44100Hz 32bits, MD5=00
2019-03-20 01:43:03.8990|INFO|Wave.WaveForm|Settings: 
    Gain:True, Remove DC:False
    Non-linear Gain:False    EQ FFT Size:32768, EQ Frequency Cut: 0Hz - 0Hz, EQ Threshold: -130dB
    Correct Drift:True, Precision:8
    Upsample:False, Window:Hann
    Spectrum Window:BlackmanHarris, Spectrum Size:16384
    Spectrogram Window:BlackmanHarris, Spectrogram Size:2048, Spectrogram Steps:2048
    Dither:False

2019-03-20 01:43:04.0553|INFO|Wave.WaveForm|Discarding: Start=0s, End=0s
2019-03-20 01:43:04.0709|INFO|Wave.WaveForm|Discarding: End  =0s, End=0s
2019-03-20 01:43:04.2740|INFO|Wave.WaveForm|
Initial peak values File 1: 770.637dB   File 2: 8dB
2019-03-20 01:43:04.2740|INFO|Wave.WaveForm|Initial RMS values File 1: NaNdB   File 2: NaNdB

2019-03-20 01:43:04.2896|INFO|Wave.WaveForm|Null Depth=NaNdB
2019-03-20 01:43:04.3990|INFO|Wave.WaveForm|Trim: skipping 54 samples at start, and 2 samples at end that are below 3.72529029846191E-09 level
2019-03-20 01:43:04.4615|INFO|Wave.WaveForm|Trim: skipping 0 samples at start, and 2 samples at end that are below 3.72529029846191E-09 level
2019-03-20 01:43:05.8837|INFO|Wave.WaveForm|Phase inverted
2019-03-20 01:43:05.8837|INFO|Wave.WaveForm|X-Correlation offset: 1 samples
2019-03-20 01:43:08.0610|ERROR|Wave.WaveForm|Stopped!
   at System.Threading.Tasks.Task.WaitAll(Task[] tasks, Int32 millisecondsTimeout, CancellationToken cancellationToken)
   at Wave.Analysis.ComputeDriftSpline(Double[] L, Double[] L1, Int32 freq, Int32 data_length, Int32& inc, Int32 steps, Boolean fractional, Double& error, Double& drift, Boolean bLinear) in C:\Users\ypa\documents\visual studio 2015\Projects\Wave\Wave\Analysis.cs:line 894
   at Wave.WaveForm.InitialDriftCorrect(Double[]& L, Double[]& L1, Double& spline_drift, Int32 data_length, Int32 freq, Double min_drift) in C:\Users\ypa\documents\visual studio 2015\Projects\Wave\Wave\WaveForm.cs:line 2326
   at Wave.WaveForm.ProcessAll(Double[] L, Double[] L1, Int32 freq, Int32 freq1, Int32 freq2, Int32 bits1, Int32 bits2, Boolean bMatch, Boolean bLoadOnly) in C:\Users\ypa\documents\visual studio 2015\Projects\Wave\Wave\WaveForm.cs:line 1631
2019-03-20 01:43:08.0766|INFO|Wave.WaveForm|Stopped! One or more errors occurred.
2019-03-20 01:43:08.0766|INFO|Wave.WaveForm|Signature: 7a04b178245e32cb8305fd5a920c878a

 

 

And with only one file 32 bit.

 

 

2019-03-20 01:26:41.9963|INFO|Wave.WaveForm|ProcessAll
2019-03-20 01:26:42.1369|INFO|Wave.WaveForm|DeltaWave v1.0.18, 2019-03-20T01:26:42.1369300-05:00
2019-03-20 01:26:42.1369|INFO|Wave.WaveForm|File 1:  Bob Marley B.wav[L] 1377376 samples 44100Hz 16bits, MD5=00
2019-03-20 01:26:42.1369|INFO|Wave.WaveForm|File 2: Bob Marley B 38 drop 24bit.wav[L] 1377376 samples 44100Hz 32bits, MD5=00
2019-03-20 01:26:42.1525|INFO|Wave.WaveForm|Settings: 
    Gain:True, Remove DC:False
    Non-linear Gain:False    EQ FFT Size:32768, EQ Frequency Cut: 0Hz - 0Hz, EQ Threshold: -130dB
    Correct Drift:True, Precision:8
    Upsample:False, Window:Hann
    Spectrum Window:BlackmanHarris, Spectrum Size:16384
    Spectrogram Window:BlackmanHarris, Spectrogram Size:2048, Spectrogram Steps:2048
    Dither:False

2019-03-20 01:26:42.2777|INFO|Wave.WaveForm|Discarding: Start=0s, End=0s
2019-03-20 01:26:42.2933|INFO|Wave.WaveForm|Discarding: End  =0s, End=0s
2019-03-20 01:26:42.4652|INFO|Wave.WaveForm|
Initial peak values File 1: -1.549dB   File 2: 770.628dB
2019-03-20 01:26:42.4808|INFO|Wave.WaveForm|Initial RMS values File 1: -17.348dB   File 2: NaNdB

2019-03-20 01:26:42.4964|INFO|Wave.WaveForm|Null Depth=NaNdB
2019-03-20 01:26:42.5902|INFO|Wave.WaveForm|Trim: skipping 511 samples at start, and 529 samples at end that are below 0.000244140625 level
2019-03-20 01:26:42.6371|INFO|Wave.WaveForm|Trim: skipping 507 samples at start, and 512 samples at end that are below 0.000244140625 level
2019-03-20 01:26:43.9653|INFO|Wave.WaveForm|Phase inverted
2019-03-20 01:26:43.9653|INFO|Wave.WaveForm|X-Correlation offset: 1 samples
2019-03-20 01:26:45.9619|ERROR|Wave.WaveForm|Stopped!
   at System.Threading.Tasks.Task.WaitAll(Task[] tasks, Int32 millisecondsTimeout, CancellationToken cancellationToken)
   at Wave.Analysis.ComputeDriftSpline(Double[] L, Double[] L1, Int32 freq, Int32 data_length, Int32& inc, Int32 steps, Boolean fractional, Double& error, Double& drift, Boolean bLinear) in C:\Users\ypa\documents\visual studio 2015\Projects\Wave\Wave\Analysis.cs:line 894
   at Wave.WaveForm.InitialDriftCorrect(Double[]& L, Double[]& L1, Double& spline_drift, Int32 data_length, Int32 freq, Double min_drift) in C:\Users\ypa\documents\visual studio 2015\Projects\Wave\Wave\WaveForm.cs:line 2326
   at Wave.WaveForm.ProcessAll(Double[] L, Double[] L1, Int32 freq, Int32 freq1, Int32 freq2, Int32 bits1, Int32 bits2, Boolean bMatch, Boolean bLoadOnly) in C:\Users\ypa\documents\visual studio 2015\Projects\Wave\Wave\WaveForm.cs:line 1631
2019-03-20 01:26:45.9619|INFO|Wave.WaveForm|Stopped! One or more errors occurred.
2019-03-20 01:26:45.9775|INFO|Wave.WaveForm|Signature: 22826c7e3da2d2ccfcebafc2cb6c67f1

 

 

770dB is a very loud track, don’t try to play it! ;)

Link to comment
36 minutes ago, pkane2001 said:

 

Can you please upload a snippet of this file? Somehow I can't reproduce it when I save to 32-bit floating point in Audacity.

 

 

 

Never mind. It was a 32-bit signed PCM rather than floating point that caused this. Try saving as 32-bit floating point, instead, as that works. I'll investigate why this audio library can't handle 32 bit integer samples, but I have a suspicion...

Link to comment
18 hours ago, fas42 said:

To verify Audacity's precision, I just now loaded in original Bob Marley B, 16 bit; Bob Marley B-0.38, 16 bit, that I had earlier exported; amplified the latter by 0.38dB, inverted, mixed both to a new track - that nulled to -95.9dB, which is about as good as one could expect, :).

 

OK, Frank, so how did you do this? Here's what I get in Audacity when I try to repeat your steps. Please also share your Audacity Quality settings during processing, as that's the only difference I can think of between our two processes:

 

1. Load original Bob Marley B track (16/44)

2. Amplify by -0.38dB

3. Export as 16 bit PCM (16/44)

4. Load both the original and the exported files from disk

5. Amplify the modified file by 0.38dB, invert it

6. Mix the inverted file with the original. Here's what I get:

 

image.thumb.png.ab401357f7a29215ac8382a2aba57a79.png

 

Note the RMS value of the null track: -79.3dBFS.

 

 

When I run the same two files through DeltaWave, the result is as follows:

Gain= -0.3843dB (0.9567x) Phase offset=0ms (0 samples)
Difference (rms) = -89.52dB [-96.63dBA]
Correlated Null Depth=87.98dB [95.99dBA]

 

So, how did you get -95.9dB in Audacity?

 

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