reverb — Reverberates an input signal with a “natural room” frequency response.
iskip (optional, default=0) -- initial disposition of delay-loop data space (cf. reson). The default value is 0.
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.
Here is an example of the reverb opcode. It uses the file reverb.csd.
Example 763. 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>