This app note shows you how to use the DDRC-88BM plugin with the powerful Multi-Sub Optimizer (MSO) freeware. Multi-sub optimization should be done before performing your Dirac Live calibration or performing any bass management in the plugin.

Please note that MSO is third-party software. miniDSP is not able to directly provide support for this software. For questions or issues specifically related to MSO, please refer to the AVS Forum MSO discussion thread.

Overview of multiple subwoofers [Top]

The main reason for using multiple subwoofers is to improve evenness of bass response across the whole listening area. While Dirac Live will optimize the response to be the best it can across the listening area, it cannot correct for spatial variation. For example, if the level of 40 Hz in one seat is 10 dB different to the level in the next seat, the difference between the two seats will always be 10 dB, no matter how much EQ is applied.

In this app note we will use Multi-Sub Optimizer (MSO) to minimize the spatial variation across the listening area. The overall shape of the frequency response will then be taken care by the user-defined target curve in your subsequent Dirac Live calibration.

What you will need [Top]

  • A miniDSP DDRC-88A with DDRC-88BM plugin (add it as an option when purchasing the DDRC-88A).

  • Room EQ Wizard (REW). This freeware acoustic measurement program is used to take the measurements for use in multi-sub optimization. You will use your existing UMIK-1 (supplied by default with the DDRC-88A) microphone with it. REW runs on Windows, Mac and Linux.

  • Multi-Sub Optimizer (MSO). This freeware program is used to optimize the measurements taken with REW. MSO runs on Windows only.

Please note that while the method described here delivers excellent results, it is quite involved. You may prefer to start with a simpler multi-sub method, as described in the related app note Using multiple subwoofers with the miniDSP DDRC-88A.

The example system [Top]

The diagram below illustrates a multi-sub system for a "5.1" configuration. Since two output channels of the DDRC-88A are normally unused in a 5.1 system, they can be used for subwoofers. The subwoofers can be either self-powered or driven from external amplifiers (not shown on the diagram).

Multi-sub system with miniDSP DDRC-88A/BM

A 5.1 system with three subwoofers

In other systems, more (or less) output channels may be available. For example, if using two DDRC-88A units for an Atmos system, four or six channels may be available.

If there are not enough output channels to control each sub, you can add an external miniDSP 2x4 (HD/Balanced) unit. See Appendix A. Notes on using an external 2x4 for the subs for full details.

1. Choose subwoofer locations [Top]

There are no hard and fast rules about where to place subs when doing a multi-sub system. In the app note Using multiple subwoofers with the miniDSP DDRC-88A, two distinct ways of choosing subwoofer locations were outlined. Here are two examples:

Sample multi-sub layouts

2. Set up signal routing [Top]

Set up the Mixer tab of the DDRC-88BM plugin to route the signal produced by Dirac Live to output channels 3, 7 and 8. The channels can be renamed as well – SUB 1, SUB 2, SUB 3:

Mixer tab for multiple subwoofer control

Note that a single Dirac Live channel is used for all subwoofers. This is so that Dirac Live optimizes for the combined response of all subwoofer channels. (If separate Dirac Live channels were used, each one alone would be optimized but the combined response of all three would not.)

3. Take your measurements [Top]

On the Analysis tab of REW Preferences, set it to use an acoustic timing reference:

Multi-sub - set REW to use acoustic timing reference

When performing these measurements, it is simplest to connect the audio from the computer as follows:

  • Left audio channel to input channel 1 of the DDRC-88A. This is used to drive the left front speaker, which is used as the acoustic timing reference.
  • Right audio channel to input channel 3 of the DDRC-88A. This is used to drive the subwoofer/s.

Multi-sub measurement setup

Place the UMIK-1 in the middle of the listening area at ear height. The orientation (vertical or horizontal) doesn't really matter for these measurements. You can use either of the downloaded calibration files (0 or 90 degrees). In the DDRC-88BM plugin, check that channels 3, 7, and 8 are not muted.

  1. Click on the Measure button. Select Right as the measurement output and Left as the timing reference:

    Multi-sub measurement output channels

  2. Click Check Levels and then Start Measuring. When the measurement completes, rename it "ALL Pos 1".

  3. In the DDRC-88BM plugin, go to the Outputs tab and mute SUB 2 and SUB 3. (You can also turn off the cross-points in the Routing or Mixer matrix.) Run another measurement and rename it "Sub 1 Pos 1."

  4. Mute SUB 1 and unmute SUB 2. Run another measurement and rename it "Sub 2 Pos 1."

  5. Mute SUB 2 and unmute SUB 3. Run another measurement and rename it "Sub 3 Pos 1."

