Using DRC/BruteFIR with Ardour, is anyone already doing it?

Hi as per above. I’d like to use BruteFIR with ardour using a filter created by DRC, to help tighten/flatten the sound in my room, without getting an acoustic engineer in to redesign the whole thing.

Firstly is anyone here doing this?

Further to this, is it possible (with JackDMP) to set it up in such a way that Brute FIR is not running on the same CPU core as all the cores that ardour is using for DSP?

(This could be a showstopper as I use up to 50% of my DSP processing as it is and from reading BruteFIR is going to use a lot of clocks, I could also of course try to massively overclock my CPU or save up for a corei7 system).

Lastly (as the BruteFIR documentation surrounding Jack is quite complex for me to understand) does anyone know how to associate BruteFIR with only 2 outputs of a multichannel card (a Delta 1010 in my case).

Thanks for any help…

NOTE: If this isn’t appropriate for this forum please advise including where I should ask and apologies in advance.

alan, can you give me an advice how actually you measure your room via mic? I´ll borrow a C-1 also soon to make my studio sound better, i thougt of measuring only the sweetspot between the speakers with a white noise signal and then look wich frequencies are not linear… and for the recording room i´d do something similar… but maybe you have some more sophisticated advice for me?

Can you point us in a direction for setting up and using this software?

any chance netjack could help you ? if you use brutefir on another PC hooked to your ethernet network, you could use netjack to sync with the master server which would run ardour ?

I’m pretty sure that would introduce an unacceptable amount of latency…

Hi Allan,

I have done this in the past. It works great.

The BruteFIR processing runs in a separate realtime thread from the JACK thread, so you shouldn’t see a big performance hit.

In your brutefir config file, just tell brutefir to use the JACK ports that you want it to use.

-Ben Loftis

This is the first time I’ve heard of this. I may need to play with this a bit.

Hi Ben

Thanks for your advice. A couple of questions.

Did you use the jack configuration or the ALSA configuration for this? I don’t quite understand how it would be in a different thread if it’s connected via jack, but then I don’t understand how you would have it running

Are you able to post your configuration file to the email below, or to the ardour-users mailing list… (I imagine it’s too big to be included as a post here, although would be good as a reference for others)

sonofzev at iinet dot net dot au

Hi Allan,

Brutefir spawns separate threads for the heavy-lifting DSP. This will utilize your extra CPUs. You don’t have to do anything for this to work.

The only change needed in the brutefir configuration file is to use the JACK I/O module instead of ALSA. When you run brutefir, you’ll see the JACK ports appear in Qjackctl. I’ll try to remember to post my config file tonight.

Good luck!

-Ben

Cool, now I’ve just gotta go and borrow a reference Mic from a friend… Not sure if a Shure SM-50 or my Behringer C1 (cheap but not too bad)… will be right for the job…

As yet I haven’t actually done this yet. So I’m as much a beginner as everyone else…

However there is good information at
http://www.duffroomcorrection.com/wiki/Main_Page

There is a step by step instruction set for Winblows, however the process is exactly the same (just different software to do the convolve process)… I was simply going to follow that.

I hope this helps.

I think a Behringer ECM-8000 or similar (DBX has one as well for the drive rack system) will be better for the job as this is the specific use for a reference MIC.

I have an AKG C414 (B-ULS). It is almost completely flat in omni (only ±2db 20-20KHz)

Thanks for the link

thanks a lot for the link, i m gonna try that! :slight_smile:

Guys, please post your results including difficulties getting it done, workarounds e.t.c… I’m pretty sure this would benefit most people using ardour.

allank, this is a grat idea, cause everyone of us has very little experience in room modification or system calibration to get a decent sound to wirk with… and thats actually the lack that makes the professional studios sometimes sound more professional… :wink:

I have no experience till now in put in the signalchain programs like brutfir… i only have some experience in room modification and microphone using the right way… I ´m working in a small “project studio”, two rooms, one for recording, and one for monitoring… the monitoring is jsut normal room, walls, horrible sound till now with not so much posibilities of modification (its shared with more people…) and a recording room, with a wooden podest, some absorbers… molton… at the moment i have the problem that the HF is filtered too much by the absorbers and i need to think of adding “basstrap”-like things… I made good experience with mounting the absorbers on wooden plates and mounting them altogether to the wall, leaving ~3cm space… this absorbs the HF by absorber and also the LF…, so guess I´ll try that soon.

in the monitoring room I have nearfield monitors, which should be situated quite close to the listener, so i wonder if it will be possible to improve the roomsound via Brutefir at all…or maybe I can just get my speakers “more flat” … so i d be interested in anyone who has experience with that… also i still dont have a clou how to get the right room-data into it…

hello,

I’m testing DRC right now. it’s verry nice

a guide wich helped me: http://www.tarind.com/brutefir_drc.html

instead of BruteFIR I use Jconvolver wich is native-jack and easy to configure (don’t make the mistake to use Jc-GUI it’s buggy)

once you got through the guide once you can learn how to finetune the filters: http://drc-fir.sourceforge.net/doc/drc.html#htoc43

finaly, here Jconvolver consumes about 1-2% of CPU and 12MB of RAM. So no need to run it under another machine

there is an error in the guide (http://www.tarind.com/brutefir_drc.html) wich gives TOTALY wrong result:

replace:

lsconv sweep.pcm inverse.pcm impulse-l.pcm reference-l.pcm 0.1 0.8
lsconv sweep.pcm inverse.pcm impulse-r.pcm reference-r.pcm 0.1 0.8

with:

lsconv recorded-l.pcm inverse.pcm impulse-l.pcm reference-l.pcm 0.1 0.8
lsconv recorded-r.pcm inverse.pcm impulse-r.pcm reference-r.pcm 0.1 0.8

I’ve sent an email to the author