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

Compensating for mains and sub delay

OP
E

ErLan

Member
Joined
May 16, 2023
Messages
39
Likes
24
what I heard in the first left IR you posted is following:

here is the drum intro of Billie Jean convolved with the IR, and than it repeats but with a single notch filter engaged:

View attachment 301198

hopefully it becomes clear how much this filter cleans up the audio

use headphones https://drive.google.com/file/d/1-pHLLrkzCRQw2cOTPK3jfC_DzuuFy2-W/view?usp=sharing

now I don't know if this is really that dramatic in the real room.
that first MDAT was single measurement?
the second MDAT averaged?

I hear another high pitched resonance at another part in MJ's voice
Thanks! indeed a very convincing (and swinging) example :),
Window may be possible as my side walls are fairly bright, left side - ~1.5m from a concrete wall, right side a ~1.5m from big glassy window, I am usually using curtains to somewhat relief but I do not believe they contribute much at the 400Hz (only few mm thick).
I will apply your proposal, and see what I will come with as source of this (hope I will not end up with too many options :/)
 

OCA

Addicted to Fun and Learning
Forum Donor
Joined
Feb 2, 2020
Messages
679
Likes
499
Location
Germany
untreated rooms are just crazy.
from what I understand, OP's latested mdat is averaged meassurements? and we still get this:

View attachment 300666

this is a 10dB range, resonanty af
I garantee you guys I can show you half of those in action if I look for the right songs.

in comparison my mains in my DIY treated room, and these are PA speakers, and it's a single measurement:

View attachment 300667

still not heaven in hell...I know.
but you see that crazy peak at 420-ish?
look what it did after room EQ: https://www.audiosciencereview.com/...ou-guys-hear-a-resonance-in-this-track.46213/
yea, it was emphasized after I (experimentily) room corrected it, but still....these are serious problems that will stick out depending on the material. every single one of these.

we can manually minimum phase EQ these down one by one, but this will probably create a FR full of holes.

for a single measurement though, and I am very aware of this, we can control all of these with phase manipulation,
so we just have to find a way to make it work more broadly
You can remove that energy peak @400Hz with a time inverted (rePhase compensate mode) 2nd order allpass with a very high Q (i.e. 25). I have seen 20 Q at 63Hz not create pre-echo while 10 Q at 1100Hz to echo like a duck. So it's a bit of o hit and miss but worth a try.

The resulting filter may come with SPL deviations sometimes larger than -6dB but you can multiply them with their 1/magNA and get rid of all volume fluctuations while kkeeping the phase response intact. In some REW versions, you might need to repeat this a couple of time until SPL variation is small enough. A x B conjugate multiplication solves the problem with just one operation however, removing volume leveling can add reverb.

Applying these sharp phase filters to each speaker can cause some major cancellations in the L+R response. That's why I prefer to apply this only for the L+R energy peaks.

Subtle change of technique...
Here's my left speaker at the moment, the 2 energy peaks cannot be removed without adding echo:

1690849850979.jpeg

1690850054890.jpeg
 

Attachments

  • 1690850026124.jpeg
    1690850026124.jpeg
    445.5 KB · Views: 26
Last edited:

OCA

Addicted to Fun and Learning
Forum Donor
Joined
Feb 2, 2020
Messages
679
Likes
499
Location
Germany
I think I've finally managed to SEE pre-echo/ringing thanks to your graphs.

None of the known step response 5ms, above certain % or dBFS rules work. Low freq., high Q , even high magnitude doesn't necessarrily cause ringing. Besides, it might also have something to do with the "actual response" the filter is applied to rather than the filter itself. Any phase filter I tried around 100Hz ringed today probably due to my AC harmonic.

This filter causes no audible ringing:

1690745479310.png


This one does ring:

1690745511563.png


Now, the visible difference...

No ringing:

1690745644333.png

versus the ringing version:

1690745721352.png


