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

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

duration

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

Determines the decay time of the reverberation.

damping

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

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

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

Overall gain multiplier for the output streams. Its default value is 1.0.

output-mixer

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: Mon Feb 13 2:55:00 PST 2012 (by BIL, reformatted for HTML5)