• 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!

Beta-test: DeltaWave Null Comparison software

OP
pkane

pkane

Master Contributor
Forum Donor
Joined
Aug 18, 2017
Messages
5,702
Likes
10,393
Location
North-East
Ahm, use "Orig.wav" (original) and "S2-ba.wav" (the loopback). The ones "*_X_*.wav" are the cross-convolved version (which can be used against each other, simple load only).

With your settings ("drift correction" is not needed, btw, all is sample-sync'ed) I get the usual scrambled artifact-laden residual as with any other nonlin correction setting, effectively unusable for my test case. OK, at least an IR is obtained, but how do I use it? As explained, re-running the match with IR set to "apply" does not change anything whatsoever. Where would it come into play actually, and how would it help to reduce the artifacts?

Somehow there is a fundamental misunderstanding (from my side) how this should work. I don't understand why the IR obtained can't simply be applied without anything else (plain load only), in the hope that the fixed global convolution with one single clean kernel should give lower artifacts, finally approching the quality of my method.

By the way, the problem with the non-linear EQ and the track you're using is caused by the frequency sweep at the end. If you include the sweep, the null isn't very good (-48dBFS) with all sorts of frequency and phase errors.

If you remove the sweep at the end, the result is much, much cleaner (-85dBFS null):
1619019112140.png


As to why the sweep is causing this, perhaps it's how it's blended into the track or some frequency content in the sweep that's not being processed correctly. How did you generate the sweep and how did you blend into the track?

Here's what the sweep does to the null error. You can see the error fairly low and consistent for most of the track, then suddenly spike at the insertion point of the sweep. Something doesn't align well (phase or amplitude) at the point where the sweep starts (this is without non-linear EQ):

1619020199695.png
 
Last edited:
OP
pkane

pkane

Master Contributor
Forum Donor
Joined
Aug 18, 2017
Messages
5,702
Likes
10,393
Location
North-East
By the way, the problem with the non-linear EQ and the track you're using is caused by the frequency sweep at the end. If you include the sweep, the null isn't very good (-48dBFS) with all sorts of frequency and phase errors.

If you remove the sweep at the end, the result is much, much cleaner (-85dBFS null):
View attachment 125456

As to why the sweep is causing this, perhaps it's how it's blended into the track or some frequency content in the sweep that's not being processed correctly. How did you generate the sweep and how did you blend into the track?

Here's what the sweep does to the null error. You can see the error fairly low and consistent for most of the track, then suddenly spike at the insertion point of the sweep. Something doesn't align well (phase or amplitude) at the point where the sweep starts (this is without non-linear EQ):

View attachment 125461

Here's what is causing the large error at the sweep (this is from the original no corrections applied at all). I assume the chirp at the beginning is not band-limited and it looks like there's a large phase error at the start of the sweep:

1619020946894.png
 

KSTR

Major Contributor
Joined
Sep 6, 2018
Messages
2,781
Likes
6,222
Location
Berlin, Germany
IR averaging is what is meant to help build a lower-noise IR. For that, you'll need to run more than a single match, against multiple captures while averaging IR responses.
Understood.... but in my test case, the raw data is already as good as it gets, full range and high energy, so that IR should not need any averaging to be clean.
But still, how and when is the IR actually applied? I don't understand the processing concept.
 

KSTR

Major Contributor
Joined
Sep 6, 2018
Messages
2,781
Likes
6,222
Location
Berlin, Germany
The sweep is REW standard fullrange measurement sweep (512k, 0Hz...fs/2). It's a hybrid sweep, linear from 0Hz to 10Hz, then logarithmic thereafter.
I framed the sweep with small dirac-delta pulses (needed for trimming etc) as those are least obtrusive.
1619021373380.png

EDIT: And it the loopback file we see the RME (low-ish) highpass, as a part of its linear transfer function.
 
OP
pkane

pkane

Master Contributor
Forum Donor
Joined
Aug 18, 2017
Messages
5,702
Likes
10,393
Location
North-East
Understood.... but in my test case, the raw data is already as good as it gets, full range and high energy, so that IR should not need any averaging to be clean.
But still, how and when is the IR actually applied? I don't understand the processing concept.

You first run multiple files through the match process, collecting and averaging their IR (the IR control should have a + sign in it):
1619021398899.png

After each match, every new IR will be added to the average, and the number at the top right will increase by 1.

When ready to test, turn on the apply IR option. This will change the IR control into a checkmark:
1619021501710.png


After this, any matches you perform will use the computed IR average for correction, instead of computing a new one. If at any time you want to continue adding more averaged IRs, click on the control again to turn it into a plus, and continue doing matches.
 
Last edited:
OP
pkane

pkane

Master Contributor
Forum Donor
Joined
Aug 18, 2017
Messages
5,702
Likes
10,393
Location
North-East
The sweep is REW standard fullrange measurement sweep (512k, 0Hz...fs/2). It's a hybrid sweep, linear from 0Hz to 10Hz, then logarithmic thereafter.
I framed the sweep with small dirac-delta pulses (needed for trimming etc) as those are least obtrusive.
View attachment 125474
EDIT: And it the loopback file we see the RME (low-ish) highpass, as a part of its linear transfer function.

I think this is causing a discontinuity in the analysis. DeltaWave does the processing on the file as a whole. Any sudden changes in the middle of the file (timing or amplitude related) will cause a large null error at and after the discontinuity.
 

KSTR

Major Contributor
Joined
Sep 6, 2018
Messages
2,781
Likes
6,222
Location
Berlin, Germany
DeltaWave does the processing on the file as a whole.
Yes, and that is what I see as the problem. I tried to trick the nonlin cal by using a 2M FFT (longer than the file) and using rectangular window, but this didn't work.

Maybe I should rehash what I think the process should be doing:
When we have complete unwindowed FFT's of ref and comp which doesn't have "holes" as the data is dense (level and frequency content), the linear transfer function to transform comp back to ref (for successful subtraction) should simply be FFT(ref)/FFT(comp), or FFT(ref) * 1/FFT(comp). When FFT(comp) is dense the inversion should work without major problems.
 
Last edited:

KSTR

Major Contributor
Joined
Sep 6, 2018
Messages
2,781
Likes
6,222
Location
Berlin, Germany
After this, any matches you perform will use the computed IR average instead of computing a new one. If at any time you want to continue adding more averaged IRs, click on the control again to turn it into a plus, and continue doing matches.
Call me dense (sic!) but I still cannot make any sense of it. How and where is the IR applied, to what data at what processing step?
 
OP
pkane

pkane

Master Contributor
Forum Donor
Joined
Aug 18, 2017
Messages
5,702
Likes
10,393
Location
North-East
Call me dense (sic!) but I still cannot make any sense of it. How and where is the IR applied, to what data at what processing step?

Maybe I just made it easier to understand to a developer than to a user :)

