
High-end Digital Acoustic Correction
with Room EQ Wizard
Room EQ Wizard, or REW, acts as a window into an unseen world in which energy travels all around us, all the time. REW provides us with valuable information about how that energy is channeled within our rooms, and how we might be able to manipulate it in the physical world. It can show us what needs to be done to control physical sound energy, and we can use that information in creative ways. For instance, REW can help us manipulate that energy with its ability to generate FIR filters that correct its measured room responses, bringing them within recommended acoustic tolerances for accurate sound reproduction.
This guide will walk you through my procedure of calibrating the frequency domain of your listening space with 2-channel minimum phase filters using Room EQ Wizard. The guide is a product of the two years of research and experimentation I've done on this subject. All things considered, after a long journey of trial and error I have figured out a very simple, elegant, and low-cost solution to achieve calibrated sound. It emulates what state-of-the-art applications are doing to prep the measured responses and generate correction. With Room EQ Wizard and a proper procedure, we are capable of generating correction filters that rival the best professional tools on the market. The results of this procedure are minimum phase filters that sound better and are more accurate than anything I have been able to produce prior with REW.
Let's take a deep dive into the process of generating those filters. To follow along, you will need the latest beta version of REW, which is available in the first post of this thread by John Mulcahy, the application's author. I used version 5.40 beta 50 to write this guide, but any newer version should do just fine.
1. Main Listening Position Measurements
​Here we begin with our original measurements, recorded at ear height from the main listening position. There is one for each speaker we'll be correcting with the filter. We can record these with either 512k or 1M sweep lengths. The level in the room when I measured these was 80dB SPL with C weight and slow averaging. This level corresponds to what we see on the scale to the left side of the graph window.
​​​​​​

2. Converting the measurements
The first task we have after measuring the room is to convert the responses to a form that is optimal for generating filters. Select the left measurement and export it as a text file from the main menu.
​​​​​​

In the export window, we simplify the response to 1/12 smoothing. Additionally, REW doesn't work well with data over 22kHz in the exported files, so we'll limit that here as well. When you've configured the settings as shown, save out the file for the left speaker with the txt extension.
Repeat this process for the right speaker.
​​

Once you have the two files saved, import them back into REW. You can do this from the File menu. They will be imported as measurements 3 and 4.
​

Now that we have the two smoothed measurements in the list, we'll need to convert them to minimum phase measurement responses before we can properly do anything with them.
​
​On the SPL & Phase screen, right-click on the left smoothed measurement (3) and choose Min phase copy from the context menu. The Minimum phase copy window will appear. Configure your window to look like mine here, and click Make min phase copy at the bottom.
Do the same for the right smoothed measurement (4).
​

Once you have the two minimum phase copies, delete the original imported measurements. They aren't of use to us any further. The newly generated minimum phase copies will replace the originals as measurements 3 and 4, and your workspace will look similar to the following image. Note the -MP suffix that has been added to the minimum phase copies' names. It identifies the new measurements as being minimum phase copies.
​

3. Target Design
Designing an optimal target for your system and configuring it properly is a relatively complex matter, but here I will distill it into a fundamental concept using a linear reference target that sounds balanced and removes some guesswork. The basic premise is this:
• First, we define the target
• Second, we place the target
• Third, we generate a minimum phase copy of the target
​
To get started, select one of your smoothed measurements (either 3 or 4) and open the EQ Window. Enter the settings for your target exactly as shown in the next image, noting the following caveats:
​
• The target level value will depend on your own responses. Note that I have it touching the lowest dip in my measurement at 70Hz, which is the lowest dip above the natural roll-off of my speakers (40Hz). Also of importance is your awareness of boundary interference nulls, and how they can't be corrected with digital filters. If you have one of these nulls in the low end that dips more than 9dB below your measured SPL, it's usually best to ignore it and aim for the next-lowest dip, or at least place the target at or above that 9dB limit. In my case here, the limit would be 71dB SPL because I recorded the measurements at 80. Keep in mind that the level of your target relative to the response is a direct indication of how much volume you will lose when the filter is inserted. Typically we are looking to see 9 decibels or less of overall/average insertion loss. You can have a lower target than that, but it will be up to you to decide how much volume you're willing to sacrifice with the insertion of your filter. Remember that interference nulls cannot be corrected digitally. We do not boost any frequencies with the filters. We boost the overall level post-filter with our amplifier/hardware monitor gain.
​
• The Crossover HP cutoff and Crossover LP cutoff are placed strategically where my speakers naturally roll off. 19kHz-21kHz is generally a good place to put the high cutoff, but your low setting (HP cutoff) may be very different than mine. Place it where your low end rolls off. Experiment with different positions once you are comfortable with the entire procedure.
​
• The tone of your filter is governed by the target rise and fall slope values. I have used 0.4 for each of these entries in my example, but I could have just as easily used 0.3 or 0.2 instead. You are free to change these values, keeping the following information in mind:
- Values closer to 0.0 tilt the target upward toward a horizon-flat line, making the tone brighter. The focus of the sound is on clarity and soundstage width rather than bass weight. Typically, the overall character of tone at "horizon flat" 0.0 will be slightly off balance, with too much energy in the high end and thin, weak-sounding lows that lack punch. You'll have great clarity and imaging, but you'll probably want more bass.
- Positive values further from 0.0 tilt the target downward toward a darker tone where bass becomes more prominent. The weight of the sound gets heavier as the value increases, progressively yielding less clarity and a narrower stereo image.
- In addition to the slope, the final tone of a filter's sound is further influenced by the acoustics of the room you're working in as well as the calibration standard of your measurement microphone. These factors vary, so you may find that a different slope value works better for you than what I've used in the example. The key here is to find a slope that strikes a harmonious balance between high frequency clarity and low frequency weight and delivers the best staging for your speakers. Experiment with different slopes iteratively until you find your system's sweet spot. Audition the filters with known top-tier production material at reference level, which is around 80dB (the SPL at which the measurements were taken). You will know when you've found the right values. Everything will sound clear, full, and balanced.
​​​​​​

