• Welcome to ASR. There are many reviews of audio hardware and expert members to help answer your questions. Click here to have your audio equipment measured for free!

MSO multi-stage option - Reality check on usage

klettermann

Active Member
Forum Donor
Joined
Mar 2, 2022
Messages
204
Likes
137
Location
Coastal Connecticut
MSO continues to amaze me. My current challenge, apart from a zillion[^zillion.exp] configurations and just figuring out how to use it at all, entails how deep to go. AND, simply recognize what problems I'm trying to solve.

Specifically, it only now dawned on me that the Multi-stage optimization requires shared filters that end up being integrated into crossover filters for the respective sub channels. So, the optimization output consists of respective sub EQ biquads and XO biquads (the *_xo.txt fies). There's also another biquad " Config **.txt " file. I have no idea what that's for. Then, you use the *_xo.txt files for the sub LPFs.

Is this understanding correct? If so, then wouldn't it follow that those shared filters be designed such that they can work as the XO LPFs? Of course I wasn't doing that and ignored the *_xo.txt files and the results were obviously ridiculous. I'll go back and try to figure out the single Config*.txt biquad but if anybody comments that would be great. Hope this is clear? :oops: Thanks as always and cheetrs,
 
Specifically, it only now dawned on me that the Multi-stage optimization requires shared filters...

Yes. Specifically, there must be at least 4 PEQs in the MSO shared sub channel for multi-stage optimization to be enabled in the Optimization Options.

...that end up being integrated into crossover filters for the respective sub channels.

This may or may not be true. In the most common scenario of using a miniDSP 2x4 HD on the sub output of an AVR or pre-pro, the shared filters go into the input channel of the 2x4 HD. Crossover biquads are only used if you enable them in Application Options->Hardware, and the number of biquads needed is more than will fit in the input and output channels.

So, the optimization output consists of respective sub EQ biquads and XO biquads (the *_xo.txt fies). There's also another biquad " Config **.txt " file. I have no idea what that's for. Then, you use the *_xo.txt files for the sub LPFs.

The biquad file names come from the channel names, except for the input channel biquad text file, which is named based on the configuration. When you export the biquads, MSO shows an export status window describing the files. Here's an example.

Code:
Config: Alternative 4
A single input biquad file named "E:\Application Data\MSO\support\ASR\klettermann\Alternative 4-sub-input.txt" has been successfully created.
An output biquad file named "E:\Application Data\MSO\support\ASR\klettermann\Sub 1.txt" has been successfully created.
An output biquad file named "E:\Application Data\MSO\support\ASR\klettermann\Sub 2.txt" has been successfully created.
An output biquad file named "E:\Application Data\MSO\support\ASR\klettermann\Sub 3.txt" has been successfully created.
An output biquad file named "E:\Application Data\MSO\support\ASR\klettermann\Sub 4.txt" has been successfully created.

The first file is for the 2x4 HD input channel (named after the config), while the rest are for the output channel biquads (named after the corresponding channel). Note there are no crossover biquad files for this scenario.

Is this understanding correct? If so, then wouldn't it follow that those shared filters be designed such that they can work as the XO LPFs? Of course I wasn't doing that and ignored the *_xo.txt files and the results were obviously ridiculous. I'll go back and try to figure out the single Config*.txt biquad but if anybody comments that would be great. Hope this is clear? :oops: Thanks as always and cheetrs,

Before continuing with this, I should mention that MSO can be adapted to a large variety of scenarios. This makes support very hard if I don't know the applicable scenario. It means either giving a useless answer, or a detailed explanation of each of many scenarios, of which only one may apply to you. So I'd need to know more specifics of your usage to avoid the explanation getting out of hand.

What miniDSP device are you using?
Using an AVR plus miniDSP, or the miniDSP for everything?
Is your end goal to optimize integration of subs and mains (the hardest) or just optimize the subs (easier)?
Using room correction such as Dirac with it?
Two-channel? Multi-channel? and so on...
 
Last edited:
Before continuing with this, I should mention that MSO can be adapted to a large variety of scenarios. This makes support very hard if I don't know the applicable scenario. It means either giving a useless answer, or a detailed explanation of each of many scenarios, of which only one may apply to you. So I'd need to know more specifics of your usage to avoid the explanation getting out of hand.