Short: IR processing in .65 is designed to extend the existing non-linear EQ feature to use an averaged result, constructed from multiple files. It works in concert with non-linear EQ, and doesn't replace it -- it just adds some features to it, like the ability to save and load existing corrections, plot it on a chart, or export it to another app.

Long: Think of what DeltaWave is designed to do: match comparison file to the reference, correcting for any differences. IR is just another difference to compute and to correct.

Non-linear EQ was already designed and worked as the inverse-IR correction in previous versions. All that's been added in the latest release is the ability to use that same non-linear EQ to:

1) collect multiple IR responses and to average them (previously only one IR was computed and applied)
2) use the created averaged IR as the non-linear EQ correction for other files in the future
3) export the inverse-IR so it can be applied in other apps

In effect, all the new IR processing is just an extension of the non-linear EQ engine:
  • When collecting IRs, it is computed at the same time that the non-linear EQ would normally be computed.
  • When applying averaged IR, it is applied instead of non-linear EQ, also at the same point in Match processing as would normally be done by non-linear EQ.
Maybe I need to hire a technical writer to help me document this better ;)
 

KSTR

Major Contributor
Joined
Sep 6, 2018
Messages
2,781
Likes
6,222
Location
Berlin, Germany
What I mean is this:
Test signal Ref: pink noise, with fade in and fade out, having (relatively) dense data, length is one second.
Test signal Comp: Ref with some EQ applied, a high pass and a low pass.

Ref signal:
1619023973969.png


Loading both signals as impulse response and then dividing them yields the applied EQ, the transfer function difference between the two:
1619024094621.png

With a little bit of smoothing (or more data for higher densitity) the transfer function would be extracted almost perfectly.

Then divide the EQ'd version by this TF, giving the original file, ready to subtract (shifted for clarity):
1619025004185.png


Loading the (trimmed) files break DW with a division by zero error.
EDIT: when starting playback of the diff.

