Как сохранить согласованность типов при передаче между Max/MSP и Python через UDP?
Я новичок в Python и пытаюсь отправить список поплавков из Max/MSP, но все, что я получаю, это зашифрованный жаргон с другой стороны. Например, если я попытался отправить
-64.463172 24.633138 10.054035 -2.445868 -7.855343 -8.22241 -7.066427 -5.288864 -2.530465 0.458666 2.289094 2.566208 1.953798 1.114607 0.296125 -0.339662 -0.604555 -0.518344 -0.328184 -0.239883 -0.265401 -0.312797 -0.300493 -0.189546
я получил
b'list\x00\x00\x00\x00,ffffffffffffffffffffffff\x00\x00\x00\xc2\x80\xed%A\xc5\x10\xabA \xddT\xc0\x1c\x89\x1a\xc0\xfb^\xf8\xc1\x03\x8e\xfe\x
c0\xe2 ,\xc0\xa9>_\xc0!\xf3%>\xea\xd6B@\x12\x80\x86@$<\xc1?\xfa\x16\x0f?\x8e\xabt>\x97\x9d\xc1\xbe\xad\xe8=\xbf\x1a\xc4\x1e\xbf\x04\xb2*\xb
e\xa8\x07\xc3\xbeu\xa3\xcb\xbe\x87\xe2\x96\xbe\xa0&\xe8\xbe\x99\xda.\xbeB\x18^'
Подобный вопрос был задан здесь
макс / мсп в рубин через формат сообщения udp
но это касалось целых чисел, и было достаточно легко разобрать и получить правильное число, но я понятия не имею, как это расшифровать. Любая помощь?
2 ответа
Я обнаружил, что объект, который я использовал ([udpsend]), использует протокол OSC, и именно это было причиной всего лишнего шифрования. Я переключился на [MXJ net.udp.send], и цифры показывались чисто, за исключением того, что меня окружали апострофы с буквой ab впереди. Это, очевидно, указывает на то, что он находится в байтах и может быть удален с помощью bytes.decode().
Библиотека объектов Sadam содержит несколько безупречно работающих объектов UDP. Как вы сказали, объекты OSC не созданы для прямой связи UDP.