Multi Sub Optimiser (MSO) Review


For preparation of building our new home cinema in our just completed house, I bought two SVS PB2000 subs, which were just within my budget at the time. Of course, I was well aware of the difficulty of integrating two subs with the rest of the system. While Audyssey does a decent job of this, I knew that I wanted more.

During my research, I came across a free tool called Multi-Sub Optimiser (MSO), which promised to do this integration automatically.

You use MSO by first taking measurements with Room EQ Wizard (REW), and then feeding those measurements into MSO with the required parameters. MSO will then calculate the exact delay, gain and PEQ filters that need to be used on each sub to achieve as close to ideal a response as possible.

MSO supports myriad of hardware equalisation platforms. However, since I had used a MiniDSP before, I decided to invest into another one: the DDRC-24, which can be switched between a DDRC-24 or an HD 2×4 using simply software. This allows flexibility to use Dirac Live on the inputs or a bank of 10 additional PEQ filters with all of them at higher sampling rates (96kHz as opposed to 48kHz.)

My Home Cinema Space

I have a smallish room: only 3.6m by 5m (around 12′ x 16.5′). Initially, we only had one-tier seating, but over time we introduced two tiers. The second tier is right against the back wall.

This setup is an absolute nightmare for sub equalisation. This is because of boundary gain: that is low-frequency sound-waves build up near walls and create pressure zones. (You can read more about this in The Room Treatment Guide if you are new to this and want an introduction into room acoustics.)

What the above results in is much higher bass levels in the back-row seats than the front-row seats over certain frequency ranges, which we’ll have a look at in a moment.

Taking Measurements with REW

I took the easy way out: I didn’t need integration with my main speakers, as Audyssey will do that. I just want Audyssey to see the two subs as a “perfect” one sub through the MiniDSP. So all I needed was integrate the two subs.

I said this is the easy way out as I find taking sub-only measurements easier then taking measurements for integrating subs and main speakers. The process for this is as follows:

The MiniDSP has a USB interface, which will show up as a sound output device, whether you’re using Windows or MacOS. Here is how I set up the MiniDSP:

  1. Plug Sub 1 into RCA out 1
  2. Plug Sub 2 into RCA out 2
  3. Plus the centre channel into RCA out 3. Since the centre channel is externally amplified from the AVR, I simply needed to connect the MiniDSP output to the centre channel input on my external amp using an RCA cable.

This allows us to measure each sub individually by disabling one sub at a time, while use the centre channel for a timing reference with only a USB cable connected to the MiniDSP and another USB cable connected to the microphone, which is the UMIK-1 in my case.

The reason we need a timing reference is so that MSO can figure out how far each sub is from each listening position we will measure. This is needed to be able to optimise the summed response of the subs at each seat / measured position.

MSO Setup

I wanted to talk a little bit about MSO setup. MSO has a wizard with which you can import the REW measurements and it will create the first simulation for you. However, by default, the maximum delay it allows is around 20ms.

Now I believe Andy says this as well: if your subs are up at the front like mine are, and are equidistant from the main listening position, allowing MSO to delay one sub compared to the other can mess up the time-domain response of the system. Things might look dandy on the frequency-domain graph but notes can persist longer than they should be.

I have to be perfectly honest: while this wasn’t very obvious with my PB2000s, considering their rather large group-delay, it was very obvious with my REL Predators, which are lightening fast to both stop and start. (You can read about my review of the REL Predator here.)

So in my case, I set the allowable delay between the two subs to a maximum of 0.5ms with a final calculated delay of 0.13ms. However, I could also lock the delay to 0 and lock the filter so MSO cannot change it. This might be preferable if your subs have extremely good time-domain performance. Although, there’s a fly in the ointment, which we will talk about under limitations.

MSO Simulations

You can create multiple simulations in MSO with different numbers and types of filters, different target settings, etc. This allows you to compare different scenarios to see which one would work and sound better.

I will talk you through my REL Predator scenarios. However, they are very similar to the ones I did for the PB2000s. The reason I want to do the REL ones is that I have the seating position chart for you to refer to so it’s easier to line up the measurements with.

I decided to take measurements in the following positions as below. Excuse the numbering, it is terrible. The listening positions are numbered 1, 3, 5, 6 and 9.

I actually took these measurements even when we had one row of seating. My thinking behind this was two-fold:

  1. We have high stools we could use even then when it was more of us. I wanted to know what was happening at the back of the theatre.
  2. I wanted to understand what happens in the pressure zones as I find that ringing in the room can affect the other seats EVEN IF those other seats look flat from a frequency response perspective.

I ran 3 main scenarios, with multiple simulations each:

  1. Optimise seat 1 to as flat as possible, while monitor the other seats
  2. Optimise the front couch (seats 1, 3 and 5) while monitor what’s happening in the other seats
  3. Optimise the whole listening space (positions 1, 3, 5, 6 and 9 while monitor the other measured areas)

I will show you the result of each scenario and talk about how it actually sounds.

Scenario 1. Main Listening Position Priority

For this scenario, I used the “Minimise Seat to Seat Variation” option and designated Seat 1 as the primary seat. When you do this, MSO will try to make the primary seat as flat as possible while trying to get the other seats to align to it as much as possible.

Optimised between 10Hz to 150Hz.

What I want you to pay attention to is that there are peaks in some of the other seats that are around 10dB above the reference line of 85dB which is the target I was aiming for here. This is the trade-off for having the front seat be flat.

After loading it into the MiniDSP, ran Audyssey, but disabled the Audyssey filters on the sub. I simply wanted Audyssey to time-align the sub channel with the rest of the speakers.

