Python Open Room Correction (PORC)

If it was possible to make the sample rate selection work, that would be amazing. Maybe it's user error, but in my experience the sample rate selected in the GUI doesn't propagate to the generated .bat file. If it worked at 96ksps I could use it to make filters for my miniDSP.
 
Apparently I'm just slow. It looks like I could do all the measurements and filter generation at 48,000 sps and then use the sample rate conversion tool to up sample the correction filter to 96,000 sps so it would be compatible with the miniDSP. Hey, that only took me three years to figure out.
 
Hi, Great to see that you made progress. You can open the .bat command file that is generated by align2. Look through that to see if the fmax was set to 300. You can edit that file and run it directly and get results. That is what I was doing with the simple octave script I posted here. The script writes a .bat file that runs the DRC program elements one at a time. You would have to look at the DRC documentation to see what to do.
Yes. I checked precessDRC.bat file.
set frequency=48000
set directory2=F:\align2\measurements\xo3\
set prefix=xo3
set WEL1=24000
set WEL2=16800
set WEL3=8400
set WEL4=6000
set WEH=1
set BCIW=1
set UPW=48
set taps=65536
set mic=F:\align2\files\mic\mic-flat.txt
set drc=F:\align2\files\drc\48.0KHz\normal-48.0.drc
set target=F:\align2\files\target\48.0KHz\flat-48.0.txt
set ir-L=F:\align2\measurements\dingdong\Lefting.wav.pcm
set ir-R=F:\align2\measurements\dingdong\Righting.wav.pcm
set correction=1
set maxgain=0.03
set Fmin=10
set Fmax=300
set path=F:\align2\files\
set PTType=M


I don't know what the problem is.
So, I applied EQ with iir filter, set Correction % in Align to 1, set 500ms in LOWwindows to make wav file, and when I checked it from REW, the intensity of correction was minimized and the level was changed unnecessarily (it seems to recognize below 20hz), so I only use Excess Phase Correction. I like it!
 
  • Like
Reactions: 1 user
Hi, it seems that the main problem is related to sox when folder/files are with spaces, special characters, aso...
I know how to manage this, just give me a few days to check. I'll upload a beta version of align2 somewhere.
But anyway, I won't add all features that I do on loudspeakers.audio : I use MMM measurement instead of a sweep and the correction file is better adapted to one's setup and room. At the moment, it is easier to use but less configurable for DIYers.

By the way, I did a lot of work on the website to deal with all possible uploads. When I started, you had really to comply to all exact formats. Now, it is much more flexible and calculation is quicker, just a few minutes to get all graphs.
Yes, I think there is an error related to sox, how to prevent it? I got the order.

If you run the program unconditionally, you must click the Octave path in Setup again, and select all targets, 48khz settings, and wav files once again.
If you do that and press process, no error occurred.

And I like the way your website works, but it was difficult to access and upload because the internet connection was not smooth in my country.

I'm glad you're even offering us a beta version!
 
Hi, it seems that the main problem is related to sox when folder/files are with spaces, special characters, aso...
I know how to manage this, just give me a few days to check. I'll upload a beta version of align2 somewhere.
But anyway, I won't add all features that I do on loudspeakers.audio : I use MMM measurement instead of a sweep and the correction file is better adapted to one's setup and room. At the moment, it is easier to use but less configurable for DIYers.

By the way, I did a lot of work on the website to deal with all possible uploads. When I started, you had really to comply to all exact formats. Now, it is much more flexible and calculation is quicker, just a few minutes to get all graphs.
I don't mean to rush you or bother you! Can I just know where the beta version will be uploaded?
And it seems to be applied regardless of frequency fmin and fmax, but does fmin and fmax of GUI feel like weight? Not the absolute standard?
 
Hi, it seems that the main problem is related to sox when folder/files are with spaces, special characters, aso...
I know how to manage this, just give me a few days to check. I'll upload a beta version of align2 somewhere.
But anyway, I won't add all features that I do on loudspeakers.audio : I use MMM measurement instead of a sweep and the correction file is better adapted to one's setup and room. At the moment, it is easier to use but less configurable for DIYers.

By the way, I did a lot of work on the website to deal with all possible uploads. When I started, you had really to comply to all exact formats. Now, it is much more flexible and calculation is quicker, just a few minutes to get all graphs.
Hi there. How are you?
There's no news about the beta version yet, right?
I'm checking this thread and your website together every day. It's already been a few months, so you might have forgotten, and I know you're too busy to care.

But I'm waiting! I would appreciate it if you could distribute the beta whenever you have time!
 
Hi,
as a first step, I compiled a porcpy.exe standalone software with no need to install python (sorry the download is quite big, 300MB)
download link (this link is only for one week, I'll place future version elsewhere).
Just unzip somewhere and run the runPORC.bat file : there are two IR in a folder as an example.
In this example, the options are
-n 2048 -o wav24 --noplot -Fmin 40 -polesL 60 -Fmid 200 -polesH 60 -Fmax 20000
It means 2048 taps, not plot, output wav24, 60 poles between 40 and 200Hz, 60 poles between 200 and 20000Hz.
I have to check with the plot options.
So modify the runPORC.bat depending on your needs and tell me if this works.
You can analyze the starting IR and result IR with ie REW.
 
Last edited:
  • Like
Reactions: 1 user
@jlo Yes. that works well. (Nothing problem) I had to move the folder to drive D to run that. (The place I extracted is F drive) I've never used PORC before, so I don't know if it's good or not. I think it's a little different from the results I got from phase correction.
Mostly, I think it's similar to inversion of SPL. This is because I did EQ myself, changed correction to 1% in DRC (Designer and align2), and used only phase by calibrating.
 
@jlo
I don't know what you're talking about.
If what you're saying is, why am I only applying phase correction, because DRC doesn't exactly follow the target, it applies to high frequencies as well as low frequencies and can't control it. Even if I change the setting and change the frequency limit to 200, 300, it still applies. This is because if you change it to 1%, it hardly applies.
And I don't like it because even though it's a very good room measurement with a multi-subwoofer + a lot of room acoustic where only a small amount of EQ is applied (very small peak around -3db, RT60 0.15~0.2sec), DRC somehow tries to modify every area of my measurement at the expense of the headroom.
 
I think I understand why the corrected response does not follow the target : it is simply that under the lowest frequency pole, the response is flat (no correction EQ). So in some cases, it may be wise to place poles at very low frequencies (ie 5 or 10Hz) so to force corrected response to target .
 
  • Like
Reactions: 1 user