Если вы хотите отправить значение запущенному экземпляру Pd (автономного приложения), вы можете сделать это через сетевые возможности Pd.
например.
[netreceive 65432 1]
|
[route value]
|
[print]
будет принимать данные, отправленные с помощью CmdLine:
echo "value 1.234567;" | pdsend 65432 localhost udp
вы можете также отправить несколько значений одновременно, например,
echo "value 1.234567 3.141592;" | pdsend 65432 localhost udp
если вы найдете pdsend
, чтобы замедлить для ваших целей (например, если вы запускаете исполняемый файл для каждого сообщения, которое вы хотите отправить вас есть значительные накладные расходы!), Можно построить сообщение непосредственно в приложении, и использовать обычная UDP-розетка для отправки FUDI -messages to Pd.
FUDI-сообщения действительно простые текстовые строки с атомами, разделенными пробелами и конечной точкой с запятой, например.
accelerator 1.23 3.14 2.97; button 1;
вы можете также рассматривает возможность использования OSC, но для этого вам понадобятся некоторые внешние (OSC по mrpeach, сеть по mrpeach (или iemnet)) на стороне Pd.
Что касается производительности, я использовал последний со сложными данными отслеживания (сотни значений на кадр со скоростью 125 кадров в секунду) и для потоковой передачи многоканального звука, поэтому я не думаю, что это проблема.
, если вы уже используете libPd и только хотите общаться с хост-приложения, используйте решение Адама (но ваш вопрос немного расплывчато о том, что, так что я в том числе этот ответ на всякий случай)
Спасибо, но даже использование UDP происходит слишком медленно. Мне нужно считывать значения с ИК-датчика расстояния, когда я использую только один датчик, скорость в порядке, но когда я использую два датчика, скорость не более приемлема. – Wateredge
В этом случае я думаю, что проблема * не * на стороне Pd, а на стороне отправки - например. накладные расходы «pdsend». я соответствующим образом обновил ответ. –
спасибо, я пытаюсь использовать OSCpack, но когда я скомпилирую примеры кода, я получаю: «SimpleSend.cpp: 5: 41: фатальная ошибка: osc/OscOutboundPacketStream.h: Нет такого файла или каталога» Очень странно, потому что файл там! Заранее спасибо;) – Wateredge