I made a free easy to use (Open source) advanced room correction software that leverages REW's API

xPoiler

Member
Thread Starter
Joined
Mar 25, 2023
Posts
3
Hi guys! I got tired of generating filters with trace arithmetic in REW by hand, it can be quite the time-consuming process if you don't simply stop at eq'ing magnitude with simple iir filters. Room EQ Wizard is an exceptionally powerful tool, that if used to it's fullest potential, can give results that rival 500 dollars software, all for free, thankfully rew's api makes automating most of these workflows straightforward.

I decided to start a python based project that would allow me to just take measurements in rew and have a script automatically do all the arithmetic and operations for me to:

-Get spatially averaged measurements of each speaker across multiple seating positions cross correlation aligned with the central position (mlp) (up to 8 channels and 9 positions)

-Eq magnitude of tops in the modal region precisely (no fdw) and gently tone balance above the schroeder frequency by separating the direct sound from the room reflections using frequency dependent windowing.

-Magnitude EQ a subwoofer

-Optionally apply crossovers between tops and sub, either linear or minimum phase with different types and slopes if the user wants to

-Correct phase of tops by inverting excess phase in a way that will not result in audible pre-ringing artifacts (at the cost of some ms of delay)

-Correct group delay of the subwoofer with an algorithm that checks for pre and post ringing in the filter's impulse response and iteratively generates the filter until artifacts are inaudible (below a % threshold), while maximizing group delay correction

-Create an automatic virtual bass array (vba) filter to actively fight the primary room modes (sub needed for this)

-Volume match speakers

-Auto Time-Align speakers

-Auto Time align subwoofer to mains aiming for flattest system group delay

-Follow custom target curves

-Generate 32768, 65536 or 131072 taps filters in wav format for convolution in your favourite software.

The script by default is designed to automate all of the processes (highly recommend default settings!), but most of the parameters in each of the steps above is highly customizable to preference.

Today i decided to make it public but do note that it is a WIP and some interactions between the math in edge cases, e.g non-typical configurations, is still untested for.

The app relies on rew to be open and it's api server to be accessible. so before you start the app be sure to open rew and go to preferences - api and start the api server on the default port 4735, then open the app running "Run XPDRC.bat", you can then follow the setup wizard's instructions to take measurements of your speakers and have the program process them. Alternatively, if you already have measurements you made before and don't want to take them again, open the measurements.mdat file in rew and you can input the ids of the tops' measurements in the "main ids" section and of your subwoofer in the dedicated section.

I would love for you guys to check it out and give me your honest feedback, this is a passion project for me that i made to automate my workflow, it will always remain free to download and thinker with. I am completely self-taught from scratch and i do this to learn more than anything else.

Check it out on github at https://github.com/xPoiler/XPDRC

Do note that the software is meant for up to x.1 configurations, multiple subs are untested for, you might make it work if you match them beforehand manually but it's not intended.
 
Last edited by a moderator:
Hey @xPoiler, I would like to try your method and I use a MacBook Pro... I don't know how to run the "Run XPDRC.bat" part on MacOS... Could I have missed the part where this is a Windoz only thing?

BTY it seems like a nice bit of work you have here...

Cordially,
-DD-
 
Hey @xPoiler, I would like to try your method and I use a MacBook Pro... I don't know how to run the "Run XPDRC.bat" part on MacOS... Could I have missed the part where this is a Windoz only thing?

BTY it seems like a nice bit of work you have here...

Cordially,
-DD-
Hey! Yeah the bat file is a shortcut for windows users but assuming you have python 3.11 or newer installed you can run the script on mac and linux too, open a terminal in the folder of the app and run the command:

pip install -r requirements.txt

This will install the necessary dependencies to make the app work, so you only have to do this once.

then you can run the script using the command:

Python app.py

The terminal window has then to stay open as it will keep the server online, the web interface should pop up on its own. If the interface for some reason doesn't show up automatically on mac, you can open safari or any other browser while the script is running and go to page 127.0.0.1:5000

Hope this helps!
 
Last edited:
Yep, that gets me to your GUI browser window... I'll give it a go tomorrow and see how it compares with some other DRC FIR filters I have... BTY I use the Hang Loose Convolver as a plugin to Audirvana... You can see my kit in my "more" area...

Thank you for your contribution to the audio community!!!

Cordially,
-DD-
 
Thank you for trying out! Before generating the filters for the first time be sure to go to REW's analysis tab and change "For imports set t=0 at impulse peak" to "For imports set t=0 at first sample", otherwise time alignments won't work as rew would chop off all the delays the script included in the filters, other than that you're good to go!
 
And just like that I have more FIR filters to listen to... :dizzy: Nice bit of work there @xPoiler !!! :T

Again, thank you for your contribution to the audio community!!!

Cordially,
-DD-
 
Last edited:
Back
Top