It's the long vertical spaced lines that give it away. I tried with many other filters today.

No ringing:
1690745798480.png


vs ringing:

1690745824549.png


What do you guys think?
 
Last edited:

dualazmak

Major Contributor
Forum Donor
Joined
Feb 29, 2020
Messages
2,854
Likes
3,063
Location
Ichihara City, Chiba Prefecture, Japan
Hello again, dear OP @ErLan,

Although really intensive and precise (and educational) discussions and actual practices were/are shared on this thread, I still do not fully understand how extensively/precisely you would like to solve your "issues = delay between subwoofer(s) and other SP drivers" which you shared in your very first post.

I assume very simple/primitive pseudo-tuning of "group delay adjustment" or "time alignment" between your sub-woofer(s) and whole of other SP drivers may be possibly just enough in your own audio setup in your listening room acoustic environment.

If this would be the case, you can achieve "quasi-time-alignment" (or I may say pseudo-time-alignment) using DSP software in PC, even for single stereo-DAC plus single stereo amplifier plus passive LC(R) network SP system as shown in the diagram below.

I actually configured this scheme in my another small audio setup at upstairs office, and it works just fine enough (i.e. acceptable compromisation) as expected for usual music listening enjoyments during my office work, even though not perfectly in-phase or linear-phase.

In this case, maybe no intensive objective "measurements" would be needed, but just subjective hearing tests (using suitable "transient" music reference tracks, e.g. ref. here) would give you satisfactory improvements, if you can be relaxed and relieved with such "compromisation".
WS00005783.JPG
 
Last edited:
OP
E

ErLan

Member
Joined
May 16, 2023
Messages
39
Likes
24
Hello again, OP @ErLan,

Although really intensive and precise (and educational) discussions and actual practices were/are shared on this thread, I still do not fully understand how extensively/precisely you would like to solve your "issues = delay between subwoofer(s) and other SP drivers" which you shared in your very first post.

I assume very simple/primitive pseudo-tuning of "group delay adjustment" or "time alignment" between your sub-woofer(s) and whole of other SP drivers may be possibly just enough in your own audio setup in your listening room acoustic environment.

If this would be the case, you can achieve "quasi-time-alignment" using DSP software in PC, even for single stereo-DAC plus single stereo amplifier plus passive LC(R) network SP system as shown in the diagram below.

