Запрос значения через pyOSC

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

Это сценарии 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'


person derjur    schedule 12.10.2015    source источник
comment
какие параметры вы настроили в конфигурации OSC на Cuemix?   -  person salgarcia    schedule 05.03.2016
comment
Я смог использовать приложение iPad TouchOSC для управления Cuemix, так что конфигурация не вызывала подозрений.   -  person derjur    schedule 19.03.2016


Ответы (1)


Я знаю, что это было давно, но это может быть хорошо для кого-то когда-нибудь.

При реализации приемника с использованием pyOSC вам необходимо создать функцию для обработки значения при его получении. В сообщениях об ошибках говорится, что вы не указали обработчик обратного вызова, но, как видите, здесь, на примере, вы должны сделать что-то вроде этого:

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 )

пример библиотеки — отличный способ изучить этот материал. .

person George    schedule 17.01.2016
comment
Очень признателен! В итоге я купил подвесной микшер с большой ручкой громкости, но обязательно попробую его в ближайшее время! - person derjur; 19.03.2016