Specifying Optimization Options
The information on this page regarding the Optimization Options property sheet is in a reference format. For suggestions and practical advice with real-world examples, see the related tutorial topic.
Before running an automated optimization, the optimization options should be set. If you ran the Configuration Wizard to create a configuration, and chose the Launch Optimization Options dialog when done option on the last page of the wizard, the Optimization Options property sheet will be launched as part of that automated procedure. You can also launch this property sheet using various menu choices. Before discussing these choices, it should be mentioned that there are two variants of the Optimization Options property sheet. One of these is the Optimization Options property sheet for all configurations, which is shown below.
This property sheet is launched when you choose Tools, Optimization Options from the main menu. To pick the configuration, select the folder icon on the left. The property page for that configuration is chosen by selecting subitems of the selected folder.
The second variant is the Optimization Options property sheet for a single configuration. This variant is shown below.
This variant of the Optimization Options property sheet is launched when you choose the Launch Optimization Options dialog when done option on the last page of the Configuration Wizard. Another way to launch it is to select the icon at the root of the configuration whose optimization options you wish to set, then right-click and choose Optimization Options... as shown below in connection with the Iteration 4 configuration.
In any event, these two variants of the Optimization Options property sheet both have the same set of property pages, so which one you use is a matter of preference. Using the property sheet designed for a single configuration reduces the possibility of setting properties for the wrong configuration by mistake. The illustrations below will use the single-configuration variant for clarity.
The Method Property Page
The Method property page of the Optimization Options dialog is shown below.
Here you have several choices of optimization method. As flat as possible without additional global EQ is the legacy optimization method of MSO, while Minimize seat-to-seat variations is a more recently developed method.
As flat as possible without additional global EQ
Using this method, MSO tries to get the frequency response at each listening position to match the target curve (which is flat by default) as closely as possible. Using this method, the seat-to-seat variation is not explicitly calculated, but is implicitly improved by the improved response flatness at all positions.
Minimize seat-to-seat variations
The nature of MSO's calculations using these methods is introduced in the section of the tutorial titled "How Does MSO Perform its Calculations?" The details of these calculations are described in the How Optimization Errors are Calculated: the Details topic of the reference manual. See those topics for complete information.
Since the algorithm improvements introduced into version 1.44, Minimize seat-to-seat variations is the recommended choice for almost all situations. You have two ways of modifying how this option works.
Neglect the MLP target curve
- Unchecking this option is the normal scenario. MSO tries to minimize the seat-to-seat variation of the responses, while simultaneously trying to get the MLP to match the target curve as cloesly as possible. See the detailed description in the Tech Topics section for specifics about the calculations.
- When this option is checked, MSO tries to minimize the seat-to-seat variation of the responses without regard to what the final frequency responses are. See the description of this error calculation in the Tech Topics section. This option is only enabled if all filter channels of the configuration contain only filters whose magnitude response is flat over frequency. This includes delays, all-pass filters, inverters and gain blocks. If any other type of filter is present in any channel, this option is disabled and unchecked.
Allow different SPLs at different listening positions
- This option should almost always be unchecked. When unchecked, MSO tries to force the response curves at each listening positon to lie right on top of one another, with no average level shifts between them.
- When checked, MSO allows the different listening positions to have different average SPLs over frequency. This should only be used in rare circumstances. One such circumstance might be having subs only in the front of the room, and optimizing responses over multiple rows of seats. With this option checked, MSO would allow the rear rows of seats to have a lower average SPL over frequency than the front ones.
Use legacy optimizer
This option should be normally left unchecked. Beginning with version 1.1.3, MSO introduced new optimization code that gives solutions with lower error in less time than the legacy optimizer for virtually all projects tested so far. There might be some rare projects that give better results with the legacy optimizer. This option allows you the ability to use the legacy optimizer if needed.
Compute reference level automatically
For configurations with subs and mains, Compute reference level automatically is the default option for setting the reference level. When this option is chosen, the average response of subs and mains combined, over the frequency range specified in Frequency range to compute reference on the Criteria property page (see below) is used as the reference level. Choose this frequency range to be the upper end of the optimization frequency range so MSO will adjust the sub levels to match the mains.
Use a fixed reference level
When using a sub-only configuration, you are restricted to using this option. See Reference level below for more information.
You can also specify this option for subs+mains configurations. You might want to do this if your main speakers do not have baffle step compensation and your DSP gives you the ability to equalize them. A lack of baffle step compensation in the main speakers will cause a 6 dB depression, like a low-frequency shelving cut, in their upper bass region. You might use an LF shelving filter with boost, along with a fixed reference level to accomplish a DIY baffle step compensation for your main speakers in this way.
If you've chosen Use a fixed reference level per the above, you'll need to set that level (in dB SPL) here. This is required for sub-only configurations. When using a target curve that isn't flat, that target curve will be subtracted from the computed response, resulting in an internally-calculated curve that's nominally flat. In that case, the reference level applies to that calculated curve. The target curve is adjusted to a value of 0 dB at the maximum optimization frequency, so when observing graph data that isn't flat, that's the frequency you should look at when deciding what reference level to use. The meaning of the reference level when the target curve is not flat is best understood by referring to this image and the text immediately below it.
When Minimize seat-to-seat variations is chosen along with Compute reference level automatically, MSO will first compute the average level over frequency of the difference between the MLP's response and the target curve over the Frequency range to compute reference (which you specify in the Criteria property page). It will then try to force the difference between the MLP response and the target curve to this value. If you choose As flat as possible without additional global EQ with a fixed reference level, all listening positions will use the same reference level. If you choose As flat as possible without additional global EQ along with Compute reference level automatically, each listening position will use a different reference level: the one automatically computed for that response curve over the Frequency range to compute reference. See below for a discussion of the Frequency range to compute reference option.
Main listening position (MLP) or main trace for optimization
Beginning in MSO 1.1.1, you must always choose which listening position or trace is the MLP or "main trace". Choose the appropriate position from the combo box. If you have a measurement group that is named "MLP", it will be chosen automatically for you.
The Criteria Property Page
The next property page is called Criteria. It allows for specifying the frequency range for optimization, the frequency range over which the reference value is computed (if applicable), and the maximum time the optimizer is allowed to run. The Criteria property page is shown below.
For All Configuration Types
When optimizing a configuration, an error in dB is computed for that configuration on each pass of the optimizer over the frequency range specified in the Frequency range to optimize field.
For Sub-Only Configurations
When you optimize sub-only configurations, you must specify a fixed reference level on the Method property page. Under this condition, the Frequency range to compute reference controls on the Criteria property page will be disabled. When the As flat as possible without additional global EQ option is chosen, the fixed reference level is used for all listening positions. When the Minimize seat-to-seat variations option is chosen, the fixed reference level is only used for the MLP.
For Configurations With Subs and Main Speakers
When specifying optimization options for a "Subs+Mains" configuration, it becomes possible to select the Compute reference level automatically option on the Method property page. When this is done, the Frequency range to compute reference controls on the Criteria property page will be enabled. In this mode, the reference level is not specified directly as a numeric value, but indirectly using the range of frequencies specified in these controls. The average value of the combined response of mains and subs at a given listening position is computed over the frequency range specified in the Frequency range to compute reference fields. This average value becomes the reference level for that listening position. When the optimization method chosen is As flat as possible without additional global EQ, this reference level is computed separately for each listening position. The reference level may therefore shift from one listening position to another, and also during the process of the optimization as filter parameter values are changed. When the optimization method chosen is Minimize seat-to-seat variations, the reference level is only computed (and only needed) for the main listening position. This "self-seeking" reference level is made possible by MSO's restriction of not allowing gain blocks in mains channels. The Frequency range to compute reference should be at the high end of the frequency range where the response of the mains (whose gain is fixed) dominates. This technique ensures that MSO can adjust the level of the subs to match the level of the mains, just as you would if you were performing a sub trim manually by using the RTA mode of REW. Using such a manual procedure, you might adjust the sub trim while observing the combined response of subs and main speakers. MSO tries to emulate this approach by figuring out the reference level at the high end of the frequency band automatically, then adjusting the sub levels to match this computed reference level.
Duration of Optimization Run
The final option on the Criteria page is the time duration for which the optimizer is allowed to run. The optimizer is always searching for a better solution as long as it's running. The maximum allowed duration can be specified here, and may require a bit of experimentation to get right. If too long a duration is specified, the optimization is easily stopped via the Stop Optimization button on the toolbar.
The default value for the optimization duration is computed with a formula that's based in part on the number of concurrent threads supported by your CPU. The default value is only a rough approximation and should not be considered a "gold standard". The default value is shown when you first show this property page for a new configuration. After you choose a preferred value, it's always preserved. If you wish to reset this value to the default for an existing configuration, enter a value less than 1.0 in the edit control. MSO will notify you that it has reset this value to the default, and it will show you what that default value is.
The PEQ Parameter Limits Property Page
New in version 1.1.0 is the PEQ Parameter Limits property page. Its purpose is to allow setting the parameter limits of all the PEQs of a configuration at once, avoiding tedious manipulation of individual PEQ filter parameter limits. This property page is shown below.
While it may seem out of place to be setting filter parameter limits in a dialog made for setting optimization options, there are are good reasons for it.
First, there is an intimate connection between the allowed PEQ center frequency limits and the optimization frequency range chosen in Frequency range to optimize on the Criteria property page discussed above. If we allow the PEQ center frequencies to go outside the optimization frequency range, we will lose some control of what is happening there, as MSO normally does no calculations outside the optimization frequency range. Under this condition, the PEQs could make some changes outside the optimization limits that we don't want. Likewise, if we don't allow the PEQs to cover the full optimization frequency range, we may not be able to take full advantage of what the PEQs can do for us within this frequency range. A good rule to follow is to make the allowable center frequency range of the PEQs the same as the optimization frequency range. This means changing the minimum and maximum center frequencies of the PEQ filters on the PEQ Parameter Limits property page to match the minimum and maximum frequencies in Frequency range to optimize on the Criteria property page whenever you change the optimization frequency range.
Second, the minimum and maximum allowable boost and cut of the individual PEQs specified on this page has an intimate relationship to the total allowed boost and cut for all combined PEQs of each channel, which you specify on the Constraints property page discussed in the next section. The total allowable boost or cut for all the PEQs of a channel combined can't be smaller than the allowable boost or cut of any individual PEQ filter for reasons of optimization convergence. This means these limit values strongly interact, making it essential to have the property pages specifying the global and individual PEQ boost and cut limits as part of the same property sheet.
There's more to the behavior of the PEQ Parameter Limits property page than first meets the eye. When any Keep existing limit checkbox is checked, its corresponding edit control shows the condition of the filters themselves for that parameter limit. If all filters have the same limit value for a parameter, you'll see a single number in the edit control. If there's a mixture of parameter limit values, you'll see something like what's shown below.
Here, the PEQ filters in the configuration have minimum center frequencies that vary from 10.0 to 20.0 Hz and maximum center frequencies that vary from 150.0 Hz to 200.0 Hz. The minimum and maximum Q values are the same for all the PEQs, at 1.0 and 25.0 respectively. The Keep existing limit checkboxes for the maximum boost and cut in dB have been unchecked, enabling these values to be edited. When you see a mixture of limit values for any parameter, it's usually a sign that you should uncheck the Keep existing limit checkbox for that parameter limit value and enter a limit value that will be used by all the PEQs. Only on rare occasions would you want a mixture of limit values for any given PEQ parameter. You can think of such a display of mixed parameter limit values as shown above as a red flag to inform you of a condition that probably needs to be fixed.
For any parameter limit that you wish to change from its current value or values, the corresponding Keep existing limit checkbox must be unchecked at the time the property sheet's OK button is pressed for this value to be applied to the existing PEQs of the configuration.
The Constraints Property Page
In addition to using the PEQ Parameter Limits property page mentioned above to specify individual parameter limits for all PEQ filters, you can use the Constraints property page to specify limits on the allowable total boost and cut contributed by the combined PEQ filters in each channel. This is to eliminate the so-called "stacking" problem in earlier versions of MSO, where multiple PEQs could end up with the same center frequency and contribute a maximum boost or cut far greater than what was allowed for individual filters. This property page is shown below.
You can restrict the total PEQ boost, total PEQ cut, or both. Other types of filters that may be in the channel, such as LF shelving filters, high-pass filters and the like, are not taken into account in the calculations of maximum boost and cut. The maximum boost and cut values that you specify must be positive. MSO requires that no individual PEQ in the applicable configuration have a maximum boost or cut that exceeds the limit specified in this dialog.
Cross-Checking Between the Constraints and PEQ Parameter Limits Property Pages
Some error checking occurs in both directions between the PEQ Parameter Limits and Constraints property pages. A specific example is illustrated below.
On the Constraints property page, if the Restrict total PEQ cut option is enabled, the amount of the allowable cut must not be less than the Maximum cut, dB value on the PEQ Parameter Limits property page. Likewise, if the Restrict total PEQ boost option is enabled on the Constraints property page, the amount of the allowable boost must not be less than the Maximum boost, dB value on the PEQ Parameter Limits property page. In the example above, the Maximum total PEQ cut on the Constraints property page (total allowed for all PEQs in a channel) is 27.0 dB, while on the PEQ Parameter Limits property page, Maximum cut, dB is 26.0 dB (allowable for any single PEQ), making this a legal combination. Similarly, the Maximum total PEQ boost on the Constraints property page is 3.1 dB, while on the PEQ Parameter Limits property page, Maximum boost, dB is 3.0 dB, also a legal combination.
If you are currently navigating one of these property pages and attempt to either switch to another property page or press OK to accept the current data, MSO will cross-check the data between the two pages as described above. If an error is found, you'll be prompted with a message showing the nature of the error so that you can correct it.
The Target Curve Property Page
A target curve (sometimes called a "house curve") can be imported in the Target Curve page. This property page is shown below.
A target curve is a text file with two columns of data. The first column is the frequency in Hz, and the second column is the curve value in dB. These columns can be delimited by spaces or tabs. Currently, there is no target curve editor in MSO, so you must create the curve yourself with a text editor. For complex curves, a workaround exists as follows.
The Target Curve Example
- Download the target curve example. That example uses the MSO filter type called LF Shelf Variable Q Second-Order (Alt).
While observing the example's graph, adjust the low-frequency boost, center frequency and Q of the shelving filter to get the curve you want.
- For the LF Shelf Variable Q Second-Order (Alt) filter type in the target curve example linked above, the center frequency is the frequency at which the total boost (or cut) in dB is one-half the low-frequency boost (or cut). For instance, if you specify a 6.0 dB boost, the center frequency is where the boost is 3.0 dB.
- The so-called Harman target curve (PDF) has a center frequency of 105 Hz. This is the default center frequency for the LF Shelf Variable Q Second-Order (Alt) filter type.
- Use the MSO tuning feature to adjust the curve to what you want.
- In the Filters node under Sub Channel 1, choose Save this Channel's Response as Target Curve.
- Specify the file name and folder in the Save As dialog box.
- A text file will be created with a curve that goes from 5 Hz to 400 Hz.
For complex curves such as the target curve example above, Use cubic spline interpolation is recommended as it will cause a smooth curve to be drawn between the target curve points.
It is recommended that the Use logarithmic interpolation option almost always be checked.
When the Use logarithmic interpolation option is checked and the Use cubic spline interpolation option is unchecked, if there are two widely-spaced data points on the curve, the line connecting them will appear straight when the curve is plotted on a graph having a logarithmic frequency scale. For instance, Earl Geddes recommends a target curve that is essentially a tilted line on a graph of dB vs. frequency (on a logarithmic frequency scale). This tilted line has a slope of between 3 and 6 dB per decade from 200 Hz down to 20 Hz. This can easily be accomplished using logarithmic interpolation and a text file having only two entries as follows, which shows a 6 dB per decade slope.
For this curve to appear as a tilted line on a response plot with a vertical scale in dB and a logarithmic frequency scale, the Use cubic spline interpolation option must be deselected and Use logarithmic interpolation selected. In this case, the curve's value will be constant at 6.0 dB below 20 Hz, and constant at 0.0 dB above 200 Hz.
It is not recommended to establish a house curve via individual EQ of each sub. Rather, individual EQ should be used to establish a flat response over the listening area using PEQs, and shelving EQ via the shared sub filter channel (input filters of a miniDSP) should be used to establish a target curve. In general, you shouldn't use PEQs to establish a target curve. MSO's shelving filters are best for this, while PEQs are best for fighting room modes.
The Group Weights Property Page
The last property page is called Group Weights. It is shown below.
When the As flat as possible without additional global EQ option is chosen in the Method property page, the option to choose group weights is enabled in the Group Weights property page. For each measurement group, the RMS amplitude deviation from the reference in dB is computed over frequency. Then these RMS errors are again combined in an RMS fashion over all measurement groups to get a single RMS error number. This second stage of RMS error computation can be weighted, for example to prefer a slightly flatter response at the main listening position. This is done by giving the MLP a weight of 1.0 and the other listening positions a weight of less than 1.0, maybe something like 0.75 for all non-MLP positions. The details of this weighting calculation are given on the error calculations page of this reference manual.
When you choose Minimize seat-to-seat variations in the Method property page, the controls for choosing group weights are disabled on the Group Weights property page, and any information displayed on this page is ignored.