Guenter Villnow
Guenter Villnow

This app note demonstrates how to use the miniDSP UMIK-X multichannel measurement microphone with Multi-Sub Optimizer (MSO). Because the UMIK-X measures multiple channels with a single sweep, there is no need to move the microphone to measure in multiple locations, greatly simplifying and speeding up complex measurement and optimization procedures.

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]

Multiple subwoofers are used to improve evenness of bass response across the listening area. While EQ such as REW auto-EQ or Dirac Live can smooth response at any given location, this will not correct for spatial variation. For example, with a single subwoofer, if the level at 40 Hz in one listening seat is 10 dB different to the level in the next, the difference between the two seats will be 10 dB regardless of how much EQ is applied. Well-applied use of multiple subwoofers reduces spatial variation.

In order to reduce spatial variation with multiple subwoofers, we will need to measure in multiple locations around the listening area. The miniDSP UMIK-X multichannel microphone makes this easy. We will use it together with Room EQ Wizard (REW) and its multichannel measurement upgrade (included with the UMIK-X) to take the measurements needed as input to Multi-Sub Optimizer (MSO).

Any miniDSP processor that supports Advanced Biquads can be used to implement the filters created by MSO. This app note will use the miniDSP 2x4 HD as an example, as it's a popular low-cost option in home theater multi-sub applications. A miniDSP Flex (without Dirac Live) is another good option. The Flex can be purchased with either single-ended (RCA) or balanced (TRS) connections.

Figure 1 illustrates a typical system configuration.

Typical multi-sub system
using the miniDSP 2x4 HD

Figure 1. Example multi-sub application with three subwoofers


  1. The diagram shows three subs, while the 2x4 HD has four outputs. This is because the fourth output is needed for the acoustic timing reference used to calculate time delays to each sub. If you need more than three subs, a simple workaround is to use a Y-connector from one of the outputs to two subwoofer inputs. Alternatively, use a miniDSP processor with more outputs.

  2. We recommend that you thoroughly familiarize yourself with measurements using REW and with using the miniDSP Device Console before starting this advanced application.

1. Choose subwoofer locations [Top]

There are no strict rules about where to place subs in a multi-sub system. The app note Tuning multiple subwoofers with miniDSP gives some suggestions. Here are two examples:

Sample multi-sub

2. Get connected for measurement [Top]

Set up the UMIK-X array as per the User Manual. If you haven't already, load the 4-channel firmware into the UMIK-X. While you can use 16-channel mode, this produces more measurements than needed for this application.

One of the UMA-4 microphone modules should be at the center of the listening area, while the other three should be spread over the listening area. For this app note, we used an area of 3 feet by 6 feet. Vary the height of the modules as well as the horizontal location. We had quite a large vertical difference of 4 feet as a test, but typically a vertical distance of 2 feet is enough. Note: the active microphone in 4-channel mode is number 2 – see the UMIK-X User Manual.

Figure 2 illustrates the connections for measurement. Connect the optical output of the UMIK-X USB-A2B to the optical input of the 2x4 HD. Connect output 4 of the 2x4 HD via power amplification to a regular speaker. This will be used for the acoustic timing reference. It doesn't matter where in the room the timing reference speaker is located.

Multi-sub measurement
setup for MSO with UMIK-X

Figure 2. Measurement setup with UMIK-X and 2x4 HD

Note: you could instead use a UMIK-1 or UMIK-2 measurement microphone. In that case, you will need to run your measurements one by one. We also recommend marking your measurement locations carefully in case you need to repeat any measurements.

3. Set up the 2x4 HD [Top]

Start the miniDSP Device Console and connect to the 2x4 HD. Then:

  1. Select the TOSLINK optical input.

  2. Set the routing matrix to route the left input channel to outputs 1, 2 and 3. These are the subwoofer outputs. Route the right channel to output 4 – this will be used for the acoustic timing reference.

    Routing for multiple subwoofers

  3. Set master volume to –20 dB. This is just a precaution – when you run the levels check in REW, you can increase this if needed.

4. Take your baseline measurement [Top]