Move the microphone to another position. You should also change its height from the floor. Repeat steps 1 to 5 above but this time name the measurements "ALL Pos 2", "Sub 1 Pos 2," "Sub 2 Pos 2," and "Sub 3 Pos 2." Repeat for the remaining positions.

Generally, at least as many measurement positions as subs are required. (3 positions for 3 subs, 4 positions for 4 subs, etc.) However, you can do more. The goal is to "sample" the response of the subs around the listening area. Too many measurements will however make for a lot of work and slow down the optimization. In our example run, we are using five measurement positions.

Click "Save All" and save your measurement as a project.

4. Export measurements [Top]

In REW, drop down the File menu and select Export and then "All measurements as text.".

Exporting REW measurements for MSO

Choose a new/empty folder and click Open.

Create a graph of your baseline measurement to compare with your later results. On the Overlays window, turn off all measurements except for the "ALL" measurements, then click the camera icon to save an image file. Here is ours:

Multi-sub measurements at five listening positions, before optimization

We seem to have been fairly lucky with our initial placement, as the response over the listening area is very similar up to 55 Hz. Above that, however, there is a quite a large difference in the plots. All positions also tend to have a null just above 100 Hz.

5. Configure MSO [Top]

Open Multi-Sub Optimizer (MSO). Drop down the Tools menu and select Application Options, then click on Hardware. For the DDRC-88BM, set the options as shown here:

MSO options for miniDSP

6. Load measurements and create a configuration [Top]

You will now need to load your measurements into MSO and set up the configuration. This is essentially the same procedure as the MSO tutorial. In brief, you will need to take the following steps:

  1. On the Data View tab, right-click on the Subs node and select "Import Sub Measurements...". Change the file type selector to '*.txt' and select the measurements of the individual subs (that is, "Sub 1 Pos 1" and so on). You should not import the "ALL" measurements. Here, for example, are the SUB 1 measurements imported (you will need to import all three subs.)

    MSO imported measurements for Sub 1

  2. Switch to the Config View tab. If there is a config there already, right-click on it and select "Delete Configuration." Drop down the Config menu and select "Add New Sub-Only Configuration".

    MSO new config for miniDSP

  3. Right-click on Subwoofer Channels and select "Add Filter Channel". Do this once for each sub (i.e. for three subwoofers, create three filter channels).

  4. Under Sub Channel 1, right-click on "Filters" and select "Add Gain Block". Do the same for "Add Delay Block," then three times for "Add Parametric EQ".

  5. Right-click on "Measurement Associations" and select "Associate Measurements...". In the dialog that pops up, select all measurements for SUB 1 and click OK. Here is the result of steps 3–5:

    MSO config for Sub 1

  6. Repeat steps 4 and 5 for Sub Channel 2 and Sub Channel 3. (You can make this faster by copying and pasting the filters with Ctrl-C and Ctrl-V.) On the last channel, you won't be able to add a delay – this is fine.

  7. Under Optimization Parameters, right-click on "Measurement Groups" and select "Add Measurement Group." In the dialog that pops up, select all measurements for Pos 1. Here's how it looks:

    MSO measurement group 1

    Note the difference to step 5: in step 5, you chose all positions for a single sub, whereas in this step, you choose all subs for a single position.

  8. Repeat step 7 for Pos 2, Pos 3, and so on.

  9. Switch back to the Data View. Right-click on Graphs and select "New Graph..." Under Data at the left, click on Measurement Groups and select all 5 groups:

    MSO new graph for miniDSP

    Click OK. The summed graph of all five measurement positions should appear:

    MSO plot of sub positions before optimization

    If this graph is very similar to your baseline, you have imported and set up your measurements correctly! (You may need to adjust the graph axes.)

  10. Create another graph, but this time select "Filter Channels" and add all three channels to the graph. This graph will show the EQ that is applied to each sub.

7. Set optimization parameters and run [Top]

Drop down the Tools menu and select "Optimization Parameters."

  1. Under Method, select the options as shown here. The Reference Level should be set to the "floor" of the measurements. (The Parametric EQs are by default limited to not boost, only cut. You can experiment with adding boost later on.)

    MSO optimization method

  2. Under Criteria, uncheck Auto and set the frequency range to a range like 20 to 120 Hz. Set the optimization to run for a minute or two (later on, you should increase this).

    MSO optimization criteria

  3. Under Group Weights, leave all groups set to 1.0. This is the best option when selecting for minimum variation.

    MSO optimization weights

Click on the Start Optimization button. Let the optimization run until it completes.

MSO start optimization

8. Refine optimization [Top]

You can now refine the results obtained so far. For example:

  • Add a Polarity Inversion block to one or more subwoofers (but not all).
  • Add a LF Shelf filter.
  • Add an all pass filter.
  • Add a HPF to subwoofers with limited low-frequency output.

