p0 = output start time (seconds) p1 = input start time (seconds) p2 = input duration (seconds) p3 = amplitude multiplier (relative multiplier of input signal) p4 = reverb time (seconds, > 0) p5 = reverb amount (0: dry --> 1: wet) p6 = right channel delay time (seconds, > 0) p7 = cutoff freq for low-pass filter (Hz, 0 will disable filter) p8 = apply DC blocking filter (0: No, 1: Yes) [optional; default is 1] p9 = ring-down duration [optional; default is p4) p3 (amplitude), p4 (reverb time), p5 (reverb percent) and p7 (cutoff) can receive dynamic updates from a table or real-time control source. Author: John Gibson, 6/24/99 rev for v4, 7/11/04 based on original code by Paul Lansky
Here's how REVERBIT works:
The chan0delay parameter (p6) governs the delay time between output channels. A small amount (e.g., .02 seconds) livens up the sound; a larger amount makes an audible slap echo.
The amplitude multiplier (p3, "AMP") is applied to the input sound before it enters the reverberator.
The point of the optional ring-down duration parameter (p9, "ringdowndur") is to let you control how long the reverb will ring after the input has stopped. If the reverb time is constant, REVERBIT will figure out the correct ring-down duration for you. If the reverb time is dynamic, you must specify a ring-down duration if you want to ensure that your sound will not be cut off prematurely.
REVERBIT requires stereo output. The input file can be either mono or
stereo. If the input is from a real-time source, such as live audio in or
an aux bus, p1 ("inskip") has to be 0.
Sample Scores
rtsetparams(44100, 2) load("NOISE") load("REVERBIT") bus_config("NOISE", "aux 0 out") bus_config("REVERBIT", "aux 0 in", "out 0-1") totdur = 7 for (st = 0; st < totdur; st = st + .3) NOISE(st, notedur=.1, amp=20000) REVERBIT(outskip=0, inskip=0, totdur + notedur, amp=1, revtime=.6, revpct=.4, rtchandel=.02, cutoff=5000)