我正在编程一个控制器,用于使用基于Python的API与Ableton Live 8一起使用。在我的代码中,我使用API中提供的方法来监视属性值的变化,并在值发生变化时调用函数。我的目标是在注意到值更改时更改剪辑的颜色。
我已经完成了我的代码,并且编译没有错误。来自Ableton的日志:
742234 ms. RemoteScriptError: RuntimeError
742234 ms. RemoteScriptError: :
742234 ms. RemoteScriptError: Changes cannot be triggered by notifications
742234 ms. RemoteScriptError:
这似乎是使用内置通知系统在通知期间更改实时集的结果。触发实际更改 AFTER 监听功能已完成执行应该有效。这可能是使用Python吗?
编辑以澄清:
目前我们有
我们需要
答案 0 :(得分:1)
我在M4L做了很多,并且心里明白这个错误:) 我担心你无法做任何事情 - 对于我的noob眼睛,它看起来像一个内置的安全机制,所以你不能循环(改变了一些东西?改变它!改变了......)。
在M4L中,我使用Javascript Tasks来分离步骤(任务几乎忘记了所有事情),
之类的东西观察员 - >改变了一些事情
创建一个反应
的任务task.execute()或task.schedule(time)
也许python线程模块可以实现类似的东西? 顺便说一句,如果您对_Framework-Tasks有任何了解,请告诉我。
答案 1 :(得分:0)
我在尝试从剪辑停止侦听器中删除曲目时遇到了同样的问题,然后我找到了这个帖子,并按照@ user2323980建议。 似乎有一个" _tasks"每个Framework类上的对象(我通过ClipSlotComponent和ControlSurface中的log_message找到它)来处理任务之间的并发。它的使用非常简单:
self._tasks.add(Task.run(func,args))
我在Push和MK2脚本上发现了它的一些用途,这些都是很好的参考。