BruteFIR setup for windows?

Has anyone been successful using the BruteFIR convolver on Windows?

Convolver engines that take FIR filter input seem to be in short supply on Windows. ConvolverVST is the only free one I've found, and it's getting old. JRiver and Acourate have high-quality convolvers, but are heavier-weight and both cost $$ (or $$$$$ for Acourate).

I'm guessing that it would be possible to use some combination of VAC/Jack + BruteFIR to route all Windows Audio through BruteFIR, but I'm looking for any existing guides or tutorials?
 

GDO

Member
2009-07-23 2:16 pm
BruteFir is not available for Windows.

For fir filtering on Windows you can use VSTConvolver but this is a vst-plugin so that you need also a host. VSTHOST is a free one:

VSTHost

AcourateConvolver looks very nice and much easier to set up, but not free, though not so expensive:

http://www.audiovero.de/en/acourateconvolver.php

You will also need a software for creating the filters, and that's what Acourate is made for, not for playing music.

A free option for filter generation is Rephase, fully presented in Diyaudio.
 

scott wurcer

Disabled Account
2004-01-26 3:03 pm
Belmont MA
Has anyone been successful using the BruteFIR convolver on Windows?

Have you tried SoX?

Use SoX’s FFT convolution engine with given FIR filter coefficients. If a single argument is given then this is treated as the name of a file containing the filter coefficients (white-space separated; may contain ‘#’ comments). If the given filename is ‘−’, or if no argument is given, then the coefficients are read from the ‘standard input’ (stdin); otherwise, coefficients may be given on the command line. Examples:
sox infile outfile fir 0.0195 −0.082 0.234 0.891 −0.145 0.043
sox infile outfile fir coefs.txt
with coefs.txt containing
# HP filter
# freq=10000
1.2311233052619888e−01
−4.4777096106211783e−01
5.1031563346705155e−01
−6.6502926320995331e−02

I also tried out the foo_convolve plug-in for Foobar and it seemed to work fine. I don't know big the filters can get before performance fails on either. BTW if you are not familiar with SoX the outfile spec can be a pipe to your soundcard input so it works just like a player with the fir filter applied.
 
Last edited:

scott wurcer

Disabled Account
2004-01-26 3:03 pm
Belmont MA
I have tried Sox on Windows but it is a 2 channels option only ( no xover) and also a command line only tool.

Btw, i didn't know that you could direct the output to the soundcard on Win, nor to a pipe. What other tool(s) do you use to allow Sox to do such things on Windows?

What isn't clear is that the pipe works with any program. IIRC the current SoX download does not have the redundant versions of SoX called "play" and "rec". "Play" simply sends the output to your sound device, it is simply SoX with the play command line built in.

SoX will also read from stdin. You can write a C program with one of the free gcc compilers like MINGW using stdin and stdout and use it on either end of a SoX pipeline. Be careful of the settings on the format of the streams (binary vs ascii).

Yes all this is command line, not for everyone.

-p, --sox-pipe
This can be used in place of an output filename to specify that the SoX command should be used as in input pipe to another SoX command. For example, the command:
play "|sox -n -p synth 2" "|sox -n -p synth 2 tremolo 10" stat
 

marcoc1712

Member
2013-02-01 3:09 pm
Have you tried SoX?



I also tried out the foo_convolve plug-in for Foobar and it seemed to work fine. I don't know big the filters can get before performance fails on either. BTW if you are not familiar with SoX the outfile spec can be a pipe to your soundcard input so it works just like a player with the fir filter applied.

I resume this very old THD because I would like to do exactly what is explained here, but I could not figure out how, if every channel has it's own filter. There is a way to build a stereo filter? How it should look?

Please help, thanks in advance.
 

scott wurcer

Disabled Account
2004-01-26 3:03 pm
Belmont MA
I resume this very old THD because I would like to do exactly what is explained here, but I could not figure out how, if every channel has it's own filter. There is a way to build a stereo filter? How it should look?

Please help, thanks in advance.

Sorry I'm not sure. You can split the channels and merge them but I'm not sure if you can set up a pipeline that keeps the channels exactly in sync when output.
 

DonVK

Member
2017-01-21 3:40 pm
Ottawa
On Windows you could also use EQ APO which has a convolution engine. The FIR filter needs interleaved channels for stereo. The filter can be generated with RePhase and measured in your system using REW.

I also use BruteFir on Linux but I've never seen a Windows version. I use EQ APO on Windows.
 
Last edited:

marcoc1712

Member
2013-02-01 3:09 pm
I resume this very old THD because I would like to do exactly what is explained here, but I could not figure out how, if every channel has it's own filter. There is a way to build a stereo filter? How it should look?

Please help, thanks in advance.

Yes, offline it works and is quite simple:

sox.exe stereo_IN.wav mono_1.wav remix 1,1 fir filetr1.txt
sox.exe stereo_IN.wav mono_2.wav remix 2,1 fir filetr2.txt
sox.exe -M mono_1.wav mono_2.wav stereo_out.wav

problem is real-time.
 

marcoc1712

Member
2013-02-01 3:09 pm
On Windows you could also use EQ APO which has a convolution engine. The FIR filter needs interleaved channels for stereo. The filter can be generated with RePhase and measured in your system using REW.

I also use BruteFir on Linux but I've never seen a Windows version. I use EQ APO on Windows.

I'm working on a LMS plugin, I'll like to stay with SOX only, if possible.

I do use RePhase fed by REW, but I could not see the way to produce a stereo FIR file, could you elaborate a bit "FIR filter needs interleaved channels for stereo"? Is still a .txt file? How could I produce this kind of file from RePhase?

thanks a lot.
 

DonVK

Member
2017-01-21 3:40 pm
Ottawa
I do use RePhase fed by REW, but I could not see the way to produce a stereo FIR file, could you elaborate a bit "FIR filter needs interleaved channels for stereo"? Is still a .txt file? How could I produce this kind of file from RePhase?

thanks a lot.

In RePhase look at the "[general tab][format]" box, it allows you to select [txt, dbl, wav, bin] and most can be selected as mono/stereo to create the interleave.

Some convolvers have a problem with wav as it contains a header they don't observe and it becomes part of the filter. What convolver are you using?
 

marcoc1712

Member
2013-02-01 3:09 pm
In RePhase look at the "[general tab][format]" box, it allows you to select [txt, dbl, wav, bin] and most can be selected as mono/stereo to create the interleave.

Some convolvers have a problem with wav as it contains a header they don't observe and it becomes part of the filter. What convolver are you using?

I'm using SOX that could work only with .txt files with coefficients in it, not WAV. It works very well with the ones generated by rePhase (32/64 bit float lines .txt) but for what I could understand is only mono, not stereo. I could not figure out how could I define a stereo filter in rePhase, probably I miss something very obvious.
 

scott wurcer

Disabled Account
2004-01-26 3:03 pm
Belmont MA
I'm working on a LMS plugin, I'll like to stay with SOX only, if possible.

I do use RePhase fed by REW, but I could not see the way to produce a stereo FIR file, could you elaborate a bit "FIR filter needs interleaved channels for stereo"? Is still a .txt file? How could I produce this kind of file from RePhase?

thanks a lot.

Foo_convolve plug-in (Foobar 2000) works in stereo so says the developer. Foobar has a command line interface but I don't know if it supports stdin and stdout pipes.

I have used gcc to write a very small program to use in the middle of a SoX chain and it is relatively easy and works fine. I'm sorry I have not done this for years it would be a bit of work to remember all the details but I do remember it took a couple of days to realize gcc needs explicit declaration of stdin/out as binary.

Basically sox.exe (some flags) | my.exe | sox.play worked like a charm.
 
Last edited: