Merge pull request #506 from andrewcsmith/patch-2
[supercollider.git] / HelpSource / Reference / UGen-doneActions.schelp
blob96028ec8d0f208d0ae1d071aefbb46ca7e923d4c
1 title:: UGen done-actions
2 summary:: Actions to take when an UGen has finished
3 categories:: UGens, Server>Nodes
4 related:: Classes/UGen, Classes/Done, Classes/FreeSelfWhenDone
5 keyword:: doneAction
6 keyword:: done action
7 keyword:: done actions
8 keyword:: doneactions
11 A number of UGens implement doneActions. These allow one to optionally free or pause the enclosing synth and other related nodes when the UGen is finished.
13 list::
14 ## link::Classes/PlayBuf::
15 ## link::Classes/RecordBuf::
16 ## link::Classes/EnvGen::
17 ## link::Classes/Line::
18 ## link::Classes/XLine::
19 ## link::Classes/Linen::
20 ## link::Classes/LFGauss::
21 ## link::Classes/DemandEnvGen::
22 ## link::Classes/DetectSilence::
23 ## link::Classes/PlayBuf::
24 ## link::Classes/Duty::
25 ## link::Classes/TDuty::
28 section:: Actions
29 The available done actions are as follows:
30 table::
31 ## 0 || do nothing when the UGen is finished
32 ## 1 || pause the enclosing synth, but do not free it
33 ## 2 || free the enclosing synth
34 ## 3 || free both this synth and the preceding node
35 ## 4 || free both this synth and the following node
36 ## 5 || free this synth; if the preceding node is a group then do g_freeAll on it, else free it
37 ## 6 || free this synth; if the following node is a group then do g_freeAll on it, else free it
38 ## 7 || free this synth and all preceding nodes in this group
39 ## 8 || free this synth and all following nodes in this group
40 ## 9 || free this synth and pause the preceding node
41 ## 10 || free this synth and pause the following node
42 ## 11 || free this synth and if the preceding node is a group then do g_deepFree on it, else free it
43 ## 12 || free this synth and if the following node is a group then do g_deepFree on it, else free it
44 ## 13 || free this synth and all other nodes in this group (before and after)
45 ## 14 || free the enclosing group and all nodes within it (including this synth)
48 For information on code::freeAll:: and code::deepFree::, see link::Classes/Group:: and link::Reference/Server-Command-Reference::.
50 section:: Alternatives
51 Another way to free a synth when some UGen is done playing is to use link::Classes/FreeSelfWhenDone::, or link::Classes/FreeSelf:: in combination with link::Classes/Done::. For example, this can be used to delay the freeing to let reverb tails fade out, etc.