2015-10-12 2 views
1

Я работаю над скриптом python для отправки сообщений OSC в программное обеспечение Cuemix от MOTU. После много хакерства я наконец смог установить большое значение и низкое значение с двумя разными скриптами.Запрос значения над pyOSC

Этих сценарии SND_UP и SND_DOWN: https://github.com/derjur/KnobOSC

Это здорово и все, но суть этого проекта было получить поворотную ручку, чтобы повернуть вверх и вниз с настраиваемой зернистостью. Но мне нужно знать текущее значение ручки Cuemix, чтобы изменить ее на относительную величину в моих сценариях.

Т.Л., д-р - мне нужно запросить состояние устройства через OSC, чтобы получить его текущее значение ...

Кроме того, когда я бегу pyosc в режиме сервера, я получаю эту ошибку для всех видов OSC адреса ... (отправка одной строки из нескольких тысяч, относящейся к элементу управления, который я хочу изменить).

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

+0

Какие настройки вы настроили в конфигурации OSC на Cuemix? – salgarcia

+0

Я смог использовать приложение iPad TouchOSC для управления Cuemix, поэтому конфигурация не была подозрительной. – derjur

ответ

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 является отличным способом, чтобы изучить этот материал.

+0

Очень ценим! Я закончил тем, что купил подвесной миксер с большой ручкой тома, но я, конечно же, обойдусь в ближайшее время! – derjur