Fidlib run-time filter design and execution library

This is a C library, released as free software under the GNU LGPL, designed to make it easy to design and execute IIR/FIR filters flexibly and quickly at run-time. (That is, as opposed to designing filters or coefficients inflexibly at compile-time and hard-coding them into the application). The base set of filters comes from Dr Tony Fisher's mkfilter, plus various other additional filters from other sources, including some audio filters. The mkfilter filters were improved by splitting them into stages, significantly improving the stability and accuracy for higher-order filters.

The filters provided are mainly IIR filters, and I make no claim that the list is anywhere near exhaustive; however you can still provide other filters to fidlib in coefficient form for analysis or execution. See the docs for full details of the filters available and the C programming API.

Previously fidlib was only distributed with Fiview as it provides the core filter design and execution services for that tool, but now it has been more fully documented and released separately. Still, it is recommended to try viewing the filters in Fiview as that tool makes it much easier to visualise and experiment with these filters before using them in a live application.

The fidlib release includes a command-line tool called firun which lets you apply fidlib filters flexibly and conveniently to raw binary or ASCII-formatted data streams. It also allows you to test the impulse response, step response and frequency response of the filters in a command-line friendly way.

As a brief example, to apply a band-stop and shelving filter to a raw 16-bit stereo audio stream:

firun 44100 ss BsBu10/239-247 x HsBq/0.8/-15/12000 <in.raw >out.raw


  fidlib.txt (25K)
  firun.txt (5K)

UNIX source release, with Linux firun binary

  fidlib-0.9.10.tgz (86K)
  fidlib-0.9.9.tgz (83K)

Windows-format source release, with Windows firun binary (99K) (96K)

UAZU-Up- These pages and files, including applets and artwork, are Copyright (c) 1997-2019 Jim Peters unless otherwise stated. Please contact me if you'd like to use anything not explicitly released, or if you have something interesting to discuss.