-
GardG
Well that explains why I didn't get it – but your ASCII example actually works (when sent as binary)! Absoltely superb, that means I can finally get rid of the Processing program I've been using to replace whitespace with commas. Now I'll just have to understand how it actually works.
Thanks a lot!!
-
GardG
Hi all,
As is probably evident by this very basic question I'm quite new to Pd. I'm stuck at a mundane issue – I've tried searching for answers to this but have come up surprisingly empty handed. I probably just don't know what terms to search for.I'm trying to communicate with a lighting control software to set the target positions of moving lights – the end goal is to use CV from a modular synth for this, but for now I'm just trying to get the message formatting right. The manual for the receiving software says this about the protocol:
*When set to MQ Track, MagicQ receives tracker data over a simple UDP protocol on UDP port 6549. The format of the data received is:
<x>,<y>,<z>,<tracker id>,<tracker name>
For example, sending tracker 2 named "Bob" with position x of 2m, y of 3m and z of 3.5m the data in the UDP message would be
2,3,3.5,2,Bob*
OK, simple enough – but for the life of me I just cannot figure out how to send these numbers, delimited by commas, without any whitespace in between them!
My first attempt was:
|2 3 3.5 (
|
|list $1 $2 $3 1 Bob (
|
|list prepend send|
|
|list trim|
|
|netsend -u|The result of this is that only the first number, the X coordinate, is received. Apparently the whitespace afterwards messes things up.
Next attempt involved using list2symbol and makefilename to create "2,3,3.5,2,Bob" as a symbol. That works, but I have absolutely no idea how to send it over UDP. For instance, I tried:
....
|
|list2symbol|
|
|send $1(
|
|netsend -u|But still only the X coordinate works. Printing the output of |send $1( shows up as:
send 3.3,2.2,1.1,1,Bob
To be honest I don't know if those backslashes actually get sent or just appear when printing, but in any case, it does not work.
For what it's worth, I have managed to get this to work on the receving end by sending these messages as strings from Processing. Would prefer to use PureData for this, though.
Any clues?