fluid-dev
[Top][All Lists]

## [fluid-dev] Reverb effect level equation and possible bug

 From: Graham Goode Subject: [fluid-dev] Reverb effect level equation and possible bug Date: Tue, 17 May 2011 19:01:19 +0200

```Hi Guys,

I communicated with David a little while ago in regard to the effect
of Instrument and Preset reverb definitions in the Soundfont and the
CC91 and Fluidsynth Reverb Effect Level values. This was what was
eventually defined:

A quick math equation:
1) we have a reverb level at the instrument level in the sf2, which
ranges between 0 and 1, for the equation we will call this "I".
2) then we have a reverb level at the preset level (still in the sf2),
which ranges between -1 and 1, we'll call this "P".
3) if not overridden by the soundfont definition at instrument or
preset values, there is a third reverb modulator from CC91 that
controls the reverb level, which ranges between 0 and 0.2, call this
"M".  This is linear, so M = CC91/127 * 0.2.
4) then finally we have the global FS reverb level, which for the
equation we'll call "F" (what the Fluidsynth Reverb 'Level' parameter
controls)

For the equation we take the sum of I, P and M. Clamp it to be between
0 and 1 (i e, if greater than 1, it's 1, if less than 0, it's 0). Then
we multiply that with F to get the actual reverb heard...

Reverb level = F * clamp(I + P + M)

---------------------

In real life this is not working like the equation says it should. A
jOrgan user did some tests with different 'I' and 'P' values, and
tested the effect of CC91. His results can be found here:

http://jorgan.999862.n4.nabble.com/file/n3529674/Reverb-Chorus-Anglais.pdf

A summary of these results:

"In the soundfont :
If you want a total efficiency of CC91 (reverb level) and CC93 (chorus
level) MIDI commands be chosen:

Instrument: I = 100%
Preset: P = 0%
That is to say 0 or nothing in the chorus and reverb of boxes soundfont.

If you wish to dispense with MIDI commands, and fix everything from
fluidsynth effect:

Instrument: I = 0 to 100% (ie no effect if P = 100%)
Preset: P = 100%, that is to say 100 in the box.

------------------

The issue is with the value added by CC91 to the reverb level. If 'I'
is not left blank (100%), then CC91 has no effect, which is contrary
to the equation given.

Can anyone shed some more light on the mater?

Kind regards,
GrahamG

```