Friday 2 August 2024

AudioVero Acourate v3.1 - room correction with bass pre-filtering and Inter-Channel Phase Alignment (ICPA).

After writing the post on Audiolense recently, I thought it would be good to have another peek after a few years now at AudioVero's Acourate (€416 non-EU countries); the latest version 3.1 released in June 2024.

For years, Acourate has been the room-correction filter toolbox I've used (at least since 2016, updated 2019, plus discussion on partial correction in 2021). Now that it has been half a decade plus a pandemic (!) since the step-by-step 2019 update, let's look at the latest version which has brought with it changes in the user interface as well as the Inter-Channel Phase Alignment (ICPA) feature released in version 2 which I had not discussed previously.

Before getting started, a big thanks to Mitch Barnett of Accurate Sound for his YouTube video a couple years back using Acourate 2 showing the technique around pre-filtering and ICPA. I've taken inspiration from his video, applying it to my home set-up, and converting those steps into a written blog format for the current Acourate version. If what I'm doing here is not clear, make sure to also check out the video since Mitch might have already covered your questions/issues there.

Let's get started!

The image above shows my room when I was capturing the Acourate log sweep the other evening. Notice that I did not clear out the room to create any reflection-free zone just as I did not with the Audiolense articles previously. Notice in the image I'm using my Focusrite Forte USB digital audio interface as DAC/ADC/mic preamp, and the Dayton Audio EMM-6 XLR measurement mic with calibration file. The reason is because Acourate uses low-latency ASIO drivers to maintain accurate timing such as when calibrating the microphone alignment. I tried using alternatives like ASIO4All with the UMIK-1 USB mic but this was less than satisfactory. So make sure you have access to a good ASIO-capable audio interface before running Acourate.

I have Acourate running on my fanless Intel Alder Lake i3-N305 computer (discussed here). The Focusrite Forte is connected by USB, with RCA output to Yamaha AV receiver for playback:

While I have a multichannel system, and there is a way to create multichannel filters using Acourate that's quite involved, I'll leave you to explore if interested. For this post, we'll still be creating a 2-channel correction filter for stereo content sent to the front Paradigm Reference Signature S8 speakers with subwoofer integration.

1. Start Acourate and make sure to select a new default directory so all the files can go in there:


Without everything pointed into one unique directory, things can get pretty confusing and chaotic!

As you can see, over the years, there have been refinements to the user interface. I appreciate that the scaling looks good on modern 4K monitors without distortions of the fonts or graphical elements.

2. Let's make sure the microphone is at the sweet spot with "Microphone Alignment" (Recording Microphone Alignment):

Note the circled numbers, these are the easy-access buttons to the "Macros" I'll be referring to in the text.

You'll hear some rapid clicks alternating between speakers to check that the distance is the same between them based on timing. As mentioned above, accurate timing is important here, hence the need for ASIO audio driver.

Obviously we want to achieve 0 delay between the 2 speakers as per the image above. Move the microphone to get at the sweet spot, make sure this is also eventually the optimal position where you're going to be sitting when listening to music.

3. Run the log sweep to record the frequency response and extract the time impulse response:



From the dropdown menu, we see that there is also a "Sinc Pulse Recorder" option which is a new way to optimize specific speaker drivers when designing active crossovers by capturing near-field measurements. For more details, if you have a multi-way active XO, check out this tutorial.

Stick with default 48kHz sample rate.

I believe the default was for a 60-second sweep; I find 30 seconds adequate. Notice the Dayton mic calibration file entered in the appropriate field. The calibration .wav was prepared in the same way as discussed in 2019 (see Step 2) using the serial-number specific text file from Dayton.

As usual, be careful with the playback volume. You definitely do not want/need it too loud when running the sweep.

4. Run Macro 1 to apply psychoacoustic smoothing and then Macro 2 to design the target room curve:


After Macro 1 - notice the frequency response smoothing.

Alright, let's design the target room curve (Macro 2); here's my "Default" curve:


5. [Optional] Creating bass pre-filter.

Room modal irregularities in the bass below the Schroeder "transition zone", typically <250Hz, can be highly variable, often excessively loud. We can create a "pre-filter" using the original measured room sweep prior to psychoacoustic smoothing for potentially stronger correction that can knock down these loud room modes.

So let's give this a try. 

A. Load the measured "Pulse48L" and "Pulse48R" back into slots 1 and 2 so we have the original unfiltered data. Since we just got out of Macro 2 in step 4, we should see the target curve in slot 3:


B. Take a difference between the Target (slot 3) and slots 1 ("Pulse48L") and 2 ("Pulse48R") - put results into slots 4 and 5 for left and right:


