我对SuperCollider + OSC不满意,现在看来我对它还没有正确的了解。
此代码应执行以下操作:
( Server.default = Server.internal; s = Server.default; s.boot; SynthDef(\fly, { arg freq = 500; Out.ar(0, SinOsc.ar(freq, 0, 0.1)) }).add; ~fly = Synth.new(\fly); OSCdef.new( \move, {arg msg; [msg].postln; ~fly.set(\freq, msg[0]); }, '/move', nil, 57120 ); )
显然,它不能按预期工作。不能通过运行整个脚本来创建合成器。我需要自己运行每个块。另外,OSCDef中的调用也不知道~fly
合成器:FAILURE IN SERVER /n_set Node 1000 not found
。
答案 0 :(得分:0)
JITLib使用了环境变量并添加了许多行为。如果要使用普通变量并自己管理Synth,请使用单字符变量[a..z]之一,而不要使用~fly
。否则,您可以让JITLib做它的事情,在这种情况下,这样的事情将起作用:
(
Server.default = Server.internal;
s = Server.default;
s.boot;
~fly = { arg freq = 500;
SinOsc.ar(freq, 0, 0.1)
};
OSCdef.new(
\move,
{arg msg;
[msg].postln;
~fly.set(\freq, msg[0]);
},
'/move',
nil, 57120
);
)
参考: