基于异步的最小开放式声音控制(osc)通信模块

aiosc的Python项目详细描述


这是一个实验性的最低限度开放式声音控制(OSC)通信 使用Asyncio进行网络操作并与 异步事件循环。

安装

aiosc至少需要python 3.5。它可以使用pip安装:

pip3 install aiosc

或者使用用户选项在本地安装aiosc:

pip3 install --user aiosc

用法

要发送OSC消息,只需使用aiosc.send

importasyncioimportaioscloop=asyncio.get_event_loop()loop.run_until_complete(aiosc.send(('127.0.0.1',9000),'/hello','world'))

要用aiosc实现osc服务器,应该创建udp端点 使用aiosc.OSCProtocol作为协议。OSCProtocol可以是子类 或者直接用字典构造OSC地址模式到 传入消息的处理程序方法:

classEchoServer(aiosc.OSCProtocol):def__init__(self):super().__init__(handlers={'/sys/exit':lambdaaddr,path,*args:sys.exit(0),'//*':self.echo,})defecho(self,addr,path,*args):print("incoming message from {}: {} {}".format(addr,path,args))loop=asyncio.get_event_loop()coro=loop.create_datagram_endpoint(EchoServer,local_addr=('127.0.0.1',9000))transport,protocol=loop.run_until_complete(coro)loop.run_forever()

有关更多示例,请参见examples/

OSC地址模式

aiosc使用glob样式的地址将消息分派给处理程序方法 OSC1.0规范中描述的模式匹配。//运算符 也支持OSC1.1的初步规范。

示例:

  • /hello/world匹配/hello/world
  • /hello/*匹配/hello/world/hello/sarah
  • /{hello,goodbye}//world匹配/hello/world/goodbye/cruel/world
  • //*匹配任何地址。

注释

尚未支持捆绑包。

与大多数osc实现相反,osc数据类型是从 开放式声音控制的特点和未来中的初步规范 NIME纸张的1.1版。例如,“i”类型标签被解码为脉冲 (又名“bang”)作为aiosc.Impulsesingleton传递。

当然,欢迎提出建议、错误报告、问题和/或请求。

许可证

版权所有(c)2014 Artem Popov<;artfwo@gmail.com>;

aiosc是根据mit许可证授权的,详情请参阅许可证文件。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java I使用Hystrix(1.5.18),并设置param ErrorThresholdPercentage=30,当marksuccess时,circuitbreak状态开关始终为   java如何打印数组直到有值。不是完整阵列?   在Java中比较具有不同字节顺序掩码的字符串的编码   javascript无法输入文本区域   java可绘制资源文件更改图像   java错误:“在电梯.jar中没有主清单属性”   java如何在Android中使用画布绘制在弧顶上的线路径   java Spring Boot WebMVCConfigureAdapter服务损坏的映像   Java11JavaCompiler抛出Java。仅限linux上的lang.StackOverflower错误   java eclipse对axis2的支持   java如何通过socket发送图像   JPA保留的java OffsetDateTime相差2小时   java重载不属于多态性吗?   java无需身份验证即可发送电子邮件   Android Studio中的java交互式微调器   JSP:在Javascript中使用java变量   生命、宇宙和一切java中的spoj编译错误