C. Now apply the "Magnitude Limiter" at 0 so the pre-filter only contains all the loud excess amplitude material that we're looking to knock down:

Set the magnitude limiter to 0 when asked.

As you see, we've now given the graph a "haircut" with limit at 0.

D. Next, we need to select where we cut the bass pre-filter off - somewhere between 200-300Hz should be fine (I know Mitch and Uli usually recommend <200Hz), let's first zoom into that range:

Once zoomed in, see if you can find a convenient place where both channels are at "0". If for some reason you don't see an overlap, it's OK to have slightly different cut-off points in each channel:

As you can see, around 277Hz I've got a spot that's convenient to mark.

E. Apply "Phase Extraction" up to the cut-off mark and everything to the right set at 0; put the modified data in Slots 1 and 2, overwriting the previous "Pulse48L" and "Pulse48R":



Overwrite "Pulse48L" and "Pulse48R" slots
with the left and right channel pre-filter.


F. Save the extracted Slots 1 and 2. Let's just call them "PreL" and "PreR" - these will be our pre-filter files:



G. Let's now go into Macro 0 and load up the left & right pre-filters.


With the pre-filters loaded in, it'll be automatically incorporated when we calculate our filters later.

H. Let's now run Macro 1 again this time with the pre-filter in place:


I. Fine-tune our target curve (Macro 2); for example, we can pull the target curve down a little in this example to reduce the number and/or amplitude of dips below target:

As expected, the bass peaks up to our pre-filter cutoff (277Hz) have been pre-emptively knocked down.

With that, we've now incorporated the pre-filter and adjusted target curve, we can continue forward to create the filter...

6. Invert the response (Macro 3) in preparation for filter creation:


7. Create the correction filters in Macro 4:


As usual, feel free to experiment with the amount of excess phase windowing to apply. Notice that I created filters for 44.1/48/88.2/and 96kHz. The software has also been instructed to make a Roon-compatible .ZIP file for easy import into Roon MUSE DSP settings.

8. Run a test convolution to make sure things look OK!


Not bad... While I'm not showing the frequency response, it looks nice when zoomed out. The step response tracing likewise looks more ideal with a strong initial 90° step "attack" then more gradual decay. The Inter-Channel Cross Correlation (ICCC) data on the right is going in the expected direction in that cross-correlation improved overall by 7.8%.

Notice the original room ICCC was only 54% which is not unexpected with all the furniture in place asymmetrically resulting in various reflections. Reflection-free, low reverb rooms, and high directivity speakers like horns can achieve >90% on the ICCC.

9. [Optional] Applying Inter-Channel Phase Alignment (ICPA).

At this point you could just jump to step 10 and get on with music enjoyment!

Depending on your room, there might be quite significant asymmetries that will affect the two channels in the test convolution (Macro 5) step response. Mine does not look too bad already but the room isn't totally symmetrical (my room shape discussed here) so let's see if we can refine the filter result a bit.

With ICPA, we can optimize the filters further to reduce temporal asymmetries; this could help improve the tonal balance in the bass frequencies (up to 350Hz).

A. Let's load up Macro 6:


This macro is new since Acourate version 2. Notice in the main window to the left, we see a group delay graph showing the left (red) and right (green) channels. Some are strong resonances or nulls as per the two long and narrow peaks to the right above the "Limit Q=60" curve (label obscured behind sub-window). These would not be correctable using the ICPA procedure.

However we see 4 smaller peaks, 2 in the right and 2 in the left channel, which we can specify to the program as asymmetrical group delays we'd like to correct. The software will then find a solution to create the best 2-channel filter that still corrects for the room anomalies while doing its best to match the two channels in the time-domain. 
 
So let's zoom into the first 2 group delay peaks as selected in the image above.

B. Identify the frequency and Q of these group delays so the program can figure out a way to equalize the two channels:


As you can see above, I've zoomed in and put my marker on that peak left-channel (red) group delay. Make sure "Source" is "left". Now clicking "1. Get Marked Frequency" will fill in the "f0 [Hz]" and "Q" fields automatically. This will create the greenish "demoL" curve that we can fine tune using those up and down arrows (click "2. Demo Edited Values" to update changes visually each time numbers adjusted).

In my example above, I can drop the Q just a slight amount and when there's almost a perfect overlap, click on "3. Simulate + Optimize" and then "4. Save Result" which will put the resonance values into the currently empty boxes in the sub-window.

So I go ahead and do this for each of the 4 group delay peaks making sure we tell the program whether it's the left or right channel for that specific peak. It looks like this when done:


