WaveWarp 2.0 Component
      

Spectral Transformers:
Functional Description
Approximate "brick wall" band-stop / band-pass filter with adjustable stop-band gain(s),
based on direct manipulation of FFT spectra.
IMPORTANT: this filtering technique is crude but computationally efficient.
It can introduce significant distortion,
depending on the spectral and temporal nature of the audio material being processed.
This can lead to interesting audio effects,
but may be unacceptable for a given application. If accurate filtering is required,
refer to the
Digital Filters
category of the Component Library.
The attributes of the filter are adjustable via the Parameter Window, as summarised in the
following table. Stereo signals have separate adjustments for left and
right channels.
| Parameter | Purpose |
| "Filter type" selection |
Selects between a low-pass or high-pass filter. The idealised frequency
response is displayed in the plot window. The actual frequency response
will, in general, be highly distorted due to the approximate nature of the
filtering method.
|
| "Buffer length" slider |
Adjusts the length of the input data buffer,
which also defines the "Latency" (overall delay) of the
process.
The FFT buffer size is computed from the "Buffer length"
rounded up to the nearest power of 2
(for efficient FFT computation). If "double padding" is selected, the FFT buffer size is
doubled (after the rounding) to improve the smoothness of the spectrum between successive
FFT bins (but without increasing the underlying frequency resolution).
The input data buffer
is windowed (using a selected profile), then
extended to the length of the FFT buffer by
padding with zeros (on either side). Successive input data buffers are overlapped by a factor
of 2, and the ouputs of the overlapped
inverse transformed buffers are summed, in order
to avoid discontinuities at the window boundaries.
|
| "Output gain" slider |
Adjusts the overall gain of the output signal, after the filtering has been applied.
|
| "Lower freq" slider |
Adjusts the filter's lower cut-off frequency over the allowable range from 0 to the
Nyquist frequency (defined as half the sample rate).
|
| "Upper freq" slider |
Adjusts the filter's upper cut-off frequency over the allowable range from
the lower cut-off frequency to the
Nyquist frequency (defined as half the sample rate).
|
| "Band gain" slider |
Adjusts the stop-band gain of the filter.
|
| "Window type" selection |
Selects the profile of the windowing function applied to the input data.
|
Algorithm
Transforms each successive input buffer
to the frequency domain using the windowed-FFT with double overlapping.
The approximate "brick wall" band-stop (band-pass) filtering is applied by
multiplying the values
in all FFT bins within (outside) the selected lower and upper cut-off frequencies
by the stop-band gain.
The modified spectrum is then
re-converted to the time domain (using the inverse FFT), and
the overlapped output buffers are summed to yield the output signal.
For an introduction to the Discrete Fourier Transform and the FFT,
see, for example,
[St] sections 4.1 and 4.2.
For further introductory information (with emphasis on audio applications), and
for discussions on spectral measurements, zero-padding,
windowing, the overlap-add re-synthesis method,
and the Short Time Fourier Transform (STFT) for audio applications,
see
[Roa] p. 1084-1112
and
[Moore] p. 61-111.
Signal Implementations
| Audio signals | Control signals | Description |
| Single input single output mono-mono | n/a | The mono audio input is filtered and sent to the mono audio output. |
| Single input single output mono-stereo | n/a | The mono audio input is filtered and sent (in duplicate) to the stereo audio output channels. |
| Single input single output stereo-mono | n/a | Each audio input channel is filtered with separate filter parameters. The filtered channels are then averaged and sent to the mono audio output. |
| Single input single output stereo-stereo | n/a | Each audio input channel is filtered with separate filter parameters and sent to the separate stereo output channels. |
Related components:
Example DrawingBoards illustrating usage:

      
|