reverb

reverb — Reverberates an input signal with a natural room frequency response.

Description

Reverberates an input signal with a natural room frequency response.

Syntax

ares reverb asig, krvt [, iskip]

Initialization

iskip (optional, default=0) -- initial disposition of delay-loop data space (cf. reson). The default value is 0.

Performance

krvt -- the reverberation time (defined as the time in seconds for a signal to decay to 1/1000, or 60dB down from its original amplitude).

A standard reverb unit is composed of four comb filters in parallel followed by two alpass units in series. Loop times are set for optimal natural room response. Core storage requirements for this unit are proportional only to the sampling rate, each unit requiring approximately 3K words for every 10KC. The comb, alpass, delay, tone and other Csound units provide the means for experimenting with alternate reverberator designs.

Since output from the standard reverb will begin to appear only after 1/20 second or so of delay, and often with less than three-fourths of the original power, it is normal to output both the source and the reverberated signal. If krvt is inadvertently set to a non-positive number, krvt will be reset automatically to 0.01. (New in Csound version 4.07.) Also, since the reverberated sound will persist long after the cessation of source events, it is normal to put reverb in a separate instrument to which sound is passed via a global variable, and to leave that instrument running throughout the performance.

Examples

Here is an example of the reverb opcode. It uses the file reverb.csd.

Example 897. Example of the reverb opcode.

See the sections Real-time Audio and Command Line Flags for more information on using command line flags.

<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-odac   ;;;realtime audio out
;-iadc    ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o reverb.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>

sr = 44100 
ksmps = 32 
0dbfs  = 1 
nchnls = 2

ga1 init 0 

instr 1 

asig poscil .2, cpspch(p4), 1 
     outs asig, asig 

ga1  += asig     ;add direct signal to global reverb
 
endin

instr 99	;(highest instr number executed last)

arev reverb ga1, 1.5
     outs arev, arev 
  
ga1  = 0	;clear
endin


</CsInstruments>
<CsScore>
f 1 0 128 10 1	;sine

i 1 0 0.1 7.00	;short sounds
i 1 1 0.1 8.02
i 1 2 0.1 8.04
i 1 3 0.1 8.06

i 99 0 6	;reverb runs for 6 seconds
e
</CsScore>
</CsoundSynthesizer>


See Also

alpass, comb, valpass, vcomb

Credits

Author: William Pete Moss
University of Texas at Austin
Austin, Texas USA
January 2002