Multi-Sub Optimizer Tutorial (page 12)

Fixing the Sub Gain Mismatch

In the previous section, we analyzed the results of the filter report of the Iteration 3 configuration. We found a problem of strongly mismatched gains among the subs. One sub had a much higher gain than all the others. We called the sub with the highest gain the "reference sub". The other three subs had gains ranging from around 14 to 16 dB less than the reference sub. We looked at the Normalize Gains command in a simple test project containing only gain blocks. We saw that this command created an equivalent system in which the gain block of the reference sub was moved into the shared sub channel, and the remaining gain blocks had their gain values adjusted so that the gain of the system from input to each output was the same as before.

With no gain block in the individual reference sub channel, we observed that the gain values in the gain blocks of the other three subs could be interpreted as their gains relative to the reference sub. By setting the minimum and maximum limits of these gain values appropriately, we'll be able to prevent the gains of the non-reference subs from being too different from the reference sub gain.

We'll put these ideas to work fixing the sub gain mismatch in this section.

Cloning the Iteration 3 Configuration

We've been through the cloning process a couple of times before in this tutorial, so the cloning steps will just be summarized briefly here.

Normalizing and Constraining the Gains

Perform the following steps to normalize the gains.

Observe that the gain block of the reference sub, FL23, has been moved to the shared sub channel. Also, MSO has displayed an information message in a tabbed text view identical to the one we saw before when trying out the command in the normalize-gains.msop test project. This is shown below.

Iteration 4 After Normalizing Gains
Iteration 4 After Normalizing Gains

Don't worry about the change to the gain value limits of FL5 and FL11. We're going to change those limits manually below anyway, and we'll also reset all parameter values of all the filters of Iteration 4 before running the next optimization.

We wish to set the gain limits of FL5, FL11 and FL17 so that the gains of the non-reference subs are no more than 10 dB down from the gain of the reference sub. Recall that after the Normalize Gains command, the gain values of FL5, FL11 and FL17 represent the gains of their respective subs relative to the reference sub. We'll make these changes starting with FL5. We can look at the properties of FL5 by selecting it in the Config View. The Properties window will show its state. This is shown in the image below.

FL5 Before Limit Readjustment
FL5 Before Limit Readjustment

Consistent with the status message we got above after running the Normalize Gains command, the lower limit of the gain of FL5, which used to be -15.0 dB (the default), had to be altered by MSO so the newly-calculated gain value, -16.1 dB, would be within the allowable limits.

We want to set the Minimum value and Maximum value of the Gain (dB) parameter to -10 dB and 0 dB respectively. We do that by just entering new values in the appropriate cells in the right column of the properties grid. After doing so for FL5, the result will be as shown below.

FL5 After Limit Readjustment
FL5 After Limit Readjustment

When parameter limits or values are changed in the Properties window, the changed values are shown in bold as above. Notice that when the Minimum value of the gain of FL5 was changed to -10.0 dB, its previous gain value of -16.1 dB was "bumped" to -10.0 dB automatically by MSO so that its value remained within the legal limits.

Perform the same actions for FL11 and FL17. The results should look like those above for FL5. After your change, the upper gain value limit of each of FL5, FL11 and FL17 should be 0.0 dB and the lower limit -10.0 dB.

Being a shared gain block, FL23 is a little different. Select FL23 in the Config View to show its properties in the Properties window as shown below.

FL23 Properties
FL23 Properties

The Channel name for FL23 lists all the sub channels, because its gain affects all channels at once, and not the relative gains of the subs. After the Normalize Gains operation, FL23 has become just a level-setting device for establishing the 80 dB SPL reference level we set way back in the beginning of the tutorial. Because of this, it can have a wide range of allowable gain values. We'll just keep the existing allowable gain range of FL23 at -15.0 dB to 15.0 dB.

After making the gain range changes to FL5, FL11 and FL17, the results for all the gain blocks should look as below. Note that the FL23 limits were left unchanged.

All Gains After Resetting Parameter Limits
All Gains After Resetting Parameter Limits

Resetting the Filter Parameter Values of Iteration 4

Before running a new optimization, it's a good idea to reset all the filter parameters to the default for the configuration you're going to optimize. In the main menu, choose Config, Reset All Filter Parameter Values. Choose Iteration 4 and press OK. You'll get a prompt asking you to verify that you really want to do this. After verifying that you chose the correct configuration to reset, choose Yes at the prompt.

In the Data View, right-click on the Iteration 4 vs. Baseline tree node under Graphs and choose Show Graph. Since we just reset all the filter parameter values of Iteration 4, its response traces should look just like the Baseline configuration. This is shown below.

Iteration 4 vs. Baseline After Parameter Value Reset
Iteration 4 vs. Baseline After Parameter Value Reset

A Note About Parameter Values vs. Parameter Limits

At times, it can be easy to confuse parameter values and parameter limits. For instance, we just spent a lot of time thinking about and changing the parameter limits of the gain blocks FL5, FL11 and FL17. After all that work, we chose Config, Reset All Filter Parameter Values from the main menu. This reset all the parameter values of all filters in the Iteration 4 back to their defaults. Did this interfere with our previous work setting the FL5, FL11 and FL17 gain limits? It turns out that the answer is "no", and it's worth considering why.

When you chose Config, Reset All Filter Parameter Values from the main menu, that command goes through all the filters, and just as the name implies, sets all the parameter values of all the filters to their default condition. But it only does so if it can make the change without having to alter the parameter limits. For example, the default value for the gain of a gain block is 0.0 dB. Suppose you had a gain block in your configuration whose parameter limits were -2.0 to -10.0 dB. If MSO tried to set the gain value of this gain block to the default of 0.0 dB, this would be out of range of the allowable gain limits of that gain block. In this case, the parameter reset code would set the gain value to the closest legal value to the default. In this case, it would set the gain value of this particular gain block to -2.0 dB. We set the gain value limits of FL5, FL11 and FL17 to the range 0.0 dB to -10.0 dB. The default gain value of 0.0 dB is right at the limit of this range, so the parameter value reset code just squeaked by with setting the gain values of these gain blocks to 0.0 dB. It's a good idea to look at the new parameter values of FL5, FL11, FL17 and FL23 in the Properties window to verify that their new gain values are all 0.0 dB. It would also be a good idea to verify that the gain value limits of FL5, FL11 and FL17 are set to the range of 0.0 dB to -10.0 dB.

A related situation occurs when you use the PEQ Parameter Limits property page of the Optimization Options property sheet. The actions of this property page change the limits of all PEQ parameters to what's specified on the page. When it attempts to make the change, it looks at all existing PEQ parameter values, and if any PEQ parameter value would be outside the new limit range specified, a warning message appears. If you choose to accept the parameter limit changes, MSO will change any existing parameter values if necessary so that the resulting value will be within the new limits. If you decline the change, no limit or value changes will be made to any PEQ parameters.

Most of the time, these parameter values will be changed during a subsequent optimization anyway, but knowing what goes on behnd the scenes will prepare you for whatever situation might come up in relation to these commands.

Saving Your Work

Now that we've performed the Normalize Gains command, specified new limits on the gains of the non-reference gain blocks FL5, FL11 and FL17, and reset all filter parameters to their defaults, we're finally ready to perform a new optimization. But before doing so, save the existing project as tutorial-new-7.msop.