Set REW up to take a multichannel measurement. For full details, see the UMIK-X User Manual. The Soundcard tab of REW Preferences should look like this:

REW Preferences for

On the Cal Files tab, check that you have loaded the UMIK-X cal file:

UMIK-X cal file

Click on the Measure button. Check that "Use acoustic timing reference" is selected – this is very important. Check also that "Multiple inputs" and "Generate individual measurements" are selected and that Output is set to L and Ref Output is set to R. Set the frequency range from 10 to 20,000 Hz:

Measurement settings for UMIK-X

Click on Check Levels. You may need to adjust the master volume in Device Console. Then click on Start. The result is the baseline measurement for all subs. Here is the baseline of our test system, shown as the combined measurement graph produced by REW:

Baseline measurement
from UMIK-X for MSO

Figure 3. Multi-sub baseline measurement (combined measurement)

It can also be viewed as four individual measurements on the Overlays screen:

individual measurements from UMIK-X for MSO

Figure 4. Multi-sub baseline measurement (individual measurements)

Save the baseline measurements to a file with the Save All button. These measurements are not used as input to MSO, only as a reference for comparison with the result after optimization. Now remove the baseline measurements from REW with the Remove All button.

5. Measure each sub [Top]

Since we have three subwoofers and four microphone channels, 12 measurements are needed for input to MSO. Fortunately, the UMIK-X makes this easy.

  1. Turn off subs 2 and 3 in the Routing matrix:

    Routing to measure sub 1

  2. Run a measurement sweep. You will get the individual measurements, as well as the combined measurement.

  3. Rename the individual measurements to "Sub1-1," "Sub1-2," "Sub1-3," and "Sub1-4." Rename the combined measurement to "Sub1-All."

    Naming measurements of sub

  4. Repeat the above steps for subs 2 and 3.

  5. Finally, click "Save All" and save your measurements to a file.

6. Export measurements from REW[Top]

Drop down the File menu and select Export and then "Export all measurements as text." Use the settings below, noting in particular the .frd extension and the use of Space as delimiter:

Export measurements for MSO

Choose a new/empty folder and click Open. Check the files in the selected folder – you should see files named "Sub1-1.frd", "Sub1-2.frd", and so on. You won't need the "-All" measurements, so delete those files now.

7. Configure MSO [Top]

Open Multi-Sub Optimizer (MSO). Drop down the Tools menu and select Application Options, then click on Hardware. For the 2x4 HD, set the options as shown below. If you are using a different miniDSP processor, you may need to change these settings. In particular, the sample rate should be set to the internal sample rate of the processor (check the relevant User Manual).

Hardware options for
miniDSP in MSO

8. Import measurements into MSO[Top]

Now import your measurements into MSO. This is essentially the same procedure as the MSO tutorial.

    1. On the Data View tab, right-click on the Subs node and select "Import Sub Measurements...". Select the files that you exported from REW. The result should be:

      Imported sub
measurements in MSO

    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". 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). It should look like this:

Sub filter channels in

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

  2. 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 and 4:

    Filters for sub channel 1
in MSO

  3. Repeat steps 3 and 4 for Sub Channel 2 and Sub Channel 3. You won't be able to add a delay block to Sub Channel 3.

  4. Under Optimization Parameters, right-click on "Measurement Groups" and select "Add Measurement Group." In the dialog that pops up, select the measurements for mic channel 1 and click OK. Here's the result:

    Measurement group 1 in

    Note the difference to step 4: in step 4, you chose all mic channels for a single sub, whereas in this step, you choose all subs measured with a single mic.

  5. Repeat step 6 to create measurement groups for mic channels 2, 3 and 4.

9. Create graphs [Top]

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 4 groups:

Create graph to display
responses in MSO

Click OK. The graphs for all four mic channels should appear as Graph 1:

Baseline response displayed
in MSO

Figure 5. Predicted response at four measurement locations after import into MSO

If this graph is the same as your baseline in REW (Figure 4), you have imported and set up your measurements correctly! (To adjust the graph axes, right-click on the graph and select "Graph Properties..." and then Axes.)

