Multi-Sub Optimizer Tutorial
This tutorial will show you how to use Multi-Sub Optimizer (MSO) and briefly introduce you to the theory behind it. Using data from a set of measurements that have already been performed, you'll learn how to set up an MSO project and run the optimization without having to do any measurements beforehand yourself. This will get you familiar with MSO first, so you'll be ready to optimize your system as soon as you perform the necessary measurements on your own setup.
What is Multi-Sub Optimizer?
Multi-Sub Optimizer is free software that performs multiple subwoofer integration. Given a set of individual subwoofer and optional main speaker measurements, it performs the following tasks automatically.
- Optimizes the integration of the subs with one another.
- Optimizes the integration of the subs with the main speakers if you choose to do so.
- Optimizes the performance at multiple listening positions simultaneously.
It does this by calculating gain, delay, and equalization (EQ) individually for each subwoofer. This technique is more powerful than the traditional EQ approach described below.
What is the Traditional EQ Approach?
When you place subwoofers and main speakers in a room and the measure their frequency response, room modes in the modal region (typically 200 Hz and below, depending on room dimensions) cause large peaks and dips in the measured frequency response. A typical way to tackle this problem is to use a digital signal processing (DSP) device that provides parametric EQ for the subwoofers, or the built-in "room correction" of an AV receiver. The conventional approach is to apply the same EQ to all subwoofers in order to flatten the measured response at the main listening position (MLP). After this step, you'd typically adjust the subwoofer distance and level settings in the AVR or preamp/processor for best integration of the subs and main speakers. After each such sub distance or level adjustment, you'd make a new measurement to determine if the result is good enough. In a more sophisticated approach using a DSP device, you might set individual delays for each subwoofer. These delays are often calculated once based on the relative distances of each sub from the main listening position, and left at their calculated value. This step alone can make a significant improvement but it does not guarantee optimum results.
What are the Problems with the Traditional EQ Approach?
At the specific frequencies of the room modes, the frequency response may have peaks at some listening positions and dips at others. Unless you're very lucky, flattening the response at the main listening position will make it worse at others. Also, when integrating the main speakers and subs, each new adjustment of subwoofer distance or level requires a new measurement to determine if the integration of main speakers and subs is good enough. That can become very time consuming.
How is MSO Better than Traditional EQ?
As mentioned earlier, MSO is capable of optimizing the system response in the modal frequency region at multiple listening positions simultaneously. This is different than, say, taking an average of the responses at multiple listening positions and equalizing that. Using MSO, it's possible to reduce the seat-to-seat variation of the system response in the modal region.
How is the reduction in seat-to-seat response variation possible? Consider the two hypothetical systems described below.
- System A: Identical gain, delay and EQ for each subwoofer
- System B: Different gain, delay or EQ for each subwoofer
When going from System A to System B, it isn't just the frequency response in the modal region that changes. For a sinusoidal input to System B at a frequency covered by the subs, the spatial distribution of acoustic pressure and particle velocity at that frequency is altered relative to System A, due to the position-dependent changes in the interaction of the subs with one another. System B is a mode manipulation technique. In section 8.2.8 of the third edition of Floyd Toole's book Sound Reproduction, Dr. Toole calls this idea "Mode Manipulation for Any Room Using Multiple Subwoofers and Signal Processing". To a certain extent, this sort of mode manipulation occurs when only individual gain or delay is altered, but the effectiveness of the mode manipulation is maximized when the delay, gain and EQ can all be adjusted on a per-subwoofer basis.
It is this alteration of the spatial distribution of acoustic pressure that allows the seat-to-seat frequency response variation of System B to be reduced relative to System A. In a similar way, bad choices of individual subwoofer EQ, gain or delay can actually make the seat-to-seat frequency response variation of System B worse than that of System A, so it's important to choose the relevant parameter values carefully. That's a role for which automatic optimization software is ideally suited.
System B above, which is what MSO requires, would be very difficult and time-consuming to optimize by hand because of the complex interaction of the subs with one another. Both the magnitude and phase of the sub responses must be taken into account in the calculations. For each new guess of EQ, delay or gain parameters, a new measurement would need to be taken at each of the listening positions. By contrast, MSO will do millions of iterations if needed. Once the original measurements have been taken, no more measurements are necessary until it's time to verify the new DSP configuration calculated by MSO and loaded into the hardware.
Stated differently, if you had four subs to be optimized at four listening positions and wanted to evaluate a million combinations of EQ, gain and delay parameters, manual optimization would require four million measurements, while MSO would require only sixteen. Obviously, such a manual optimization would be impractical, but it's very typical of what an MSO optimization does.
What is the History of the Mode Manipulation Approach?
Bruno Korst-Fagundes Masters Thesis
The earliest known effective attempt to simultaneously fix frequency response errors at multiple listening positions can be found in the 1995 Master's thesis of Bruno Korst-Fagundes, and his paper with Xie and Snelgrove. He assumed multiple speakers with a mono source signal and didn't specifically mention subwoofers, but his concept applies equally well to subs. He split the mono signal into separate EQ for each speaker and found that if the number of speakers is equal to the number of listening positions at which their frequency response is measured, it's possible in theory to get perfectly flat response of the combined speaker outputs at multiple listening positions simultaneously. His approach works by solving a set of simultaneous linear equations at each frequency, based on measurements from each speaker to each listening position. The solution to each system of equations at a given frequency yields the required gain and phase of each sub's DSP filter at that frequency. A high-order finite-impulse-response (FIR) filter having the calculated gain and phase response at each frequency is then designed for each speaker. This approach requires special-purpose FIR filter hardware and has some practical problems related to the need for impractically high filter gains at some frequencies. The practical need to limit these gains places a limit on how flat the combined subwoofer responses can be in practice.
JBL used a variation of the approach originated by Korst-Fagundes on a product called the BassQ, which is no longer made. Its theory of operation is described in U.S. Patent 8355510.
Sound Field Management (SFM)
Harman also has a patented system called Sound Field Management (SFM). Its theory of operation from an engineering perspective is described in the article "Low-Frequency Optimization Using Multiple Subwoofers" by Todd Welti and Allan Devantier. This article was originally published in the Journal of the Audio Engineering Society (JAES) in May of 2006. Information about SFM from a consumer perspective can be found in the article by Floyd Toole on the Audioholics site titled "The Birth of Sound Field Management", which is part of a longer article called "History of Multi-Sub & Sound Field Management (SFM) for Small Room Acoustics". SFM works by minimizing a metric called the mean spatial variance (MSV). The goal of SFM is to first minimize the variation with listening position of the combined sub frequency responses (the MSV) without regard to the flatness of the response. A single separate PEQ, gain and delay per subwoofer are adjusted to minimize the MSV. After this step, EQ that's common to all subs is performed to flatten response. Finally, integration with the mains is performed in a third step. SFM is described in U.S. Patents 7526093, 8705755 and 8280076.
MSO works differently from SFM, as described below.
Dirac Live Bass Control (DLBC)
Dirac Live Bass Control is a fairly recent and much needed commercial development that's getting a lot of interest in the home theater community. Though there are no engineering-level articles about how its algorithm works, there is a white paper in PDF format called the "Dirac Live Bass Control User Guide" that has some interesting details. This user guide states that, "...the present Bass Control solution provides a fine-tuning of the levels, delays and phase responses of individual subwoofers, under a criterion that the variations across space are minimized in a selected band of frequencies." So it appears to use digital processing whose magnitude response is independent of frequency (delays, all-pass filters and attenuators) for each sub. Beginning in version 1.0.46, MSO can approximate this aspect of the DLBC behavior via the Neglect the MLP target curve option on the Method page of the Optimization Options property sheet. See the error calculations section in the reference manual for details.
One welcome feature introduced by DLBC is the ability to "optimize the splice" between the subs and all satellites in an automated way. If you have a miniDSP DDRC-88A with DDRC-88BM plugin, this can be done manually (and rather tediously) with MSO as described in the reference manual's theory and practice sections on this topic.
Earl Geddes Approach
Discussion of the Geddes approach in the DIY community seems to have begun in a thread at diyaudio.com that began in December of 2008, some two years and seven months after Welti and Devantier published their JAES article on Sound Field Management. Todd Welti was involved in discussions in that thread under the moniker "cap'n todd". Geddes' approach is intended to be used with DSP devices having simple infinite-impulse-response (IIR) filters, such as PEQ and shelving filters. An approach that uses low-cost DSP hardware makes a lot of practical sense. MSO was inspired by his video about multiple subwoofers and its associated PowerPoint presentation. Despite discussion in that thread spanning twelve years, he's never described specifics of how he computes the per-sub filter parameter values.
Other Possible Methods
The only known commercial implementation of the matrix inversion/least-squares approach described above is the now-discontinued JBL BassQ, which used FIR filters. This implementation suffered from high latency and an abrupt frequency response cutoff below 20 Hz. It's not strictly necessary to use FIR filters in this application though. In theory, IIR filters could be used, with lower latency and better low-frequency extension than their FIR counterparts. The standard academic textbooks on digital filter design approach IIR filters from the perspective of specifying only their amplitude response, not phase. The matrix inversion/least-squares approach described above requires specifying both amplitude and phase responses of the filter for each sub. But design techniques which support specifying an IIR filter's amplitude and phase response do exist - they're just not described in university DSP textbooks. One such technique is called Frequency Domain Least-Squares, originated by Greg Berchin. Such techniques for IIR filter design are expanded and described in more detail in the Ph.D dissertation of Mathias Lang. More information about these techniques can be found at Mathias' blog.
Though there is no known implementation using the matrix inversion/least-squares technique implemented with IIR filters, it remains an intriguing possibility.
How Does MSO Perform its Calculations?
MSO uses optimization code to adjust the parameters of simple IIR filters for each sub and optionally each satellite. In addition, it can adjust delay and gain parameters (but only for subs, not satellites). These adjustments try to minimize a calculated error value that's a measure of the deviation of the computed frequency responses at multiple listening positions from some ideal condition. It provides three modes of optimization.
- A mode for which the calculated error represents the combined deviations of the computed responses over frequency from a desired target curve at multiple listening positions. If no target curve is specified, a flat response is assumed. This has been historically referred to as the "flatness error", even though the target curve might not necessarily be flat.
A second mode that combines two components of error together to form a composite error that it tries to minimize. These error components are:
- The RMS error of the main listening position's response from the desired target curve.
- An error that represents only how much the computed responses vary from one another from seat to seat.
- A third mode introduced in version 1.0.46 that only tries to minimize the seat-to-seat response variation without trying to fit any target curve at all. This is useful for users who e.g. might only be using per-sub delays because of a desire to maximize SPL.
For a detailed description of how the errors are calculated, see the error calculations section in the reference manual.
MSO supports configurations consisting only of subs, and also configurations consisting of subs plus satellites. When a "sub-only" configuration is used, only the computed response error of the subs at multiple listening positions is minimized. For a configuration consisting of both subs and satellites, the composite error includes both the subs and main speakers. In this case, MSO optimizes the integration of subs and main speakers at multiple listening positions. Regardless of the optimization method chosen, when a configuration includes both main speakers and subs, the optimization of the subs and their integration with the main speakers are all done in one step in order to maximize the usage of the limited EQ resources available in low-cost DSP units.
What Measurements Do I Need to Take?
For each listening position you wish to measure, you need to measure the frequency response of each sub individually at that position. If you are using MSO to integrate the mains and subs, you must also measure the main speaker(s) at each listening position. When using Room EQ Wizard (REW) with an HDMI interface and a USB microphone, you must use the REW acoustic timing reference to obtain time-synchronized measuremnts. The description on the measurements page gives suggestions for measuring both left and right main speakers and subs or just a center speaker and subs. You'll need to keep track of which measurement is which for later reference. When using MSO to optimize both the subs and their integration with the main speakers, HDMI channel 4 must not be used when energizing the subs for the measurements. When using MSO to optimize subs only, using HDMI channel 4 to energize the subs for the measurements is okay.
After you have performed the measurements, you'll need to export each one individually as a .frd file. In REW, this is done using File, Export, measurement as text. Just specify .frd as the file extension and its format will be compatible with MSO. If you have e.g. four subs, and you're integrating them with left and right main speakers, you'll have six measurements per listening position. You'll need to keep track of which speaker or sub was being measured, and what the listening position was via careful choice of file names. It's also reccommended to save explanatory text in the comments section of the exported file. This is done in REW by activating the measurement tab of each measurement, located on the left side of the REW main window, and typing the text into the measurement's text box. These comments will be saved in the exported .frd file, and can still be read even after importing the file into MSO.
For the purposes of this tutorial though, you won't need to do any measurements first. Just download the sample files. They contain all the frd files needed to run the tutorial.