I actually configured this scheme in my another small audio setup at upstairs office, and it works just fine enough (i.e. acceptable compromisation) as expected for usual music listening enjoyments during my office work, even though not perfectly in-phase or linear-phase. In this case, maybe no intensive objective "measurements" would be needed, but just subjective hearing tests (using suitable "transient" music reference tracks, e.g. ref. here) would give you satisfactory improvements, if you can be relaxed and relieved with such "compromisation".
View attachment 302436
[/QUO
Thanks @dualazmak!
Indeed I still pending some exploration to converge. So far I mainly performed the invert phase approach (see above) that seems to markedly improve the performance, nevertheless there are some flaws that does requires further exploration (e.g. behavior 150Hz-300Hz, the ~370Hz peak, etc.)... but forced to take it slowely (surely relative to what I wish) due to personal availability.
W.r.t. method you shared above, if I understood correctly the essence is to break the signal to small pieces via. Adequate crossover, treat each saparately (mainly delay) and merge them back to a single output coming out of Lt/Rt.
Did I got it correctly?
If so, I conceptually tested it and it also being positive outcome, yet somewhat more combursome to create in EqAPO.
If not, I will be glad if you will further elaborate.
 
OP
E

ErLan

Member
Joined
May 16, 2023
Messages
39
Likes
24
Sorry again press the edit and not the reply (?), @dualazmak (all), seems like my reply is integrated to previous one (when expending the original message banner).
 

dualazmak

Major Contributor
Forum Donor
Joined
Feb 29, 2020
Messages
2,854
Likes
3,063
Location
Ichihara City, Chiba Prefecture, Japan
Sorry again press the edit and not the reply (?), @dualazmak (all), seems like my reply is integrated to previous one (when expending the original message banner).
Thanks @dualazmak!
Indeed I still pending some exploration to converge. So far I mainly performed the invert phase approach (see above) that seems to markedly improve the performance, nevertheless there are some flaws that does requires further exploration (e.g. behavior 150Hz-300Hz, the ~370Hz peak, etc.)... but forced to take it slowely (surely relative to what I wish) due to personal availability.
W.r.t. method you shared above, if I understood correctly the essence is to break the signal to small pieces via. Adequate crossover, treat each saparately (mainly delay) and merge them back to a single output coming out of Lt/Rt.
Did I got it correctly?
If so, I conceptually tested it and it also being positive outcome, yet somewhat more combursome to create in EqAPO.
If not, I will be glad if you will further elaborate.

Yes, your understanding is just correct for my suggestions.

You may easily test/try such "pseudo-tuning of time alignment" in your actual audio setup, and please firstly subjectively evaluate the possible improvement at your listening position by step-by-step changes of the group delays, e.g. in a few ms to upto 150 msec group delay of "other SP drivers" against sub-woofer(s); I believe you can subjectively hear the difference/improvement.

Since your main delay tuning target is between sub-woofer(s) and other SP drivers, I recommend you to use the "reference transient sound tracks, especially track-19 and track-26 " which I shared here. For safety, please be careful to reduce master playback gain/volume for the first time to listen to them.
 
Last edited:

ernestcarl

Major Contributor
Joined
Sep 4, 2019
Messages
3,113
Likes
2,330
Location
Canada
I think I've finally managed to SEE pre-echo/ringing thanks to your graphs.

None of the known step response 5ms, above certain % or dBFS rules work. Low freq., high Q , even high magnitude doesn't necessarrily cause ringing. Besides, it might also have something to do with the "actual response" the filter is applied to rather than the filter itself. Any phase filter I tried around 100Hz ringed today probably due to my AC harmonic.

This filter causes no audible ringing:

View attachment 302309

This one does ring:

View attachment 302310

Now, the visible difference...

No ringing:

View attachment 302311
versus the ringing version:

View attachment 302312

It's the long vertical spaced lines that give it away. I tried with many other filters today.

No ringing:
View attachment 302313

vs ringing:

View attachment 302314

What do you guys think?

How did you test for audibility? Using headphones? Speakers? And was the room acoustics accounted for? What type of test track signals?


Both filter sets are pre-causal in nature and will indeed show artifacts in the wavelet spectrograms.

For assessing potential audibility, I would rather use 1/2 or 1/3 smoothing and about 20-25 dB scale (the lower dB value being much more generous).

1690964990681.png


1690964995511.png


Absent the transfer function of the room, frankly, neither one looks "correct" to me visually.
 

OCA

Addicted to Fun and Learning
Forum Donor
Joined
Feb 2, 2020
Messages
679
Likes
499
Location
Germany
How did you test for audibility? Using headphones? Speakers? And was the room acoustics accounted for? What type of test track signals?


Both filter sets are pre-causal in nature and will indeed show artifacts in the wavelet spectrograms.

For assessing potential audibility, I would rather use 1/2 or 1/3 smoothing and about 20-25 dB scale (the lower dB value being much more generous).

View attachment 302809

View attachment 302810

Absent the transfer function of the room, frankly, neither one looks "correct" to me visually.
"Billy Jean" is my goto song for pre-echo test. You will hear it instantly at the begining. Before that I used to test with "Bubbles" from Yosi Horikawa. If Billy Jean doesn't ring no other song will and I am pretty certain that filter can be categorized ring free in terms of audibility.

I am using the filter below as part of a complex filter in my system right now:

1691091221194.png


It turns this:

1691091268504.png


into this:

1691091317192.png


Filter ringing is independent of the transfer function (if you don't count the song playing part of the transfer fucntion of course). I test these reverse allpass filters all day and directly convolve each and every one first to audibly test ringing before I use it in the combination filter. If it doesn't ring with Billy Jean it's not going to ring in the combined filter and with any other song. I must have tested hundreds of such filters to date.

I attached the convolution file here. Feel free to test it with your library.
 

Attachments

  • InvertedAllPass.zip
    82 KB · Views: 29

ernestcarl

Major Contributor
Joined
Sep 4, 2019
Messages
3,113
Likes
2,330
Location
Canada
Filter ringing is independent of the transfer function (if you don't count the song playing part of the transfer fucntion of course).

1691163979779.png


1691163986646.png

*not normalized

Seems strange to me why you think evaluating pre-causal/acausal filters absent the room's transfer function as completely valid.


I test these reverse allpass filters all day and directly convolve each and every one first to audibly test ringing before I use it in the combination filter. If it doesn't ring with Billy Jean it's not going to ring in the combined filter and with any other song. I must have tested hundreds of such filters to date.

Your spectrograms above seem to be in Fourier mode(?) ... parameters are also undeclared. I guess those things don't matter now.

No, it's really not so hard for me to believe that you might not hear any audible artifact when your room system setup is added into the bigger picture.

I only suggest be more cautious in claiming generalities out of specific cases.
 
Last edited:

OCA

Addicted to Fun and Learning
Forum Donor
Joined
Feb 2, 2020
Messages
679
Likes
499
Location
Germany
View attachment 303353

View attachment 303354
*not normalized

Seems strange to me why you think evaluating pre-causal/acausal filters absent the room's transfer function as completely valid.




Your spectrograms above seem to be in Fourier mode(?) ... parameters are also undeclared. I guess those things don't matter now.

No, it's really not so hard for me to believe that you might not hear any audible artifact when your room system setup is added into the bigger picture.

I only suggest be more cautious in claiming generalities out of specific cases.
I shared the filter for you to try in your system. You cannot claim it's non-ringing property is related to my particular set up without trying.

I generally use dbFS Step response graph to check for ringing and I can generalize that if there's a smooth slope in the first 20-25 ms (there can be higher levels earlier - which is new info for me, too) then the filter has no audible ringing. In your graph the red line is what I am talking about:

1691166181174.png
 

ernestcarl

Major Contributor
Joined
Sep 4, 2019
Messages
3,113
Likes
2,330
Location
Canada
You cannot claim it's non-ringing property is related to my particular set up without trying.

Audibility is in question, but the pre-ringing or pre-echo is already plainly visible. I don't believe it has to look like literal ripples to constitute as an unwanted artifact.


I generally use dbFS Step response graph to check for ringing and I can generalize that if there's a smooth slope in the first 20-25 ms (there can be higher levels earlier - which is new info for me, too) then the filter has no audible ringing.

What about excess energy occurring beyond 20-25ms? And does it have to look like it's "ringing" in that plot view in isolation to be of real concern in every other scenario?

It's not gonna make a whole lot of sense for me to convolve this filter on top of what filters I already have in place. If you want to me listen to the filter's effect, I'd honestly rather have you create two recordings played back from within your room or room's IR with/out filter. Same as @dasdoing did in an earlier example of a room resonance he previously uploaded.


Near-field Desktop BM system with/out your filter:

1691171836877.png 1691171840696.png 1691171843941.png 1691171847227.png 1691172529409.png 1691172533920.png

FYI, the ETC "limit guide" was adapted from Bohdan's work and the transparent graphic I simply lazily copied from SwissBear at DIYAudio: https://www.diyaudio.com/community/...ir-filtering-tool.221434/page-21#post-3502579

Use of the wavelet spectrogram as a quick and easy visual way to evaluate pre-echo was something that I learned from @jlo here: https://www.loudspeakers.audio/en/faq/
 
Last edited:

OCA

Addicted to Fun and Learning
Forum Donor
Joined
Feb 2, 2020
Messages
679
Likes
499
Location
Germany
Audibility is in question, but the pre-ringing or pre-echo is already plainly visible. I don't believe it has to look like literal ripples to constitute as an unwanted artifact.

What about excess energy occurring beyond 20-25ms? And does it have to look like it's "ringing" in that plot view in isolation to be of real concern in every other scenario?

It's not gonna make a whole lot of sense for me to convolve this filter on top of what filters I already have in place. If you want to me listen to the filter's effect, I'd honestly rather have you create two recordings played back from within your room or room's IR with/out filter. Same as @dasdoing did in an earlier example of a room resonance he previously uploaded.
I am finding it difficult to understand what point you're trying to make with your arguments. I am sharing my experience about a filter which didn't have any audible ringing unlike tens of other seemingly similar but ringing filters I tested. I shared the filter for others to test and confirm and I am trying to brain storm on a robust method to detect pre-echo in a filter from graphs. I've proposed a bunch of ideas already before which made sense to me. Your claim that the filter must be ringing and I must be "selectively" deaf doesn't really help the purpose.
 

ernestcarl

Major Contributor
Joined
Sep 4, 2019
Messages
3,113
Likes
2,330
Location
Canada
I am finding it difficult to understand what point you're trying to make with your arguments. I am sharing my experience about a filter which didn't have any audible ringing unlike tens of other seemingly similar but ringing filters I tested. I shared the filter for others to test and confirm and I am trying to brain storm on a robust method to detect pre-echo in a filter from graphs. I've proposed a bunch of ideas already before which made sense to me. Your claim that the filter must be ringing and I must be "selectively" deaf doesn't really help the purpose.

I already said it is easy for me to believe that your filter design is benign when applied to the system it was intended for... :facepalm:

In the same vein, I do not tell people the filters I have designed for my own personal sound sound system should sound perfectly alright/correct/non-pre-ringing when applied to every other sound system design out there in existence.
 

OCA

Addicted to Fun and Learning
Forum Donor
Joined
Feb 2, 2020
Messages
679
Likes
499
Location
Germany
I already said it is easy for me to believe that your filter design is benign when applied to the system it was intended for...
The problem that filter corrects is one of the hardest, if not impossible problems to correct in any system. I am sharing because it can help a lot of people sort out long running problems only if we can understand why it doesn't ring. I shared the track that will instantly produce echo with every wrong filter, I shared the filter in wav format. There's only one and a lot asier way to learn if it's system dependent, don't you think?
 

ernestcarl

Major Contributor
Joined
Sep 4, 2019
Messages
3,113
Likes
2,330
Location
Canada
The problem that filter corrects is one of the hardest, if not impossible problems to correct in any system. I am sharing because it can help a lot of people sort out long running problems only if we can understand why it doesn't ring. I shared the track that will instantly produce echo with every wrong filter, I shared the filter in wav format. There's only one and a lot asier way to learn if it's system dependent, don't you think?

I don't really agree with your methodology. Didn't I graphically demonstrate why any acausal filter design (actually, most of any EQ for that matter) should not be evaluated in a vacuum? And yet you insist... a "track that will instantly produce echo with every wrong filter".

Really? I personally would not go that far...

BTW, Dasdoing was the first one to recommended this specific track to me some time ago, and, yes, I have listened to it more times than I care for. So you should not feel slighted that I would rather not be your guinea pig today. Maybe some other time.
 

dasdoing

Major Contributor
Joined
May 20, 2020
Messages
4,301
Likes
2,774
Location
Salvador-Bahia-Brasil
You can remove that energy peak @400Hz with a time inverted (rePhase compensate mode) 2nd order allpass with a very high Q (i.e. 25). I have seen 20 Q at 63Hz not create pre-echo while 10 Q at 1100Hz to echo like a duck. So it's a bit of o hit and miss but worth a try.

this is intresting, in order to understand what those are at the least.

here is Q50 @417Hz

before

1691696006657.png


after

1691696025455.png


we see it moves the "whole thing" forward. the peak is now at 0, but it start before the others.



---------------------------


that leeds me to my theory on seeing pre-delay:

first of all, we need to make the phase as clean as possible. we need really loud meassurements. I would say, as loud as you dare.
and than we still need to filter out noise by making the windows as small as possible to further remove noise.
here is the window I aplied on the IR above for example

1691696383123.png


NOTE: to have effect on spectorgram we actually have to export the windowed IR and re-import it into REW

So, the wavelet is cool, but I find it rather confusing for transient analiysis. I think it's forte is showing reflections speratly, which is not the subject here.
the Fourier one though, shows me everything I need. the peak line should be as linear as possible, will show us transient behaviour.
PLUS the start of the graph should be as linear as possible, too.....and there NOTHING sharp should start alone.
if we look at the second graph from above with a helping line:


1691697227765.png


I know instantly that this wont work even though the peak is at 0

the question is how much scale range to use. but the overall flatness of the "start of the graph" wont change anyways
 

Attachments

  • Sem título.jpg
    Sem título.jpg
    259.7 KB · Views: 26

dasdoing

Major Contributor
Joined
May 20, 2020
Messages
4,301
Likes
2,774
Location
Salvador-Bahia-Brasil
in theory (for a single meassurement(!) ONLY) and ignoring anoying system delays,

with the cleaned up IR, I can phase invert the WHOLE excess phase and have things pretty clean allready:

before

1691697660080.png


after

1691697699054.png


look how the 417Hz resonance is cleaned up and it doesn't stick out that much "at the start of the graph"

I can than make things incredibly good looking by further correcting this, this time the whole phase but limted by a FDW window, here 15 cycles

1691698056532.png



look at the start of the graph.....it looks cleaner than before I corrected anything. no chance for pre-delay here

I can even go further by merging diferent FDW windows at this second step. here is the result for 35 cucles for example (instead(!) of the 15 one)

1691698204627.png


you see I cleaned up the midrange even further, BUT my nasty 417Hz resonance is now pre-delaying AND ringing.

So, I can simply merge these last two filters at 500Hz and than aply it to the result form step 1:

1691698391563.png


isn't that beautiful?

now, especially the first filter is obviously problematic. even without moving the mic it will not work like that for a second meassurement.....I said theory ;-)

the practical aplication of this is what I am working on
 

OCA

Addicted to Fun and Learning
Forum Donor
Joined
Feb 2, 2020
Messages
679
Likes
499
Location
Germany
this is intresting, in order to understand what those are at the least.

here is Q50 @417Hz

before

View attachment 304916

after

View attachment 304917

we see it moves the "whole thing" forward. the peak is now at 0, but it start before the others.



---------------------------


that leeds me to my theory on seeing pre-delay:

first of all, we need to make the phase as clean as possible. we need really loud meassurements. I would say, as loud as you dare.
and than we still need to filter out noise by making the windows as small as possible to further remove noise.
here is the window I aplied on the IR above for example

View attachment 304919

NOTE: to have effect on spectorgram we actually have to export the windowed IR and re-import it into REW

So, the wavelet is cool, but I find it rather confusing for transient analiysis. I think it's forte is showing reflections speratly, which is not the subject here.
the Fourier one though, shows me everything I need. the peak line should be as linear as possible, will show us transient behaviour.
PLUS the start of the graph should be as linear as possible, too.....and there NOTHING sharp should start alone.
if we look at the second graph from above with a helping line:


View attachment 304925

I know instantly that this wont work even though the peak is at 0

the question is how much scale range to use. but the overall flatness of the "start of the graph" wont change anyways
I find clarity (specifically c80) and GD graphs much easier to read to check if a filter has improved peak energy time.

CWT is showing promise to me to see pre-echo though.
 
Top Bottom