Multi-Sub Optimizer Tutorial (page 17)

Improving Response Flatness at the Main Listening Position

The corrected responses of Figure 30 show improved frequency response flatness for all listening positions compared to the uncorrected responses of Figure 31. Yet the response at the main listening position may not be as flat as you would like it to be. Since one side effect of adjusting the individual channel EQs is to reduce the seat-to-seat variation in frequency response, altering these individual EQ settings is not a good way to flatten the response at the main listening position any further. Instead, a better idea is to keep the existing individual channel EQs and add shared filters that affect the responses of all subs simultaneously so that the seat-to-seat variation of the frequency response is not affected. Keep in mind that in doing so, the flatness of the frequency response at positions other than the main listening position may be degraded relative to Figure 30, as was mentioned earlier in the tutorial when discussing the pitfalls of shared EQ. However, should you choose to use this technique, MSO gives you the needed tools.

To perform this task, you'll clone the Optimized configuration of tutorial_4.msop. Open up tutorial_4.msop and in the Config View, select the root node of the Optimized configuration (the node labeled “Optimized” just underneath Configurations. Right-click and choose Clone Configuration from the context menu. This will cause the Clone Configuration dialog to be launched. In this dialog, enter MLP Cleanup in the Choose a name for the new configuration box. Make sure the checkbox labeled Clone associated graphs is checked. This will create an identical copy of the Optimized configuration, and replicate its graphs, with the traces of the new graph referring to the new configuration. Right-click on the MLP Cleanup node and choose Lock All Filter Parameters of this Configuration. This will prevent the optimizer from changing the individual subwoofer EQ settings of MLP Cleanup. You'll see that the icons for all the filters in this channel are dark gray in color. You'll want to add some shared sub filters and run a new optimization on MLP Cleanup so that only the parameters of these shared filters are adjusted.

Use Plot-Only Measurement Groups to Suppress Optimization

Before adding shared sub filters, the optimization parameters must be changed so that only the MLP response is optimized for flatness, and not any of the other listening positions. One way to do this would be to remove all the measurement groups except MLP. However, this would have the undesired side effect of disallowing the ability to graph the frequency responses of the other three listening positions, at least while the optimization is being run. To solve this problem, you can instead make all the measurement groups not associated with the MLP into plot-only measurement groups. Such measurement groups can be plotted, but are not used as optimization criteria.

Locate the measurement groups of the MLP Cleanup configuration. Select the Pos 2 measurement group, right-click on it and choose Properties from the context menu. In the resulting dialog box, check the checkbox labeled Do not optimize, but allow plotting. Click OK. The icon for the Pos 2 measurement group will turn gray, indicating it is a plot-only group. Repeat the process for the Pos 3 and Pos 4 measurement groups. The measurement groups for MLP Cleanup should look as below.

After making non-MLP measurement groups plot-only
Figure 36. After making non-MLP measurement groups plot-only

Using the Rearrange Gains and Rearrange Delays Features

In the next section, you'll be adding some PEQ filters to the Shared Filters of the Subwoofer Channels. These filters will only affect the subs, not the main speakers. In addition to altering the frequency response magnitude of the combined sub outputs, they will also change the phase of this frequency response. Since the main speakers aren't affected by this change, it follows that the shared PEQs will change the relative phase between mains and subs from the previously-optimized condition. To fix this, you'll need a shared delay. Likewise, the PEQs you'll use will be limited to response cuts, not boost. It's reasonable to expect that because of these response cuts, a shared gain boost will be needed for the subs to get the best flatness of the combined response of subs and main speakers. Taking delay as an example, you can see that the configuration of delays in the four sub channels of the MLP Cleanup configuration looks conceptually as below.

Delay configuration before rearrange
Figure 37. Delay configuration before rearrange

We'd like to add a shared delay, making the new configuration as below.

Disallowed delay configuration
Figure 38. Disallowed delay configuration

