12.2 Virtual Analog Filters

12.2.1 Nonlinear Resonator

Analog filters used in music technology are not strictly speaking linear, because at high signal levels they produce distortion. One attempt to include this phenomenon in digital filters has been described by Rossum [Ros92]. He proposed inserting a saturating nonlinearity in the feedback path of a second-order all-pole filter, see Figure 12.1. In this case, the clipper is a symmetrical hard limiter. With this modification, the filter behaves a lot like an analog filter. It produces harmonic distortion and compression when the input signal level is high. Furthermore, its resonance frequency changes when the filter is overloaded, as pointed out in [Ros92]. This technique was used in the E-mu EMAX II sampler, which appeared in 1989. It is an early example of a virtual analog filter used in commercial products.

Figure 12.1 A digital resonant filter with a nonlinear element in its feedback path [Ros92].


A MATLAB® implementation of Rossum's nonlinear resonator is given in M-file 12.1. The filter coefficients A0, a1, and a2 are computed as in a conventional digital resonator, see, e.g., [Ste96]. In the following examples, we set the resonance frequency to 1 kHz and the bandwidth to 20 Hz. The sampling rate is fS = 44.1 kHz. The saturation limit of the clipper is set to 1.0.

M-file 12.1 (nlreson.m)

function y = nlreson(fc, bw, limit, x) ...

Get DAFX: Digital Audio Effects, Second Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.