Code:
2021-04-21 19:09:30.2596|INFO|Wave.WaveForm|Performing raw processing only -- all matching turned off
2021-04-21 19:09:30.3006|INFO|Wave.WaveForm|ProcessAll
2021-04-21 19:09:30.3216|INFO|Wave.WaveForm|DeltaWave v1.0.65, 2021-04-21T19:09:30.3196675+02:00
2021-04-21 19:09:30.3216|INFO|Wave.WaveForm|Reference:  A.wav[L] 31790 samples 44100Hz 32bits, mono, MD5=00
2021-04-21 19:09:30.3216|INFO|Wave.WaveForm|Comparison: B.wav[L] 31790 samples 44100Hz 32bits, mono, MD5=00
2021-04-21 19:09:30.3216|INFO|Wave.WaveForm|Settings:
    Gain:True, Remove DC:True
    Non-linear Gain EQ:False    Non-linear Phase EQ: False
    EQ FFT Size:2097152, EQ Frequency Cut: 0Hz - 0Hz, EQ Threshold: -160dB
    Correct Drift:False, Precision:30, Subsample Align:False
    Non-Linear drift Correction:False
    Upsample:False, Window:Kaiser
    Spectrum Window:Cosine23a, Spectrum Size:131072
    Spectrogram Window:Cosine23a, Spectrogram Size:4096, Spectrogram Steps:2048
    Dither:False
    Trim Silence:True
    Enable Simple Waveform Measurement: False

2021-04-21 19:09:30.3216|INFO|Wave.WaveForm|Discarding Reference:  Start=0s, End=0s
2021-04-21 19:09:30.3216|INFO|Wave.WaveForm|Discarding Comparison: Start=0s, End=0s
2021-04-21 19:09:30.4156|INFO|Wave.WaveForm|
Initial peak values Reference: -12.909dB   Comparison: -13.11dB
2021-04-21 19:09:30.4156|INFO|Wave.WaveForm|Initial RMS values Reference: -30.387dB   Comparison: -30.41dB

2021-04-21 19:09:30.4156|INFO|Wave.WaveForm|Null Depth=9.257dB
2021-04-21 19:09:31.1736|INFO|Wave.WaveForm|
Trimmed 0 samples ( 0.00ms) front, 0 samples ( 0.00ms end)

2021-04-21 19:09:31.2716|INFO|Wave.WaveForm|Gain matching disabled.
Phase offset=0ms (0 samples)
Difference (rms) = -58.24dB [-63.23dBA]
Correlated Null Depth=58.31dB [85.51dBA]
Clock drift: 0 ppm
2021-04-21 19:09:31.2726|INFO|Wave.WaveForm|

2021-04-21 19:09:31.2726|INFO|Wave.WaveForm|Files are NOT a bit-perfect match (match=4.1%) at 16 bits
2021-04-21 19:09:31.2726|INFO|Wave.WaveForm|Files are NOT a bit-perfect match (match=0%) at 32 bits
2021-04-21 19:09:31.2726|INFO|Wave.WaveForm|Files match @ 50.0283% when reduced to 10.91 bits
2021-04-21 19:09:31.2726|INFO|Wave.WaveForm|

2021-04-21 19:09:31.4096|INFO|Wave.WaveForm|---- Phase difference (full bandwidth): 180°
2021-04-21 19:09:31.4156|INFO|Wave.WaveForm|    0-10kHz: 180.00°
2021-04-21 19:09:31.4156|INFO|Wave.WaveForm|    0-20kHz: 180.00°
2021-04-21 19:09:31.4156|INFO|Wave.WaveForm|    0-24kHz: 180.00°
2021-04-21 19:09:31.4466|INFO|Wave.WaveForm|Timing error (rms jitter): 435.5ns
2021-04-21 19:09:31.5186|INFO|Wave.WaveForm|
RMS of the difference of spectra: -369.713301979388dB
2021-04-21 19:09:32.1836|INFO|Wave.WaveForm|Linearity 16.2bits @ 0.5dB error
2021-04-21 19:09:32.2386|ERROR|Wave.WaveForm|Stopped!
   bei System.Windows.Forms.Control.MarshaledInvoke(Control caller, Delegate method, Object[] args, Boolean synchronous)
   bei System.Windows.Forms.Control.Invoke(Delegate method, Object[] args)
   bei Wave.WaveForm.ProcessAll(Double[] L, Double[] L1, Int32 freq, Int32 freq1, Int32 freq2, Int32 bits1, Int32 bits2, Boolean bMatch, Boolean bLoadOnly, Boolean bApplyManual, Boolean bUpdateCharts, Boolean bStereo) in C:\Users\ypa\documents\visual studio 2015\Projects\Wave\Wave\WaveForm.cs:Zeile 1865.
