Design and Selection
of Digital Filters

Filtering is the selective removal of frequencies from a signal. Most diegetic voices in an interactive audio mix are likely to pass through several filters, updated many times a second.

This chapter includes tightly optimised C++ code for first- and second-order low-pass, high-pass, notch, bandpass, treble, bass and five-knob fully parametric resonant filters, functions and formulae to set them up for various frames of reference and notes on their useful gamut. It includes an improvement to reduce distortion in conventional state-variable filter implementation and caveats about I3DL2 and MIDI filter control.

This chapter goes beyond 'cookbook' techniques to practical implementations tested and optimised for interactive use. The feedback filter concept is extended to include all-pass decorrelation filters, optimal generation of low-frequency oscillations for effect and spatial control, crucial compensation for variation in the update frame rate and examples like Lissajous fly torture for testing proximity effects and the advanced use of resonant filters to express damage or injury.

Effect of feedback on fast oscillator
This experiment in ZX BASIC reveals the eccentricity which occurs when Minsky's circular feedback algorithm (Hakmem item 149) is carelessly used to generate low-frequency oscillations. The chapter includes a similar implementation in C and observes when it is safe to use it.

Further reading

Interactive Reverberation - next chapter abstract.
Ambisonic Surround-Sound Principles and Practice - previous chapter abstract.
Return to the index of chapters.
Click here to get your own copy of Beep To Boom.

Copyright © 2019 Simon N Goodwin     [';']