Create another graph, but this time select "Filter Channels" and add all three channels to the graph. This graph will appear as Graph 2. Initially it will be empty, but once you start the optimizer, it will show the filters for each sub.

10. Run the optimizer [Top]

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

  1. Under Method, set the options as shown here. The Reference Level should be set to the "floor" of the measurements. (This is because the Parametric EQs are by default limited to cut only.) We used 84 dB in our example.

    MSO optimization

    We have selected the option to minimize seat-to-seat variation. The final response can be tailored later using the input channel PEQ. However, in some cases selecting "As flat as possible without additional global EQ" can produce a better result. Feel free to try both ways.

    The main listening position should be set to the mic location at the center of the listening area. In our case, this is location 2.

  2. Under Criteria, uncheck Auto and set the frequency range to 20 to 200 Hz. Set the optimization to run for two minutes (later on, you will increase this).

    MSO optimization

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

MSO start optimization

11. Refine optimization [Top]

At this point, Graph 1 shows the predicted response at the four mic locations and Graph 2 shows the filters applied to each subwoofer. If you wish, you can make changes and try again. For example:

  • Add additional Parametric EQ blocks.
  • Add a highpass filter to subwoofers with limited low-frequency output.
  • Add a Polarity Inversion block to one subwoofer.
  • Add an allpass filter to one subwoofer.

You can also limit the range of parameters in the filter blocks by changing the minimum and maximum value settings, and exclude a parameter from optimization if you don't want MSO to change the value you have set.

If you make changes, re-run the optimizer for two minutes to see what result you get. Once you feel you have a good basic result, run the optimizer for a much longer period of time – say 30 minutes. In our test system, here is the final result:

response displayed in MSO

Figure 6. Predicted response after optimization with MSO

Here are the filter responses of the three sub channels:

Optimized filters in

Figure 7. Subwoofer channel filters generated by MSO

12. Export filters from MSO[Top]

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

Normalize delays and

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 save the file in. Then do the same for Sub Channels 2 and 3.

13. Import filters into the 2x4 HD[Top]

In Device Console, open the PEQ for output channel 1. Select Advanced mode, then IMPORT, and select the file you exported from MSO for Sub Channel 1. Check that the displayed plot matches MSO's Graph 2.

PEQ display after importing
filters from MSO

Repeat the above for output channels 2 and 3.

14. 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 Device Console, write that value into the gain entry field of output channel 1.
  2. In MSO, if Sub Channel 1 has a Delay block:

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

    1. In Device Console, click on the Invert button of output channel 1 (so that it says "Inverted").

Repeat steps 1 to 3 above for Subwoofer Channels 2 and 3. To illustrate, here is the Outputs tab in our test system highlighting where we changed gain and delay values:

2x4 HD output

15. Confirm your result [Top]

Now run a single measurement sweep with all three subs enabled. The resulting set of measurements should be very similar to MSO's prediction (Figure 6). If it is not, you have made a mistake in transferring the data from MSO to the 2x4 HD and will need to double-check your work. In particular, make sure that you have transferred the gain and delay values correctly.

Here is the measured result from our example system:

response measured by REW

Figure 8. Actual multi-sub measurement after optimization with MSO

Apart from being flatter, the measurement confirms that we have much lower spatial variation than the baseline measurement in Figure 3.

You may notice that the overall levels are lower than in the baseline. When we used the Normalize Gain function in MSO, MSO reduced the gain on all subs so that the maximum gain is 0 dB. At the same time, it created a gain block on the shared filter channel to correct for this, which we have so far ignored. If you find that the subwoofer level is too low, compensate by increasing the gain in the input channel. (Note that, as always, heavy use of EQ will reduce system headroom. Monitor your system carefully while playing music or movies to ensure that you are not clipping or overdriving.)

Wrapping up [Top]

Don't forget to save your 2x4 HD configuration to a file. You will now need to integrate the subwoofer system with the main speakers in the usual manner, and optionally implement a target curve to tailor the system's overall bass response. Let us know about your experiences in our forum!

Related Products - Acoustic measurement