Notice in the main window graph above I'm showing just the three "Limit Q" with "simL" and "simR" curves which are updated each time we press "3. Simulate + Optimize". By telling the macro where and how much group delay exists on each side, the software will create optimized responses which (hopefully!) are symmetrical, hence we see the overlapping simulation group delays which represent the solution the software has found.

Once this all looks good, click Exit.


C. Now let's run Macro 4 again and create the new correction filter(s) with ICPA turned on:

Afterwards, run Macro 5 to examine the test convolution to make sure things still look good:


Nice to see that the ICCC values improved with ICPA applied. Compared to step 8 above, there's been a general increase in cross-correlation. The overall ICCC is now +9.2% from +7.8% before.

And let's take a look at the effect without and with ICPA on the step response: 

Since my room isn't terribly asymmetrical, I'm not expecting massive differences. Nonetheless, we can see that with ICPA applied, the symmetry has improved for example ~0.15s and that rise ~0.16s in particular. In my room, audibility is at best subtle but I suspect the difference can be quite significant for others! Notice the tiny pre-ringing in the ICPA tracing; I'm not worried here given the basically insignificant magnitude, but this is something to keep an eye on.
 
Since plugging in the wrong values can easily result in significant pre-ringing, the advice I've been given is to be meticulous with each group delay you work on. It might be worthwhile getting out of Macro 6 every time you save results, run Macro 4 then Macro 5 to check for pre-ringing before moving on to the next group delay peak.

Another way we can look at the improvement with ICPA is in the frequency graph - here are the right and left test convolutions along with the channels added together (TD-Functions → Addition) to show inter-channel effects:

As you can see, while in my example it's not perfect, implementing ICPA does noticeably reduce the bass cancellation dips due to phase differences between right + left channels. Cool!

Alright, all done with ICPA, let's move on. 

 

10. Finally, load up the filters in your software of choice, and enjoy!

For me, I'll create this as another DSP profile option in Roon MUSE using their built-in convolution plugin:


I've identified the preset as an Acourate filter (which allows me to compare with the Audiolense ones - even more easily done BTW with HLConvolver), and I usually date these so I can go back and check on specific settings used to create the filter if needed.

Now go enjoy.


Summary:

There you have it ladies and gents, a look at using the latest version of Acourate (3.1) for room correction here at my home. While the procedure can look daunting, it's actually not that bad since much of it is engaging with the macros to set the room curve and filter parameters once we capture the room measurements. A bit of trial-and-error is needed though to optimize the settings. Given that Acourate is a very powerful "toolbox", there does need to be some complexity in order to achieve all that flexibility. If what you see here clearly appears above your level of comfort with computers or technical expertise, I'm sure the professional assistance at Accurate Sound will set you in the right direction. Also check out the Acourate User Group discussion forum.

In my current system with passive speaker crossovers, I would not be able to take full advantage of what this software has to offer. However, if you're running an active crossover system employing DSP, I suspect the software would be an invaluable asset to optimize sound quality; now with that "Sinc Pulse Recorder" near-field measurement capability for further driver linearization.

To end, for completeness - beyond the software convolution simulations - we can perform an in-room REW measurement using the correction filter through JRiver's DSP facility and WDM playback driver from the sofa "sweet spot" - changes observable in the real world...

Excellent job with in-room bass response! In the mid-range we have some interference from nearby surfaces like the sofa. 1/12-octave smoothing applied.

Close to the predicted response in simulation (9C). There is a little bit of pre-ringing L>R as predicted in the software that I can further work on (maybe add a little "pre-ringing comp" with filter creation). To be honest I don't notice an issue so probably will ignore for now until I have more time to tweak things further.

Whereas I was using the calibrated Dayton mic within Acourate with the USB Focusrite Forte DAC/ADC (ASIO driver), I'm now using the Yamaha AV receiver as HDMI DAC (DirectSound) for playback with Topping PA5 Mk II amplifier, measured with miniDSP UMIK-1 USB microphone in REW!

Furthermore, 3 weeks has passed between the filter creation and the REW measurements you see above. Despite all the changes with playback/recording hardware, positioning variations (mic approximately in the same place, furniture in the room moved a little when doing some cleaning), the expected frequency and time-domain improvements have been maintained.

