Now that we've adjusted nonlinearities of the frequency response of the speakers, the next step would be to adjust the phase nonlinearities. Unfortunately, this is where the "semi-automated" part of the guide kind of runs out of gas: I'm not aware of a good, free, automated phase linearization solution that allows one to effectively adjust phase independently of frequency response. So for phase, we're stuck with manual tweaking, but I'll try to give you some general guideposts to navigate by. For these reasons, the next section is definitely
optional. Hopefully, you've already made significant gains by this point, phase linearization is just the icing on the cake.
Speaker Phase Correction:Now let's have a look at the phase of our measurements. Bring back up the last measurement you took (the corrected measurement). Here's the phase along with the frequency response.
You can see on this measurement (circled in red) where the crossover is, and where the sealed box begins to affect the phase at the low end (circled in green). A speaker with a passive crossover (unless it's a 1st order) will always have some kind of phase anomaly at the crossover point (usually more extreme looking than this one), and any speaker in an enclosure will exhibit some kind of phase anomalies at the low end (a vented speaker will have much greater phase rotation than a sealed speaker). You can also see that once the speaker output gets quiet enough the phase just stops or goes berserk (circled in blue). This is just what happens to a measurement when the frequency response falls off drastically; this can't/shouldn't be corrected.
To correct the phase, first export the frequency response of your corrected measurement in Holm the same way you did above, but make sure you have the “export phase” button checked. Then open up RePhase. Click on the measurements window tab, then click import:
Now we can use RePhase to flatten the phase manually. Because phase distortion is much less audible than frequency response non-linearities, I'd generally advise taking it easy on phase correction and just work on correction of major phase wrap. The two main sources of phase wrap that I'd recommend correcting are crossovers and port phase distortion.
1) Crossover: Under “filters linearization” RePhase has automatic pre-sets dialed in for linkwitz-riley crossovers. Your speaker may not have an LR filter, but I'd recommend fiddling around with the different linearization options to see if one of the presets partially or mostly addresses the phase wrap for your specific crossover. You can also use the paragraphic phase EQ to level it out (all the parameters on the bottom of the sliders are configurable). Just remember, higher Q means a narrower region of adjustment, lower Q means a wider region of adjustment. You can see how I used the paragraphic phase EQ to flatten out the phase in the crossover region below:
2) Port phase wrap:Ports in vented speakers introduce phase wrap, distortion, and also ringing around the port frequency. Removing some of the phase wrap resulting from the port can not only improve the linearity of your phase response it can also reduce port ringing. Because my test speakers are sealed, I can't illustrate this on these speakers, but here's an illustration of un-wrapping the port phase rotation on a different speaker with a port tuned to 28Hz.
Before:
After:
To achieve this, I just used one of the "box" presets for a vented speaker (in this case a low Q speaker, because the box in question is very large). The illustrated speaker exhibited significantly improved time-decay response around the port frequency after being “linearized” in this way, and sounded much less "boomy." Time-decay measurements are a slightly more advanced topic, but I wanted to mention this potential advantage of linearizing some of the port phase wrap.
You don't necessarily want to flatten the low-end phase out completely, you just want the phase to look more like the wrap that a sealed box speaker would have. If your speaker is sealed, I wouldn't recommend linearizing the phase wrap at the bottom of the frequency range at all. Our ear expects phase shift as volume decreases, so if you have decreasing volume on the low end and perfectly flat phase it sounds really weird.
3) Other phase correction: Next, I'd suggest looking through the graphs for any other places where there are changes in phase that don't correspond to changes in frequency, that is, any places where the phase appears to rise or fall, but the frequency response does not also rise or fall. If you identify any of these other phase anomalies (sometimes called “excess phase”), you might try flattening those out as well using the paragraphic phase EQ, but if they're small you might want to leave them alone. Phase is very location dependent in the room so you can wind up chasing phase phantoms all day if you overdo it. By contrast, if you have large phase non-linearities that
do correspond with frequency response non-linearities, those are things that could potentially be addressed through additional regular EQ as described above (normal EQ is “minimum phase” and will adjust both frequency response and phase at the same time).
Making the filters:The default settings in RePhase should be fine for the limited amount of phase correction we're talking about doing. If the phase response of your two speakers is similar enough that the same correction would work for either, be sure to select 32-bit LPCM stereo as your output format. If you want separate correction filters for each side, then make sure the output format is mono. If you made separate filters for both sides you'll need to write a config file for use in JRiver's convolution engine that routes your channels through the correct filters. An example config file for a 2-channel 44.1KHz filter would look like this:
44100 2 2 0
0 0
0 0
C:\[your filepath]\[your left channel filter filename].wav
0
0.0
0.0
C:\[your filepath]\[your right channel filter filename].wav
1
1.0
1.0
After you've generated the filter(s), make sure that the generated filter actually resembles the target response in RePhase.
You can see here that my filter deviates from the target response to some extent. If yours is imperfect, try increasing the number of taps and generating a new filter. If yours is perfect, you may want to try lowering the number of “taps” and generating another filter. The taps represent the length of the filter in time: the more taps there are, the more complex the filters can be, but also the more latency introduced by the resulting filter. If you can accomplish the filtering you need with a very small number of taps, you can reduce the latency introduced by the resulting filter, which will make it more useful to you (i.e. potentially usable with movies, etc.). If you need a larger number of taps, then you may want to set up zones so the convolution is only engaged when listening to audio (as the latency can make video or loopback applications unworkable).
Once you've gotten your filters generated the way you want them, you'd want to select your stereo WAV file (or your config file if you did different WAV's for each side) in JRiver's convolution module as shown:
Lastly, take a measurement at ear/tweeter height from 1 meter with all of the filters engaged to make sure that it worked as expected.
Note that the phase in the crossover region is flattened as expected, and that the frequency null at the crossover is improved somewhat by ironing out the phase response there. Phase manipulation is the only way to even partially fix a goofed up passive crossover, but it can't resolve everything, obviously.
Results of speaker correction:Now take a measurement at your listening position with the filters on and compare to your initial measurement. Here's mine:
It's still pretty wacky looking, especially around the crossover, but it's much better. And these results are almost entirely from correcting the speakers with very limited attempts to correct the room response. If you want to undertake additional correction targeted at the room's response, it's possible to make some additional gains, but there are a few pitfalls to avoid.