If one has the possibility of a large, holistic FFT ('giant') and no real-time context is prescribed, reverberation is a simple matter. It confines itself to the method of 'convolution'.
Two things are required: the sound that one would like to reverberate and the pure reverberation function (impulse response) - likewise a sound. Both sounds will be transformed in their individual spectrum; the spectra will be modulated with each other (multiplied sample by sample), and the result will be inversely transformed. Finished. In the VASP script it looks like this:

sfload zuverhallenderklang.wav "load the sound in buffer A
FFT "Fourier transformation
sfload raumklang.wav "load the spatial sound in buffer B
FFT "Fourier transformation
vmul "multiply B by A
FFT- "inverse transformation

At first glance, it is apparent that the two components - sound and spatial sound - are somehow equal. If one 'reverbs' Sound A with Sound B, or vice versa, the result is the same. Since the actual link vmul is a multiplication, and A*B is the same as B*A.
Actually, the process is 'commutative' and opens the general possibility to arbitrarily merge two (or even more) sounds in this way. The result will, as a rule, have a 'spatial' effect. To what extent one perceives it as reverberation in the proper sense depends only on the character of both components.

To identify one of both components as spatial sound (SS), a few simple conditions have to be fulfilled:
1) SS should be relatively dense, containing many frequencies
2) SS should have a fading progression that is not too long
3) SS should become dulled in the progression.

Naturally, one can tinker with it endlessly, get lost in the intricacies, can recreate the acoustics of famous halls, for real-time and with moveable positions...
It is also done like this. For the experimental work, however, rather the systematics behind it are valuable, as well as the aspect that one can incorporate 'space' as an integral musical element. A whole dimension opens up here!

In this sense, a basic method of how one can derive a typical spatial sound from a musical motif.
In the following example, a homogenous density will be brought about by a freeze; the decay by an envelope; the reduction of the high frequency components by a variable filter. In the VASP script it looks like this:

sfload motiv.wav
shape.attdec 1.5sec,3.5sec
lprun.fade 6sec

The best and most homogenous freeze (with a natural pulse, without granular crumbling is achieved by substituting the phases of the individual samples in the spectrum with random values. This is done by the function phirand. All frequencies are preserved, but are detached from any comprehensible temporal connection - precisely a freeze. (There is even a possibility to retain the panorama of all frequencies if it involves a stereo sound, namely through the function xphirand).
shape.attdec applies an envelope with a logarithmic attack and an exponential decay, in this case, 1.5 and 3.5 seconds.
lprun is a controllable low pass filter, which has several modes. The mode .fade is the most suitable one for this purpose. The cutoff frequency of the filter begins with the limit frequency and sinks in the indicated time following a distance function to 40Hz.

* * *

Here is the basis so far. It might be that such a thing can be more elegantly formulated in other programs, without having to observe the individual steps: "reverb ding with dang."
However: From every position in this detailed process, ways lead into totally different, adventurous directions. The simple envelope allows itself to be substituted by a different, analytically gained one; the merge does not have to be a simple modulation, there are also alternatives for this. And, last but not least, although the FFT is the most important transformation to enter into another domain, it is by no means the only one.


(c) Günther Rabl 2010