Take the 2-minute tour ×
Ask Different is a question and answer site for power users of Apple hardware and software. It's 100% free, no registration required.

Since beginning to learn Quartz Composer, I've stumbled onto Open Sound Control (OSC) and have begun looking for OSC compatible iOS apps. I have a universal iPhone/iPad app called Control which seems to be capable, if not just a bit ugly.

I'm attempting to use it as an interface into Quartz Composer projects via the built-in OSC Receiver but there is no documentation for the Control iOS app, so I don't know what key is bound to the various objects from within the iOS app.

Is there software that will plainly listen for OSC events, and report on the keys and values being transmitted? This can either be standalone software, or a built-in component of Quartz Composer that I have not seen yet.

share|improve this question
add comment

1 Answer 1

up vote 0 down vote accepted

I found a drop dead simple way of doing this, at least for a person like me. Control iOS was configured to send to my computer on port 60000. So what do I do? I listen to Network Traffic.

From the terminal, run tcpdump -v -i en1 'port 60000'. (Note that en1 is my wireless interface, you may have to consult the output of ifconfig to figure out your interface name.) Among the multitude of other lines while drawing my finger across the application's space, I saw:

17:46:43.789027 IP (tos 0x0, ttl 64, id 42497, offset 0, flags [none], proto UDP (17), length 72)
192.168.1.109.53578 > 192.168.1.110.60000: UDP, length 44
E..H....@.Px...m...n.J.`.4j.#bundle............./multi/1....,ff.<6.n....

Considering I had a rough idea what an OSC key name looked like, I plugged /multi/1 into the OSC Receiver block of Quartz Composer, and I had control over the circle used in the example!

Note also that XY type communication occurs as "floats". NOT FLOAT, but plural, "floats". Because it's a float of the x-axis, and of the y-axis.

If your input does not take a structure, you can use the Structure Index Member or Structure Key Member Patches to isolate the X or Y value, and put it into your input patch.

Note that I'm still very interested in a simpler solution to this, especially for readabilities sake. If I wish to test multiple buttons quickly, the tcpdump text will be scrolling too quickly for me to be able to adequately read in some cases. So, I will not accept this answer if it goes over a week without any other answer.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.