Multiple compositions can't use same OSC Receiver port? What to do?

Udart's picture

Hi there, I don't have long experience with QC but I've been following Kineme for a long time and learned a lot. I've been working (with some success) on a plugin for the VJ application Modul8 that communicates with a Quartz comp through OSC. (Modul8 runs QC through Quicktime - so no inputs or outputs are available directly hence the OSC solution using Kinemes Safe OSC)

Everything is good as long as I only have one Quartz comp running. As soon as I have two that use the same port on the OSC receiver I'm in trouble. It seems there can be only one composition ie. one OSC receiver on each port. That kind of ruins my whole plan. I might have a large number of comps that I would run in an arbitrary order through Modul8. And as you can see in Quartz composer the OSC listener port is not an input setting - so no way to change it runtime even if I figured out some system to send to the right port in Modul8.

Is there some known workaround to have multiple instances of OSC receiver that listens on the same port? Or some way to change the port runtime?

best regards -Vibeke


Udart Udart - VJ, visuals, video projection

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

dust's picture
Re: Multiple compositions can't use same OSC Receiver port? ...

im note sure about the kineme osc cause i came into qc with leopard but as you have found out you can not receive osc from two device on the same port. i would use a program like osculator which is awesome you can bridge split your osc signals to midi to mouse to what ever its really your solution. you could try midi as well i know modul8 does midi. but if you use the osc receive from apple in qc the input setting will let you change the port so lets say you 3333 for one comp and 3334 for another. i have never messed with osc in modul8 but if you can set port numbers in modulate then you should be able to receive on your local loop 127.0.0.1 on around 6 thousand ports meaning if you wanted to you could set 6 thousand receivers all on different ports of the same address. you need the leopard version of quartz though.

cwright's picture
Re: Multiple compositions can't use same OSC Receiver port? ...

We actually have noting to do with the OSC patch (Apple made it, not us ;)

M8 leaves a lot to be desired, QC-wise. You might be better served looking at VDMX, CoGe, etc.

I've not used either (though I've worked on fixing bugs in our plugins with both a bit ;), so I can't say much about merits etc.

Udart's picture
trick to activate/deactivate OSC receiver patch runtime?

Is it possible to activate/deactivate the osc receiver patch runtime somehow? Or is it possible to load it into the composition runtime? I am too much of a newbie to know how, but any ideas are appreciated. Then I would be able to make a composition that checks for the first free port in a range, that would be nice...

The problem is - For VJing in a live setting I might have a hundred different compositions to choose from and so I will have to create them so that each uses a unique port. Not impossible but quite annoying in the long run...

@cwright: thanx for the reply. I am aware this patch is developed by Apple not Kineme. And I am aware of VDMX and CoGe but so far I stick to Modul8 for other reasons.

-Vibeke

dust's picture
Re: trick to activate/deactivate OSC receiver patch runtime?

as far as i know there isn't any osc server port scanning patch in QC i would maybe try itouchosc's qc plugin see if that helps or maybe do some stuff with bounjour network. osc is the same as udp so you could maybe im not sure cause i have never tried to but do some sort of multi cast receiving but then again i think that is port specific. as far as right now im not sure what you need is there maybe if you describe better what you are trying to accomplish cause i am a little unclear ?

Udart's picture
Re: trick to activate/deactivate OSC receiver patch runtime?

OK let me try to explain: I cannot have two Quartz compositions running at the same time that both receive on the same port. So if I want to have both comps active I have to set different ports on them in the QC editor on beforehand.

This is annoying me since I have a lot of comps and I might want to run them simultanously in any combination through my VJ application.

So in short: I would like to set another OSC receiver port inside the comp while the comp is running. Or at least just activate/deactivate the OSC receiver, that might be enough to solve the problem. Then it might be possible for me to build a solution that finds another free port if the original port is already taken by another active Quartz composition.

I cannot see how to do this with the current OSC receiver, but maybe someone has a hack.

best regards -Vibeke


Udart VJ, visuals, video projektion

.lov.'s picture
Re: trick to activate/deactivate OSC receiver patch runtime?

Maybe this is what you need, a simple example to "turn on/off" receivers.

PreviewAttachmentSize
osc.qtz6.3 KB

cwright's picture
Re: trick to activate/deactivate OSC receiver patch runtime?

Udart wrote:
So in short: I would like to set another OSC receiver port inside the comp while the comp is running.

I cannot see how to do this with the current OSC receiver, but maybe someone has a hack.

I've just taken a look at making such a hack. It's possible, but it'll take some time. I'll let you know when I'm working on it (I have so little time lately due to some larger projects...)

Udart's picture
Re: trick to activate/deactivate OSC receiver patch runtime?

Hi .lov. - mr. CoGe :)

Hmm.. it's interesting because your sender uses ip 0.0.0.0 and both receivers work fine.

Try have a look at my example where sender is set to 127.0.0.1 and see if you get the same behaviour : on my machine only the first OSC receiver works.

Can someone explain this behaviour? What is ip 0.0.0.0 for? And is this behaviour a bug or a feature? :)


Udart - VJ, visuals, video projection

PreviewAttachmentSize
osc 127.0.0.1.qtz6.28 KB

