linux: shared memory interface - link with librt
[supercollider.git] / HelpSource / Classes / NodeMap.schelp
blob682ba6ff5688f4fca1c186aed85a231c5fa1f64b
1 class:: NodeMap
2 summary:: store control values and bus mappings
3 categories:: Libraries>JITLib>NodeProxy
4 related:: Classes/Bus
6 description::
7 Object to store control values and bus mappings independant of of a specific node.
9 InstanceMethods::
11 method::set
12 set arguments of a node
14 method::map
15 set bus mappings of a node
17 method::unset
18 remove settings
20 method::unmap
21 remove mappings
23 method::setn
24 set ranges of controls
26 method::mapn
27 map num busses mappings to node
29 method::at
30 return setting at that key.
32 method::sendToNode
33 apply a setting to a node by sending a bundle
35 method::send
36 apply a setting to a node by sending a bundle
38 method::addToBundle
39 add all my messages to the bundle
41 Examples::
43 code::
45 s.boot;
48 SynthDef("modsine",
49         { arg freq=320, amp=0.2;
50                 Out.ar(0, SinOsc.ar(freq, 0, amp));
51         }).send(s);
52 SynthDef("lfo",
53         { arg rate=2, busNum=0;
54                 Out.kr(busNum, LFPulse.kr(rate, 0, 0.1, 0.2))
55         }).send(s);
58 //start nodes
60 b = Bus.control(s,1);
61 x = Synth("modsine");
62 y = Synth.before(x, "lfo", [\busNum, b]);
65 //create some node maps
67 h = NodeMap.new;
68 h.set(\freq, 800);
69 h.map(\amp, b);
71 k = NodeMap.new;
72 k.set(\freq, 400);
73 k.unmap(\amp);
76 //apply the maps
78 h.sendToNode(x); //the first time a new bundle is made
79 k.sendToNode(x);
81 h.sendToNode(x); //the second time the cache is used
82 k.sendToNode(x);
84 h.set(\freq, 600);
86 h.sendToNode(x); //when a value was changed, a new bundle is made
88 //free all
89 x.free; b.free; y.free;