What miniDSP device are you using?
Using an AVR plus miniDSP, or the miniDSP for everything?
Is your end goal to optimize integration of subs and mains (the hardest) or just optimize the subs (easier)?
Using room correction such as Dirac with it?
Two-channel? Multi-channel? and so on...
^^^EXACTLY, thanks! My bad, I should have been more specific. And, on the flip side, for beginners the open endedness makes it hard to ask the right questions. My experience with most of the tutorials has been that there's not much time paid to the use cases and associated methods. So, here's my scenario:
  • Room is W12.2 x H7.2x L22 ft shoebox but with a widthwise soffit and sheetrock-enclosed column off to one side. The soffit and column create acoustical asymmetries as you'd expect..
  • 2 channel stereo, 2 cheapish ported subs. There is an AVR but I'm not concerned with that.
  • Magnepan MGIIIa speakers about 4' out from front wall.
  • Subs are in respective front right and rear left corners. Not much choice about that.
  • DSP is MiniDSP SHD Studio, so various digital inputs and 4 outputs to play with. 2 of those are AES/EBU which feed 2 DACs. One DAC is for main speakers, other for subs.
  • Sources are mostly streaming and CDs.
  • Goals: Honestly, this is a challenge because as knowlege and experience grow so does what seems possible. IOW the goalposts keep moving :facepalm: . For starters I'd like to get the subs properly aligned, EQing the mains and putting them together. I've figured out how to use REW to do this pretty well - but I'm sure that MSO can do a better job with the subs. What I envision as an end point are four MiniDSP configurations, maybe 2 using Dirac and 2 using just REW tweaking. The listening area is a small couch. I'm not trying to cover a wide or deep listening area. It's just MLP 95% time and otherwise at most two (friendly) listeners.
Thanks much, that was very clarifying indeed! Cheers,
 
DSP is MiniDSP SHD Studio, so various digital inputs and 4 outputs to play with. 2 of those are AES/EBU which feed 2 DACs. One DAC is for main speakers, other for subs.

The above is the relevant bit of information for this discussion. The other stuff is relevant more for system consultation than MSO usage. I stick to MSO usage instructions rather than system consultation to keep from being overwhelmed.

One important detail that keeps coming up is that there is an incompatibility with the usage of Dirac with the SHD and MSO, because miniDSP has incorrectly implemented Dirac upstream of bass management. All proper Dirac implementations implement it after. I discussed the details of this in this post over at AVS.

Also, SPL maximization, which is a part of the multi-stage optimization, works only for sub-only optimization. Usage of subs+mains optimization has dwindled to almost nothing over the years, so almost no development effort has gone into it. That means if you want to do the SPL maximization, you'll need to run the optimization for just the subs first, then create a subs+mains configuration, copying the sub filters from the sub-only configuration to the newly-created subs+mains configuration. I can show you how to do that when you're ready.

The SHD has no input filters as the 2x4 HD does, so to get the right result when exporting biquads, you'll need to go into Tools->Application Options->Hardware and set "Input (shared) biquad limit" to zero. When you do this, the shared biquad file will no longer be present on export. Here's an example of such a setup with 4 subs, and with "Use miniDSP crossover biquads if output biquad limit exceeded" enabled.
Code:
Config: Alternative 4

No shared sub channel biquads exported.

A crossover biquad file named "E:\Application Data\MSO\support\ASR\klettermann\Sub 1_xo.txt" and an output biquad file named "E:\Application Data\MSO\support\ASR\klettermann\Sub 1.txt" have been successfully created.
A crossover biquad file named "E:\Application Data\MSO\support\ASR\klettermann\Sub 2_xo.txt" and an output biquad file named "E:\Application Data\MSO\support\ASR\klettermann\Sub 2.txt" have been successfully created.
A crossover biquad file named "E:\Application Data\MSO\support\ASR\klettermann\Sub 3_xo.txt" and an output biquad file named "E:\Application Data\MSO\support\ASR\klettermann\Sub 3.txt" have been successfully created.
A crossover biquad file named "E:\Application Data\MSO\support\ASR\klettermann\Sub 4_xo.txt" and an output biquad file named "E:\Application Data\MSO\support\ASR\klettermann\Sub 4.txt" have been successfully created.

Note there is no longer an input biquad file named after the configuration, just output and crossover biquad files, each named after their respective channel.

This means the number of per-channel PEQs (or all-pass filters) plus the number of shared PEQs must add up to no more than 18 (8 for the crossover biquads and 10 for the output biquads). You can use them in any combination that adds up to no more than 18. The shared PEQs are replicated in the crossover, and if there are more than 8 of them, they will spill over into the output biquads as well.

Oops, I forgot to consider above the need for a crossover LPF. An LR4 LPF takes up 2 biquads. You are therefore limited to a total of 14 biquads for shared PESs and output PEQs and APFs, because 2 biquads will be taken up by the LR4 LPF of the crossover.

