Sync two machines/two instances of Millumin


I can see this question has been asked before, but I can't seem to find a clear answer.

I am trying to build a slave of my Millumin main setup on a back up computer.  Do I have to write an OSC command for each of the things I'm doing?  Or is there a way to just slave the two easily?  Any tutorials on how to set this up?



  • edited May 2017
    Hello @alexcz,

    The easiest solution would be to synchronize column launch.
    As Millumin can send OSC feedback on such event (launching a column), you could catch this OSC message on your second computer, and launch the very same column accordingly : to do so, use for example the application Chataigne (to receive the OSC message, and send back another OSC order back to your second computer).

    You would need to use the following OSC messages :
    • /millumin/board/launchedColumn     (coming from the first computer)
    • /millumin/action/launchColumn     (going to the second computer)

    Alternatively, you could use the mini-application SimpleSync to send a simple OSC message (such as "/millumin/action/launchNextColumn") to your 2 computers. See image below.

    Best. Philippe
  • Hello @alexcz

    You can also use Lemur, to achieve this. 
    Create one Lemur customButton and assign two osc targets (one by Millumin instance). 
    Then create a script triggered on expression with parmeter 'x'
    The script should look like this for column 2: 


    Hope it helps 



  • I use octopus control software from a laptop to trigger multiple Millumin machines. It works great. It can also generate a web based interface so you can use a mobile device or tablet as the control device.
  • I can second Octopus. This is a great tool for making advanced triggers for all types of scenarios involving Millumin as well as almost any other device. If you need to always sync them together you can setup Millumin "B" as a backup/sync to Millumin "A" so they always roll together. Otherwise, you can specify the sync rolls on each preset.

    Octopus is really tough to track down, here is a direct link to their download site.
  • This looks really useful, do you have any tips setting up?
  • edited June 2017
    Yes - there is no help file in the current version of Octopus and it isn't inherently obvious how to use. Here are some general tips:
    • You can use Octopus on either the local machine or across a network.
    • Make sure you know the IP of the machine(s) you want to control.

    Adding Devices

    A device can be software or hardware. There are a number of pre-defined software and hardware models within Octopus. Millumin is not listed, so we will use a generic OSC device.

    To add a device:

    • Enter the "edit" mode. If you are in this mode there will be a dialogue that looks like an "inspector" window. If you don't see it go to "Octopus" menu and click "mode" or command-R.
    • Under "properties" in the inspector, click on the devices tab.
    • Click "new" and select a standard OSC device for Millumin.
    • Call it "Millumin B"
    • Enter the IP and the port number.
    • Create another OSC device with the IP of your other Millumin instance and call it "Millumin A".
    • If you want to roll them together always go to the backup/sync section of Millumin A and add Millumin B.

    Creating a preset/trigger

    • In the inspector, click on the presets tab.
    • Select Millumin A as the device.
    • The command should be of type 'integer'
    • In the address section, type the OSC command. For example: `millumin/action/launchColumn`
    • In the value column enter the column you want to launch, i.e.: `1`
    • Click "add" under the preset list section.
    *If you have other devices you want to trigger in this same command, repeat the process for the other devices.
    *There is no need to add Millumin B as a separate device because we already declared it to sync to Millumin A.
    • Enter a name in the 'preset name' field
    • Click "new" under the preset name field. This will add it to your control panel.

    Testing & Running

    • When editing or creating a preset, you can test it by clicking the "run" button on the top-right of the inspector
    • To exit the editing mode and attain regular command of your preset panel, toggle your mode so the inspector is gone. You can also use command-R. Then click on the desired preset.

    Sample File

  • Hi, I am using Octopus to control Millumin 2, but the OSC command docs I've found in the forum all look like incomplete examples (including the wiki).  

    So, hence my question:  Is there an actual, complete - definitive list somewhere that someone can post a link to?   

    Some of the tasks I'm looking to do with via Octopus:

    I'd like to use a global command that shuttles to the last 30, 20 or 10 of any currently playing video, NOT 1 set for each column of playback. 

    i'd like to create a global "stop" playback or "KILL" command that works regardless of which column is playing, not 1 for each column.

    I've been digging around online, but can't seem to find the complete list of syntax for this.

    If anyone can point me at some reference material, I'd really appreciate it.  Also, I'm happy to help anyone who needs help using Octopus.  Just lemme know if you have a specific question - but the Michael Voccola's directions are spot on and work for me.  - - THANKS Michael - -


  • edited June 2017
    Hello @Jason_Vaughan,

    The complete OSC documentation of Millumin is here.
    More specifically :

    • A command that shuttles to the last 30, 20 or 10 of any currently playing video, NOT 1 set for each column of playback
      It doesn't exist. But indeed, there are an OSC message to control the playhead of a specific layer (by index or by name).

    • A global "stop" playback or "KILL" command that works regardless of which column is playing, not 1 for each column
      The OSC message "/millumin/action/stopColumn" is doing so.
      No need to add a parameter saying which column to stop : there is always only one column launched at a time (if you add one, it's be ignored anyway).

    Best. Philippe
  • Question about sync for @Millumin:

    If we are doing a widescreen show with projector output requirements which exceeds the available outputs on a single machine (like a single screen that is four 4K projectors blended), what is the recommended method for triggering the multiple machines that would be needed to drive that blended screen while remaining in frame-lock with each other?

    Let’s assume we are using graphics cards which support genlock to take that out of the equation. We need all instances to not only play in frame-sync with each other, but also be on the same frame of the video file. Is there a triggering method that is recommended for this approach? IE: DMX, UDP, or something else that you have available in the lab? I want to make sure that if we need to do this that there is no mis-match where the outputs of each machine meet up when a video crosses multiple machines.

    We would also be doing the actual blend and data-double within a video processor like e2, so the different machines would be exactly lined up nex to each other with the processor itself.
  • Hello @michaelvoccola,

    You can use the mini-application SimpleSync, but it only sends an order simultaneously, not synchronizing every frame.
    However, we're working on timecode (LTC at first) support, and a beta version will be available in the next weeks.

    Best. Philippe
  • edited June 2017
    I have Octopus and Millumin loaded on the same computer.  Can Octopus control Millumin while both programs n share the same computer?

  • @thomasd I built some presets in octopus using midi to trigger millumin, this was on the same machine. I couldn't figure out how to get octopus to receive an input from my midi controller to then trigger the presets.
  • Unfortunately, I have no experience using Octopus with midi.  Have you tried the "Octopus Listener?  There may be a way to configure it for midi.  
  • Hello,
    i'm the creator of Chataigne, the software Phillipe has mentionned earlier (thank you by the way !)
    While it's exactly the purpose of Chataigne, i admit it's pretty difficult to know how it works out of the blue, and as of now it lacks terribly of documentation and tutorials - which will come in the near future !

    To complete the suggestion of tools that would do the job in an easy way, i'm pretty satisfied with OSCRouter :

    It does exactly what it advertises, and it does it well. And it's open-source + cross-platform :)

  • Very cool!!!  Thanks
  • I've just been using a program called MidiPipe. Seems a really simple way of being able to trigger two machines running millumin from one midi controller (connected to main machine).
  • Hello !

    Could you explain please how to synchronise two Millumins on two laptops on a local network ? I 'd like to play exactly the same project on the two computers, with the possibility to Launch Previous Column too. The purpose is that the "slave" computer follows exactly the "master". I succeeded to adress OSC messages to my second laptop with and without Chataigne but the "/millumin/action/launchColumn" command seems to no send any order if I don't write the column number.. Do I have to create an OSC Track on the "slave" laptop ?

    Thanks a lot for your help ! Cheers

  • Hello @m_rufie,

    This tutorial here shows you how to configure Chataigne to automatically get the number of the launched column, so you can synchronize with your second machine.

    Best. Philippe

Sign In or Register to comment.