The delay configuration of Figure 39 is conceptually correct, but disallowed in MSO. This is discussed in the MSO Reference. Briefly, if the configuration of Figure 38 were allowed, it would be possible to set the Optimization allowed property of all five delays to True. This would have the effect of causing the optimizer to explore an infinite space of redundant solutions when an optimization is run. The optimizer would “chase its tail” so to speak. To prevent this, a delay configuration similar to the figure below must be used.

An allowed delay configuration using a shared delay
Figure 39. An allowed delay configuration using a shared delay

In practice, it's not necessary for the channel without delay to be the first one as in the figure above. The individual channel with the smallest delay in Figure 37 ends up with no delay in the configuration of Figure 39. It should be clear that in changing the configuration of Figure 37 to that of Figure 39 using manual calculations would involve a lot of tedious calculations and manual work. An exactly analogous procedure would have to be done with the gain blocks too. MSO can do this in one step for each of the gain and delay configurations via the Rearrange Delays and Rearrange Gains commands respectively.

Locate the Subwoofer Channels node under the MLP Cleanup configuration. Observe that there are initially no shared filters of any kind. Right-click this node and select Rearrange Delays from the context menu. You'll notice that there is now a delay block under Shared Filters, and the delay block of Sub Channel 4 is now gone. All the delays have been recalculated to give a net delay for each sub channel that is exactly equivalent to the previous condition.

Right-click on the Subwoofer Channels node and choose Rearrange Gains from the context menu. A gain block appears under Shared Filters, and the gain block of Sub Channel 2 is now gone.

These shared gain and delay blocks were not newly created, but are existing blocks that have been relocated to the Shared Filters and had their Value parameters suitably altered. Since all filter parameters were previously locked (that is, the Optimization allowed properties of all their parameters were set to False), the shared gain and delay blocks retain this setting and will need to be unlocked. This can be seen via the gray color of the icons for FL14 and FL27. The fastest way to unlock the shared gain and delay blocks is to right-click on the Shared Filters node and choose Unlock Shared Sub Filter Parameters from the context menu. You can verify that the change took place by observing that the color of the corresponding filter icons is now white. The MLP Cleanup configuration should now look as below. The individual sub channel nodes have been collapsed for clarity.

After rearranging delays and gains
Figure 40. After rearranging delays and gains

Successive applications of the Rearrange Delays command just toggle between the delay configurations of Figure 37 and Figure 39. Rearrange Gains behaves similarly.

Using Shared Sub Filters, Delays and Gains

Now that you have shared gain and delay blocks, you can add the shared PEQ filters. In the MLP Cleanup configuration, right-click the Shared Filters node under Subwoofer Channels. Choose Add Parametric EQ from the context menu. Repeat this operation until six shared PEQs have been added.

Tweaking the Optimization Options

Since the previous optimization has flattened the frequency response well, it can be beneficial to alter the frequency range over which the level reference is computed for the next optimization. You'll change those options next.

From the main menu, choose Tools, Optimization Options, then choose MLP Cleanup. In Criteria, change Frequency range to compute reference, specifying a minimum frequency of 25 Hz and a maximum frequency of 200 Hz. Click OK.

Renaming a Graph for the New Configuration

Because you chose the Clone associated graphs option when cloning the Optimized configuration, all the graphs you need for the new configuration have been created for you. The one you're interested in should be labeled MLP Cleanup: Copy of Combined Responses (Optimized). Select the node with this name in the Data View, and using F2, rename it to MLP Cleanup Combined Responses as shown below.

Graph settings for final MLP cleanup
Figure 41. Graph settings for final MLP cleanup

Set the graph's title as shown below. Save your results as tutorial_5.msop, then run the optimization, saving the results again afterward. The results of the optimization are shown below, and can be found in the MSO project tutorial_5_prefab.msop.

Optimization results of MLP cleanup
Figure 42. Optimization results of MLP cleanup