SuperCollider CLASSES

Done

Monitors another UGen to see when it is finished
Inherits from: UGen : AbstractFunction : Object

Description

Some UGens set a 'done' flag when they are finished playing. This UGen echoes that flag when it is set to track a particular UGen.

The UGens trackable by Done are:

Class Methods

*kr (src)

Arguments:

src

UGen to monitor

Inherited class methods

Instance Methods

Inherited instance methods

Examples

The 'done' flag can be used to trigger other things in the same synth:

(
SynthDef("Done-help", { arg out, t_trig;
    var line, a, b;

    line= Line.kr(1,0,1);

    a= SinOsc.ar(440,0,0.1*line); //sound fading out
    b= WhiteNoise.ar(Done.kr(line)*0.1); //noise starts at end of line

    Out.ar(out, Pan2.ar(a+b));
}).add;
)

Synth("Done-help"); //note that this synth doesn't have it's own doneAction, so you'll need to manually deallocate it

The 'done' flag can be used to trigger a delayed freeing of the current synth, which is not possible by using UGen done-actions :

play {
    var env = Line.kr(1,0,2);
    var sig = PinkNoise.ar(env);
    FreeSelf.kr(TDelay.kr(Done.kr(env),3));
    GVerb.ar(sig,70,7);
}