JCN REVERB REPOSITORY

A collection of Csound reverb algorithms implemented as a single #include file.

There are basically two kind of reverb macros : preset reverbs (you only have to select the reverb name, index, sound source, sound output and preset number if necessary) and user definable reverbs, which may require lots of extra arguments specific to each reverb algorithm.

The reverbs are named as follows:

rvb1m , rvb2m

preset mono reverbs

rvb1s , rvb2s

preset noto to stereo or stereo to stereo reverbs

xrvb1m, xrvb2m

user configurable mono reverbs

xrvb1s, xrvb2s

user configurable mono to stereo or stereo to stereo reverbs

For simplicity all the reverbs are static (ie. you cannot change the reverberation time dinamically), but I´ll probably add some dynamic reverbs soon.

Only monophonic or stereophonic reverbs are included by now.

Josep M Comajuncosas, August 2000

 

xrvb0s(in'outL'outR'IR'dry)

User-configurable (w. presets) mono to stereo reverb

DETAILS

Convolve-based reverb (from Varga István EffectProc. file)

Not usable for MIDI events. The output is delayed according to the convolve docs.

Author : Josep M Comajuncosas

PARAMETERS

in: input

outL,outR : output

IR : impulse response number for a file named "convolve.IR"

dry :dry/wet mode. If dry !=0 output the default (suggested) wet/dry mix

if dry=0 output only the wet signal

 

