2024-05-16 07:10:03 发布
网友
开放式声音控制(OSC)是一种在计算机、声音合成器和其他多媒体设备之间进行通信的协议,是为现代网络技术而优化的。在MAX/MSP中使用OSC尤其常见——事实上这就是我所做的,使用OSC和Python与MAX中的另一个子系统进行对话
有很多python模块支持OSC。伟大的。他们都声称自己简单、有用、完美。冒着接近主观领域的风险,您的经验对以下模块建议了哪些用例?
我想一个简单的实现对我来说是最好的,因为我对OSC只略知一二。我使用的是Python2.7。
对于那些每次在寻找python OSC实现时遇到stackoverflow问题并且需要python 3的有效OSC实现的人来说,我可以确认osc4py3工作良好并且有很好的文档记录。
我2018年1月22日的调查结果:
pyOSC:似乎没有被维护,我找不到一个可用的Python3版本,我找到的指向声称要为Python3更新的版本的一些链接已断开。
aiosc:在测试中工作过(看起来是一个很酷的实现),但由于某种原因,在我需要的带宽数秒后,它因“打开的文件太多”错误而失败。
osc4py3:与pip一起安装,运行良好,每秒大约有1000条消息给我带来零个问题,只要我确保在每条消息之后调用osc_process()。
可能还有另一个OSC版本,特别是为py3k设计的,更多的人正在使用,但由于这个领域仍然有点不透明,我觉得这可能是最适合分享这个。我希望这能节省别人一点时间。
我在OSX上使用pyOSC非常成功。代码并没有进行太多的开发,但这很可能是由于它的稳定性和简单性。我曾试过txosc,可能需要进一步测试。
我对pyosc的使用是有限的,但它工作得很好。例如
import OSC c = OSC.OSCClient() c.connect(('127.0.0.1', 57120)) # connect to SuperCollider oscmsg = OSC.OSCMessage() oscmsg.setAddress("/startup") oscmsg.append('HELLO') c.send(oscmsg)
这并不完全是问题所在,但我认为这里值得一提:各种Python OSC模块的一个令人恼火的地方是,大多数都可以使用Python 2.x或Python 3.x但不能同时使用这两个模块,这意味着您将来可能需要更改代码基并重写部分应用程序。
我发现唯一一个同时以Python 2.x和3.x为目标的是Pyliblo,它实际上是C库Liblo的包装器。Liblo已经过专门的测试,可以与Pd和supercallider一起工作(见主页末尾的注释),这是我在使用这些库时最关心的。。。Liblo的一个缺点是,在MS-Windows上工作有点困难,因为它只支持POSIX线程(pthreads),而不支持本机win32线程API,因此需要一个仿真库,如http://liblo.sourceforge.net/README-platforms.html所述。但是,您也可以在Windows上禁用线程的情况下编译它。
对于那些每次在寻找python OSC实现时遇到stackoverflow问题并且需要python 3的有效OSC实现的人来说,我可以确认osc4py3工作良好并且有很好的文档记录。
我2018年1月22日的调查结果:
pyOSC:似乎没有被维护,我找不到一个可用的Python3版本,我找到的指向声称要为Python3更新的版本的一些链接已断开。
aiosc:在测试中工作过(看起来是一个很酷的实现),但由于某种原因,在我需要的带宽数秒后,它因“打开的文件太多”错误而失败。
osc4py3:与pip一起安装,运行良好,每秒大约有1000条消息给我带来零个问题,只要我确保在每条消息之后调用osc_process()。
可能还有另一个OSC版本,特别是为py3k设计的,更多的人正在使用,但由于这个领域仍然有点不透明,我觉得这可能是最适合分享这个。我希望这能节省别人一点时间。
我在OSX上使用pyOSC非常成功。代码并没有进行太多的开发,但这很可能是由于它的稳定性和简单性。我曾试过txosc,可能需要进一步测试。
我对pyosc的使用是有限的,但它工作得很好。例如
这并不完全是问题所在,但我认为这里值得一提:各种Python OSC模块的一个令人恼火的地方是,大多数都可以使用Python 2.x或Python 3.x但不能同时使用这两个模块,这意味着您将来可能需要更改代码基并重写部分应用程序。
我发现唯一一个同时以Python 2.x和3.x为目标的是Pyliblo,它实际上是C库Liblo的包装器。Liblo已经过专门的测试,可以与Pd和supercallider一起工作(见主页末尾的注释),这是我在使用这些库时最关心的。。。Liblo的一个缺点是,在MS-Windows上工作有点困难,因为它只支持POSIX线程(pthreads),而不支持本机win32线程API,因此需要一个仿真库,如http://liblo.sourceforge.net/README-platforms.html所述。但是,您也可以在Windows上禁用线程的情况下编译它。
相关问题 更多 >
编程相关推荐