【问题标题】:How to get OSC to interact with Scheduling Routine in Supercollider如何让 OSC 与 Supercollider 中的调度程序交互
【发布时间】:2019-02-14 13:41:50
【问题描述】:

我正在尝试使用 OSC 消息传递作为在 Supercollider 中调度任务/例程的一种方法。具体来说,我希望例程等到通过 OSC 接收到消息后再恢复。因此,而不是(例如) 10.wait 我想要 - 类似:等待(OSC 侦听器 - 收到消息,所以继续)。我已经梳理了 Supercollider 文档,但找不到任何可以适应这种情况的东西。任何关于解决方案的建议将不胜感激..

【问题讨论】:

    标签: osc supercollider


    【解决方案1】:

    查看Condition 对象的文档。您可以创建一个Condition,在一个线程中等待它,然后使用condition.unhangcondition.test_(true).signal 在稍后/从另一个线程恢复该线程。

    您的 OSC 消息处理程序的代码可能类似于:

    ~stepCond = Condition();
    
    Routine({
        "starting".postln;
        ~stepCond.wait;
        "continuing".postln;
    }).play;
    
    OSCfunc(\step, {
        ~stepCond.unhang();
    }, '/step')
    

    【讨论】:

      猜你喜欢
      • 2019-04-01
      • 2019-09-29
      • 1970-01-01
      • 2012-05-06
      • 2010-10-22
      • 1970-01-01
      • 2023-03-03
      • 2016-03-03
      • 1970-01-01
      相关资源
      最近更新 更多