GVERB

Very long and smooth reverb algorithm.

in RTcmix/insts/bgg


quick syntax:

GVERB(outsk, insk, dur, AMP, ROOMSIZE, RVBTIME, DAMPING, BANDWIDTH, DRYLEVEL, EARLYREFLECT, RVBTAIL, RINGDOWN[, INCHAN])

CAPITALIZED parameters are pfield-enabled for table or dynamic control (see the maketable or makeconnection scorefile commands). Parameters after the [bracket] are optional and default to 0 unless otherwise noted.

Param Field Parameter Units Dynamic Optional Notes
p0 output start time seconds no no  
p1 input start time seconds no no  
p2 duration seconds no no  
p3 amplitude multiplier relative multiplier of input signal yes no  
p4 roomsize 1.0 - 300.0 yes no  
p5 reverb time 0.1 - 360.0 yes no  
p6 damping 0.0 - 1.0 yes no  
p7 input filter bandwidth 0.0 - 1.0 yes no  
p8 dry level inverse dB, -90.0 - 0.0 yes no  
p9 early reflection level inverse dB, -90.0 - 0.0 yes no  
p10 tail level inverse dB, -90.0 - 0.0 yes no  
p11 ring-down time seconds, added to duration no no  
p12 input channel - no yes default 0

Parameters labled as Dynamic can receive dynamic updates from a table or real-time control source.

Author: Brad Garton, 5/2010


GVERB is a very smooth reverberator with the ability to produce very long reverb times.

Usage Notes

GVERB is based on the original “gverb/gigaverb” by Juhana Sadeharju (kouhia at nic.funet.fi). The code for this version was taken from the Max/MSP version by Olaf Mtthes (olaf.matthes at gmx.de).

The parameters should be relatively self-explanatory for this instrument. Note the use of ‘inverse’ dB to specify the dry signal amount in the output (p8, “DRYLEVEL”), the early (wall) reflection leveil (p9, “EARLYREFLECT”) and the level of the reverberated signal ‘tail’ (diffuse reflections, p10, “RVBTAIL”).

The filter bandwith parameter (p7, “BANDWIDTH”) applies a simple low-pass filter to the input signal prior to processing through the reverberator.

The ring-down time (p11, “RINGDOWN”) is used to allow the revebr to die away after the input signal has finished.

If you modulate some of the parameters too quickly using pfield-controls, some glitching may occur. Use a shorter reset value to compensate (may not always work, though).

GVERB requires a stereo output.

Sample Scores

very basic:

   rtsetparams(44100, 2)
   load("GVERB")

   rtinput("mysound.aif")

   GVERB(0, 0, 9.8, 0.9, 78.0, 7.0, 0.71, 0.34, -10.0, -11.0, -9.0, 7.0)

slightly more advanced:

   rtsetparams(44100, 2)
   load("GVERB")

   rtinput("mysound.aif")

   roomsize = maketable("line", "nonorm", 1000, 0, 78.0, 3,200.0, 7,10.0, 10,25.0)
   revtime = maketable("line", "nonorm", 1000, 0,1, 10,50)
   damping = makeLFO("tri", 0.4, 0.1, 0.9)
   amp = 0.7

   GVERB(0, 0, 9.8, amp, roomsize, revtime, damping, 0.34, -10.0, -11.0, -9.0, 7.0)


   inputbandwidth = makeLFO("tri", 0.5, 0.1, 0.9)
   drylevel = maketable("line", "nonorm", 1000, 0,-1.0,  5,-50.0,  7,-1.0, 15,-1.0)
   amp = 0.3

   GVERB(14, 0, 9.8, amp, 35.0, 15.0, 0.5, inputbandwidth, drylevel, -11.0, -9.0, 5.0)


   earlylevel = maketable("line", "nonorm", 1000, 0,-1.0, 5,-68, 9,-10.0, 15,-10.0)
   taillevel = maketable("line", "nonorm", 1000, 0,-70, 5,-3.5, 10,-50, 15,-50)
   amp = 0.9
   GVERB(25, 0, 9.8, amp, 143.0, 9.0, 0.7, 0.7, -27.0, earlylevel, taillevel, 3.0)

See Also

DMOVE, FREEVERB, MMOVE, MOVE, MPLACE, MROOM, PLACE, REV, REVERBIT, ROOM, SROOM