Feature Request: Full Redundancy with mimo running in parallel on more than one Mac

Since we can already control mimo with all the APIs and control surfaces…
I was wondering – would it be possible to have full redundancy?

I would love to have a clone of my production machine, running the same project on the same version of mimo, both connected to a simple switch or mixer. If mimo crashes on Mac “A” then I can switch instantly to Mac “B”.

Ideally, the remote control of Mimo would send commands to both machines, meaning the program goes on fully in parallel in two (or more!) machines.
Is it possible already? If so, how? If not, would it be feasible?
We’re working on important productions and I would feel much safer with this option.

What do you guys think?

In broadcasting this is called Master/Slave. Pretty complicated to make it work. Take for example the fact you would like to use the same sources and destinations on both machines. I don’t think Boinx will spent it’s resources to implement such a feature due to it’s complexity and the fact it won’t be used by many :wink:. Sorry :grimacing:

if there’s already the possibility to control everything remotely, then why you say it’s difficult?
I’m not talking about a “one button instant switch” approach. of course the hardware would have to be unplugged and plugged again, but it would be still faster and safer than reopening the crashed mimo or restarting the machine.

Given the flexibility of mimolive as an app, I guess there are so many different types of users, not everyone necessarily dealing with huge racks of equipment. In my case, for example, all the cameras are managed via an ATEM and there’s a single point of input in mimo which is a blackmagic ultrastudio recorder. so it’s easy to unplug that :slight_smile:

And I can imagine many scenarios in which this approach would be very welcomed, so I’m not sure why you say it wouldn’t be used by many.

I would suggest this as a feature request but then for now, I could simply ask if it can be done already.
@Oliver_Boinx @Achim_Boinx would it be possible in some way, to let the remote control in Mimo work simultaneously in 2 different Macs with the same project open?
so once I have my buttons and controls in the iPad app and the browser, they are simultaneously sending the same commands “over the network” regardlessly of how many receiving instances of mimolive are running.
thank you

@fermento Thank you for the feature request. If you’re not looking at zero latency failover, you can simply run the same document on two computers. The Remote control surface can be switched in a few seconds, if you use the browser on the iPad (or Android tablet), you can have them both open at the same time. If you make good use if Layer Sets when working through your event, it is easy to keep them both sort of in sync. Even the mimoCalls would automatically fail over.

But if you “only” use mimoLive to send graphics to your ATEM switchers, then you may not need this as recovery after a crash is a few seconds.

thank you Oliver, happy to hear this can be done.
could you clarify a bit the quote above?

I have a set up with Main and Back up running in sync using Layer sets and companion on the streamdeck. I have a 30 layerset template that I will build my show by updating the layersets on either Mac and copy across to the other.
Only the companion HTTP instance IP address needs to be updated.
A good feature here also the the ability at the push a a button to either have the back up active or not if you do not wish it to run with the main. So far its not missed a beat

When I produce an event, I turn the schedule into a series of Layer Sets so I can follow the schedule more or less by activating layer sets. See https://youtu.be/yKspeTLl354?t=308

Awesome! Thanks for sharing. Did you see the new Stream Deck plugin? Would love to hear what you think.

I have, @Oliver_Boinx I am so so very thankful for it, Ive not had a chance to play but that will happen over this weekends events.
Off topic but I am really hanging for the Sheets template that @Achim_Boinx used to demonstrate the lower third updating from your live streams this week. Thats something Ive been waiting for for a very long time.
Thank you for all the effort to keep ML going in the right direction, better and better with every update.

yes I use layer sets for the 95% of my events, very useful! (even if they could be optimized with my other feature requests from weeks ago :slight_smile: )

looks interesting @winnie could you elaborate a bit on your setup?

also wondering about this…

@fermento In companion there is an internal command to have any instance that you are controlling active or not. So I have a latched button to have companion either send or not send commands to the back up machine. I also have one button for the main and also to disable companion switching which ever vision mixer I am using.

Me too. Layer sets are very powerful! :+1:t2:

quickly back on this, @Oliver_Boinx.
it’s true that I can switch the remote control on the iPad in two seconds, but it’s also true that If I’m controlling mimo on Mac 1, then if it crashes I need to switch to Mac 2 and it won’t be “in sync” in the same layer set or in the same moment (and I would go live with the wrong content when I switch).

So I think the ultimate goal here is to make sure that the two Mac can “walk along” in sync…
do you think this can be already achieved?
Or would it be possible in a future release?
As we all know, redundancy is always important everywhere :slight_smile:

It is a lot of work to set up, but you can achieve it by using a document with an automation layer for each button on the remote control that “forwards” the button pressed to two different computers.

1 Like

Exactly what I wanted to suggest that moment. An A and B system, connected by automation. :hugs: Facebook and YT offer backup-streams. Exactly the same document won’t work.

By the way, it’s just lots of work when the document isn’t planned well.

Yes indeed it could be a lot of work.
But 95% of each of my projects is always managed via Layer Sets.
So the question is, would it be possible to synchronize only the layer sets with the automation layer?
If so, how?

@JoPhi have you ever made some test on this? we can work and test together if you want :slight_smile:

You have to create a third document.

Within the third document, you’d have to create an Automation Layer.

Call it Main.

Now, you need Layer Variants (set on manual). Name 'em the same as your LayerSets.

With the command

   layerSetRecall(http://ip:port[LayerSetAPI-Endpoint])
       // replace [LayerSetAPI-Endpoint] with the Endpoint, it looks like:
       // /api/v1/documents/317032324/layer-sets/0CC58A1F-1B41-41D5-90EE-96AA79C8DE43
       // (You can get it by right-clicking the layerSet)

you’re able to recall a LayerSet remotely. Do it for all the Sets of your document. Place only one command into the onLive-Segment).

Now:
To keep everything in Sync, you need also another Automationlayer for the Backup-System. So, duplicate Main, rename it to Backup and change the API-Url to those from the other computer.

Finally:
Create LayerSets to fire both requests the same time. When a System breaks, the independent API-Requests are executed seperately and you can control your show by using the other computer. Never use two commands of different target-computers in one automation process, (a timeout could lead to huge troubles).

In case of a fallout, have a look to your Backup-System-Document, which LayerSet is currently active and continue switching it directly there.

All the best,
Johannes

PS: This technique is called API-cannon.

To reply to your question: My API-cannons do have more than 2 targets. Most of these are submitting these changes to other documents and also to other computer(s). Depends on the project.

The cool thing about mimoLive is that it is only restricted by imagination. It’s a complete package which is inspiring me day by day. By the way: Since I started to learn more about it, I stopped using ATEM-Television-Studio HD, WebPresenter, and lots of other Hardware which is related to proces Video/Audio.

And this forum is a huge resource to get inspired. <3

I guess you can also achieve full redundancy using Bitfocus Companion.

One option would be having 2 instances (one on each Mac) of VICREO-Listener, and assigning shortcuts to everything. That’s probably the easiest and quickest way to do that, but it gives you little flexibility.

Another option would be assigning two actions two each Companion button, to send the same command to multiple mimoLive APIs at the same time (i.e. the API of the instance running on Mac 1 and the API of the instance running on Mac 2).

In both cases, you’ll get redundancy only for commands issued thru Companion. If you manually interact with a mimoLive instance, your actions are not going to be mirrored by the other instance.

The VICREO-Listener-based option is interesting because you can easily have redundancy also for other software. For instance, if you have a PowerPoint slideshow running in the background and a window capture happening in mimoLive, and you need to keep in synch the slide advancement too.