You can also change the properties of individual filter blocks. For example, you could change the maximum gain of some parametric EQ filters. Eventually, you should run the optimizer for a much longer period of time – for example, 30 minutes.

Here is our final result for all 5 measurement positions:

MSO plot of sub positions after optimization

Here are the filter responses of the three sub channels:

MSO plot of filter responses after optimization

9. Export filters [Top]

Once you are happy with your results, right-click on the Subwoofer Channels and select "Normalize Gains." Then select "Normalize Delays." (This ensure that all gains are zero or less, and that all delays are positive.)

Normalize delays and gains

Drop down the Config menu and select "Save Biquad text file...". Click on the line "Sub Channel 1" and then the Save button, and select a folder to store the file in.

Repeat the above for Sub Channels 2 and 3.

10. Import filters into the plugin [Top]

In the DDRC-88BM plugin, go to the Outputs tab and click on PEQ for the SUB 1 channel. Select Advanced mode, then IMPORT. Select the file you saved for SUB 1/Sub Channel 1, and the plugin will update to show the filter plot:

PEQ screen in miniDSP DDRC-88BM plugin

Check that the plot matches the expected response from your MSO filter response graph.

Repeat the above for the SUB 2 and SUB 3 channels.

11. Set gains and delays [Top]

  1. In MSO, if Sub Channel 1 has a Gain block:

    1. Read its value from the properties window.
    2. In the DDRC-88BM plugin, write that value into the gain entry field of the SUB 1 output channel.
  2. In MSO, if Sub Channel 1 has a Delay block:

    1. Read its value from the properties window.
    2. In the DDRC-88BM plugin, write that value into the delay entry field of the SUB 1 output channel.
  3. In MSO, if Sub Channel 1 has a Polarity Inversion block:

    1. In the DDRC-88BM plugin, click on the Invert button of the SUB 1 output channel (so that it says "Inverted").

Repeat steps 1–3 above for Subwoofer Channel 2 (SUB 2/output channel 7 in the DDRC-88BM plugin) and Sub Channel 3 (SUB 3/output channel 8 in the DDRC-88BM plugin).

Here is the result for our example:

DDRC-88BM output channels

12. Confirm your results [Top]

It is a good idea to confirm that your measurements reflect the results predicted by MSO. Re-run the measurements for all subs, with the microphone in each of the measurement positions. (There is no need to re-run the measurements of the individual subs.) If your results are not similar to the predicted results shown in MSO, you may have made a mistake in transferring the data from MSO to the DDRC-88BM plugin.

Here is the result from our example system. The variation above 55 Hz is much lower than before. The "hole" around the 100 Hz area is mostly gone. While there are some deep notches, these are very narrow and each appears in only one of the measurement positions.

Multi-sub measurements at five listening positions, after optimization

Wrapping up [Top]

Once you are satisfied with your multi-sub optimization, save your DDRC-88BM configuration to a file. Then proceed as follows:

  1. Run your Dirac Live calibration as described in the User Manual (pdf).

  2. Implement bass management (if desired). See the application note Bass management with the DDRC-88BM.

Then play music and listen to the results! You deserve it! Have fun, and let us know about your experiences in our forum.

As a closing statement, we'd like to thank Andy C (Andyc56) for his hard work on this amazing freeware. Multi-Sub optimizer is nothing short of providing amazing results. We hope that this app note will help you navigate his very powerful software and make sure to thank him online!

Appendix A. Notes on using an external 2x4 for the subs [Top]

If you do not have enough channels on the DDRC-88A to control each sub, you can add another miniDSP unit such as a:

A typical connection is shown in the diagram below:

Multi-sub system with miniDSP DDRC-88A/BM and miniDSP 2x4

A 7.1 system using a miniDSP 2x4 (HD/Balanced) to drive up to four subwoofers

In this case, the Mixer tab of the DDRC-88BM plugin can just route Dirac channel 3 to output channel 3. In addition, set the external 2x4 (HD/Balanced) to route from input channel 1 through to all four outputs. In the 2x4 Advanced plugin:

Routing for multiple subwoofers, 2x4

In the 2x4 HD1 plugin:

Routing for multiple subwoofers, 2x4 HD

When setting the Application Options screen, use these values:

PluginSample rateBiquad limit
2x4 Advanced 48 kHz 5
2x4 HD1 96 kHz 10

If using the 2x4 Advanced plugin, you will need to limit the value of the Delay blocks. Initially, set "Maximum value" to 7.2 and "Minimum value" to -7.2. If, after using "Normalize Delays" (Step 9. Export filters), any Delay block has a delay greater than 7.2, you will need to:

  1. Change the "Maximum value" to 3.6 and "Minimum value" to -3.6.

  2. Re-run the optimizer.

Related Products - DDRC-88A