【发布时间】:2014-03-22 12:04:22
【问题描述】:
我正在尝试将 OSC 消息绑定松散耦合到处理它们的函数:
f = {|msg| msg.postln};
OSCFunc({|msg, time, addr, recvPort| f(msg)}, '/2/push1')
我认为这很简单。我可以在任何时候替换 f,因此随意处理来自路径 /2/push1 的消息。
但是当我点击按钮(发送带有路径/2/push1 的消息)时,我收到一条错误消息:
Message 'f' not understood.
所以我猜f 在对OSCFunc 的调用中声明的函数范围内具有不同的含义。我猜它有不同的Environment?
我还尝试将函数放入常规变量中:
(
var myFunction = {|msg| msg.postln};
OSCFunc({|msg, time, addr, recvPort| myFunction(msg)}, '/2/push2');
)
但这会导致同样的错误。
有没有办法解决这个问题?当然我不必每次都在OSCFunc 中放置整个函数体吗?
【问题讨论】:
标签: osc supercollider