ERain - Supercollider



















(
SynthDef(\test, {arg roomsize, revtime, damping, inputbw, spread = 15, drylevel, earlylevel,
        taillevel;
    var a = Resonz.ar(
        Array.fill(4, {SinOsc.ar(170)}), 1760 * [1, 2, 4, 8], 0.01).sum * 10;
   // var a = SoundIn.ar(0);
   // var a = PlayBuf.ar(1, 0);
    Out.ar(0, GVerb.ar(
        a,
        roomsize,
        revtime,
        damping,
        inputbw,
        spread,
        drylevel.dbamp,
        earlylevel.dbamp,
        taillevel.dbamp,
        roomsize, 0.3) + a)}).load(s)
)

s = Server.internal.boot;
s.scope(2);

// bathroom
a = Synth(\test, [\roomsize, 150, \revtime, 0.6, \damping, 0.62, \inputbw, 0.48, \drylevel -6, \earlylevel, -11, \taillevel, -13]);
a.free

A two-channel reverb UGen, based on the "GVerb" LADSPA effect by Juhana Sadeharju (kouhia at nic.funet.fi).
Known issues
There is a large CPU spike when the synth is instantiated while all the delay lines are zeroed out.
Quick changes in roomsize result in zipper noise.
Changing the roomsize does not work properly! Still trying to look for the bug... (-josh)
Class Methods
*ar (in, roomsize: 10, revtime: 3, damping: 0.5, inputbw: 0.5, spread: 15, drylevel: 1, earlyreflevel: 0.7, taillevel: 0.5, maxroomsize: 300, mul: 1, add: 0)
Arguments:
in
mono input.
roomsize
in squared meters.
revtime
in seconds.
damping
0 to 1, high frequency rolloff, 0 damps the reverb signal completely, 1 not at all.
inputbw
0 to 1, same as damping control, but on the input signal.
spread
a control on the stereo spread and diffusion of the reverb signal.
drylevel
amount of dry signal.
earlyreflevel
amount of early reflection level.
taillevel
amount of tail level.
maxroomsize
to set the size of the delay lines. Defaults to roomsize + 1.
mul

add



Categories: Share

Leave a Reply