基于异步的最小开放式声音控制(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为什么我们不能将ArrayList<Integer>传递给具有(Integer…)的方法参数   java Spring RestTemplate映射JSON对映射的响应引发不匹配的PutException   在系统中找到java Selenium元素,但在Jenkins中未找到   java在Android中使用JavaMail API发送电子邮件,而不使用默认/内置应用程序   数组如何在Java数据结构中同时存储数字和相应的单词?   为什么“+”运算符未定义?JAVA   java如何在游戏中添加高分系统?   java在球门碰撞中区分球和球员   java如何使用SpringSecurity4.0.1使用Auth令牌实现Rest完整Web服务。释放   java如何解决这个错误:Android资源链接失败?   java多线程文件处理和数据库批插入   导致Tomcat失败的java无用块线程   java主线程做了太多的工作,尽管我使用了异步线程(laggy UI)   在Java FX 2.0中滚动锚定节点时,锚定始终可见?   java使用EJB3中的客户机jar和设计模式