Comunicate between 2 compositions

apple pi's picture

Hello, I have this composition I've been working for some weeks, and it has a problem that I just can't find a way to solve. I'm going to try to explain it as simply as possible. I'm using 2 (equal) displays connected to a Mini Mac (one through the mini port, the other through the hdmi). In one display I show some AR (6 six different markers) output, and in the other one I show information about the respective activated marker. The composition is going to a museum so it has to be running all the time. Because of that, I'm using QC Builder so I can "autorun" the application generated. The problem is that I don't know how to make it span the 2 displays. I thought about splitting the composition in two and run one in display 1(the AR result) ,the other in display 2(the additional info) and make one communicate/activate the other, but I have no idea how to "link" two separate compositions (or even if this makes any sense at all :)

Can anybody help?Is there any other well known alternative?

Thanks in advance

benoitlahoz's picture
Re: Comunicate between 2 compositions

Hi,

I don't know how Quartz Builder works, but if it is OSCable, you could pass your informations from one composition to another (and vice-versa) through OSC.

You define an incoming and an outgoing port, IP adress (in your case if it is in local : 127.0.0.1) then your 2 comps should be capable to communicate.

OSC syntax is very simple. And for sending structures (as I guess you don't have only one parameter to pass) : http://kineme.net/Discussion/General/OSCsendandreceiveStructures

I never tried it directly in Quartz Composer though.

[edit : or maybe using a Matrox Double Head ('hope I understood well)]

Scratchpole's picture
Re: Comunicate between 2 compositions

Easiest way is to span the two displays using a Matrox dh2go: http://www.matrox.com/graphics/en/products/gxm/dh2go/

gtoledo3's picture
Re: Comunicate between 2 compositions

What keeps you from stretching the window across? (forgetting about OSC and separate comps).

You can surely take a window, and stretch it in width so that it goes onto the second display.

You can also figure out the needed width and just have it happen automatically on open with Quartz Builder by using the Advanced Settings that allow you to choose width and height of your window.

...I'm deferring to the simpler route being better, unless it's a plus to have two separate apps talking to one another for some reason (the AR is quirky, and that may not even be possible). Pull the window wide, or set it to go wide when it opens.

(some stuff with windowing went "funny" in SL, so I apologize if what I'm saying ends up not working correctly for some reason... but I know I've done this in SL to one extent or another. I may be forgetting fine points.)

usefuldesign.au's picture
Re: Comunicate between 2 compositions

I'm interested in the best way to send to two screens from Quartz Builder for future reference. I want one as a large video display (say projector or large screen TV) and the other as some little OLED readout connected via arduino or just a 7" 16:9 LED display.

Not saying two comps is the way to go necessarily but if you do go that direction here is a comparison of 3 comm channels OSC, Network Broadcaster and Spooky (use with caution it can result in Memory Leaks I'm told by those in the know).

Since i made this comparison Franz posted on this site a link to his franztastic Network Stucture send and receive plugin which seems conceptual very similar to Spooky (uses pointers) but over the netwrok not limited to one machine. I could well be missing something there, wonder if it ever leaks?

http://kineme.net/forum/Discussion/Programming/1024NETWORKpluginsendrece...

PreviewAttachmentSize
Comm between Comps.zip7.15 KB

gtoledo3's picture
Re: Comunicate between 2 compositions

I will add that if one wishes to send image data in between compositions that the iDVD patch, which is somewhere inside of iMovie, when installed as a Graphics/Patch for Quartz Composer has a very good Image Broadcaster and Image Receiver patch. I would check that out.

Then I would look to the Network Broadcaster and Network Receiver example compositions for a supported example of intercomposition sending and receiving.

I know that I've personally had QB apps that fill up a main Viewer screen within a proscribed area where the "interesting stuff" draws, with Viewer area that goes into the other window where my controls or other onscreen graphics are, like buttons or preview windows. I've also been able to set it up so that everytime an app opens, it always opens in the same place, pixel accurately.

usefuldesign.au's picture
Re: Comunicate between 2 compositions

gtoledo3 wrote:
I know that I've personally had QB apps that fill up a main Viewer screen within a proscribed area where the "interesting stuff" draws, with Viewer area that goes into the other window where my controls or other onscreen graphics are, like buttons or preview windows. I've also been able to set it up so that everytime an app opens, it always opens in the same place, pixel accurately.

Cool I'm looking for rock-solid reliability as #1 criteria :-)

apple pi's picture
Re: Comunicate between 2 compositions

I got it communicating using the OSC sender/receiver. It seems like a very confusing way of putting it all together but it's the cheapest.

Thanks everybody, if it wasn't for this community I'd be pretty f#$&!d :)

Cheers to you all

anebo's picture
Re: Comunicate between 2 compositions

Hi, I've found the plugin file inside iMovie Recources, but can't find those two patches for broadcasting and recieving. What are the exact names of them. Thanks for advice :)

gtoledo3's picture
Re: Comunicate between 2 compositions

I think they're just image broadcaster and receiver. They may not show up unless qc app is run in 32 bit mode; command+I on the app icon and check off 32 bit and check again after restarting it?

I'm not sure about it doing inter-composition communication though...hmm. Been a long time since I used it. I know it will send info from inside a consumer macro to "outside" though.