大量的Python OSC模块 - 哪一个使用?

Wes*_*des 20 python python-module osc

开放声音控制(OSC)是用于计算机,声音合成器和其他多媒体设备之间通信的协议,其针对现代网络技术进行了优化.将OSC与MAX/MSP一起使用是特别常见的 - 这实际上就是我正在做的事情,使用OSC和Python与MAX中的另一个子系统进行通信.

有一堆支持OSC的python模块.大.他们都声称自己简单,实用,完美.面临主观领域的风险,您的经验建议用于以下模块的用例是什么?

我想一个简单的实现对我来说是最好的,因为我对OSC只有一点了解.我正在使用Python 2.7.

ptr*_*ptr 10

我在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)
Run Code Online (Sandbox Code Playgroud)

  • 这对我有用:sudo pip install pyosc --pre (3认同)

小智 8

对于每次遇到这个stackoverflow问题的人来说,每次他们都在寻找python OSC实现,并且需要为Python 3实现一个有效的OSC实现 - 我可以确认osc4py3运行良好且有详细记录.

我对2018年1月22日的调查结果如下:

pyOSC:似乎没有维护,我找不到一个有效的Python3版本,我发现声称为python3更新的版本的一些链接被破坏了.

aiosc:在测试中工作(并且看起来像一个很酷的实现)但由于某种原因,在我需要的带宽几秒钟之后,它失败了"太多打开文件"错误.

osc4py3:安装了pip,运行良好,只要我确保在每条消息之后调用osc_process(),就会给我零问题,每秒大约有一千条消息.

可能还有另一个OSC版本,特别是为py3k设计的,并且更多的人正在使用,但由于该领域仍然有点不透明,我觉得这可能是最适合分享它的地方.我希望它能节省一些时间.

  • osc4py3 有很好的文档,您可以选择线程模型(即无线程,因为线程对于某些应用程序来说太滞后)。代码主机是 svn,这对某些人来说可能是一个挑战。此外,许可证不是很常见的 CeCILL-2.1 - (基本上是 GPL,但法语)。 (2认同)
  • 大家好,我是 aiosc 的作者:) 我已经更新了自述文件,以突出显示发送消息的方式,以确保您不会打开太多套接字,对于文档中的混乱表示抱歉。 (2认同)

Fiz*_*izz 6

这不是问题所针对的问题,但我认为这是值得一提的:各种Python OSC模块的一个令人烦恼的事情是,大多数使用Python 2.x或Python 3.x 但不同时使用Python ,表示您将来可能需要更改代码库并重写部分应用程序.

我发现的唯一一个目标是Python 2.x和3.x的是Pyliblo,它实际上是C库Liblo的包装器.Liblo已经过专门的测试,可以与Pd和SuperCollider一起使用(参见主页末尾的注释),这是我在使用这些库时最关心的... Liblo的一个缺点是工作起来有点困难在MS Windows上,因为它仅支持POSIX线程(pthreads)而不支持本机win32线程API,因此您需要一个仿真库,如http://liblo.sourceforge.net/README-platforms.html中所述.但您也可以在Windows上禁用线程编译它.