Saving/resuming jack connections

I’m using Win10 with Ardour with Musescore and a MIDI keyboard and JACK.

Audio endpoints seem to route consistently, but MIDI can have so many more connections and are dynamic that I imagine the problem I encounter has to do with the dynamic nature.

I notice that ardour saves all of its jack connections, but it would be nice if there was an option to save ALL jack connections. This way if ardour is the last one launched it can make all the connections needed. And preferably disconnect all connections, and then connect all the ones that were saved in the session. I mention this because, for instance, musescore insist on routing to main output, but I want it only routed to ardour on a track. I’ve tried to semi-automate this with jack tools, but “jack_disconnect.exe” no longer is included, only “jack_connect.exe”. If there’s another workaround, I’d be interested. qjackctl seems like it should be able to do it, but it’s not clear how to do it.

A minor drag is that Ardour won’t make the connections if the other endpoints don’t exist when ardour launches, so it would be nice to have the option to have ardour retry to make all saved jack connections for that session.

  1. Ardour will only bring jack connections up for the first session that’s loaded (application start). Maybe I’m imagining that or doing something wrong. If the endpoints exist at a later time, ardour will never see it unless ardour is exited, AND jack is restarted. I could be wrong about this cause behavior was hard to track.

  2. Would be nice to have option to disconnect all jack connections and make all jack connections (not just ardour’s) when session or template last saved.

  3. Would be nice to do #2 but have it as a retry in case some endpoints were missing.

Any workarounds to above would be helpful.

Side note:
This is for windows 10 64-bit, but I’m also concurrently seeing how much of this I can reproduce in Linux, where I’m more experienced. Ultimately I’ll probably create a tutorial on a film scoring setup. Is it possible to connect ardour in Linux to ardour in windows using net jack or something? If Ardour built an Ardour Plugin that would communicate with another ardour session in a different OS over the network, that would be a way to use Ardour in Linux while connecting to Ardour in Windows for various plugin usage. This would be similar to how Vienna Ensemble Pro works, which I’ve also got working with Ardour.

edit: just re-read my post. sorry for some rambling. I can try and edit for clarity later.

Yes, that is correct.

Keep in mind that Ardour runs fine (often better) without JACK, and we generally recommend against using JACK.

Ardour cannot really offer external connection management, but there are various JACK control apps designed for this. I do however not know their availability for Windows. qjackctl’s patchbay is probably closest to your needs. That does offer to make connections when ports change and qjackctl is available for windows.

You can exchange Audio and MIDI data over the network, and also synchronize timecode at JACK level, however Ardour itself will not know about the remote session. In the past people have built render clusters, running synth instances on remote machines, but with modern multicore CPUs and that fell out of fashion. There is additional latency and no plugin-automation, other than what MIDI can convey and it was never really convenient.

In recent years jack-trip had a revival to exchange audio data over the network, mainly for remote collaboration. There are also jacktrip clients for Linux, macOS and Windows readily available.

Assuming the use-case is to use Windows VST plugins, there are likely better solutions; among others, notably yabridge: GitHub - robbert-vdh/yabridge: A modern and transparent way to use Windows VST2 and VST3 plugins on Linux

I can probably do that at the end while doing a final mix, but I need jack for Musescore to be in sync with Ardour and for the video to be in sync.

Thanks for the other tips.

I’ve managed to write a batch script that does all the connects and disconnects that I want.
Figured out how to do disconnects, and in case it helps there’s a simple fix and I posted it on jack github site:

Missing jack_disconnect.exe
After reading thru the code, I can see that the name of the executable determines how it behaves. So copying jack_connect.exe to jack_disconnect.exe works. Probably should add copying the file in the installer.

1 Like

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.