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'smkfilter, 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:

UNIX source release, with Linux firun binary

Windows-format source release, with Windows firun binary

These pages and files, including applets and artwork,
are Copyright (c) 1997-2016 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.