Feature request: Null and sensing audio engine

What?
You might ask.

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.
Ideally:
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.

1 Like

I run two 2in1 Convertibles (each with its own audio interface) in parallel.

Since I access songs/song states with a Cherry numpad the only problem to reach what you described (if I understood it correctly) is that there is no such thing like an usb data y-cable.

I had a similar discussion some time ago:

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

Aha, yes, very similar.
I’m going to investigate auto hot key to see if it can do the job and not hinder performance.
But I’ll be practicing my shortcut keyboard ditty.

1 Like

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.

I can imagine the nightmare cases to deal with on a USB cable coming out.
But here I’m asking for a device coming online.
The cable is coming out of the dead machine and going into the backup.

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.

Brad

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.

If you’re after instant switching, there’s one audio interface that will help you: iConnectivity PlayAudio 12.

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.

Cheers,

Torsten

Thanks for the suggestion.
If only Iconnectivity could add the switching feature to their more complete interfaces like the audio4c, which also supports connection to 2 computers at the same time.

MOTU has technology to connect your interface to multiple machines. But it’s expensive and requires changing how you connect your interface to your devices.

As far as MIDI, there’s MIDI switches.

Yours is the simplest setup, just giving other options.

Also, remember Cantabile has an on/off button. Much faster than restarting Cantabile or troubleshooting USB connections. This is always my first stop if a controller stops responding, etc.

I’d not heard that MOTU had multiple connections, thanks.
I’d be hard pushed to move away from RME though. Their looooong driver support and great performance makes up for the extra cost.

Running the backup C3 off will mean that I’d have to then find the song and state in order to continue once the audio interface is switched over.

Well that cheap USB switcher turned out to be a load of poop.
It worked well for a few days and now just clicks internally.

I have an Aten C1782 which works great but requires a full 2 second press to switch it’s USB hub across.

I’ve also made an Auto Hot Key script to switch to an audio device in C3.

@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.

2 Likes

Nice idea, noted.

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 !

3 Likes

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

I plug my Nord into the (rack 1602) mixer & press the 2 mute buttons if I need to switch. Guess the same would work for 2 laptops. Love the sidechain idea though, nice