unmatched

NB: The use of the software on this page is deprecated in favour of more recent development lines.

'unmatched' is a simple effort to emulate certain aspects of the tone of a real musical instrument amplifier, in real time. It comes in two flavours as LADSPA plugins.

Why?

You may know how bad electric guitars and bass guitars sound when you play them through studio equipment without any effects processing. Well, it's all a matter of taste, but like many instrumentalists do, the author prefers the 'sweet' sound of a combo over the flat response of the mixer. These plugins will bring you a lot closer to a 'real' amp tone than endless fiddling with an equalizer.

How?

In digital signal processing, any linear system's characteristics can be faithfully recreated by storing its impulse response, ie. the output it produces when fed a one-sample impulse. Now, the theory has it that in order to have a signal sound like it went through the system in question, all we need do is convolve the signal with the stored impulse.

(In reality, there's no such thing as a linear system; and observation tells us that instrument amplifiers are not the only objects being estimated highly for their peculiar nonlinearities. That doesn't keep the method discussed here from producing excellent results.)

Convolution of digital audio signals, also called finite impulse response filtering, is computationally intensive. Very. For every input sample, the straightforward approach starts a scaled version of the stored impulse response, forming the output signal by adding all running scaled responses. This means that convolving with an n-sample impulse response will require n multiplications and additions for every input sample processed. With impulse lengths of just a few dozen samples, a realtime convolver quickly becomes too hungry for processor power even in an average contemporary personal computing environment. An alternative approach that promises to be much quicker than the straightforward method is FFT convolution. This method is used for example by Steve Harris' convolver plugin. The downside of FFT convolution is that its output is delayed because the FFT needs a block of samples to operate on, which is a show-stopper for playing an instrument through the effect.

(It should be noted that while an algorithm exists for zero-latency FFT convolution, it is encumbered by a patent. If you would like to know more about or run realtime convolution on your computer, check this package by Anders Torger for a dedicated work on FIR filtering.)

Above all, FFT convolution is still too demanding to allow useful realtime setups on the author's computer in the first place.

Therefore a different approach has been implemented that sacrifices some impulse fidelity for execution speed: the finite impulse response is replaced by an infinite impulse response. Infinite impulse response filters (IIRs) work on both the input signal and recursively on their own output, therefore their response can be much longer than that of a FIR filter performing the same number of arithmetic operations per sample. In fact, the response of a stable IIR filter typically decays exponentially, reaching zero only at the bounds of computing precision.

original and filter response

The image shows the first 64 samples of the original response and the discussed filter's response.
The filter response shows its 'natural' tendency to produce smooth oscillation.

These plugins contain a 16th order IIR filter whose coefficients are shaped to make the filter's impulse response match a recorded original impulse response as closely as possible. The impulse used to shape the filter was taken from Steve's convolver plugin, where it is labeled as stemming from a Matchless Chieftain, recorded on-axis by an SM 57. From the sound of things, it probably was recorded at 44.1 kHz. Using the plugin at higher sample rates will cause its frequency response to spread out.

Performance

Although the filter's response does not match the accuracy brute-force or FFT convolution will achieve, it does well enough sonically to convince the author that further tone improvements can more easily be found in the fields of compression, saturation and distortion, ie. nonlinear effects, than through refining this plugin's response.

Computationally, the plugin easily outperforms FFT convolution. It consumes about 4-8% of the cpu time available to a realtime audio processor running at a block size of 64 frames on an AMD K6, 450 MHz.

Yeah, but How Does it Sound?

easy.mp3 has been created from a straight guitar signal, applying Steve's set of valve-like effects and some filtering.

Changes

Nov. 11 2002 reverted the filter loop to use LADSPA_Data instead of doubles.

Nov. 2 2003 added another plugin, 'matched', that matches the original impulse better when used in conjunction with the preamp plugin.

Download

You may want to read the Gnu Public License that covers these plugins.

unmatched.tar.gz
matched.tar.gz

Installation

$ tar xvfz unmatched.tar.gz
$ cd unmatched
$ make
# make install
	

How to Use

The plugins come as 'unmatched.so' with LADSPA ID 1761, and 'matched.so', ID 1766. They have one audio input and output port each, there are no parameters to set. Please be aware that feeding the plugins hi-energy signals (distorted guitar for example) can cause excessive output levels due to the resonant nature of the filter.

 
tim@quitte.de, February 18 2004.