• 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!

Multiple subwoofer optimizer (GPU accelerated)

OCA

Major Contributor
Joined
Feb 2, 2020
Messages
1,088
Likes
1,043
Location
Germany
I've written a GPU-accelerated optimizer for aligning multiple subwoofers (up to 4 at a time) using brute-force time delay and polarity (inversion) adjustments. It can process measurement data exported from REW in .txt format and delivers optimal results with maximum speed. Windows PCs with NVIDIA graphics cards only and is available as both a compiled executable (_win64_.exe) and CUDA source code on GitHub

 
Last edited:
Given the MIT license, will the source be released too? As a linux user with AMD graphics I'd be interested to know how portable it might be.
 
Given the MIT license, will the source be released too? As a linux user with AMD graphics I'd be interested to know how portable it might be.
Full C++ code is already there and is free to use but it's written with Cuda.
 
Last edited:
Thanks, sounds interesting. I gave it a try but I get a "no valid data" message no matter how I format my REW txt files?
 
Thanks, sounds interesting. I gave it a try but I get a "no valid data" message no matter how I format my REW txt files?
1749221790619.png

1749221687397.png


It will accept tab or comma separated values...
 
Sample output with 3 subs and over 4 billion iterations:

1749222363645.png


4 subs 131 billion iterations, 48 seconds compute time:

1749222534299.png


The calculated delay/inversion results are absolute, but only relative differences matter for alignment.
 
Last edited:
I've written a brute force multiple subwoofer time delay and inversion optimizer that works on the GPU and can use REW '.txt' measurement exports ('_win64_RTX3000+seriesGPU.exe' and Cuda source code on Github). Results are optimal and as fast as it can be. Requires Windows PC and Nvdia graphics card.

Thank you for this. Since in-room LF acoustic measurements are challenging how would you recommend taking them (Using REW) for best results?
 
Thank you for this. Since in-room LF acoustic measurements are challenging how would you recommend taking them (Using REW) for best results?
Loud and long (i.e. 256k or longer) full range measurements at MLP with acoustic timing reference should suffice for valid results but you can average them over a larger area, too if you so need.
 
Now, that will be an exciting comparison to the results of mso.

Does your algorithm aims for frequency response or also decay time?
 
Now, that will be an exciting comparison to the results of mso.

Does your algorithm aims for frequency response or also decay time?
It maximizes total output using a linear magnitude sum (weighted to approximate human hearing sensitivity if exports are in ppo scale). The algorithm is intentionally simple trading elegance for raw speed but it won't miss the optimal solution within a given delay range.
 
Last edited:
The calculated delay/inversion results are absolute, but only relative differences matter for alignment.
Loud and long (i.e. 256k or longer) full range measurements at MLP with acoustic timing reference should suffice for valid results but you can average them over a larger area, too if you so need.
Sorry for being dense.

Are the calculated results the delay relative to the timing reference? If so how do you time the subs relative to the mains? Or am I taking full range measurements of the Sub and mains together and somehow you are calculating the ideal delay between the mains and sub from this measurement? Thank you.
 
Sorry for being dense.

Are the calculated results the delay relative to the timing reference? If so how do you time the subs relative to the mains? Or am I taking full range measurements of the Sub and mains together and somehow you are calculating the ideal delay between the mains and sub from this measurement? Thank you.
This one only optimizes multiple subs between each other calculating optimal relative time delays and polarity inversions, in other words the best single sub that can be made with all given individual sub responses.
 
Last edited:
As always, your work is amazing - just to help me understand, how is the best one chosen amongst the billions?
 
  • Like
Reactions: OCA
As always, your work is amazing - just to help me understand, how is the best one chosen amongst the billions?
post #10 above
 
This looks really interesting, I will have to try it this weekend. I have 2 subs and a stalwart GTX 1080 TI ready to go...
 
Good work @OCA! What is the output? Biquads?
Looks like it just does delay and polarity.

@OCA I am sure you have covered this elsewhere and at other times, but any tips on getting the measurements right for this tool, and/or implementing the recommendations if we're just using a single stereo output for everything via EQAPO?

I'm thinking maybe I can try and filter the output and do a straight delay, but maybe allpass could work better somehow?
 
Looks like it just does delay and polarity.

@OCA I am sure you have covered this elsewhere and at other times, but any tips on getting the measurements right for this tool, and/or implementing the recommendations if we're just using a single stereo output for everything via EQAPO?

I'm thinking maybe I can try and filter the output and do a straight delay, but maybe allpass could work better somehow?
pls see #8 above

I don't see much benefit using allpass filters between identical subs while it could be of some use with a mixture of sealed and ported subs. I have versions that use allpass, front speaker responses and even crossovers but the speed slows down exponentially.
 
Is this also the backend for Acoustica or some new version of A1 to come? Btw stellar work on Acoustica, I could finally replace my "old" A1 Neuron 3.1 optimization with the latest Acoustica optimization and it's noticibly superior! Thank you!
 
  • Like
Reactions: OCA
Is this also the backend for Acoustica or some new version of A1 to come? Btw stellar work on Acoustica, I could finally replace my "old" A1 Neuron 3.1 optimization with the latest Acoustica optimization and it's noticibly superior! Thank you!
Thanks, Acoustica does something similar for up to 2 subs but above that it uses certain short-cuts as this method could take weeks to complete with javascript and CPU only code.
 
Last edited:
Back
Top Bottom