.lov.'s picture
Re: trick to activate/deactivate OSC receiver patch runtime?

yes, 127.0.0.1 will not work, and yes 0.0.0.0 is a "feature". More info here: http://en.wikipedia.org/wiki/Null_route

Basically, if you send data to a specified address, only this, specified address will get the data. For example, if you want to send the login for your online bank account, you don't want to send your login for the whole internet :)

Basically, 0.0.0.0 sends the data to "all" address.

Ok, in the practice this is more complex, but the basics is this.

Udart's picture
Re: trick to activate/deactivate OSC receiver patch runtime?

OK I see about the null route. But why is there no IP setting for the OSC receiver patch? Is an IP address assigned to the receiver patches automatically? If the first OSC receiver is assigned to 127.0.0.1 - then what IP is the next OSC receiver patch assigned to?

Sorry for all the basic questions. Just trying make sense of something that I haven't found much documentation for....


Udart Udart - VJ, visuals, video projection

.lov.'s picture
Re: trick to activate/deactivate OSC receiver patch runtime?

i don't know why qc's osc receiver not assignable to a specific ip. i think the only solution is using 0.0.0.0 ip for now.

Cwright: What do you think about VVOSC framework?

Udart's picture
Sending OSC to multiple OSC receivers on the same port

Yea thanx for helping me. I think it solved my problem actually. I don't think I can send OSC messages from another app (modul8) to QC on ip 0.0.0.0. It might intentionally only be working inside the QC environment. At least I could not get that working.

But I found a way around it like this:

I send a msg from Modul8:

Modul8 ip 127.0.0.1 port 9000 -> QC OSC receiver on port 9000 (one comp receives this)

This message is only received by one OSC receiver even if the receiver is in every one of my QC comps (as we found out earlier). I then put a small osc rerouter in every comp. Whenever a message is received on 127.0.0.1 i put it into a sender that resends it on ip 0.0.0.0

QC 0.0.0.0.0 port 9001 -> QC receiver on port 9001 (all comps receive this)

Then because the message is sent from within QC on ip 0.0.0.0 I get the desired result: All active QC comps receive the message.

cwright's picture
Re: trick to activate/deactivate OSC receiver patch runtime?

.lov. wrote:
Cwright: What do you think about VVOSC framework?

I've never used it or looked at it, personally. However, it looks like it was authored by mrRay (of VDMX fame), so it probably doesn't suck :)

.lov.'s picture
Re: trick to activate/deactivate OSC receiver patch runtime?

i use VVMidi in the forthcoming CoGe 1.0, and will use the VVOSC. Seems like working with this frameworks is really is. The question is, what's the easiest way: make a 'hack' for qc's osc receiver, or build a new with VVOSC? I don't have time to do that now, just because i'm interested it in.

.lov.'s picture
Re: Sending OSC to multiple OSC receivers on the same port

ohhh, tricky :)

tschoepler's picture
Re: Sending OSC to multiple OSC receivers on the same port

hello community

does any of you out there manage to get this "feature" working on mountain lion? I know it's drag with QC and ML … I tried the patch posted in this thread and also tried setting it up myself – no luck. It's just as if using localhost (127.0.0.1).

tschoepler's picture
Re: Multiple compositions can't use same OSC Receiver port? ...

I managed to get it working on mountain lion … for some reason "gate geeper" was set to "Mac App Store" only. After changing it to "Mac App Store and identified developers" it worked like a charme. Have a look over at apple.com for that matter. Gatekeeper options are found in Apple menu > System Preferences… > Security & Privacy > General tab

gtoledo3's picture
Re: Multiple compositions can't use same OSC Receiver port? ...

Also, if you use Control+click when selecting an icon, and click Open from the popup there, I believe it bypasses Gatekeeper stuff.

StuShapiro's picture
Re: Multiple compositions can't use same OSC Receiver port? ...

this sounds crazy guys. If hypothetically synpase sends out data on one port only and you want a bunch of programs to receive that same OSC data. There must be a little bit of software out there that can take that port 12345 and duplicate it to send out on multiple ports? surely...

monobrau's picture
Re: Multiple compositions can't use same OSC Receiver port? ...

Osculator is really handy for routing OSC

http://www.osculator.net/

StuShapiro's picture
Re: Multiple compositions can't use same OSC Receiver port? ...

I wish it were that simple but it has bought about a whole world of new problems. Synapse + OSCulator + Ableton Max For Live + quartz composer qcOSC Tryplex

Synapse is sending out on port 12345/7 Abelton + Max for Live is receiving on port 12345 OSculator Receives OSC data on port 12345 - conflict with Max live to send out to new ports QC with qcOSC and tryplex can listen on any port.

Can you change the ports with Max live plugin to receive on a random port? can i change the output ports on synapse or add more ports? How do i get the synapse data to both abelton on port 12345 and to Qc on any port simulations with no conflicts? Can I have synapse send out to more ports? If Osculator is listening to port 12345 to reroute it to other ports, Max live will crash because its conflicting with Osculator.

Has anyone managed to run all this?

StuShapiro's picture
Re: Multiple compositions can't use same OSC Receiver port? ...

anyone got any ideas?