查询pyOSC上的值

时间:2015-10-12 02:14:52

标签: python midi osc

我正在使用python脚本向OSU的Cuemix软件发送OSC消息。经过多次讨论之后,我终于能够设置一个高值,并使用两个不同的脚本设置一个低值。

这些脚本是SND_UP和SND_DOWN:https://github.com/derjur/KnobOSC

这很棒,但是这个项目的目的是让旋钮以可配置的粒度上下转动。但我需要知道Cuemix旋钮的当前值,以便在我的脚本中按相对数量更改它。

tl; dr - 我需要通过OSC查询设备的状态以获取其当前值...

此外,当我在服务器模式下运行pyosc时,我收到各种OSC地址的错误...(发布与我想要修改的控件相关的几千行的一行)。

OSCServer: NoCallbackError on request from NYNAEVE:50106: No callback registered to handle OSC-address '/dev/0/0/mon'

1 个答案:

答案 0 :(得分:1)

我知道这已经很久了,但这对某些人来说可能会有好处。

使用pyOSC实现接收器时,您需要创建一个函数来处理接收到的值。错误消息显示您没有指定回调处理程序,但正如您可以看到here on the example,您应该执行以下操作:

def default_handler(addr, tags, stuff, source):
    print "SERVER: No handler registered for ", addr
    return None

def user_callback(path, tags, args, source):
    # which user will be determined by path:
    # we just throw away all slashes and join together what's left
    user = ''.join(path.split("/"))
    # tags will contain 'fff'
    # args is a OSCMessage with data
    # source is where the message came from (in case you need to reply)
    print ("Now do something with", user,args[2],args[0],1-args[1]) 

server.addMsgHandler("default", default_handler)
server.addMsgHandler( "/user/1", user_callback )
server.addMsgHandler( "/user/2", user_callback )

library example是了解这些内容的好方法。