2021-04-21 19:09:32.2386|INFO|Wave.WaveForm|Stopped! Es wurde versucht, durch 0 (null) zu teilen.
2021-04-21 19:09:32.2536|INFO|Wave.WaveForm|Signature: 6b3f9db848ef868e487ea799f7673460
 
Last edited:
OP
pkane

pkane

Master Contributor
Forum Donor
Joined
Aug 18, 2017
Messages
5,702
Likes
10,393
Location
North-East
What I mean is this:
Test signal Ref: pink noise, with fade in and fade out, having (relatively) dense data, length is one second.
Test signal Comp: Reg with some EQ applied, a high pass and a low pass.

Ref signal:
View attachment 125484

Loading both signals as impulse response and then dividing them yields the applied EQ, the transfer function difference between the two:
View attachment 125485
With a little bit of smoothing (or more data for higher densitity) the transfer function would be extracted almost perfectly.

Then divide the EQ'd version by this TF, giving the original file, ready to subtract (shifted for clarity):
View attachment 125486

Loading the (trimmed) files break DW with a division by zero error.
Code:
2021-04-21 19:09:30.2596|INFO|Wave.WaveForm|Performing raw processing only -- all matching turned off
2021-04-21 19:09:30.3006|INFO|Wave.WaveForm|ProcessAll
2021-04-21 19:09:30.3216|INFO|Wave.WaveForm|DeltaWave v1.0.65, 2021-04-21T19:09:30.3196675+02:00
2021-04-21 19:09:30.3216|INFO|Wave.WaveForm|Reference:  A.wav[L] 31790 samples 44100Hz 32bits, mono, MD5=00
2021-04-21 19:09:30.3216|INFO|Wave.WaveForm|Comparison: B.wav[L] 31790 samples 44100Hz 32bits, mono, MD5=00
2021-04-21 19:09:30.3216|INFO|Wave.WaveForm|Settings:
    Gain:True, Remove DC:True
    Non-linear Gain EQ:False    Non-linear Phase EQ: False
    EQ FFT Size:2097152, EQ Frequency Cut: 0Hz - 0Hz, EQ Threshold: -160dB
    Correct Drift:False, Precision:30, Subsample Align:False
    Non-Linear drift Correction:False
    Upsample:False, Window:Kaiser
    Spectrum Window:Cosine23a, Spectrum Size:131072
    Spectrogram Window:Cosine23a, Spectrogram Size:4096, Spectrogram Steps:2048
    Dither:False
    Trim Silence:True
    Enable Simple Waveform Measurement: False

2021-04-21 19:09:30.3216|INFO|Wave.WaveForm|Discarding Reference:  Start=0s, End=0s
2021-04-21 19:09:30.3216|INFO|Wave.WaveForm|Discarding Comparison: Start=0s, End=0s
2021-04-21 19:09:30.4156|INFO|Wave.WaveForm|
Initial peak values Reference: -12.909dB   Comparison: -13.11dB
2021-04-21 19:09:30.4156|INFO|Wave.WaveForm|Initial RMS values Reference: -30.387dB   Comparison: -30.41dB

2021-04-21 19:09:30.4156|INFO|Wave.WaveForm|Null Depth=9.257dB
2021-04-21 19:09:31.1736|INFO|Wave.WaveForm|
Trimmed 0 samples ( 0.00ms) front, 0 samples ( 0.00ms end)

2021-04-21 19:09:31.2716|INFO|Wave.WaveForm|Gain matching disabled.
Phase offset=0ms (0 samples)
Difference (rms) = -58.24dB [-63.23dBA]
Correlated Null Depth=58.31dB [85.51dBA]
Clock drift: 0 ppm
2021-04-21 19:09:31.2726|INFO|Wave.WaveForm|

2021-04-21 19:09:31.2726|INFO|Wave.WaveForm|Files are NOT a bit-perfect match (match=4.1%) at 16 bits
2021-04-21 19:09:31.2726|INFO|Wave.WaveForm|Files are NOT a bit-perfect match (match=0%) at 32 bits
2021-04-21 19:09:31.2726|INFO|Wave.WaveForm|Files match @ 50.0283% when reduced to 10.91 bits
2021-04-21 19:09:31.2726|INFO|Wave.WaveForm|

