Applications inter communication

Hi everybody,

Well i'm pretty new on this list.
To introduce myself, i'm used to experiment with graphical/modular programming since 5 years now, mainly using max & pd for sound and vvvv & processing for visual stuff.

Actually, i'm involved in a audiovisual project using max on a mac book pro and vvvv on a pc.
We use a lemur as a graphical interface for controlling both sound and visual.
So our setup is typically one switch, where we plug one lemur, one mac and one pc.

The setup is working well so far but there're some unknown details I'd like to brigthen.

The major problem is that the both software doesn't work in the same way.
VVVV is frame based animation software and MAX is a time based animation software.
- So, is there any way to synchronize bidirectional communication to limit packet loss ?

So far, we put speedlim object on the max side to send message only 33 ms.
And i reduced the framerate of VVVV so each message is sent each 33 ms.
But i'm sure there's more convenient ways to handle that.

I saw in the "everything you ever wanted to know about Open Sound Control" that there're some max abstractions or externals called OSC-timetag and OSC-schedule. Tried a search but didn't find something.
- Are these objects available somewhere? And what's their purpose?

If i got the specification well, an OSC packet contains OSC content and the size of the content.
- How much bytes are used for the content?
- Is there a size limits regarding ports?

I was told that switch and windows MTU (1500 bytes) may be the maximum.
- Is there a list of recommended ports somewhere?
Just saw some user specific or hardware specific recommendation but none of them seems official.

I'm sorry if this isn't the right place for these kinds of questions.
I couldn't figure out a better place for that.
I just hope my questions make sense.
All the best.

And congrats for these website, much more structured than the old one.

Olivier M.

Re: Applications inter communication

OSC-timetag and OSC-schedule are not available yet, but you probably don't need them anyways. :) They are very experimental. The purpose is explained in a paper that is still awaiting publication.

Packet loss: In general this should almost never happen, unless something is badly designed. Most OSC applications have no problem with hundreds to thousands of messages per second.

For synchronization: How to design this system is basically similar to the design of clock signals in electronic systems. Basically choose one system to be the "master", and have it generate a message at repeating intervals, then have everything else "trigger" on that message, but just wait around and do nothing until the message arrives.

There is no recommended port. Generally ports of number < 1024 require administrator access to use, so those are not a good idea.
Otherwise just pick any port not on this list, or use a dynamic port allocated by the OS: (49152-65535)

Re: Applications inter communication

- How much bytes are used for the content?
The question was how much bytes are used for the size of the content and after re-reading the spefication i can answer myself, it's an int32 so 4 bytes. Forgot this one so and forgive me :)