Macro 6 ?

Lesage
Posts: 22
Joined: 07 Nov 2020 11:17

Macro 6 ?

Post by Lesage » 29 Oct 2021 12:04

Hello,

Mitch Barnett has displayed a video in which he advocates in favor of digital room correction :
https://www.youtube.com/watch?v=yfGAUvy ... urateSound

At 1:06:40 he optimises the goup delay, using Room-Macro 6

My recent version of Acourate PRO doesn't have this macro... Is it a new development ?

Best regards
In-Ear
Posts: 47
Joined: 02 Jan 2020 18:41

Re: Macro 6 ?

Post by In-Ear » 29 Oct 2021 15:33

Thanks for sharing this video!

Latest official update for acourate was in July 21 to version V1.10.4

... Hope this function will come soon and also the anouncment by Uli.

Best regards,

Jörn
Ecwl
Posts: 48
Joined: 19 Feb 2021 01:05

Re: Macro 6 ?

Post by Ecwl » 29 Oct 2021 16:21

Yes. I have been doing this manually following the instructions below:

viewtopic.php?f=8&t=171

But it's a bit of a chore, especially when Mitch Barnett is recommending matching all group delays below 200-300Hz?, rather than just matching the group delays that cause major dip from left-right speaker phase cancellation.

On the other hand, I guess we only have to do it once so maybe it's not that bad?
Lesage
Posts: 22
Joined: 07 Nov 2020 11:17

Re: Macro 6 ?

Post by Lesage » 29 Oct 2021 18:02

I just have seen that you mentionned Mitch's video yesterday on another thread, so I took the time to read that one in extenso

As far as I understand, Mitch's rationale is to cancel those peaks as being excess phase related to room modes (whilst their frequency is relatively low)

If this is the case, the high limit of usage would be Schroeder's frequency, which value is relative to room dimensions (?)
Ecwl
Posts: 48
Joined: 19 Feb 2021 01:05

Re: Macro 6 ?

Post by Ecwl » 29 Oct 2021 18:59

So it's much more complicated than that.
Remember, initially, Uli was just pointing out that in rooms where speakers are asymmetrically setup, sometimes, you can have a 70-90Hz dip because the left speaker has an excessive phase group delay at 65Hz and the right speaker has an excessive phase group delay at 95Hz.

But the solution to that problem is not to remove the excessive phase group delay because that is not possible (Or presumably not possible without introducing more artifacts)

The solution is to add an excessive phase group delay at 65Hz to the right speaker and to add an excessive group delay to the left speaker at 95Hz. As a result, both speakers have the same 65Hz & 95Hz excessive phase group delay. Since both speakers would then be in phase, the 70-90Hz dip would go away.

But when you actually start listening to this correction, the thing that jumps out is that the bass frequency just seems more coherent when a musical instrument coming from the middle is hitting a note somewhere between 60-100Hz.

So what Mitch is proposing is say if your left speaker actually has excessive phase group delay at 3 specific frequencies and the right speaker has excessive phase group delay at 2 specific frequencies, (as you said assuming they are below Schroeder's frequency), you should create a filter so that both speakers with have all 5 excessive phase group delay frequencies. As a result the sound would be more coherent coming from both speakers. But nothing is being cancelled. If anything you're on purpose making things worse (in terms of excessive phase group delay in both speakers) to get a better sonic outcome (better coherence between the two speakers). But this is why I'm not sure if there is a specific frequency cutoff we should aim for (e.g. Schroeder's frequency), or whether we should only correct for maximum say 4 frequencies below 200Hz because you don't want to end up with a funny room where you correct for 12 frequencies below 300Hz where the correction is doing more harm than good. I have no idea what the answer to this is. I'd be happy to see what Mitch or Uli has to say about this.
Lesage
Posts: 22
Joined: 07 Nov 2020 11:17

Re: Macro 6 ?

Post by Lesage » 30 Oct 2021 11:00

Thank you for the explanation, it helps

So the case study is about cancellations due to assymetry in room modes - or propagation delays of reflected sounds - from left versus right speaker to the listener's (or microphone) place. Room modes are mentionned because invoqued frequencies are low (ie : under Schroeder's). Should they be higher, we would suspect reflections.

For instance, in an L-shaped room, at least lateral room modes differ for one speaker relative to the other.

In a perfectly symetric room, cancellation should not but may appear if the listener's place is not perfectly centered in the room, and at the same distance from both speakers.

The simpler way to overcome this issue is to move the speakers, or the listening place, until cancellations disappear. At least, the more offensive ones. However not all listeners have the possibility, or allowance, to move some furniture...

And I suspect that, even with an as powerful tool as Acourate, less corrections are more
User avatar
UliBru
Posts: 445
Joined: 19 Oct 2019 13:58

Re: Macro 6 ?

Post by UliBru » 31 Oct 2021 19:09

Mitch is using a pre-release of version2.
I'm quite busy to get it ready for release, hopefully in near future. Please be patient.
Stay well tuned
Uli

