OSC control between two Isadoras

  • Beta Gold


    I have a master/slave setup (two mac pro towers, each controlling three displays).
    I want the slave to always jump to the scene the master is in. So I've created an OSC jumper user actor in the slave computer, which is made of multiple sets of: an OSC listener, a comparator, and a jump actor.
    Each listener listens for a specific value, which passing through the comparator triggers the jump to the right scene.
    In the master computer each scene has an OSC transmit actor with an enter scene value assigned to it, corresponding to the scene number.

    This setup works, but it doesn't work all the time... Sometimes I can go through a series of scenes and the slave will always jump in synch, and sometimes it just won't. Usually clicking a few random scenes on the master will get the slave to work again. But I haven't found a way to make it work consistently.

    I am wondering if this is due to the complexity of the user actor (does having multiple OSC listeners burden the system?) or just having done one step wrong somewhere. I don't think it's anything to do with the network.
    Is there a simpler way to do this?

    The OSC jumper user actor contains about 25 of these sets each dealing with one value.


  • Tech Staff

    My first feeling would have to do with network, because if the user actors logic works once.. in general it should continue to work. Its unlikely that its to heavy of a user actor.

    Since OSC uses udp for network transmission, it can drop messages without the network being aware (unlike tcpip that checks). So a weak network could easily be the cause of things working and then not working. Are you using a wireless network? If you wire the systems together and test, you may find that all works well.

    That said.. I have no idea how you have made you user actors, so there could be a logic error, that is leaving a gate closed or something. I find that this can happen easily if you are using trigger delays. Basing logic around a series of timers can cause issues in complex operations.
    I rather use the sequential trigger actor so I can be sure of the order of triggers being sent out.

  • Hi Martin,

    First, I think you're on the right track doing it with OSC.
    I've been running such setups ( 1 master+backup & 4 slaves ) for a couple of productions, I've never had any problem.
    Maybe you could post samples of your master/slave patches that we can have a look.
    One question: Do you trigger a scene on the slave at the opening of a scene in the master ?
    If yes, I would try so:
    1st possibility: trigger delay of 5ms at the opening of your master scene.
    2nd possibility ( the one I used ): 
    On your master computer, use a "master scene" ( that is always active ), 
    > that triggers your "rendering scene" ( with activate scene actor ) on the master computer + the scene on the slave computer.

  • Using multiple Mac Minis instead of towers, I have had problems only when using ad hock networks and when using an active internet connected network,  but never with a router generated closed network.

    I use the D-Link Shareport 505, and have used them in pretty large spaces reliably, using 4 Mac Minis controlled by Lemur on an iPhone. 
  • Beta Gold

    Thanks everyone.

    The computers are connected using an ethernet switch, no router, manually assigned IPs, and no other devices on the network.
    Yes Mehdi, the slave scene is triggered as the same scene is entered into on the master.
    I will look into using the master scene setup. Also, I think I've complicated things by using the comparator, where I could just link the OSC listener's output value right into the scene number input on the activator/jumper.
    Also relating to the same project - has anyone had luck using OSC to synch the same video between two computers? I have tried running the slave movie player at zero speed and linking its position to the master movie player's through OSC. There seems to be a lag and it doesn't seem to be a constant one.
    It's great to get so much feedback so fast. You guys are great.
  • Beta Gold

    I don't know if osc has a packet control system. So when I do that I sent the same number twice or three times to be sure it gets there. And as Mehdi I'll always have an always activated master scene  that controls timelines actuations and deactivations.

  • Just an FYI... that there are new features coming soon for perfect frame sync...  this is in development already and has been prototyped successfully on an Isadora show running 12 Mac Pro's...

  • Hi @martin

    For the sync, with the actual version of isadora, I would say the best is to not do anything.
    Linking the position is so performance heavy that it creates an out of sync for what I tested.
    You can try:
    - be sure you have no media storage bottleneck ( that your hdd/ssd is fast enough for the codec/resolution you use )
    - don't start a movie when jumping in a scene. 
    Activate your scene before you have to start the movie, with the movie player setted so:
    - visible ON
    - speed 0
    - position 0
    - then trigger speed=1 to the movie player via OSC to start reading your movie.
    If your master computer also reads a movie, maybe you have to delay the start on the master of a few ms, linked to the little delay it takes to trigger the slave computer via OSC.
    I was using this method, and did pretty heavy tests with it, I was never out of sync of more than 1 frame.
    I used this method for a edge-blended screen done with 3 projectors connected to 3 pcs.