2021-04-21 19:09:31.4096|INFO|Wave.WaveForm|---- Phase difference (full bandwidth): 180°
2021-04-21 19:09:31.4156|INFO|Wave.WaveForm|    0-10kHz: 180.00°
2021-04-21 19:09:31.4156|INFO|Wave.WaveForm|    0-20kHz: 180.00°
2021-04-21 19:09:31.4156|INFO|Wave.WaveForm|    0-24kHz: 180.00°
2021-04-21 19:09:31.4466|INFO|Wave.WaveForm|Timing error (rms jitter): 435.5ns
2021-04-21 19:09:31.5186|INFO|Wave.WaveForm|
RMS of the difference of spectra: -369.713301979388dB
2021-04-21 19:09:32.1836|INFO|Wave.WaveForm|Linearity 16.2bits @ 0.5dB error
2021-04-21 19:09:32.2386|ERROR|Wave.WaveForm|Stopped!
   bei System.Windows.Forms.Control.MarshaledInvoke(Control caller, Delegate method, Object[] args, Boolean synchronous)
   bei System.Windows.Forms.Control.Invoke(Delegate method, Object[] args)
   bei Wave.WaveForm.ProcessAll(Double[] L, Double[] L1, Int32 freq, Int32 freq1, Int32 freq2, Int32 bits1, Int32 bits2, Boolean bMatch, Boolean bLoadOnly, Boolean bApplyManual, Boolean bUpdateCharts, Boolean bStereo) in C:\Users\ypa\documents\visual studio 2015\Projects\Wave\Wave\WaveForm.cs:Zeile 1865.
2021-04-21 19:09:32.2386|INFO|Wave.WaveForm|Stopped! Es wurde versucht, durch 0 (null) zu teilen.
2021-04-21 19:09:32.2536|INFO|Wave.WaveForm|Signature: 6b3f9db848ef868e487ea799f7673460

You do need to use longer signals for DeltaWave. It's designed for music track comparisons not for test signals. Having less samples than is needed for a single FFT window is obviously not handled very gracefully :)
 

KSTR

Major Contributor
Joined
Sep 6, 2018
Messages
2,781
Likes
6,222
Location
Berlin, Germany
Being lazy, I just wanted to do a plain no-frills subtraction with DC remove and gain adjust ;-)
EDIT: Diff in Audition:
1619026186017.png

Down to a certain signal level this crude attempt with REW did quite well, most of the residual is a linear copy (as no precision gain match took place).
 
Last edited:

KSTR

Major Contributor
Joined
Sep 6, 2018
Messages
2,781
Likes
6,222
Location
Berlin, Germany
OK, I didn' check for proper windowing in REW, now that I did I get a close to perfect Null with the REW-calculated and applied transfer function correction.
1619027446737.png

This is all just fs/2 ripple and a bit of DC (both to be ignored).
If REW can do it, so could DW, me thinks.

Next try will be with some nonlinear distortion, excess phase, gain pumping etc added, to see how robust this is...
 
OP
pkane

pkane

Master Contributor
Forum Donor
Joined
Aug 18, 2017
Messages
5,702
Likes
10,393
Location
North-East
Quick few changes and fixes added to DeltaWave v1.0.66:

Changes in 1.0.66b
  • Fixed: matching of files smaller than selected FFT size (caused an error previously)
  • Changed: units labeled “V” to “Amplitude” in IR plot viewer to better reflect values from -1 to 1
  • Changed: lines in IR plots are now interpolated for smoother display
  • Fixed: Plot refresh button now refreshes the IR plot
 

Pluto

Addicted to Fun and Learning
Forum Donor
Joined
Sep 2, 2018
Messages
990
Likes
1,633
Location
Harrow, UK
OK – I haven't used Deltawave for a few months so I might be out of touch with something, but…

