Сообщения OSC от клиента python-osc не принимаются сервером ChucK
Я пытаюсь установить связь между Чаком и Питоном по протоколу OSC (Open Sound Control). Со стороны python мы используем библиотеку python-osc и chuck изначально поддерживает протокол OSC. Похоже, что сообщения, которые мы отправляем со стороны Python, не приходят со стороны Chuck. Все остальные комбинации, то есть питон к питону, патрон к патчу и патч к питону, работают нормально. Я использую Python 3.4.4 на Windows 7. Что может быть не так?
Вот четыре файла с реализациями клиент / сервер, которые я использую для тестирования.
chuck_client.py:
OscSend xmit;
xmit.setHost("localhost", 5005);
<<<"Sending">>>;
xmit.startMsg("/debug");
chuck_server.py:
OscRecv orec;
5005 => orec.port;
orec.listen();
orec.event("/debug") @=> OscEvent e;
<<<"Waiting">>>;
e => now;
<<<"Received">>>;
python_client.py:
from pythonosc import osc_message_builder
from pythonosc import udp_client
client = udp_client.UDPClient('localhost', 5005)
msg = osc_message_builder.OscMessageBuilder(address="/debug")
msg = msg.build()
print('Sending')
client.send(msg)
python_server.py:
from pythonosc import dispatcher
from pythonosc import osc_server
dispatcher = dispatcher.Dispatcher()
dispatcher.map("/debug", lambda _: print('Received'))
print('Waiting')
server = osc_server.ThreadingOSCUDPServer(
('localhost', 5005), dispatcher)
print("Serving on {}".format(server.server_address))
server.serve_forever()
1 ответ
Решение
Это оказалось ошибкой в python-osc 1.5. В версии 1.6 приведенный пример просто работает. Ссылка: https://github.com/attwad/python-osc/issues/31