MSO User Guide
About the MSO User Guide
This User Guide picks up where the Getting Started Guide leaves off. If you have never created an MSO project, you should go through the Getting Started Guide to learn how to import measured data and create an MSO configuration via the Measurement Import Wizard and the Configuration Wizard respectively. It will also show you how to adjust the appearance of your graphs to your liking.
The Getting Started Guide does not discuss the core MSO topic of optimization. This User Guide introduces optimization by example.
Optimization in MSO
Optimization is the process used by MSO to adjust the parameter values of the filters, delays and gain blocks that were added to your configuration. These elements may have been added either automatically by the Configuration Wizard or manually by you. The purpose of optimization is to adjust these parameters to achieve certain performance objectives in your system. MSO supports a variety of ways to optimize your system.
In the discussion that follows, "MLP" refers to the main listening position.
SPL Maximization: The New Feature of MSO v2
Versions of MSO prior to v2 emphasized the goal of making the frequency responses in the bass (modal) region over a multiple-seat area as flat as possible, and minimizing the seat-to-seat frequency response variation (called STSV in this manual). It does this by having different transfer functions (frequency responses that consist of both magnitude and phase) in the DSP channels that feed each sub. This technique changes the way the subs interact with one another in the room. In the most common type of optimization using MSO v1, the procedure acted to minimize the STSV while getting the MLP response as flat as possible
Focusing on these goals to the exclusion of all others sometimes had undesired effects. For instance, due to room mode effects, sometimes a given sub will have a tendency to degrade the STSV and flatness of the overall system response. This might be caused by room modes giving the problematic sub an irregular in-room phase response. Such an irregularity can lead the overall response with the problematic sub in place to be worse than it would be without it. A mathematical procedure that tries to optimize STSV and MLP flatness above all other considerations can end up dropping the level of the problematic sub way down relative to the others to achieve its goals.
When the levels of one or more problematic subs are knocked way down compared to the others, the remaining subs have to work harder to get the same system SPL. In this hypothetical scenario, we would end up with improved MLP flatness and STSV, but degraded SPL capability. In addition, the extent of the degradation of the SPL capability in this scenario is uncontrolled.
What is needed is a way to quantify how close we are to the best achievable SPL and incorporate that information into the optimization. In MSO v2, this information is calculated and assigned to an error called the SPL penalty. The SPL penalty is defined in such a way that if there is perfect gain matching between the DSP channels at all frequencies, and the subs are acoustically in phase with one another at all frequencies and all listening positions, the SPL penalty will be exactly zero. This condition is impossible to achieve in practice. However, we can get the perfect gain matching by using only delays and all-pass filters in the output channels of the DSP. We can only approximate the phase matching condition though. We do that by adjusting delays and all-pass filter parameters in each DSP output channel during optimization.
By performing an initial optimization using only delays and all-pass filters, we can establish a baseline SPL penalty that represents the best SPL performance we can get while ignoring the STSV. Then, we can add in the PEQs to improve the STSV. In general, making the STSV better in this way makes the SPL penalty worse. By using different constraints on the SPL penalty during the STSV optimization, we can examine the trade-offs between STSV and SPL penalty to allow us to choose a compromise that's on a "sweet spot". This sweet spot might represent a substantial improvement in STSV at the cost of only a small degradation of the SPL penalty. When shared sub channel PEQs are used, getting the best MLP flatness is "free" in the sense that it does not degrade either the SPL penalty or the STSV. The presence of such shared sub channel PEQs is required for certain optimization types in MSO v2.
This SPL maximization capability is the main new feature of MSO v2.
Multi-Stage Optimization is New in MSO v2
To support SPL maximization, MSO can now use multi-stage optimization when needed. In multi-stage optimization, a logical optimization is split into multiple discrete tasks, each of which performs a subset of the modifications needed to reach a desired result. The first task modifies the configuration, then passes the modified configuration on to the next task for further changes. This process repeats until all the tasks have been performed.
This technique is useful when certain tasks can be performed without losing the benefits of previous ones. For instance, if a configuration uses shared PEQs, these can be adjusted to flatten the MLP response as a final cleanup without any effect on the STSV or SPL penalty. This particular process is fast, because it's only altering the parameter values of the shared PEQs.
The Types of Optimization Supported by MSO
To make the discussion about optimization types concrete, we'll look at the options available to you by showing the UI you'll use to specify them. To follow along with the illustrations, open up the project getting-started-2.msop from the Getting Started Guide. If you didn't create this project, you can just download it.
The types of optimization available are listed on the Optimization Type property page of the Optimization Options property sheet. To launch it, first make sure the Config View on the left side of the MSO main window is activated. Then right-click on the name of the configuration whose options you wish to set and choose Optimization Options. This is illustrated below.
This brings up the property page showing the five types of optimization that can be performed.
The first two of these options are the same as the two options that were available in MSO v1.
- As flat as possible at all listening positions acts to simultaneously minimize the flatness error of the system's magnitude response at all listening positions. It tends to reduce STSV as well, but this effect is indirect. Getting perfect flatness at all positions would also result in a STSV of zero, but this cannot be achieved in practice.
- Minimize seat-to-seat variations (STSV) and flatten MLP response computes an average SPL curve and calculates the STSV by computing the RMS value over frequency and listening position of the deviation of the response curves at each position from this average. At the same time, it acts to optimize the flatness of the MLP alone by optimizing an error that combines the STSV and MLP flatness errors into one.
The last three options are new in MSO v2 and support the SPL maximization feature.
-
Maximize SPL using only delays and all-pass filters seeks only to minimize the SPL penalty discussed above. Before running, it forces all PEQs to a flat, 0 dB gain state, which effectively bypasses them. It also prevents the optimizer from adjusting any filter parameters other than all-pass filter parameter values and the delay values of delay blocks in the DSP output channels. It does this by locking the parameters of all filter types other than delays and all-pass filters. After the optimization runs, it unlocks the filter parameters that it locked prior to the optimization. It does not consider STSV or MLP flatness at all when optimizing to minimize SPL penalty. At the end of the optimization, you end up with each DSP output channel having a transfer function magnitude of 0 dB (independent of frequency) with the relative phase of the signals driving the subs adjusted so that all subs are as close as possible to being acoustically in-phase with one another at all frequencies and listening positions.
- This optimization type is used mainly for exploration of ways to reduce the SPL penalty without the confounding effects of the influence of other filter types. It runs quickly due to the small number of parameter values that need to be adjusted.
-
Flatten MLP response using only shared (input) filters is what you use when you want to do conventional equalization with only subs. It only tries to flatten the equalized response at the MLP without any other considerations. When this optimization type is run, MSO temporarily locks all parameters of all filters except those in the shared sub path. It then adjusts only the shared sub filter parameters to force the MLP response to the target curve. The target curve is nominally flat, thus the use of "flatten" in the name of this optimization type for brevity.
- It can be used for experimentation in connection with the optimization method above for maximizing the SPL. For instance, you could choose Maximize SPL using only delays and all-pass filters and run an optimization. Next, you could choose Flatten MLP response using only shared (input) filters and run a second optimization. After this process, you'd end up with the highest SPL achievable with the given set of all-pass filters while having the flattest possible MLP response. Such a combination ignores the STSV entirely.
- This two-step optimization process could also be done in a single logical optimization using some optimization options to be described later.
-
Multi-stage: Maximize SPL, minimize STSV and flatten MLP response This optimization type is arguably the most significant change from MSO v1 to v2. It makes use of the multi-stage optimization approach described above. Optimization proceeds in three stages.
- The first stage is SPL maximization, which is the same procedure described above in Maximize SPL using only delays and all-pass filters. When this stage is done, it passes the modified configuration on to the second stage, along with the value of the SPL penalty it obtains.
- The second stage is almost the same as the method described as Minimize seat-to-seat variations (STSV) and flatten MLP response above, but the SPL penalty is also calculated and used as a constraint. Suppose the best-case SPL penalty in the first stage of optimization above was computed to be 1.8 dB. As part of preparing for this optimization type, you specify an allowed degradation of this best-case SPL penalty value on the Multi-Stage Options property page. Let's say you specified an allowed degradation of the best-case SPL penalty to be 1.0 dB for that option. That means that all potential solutions having an SPL penalty greater than 2.8 dB (= 1.8 dB + 1.0 dB) would be rejected. In this way, the optimizer improves the STSV, subject to the constraint of maximum allowable SPL penalty.
- After the STSV is improved in the second optimization stage above (subject to the SPL penalty constraints), the modified configuration is passed on to the third optimization stage. This third stage performs the Flatten MLP response using only shared (input) filters operation. It first resets all parameters of all shared sub filters to their defaults, then adjusts them for optimum response flatness of the MLP. As mentioned in the discussion above, this operation does not affect either the STSV or SPL penalty. Although this operation may appear redundant with the MLP flatness optimization performed as part of the second stage, it can often improve the MLP flatness result, especially in systems having many subs, many listening positions or both.