SCDoc: Use proper static string constants instead of comparing string literals.
[supercollider.git] / HelpSource / Reference / NodeEvent.schelp
blob06559f2f6b7bce7113f1ca7616a57b00f25cce2a
1 title:: NodeEvent
2 categories:: Streams-Patterns-Events
3 related:: Classes/Event
4 summary:: synth- and group- like interface of Event
6 description::
7 The methods link::Classes/Event#-synth:: and link::Classes/Event#-group:: set the parent event of the receiver to specialized events that duplicate the functionality of link::Classes/Synth:: and link::Classes/Group:: objects. These objects follow the naming conventions of patterns (i.e., groups and addActions are integer ID's) and have the same stop/play/pause/resume interface as the EventStreamPlayers created by Pattern-play. So, they can be used interchangeably with patterns in control schemes and GUI's.
9 The following example creates a group with nodeID = 2 and plays a synth within it.
11 code::
12 g = (id: 2).group;
13 g.play;
14 a = (group: 2).synth;
15 a.play;
16 g.release;
17 g.stop;
20 subsection::Interface
22 method:: play
23 starts synth or group, returns this.delta
24 method:: stop
25 if ev[\hasGate] == true set gate to 0, otherwise frees the node
26 method:: pause
27 disables the node
28 method:: resume
29 reenables the node
30 method:: set ( key, value)
31 sets control identified by key to value
32 method:: split
33 returns an array of events, one for each synth or group specified by the receiver
34 method:: map (key, busID)
35 maps control to control bus
36 method:: before (nodeID)
37 moves to immediately before nodeID
38 method:: after (nodeID)
39 moves to immediately after nodeID
40 method:: headOf (nodeID)
41 moves to immediately to head of nodeID
42 method:: tailOf (nodeID)
43 moves to immediately to tail of nodeID
45 subsection:: Multi-channel expansion
46 With the exception of ~server, ~latency, and ~instrument any key in the event can have an array as a
47 value and the standard rules of multi-channel expansion will be followed.
49 Examples::
51 code::
52 // Here is a simple example of its use:
54 // define a multiple Group event
55 g = (id: [2,3,4,5,6], group: 0, addAction: 1).group;
56 g.play; // play it
58 // make a Synth event
59 b = ( freq: [500,510], group: [2,3]).synth;
60 b.play;
62 b.set(\freq,[1000,1006]);
64 g.release;
66 b.play;
67 h = g.split;    // split into individual group events
68 c = b.split;    // and synth events
69 c[0].set(\freq,700);
70 c[1].set(\freq,400);
72 h[0].stop;
73 h[1].stop;
75 g.stop;