rvb1m(in'out)

Preset mono reverb

DETAILS

MN3011 BBD Reverb

Multitap delay line with feedback.

Author : Cook

PARAMETERS

in: input

out : output

xrvb2s(inL'inR'outL'outR'gain'pitchmod'fco)

User configurable stereo reverb

DETAILS

8 delay line FDN reverb, with feedback matrix based upon physical modeling scattering junction of 8 lossless waveguides of equal characteristic impedance. Based on Julius O. Smith III, "A New Approach to Digital Reverberation using Closed Waveguide Networks," Proceedings of the International Computer Music Conference 1985, p. 47-53 (also available as a seperate publication from CCRMA), as well as some more recent papers by Smith and others.

Coded by Sean Costello, October 1999

 

PARAMETERS

inL,inR : left and right inputs

outL,outR : left and right outputs

gain : gain of reverb. Adjust empirically for desired reverb time. .6 gives a good small "live" room sound, .8 a small hall, .9 a large hall, .99 an enormous stone cavern.

pitchmod : amount of random pitch modulation for the delay lines. 1 is the "normal" amount, but this may be too high for held pitches such as piano tones.

fco : Cutoff frequency of lowpass filters in feedback loops of delay lines, in Hz. Lower cutoff frequencies results in a sound with more high-frequency damping.

 

 

rvb3s(inL'inR'outL'outR)

Preset stereo reverb

 

DETAILS

reverb settings for Costello´s phased string ensemble.

Simple implementation of Feedback Delay Network (FDN) reverb, as described by John Stautner and Miller Puckette, "Designing Multi-Channel Reverberators," Computer Music Journal, Vol. 6, No. 1, Spring 1982, p.52-65. This version sticks to implementing the basic FDN structure, and leaves out most of the FIR multitap delay lines and filtering used for the early reflections. For sounds with non-percussive attacks, this simple implementation works great.

by Sean Costello, August 23-26, 1999

 

PARAMETERS

inL,inR : left and right inputs

outL,outR : left and right outputs

 

 

 

 

xrvb3s(inL'inR'outL'outR'gain'pitchmod'delaytime'filt'freq)

User configurable stereo reverb

 

DETAILS

Simple implementation of Feedback Delay Network (FDN) reverb, as described by John Stautner and Miller Puckette, "Designing Multi-Channel Reverberators," Computer Music Journal, Vol. 6, No. 1, Spring 1982, p.52-65. This version sticks to implementing the basic FDN structure, and leaves out most of the FIR multitap delay lines and filtering used for the early reflections. For sounds with non-percussive attacks, this simple implementation works great.

by Sean Costello, August 23-26, 1999

 

PARAMETERS

gain : gain of reverb

pitchmod : amount of random pitch mod, between 0 and 1

delaytime : controls overall length of delay lines

filt : controls cutoff of lowpass filters at outputs of delay lines

freq : controls frequency of random noise

 

rvbXs(inL'inR'outL'outR'preset)

Preset stereo reverb

 

DETAILS

4 delay multiple feedback reverb by Hans Mikelson

CURRENT PRESETS : 1-caveman 2-bathroom 3-live room 4-cathedral 5-medium room 6-dead room

Appartently some presets are unstable. Be careful!

 

PARAMETERS

inL,inR : left and right inputs

outL,outR : left and right outputs

preset : preset number

 

rvbXs(inL'inR'outL'outR'fdbk'fco'dlt1L'dlt2L'dlt3L'dlt4L'dlt1R'dlt2R'dlt3R'dlt4R'fchp)

User configurable stereo reverb

 

DETAILS

4 delay multiple feedback reverb by Hans Mikelson

 

PARAMETERS

inL,inR : left and right inputs

outL,outR : left and right outputs

fdbk : feedback amount

fco : frequency cutoff of the lowpass filters in the feedback loop

dlt1L,dlt2L,dlt3L,dlt4L,dlt1R,dlt2R,dlt3R,dlt4R: delay time, in milliseconds, of the 4 left

and the 4 right delay lines

fchp : frequency cutoff of the highpass filter at the reverb output

 

rvbXs(inL'inR'outL'outR'preset)

Preset stereo reverb

 

DETAILS

3 delay multiple feedback reverb by Hans Mikelson

CURRENT PRESETS :1-live large room 2-dead large room 3-cathedral 4-caveman

 

PARAMETERS

inL,inR : left and right inputs

outL,outR : left and right outputs

preset : preset number

 

xrvbXs(in'out'fdbk'fco'dlt1'dlt2'dlt3)

User configurable mono reverb

 

DETAILS

3 delay multiple feedback reverb by Hans Mikelson

 

PARAMETERS

in : input

out : output

fdbk : feedback amount

fco : frequency cutoff of the lowpass filters in the feedback loop

dlt1,dlt2,dlt3 : delay time, in milliseconds, of the 3 delay lines

 

xrvbXs(inL'inR'outL'outR'lx'ly'lz'sx'sy'sz'Rx'Ry'Rz'Lx'Ly'Lz'alfa'eps'early1'early2'ref'dir'')

DETAILS

BaBo model (a Ball within a Box) by David Rochesso (20-11-96) used as a reverberation device.

Note that the original BaBo code allows dynamic modification of the room size as well as the placement of the sound source and the pickups.

I have no useful presets by now, any contribution would be greatly welcome!

 

PARAMETERS

inL,inR : left and right inputs

outL,outR : left and right outputs

lx,ly,lz : room dimensions

sx,sy,sz : source coordinates

Rx,Ry,Rz : right pickup position

Lx,Ly,Lz : left pickup position

alfa : attn. coeff. for the delay lines

eps : (?)

early1,early2 : early/difusse controls for the 2 stereo channels

ref : weighting parameter for the early reflections

dir : weighting parameter for the direct signal

All the next reverbs have an obvious sintax and are not commented.

rvb7s(in'outL'outR'gain'echotime)

Lyon´s echo1 reverb;includes d/w mix!!

PARAMETERS

gain,echotime (as the name implies)

rvb8s(inL'inR'outL'outR'gain'echotime)

Lyon´s echo2 reverb

rvb9m(in'outL'outR)

Lyon´s gator2 reverb mono input

rvb9s(inL'inR'outL'outR)

Lyon´s gator2 reverb stereo input

rvb10m(in'outL'outR)

E. Lyon´s Lmultitap reverb

rvb11s(inL'inR'outL'outR)

E. Lyon´s Lmultitap2 reverb

rvb12s(inL'inR'outL'outR)

Lyon´s Rev1 reverb (dry/wet mix of .65/.35 in the orgininal file)

rvb13s(in'outL'outR)

Lyon´s Rev2 reverb

Panning tap based stereo reverb : mono input only

outputs only the wet signal, dry/wet mix suggested in the original score : .5/.5

rvb14m(in'out)

E.Lyon´s Rev3 instrument,

a tighter reverb (Lyon uses a d/w mix of .5/.5)

rvb15s(inL'inR'outL'outR)

Lyon´s Rev4 reverb (Lyon suggests a d/w mix of .1/.9)

rvb16m(in'out)

Lyon´s Rev5 reverb

rvb17m(in'outL'outR)

Lyon´s Rev6 reverb

rvb18m(in'out)

Lyon´s Rev7 reverb

Mono -> mono reverb, Industrial sound

rvb19m(in'out)

Lyon´s Rev8 reverb

Mono -> mono reverb with resonance moving

rvb19s(inL'inR'outL'outR)

Lyon´s Rev8 reverb stereo->stereo version

rvb20m(in'out)

Lyon´s Rev9 reverb

rvb21s(inL'inR'outL'outR)

Lyon´s Rev10 reverb

2in 2out wet reverb

rvb22s(in'outL'outR)

Lyon´s Rev11 reverb

rvb23s(inL'inR'outL'outR)

Lyon´s Rev12 reverb

Chorus, comb based reverb - stereo in stereo out,

rvb24s(in'outL'outR)

Lyon´s Reverb2 reverb

Panning tap based stereo reverb : mono input only

 

xrvb25s(in'out'rvbt)

Brandt´s Moorer´s reverb implementation

Moorer's circulating-delay reverb, w/ lowpasses and fine-tuned early echoes.

fancy Moorer-17

 

PARAMETERS

rvbt : reverb time. Used to set up a sort of virtual room model with the requested reverberation time.