Отладка суперколлайдера OSCresponderNode

Кто-нибудь знает, как отладить OSCresponderNode суперколлайдера?

Я пытаюсь поймать сообщения из другой программы с помощью этого:

o = OSCresponderNode(nil, '/note', { arg t, r, msg; t.postln; r.postln; msg.postln; Synth( "guru2", [\mfreq, msg[1]]);  }).add;

Однако, когда я запускаю в него сообщения, суперколлайдер просто дает мне

FAILURE /note Command not found

Я предполагаю, что это говорит мне о том, что сервер суперколлайдера успешно получает сообщение по адресу /note, но либо а) OSCresponderNode не был зарегистрирован правильно, либо б) функция респондента каким-то образом не удалась.

Я прав, предполагая это?

Может быть, это ошибка в определении узла? Я не получаю сообщения об ошибке, когда выполняю эту строку. Но, может быть, функция обратного вызова не выполняется и не тестируется до тех пор, пока она не сработает?


person interstar    schedule 18.09.2010    source источник


Ответы (2)


«FAILURE /note Command not found» — это то, что происходит, когда вы отправляете серверу сообщение, которое он не понимает. Но OSCresponderNode — это не серверный объект, а клиентский.

Чтобы исправить это, вы отправляете сообщения на порт клиента, а не на порт сервера.

person Dan Stowell    schedule 30.07.2012

Боюсь, запоздалый ответ. Но я не могу воспроизвести вашу проблему. Возможно, вы могли бы поделиться кодом, который вы используете для отправки сообщений OSC?

Используя код из примера Supercollider OSCResponderNode, я получаю следующее в своем окне сообщения:

133867.10639964
an OSCresponderNode
[ /note, Hello App 1 ]

То есть параметры t, r, msg из вашего обработчика OSCResponderNode, как и ожидалось.

person dan mackinlay    schedule 04.05.2011