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:
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. |
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":
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:
8. Run a test convolution to make sure things look OK!
9. [Optional] Applying Inter-Channel Phase Alignment (ICPA).
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!
Summary:
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. |
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.
ReplyDeleteHey there Mikhail,
DeleteWow, 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".
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 :)
DeleteBravo 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.
ReplyDeleteFor 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!
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.
DeleteArchimago 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.
Hey there Mitch,
DeleteThanks 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!
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.
ReplyDeleteThank for the note Roth,
DeleteI'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.
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