So it's best to first do a sub-only optimization. When it gives satisfactory results, its correspondence to actual REW measurements of the subs acting together should be done. There is a FAQ with lots of information about what to do if the data doesn't match up.
 
The above is the relevant bit of information for this discussion. The other stuff is relevant more for system consultation than MSO usage. I stick to MSO usage instructions rather than system consultation to keep from being overwhelmed.
Sounds good.....
One important detail that keeps coming up is that there is an incompatibility with the usage of Dirac with the SHD and MSO, because miniDSP has incorrectly implemented Dirac upstream of bass management. All proper Dirac implementations implement it after. I discussed the details of this in this post over at AVS.
This is new to me. Thanks, I think it just saved me a lot of wasted time.
Also, SPL maximization, which is a part of the multi-stage optimization, works only for sub-only optimization. Usage of subs+mains optimization has dwindled to almost nothing over the years, so almost no development effort has gone into it. That means if you want to do the SPL maximization, you'll need to run the optimization for just the subs first, then create a subs+mains configuration, copying the sub filters from the sub-only configuration to the newly-created subs+mains configuration. I can show you how to do that when you're ready.
OK, let's see what the future holds. For the time being I'd be happy to get subs aligned and then a smooth transition to the mains. Maximizing SPL isn't a priority at this point, and probably won't be ever.
The SHD has no input filters as the 2x4 HD does, so to get the right result when exporting biquads, you'll need to go into Tools->Application Options->Hardware and set "Input (shared) biquad limit" to zero. When you do this, the shared biquad file will no longer be present on export. Here's an example of such a setup with 4 subs, and with "Use miniDSP crossover biquads if output biquad limit exceeded" enabled.

>>>snip<<<

Note there is no longer an input biquad file named after the configuration, just output and crossover biquad files, each named after their respective channel.

This means the number of per-channel PEQs (or all-pass filters) plus the number of shared PEQs must add up to no more than 18 (8 for the crossover biquads and 10 for the output biquads). You can use them in any combination that adds up to no more than 18. The shared PEQs are replicated in the crossover, and if there are more than 8 of them, they will spill over into the output biquads as well.

Oops, I forgot to consider above the need for a crossover LPF. An LR4 LPF takes up 2 biquads. You are therefore limited to a total of 14 biquads for shared PESs and output PEQs and APFs, because 2 biquads will be taken up by the LR4 LPF of the crossover.

So it's best to first do a sub-only optimization. When it gives satisfactory results, its correspondence to actual REW measurements of the subs acting together should be done. There is a FAQ with lots of information about what to do if the data doesn't match up..

This is YUUGGGE.. Who knew? No wonder I was confused. Adding to that confusion was MiniDSP's own process for MSO dual sub optimization, which seems to be for the 1.x.y.z version of MSO, not v2. Thanks greatly, this is invaluable. I'm retired and it's a rainy day, so perfect for reexamining what I've been doing. Again, many thanks and cheers,
 
Last edited:
This is YUUGGGE.. Who knew? No wonder I was confused. Adding to that confusion was MiniDSP's own process for MSO dual sub optimization, which seems to be for the 1.x.y.z version of MSO, not v2. Thanks greatly, this is invaluable. I'm retired and it's a rainy day, so perfect for reexamining what I've been doing. Again, many thanks and cheers,

Yes, that article was written before MSO v2 came out, and hasn't been updated for v2.

miniDSP seem to be recognizing that the lack of shared biquads in the signal path for the subs is undesirable. There's some discussion of the HTx model and new beta firmware that apparently adds them.

The other thing that hasn't been mentioned in this thread is HF roll-off. I was suspicious of that in your other thread, and it's worth briefly revisiting. Clearly the miniDSP isn't introducing any LPF when measuring with all the biquads cleared out, but sub manufacturers have a way of stealthily inserting LPFs into the path. What make and model of subs are you using?

Often such subs have two sets of inputs, one for two-channel use and the other for home theater. The HT inputs tend to be called "LFE" or similar. The two-channel inputs usually put an LPF into the path, for use as the crossover. Even though your setup is two-channel, you'll want to use the input meant for home theater, since the crossover will be implemented upstream in the miniDSP. Sometimes there is an LPF bypass switch that needs to be enabled also. Have a look at this section of the MSO docs for more info, and the docs for your sub amp settings.
 
Amazingly helpful, yet again! Thanks for taking the time with me on this. That said........

Yes, that article was written before MSO v2 came out, and hasn't been updated for v2.
...causing me a lot of confusion and waste from trying to work around without really knowing what I was doing.

