'unmatched' is a simple effort to emulate certain aspects of the tone of a real musical instrument amplifier, in real time. It comes as a LADSPA plugin.
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 tube combo over the flat response of the mixer. This plugin will bring you a lot closer to a 'real' amp tone than endless fiddling with an equalizer.
In audio 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.)
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 impulses. This means that an n-sample impulse 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, which is a show-stopper for playing an instrument through the effect. Besides, it is still too demanding to allow realtime setups on the author's computer in the first place. (See this package by Anders Torger for a dedicated work on FIR filtering.)
Therefore a different approach has been implemented that sacrifices some impulse fidelity for execution speed: the finite impulse is replaced by an infinite impulse. Infinite impulse response filters 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 an IIR filter typically decays exponentially, reaching zero only at the bounds of computing precision.

The image shows the first 64 samples of the original response
and the filter's response.
The filter's response shows its 'natural'
tendency to produce smooth oscillation.
This plugin contains 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 this 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 shift upwards.
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.
easy.mp3 has been created from a straight guitar signal, applying Steve's set of valve-like effects and some filtering.
Nov. 11 2002 reverted the filter loop to use LADSPA_Data instead of doubles.
You may want to read the Gnu Public License that covers this plugin.
$ tar xvfz unmatched.tar.gz $ cd unmatched $ make # make install
The plugin only has one audio input and output port each, there are no parameters to set.