Audiophiles and audio reviewers will often talk about the time-domain as being "very" important (as usual, let's not idealize human hearing ability!). We might obsess over such things like upsampling software (also this), digital filter options, and jitter. Realize though that something like upsampling, unless affecting frequency response significantly below 20kHz, are actually minor tweaks with essentially no meaningful effect compared to what room correction DSP will do to the sound of actual speakers in actual rooms. Whether it's Acourate, or Audiolense or maybe others like Dirac Live, I would encourage you to give room correction techniques a try once you have a reasonably good hi-fi setup (and no, "good" does not imply expensive!).

Speakers + room + what you can do to optimize that speaker-room complex are the most important determinants of sound quality. The rest of your hardware like the DAC, preamp, amp might play a role but much smaller assuming reasonable hi-fi quality. Other things like bit-perfect digital streamer, cables, network gear, and tweaks with no clear objective findings, basically negligible.

As for a more subjective description of the Acourate filter's sound quality... Well, this is accurate ("acourate"!) sound, folks. Ultimately, what is there to describe about the sound of transparency; or at least the closest we might achieve to that in our rooms? The more accurate the sound, the more transparent, the less it sounds like anything other than the music you're feeding into it.

IMO, the high-fidelity audiophile's passion is not to listen to the hardware and expecting it to sound like "something" between you and the music, but rather, we want to listen to the music as if the hardware effortlessly faded away. I'd rather own a system that "sounds like it doesn't exist", than one that "sounds like a million bucks"!

I've been using Acourate for years now and would not be without DSP room correction in my main listening room. What I said about Audiolense's sound quality applies to the Acourate filters as well. To be honest, other than some output level differences depending on the settings I use between the software packages, I find it hard to tell the differences apart. Acourate with its ICPA optimization now goes that extra mile with creating the optimized 2-channel filter and I think sounded a bit tighter in the bass region (this can be seen in the frequency response as well).

Thanks Dr. Brüggemann for the excellent software and continued Acourate feature updates. Cheers!

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

BTW, I like Acourate's RT60 room reverb time graphing module; here's the result in my room:


Notice the selectable tolerance limits based on different standards including "DIN 18041 Music" for audio listening. The limits are dependent on room size which you plug in on the right to calculate total volume. Larger rooms have higher tolerance limits.

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

I hope you're enjoying the music as we enter the month of August, friends!

9 comments:

  1. Archimago, thank you for an updated step-by-step guide for Acourate! I never used the "pre-filter" for the purpose of dealing with room modes before, will try next time. Agree that Acourate is even more powerful for the case when one has an active DSP crossover system. Sorry for a shameless plug, here is my experience of this kind: https://melp242.blogspot.com/2024/07/lxmini-desktop-version-lxdesktoppartii.html and a follow-up https://melp242.blogspot.com/2024/07/adding-bass-traps.html. I hope you will find it interesting. Another bonus of using Acourate is an excellent customer support by Uli via the forum.

    ReplyDelete
    Replies
    1. Hey there Mikhail,
      Wow, thanks for the links, what a fascinating project with that LXmini Desktop build! Quite the engineering challenge in that set-up and it's amazing to see the steps you've taken.

      Indeed, Uli's top-notch with communications and assistance over the years; not to be underestimated when it comes to software like this that reaches deep into the acoustic science.

      Yup, you'll need a Part III to tell us your subjective impressions and share with us your music recommendations and what you enjoyed after all that work!

      Interesting you brought up the Manger Sound Transducer (MST). I had forgotten about this. A number of years back a friend had the Manger Zerobox 109 in his small study room system. I remember being quite impressed by the imaging I heard with quite a bit of toe-in but overall wasn't too impressed by the sound considering the price he paid. I remembered him telling me about the uniqueness of the drivers but didn't quite appreciate the approach until a number of years later...

      I ran across this review of the MST with measurements:
      http://www.troelsgravesen.dk/Manger_files/MangerZerobox109.pdf

      Indeed, looks like a "mixed bag".

      Delete
    2. Hi Archimago! Finally, the Part III is done: https://melp242.blogspot.com/2024/08/lxmini-desktop-version-lxdesktoppart.html. I can't create posts at your pace :)

      Delete
  2. Bravo Arch! The power of state-of-the-art DSP is so good these days, one can fine tune pretty much any speaker to any room and achieve excellent results, even off axis.

    For example, here I took 6 measurements over a 6-foot horizontal area covering my couch area. This is using a single analysis measurement to develop the DRC and these measurements are with the FIR correction filter in the signal path.

    Lose a bit of bass control at the extremes (i.e. left speaker being measured 3ft right of center) but does not seem audible as I can sit anywhere across my 6-foot couch and the tone does not change, at all, even in the top end. One main reason for the uniform off axis response is because I am using constant directivity waveguides.

    Here is the timing (step) response

    A little bit of preringing at the distance extremes, which I can’t seem to hear. Otherwise, the stereo image and 3D depth of field sounds the same no matter where I sit on the couch or anywhere in the room for that matter.

    Hi Mikhail, nice job! Especially the work on over correction! This is the number one issue with DRC whether automated or not, one needs to inspect the correction filters closely for areas of overcorrection or high Q values. PS. I can vouch for the Rythmik servo-controlled subs as dual F18 sealed subs were used in the measurement above. Maintains an excellent minimum phase response for a long period of time.

    Folks often ask me how to verify that the DRC is doing what it is supposed to be doing. The two charts above are good examples. Another chart that is interesting to look at is simply stand the mic up at the MLP and take a measurement with REW using default settings i.e. 500ms window, no smoothing:

    Remember this is a full resolution measurement, no smoothing so it shows all the reflections using the 500ms window. While we can see a great deal of reflections in the frequency response, it’s envelope, which is mainly what we hear, is smooth, like in the chart above (as it is one of the the same measurements), which arguably is still a bit too much resolution for our ears to hear.

    The interesting bit is the phase response (or if you switched to group delay one would also see a straight line to about 400 Hz) which shows there are no low frequency reflections interfering at the listening position. Subjectively, the bass not only sounds smooth but also crystal clear. Acourate (plus Audiolense and Focus Fidelity Designer) is capable of this, but most other DRC, not so much. Continuing with the chart, we start to see reflections entering in the diffusion zone and above 1 kHz, pretty much direct sound plus room sound as we are not trying to correct the room once the sound becomes rays typically above 600 to 800 Hz in most living rooms.

    So, if your measurement looks like above, smooth frequency response and no phase or group delay disturbances in the bass frequencies, but not correcting above the diffusion zone, then the DRC is doing a proper job of what it is intended to do: smooth out the low frequency response so that it sounds even and either remove or adapt the low frequency room reflections to an ideal minimum phase response. Subjectively, this improves the bass clarity so it “sits in the pocket” so to speak. A major differentiator between OK DRC and SOTA DRC.

    Glad to see the article on DRC Arch! Especially the state-of-the-art DSP which folks may not realize is leaps and bounds better in sound quality than any of the other “mass marketed” DRC packages out there. Keep up the great work man!

    ReplyDelete
    Replies
    1. Thank you Mitch and Archimago! A lot of interesting information and food for thought from you both, as usual—I appreciate your time spent on writing these replies.

      Archimago has stated it many times that focusing on a proper set up of the speakers in your particular room is so much more important and at the same time much more challenging than swapping equipment (especially the kind that works purely in the digital domain). Audio industry is so much flawed and skewed towards fishing money from uneducated customers.

      Delete
    2. Hey there Mitch,
      Thanks for the note and the excellent work on the articles and videos over the years. Excellent example of measurements over that 6' horizontal seating position in the frequency and time domains! Much appreciate your expertise and feedback.

      I hope in time more audiophiles will come to realize the importance of DSP correction and how powerful the technique/technology is. Understandably (but unfortunately), much of the industry is about making sales for products (as per Mikhail's note on swapping equipment).

      An audiophile can just look at the magnitude of change due to the DSP! Compare that to any amplifier upgrade... Heck even any speaker upgrade since the DSP correction literally will make it sound like a totally different system! Yet people spend significant money on tiny, basically meaningless changes like hi-fi DACs, cables, tweaks of all sorts...

      While it could be difficult since we have all been conditioned to think and operate a certain way over the decades, I do hope many of us audiophiles at some point can get off the "merry-go-round". I can certainly imagine the Industry also not wanting hobbyists to change from that consumer upgrade mentality.

      Let's "think different" folks!

      Delete
  3. Thanks . . . it's nice to see this covered. In the figure "Close to the predicted response in simulation (9C)," it's impossible (at least on my screen) to read any of the axis legends or scales. I wonder if it might be possible to post a version with larger fonts for that.

    ReplyDelete
    Replies
    1. Thank for the note Roth,
      I'll be mindful of the resolution and font size going forward. Blogger's resizing leads to resolution deterioration. What you can do is click on the image and zoom in... This works well on mobile devices like the phone/tablet.

      For that "Close to the predicted..." graph, it's the step response with Y axis in % (+/-120% with the Acourate DSP initial peak at 100%), and X axis from -4.7ms to +63ms. Red = right, blue = left for both graphs.

      Delete
  4. Thanks for the awesome write-up! Is there a trial version to download of Acourate v3.1 somwhere, so I can take it for a spin before parting with EUR 415 untested?

    ReplyDelete