linux: shared memory interface - link with librt
[supercollider.git] / HelpSource / Classes / RecNodeProxy.schelp
blob6531a480448b721c720ee31e19be843910508eab
1 class:: RecNodeProxy
2 summary:: a NodeProxy that can record
3 categories:: Libraries>JITLib>NodeProxy
4 related:: Classes/NodeProxy
6 description::
7 this is also created from a link::Classes/NodeProxy::, or an link::Classes/Ndef:: with the message strong::record::.
9 ClassMethods::
11 method::new
12 see superclass
14 method::audio
15 see superclass
17 method::newFrom
18 instantiate a new proxy that listens to the in proxy.
20 InstanceMethods::
22 method::open
23 open new file and initialize buffer on server
25 method::record
26 start the recording synth.
28 argument::paused
29 if paused is false start recording immediately.
31 method::close
32 stop recording, close file
34 method::isRecording
35 see if recording right now
37 method::wakeUp
38 until the proxy is not used by any output ( either .play or .ar/.kr ) it is not running on the server. you can wake it up to force it playing.
40 Examples::
42 code::
43 s.boot;
45 a = RecNodeProxy.audio(s, 2);
46 a.source = { SinOsc.ar([400,500], 0, 0.1) };
47 a.play; //monitor;
48 a.open("xproxySpace.aif");
49 a.record(false);
51 a.source = { SinOsc.ar([400,700], 0, 0.1) };
52 a.source = { SinOsc.ar([410,510], 0, 0.1) };
53 a.source = { SinOsc.ar([LFNoise1.kr(80, 100, 300),500], 0, 0.1) };
55 //stop recording and close file
56 a.close;
58 //monitor off
59 a.stop;
62 subsection::recording from some bus
64 code::
65 a = Bus.audio(s, 2);
67 SynthDef("test", { arg out; Out.ar(out, { WhiteNoise.ar(0.1) }.dup(2)) }).send(s);
68 x = Synth("test", [\out, a]);
71 n = RecNodeProxy.audio(s, 2);
72 n.source = { InFeedback.ar(a, 2) };
74 n.play;//monitor
75 n.stop;//turn off monitor
77 n.open("noise.aif");
78 n.record;
79 n.unpause;
81 n.close;
84 subsection::instance creation from an existent node proxy
86 code::
87 b = NodeProxy.audio(s, 2);
88 b.play; //listen to b
89 b.source = { SinOsc.ar([400,500], 0, 0.1) }; //play something
91 r = RecNodeProxy.newFrom(b);
92 r.open("recproxy514.aif"); //open file
93 r.record; //start recorder (paused)
95 r.unpause; //start recording
97 b.source = { SinOsc.ar([430,500], 0, 0.1) };
98 b.source = { SinOsc.ar([410,510], 0, 0.1) };
99 b.source = { SinOsc.ar([LFNoise1.kr(80, 100, 300), 500], 0, 0.1) };
100 r.pause;
101 b.source = { WhiteNoise.ar(0.01) };
102 r.unpause;
103 r.pause;
106 //stop recording and close file
107 r.close;
108 b.stop; //stop listen to b
111 subsection::instance creation from an existent node proxy again
113 code::
114 b = NodeProxy.audio(s, 2);
115 b.play; //listen to b
116 b.source = { SinOsc.ar([400,500], 0, 0.1) }; //play something
118 r = b.record("recproxy101.aiff"); //start recorder (paused)
119 r.unpause; //start recording
120 r.close; //end recording, close file
121 b.stop; //stop listen
124 subsection::recording from other sources
126 code::
127 s.boot;
129 a = RecNodeProxy.audio(s, 2);
130 b = a.index; //get the bus index;
131 a.play;         //monitor;
132 a.open("xproxySpace.aif");
133 a.record;
134 a.unpause;
137 Routine({
138         var id;
139         loop({
140                 id = s.nextNodeID;
141                 s.sendMsg("/s_new", "default", id,0,0, \out, b, \freq, rrand(400, 800));
142                 0.2.wait;
143                 s.sendMsg("/n_set", id, \gate, 0);
144                 0.2.wait;
145         })
146 }).play;
150 //stop recording and close file
151 a.close;
153 //monitor off
154 a.stop;