|
|||||||
| Home | Forums | Rules | Articles | Store | Gallery | Blogs | Register | Donations | FAQ | Calendar | Search | Today's Posts | Mark Forums Read | Search |
| Digital Line Level DACs, Digital Crossovers, Equalizers, etc. |
|
Please consider donating to help us continue to serve you.
Ads on/off / Custom Title / More PMs / More album space / Advanced printing & mass image saving |
|
![]() |
|
|
Thread Tools | Search this Thread |
|
|
#1 |
|
diyAudio Member
Join Date: Nov 2011
Location: Maryland
|
I've created the Python Open Room Correction (PORC) project to generate room correction filters for OpenDRC, or any other convolution engine for that matter. The filter is based on the work of work of Dr. Balazs Bank.
PORC is intended to be a free command line tool. If you desire a fancy GUI feel free to fork this project (or pay for an expensive commercial software package). PORC allows one to specify a target curve and generate the corresponding loudspeaker-room correction filters. The filters may easily be imported into OpenDRC. I've been listening on my system for the last few weeks and the result is excellent. It even sounds fantastic well outside the targeted sweet zone. Attached is a screen shot of my left channel speaker results. Room EQ Wizard (REQ) is an excellent (and free) tool for measuring the loudspeaker-room impulse response of your system. I realize I can do a much better job with documentation; this project is intended to be a work in progress. See the link above for the code. /Mason |
|
|
|
#2 |
|
diyAudio Member
Join Date: Jun 2009
Location: Orygun
|
Interesting approach to the filter bank synthesis. How do the equalized and unequalized phase response compare? If I were equalizing this example the low tech way I'd throw probably 11 peaking patches at it and generally expect to get a fairly linear result.
|
|
|
|
#3 |
|
diyAudio Member
|
Nice ! Congrats for the hard work !
I've checked your website for an example of output file (i.e. FIR coefficients). Could you point to such a file? I'd like to look at the file format and see how much effort is required to use it with my own convolution device. Cheers Nick (Looking at the equalizing curve, there's a boost by over 20 dB in the lower end. One has to be careful not to blow the speaker.) |
|
|
|
#4 |
|
diyAudio Member
|
Excellent idea, I'd been thinking of a similar project with python, I'll play with your code later in the week and save myself any duplication and just send pull request your way if I have anything to add
![]() I'll also test it on osx 10.7 too. With ipython I find less need for gui stuff (I find it distracting anyway) hint ipython notebooks are pretty cool: Code:
ipython notebook --pylab inline Last edited by hochopeper; 3rd July 2012 at 01:17 PM. |
|
|
|
#5 |
|
diyAudio Member
Join Date: Nov 2011
Location: Maryland
|
The filter is minimum-phase, if that's what you're referring to.
In any regard it sounds fantastic. This loudspeaker-room correction filter, in combination with OpenDRC convolution, completely transforms my system. The result is "silky smooth." In retrospect my system definitely sounds "bright" and a little "harsh" without the filter. There's no going back. One could test the filter with the free Foobar2000 convolution plugin on Windows. On Linux, one could try jcgui with Jack. All one needs to do is purchase a calibrated measurement microphone and a descent audio interface. Room EQ Wizard is an excellent free software tool that will allow you to measure the impulse response of your speaker-room system. When measuring, make sure the audio playback device and the microphone are running on the same clock (i.e. audio interface). I designed the script to be as simple as possible. I've had success in the past with DRC-FIR, but the learning curve is fairly high and setup/configuration can be a pain. The scientific computing packages for Python are quite nice. |
|
|
|
#6 | |
|
diyAudio Member
Join Date: Nov 2011
Location: Maryland
|
Thanks. The real credit goes to Dr. Bank for developing the parallel filter. I took his MATLAB code and ported it to Python in order to make it more accessible to folks.
Quote:
The curves are actually normalized, but I shifted them to all fit on the same graph. Last edited by greenm01; 3rd July 2012 at 02:29 PM. |
|
|
|
|
#7 | |
|
diyAudio Member
Join Date: Nov 2011
Location: Maryland
|
Quote:
For this type of application working on the command line is very fast. The script does produce a nice graph of the output (see initial screenshot). The initial learning curve might be a little high to setup Python and all the required dependencies, but getting ones hands into the guts of things is in the spirit of open source and DIY anyway...! |
|
|
|
|
#8 |
|
diyAudio Member
Join Date: Jun 2009
Location: Orygun
|
Yes, that's clear from the links. It's worth looking at phase as well as magnitude, though getting good phase data is harder.
Last edited by twest820; 3rd July 2012 at 03:09 PM. |
|
|
|
#9 | |
|
diyAudio Member
Join Date: Nov 2011
Location: Maryland
|
Quote:
RED = Convolution Output GREEN = Input |
|
|
|
|
#10 |
|
diyAudio Member
Join Date: Jun 2009
Location: Orygun
|
Cool. I was more curious about the measured in room phase response with the excess phase removed. Sorry not to be more clear. Though if RoomEQ supports excess phase removal that might be close enough.
Last edited by twest820; 3rd July 2012 at 04:46 PM. |
|
![]() |
| Thread Tools | Search this Thread |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Introducing OpenDRC, Open Digital Room Correction engine | minidsp | miniDSP | 19 | 3rd September 2012 01:37 AM |
| How does the BeoLab5 room correction work? | boris81 | Subwoofers | 0 | 6th February 2011 06:14 PM |
| Is a Room correction trial possible? | brianuk | PC Based | 7 | 5th October 2009 07:29 PM |
| I need help with digital Room-correction | Radian | Multi-Way | 1 | 7th February 2007 07:10 PM |
| Room correction systems | herodote | Digital Source | 0 | 24th July 2006 10:56 AM |
| New To Site? | Need Help? |