After playing my favourite movie scenes, I felt that this was the best sound I had heard in my theatre with a few caveats:

  1. You must sit in the primary seat
  2. You must ignore the plaster slightly rattling on the walls.

This gets me to the first limitation of such modelling: unless you have a room that is built like a bunker, having such pressure build up in the corners – which would be even higher than the peaks shown above, can hit the limitation of the building materials used.

Now after these tests, I did start screwing down the plaster in the corners in more places. However, I eventually hit the issue of the door still rattling which is still to be solved.

In a bunker-type room with concrete walls and a super-secure door, this would probably sound amazing. Again, as long as you sit it the primary seat.

The rest of the seats sounded worse: either too little energy or too much energy which could take away from the fun.

Scenario 2: Front 3 Seats

The second scenario I ran was to prioritise the front 3 seats. For this, I choose the option: “As flat as possible without additional PEQ”, which allows you to specify the weighting each seat receives. I assigned 1 (the maximum) to the front 3 seats and 0.2 (the minimum) for the rest. However, I did disable optimisation for all the other positions so this was not necessary, just my OCD.

The resulting graph is below. Optimised between 5Hz to 150Hz.

As you can see, the peaks in the other seats are now even higher: 15dB above the 85dB target line. The corner pressure in the room would be even worse than this, which I didn’t measure.

However, loading this scenario, I could feel and hear the room flexing during loud sequences. At lower volumes, the front 3 seats were indeed ultra-smooth. This is definitely an amazing reference setting when only 3 people are watching – and the issues with the plaster flexing in the front corners especially could be solved.

However, at louder volumes, there is some ringing in the back of the room / from corners that would need heavy treatment. This option is certainly NOT for the faint of heart.

What’s more, the back seats don’t provide a very pleasant experience.

Scenario 3: All Seats Equalised

Practice tells us that optimising such dissimilar seats should result in a worse sound for everyone. That is certainly the case if you simply ran this through Audyssey, measured all the seats and hoped for the best. In fact, I tried measuring the 5 seats using Audyssey MultEQ-X this way – review incoming – and it resulted in less than stellar results. Let’s see how MSO does.

The resulting graph is below. Optimised between 5Hz to 150Hz.

While objectively, the front seats don’t look nearly as good, subjectively, this scenario sounds the best and here is why:

  1. Take note of the peaks in the worst seats: they are now 8dB above the target line. However, in my narrower areas. Generally, they are much lower overall than the other scenarios.
  2. The sound across the theatre feels even. Not just as I walk around, but as I listen from any of the seats including the front 3: the weight of the sound seems to move in 3D space without calling attention to itself.
  3. The plaster doesn’t flax, smack or the room reverberate at louder volumes.
  4. The door doesn’t sound like it’s going to come off.
  5. Sitting in the back seats is a really great experience and I am happy to sit in the most bass-heavy seat as I like a bit more bass than most people.

Ok, so I think we’re onto a winner here… until we rebuild the room as a concrete bunker.


These results are MILES away from what we could have achieved manually or with Audyssey alone.

With Audyssey, the back seats still sounded boomy and difficult to listen to, even after MultEQ-X. With MSO, the back seats can receive really great sound.

We also have a few options to load into the MiniDSP: scenario 2 can serve as our “reference” setting, while scenario 3 can be loaded when guests are around and provide simply excellent sound across the whole listening space. It is indeed my favourite – at least until we do a rebuild of the room.


So I do need to mention a limitation of this approach. MSO was developed based on research that takes frequency -response, as opposed to time-domain response as the priority. However, applying PEQ so heavily will result in phase-shift and some group-delay to the resulting sound.

How audible this is can be debated. I can tell you this: I was not aware of it with my SVS subs, but I could definitely hear some of the smearing in the time-domain using the RELs. Did it sound bad? Absolutely not. I feel like using MSO will get you that real THX-optimised theatre feel much more so than not using it. You gain some, you lose some.

However, am I giving up some of the – frankly kick-ass, wipe the floor with the competition – time-domain performance of the REL Predators? Yes, I am and it is somewhat audible as less precise impulse response. However, REL Predators + MSO is still miles ahead in terms of precision of my previous PB2000s – MSO or no MSO.

Is there a possibility of balancing these two dimensions? Yes, MSO gives you the tools to limit the Q of the PEQ filters, which is the culprit here. I hope that Andy C develops the tool further to allow automatic balancing of these two domains: frequency and time / phase, not just for the individual subs but also per frequency band, and monitor the time-domain performance in the resulting scenarios.

It could be that this is already possible. If you know how, please comment in the comment section below.


OMG, this tool is absolutely amazing, and Andy is a genius. That MSO is available for free is unbelievable.

Andy, if you are reading this, I cannot find a donate button on your website. Can you please make one available? If we all chipped in $5-10, Andy may have even more time to dedicate to this tool. It’s a win-win.

Honestly, do yourself a favour and grab this tool while it is free, because anything this awesome sure as hell shouldn’t be!

3 thoughts on “Multi Sub Optimiser (MSO) Review

Add yours

  1. If I want to use a 2x4HD to use MSO to setup 3 subs connected to a Denon x4800h, I understand how to connect the sub out from the receiver to the DSP and the 3 subs to the outputs of the 2x4HD, but how do I connect the center channel to the DSP? Like what cable from where? Sorry for my confusion!

    1. You would need an external amp for your centre channel (or whichever channel you are using as your timing reference). You simply connect the 4th output to that channel’s amp. No need to connect the AVR to the MiniDSP for taking measurements. Just use the USB in and use the routing to route L/R from your laptop to the correct channels (one sub – one timing reference speaker), measuring each sub at a time.

      For playback, you don’t need a timing reference of course so just connect and route as normal.

Leave a Reply

Up ↑