As I mentioned last time, I changed the tweeter in one of my speakers resulting in a significant adjustment to the frequency response in the 2-5kHz range. This means it's time to update my AudioVero ((acourate)) (current version 1.9.12, 286€) room correction filters for late 2019. Looking back, I haven't posted on this since 2016! My, how time flies.
Given that it has been awhile, picking up Acourate again for some measurements required that I dig out my old notes and review the previous procedures again. As such I figured that it was time to write an update for a reasonably "quick and dirty" measurement which basically took me an afternoon to perform with excellent results. If you've tried Acourate, you'll know that this program is very powerful but can take a bit of time to figure out the interface and get comfortable with the process.
Okay then, let's get going with a quick but detailed summary while it's fresh in my mind and provide some pointers the next time I might have to do this again maybe in a few years :-). We'll then end this post with a few other related subtopics that came out during the measurements...
1. First, as per the general walkthru instructions from Mitch Barnett a few years ago, let's reduce the number of objects that can potentially obstruct or reflect sound waves in the room between the speakers and microphone. For me, this meant moving my leather sofa back a few feet (against the white Ikea Kallaxes on the left where my LPs are), moved items like the music stand and guitars out of the room, and likewise the padded ottoman/coffee table out of the way:
Ideally, the leather sofa should be out of the room since the measurement is still susceptible to rear reflections so close to the mic and that corner seat to the left of the microphone should likewise be moved out. Since I wanted to get the job done without too much hassle, this was good enough.
2. Prepare the audio hardware and get the microphone calibration file ready.
As you can see on the floor up front by the turntable, this is my Microsoft Surface 3 Pro computer lying at an angle. I'm using the Focusrite Forte USB audio interface with power supply plugged in for the 48V phantom power to microphone (connected to mic input 2) and the unbalanced line outs are sent to my Emotiva XSP-1 pre-amp. Remember that the program only supports ASIO drivers used for the DAC/ADC.
The Dayton Audio mic comes with individual calibration data - go to their website, enter your serial number and download the text file.
Now import the .txt calibration file for the microphone and convert to an inverted calibration WAV:
Import it as standard 65536 samples, minimum phase. Now apply the inverse function into "Series 2":
You should now see something like the image below. Then save the Series 2 waveform with File --> Save Mono WAV out as a 64-bit file to somewhere easily accessible - this is what you'll calibrate with when doing the room sweep (Step 5):
3. Make sure the measurement microphone is positioned centrally between the two speakers using LogSweep --> Microphone Alignment tool.
This is a very cool tool that will send little right and left "clicks" out to each speaker which the microphone will pick up and the program will check for speaker distance based on the timing. It'll point to the direction to move the microphone and you'll see a green "0" when the speakers are equidistant. Also you can check the little waveform box for alignment:
If the speaker volume is too low, the program may not pick up each "click" very well and you might see a situation where the waveform for one of the speakers isn't being displayed consistently.
4. Set the File --> Project Workspace Definition directory.
This is the directory where all the subsequent measurement sweeps will be saved, room target curves live here, as well as the subsequent test convolution directory we'll see later on.
5. Time to record the frequency sweep - use LogSweep --> LogSweep Recorder.
Click on "Active Curve" number 1. Now run the LogSweep Recorder:
48kHz works well (and has been said to be preferable), and logically set the "Sweep End" to 24000. "Target Length" at 65536 works well although if you want, 131072 is also available for more "extreme" filters (this will increase latency). Note the "Mic Calibration" is pointing to the calibration file we created in Step 2.
Use the "Recording Level [dB]" scale to check to make sure it's not clipping. I typically turn the volume up to a peak of around 80dB SPL, C weighted, checked with my old SPL meter.
After the recording is done, you'll see the IACC (Interaural Coherence Coefficient) calculated and displayed:
As one would expect, IACC will vary quite a bit depending on the room and is also dependent on the furniture and other reflective surfaces in the listening space. (We'll talk a little more about this below.)
6. Room Macro 1: Amplitude Preparation.
Now that we have the sweep recorded, it's time to do some psychoacoustic smoothing out of the waveform in preparation for filter creation. Here's what I used with Room --> Room Macro 1: Amplitude Preparation:
Noticed that I used 30/30 in the "Window" parameter (default is 15/15). The first value refers to the number of cycles before, and the second number is logically the number of cycles after the frequency component being analyzed. By increasing this value, it reduces the effective amount of smoothing applied by incorporating more of the pre- and post- cycles around the frequency component. You can read more about Frequency Dependent Windowing here. FDW is a key concept, and part of the "magic" on how this all works.
7. Room Macro 2: Target Curve Design.
This is where objective meets creative subjectivity :-). It's time to decide what you want your room "house curve" to look and sound like. Feel free to design to subjective taste! Let's use a design like this:
Clicking and dragging the left "Basic" setting (greenish square) allows you to set what level you want the curve to sit at. Dips in the frequency plot below the target curve line will either not be corrected or at most mildly boosted up depending on your filter generation settings below (Step 9). Notice I've set this curve to flat from 10 to 500Hz, then dips to -6dB into 24kHz. That's a pretty good sounding, classic target based on the Brüel & Kjær "ideal speaker curve" research from back in 1974 (see paper):
Remember there are many other curve variants out there. Experiment.
Save Target as "Target.dbl" in your working directory and Exit.
8. Room Macro 3: Inversion.
Time to invert the frequency response based on the room curve to calculate the "correction" that needs to be applied. Run the Inversion macro.
We see that the room curve will attenuate the signal by about -3.86dB in this example. Remember that since we're primarily correcting peaks, there should be an attenuation of negative a few dB's.
9. Room Macro 4: Filter Generation.
Create the various filters at selected samplerates:
You can play with the various settings like "Excessphase window" and "Pre-ringing comp.". In my room, 4 for "Excessphase" and 2 for "Pre-ringing comp." work well based on test convolutions shown in the next step. Notice that I don't mind letting the program do a little "correction gain" by 2dB. Make sure to keep this low, <6dB recommended. I've checked off filter creation for 44, 48, 88, 96, 176, and 192kHz. No real need for 352 and 384kHz unless you routinely upsample and DSP at such high samplerates on your system.
As you can see, the program is reporting a -1.9dB attenuation with the created filters. With the potential for 2dB "correction gain" applied when needed, the attenuation is less than -3.86dB reported in Step 8.
10. Room Macro 5: Test Convolution.
Running the test convolution helps to confirm that the filters are achieving the goal of improving frequency and time-domain performance.
Notice that the IACC has improved overall. Make sure the little time domain step response tracing at the bottom looks good. If we zoom into this we see that it's reasonably symmetrical in each R+L channel and there's no pre-ringing for what should be a clean minimum phase "step".
If some of the settings are incorrect (especially the "Pre-ringing Comp."), what you'll often see is abnormal ringing. For example:
And we can get rid of that pre-ringing with setting "Pre-ringing comp" to 2/2:
Notice in the 0/0 image above, it's only the right channel (green) affected by ringing. Therefore one could just use "0/2" to address it; the two channel settings do not have to be the same.
You can also use the test convolution to have a look at the frequency response with the filter applied. What you do is start Room Macro 1 but point the setting to <Project Workspace Definition>/TestConvolution/Pulse48L.dbl like so:
After the macro is run, you'll see the psychoacoustically smoothed corrected filter response (make sure the "Frequency Dependent Window" parameters are the same as in Step 6 above). Now load into Curve 3 the left smoothed uncorrected sweep data "Pulse48Lmp.dbl" and Curve 4 the right smoothed uncorrected data "Pulse48Rmp.dbl" from the default "Workspace" (not from the TestConvolution directory). At this point you'll see the 2 stereo sets of curves overlaid. What we can then do is apply -20dB attenuation with TD-Functions/Gain to Curve 1 and Curve 2 (the corrected frequency responses) to separate the two stereo pairs and see the difference that the DSP has made:
Notice the (expected) effect that the "room curve" has had on the corrected frequency response dipping -6dB into 24kHz. You can further confirm the filtering effect by using Room EQ Wizard to measure like I did previously. Or just have a listen which is more fun. :-)
Here's another measurement to check out. Load up the <Project Workspace Definition>/TestConvolution/Pulse48L.dbl into Curve 1 and <Project Workspace Definition>/TestConvolution/Pulse48R.dbl into Curve 2. These are the unsmoothed test convolution data, and have a look at TD-Functions --> RT60: Reverberation Time to make sure your reverb time looks decent post-filtering.
This is the amount of time it takes for a 60dB decay across the frequency spectrum in your room:
The DIN18041 tolerance outline is the standard for "Acoustic quality in small and middle-sized rooms" - see more here. Looks like my room is less reverberant ("dryer") below 200Hz than the usual DIN18041, and more in line with the EBU3276 studio recommendation.
11. If you need to retry with new filter settings (yes, you probably will!)...
Suppose the test convolution isn't looking good (eg. pre-ringing and the symmetry of the two channels look poor). Go back to Step 9 above and restart Macro 4 making sure that it's pointing to your "Pulse48L.dbl" file in the correct work directory if all you want to do is change some parameters for the filter generation. This is the fastest way to try out the different parameters and run a test convolution after each iteration to get things right.
Because the "Excessphase window" parameters can result in unexpected outcomes and the values are not particularly intuitive, I wonder if there is a way to automate the process somehow in future versions of the software. For example, maybe letting the machine iteratively test out the parameters a step at a time for each value storing the resulting filters for the right and left sides. Then run test convolutions comparing the sides and report on the IACC results so the user can have a better look at the best calculated outcome? Given the possible combinations, this could take awhile but these days we have powerful computers that can probably provide interesting results over a couple hours of number crunching.
12. I use Roon mainly for listening in the soundroom these days. Acourate now has an option to ZIP up the FIR filters (up to 192kHz samplerate) for import into Roon which is handy.
I can then name the ZIP file to something like "Paradigm S8 - -6dB Taper to 24kHz.zip" and import it into Roon's convolution filter for the device / zone I want to apply the DSP to:
|Import the filters into Roon. Feel free to enable "Headroom Management" if you're worried about any clipping especially if you've asked Acourate to add "correction gain" during filter creation.|
13. You're done! Congrats...
Now go listen to some music and see if the correction filters have "tuned" your speakers / room to achieve subjectively better sound.
Let's now talk about a few subtopics that came to mind during the procedure...
Interaural Coherence Coefficient (IACC) and room...
The IACC value (obtained in Step 5 with the LogSweep Recorder) will change with the room and all the surfaces the sound bounces off. For fun, let me show you the IACC values I get when I record the LogSweep in the cleared room:
And now in my "typical room" layout:
Despite the lower IACC, I have used Acourate to record the sweep and create filters with the bottom room configuration for comparison. While it does still sound good, I agree with taking the extra time to clear out the room a bit and measuring the inherent sound of the space. The ear/mind has an ability to adjust when it sees the furniture in place, sound reflections off of which would affect higher frequencies (>200-300Hz).
Let's have a look at the first 10ms of the step response in my example above with the "cleared room". Remember that the microphone is around 9' away and the height is at ear level which for these speakers is below the tweeter axis perhaps by up to 12". Here's the "raw" recording without DSP applied, then what it looks like with DSP applied:
When time domain performance is good, my perception is that the speakers will perform the proverbial "disappearing act" and you'll notice that instruments and vocals become more focused in the soundstage. To me, sometimes I get the impression that the soundstage seems less "cluttered" as individual instruments and voices can be more easily picked out in discreet space. Subjectively, this is a pleasing effect, I feel less distracted, and ultimately less fatiguing.
Remember that it's still "garbage in, garbage out". Not all recordings are good or have the ability to project a convincing soundstage. Some albums simply do not benefit much from high-fidelity playback.
Here are the 3 variants I have available to switch between in Roon:
Here's the pre- and post-correction frequency response for the "Harshness Dip + B&K" target to show the effect (-20dB applied to the "After" tracings for separation):
Well audiophiles, the take home message is that it's good to have control over the kind of sound you want to achieve. Computer-based FIR filters like this provide a much more powerful tool than tone controls or basic EQ knobs and sliders. From what I have heard, I do not believe that we need to be afraid of deviating from the "purist" audiophile playbook of avoiding ways that could enhance the sound in our rooms. Remember that this isn't analogue audio where sticking something like an EQ box into the playback chain will inevitably add some noise and loss of resolution.
Looking at the bigger picture, IMO, the audiophile pursuit is not about spending money on products in the hopes that the system you put together sounds good (especially when good money is spent on likely sonically meaningless products like tiny stick-on "resonators", or expensive cables, even those that actually do act as "tone controls"). I think it's good for the audiophile's soul to act proactively and optimize the sound of your existing system based on your preferences.
Remember that audio hardware designers do not live in your home, have not heard your room(s), and are unlikely to own the gear you have especially component systems made up of various brands. This means ultimately it's up to oneself to tweak the final sound rather than depend just on the product designer's "ear" and certainly be careful with putting too much weight into purely subjective reviewer impressions.
I know some folks like to have a bass boost for the room curve such as something like this:
In my system, turning up the sub volume would have that kind of effect (with better frequency response down to 20Hz and lower). And I can use the analog sub cut-off control at the back to adjust how high I want the sub to bump frequencies up to (typically ~80Hz to reduce/remove localization at higher frequencies).
Obviously I cannot vouch for all the ways of getting the job done and I'm not sure how well each product handles both frequency and time domains. What I can say is that with Acourate, the difference in my experience when I turn on the DSP is well worth the time and effort to implement. The software also has provisions for higher complexity such as setting digital crossovers as discussed by Mitch previously and also addressed in his book.
Listening is the final arbiter so freely experiment for yourself.
In other news... The other day, ahofer contacted me about his blind testing idea. I think he has some great thoughts for "crowdsourcing a blind test" posted on the Audio Science Review forum as a fun way to test out claims and money can go to charity. I see that PS Audio's PerfectWave DirectStream DAC "Windom" FPGA firmware upgrade being audibly different despite lack of measurable effect has been promoted as a potential candidate for a blind test like this. Sounds good to me and I'm happy to chip in some money for charity or help in any way I can. Maybe Paul McGowan or Ted Smith (word on the Net is that he can hear jitter) can step up to take the blind test and prove that this Windom upgrade is significant - as claimed in the press release:
"Windom reveals richness and natural detail within the music at levels formerly unattainable in any digital to analog converter we have auditioned. With its improved retrieval of reverb and ambience, Windom communicates with a glorious sense of openness and effortlessness, adding a sense of immediacy and ‘rightness’ without sacrificing honesty or transparency."
Music of the week for me has been Grimes' Visions (2012, DR8) which I only heard recently. "Grimes" is Canadian artist Claire Boucher from right here in Vancouver. Congrats on the song "Oblivion" off this album making it to #2 on Pitchfork's "200 Best Songs of the 2010s" list!
Also trying to get into Wilco's new Ode To Joy (2019, DR8), one of their slower, more reflective albums - I typically need a few listens before I can get into Wilco.
Hope you're enjoying the music...
Addendum - October 13, 2019
Thanks to mastercheif on the comments. Indeed, I could save each setting as a separate Roon DSP Preset for example here when I play the Oppo UDP-205 in my sound room:
And yup, these presets can be accessed with the Roon app on my phone / tablet while sitting and listening.