A few months ago, I posted on the use of the free DRC software for audio room correction. I was already very impressed with what the technology is able to accomplish and wanted to explore this even further. In this spirit, I invested in a copy of (((Acourate))) from AudioVero. As I had mentioned previously, there are a number of other software/hardware packages to accomplish a similar task. While I'm sure other packages would do a fine job, as a JRiver user, I wanted to create WAV-based FIR filters like I did previously with DRC which I could import into the convolution DSP and Acourate allows me to do just that without needing to run any other plug-in.
Acourate isn't inexpensive and does cost 286€. However, realize that we are entering rather "specialized" territory and although I suspect many audiophiles know about FIR-based room correction, it's not exactly mainstream (for example, how often do showrooms at audiophile shows utilize room correction DSP?)... Personally, given the amount of potential improvement, we could easily spend 286€ (~$310USD currently) on stuff like fancy cables and other tweaks achieving likely no actual improvement in sound quality.
I would highly recommend going through Mitch's excellent write-up on Computer Audiophile on going about using Acourate for doing basic room correction. The software itself isn't hard to understand once you do the basic procedure a few times but there is certainly a learning curve and Mitch's article really helped with getting me going! Other resources include AudioVero's documents and tutorials. Also go check out the Yahoo! Acourate User Group where the software author
Dr. Uli Brueggemann can be found among others with tips and experience with the software.
For this write-up, I'll go through the process as well showing the settings I've been using, mention a few observations including confirmation of the filters created; basically hopefully adding to the experience out there for those interested in rolling their own Digital Room Correction. As of late 2015, I'm using version 1.9.5 of (((Acourate))).
I. Setting UpAs noted by Mitch, it's good to get the room ready and have a Reflection Free Zone. In the picture above, you see my attempt at practical creation of a "low reflection zone" between speakers and the calibrated Behringer mic - I hesitate to say "reflection-free zone" because as you can see, I still have all my furniture in there and I'm sure there are numerous reflections! The doorway to my sound room is a bit narrow and I would have needed extra help if I wanted to move the sofa section in and out of the room so I figured this is adequate and if my results sound bad, then I would go the extra mile. Nonetheless, moving the sofa back and to the side as shown improved the ratio of direct:reflected sounds plus reduces risk of comb filtering at the measurement position (I actually did some preliminary measurements to know this to be true).
The E-MU 0404USB ADC is sitting on top of the Paradigm Signature SUB1 subwoofer in the front left corner (where the mic cable is heading to). Main speakers being the Signature S8 v.3 floorstanders. Acourate is being run off the HTPC in the corner as well. I used the Emotiva XSP-1 preamp's bass management to lowpass the subwoofer at 50Hz. As usual, the amps are two monoblock Emotive XPA-1L's. Balanced interconnects where I can, short Canare 4S11 DIY speaker cables.
In setting up the microphone, remember to prepare the calibration file to be applied when recording the sweep:
The graph in red is the calibration file for my Behringer ECM 8000 and the green is the inverse after going through FD-Functions > Amplitude Inversion. The inverted curve is of course the one applied when measuring. Notice that this mic deviates a bit above 2kHz, up to +1dB oversensitivity around 8kHz. I think it's worth spending the extra few dollars to get one's mic calibrated even though a measurement mic should be reasonably flat from 20-20kHz. Make sure to save the inverted mic curve in an accessible place for later use as per Mitch's instructions.
Remember to also make sure the microphone is situated at the proper height at ear-level and centered between your speakers. You can use Acourate's LogSweep > Microphone Alignment tool to make sure. This is a great way to ensure that your sweetspot is actually centered as well!
You know you're in the right place when "Delay in samples" is 0 and green as shown above.
II. Sweep MeasurementTime to make a directory for your workspace: File > Project Workspace Definition, click on the space for directory information and point to this new workspace directory. The program will now default saves and file retrieval from this location.
Now it's time to do the LogSweep > LogSweep Recorder to capture the room data. Just like with the free DRC software, this will now run a low-to-high sweep tone for a specified time period; first the left channel followed by the right. This is also where you decide the samplerate and length of the filter. As you can see below, I selected 96kHz and 131k taps for "target length". Sweep time was set for 60 seconds here. I set the sweep to start at 10Hz and end at 32kHz which is plenty to cover the audible spectrum and beyond (my Paradigm SUB 1 subwoofer can generally go down to 15Hz and Signature S8's seem to be reasonably extended up to about 25kHz). There's also a recording level indicator - obviously make sure the amplitude doesn't clip. Using my Radio Shack SPL meter, I played the sweep tone at approximately 80-85 dB peak. Wear some earplugs!
After the recording the program will spit out some IACC (InterAural Cross Correlation) numbers to examine. These numbers correlate to how similar the sound is from each stereo channel. The higher the better - your room is more symmetrical, side reflections more balanced, microphone centered, etc... As you can see with my sofa moved aside and no coffee table in front of the speakers, I'm getting 69% which looking around at others' results seems reasonable for a domestic sound room without a large amount of room treatments. 80's would be awesome and I'm amazed at Mitch's achievement of 90's - great! For the purpose of the room correction, the data from the first 10ms would be most important.
III. Room Macro 1: Amplitude PreparationNow that the audio data collection is done, the rest of these steps are about crafting a good filter for use. This first step will now create a psychacoustically smoothed curve to use as the basis for creating the correction filter.
As you can see, I've stayed with the "Psychoacoustic" model, set the high frequency treatment up to 30kHz (remember, I measured up to 32kHz above - good to give some overhead), and I've set the windowing to "30/30". I believe the default is "15/15" which is fine of course but since I selected 131k taps, I thought I'd let the program work with a slightly "rougher" or less smooth curve to do its magic.
IV. Room Macro 2: Target Curve DesignOkay, just like with the previous DRC Designer, it's now time to design a target curve. As usual, shape it to your preference. I've stuck basically with the suggestion from Mitch and Bob Katz:
Basically flat from 10Hz to 1kHz, then down to -8dB by 45kHz or around -6dB by 20kHz. This is similar to the DRC Designer B&K curve (although I think the typical B&K starts sloping down around 500Hz). Anyhow, tweak to your heart's desire... In the curve above, I put in a high-frequency roll-off as well. You could get creative and play with the "PeakNDip" function which gives some control like a parametric EQ - maybe add a little "Gundry"/BBC Dip for those inclined:
|(Note that I did not smooth the measured frequency response curve in this image.)|
Realize that the level of the target curve is important and will affect the quality of the final correction. Notice in both curves above, I allowed the curve to be slightly above one or two of the lowest dips. There will be a setting in the filter creation module to add a little bit of gain. I've found doing this got me the best results based on trial and error. Be ready to experiment yourself.
Now click Save Target the Exit when done.
V. Room Macro 3: InversionHmmm, not much to say here. Run this macro and you get the inverted measured curve created and saved in the directory mirrored around the correction target.
VI. Room Macro 4: Filter GenerationNow we finally create the filters...
This is where you'll likely be spending a bit of time with the trial and error process!
The settings you see are the optimal for my situation based on test data coming up when we run the test convolution to model the effect of the curve. The main parameters are "Excessphase window" and "Pre-ringing compens.". In my situation, too much Excessphase window and I started seeing ringing in the time domain. Too much Pre-ringing compens. and I noticed abnormal step response results - I'll show you in a bit what this looks like. You'll notice that you can set a maximum correction gain which I've put as 6dB (remember my target curve was set slightly above the lowest dips). Also, I want to create a number of filters from 44kHz all the way to 192kHz and have JRiver automatically switch between them. "64bit WAV" is just great for accuracy and goes well with JRiver's 64-bit DSP.
For Subsonic I put in 13Hz as a lower limit for the subwoofer and have found this beneficial, resulting in cleaner overall step response results. It'll at least reduce the subwoofer's attempt to produce inaudible rumble and still allow me a reasonably flat response down to 15Hz.
Once you run the macro, it'll finish and give you a "Correction filter gain ratio approx.". Although modern DSPs should be able to enable clip protection, I'm happy to see a negative number meaning that overall the filter isn't amplifying the input signal.
You'll now see the files Cor1S44.wav, Cor1S48.wav, Cor1S88.wav, Cor1S96.wav, Cor1S176.wav, and Cor1S192.wav in the workspace directory corresponding to the samplerates selected for the output filters.
VII. Room Macro 5: Test ConvolutionThe final room macro is used to provide feedback as to how well the filter settings work out.
It'll give you an idea as to what to expect when you actually play your music through this filter. As you can see, Acourate spits out a before-and-after IACC report and in this situation, it's nice to see a clear overall improvement in IACC. This is one's first hint that things are looking good so far. The corrected IACC10 is now 74% from 69% and the overall value 46.6% to 52.5%. It's not unusual to see some negative results like the -1.6% with late IACC which is fine... Remember, it's the early IACCs that are most important.
After running the test macro, loaded up in slot "1" and "2" are now the "corrected" waveform data. What I do now is click on the "3" radio button and load up my "Pulse96L.dbl" file in the work directory, and click "4" and load up "Pulse96R.dbl". This will allow me to compare and contrast the "corrected" (slots 1 & 2) with "uncorrected" (slots 3 & 4) impulse, step, and frequency responses to make sure everything looks right.
To focus on the step response, click on "Time" in the radio button above the graph, and for each number of the slots ("1" to "4"), click on the "Step" button below. Then on the graph itself, have a look at the first 3 or 4ms and if things are right, it should look something like this:
The green and red are the "corrected" step responses for right and left channels, the blue and brown being my speaker's "uncorrected" step response. Good to see that without correction, the step response from each speaker matches very well! This I think speaks to how well matched the stereo speaker pair is for the drivers and crossover. Acourate cleans up the overall step response to a more ideal appearance. For more information on step response as a measure of speaker time and phase coherence, check out this old Stereophile article on loudspeaker measurements.
You can click on the "Pulse" button and check out the Pulse/Impulse response... Just to keep things clean here's the "corrected" vs. "uncorrected" for the right channel:
Quickly, you can click on the "Ampl" button to see the frequency response and run the test room pulse through Macro 1 to get a smooth response (windowing default 15/15) by setting the Room Pulse as "TestConvolution\Pulse96L":
Now do the same Macro 1 procedure but with Pulse96L in the default workspace so you have the same smoothing parameter:
|Uncorrected Frequency Response|
|Corrected Frequency Response|
VIII. Do NOT Overcorrect!As I mentioned in Part VI above, be careful of the parameters you choose for correction. Remember that the "bigger is better" mindset does not work here folks (nor does 32/384 necessarily sound better than 24/96... but that's another topic...). For example, using my measurements, if I created filters with "Excessphase window" as 6/6/6/6 rather than 5/5/5/5, this is the step response I get with the test convolution:
There's now an unfortunate ringing in the left channel which was not there before. Ideally it would be nice not to have oscillation, but low amplitude and frequencies might not be audible.
How about if I increased the "Pre-ringing compens." to 2/2 from 1/1 ("Excessphase window" back down to 5/5/5/5)?
Not only does my IACC score get hammered:
But the step response now gets inappropriately shifted in time between the two channels (hence the worsened IACC):
I've been told that it's hard to anticipate the effects from changing the parameters. Indeed this has been my experience as well. Optimal parameters will change based on your room as well as how you draw the target curve in Part IV above.
Notice that in each of the overcorrection examples above, only one of the channels was affected. Therefore, I could set "Excessphase window" to 5/5/6/6 and "Pre-ringing compens." to 2/1 and come up with a filter that looks and likely sounds fine.
The ability to fine-tune the filters and the quick way to perform test convolutions (easily done within a minute for each run once you get the hang of it) makes this program remarkably powerful!
IX. JRiver Automatic Filter Selection & Confirmation of Effect - Using REWJRiver is my music player of choice when playing through the TEAC UD-501 DAC which is my main playback device apart from my Squeezebox Transporter in the sound room. Because I have 44/48/88/96/176/192kHz filters, I want JRiver to switch between them automatically depending on the samplerate of the music. This is easily done using .cfg files and in my filter directory the files look like this:
48000 2 2 0
The only differences being the samplerate ("44100", "96000", "176400", etc...) and pointing to the corresponding .wav filter file.
After this, it's just telling the JRiver Convolution filter to point to one of the .cfg files, flag "Automatically switch..." and away you go!
Okay, now as a final test, I want to use Room EQ Wizard (REW) to do some final measurements to confirm that indeed the Acourate filters are good and JRiver is doing it's job in my listening room! So, I put all my furniture back, and set up the measurement mic where I'd be sitting:
REW was configured to send the audio out to JRiver's audio device interface (which outputs the sound to the TEAC UD-501 DAC with and without convolution DSP operating at 44.1kHz), and recording via the E-MU 0404USB. Remember that the TEAC and E-MU are measurably very similar in terms of frequency response and both defaults to or are set to a standard sharp linear phase digital reconstruction filter. Here's REW's configuration:
Other times, it'll just be a vague error message:
Despite the data being partial (abruptly cuts off at ~13kHz), I can still assess whether the filter seems to be working at least. And indeed, it does... Here's the frequency response without and with the JRiver convolution filter turned on:
|Uncorrected frequency response - 1/6 octave smoothing.|
|Corrected frequency response - 1/6 octave smoothing. Notice the premature frequency cut-off I suspect due to latency from the DSP. The volume was pushed up a few dB in the "corrected" measurement.|
And here is the before and after for the speaker step response in the time domain - first 6 milliseconds:
|Uncorrected step response.|
|Corrected step response (Acourate filter).|
You might be curious; what about with DRC Designer which I used previously?
|Corrected step response (DRC Designer filter)|
Be cautious about comparing the DRC Designer and Acourate step responses directly since the measurement conditions were done differently... DRC Designer is doing its job in creating a more "coherent" step response in the time domain from the loudspeakers as well.
Finally, I had a look at the reverberation time (RT60):
|RT60: 1/3 octave bands.|
X. Sonic Impressions and ConclusionsAs they say, "the proof of the pudding is in the eating". After all this with Acourate, and confirmation of effect using the JRiver DSP and playback through my intended DAC, how does it sound?
In a word: excellent. Compared to uncorrected playback, the filter clearly has improved the tonality in my usual listening position. As I already described previously when writing about my results with DRC Designer, the effect at the listening "sweet spot" is that of optimizing the imaging one can achieve beyond smoothing the frequency response. I've already mentioned previously the enhanced soundstaging achieved with QSound-encoded tracks (check out the 3D-positional effects in Madonna's The Immaculate Collection). Well-recorded live music benefits nicely (like Eva Cassidy's Live At Blues Alley) in conveying an improved sense of space the event is taking place in. But also not-so-well-recorded modern dynamic compressed pop like the recent Ellie Goulding hit "Love Me Like You Do" (from the Fifty Shades of Grey soundtrack) can sound striking when the phasic soundfield electronic effects get pumped up. Orchestral works like Tchaikovsky's Symphony No. 6 (Mercury Living Presence, Antal Doráti & London Symphony) beautifully evokes the emotional rollercoaster of melancholy, power, serenity, menace, and joy through the system with the fantastic recording quality these releases are known for. Of course the emotional content is inherent in the artistry of the music itself; the audio hardware and optimizations just allows the music to be expressed with fidelity to the source as a conduit of sensorial and intellectual stimulation. Orchestral depth and stability of imaging (you can visualize the location of the strings, woodwinds, brass, percussion in the soundstage) are rendered beautifully. Personally, once I experience this, it's really hard to go back to the "uncorrected" sound and the relative loss of dimensionality and less controlled frequency response. (On a side note, although I still acquire vinyl records for collectability and physicality, I love the improvements brought about by digital room correction and noticed I have not been listening to vinyl as much.)
With the power behind Acourate's ability to run test convolutions, one could literally spend hours just tweaking the filter parameters "just right"; pushing the limits to get closer to ideal and avoiding excess and side-effects like ringing. (Of course, remember hearing ability has limitations so let's not get OCD about it and forget to listen to some music, right?! There is such a thing as "good enough".) I have not heard any significant problems when employing the filters when the test convolution looks good. I have heard of people complaining of harshness, artificiality, and "hollowness" with digital room correction - presumably from overcorrection or incorrect parameters used to create filters.
Remember folks, these are real changes to the sound, "easily" measured and demonstrated. Computing speed should not be an issue these days if you're into computer audio (you might run into speed issues with slower Atom/ARM processors unless the code is optimized). One should be able to buy a decent ADC, calibrated microphone, and software like Acourate for less than US$1000 (even less if you use the freely available DRC Designer). Considering all the other expensive questionable tweaks on the market, that's a relative bargain!
In summary... While I certainly do not expect digital room correction to convert a poor speaker/source system or terrible room acoustics into "high-fidelity" sound, it will fine tune what you have in the space you listen in. One can spend countless hours trying out different speakers, amps, DACs, this-and-that tweaks, etc. to find the "right" combination. Or you could just buy objectively accurate equipment and invest some time and money and learn to harness the power of software like Acourate to achieve the kind of sound you want. In my opinion, as the MasterCard commercial suggests this is the priceless option. Strongly recommended for serious listeners desiring demonstrably higher fidelity.
Final note: Because as an audiophile big numbers are better :-), I will usually upsample everything to 4fs (all 44.1kHz upsampled to 176.4kHz, all 48kHz to 192kHz) for internal calculations and output to the TEAC DAC. Easily done:
Whew! Enough said and done. Time to head downstairs, turn down the lights, and just enjoy the music :-).
December is almost here and a happy Thanksgiving to the American friends! Have a great month ahead everyone. Looking forward to a few days off in December around Christmas, but otherwise swamped with work and even more traveling ahead for me into early 2016! Hope to post some articles nonetheless when I can... BTW I'm working on a new HTPC/music PC build so I'll post a few pictures in the days ahead.
I am a big fan of room equalization. I use a DSpeaker Antimode 8033 to tame my B&W PV1d sub (used with QUAD 2805 stats) in a large room. The result is so good that I it has convinced me that no sub should ever be used without dsp room equalization of one kind or another. The Antimode 8033 is child's play to use and cheap, but only works with subs. However, that is also the largest part of what has to be equalized.ReplyDelete
Yup. Bass EQ very important! And certainly units like the Antimode does the job quickly and easily. Enjoy!Delete
You da man! Outstanding article about Acourate!ReplyDelete
I would say that I disagree about time domain and DSP. Well applied EQ does reduce minimum phase room mode decay times. Of course, room treatment also help as you point out. Good thing we can do both without any downside when done right.ReplyDelete
Thanks for the note Michael... I'll have to have a look at what the digital EQ does in the time domain. Still have a Behringer unit connected for this purpose but haven't been put to use in awhile...Delete
Great article! As soon the economic crysis in Brazil ends, or my monthly income rai$e$, i'll jump in the DRC train! It looks like it's the best upgrade i can make right now!ReplyDelete
Great entry. What is the science behind the gradual treble roll off to -6db at 20 Khz? I did some searching and could only find a video by Inner Fidelity with Bob Katz where he says this is the target curve that sounds closest to what he hears his music that he recorded sounds like.ReplyDelete
Good question :-). Notice that most suggested target curves have this kind of property ever since the classic Bruel & Kjaer curve (1974) or the more recent work from Sean Olive. See Mitch's post from 2012:
I have heard explanations including that high frequencies are more directional so the spectral balance is different by the time the sound reaches the listening position. Another one I wonder about is where the close mic'ing of instruments in studios capture more of the higher tones compared to natural live playback where we would be sitting meters away from the artists and the space (and bodies) absorb more of the high frequencies. (As opposed to just sitting typically ~10 feet from speakers.) For many modern rock and pop recordings I also wonder if mastering engineers push the treble too high to make the sound more "sparkly" and "clear" for earbuds, bassy car audio, and boombox stereo systems so doing this is a way to compensate for the excessive EQ used.
In any event, I do agree that for the most part, I prefer the attenuated treble; makes for a more relaxed, less aggressive and fatiguing listen...
BTW: Check out the interview with Bob Katz on Home Theater Geeks recently:Delete
He talks about Acourate ~11 minutes in regarding room correction (should probably start watching around 10 minutes for some context of his studio setup).
Great video, he is not afraid to share his thoughts :-D. It is a bit intimidating when Bob Katz says he is still learning more about the software years into its use.Delete
Terrific, thanks a lot for the info. I do hear pretty aggressive EQ on modern remasters and new music. However EQ seems to be a bit more benign and natural for classical which is most of my music listening. I have not looked into Sean Olive's publications. If I recall Floyd Toole goes for flat frequency response on axis with similar power response off axis, though naturally there will be some treble roll off.ReplyDelete
Archimago, nice article on Acourate. Thank you for linking to my articles.ReplyDelete
Uli recommends a 48 kHz sample rate for measurements and a sweep frequency range of 10 Hz to 24 kHz. This is for technical reasons that can be read on the Acourate forum as too lengthy for here. Search on sinc.
Hopefully a useful tip which can be implemented and listened to in a couple of minutes. Try this in Acourate, Macro 4, Filter Generation, type in a value between 15 and 20 Hz in the subsonic filter field, gen the filter, load filter into JRiver and listen. You should notice a much tighter, cleaner sounding bass, without loosing the perception of extended response.
Brent, have a look at Toole's latest free paper on The Measurement and Calibration of Sound Reproducing Systems See Figure 14 preferred room curves and the comments on trained listeners. Additional info on target curves I consider JJ Johnstons presentation on Acoustic and Psychoacoustic Issues in Room Correction to be state of the art. Frequency Dependent Windowing (FDW) is now standard in Acourate and other tools.
In Acourate, it takes less than a minute to adjust a target frequency response, gen the filters and be listening in JRiver. One can also AB filters in JRiver in real time. Meaning, start with a standard target curve and adjust to taste. Or if ones preference is for a perceptually neutral balance, then it seems a target of flat to 1 kHz and straight line slope to -6 or -7 dB @ 20 kHz sounds the most neutral or natural. At least a good place to start. Also try flat, it will come clear quickly what ones preference is.
Hope some of that is helpful Archimago, keep up the good measurements! Happy New Year! Mitch
Thanks Mitch! Appreciate the feedback and tips... Will be doing some more measurements soon so will incorporate the 48kHz sample rate and tips to clean up the result :-).Delete
Thanks very much Mitch!ReplyDelete
did the behringer point vertically in your measurements?ReplyDelete
your pics show horizontal direction...this makes a big difference! try it again with vertically direction...
and btw "the ringing" and the "delay" you will not hear if you try mathaudio room eq...the nice thing is, its much cheaper than acourate..only 99$...and the version for foobar is free!
Thanks Tom. Yes, I have tried both ways... I'll see about the ringing as well when I re-do some measurements with Mitch's tips.Delete
Hi Archmage, another user Acourate here, I saw several entries that use a USB EMU0404. As you've probably noticed, the driver operates regular Windows 10. Were you able to access the 24-bit modes?ReplyDelete
That version of drivers used? It is a pity that not actualize creative drivers of this great card.
Thanks in advanced, excuse my poor english.
Hi Unknown... Yes, I was able to use the 24-bit modes in Win10. I don't remember what version I have - I think just the last beta on the Creative/E-MU site.Delete
Having said this, I typically still just use a Windows 8.1 laptop for the measurements since I don't see the need to upgrade that machine.
Good luck! If you need any more info on what driver I'm using, let me know...
First off, great blog! Nice to see lots of myths debunked by your measurements ;-)
Currently I use a DEQ2496 to "tame" my room. The DEQ has been the greatest upgrade my system has had in years. I'm curious about how Acourate stacks up against the DEQ. Have you compared the two side by side? If Acourate is any better, how would you describe the benefits?
I noticed that you have a 2.1 set up. Did you include the sub into the measurements or measured without the sub then add in after the corrections? Did you highpass (signal into the sub then to the speaker ) the sub into the speaker on the left and leave the speaker on the right side as full range? Thanks.
Ive just started using Acourate and JRiver, Im getting stuck at the point of adding the files into JRiver, Im not seeing any cfg files, just dbl and wavReplyDelete
the .cfg file is a text file you create with a tex editor. Example here: http://convolver.sourceforge.net/configegs.html
It will tell Jriver which .wav file to user for which sampling rate. You can start by just selecting the 44.1Khz .wav filter.
This looks tedious. How much better is this software than the implementation of Dirac HD on the DDRC-24? I've seen people swear by it and it also automates the whole process.ReplyDelete