(De)Convolution | Filter one sound with another
|  | Convolution is the one of the fundamental algorithms in digital signal processing. Its equal to filtering with a finite impulse response. Examples for filters include frequency equalization, reverb, delays, creating an output that contains the spectral information common to both the input and the impulse response.
| Input file: Sound to be filtered with an impulse resonse. Impulse response: Second sound file to be used as the "impulse response" for the FIR filtering. Naturally input file and impulse response can be exchanged while the output is the same. Use the shorter file for impulse response to make processing less RAM expensive. An impulse response can be a "normal" filter IR like a low pass, high pass etc. (something produced by the FIR Designer module), the response from a delay or reverberation system or any other sound snippet. Convolution means the spectral characteristics of the IR (both amplitude spectrum and phase resonse) are superimposed onto the input file. When using normal sounds the output tends to emphasize the low frequencies unless the IR has a flat spectrum. It tends to emphasize the frequencies that exist both in the input and the IR and cancels those frequencies which are not present in either file. Every introductory text about DSP explains the details of convolution. Output file: Input convolved with IR. Mode: 'Convolution' for normal operaion, i.e. the spectra are multiplied. In 'Deconvolution' mode the spectra are divided. Unless all frequencies are present in the IR you get a lot of boost at some (usually the high) frequencies. Also there's a problem with the overlap-control of the algorithm, so deconvolution hardly works (well, you can convolve a sound with another one, process it and try to deconvolve it again which should work). 'Conv w/ inversion' means the IR spectrum is modified in the way that the strongest frequencies become very weak and the weak frequencies become strong (phases not changed), sometimes works as a kind of deconvolution. Truncate overlaps: FScape technically convolves by STFT spectra multiplication and overlap-adding of successive frames. The truncated overlaps used to be a bug in an early version. Sometimes I liked the "buggy" results so now you can reintroduce that bug by checking this gadget... Normalize impulse energy: This should be placed in the 'Morphing' section... It means each IR calculated in the morphing process is normalized so there's no change in the IR energy over time. File length: A normal non-circular convolution results in an output that is as long as the the sum of the input length and the impulse length (minus one sample). Often you want create an output file that has the same length as the input, then choose 'Input (no change)'. When FScape finds a Marker named 'Support' in the impulse file, then the first "support" samples of the convolution are omitted and then the remaining last samples; if not only samples at the end of the convolution are omitted. Choose 'without support' to skip the support of the IR. The 'Support' marker is written by the FIR Designer module which generates symmetric sinc-filters; the strongest sample is the one in the middle and that's exactly the support, meaning that attacks in the input file remain on their position counting from the beginning of the file. Morphing: Means the IR file is split up into an integer number of equal length impulses. By editing the envelope you can define which of these impulses is used for filtering at which moment in time (simplest case is a straight line from 0% to 100% over time meaning that the first IR is used at the beginning of the input file and the last one is used at the end). The 'Policy' determines how the IRs are interpolated. 'Rect X-Fade' is normal linear interpolation. 'Polar X-Fade' tries to interpolate amplitudes and phases separately which sometimes gives more interesting results (mode not really worked out). 'Correlate and shift' doesn't work at the moment. The 'Window size' determines how long an interpolated IR stays valid. For fast movements you'll need a small window size to avoid clicks, for slow movements use bigger windows to increase processing speed. The 'Overlap' helps to avoid clicks. Not perfectly worked out... Toolbar: Popup menus for loading and saving settings, presets and options. Refer to a the basic chapter on process windows. Processbar: Buttons for closing the module, starting and stopping processing. Process gauge. Refer to a the basic chapter on process windows. Known bugs: none really To be done: the morphing should be worked out in a much better way. Also the deconvolution should be made using a different method.
Contents | last modified: 03-Aug-02