freeverb: a multichannel reverb instrument

translated to clm-2 by Fernando Lopez-Lezcano, nando@ccrma.stanford.edu

Freeverb, a free studio-quality reverb, was created by Jezar Wakefield at Dreampoint Design and Engineering. Here's the readme.txt that is part of the C++ source package I downloaded. This clm-2 instrument uses the same reverberation model and tuning for the filters as the original freeverb source code.

Here's a list of some differences with respect to the original freeverb code:

Parameters

All parameters have similarly named global bindings that you can use in a let statement to change the behavior of the reverberator (instead of passing parameters to the reverb instrument through :reverb-data in a with-sound). Prepend freeverb- to the parameter name to get the global binding name.

start-time
[num]
Start time of the instrument in the output stream (this is normally supplied automatically by with-sound).

duration
[num]

Duration of the reverberation (this is normally supplied automatically by with-sound, use the :decay-time parameter to allow the reverb to ring for more time).

room-decay
[num]

Determines the decay time of the reverberation.

damping
[num|array|list]

High frequency damping. This parameter can be a number, or an array or list (with same number of elements as output channels). It is possible to control the damping for each output channel.

global
[num|matrix]

Controls how the outputs of all reverbs (one per channel) is mixed into the output stream. Specifying "0" will connect each reverberator directly to each output channel, "1" will mix all reverberated channels equally into all output channels. Intermediate values will allow for an arbitrary balance between local and global reverberation. The overall gain of the mixing matrix is kept constant. See output-mixer for a complete override to this parameter.

predelay
[num|array|list]

Determines the predelay that is applied to the input streams. An array or list lets you specify the individual predelays for all chanenels.

output-gain
[num]
1.0

Overall gain multiplier for the output streams.

output-mixer
[mixer|matrix]
nil

Overrides global and sets the output mixing matrix directly (for example, you might want to change the contribution to global reverb of a particular channel so that it is proportional to the distance between speakers).


© 2001 Fernando Lopez-Lezcano. All Rights Reserved.
Created and mantained by Fernando Lopez-Lezcano, nando@ccrma.stanford.edu

Last modified: Wed Jan 24 21:32:00 PST 2001