Fiview -- A Digital Filter Design, Viewing and Comparison tool

Fiview screenshot Fiview screenshot

Fiview is my freeware application for Windows, Linux and Mac OSX that can be used to design and view digital filters. It also makes it very easy to compare different filters by allowing you to switch between them using the digit keys, and it generates efficient and readable public domain example code that can be used directly in an application. It is released under the GNU GPL.

Much of the underlying filter design code was based on mkfilter from Tony Fisher -- see the source code for details. The resulting filters were improved by splitting them into separate stages, which improves the accuracy and stability of them enormously, especially for higher-order Bessel and Butterworth filters.

The source also includes a library, fidlib (now with its own page), which can be used to design filters at run-time. The fiview utility generates fast generic compiler-optimisable example C code both using the frequencies provided, and also in a form that allows the frequencies to be provided at run-time via a call to fidlib. This permits applications the flexibility to do things like generating banks of similar filters at run-time according to run-time parameters. fidlib is released under the GNU LGPL, allowing it to be linked with closed-source apps (see the LGPL license for full details).

Fiview screenshot Fiview screenshot

The tool also supports log-scale views, and includes a feature to feed test signals throught the filter to get a better idea of how it might behave with real-life signals (as opposed to idealized infinite fixed-frequency sine waves). Two test signals are available -- sweeps and wavelets -- see the red traces above for an example.

Currently, the release is functional, usable and stable. However, there may be a few rough corners and bugs I've not found yet, so bug-reports would be welcome. Apart from that, there are a couple of features which I wish to add and test first before the version number reaches 1.0.0. See the end of the HELP.TXT file for the TODO list.

This app was created as part of the OpenEEG project, as a support tool for developers needing filter code for their apps (including myself!).

Download binaries and sources

  See NEWS.TXT for news of the latest updates.

Help text: The help-text is included in the application, but you can also read it HERE to get an idea of how the application works. Also click on the images above to see larger screenshots.

Windows binaries: The Windows archive below includes the SDL.DLL file, the FIVIEW executable and full source. If you wish to redistribute this (e.g. on a CD), please take time to review the GPL and LGPL licences that cover this software. There are certain provisions in those licences to ensure that the recipient has full access to the source code (for all the software, including SDL), which you would need to take care of. (283K) (301K) (301K) (300K) (300K) (300K) (300K) (352K) (328K) (315K)

Mac OSX binaries: Andy Bull (creator of CellSynth) has ported Fiview to Mac OSX. I don't have access to a Mac myself right now to merge the changes and test this, so for the moment I am providing the archive that Andy has kindly put together. This includes a pre-built binary that will run on Mac OSX 10.3. (It may work on earlier versions, but that is untested): (333K)

Linux binaries: I'm not providing packaged binaries (RPM, DEB, etc) for Linux at the moment. Anyway Linux users are more accustomed to building things for themselves than Windows users are. See below for the source -- build instructions are included in the file BUILD.Linux. Any problems, let me know.

Source code: The source code archives below are available in the TGZ format. Build instructions are included for both Linux and Windows. Actually, it should be possible to build Fiview on any UNIX that SDL 1.2 supports, and even on MacOS or other platforms. Please let me know if you successfully build the app on another platform, and I may be able to add scripts or binaries to this page.

  fiview-0.9.10.tgz (108K)
  fiview-0.9.8.tgz (127K)
  fiview-0.9.7.tgz (127K)
  fiview-0.9.6.tgz (127K)
  fiview-0.9.5.tgz (126K)
  fiview-0.9.4.tgz (126K)
  fiview-0.9.3.tgz (126K)
  fiview-0.9.2.tgz (113K)
  fiview-0.9.1.tgz (98K)
  fiview-0.9.0.tgz (92K)

Useful references

Here are some sites that are worth looking at:

  SDL: Simple DirectMedia Layer, cross-platform low level audio/video/etc
  mkfilter: A free online filter design and analysis toolset from Tony Fisher
  GMeteor. If you need to generate complex FIR filters based on a list of constraints, then this tool is likely to be very helpful.
  Cookbook formulae for audio EQ biquad filter coefficients by Robert Bristow-Johnson
  OpenEEG: The project I am involved in to create a low-cost open-source EEG unit and software.
  EEGMIR: My prototype EEG biofeedback app for OpenEEG that uses fidlib internally.

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.