When you have dialed in the target, click Generate measurement from target shape at the bottom of the Target Settings panel. This will transfer your target to the workspace as measurement 5.
​
Rename measurement 5 "Target".
​
Next, we need to create a minimum phase version of the target response. Select your target and generate a minimum phase copy as you did before with the imported responses.
The minimum phase target (Target-MP) will be measurement 6. Your workspace will look like this now:
​

The original target has no phase data, so we don't need it anymore. Delete it from the workspace to keep things less cluttered and confusing. You'll be left with Target-MP as measurement 5. ​
4. Inversion
The inversion process involves the use of REW's division function to invert each speaker's response around the target, thus creating the filters for the two channels.
​
First, open the Arithmetic window and select your minimum phase target for item A. Select your left minimum phase measurement for item B. In my case, the left measurement is L smoothed-MP.
Choose A/B as the function, leaving Max Gain at 0.0 and the rest of the options as shown here:
​

Press the Generate button in the arithmetic window. A new measurement will be created named "A over B". You can change this name to something more appropriate, such as "L Inverted" or "L Filter".
​
Repeat this process for the right speaker response. The minimum phase target will remain for item A, and then for item B you'll select the right minimum phase measurement. In my case, this is R smoothed-MP. Generate the inversion and rename the new A over B measurement.
When finished, you'll have a similar workspace to mine here. Note that all frequencies clipped by the target are flatlined at 0dB SPL, and there are no boosts over that.
​

5. Filter Export
The last step in the procedure is to export the left and right inverted responses as a single stereo WAV impulse response. ​Start by opening the export window from the File menu as shown.
​

Next, configure your export exactly as shown in the next image, with the exception of the sample rates. You can select any sample rates you want here. I have just shown the most common.
Make sure to select your left inverted response for the left channel, and your right inverted response for the right channel.
​

Click OK and you will be taken to the Save As dialog. Give your filter an appropriate and descriptive name, choose a destination folder, and press Save. REW will create a separate WAV IR file for each of the sample rates you had selected during export. From this point, you can load the filter(s) with the proper sample rate into any convolution processor you have available to you.
There are many options, so here are my suggestions:
​
• Hang Loose Convolver - This is quite simply the best convolver for the job at hand. You can load up to six filters simultaneously and swap between them instantly without pauses or audio glitches. HLConvolver will also load scripts, which have the ability to change your filter sample rate based on the host system automatically. It's also multi-channel capable and has L/R peak meters for monitoring the output level.
​
• MConvolutionEZ - This is a fantastic convolver for beginners who want to get their feet wet without spending any money. It's free, and it sounds great. It only loads one filter at a time, however, and it has no gain adjustment features. Changing filter sample rates must be done manually. If you use this option, you must disable the normalize IR feature, and select a custom path that points to the directory where your filters are saved.
​
Note that the volume level will be diminished as a result of filter insertion. This is perfectly normal as it will prevent digital clipping from the filter. You can compensate for the insertion loss by either adding a gain-staging/peak-metering plugin after the filter, or simply turning up your hardware monitor gain. If you decided to boost the signal level digitally after the filter, it is recommended to monitor peak levels and keep them from digital clipping over 0dBFS. Worthy of note: HLConvolver has gain sliders for each of its six filter slots and a global gain knob to help you manage levels.
​