miniDSP seem to be recognizing that the lack of shared biquads in the signal path for the subs is undesirable. There's some discussion of the HTx model and new beta firmware that apparently adds them.
Thanks, I'll try to absorb that next.
The other thing that hasn't been mentioned in this thread is HF roll-off. I was suspicious of that in your other thread, and it's worth briefly revisiting. Clearly the miniDSP isn't introducing any LPF when measuring with all the biquads cleared out, but sub manufacturers have a way of stealthily inserting LPFs into the path. What make and model of subs are you using?

Often such subs have two sets of inputs, one for two-channel use and the other for home theater.
The HT inputs tend to be called "LFE" or similar. The two-channel inputs usually put an LPF into the path, for use as the crossover. Even though your setup is two-channel, you'll want to use the input meant for home theater, since the crossover will be implemented upstream in the miniDSP. Sometimes there is an LPF bypass switch that needs to be enabled also. Have a look at this section of the MSO docs for more info, and the docs for your sub amp settings.
The subs are both Heco Aurora 30a's. Quite a bargain at only USD$229 each! So, whatever their shortcomings (if any) I'll live with them. Below is their native, unsmoothed response at MLP. Blue is in front right corner, Red is left rear corner. Blue is average. They just have L and R rca inputs. I've been feeding both using a splitter but they seem to sum them internally so I don't think this matters. Or maybe it does? Anyway, is this the HF rolloff you speak of? And if so does it merit some sort of special treatment or create some wierd problems?

FWIW, my general strategy has been to get a relatively flat response at about 77dB using cuts to flatten the hill and maybe a teeny bit of boost to bring it up ~22Hz. Then us the MiniDSP Studio itself to create XOs and align gains with the mains. The mains themselves aren't bad but have nasty and very audible peak at 75Hz. So, it's also necessary to either EQ or XO that away. EQing it away is pretty easy, leaving me with nicely set mains to integrate with the subs. But then, as experience and experimentation proceeded I got lost in phase, delay, impulse alignment, input vs output filters, tutorial version mismatches, etc etc etc.

Given all this I just deleted 90% of my saved work from the last 4 months. It was all terribly organized and named anyway. What remains are my MSO traces, so I'm going back to the drawing board with those. I'll also get around to revisiting Dirac. Thanks again Andy, much appreciated. Cheers,

1742921152842.png
 
The subs are both Heco Aurora 30a's. Quite a bargain at only USD$229 each! So, whatever their shortcomings (if any) I'll live with them.

I had a look at the manual for these, and they look like they have a non-defeatable crossover LPF. That solves the mystery of the HF roll-off. If you haven't done so already, you'll achieve best results with the LPF turned all the way up to 150 Hz.

That is an amazing price for those subs.
 
So, trying to take all this into account, I ended up with this:

1742948997729.png



Doesn't seem too bad, certainly an improvement. I was trying to just go flat at MLP just using 2nd order all pass filters and all the PEQing on the respective subs. [NB - these weren't the same scans as the previous traces, the SPL was about 10 or 15dB lower. So that difference isn't real.] I'll report back on the results shortly. Then it's a matter of getting subs aligned with mains I guess. As for sub LPF, I've always kept it at the max (150Hz). In the words of Ian Anderson, "nothing is easy." Thanks for the help and cheers,
 
The above is the relevant bit of information for this discussion. The other stuff is relevant more for system consultation than MSO usage. I stick to MSO usage instructions rather than system consultation to keep from being overwhelmed.



Also, SPL maximization, which is a part of the multi-stage optimization, works only for sub-only optimization. Usage of subs+mains optimization has dwindled to almost nothing over the years, so almost no development effort has gone into it. That means if you want to do the SPL maximization, you'll need to run the optimization for just the subs first, then create a subs+mains configuration, copying the sub filters from the sub-only configuration to the newly-created subs+mains configuration. I can show you how to do that when you're ready.


So it's best to first do a sub-only optimization. When it gives satisfactory results, its correspondence to actual REW measurements of the subs acting together should be done. There is a FAQ with lots of information about what to do if the data doesn't match up.
Hi
@andyc56 Thank you very much for MSO. It works great in integrating the 4 subs and my minidsp 2x4hd

My system is

MacAir (Streamer, PEQ through Soundsource, and minidsp host) --> RME ADI2 DAC FS -->
Preamp --> Amps --> Main speakers
--> Minidsp 2x4 hd --> 4 subs

I'm very pleased with how well the 4 subs are integrated.
I ran REW with the integrated subs and created the PEQ which I input into Soundsource.
Given that I've used all 4 outputs of the Minidsp 2x4hd for the 4 subs, how does MSO integrate the timing/delay of the main speakers with the subs?
 
Last edited:
Back
Top Bottom