Important Considerations For SPL Optimization
What This Article Covers
This article covers some essential topics related to maximizing SPL of multiple-subwoofer systems using MSO. The topics covered include:
-
How to avoid error messages in SPL optimization caused by incompatible filters in MSO subwoofer channels. These filters can include:
- High-pass filters used for DIY vented-box subwoofers
- Gain blocks used to control subwoofer levels
- Any other filter types that cannot be set to a frequency-independent gain magnitude of 0 dB
- How to set relative subwoofer levels to optimize SPL when dissimilar subwoofers are used
- How to achieve relative subwoofer levels that match your subjective preference
In order to make sense of these topics, it's necessary to first give a general introduction to what SPL optimization does. This explanation will be limited to standalone SPL optimization using the Maximize SPL using only delays and all-pass filters optimization option.
The multi-stage optimization is more complex, but if your configuration's filters meet the requirements of the standalone SPL optimization, you can optimize it using the multi-stage optimization method as well. Multi-stage optimization has the same requirements for output filters as the single-stage method, but unlike the standalone SPL optimization approach, it allows any filters to be used in the shared MSO sub channel. These shared filters perform the required frequency response shaping.
Standalone SPL Optimization
To run a standalone SPL optimization, you choose the Maximize SPL using only delays and all-pass filters option on the Optimization Type property page of the Optimization Options property sheet as shown below.
The purpose of a standalone SPL optimization is to use only delay and all-pass filter adjustments to try to get the response of all subs combined at each listening position to match the so-called "natural response" at that position.
How Natural Responses Are Used With Standalone SPL Optimization
The natural response at any listening position is the sum of all sub measurements taken at that position under an idealized assumption of all subs being acoustically in phase with each other at that position at all frequencies. The natural response tells you the highest output you could get in theory at a given listening position by phase adjustments alone. The graph documentation shows how to display the natural response curves. Natural response curves depend only on the imported measurement data and not on any filters you might have in a given configuration of your project.
Using only delays and all-pass filters, it's possible in theory to adjust the combined sub response at a single listening position to match that position's natural response. It's not possible to do this at all listening positions at once though. Trying for perfect phase matching at only a single position can cause other positions to become outliers with undesired phase cancellation at some frequencies. For this reason, MSO works with the average of the natural responses over all listening positions, trying to get the average of the phase-corrected actual responses to match it. This has the effect of spreading out the errors from the natural responses over multiple positions, preventing the errors at any one position from getting too large.
MSO Tries to Force All Filters To a Frequency-Independent 0 dB Gain Before Optimizing
In order to best approximate the natural responses when performing a standalone SPL optimization, MSO requires that all input- and output-channel filter responses of that configuration have a gain magnitude of 0 dB over all frequency. This ensures that the filters only perform phase adjustments.
If any filters do not meet the 0 dB gain requirement, MSO tries to force them to that state before performing a standalone SPL optimization. This action consists of the following steps.
- The lock states of all parameters of all filters are saved.
- All filters are forced to have a frequency-independent gain of 0 dB if they allow it.
- All parameters of all filters other than delays and all-pass filters are then locked, so that the optimization only does phase adjustments.
- The optimization is run.
- After the optimization completes, the lock states of all filter parameters are restored to what they were before optimizing.
Because MSO performs these actions, when you perform a standalone SPL optimization, you can keep your PEQs, shelving filters etc. in place as long as these filters can be forced to a frequency-independent gain of 0 dB without altering any filter parameter limits.
Some Filters Cause Errors When Trying To Force Them to a Frequency-Independent 0 dB Gain
If MSO is unable to force all filters to a frequency-independent gain of 0 dB, it will display an error message. These messages can occur for several possible reasons.
- The filter type is incompatible (e.g. a high-pass filter) because it does not allow for a frequency-independent gain magnitude of 0 dB under any circumstances.
-
The filter type is compatible, but its parameters are incompatible in some way. Two examples are listed below.
- The required 0 dB gain value of the filter lies outside its allowable gain range.
- The relevant gain parameter of the filter is locked to a value other than 0 dB.
If the problem is limited to just the allowable range or value of a filter parameter, you may get a message like the one below.
When the filter is of an incompatible type (a high-pass filter in this case), you'll get a message similar to this one.
The presence of filters that cannot be forced to a frequency-independent gain of 0 dB, if allowed, would cause MSO to give unpredictable results when performing a standalone SPL optimization. Versions of MSO prior to 2.0.3 failed to detect this error. Versions 2.0.3 and above detect it to ensure that when you run a standalone SPL optimization, the results can be made to resemble the natural responses as closely as possible.
The error types shown above will be called "filter parameter errors" and "filter type errors" respectively. These errors are categorized in such a way in order to distinguish the different techniques needed to fix them.
Fixing Filter Parameter Errors
Filter parameter errors are the easiest to fix. If the relevant filter gain parameter is not locked, ensure that its allowable gain limits (such as the allowable boost/cut range of a PEQ) include the value of 0 dB. If the parameter is locked, it must either be unlocked and its range set to include 0 dB, or locked to a value of 0 dB.
A Gain Block Locked to a Gain Other Than 0 dB Is a Filter Type Error
If the gain parameter of a gain block is unlocked and its allowable range includes 0 dB, MSO will force it to 0 dB before performing a standalone SPL optimization and no error will be generated. But if the purpose of the gain block is to alter the relative sub levels to compensate for the different SPL capabilities of dissimilar subs, its gain parameter would need to be locked to the required value. This required value is almost never 0 dB. With such a locked gain block, MSO would generate an error when you attempt to perform a standalone SPL optimization. This means that when performing an SPL optimization in MSO, you can't use a gain block for the purpose of compensating for the different SPL capabilities of dissimilar subs. If the gain block's gain parameter must truly be locked to a nonzero value, then that is a filter type error, not a filter parameter error. Filter type errors require the removal of the filter from the MSO configuration, and the techniques described below must be used instead.
Fixing Filter Type Errors
Filter type errors most often arise in these two contexts.
- You need to use a high-pass filter for a DIY vented-box subwoofer and implement that filter in the DSP device.
- You want to control the level of one or more subwoofers relative to the others. This might be necessary if e.g. you use dissimilar subs and need to control the relative sub gains using the DSP.
If you put such filters into any configuration of your project and try to perform a standalone SPL optimization on that configuration, you'll get an error like the one shown above.
Eliminating filter type errors unfortunately requires that new measurements be taken. The filters causing the filter type errors are removed from the MSO configuration and instead entered into the DSP before taking measurements. Since the offending filters have been removed from MSO, no errors are generated when running an SPL optimization.
Making Exceptions to the Rule of Measuring With the DSP Completely Cleared Out
Under normal situations, the most common recommendation is to ensure that the DSP is completely cleared out before performing any measurements. Fixing the filter errors described above requires making an exception to that rule by entering the filters that interfere with SPL optimization into the DSP before making the required measurements.
Using High-Pass Filters With DIY Vented-Box Subs
Properly implementing a DIY vented-box subwoofer requires that a high-pass filter be used to prevent excessive cone displacement at frequencies below the sub's box tuning frequency. To avoid filter type errors with SPL optimization, all high-pass filters used for all subs must be in place when measuring them.
For DIY subs, you can determine the high-pass filter you need by using a program such as WinISD.
Using the miniDSP 2x4 HD, the easiest way to set up the device for measuring with high-pass filters in place is as follows.
- Clear out all gains, delays and filters from all channels of the device, making sure that no high-pass or low-pass filter is enabled in any crossover channel.
-
Use the crossover section to set up the high-pass filters for each vented-box sub using Basic Mode. For each channel that drives a vented-box sub, do the following:
- Enable that channel's crossover high-pass filter and make sure its low-pass filter is disabled.
-
Set the high-pass filter to the desired type. This will usually be "Butterworth 12 dB/Octave" or "Butterworth 24 dB/Octave".
- The "Butterworth 12 dB/Octave" filter type uses 1 biquad.
- The "Butterworth 24 dB/Octave" filter type requires 2 biquads.
- Set the high-pass filter's cutoff frequency. This value is usually close to the sub's box tuning frequency.
- If you plan to use the crossover biquads to increase the number of filters MSO can use, some extra steps will be necessary when it comes time to export the configuration's biquad files. This is to prevent the high-pass filter information you just entered from being overwritten when importing the exported crossover biquad text file. To prepare for this situation, you'll need to record the high-pass filter information you just entered above so you can refer to it later. Instructions for this special biquad export procedure are in the next section.
Once the high-pass filters have been entered into the DSP device per the instructions above, check if any per-sub gain values need to be entered. If not, and assuming all other necessary system setup has been done, the system is ready for sub measurement.
Biquad Export When Using Manually-Entered HPFs
After you're finished with all MSO optimizations, you'll need to export your configuration's biquads for import into the DSP device. If you're using a miniDSP device and have chosen not to use the crossover biquads to increase the filter capacity, biquad export from MSO and import into the miniDSP can proceed as normal. Biquad files for the input channel and output channel will be generated, and you will import them into the miniDSP in the normal way.
However, if you have chosen to use the crossover biquads to enable a higher filter capacity, and you have manually entered high-pass filters into the crossover per the instructions above, an extra step is necessary before exporting the biquads. That is because the biquad files exported from MSO will contain text files for import into the miniDSP crossover. But since the miniDSP crossover contains the high-pass filters you manually entered and the MSO configuration omits them, then without using some special technique to preserve the manually-entered high-pass filters, they will be lost when you import the crossover biquad text file.
To prevent this, you must perform the following steps before exporting the biquad files from MSO:
- Clone the MSO configuration whose biquads you wish to export.
- Give the clone a special name to indicate that it's intended for biquad export only and not for optimization.
-
Manually add high-pass filters to the cloned configuration for the sub channels that use them. These high-pass filters should be identical to the ones you entered manually in the earlier steps.
- Same alignment (e.g. Butterworth)
- Same slope (e.g. 12 dB/oct, 24 dB/oct)
- Same cutoff frequency
- Export the biquads of the cloned configuration in the usual way.
-
Never use the clone for any optimization.
- The clone has high-pass filters for the subs, but the effect of the high-pass filters is already taken into account in the measurements.
- This means the high-pass filters for the subs would be double-counted if any optimization were to be performed on the clone.
- Any possibility of double-counting the high-pass filters will be eliminated by the export/import operation, as the high-pass filters you entered manually will be overwritten, then replaced by the ones you added to the clone.
- This complication only arises when you need to use the crossover biquads to increase the miniDSP device's filter capacity.
Multi-Stage Optimization Has Less Strict Filter Requirements
When checking filters for compatibility, the standalone SPL optimization checks both input- and output-channel filters. Multi-stage optimization checks only the output-channel filters. This means you can use certain types of input-channel filters in a multi-stage optimization that are not legal for standalone SPL optimization. Input-channel filters do not affect the SPL penalty in any way, but the presence of input-channel filters that aren't legal for standalone SPL optimization would prevent the final response from matching the natural response in a standalone SPL optimization if they were allowed. This is why the standalone SPL optimization forbids them.
This relaxed filter requirement for multi-stage optimization means that performing the following steps can be done without any error message.
- Perform a standalone SPL optimization.
- Clone the configuration.
- Add some shared sub filters that are not legal for standalone SPL optimization to the clone.
- Perform a multi-stage optimization.
Although it's possible to use this procedure without error, the practical need for it may be rare. One possible use for this procedure might be if all your subs are of the vented-box type and they all require the exact same high-pass filter. You could perform the standalone SPL optimization without any high-pass filter on any sub, clone the configuration, add a shared sub high-pass filter, then run a multi-stage optimization on the clone.
There are also some cases for which the procedure above might appear to be necessary, but is actually not. For instance, if your multi-stage optimization has a target curve requiring an LF shelving filter, as long as the allowable range of that filter's boost includes 0 dB, it will be legal to use in the more strict standalone SPL optimization.
Setting Sub Gains Before Measuring
Setting the subwoofer gains can involve objective considerations such as the sub's SPL capability, as well as subjective ones such as the SPL of subs close to the listener being perceived as excessive despite being matched to the other subs.
The SPL optimization process of MSO tries to get the DSP channel gains to match each other, thereby ensuring the relative sub gains you set before measuring are preserved as closely as possible after the optimization is complete. This means that if you set the relative sub gains with care before measuring them, you'll be able to achieve, within reason, the objective and subjective goals that depend on these relative levels. That is the topic of the next section.