Freeware multi-subwoofer optimizer released by AVSForums member

Hi, I'm the author of MSO. Here's what I know regarding the comparison of MSO's algorithm with others such as the one by Geddes.

MSO was inspired by the Geddes video about multiple subs. I used to be a member of his now-closed forum, and when I asked him about his algorithm back then, he said there was no automatic optimization, and that the user had to manually adjust the filter parameters. The program would then show the predicted results as the user made adjustments. Also, his program did not make use of individual delays for each sub, as he said they were not necessary. I don't know whether either of these situations has changed since then.

MSO uses an automatic global optimization algorithm called JADE, which is a refinement of an approach called Differential Evolution. It can use individual delays per sub if the user chooses them, and a wide variety of filter types. It runs as long as the user allows it to, and as such might evaluate millions of combinations of filter parameters. I won't speculate as to how the results might compare to how Geddes does it, but MSO gives a good chance at quality results due to the sheer number of combinations evaluated.

The Harman algorithm needs a bit more explanation. According to their AES article, it proceeds in three phases:

1) Optimize the seat-to-seat variation in sub (-only) frequency response without regard to the flatness of said response.

2) Integrate the mains and subs by adjusting the relative delay between the mains and subs (all together), the analogous relative gains, and possibly some other parameters.

3) Flatten the response at the main listening position using global EQ.

I may have missed some details. For step 1 above, only one PEQ per sub is used, along with a per-sub delay and gain. Only discrete values of per-sub gain are allowed (0, -6 and -12 dB). The same is true for the per-sub delay (0, 5, 10 msec). The Q of the per-sub PEQ is allowed only 3 values (1, 4 and 16). Only two values for PEQ center-frequency attenuation are allowed (0 and -12 dB). The PEQ center frequency is set to the frequency at which the seat-to-seat variation in sub responses is worst. The optimization technique for step 1 is a brute-force algorithm, which evaluates all the allowable discrete values of all adjustable parameters.

MSO works differently. MSO does not directly act to minimize the seat-to-seat variation in response, but instead does so indirectly. It tries to make the response at each seating position as flat as possible. In the ideal case where all listening position responses were made perfectly flat, the seat-to-seat variation would be zero. This never happens of course, but in practice, the seat-to-seat variation has shown very good improvement with real data. See the tutorial documentation. The algorithm used by MSO places upper and lower limits on all filter parameters, and continuously adjusts them to achieve the best possible result. It does not constrain them to discrete values. Any number of filters can be used per sub, and since the whole job is done at once, adjustment of all the filter parameters could, in theory at least, be brought to bear on the indirect minimization of seat-to-seat response variation.

Global EQ could optionally be used to get the best possible response flatness at the main listening position, as MSO tries to optimize a weighted combination of response flatness errors at multiple listening positions, not just the main position.

/r/audiophile Thread Parent Link - andyc.diy-audio-engineering.org