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.