1. I was surprised to get this apparent "cannot cope" error from two 88kHz files that sound, superficially, similar although I believe the main difference betwen them to be the quality of the artificial reverberation (i.e. quite a complex difference at low levels). I did a quick and dirty conversion of the files to 48kHz and the process completed as expected.
DeltaWave v1.0.66, 2021-05-16T15:04:45.0319407+01:00 Reference: First minute (prime) 88.flac[?] 5575259 samples 88200Hz 24bits, stereo, MD5=00 Comparison: First minute (compilation) 88.flac[?] 5585443 samples 88200Hz 24bits, stereo, 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 - 0Hz, EQ Threshold: -160dB Correct Drift:True, Precision:30, Subsample Align:True Non-Linear drift Correction:False Upsample:True, Window:Hann Spectrum Window:Hann, Spectrum Size:32768 Spectrogram Window:Hann, Spectrogram Size:4096, Spectrogram Steps:2048 Dither:False Trim Silence:True Enable Simple Waveform Measurement: False Discarding Reference: Start=0s, End=0s Discarding Comparison: Start=0s, End=0s Initial peak values Reference: -2.693dB Comparison: -6.661dB Initial RMS values Reference: -22.069dB Comparison: -21.726dB Null Depth=13.497dB Trimming 0 samples at start and 1 samples at the end that are below -90.31dB level Cross-correlation found multiple phase inversions -- data may be too noisy or too dissimilar! X-Correlation offset: -497 samples Trimming 0 samples at start and 0 samples at the end that are below -90.31dB level Stopped! Index was outside the bounds of the array. Signature: 7157c027a1ca19610acd5d4c73ce95d9

2. Running a filter "LP@start" applied to "Ref" seems to work as expected. Applying this filter to "Comp" or "R+C" (incidentally, I think the nomenclature "both" would be preferable to "R+C") does not appear (looking at the resultant "matched spectra" plot) to get applied to the "comp" audio, as you can see here…
Filter both.jpg

I can send you the files in question if this will be useful.

Many thanks for giving this truly useful utility to the world!
 
OP
pkane

pkane

Master Contributor
Forum Donor
Joined
Aug 18, 2017
Messages
5,702
Likes
10,393
Location
North-East
OK – I haven't used Deltawave for a few months so I might be out of touch with something, but…

1. I was surprised to get this apparent "cannot cope" error from two 88kHz files that sound, superficially, similar although I believe the main difference betwen them to be the quality of the artificial reverberation (i.e. quite a complex difference at low levels). I did a quick and dirty conversion of the files to 48kHz and the process completed as expected.
DeltaWave v1.0.66, 2021-05-16T15:04:45.0319407+01:00 Reference: First minute (prime) 88.flac[?] 5575259 samples 88200Hz 24bits, stereo, MD5=00 Comparison: First minute (compilation) 88.flac[?] 5585443 samples 88200Hz 24bits, stereo, 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 - 0Hz, EQ Threshold: -160dB Correct Drift:True, Precision:30, Subsample Align:True Non-Linear drift Correction:False Upsample:True, Window:Hann Spectrum Window:Hann, Spectrum Size:32768 Spectrogram Window:Hann, Spectrogram Size:4096, Spectrogram Steps:2048 Dither:False Trim Silence:True Enable Simple Waveform Measurement: False Discarding Reference: Start=0s, End=0s Discarding Comparison: Start=0s, End=0s Initial peak values Reference: -2.693dB Comparison: -6.661dB Initial RMS values Reference: -22.069dB Comparison: -21.726dB Null Depth=13.497dB Trimming 0 samples at start and 1 samples at the end that are below -90.31dB level Cross-correlation found multiple phase inversions -- data may be too noisy or too dissimilar! X-Correlation offset: -497 samples Trimming 0 samples at start and 0 samples at the end that are below -90.31dB level Stopped! Index was outside the bounds of the array. Signature: 7157c027a1ca19610acd5d4c73ce95d9

2. Running a filter "LP@start" applied to "Ref" seems to work as expected. Applying this filter to "Comp" or "R+C" (incidentally, I think the nomenclature "both" would be preferable to "R+C") does not appear (looking at the resultant "matched spectra" plot) to get applied to the "comp" audio, as you can see here…
View attachment 130039

I can send you the files in question if this will be useful.

Many thanks for giving this truly useful utility to the world!

Artificial manipulation of the frequency and timing can break the matching algorithm, as it depends on detecting primarily linear frequency and phase differences. The multiple phase inversion error indicates that different parts of the file have different absolute phase, which can easily cause matching errors.

Sure, upload the files and I’ll take a look.

Regards,

-Paul
 

Pluto

Addicted to Fun and Learning
Forum Donor
Joined
Sep 2, 2018
Messages
990
Likes
1,633
Location
Harrow, UK
Artificial manipulation of the frequency and timing can break the matching algorithm
Fair enough, but the same audio sampled at 48kHz worked, the 88.2kHz version did not. Does this not ring any alarm bells?
 
Top Bottom