BruteFIR 1.0f review

Download
by rbytes.net on

BruteFIR is a software convolution engine, a program for applying long FIR filters to multi-channel digital audio, either offline or

License: GPL (GNU General Public License)
File size: 230K
Developer: Anders Torger
0 stars award from rbytes.net

BruteFIR is a software convolution engine, a program for applying long FIR filters to multi-channel digital audio, either offline or in realtime. BruteFIR's basic operation is specified through a configuration file, and filters, attenuation and delay can be changed in runtime through a simple command line interface.

The FIR filter algorithm used is an optimised frequency domain algorithm, partly implemented in hand-coded assembler, thus throughput is extremely high. In realtime, a standard computer can typically run more than 10 channels with more than 60000 filter taps each.

Through its highly modular design, things like adaptive filtering, signal generators and sample I/O are easily added, extended and modified, without the need to alter the program itself.

Here are some key features of "BruteFIR":
Designed for realtime filtering of HiFi quality digital audio
Up to 256 inputs and 256 outputs
Input/output provided by external modules for maximum flexibility
Default I/O modules provide support for sound cards and files
Access multiple I/O modules (= several sound cards / files) at the same time
8 - 24 bit audio at any rate supported by sound cards
Easy-to-use C language API to create your own I/O modules, for example to support more file formats, other sound card APIs, or generate test signals
Mix/copy channels before and/or after filtering
Cascade filters or build complex filter networks
Simple C language API to create logic modules, to add new functionality
Create your own logic module, for example to do adaptive filtering
Provided is a logic module which implements a CLI accessible through telnet to manage runtime settings, and a dynamic equalier.
Toggle/change filter in runtime
Alter attenuation for each individual input and output in runtime
Alter delay for each individual input and output in runtime
Filter length limited only by processor power and memory
Typical filter lengths are in the range 2048 - 262144 taps
Reasonable low I/O-delay (typically 200 ms)
Fixed I/O-delay, thus possible to sample-align with other processors
Cross-fade for seamless filter coefficient changes.
Redithering of outputs (HP TPDF)
Overflow protection and monitoring
32 or 64 bit floating point internal resolution.
Supports multiple processors

A few examples of applications where BruteFIR could be a central component:

Digital crossover filters
Room equalisation
Cross-talk cancellation
Wavefield synthesis
Auralisation
Ambiophonics
Ambisonics

Among these, room equalisation and auralisation needs the longest FIR filters in the common case. Many applications can do with quite short filters actually, but the thing is that you will probably not need to compromise on the filter lengths when you use BruteFIR, even when sample rates go up.

However, BruteFIR is pretty useless by itself, since it is only a FIR filter engine. It does not provide any filter coefficients, thus it is not a filter design program. Also, due to its relatively high I/O-delay, BruteFIR is most suited for applications when the input signal is not live.

BruteFIR 1.0f keywords