I’m looking at a way of having a redundant laptop and being able to switch to it quickly, even mid-song.
A quick and easy way would be to have one usb audio interface and 2 laptops.
Both laptops receive MIDI from the controllers.
They play simultaneously.
If the main laptop crashes you pull the usb cable from one laptop and insert into the backup.
Cantabile would need a modified ‘null audio’ device though. One that plays null but is also sensing to detect if the main audio interface is connected. Once connected it switches to that.
The usb interface runs on external power.
The interface is connected to a switch (eg Aten) so the swap is just a button press and not a cable switch.
I’ve tested running 2 interfaces in parallel and the instant switching was great.
The complications there are that you probably need a mixer to switch the output to FOH and handle the monitor mix.
I use my interface (Babyface Pro) to make the monitor mix which involves an ambient mic, the venue monitor mix, plus my C3 output (keys and special audio cues.)
It would be impractical to duplicate all that kit and setup.
I’d have to get a separate mixer.
The idea of the null and sensing audio engine is to give a compromise setup: smaller, cheaper, quicker to setup but has slower switching time.
If @brad could even just make a hot key to switch to a designated audio engine then we’d have a usable redundant feature for very no extra cost other than the backup laptop.
Currently the following keystrokes will switch from my null audio to my interface:
ctl+shift+o, tab, down arrow, down arrow, shift+tab, enter
The biggest problem I see with all this is the behaviour of the audio drivers when things go wrong. eg: a pulled USB cable can give everything from a driver reset request, to a crash, to a hang, to a bsod, to just no longer receiving buffer switch callbacks.
It’s an interesting idea and I’ll have a think about it. It might be possible with WASAPI devices (I’d need to check and experiment), but with ASIO devices which is probably where this is needed most anyway I don’t know of any notification that device is now available.
Also these devices don’t appear and disappear from the installed list - the driver is always there, they just fail to start if the device isn’t connected. So polling to see if the device is available would need to try to actually start the device… and doing that repeatedly sounds like asking for trouble.
Thanks for having a good think about this.
Perhaps the hotkey and binding are the way to go.
With an engine and interface marked as the primary, then being able to attempt to start and switch to that if available with a keystroke or midi command, would get us most the way.
I’ve just tested an inexpensive USB switcher with a Babyface Pro (running on external power and no WDM devices configured) and it takes less than a second to become available to a system.
This interface allows you to connect TWO computers in parallel. You can switch between the signal from PC1 and PC2 manually (via footswitch) or it can even be set to detect a test tone and automatically switch when that test tone stops on one machine. Should be easy to set that test tone up in your Cantabile background rack.
Should be the simplest solution for having seamless failover, if you need that.
The only disadvantage: that interface doesn’t have an audio input, only outputs. So not applicable for us Cantabile guitarists who need inputs.
@Neil I don’t know if it would be helpful in your quest, but if you have both laptops outputting audio simultaneously, you could set up a side-chain compressor on a mixer that would block the audio from one of the laptops as long as it is receiving audio from the other laptop.
iConnectivity PlayAudio 12 interface is specifically designed to be used with 2 computers at the same time via 2 usb connectors (1 per computer). However it has no audio inputs. There are 12 audio outpout channels and a lot of MIDI channels via ethernet rj45 (or simply 16 MIDI channels in/out via a USB to MIDI adapter not supplied). The 2 computers must be loaded with the same session. You just have to create an audio track with channel 13 audio into the main computer on which you insert a plugin that generates a continuous 1khz signal (plugin downloadable from the iConnectivity site)… And when this 1 khz signal is broken, the interface switches automatically and instantly on the 2nd computeur, without any sound interruption !
Well I got to test my redundancy system!!!
At the end of the intro to the 3rd song of the gig the main laptop went down.
We streamed and recorded the gig so I could look back to see how long it took to get the backup online.
It took 12 seconds from crash to backup sound.
My Auto Hot Key script certainly helped reduce the time.
The main issue with the backup machine and sending the RME Babyface Pro across to it was that its mixer tweaks, such as house monitor mix and internal software mix needed by be done on both machines.
And then there’s the fear of playing the rest of the gig with no further backup.
Ideally, I need to write a script to restart C3, set it to null audio, and then work out a way to get the setlist and states back in sync