Moderator
Acourate system: JRiver/Roon -> AcourateConvolver -> miniDSP U-DIO8 -> TacT M/S2150 amps -> DIY horn speakers
Ecwl
Posts: 48
Joined: 19 Feb 2021 01:05

Re: Macro 6 ?

Post by Ecwl » 04 Nov 2021 03:43

So I just noticed that if I were to use Mitch Barnett’s more aggressive method to balance the excess phase group delays between left & right channels, inevitably, I would run into some group delays that have very high Q values, e.g. >=70

And if I were to generate pre-filters for these specific group delays, it seems that Macro 4 would cancel them out.

I ended up having 3 group delays on the left and 3 on the right but 2 on the left have really high Q values.
Since the new version of Acourate is not ready, I decided to bite the bullet and do it old school.
I generated the excess phase group delay filters but I didn’t put them into Macro 0. I ran Macro 4 first. And then I generated post-convolution filters using these group delay filters. But there were a lot of convolution, rotation, CutNWindow and then convolute this filter with the Macro 4 convolution filter.

The real challenge was that I’m not adapt at doing sample rate conversion within Acourate. So in the end, since I don’t understand how to do it properly I just generated the 6 excess phase group delay filters in 4 different sampling rates that I listen at (44.1KHz, 48kHz, 88kHz, 96kHz) and repeat the process all over again. Obviously, the sonic result was worth it or else I wouldn’t have gone into the deep end like this to do it.

But yeah, can’t wait till the Version 2 of Acourate arrives. Even if I might have no use for it. Thanks for the hard work. Acourate really is an amazing piece of software.
User avatar
dsnyder
Posts: 21
Joined: 22 Oct 2019 13:52

Re: Macro 6 ?

Post by dsnyder » 08 Nov 2021 13:44

Ecwl wrote:
04 Nov 2021 03:43
And if I were to generate pre-filters for these specific group delays, it seems that Macro 4 would cancel them out.
I was wondering that too. From talking to Uli elsewhere, the pre-filters are applied during amplitude preparation (Macro 1), which means that Pulse48Linv and Pulse48Rinv are created as if the speakers were "better" than they are. By this, I mean that the calculated inversion is, in a sense, incomplete when pre-filters are enabled. To resolve this, Macro 4 again applies the "pre-filters" after calculating the corrections.

For example, suppose the original Pulse48L has a 15 dB high-Q peak at 100 Hz. Psychoacoustic smoothing would dull this sharp peak, making it difficult to address completely. To simplify target design, Mitch suggests that we create a pre-filter that removes this peak. This makes the response look nicer during target design and inversion, but, of course, that peak is still present in the room! Macro 4 resolves this by applying the pre-filter that removes the peak at the end of the process. This makes sense, since Acourate did not include the presence of that peak in its filter calculations but we still want a complete correction.

I gave the example of a peak in amplitude because that is easier to visualize and reason about than group delay. In our use case of emulating the behavior of Macro 6 with Acourate v1.10.4, I'm not sure that we want the allpass IIR filters applied during amplitude preparation since we created these based on the test convolution results, not the original pulses.

For my latest filters, I have a pair of pre-filters that invert sharp peaks in amplitude below 240 Hz. I also have seven allpass IIR filters that I created to match L/R group delays below 300 Hz. When I went back to rebuild my filters with a tweak to the target curve (added a dip of less than 1 dB between 1 and 4 kHz), I removed the allpass IIR filters from Macro 0 (pre-filter) before amplitude preparation. I then added them back immediately before running Macro 4 so that they would be applied only at the end of the process. To verify the results, I exported the predicted impulse response after running a test convolution and imported it into REW. From there, I was able to confirm that group delay below 300 Hz indeed matched closely in both channels.

The best verification is to play sweeps with the filters applied and record them in REW. I'll do that next time I run LogSweepRecorder in Acourate since it's a bit of a pain to move things out of the way and set up the mic again. But I do this a lot, and the predicted results from Acourate's test convolution are always virtually identical.

Hope this helps somewhat though. If I'm wrong somewhere in my thinking, I'm sure Uli or someone will correct me. Cheers.
Acourate system: Roon -> Gustard X16 DAC -> Topping Pre90 -> Orchard Audio monoblocks -> Fritz Carrera 7 BE monitors + REL T7i subs
Ecwl
Posts: 48
Joined: 19 Feb 2021 01:05

Re: Macro 6 ?

Post by Ecwl » 09 Nov 2021 02:30

dsnyder wrote:
08 Nov 2021 13:44
I removed the allpass IIR filters from Macro 0 (pre-filter) before amplitude preparation. I then added them back immediately before running Macro 4 so that they would be applied only at the end of the process. … From there, I was able to confirm that group delay below 300 Hz indeed matched closely in both channels.
OMG. Thanks. I wish you had posted this before I went on my wild journey to convolute the allpass IIR filters separately. Your method is way better.
And I just re-read what Uli wrote, and your method was what he originally recommended. I just didn’t understand it. But now I do. Thanks again.
Post Reply