[Jackaudio] Problem with jack transport between VM host and VM guest

Stephan Auerochs stephan.auerochs at bosurus.de
Sun May 23 22:53:05 CEST 2021


I'm using jack for years with my Focusrite Firewire device, formerly 
with Ubuntu Studio, now with Parrot Home.
Recently I changed my DAW from Windows to Linux, using Ardour and Bitwig.

For my old Windows VST plugins, which do not run with Wine, I use a 
QEMU/KVM virtual machine with Win7.

To connect Host machine and VM, I run jack_load netmanager on the host 
and jackd -dnet -P12 -C2 -i1 -o1 -l1 in the VM.
First they could not connect, but I suspect jack_load netmanager to 
listen only to the main network device eth0, but not the VM's network 
device virbr0. I found a workaround with smcroute; I configured it so it 
reroutes the Multicast messages from virbr0 to eth0. This solved the 
Now I can connect the VM  in/outs with qjackctl on the host, and I can 
play the Win7 VST plugins, as if they are running in Linux; perfect!

But a problem with jack transport appeared:
If the VM is not running, jack transport on the host is working as 
expected; click on the play button in qjackctl, and the counter runs; 
click again and the counter stops.
If the VM is running, there is a delay of about 5 seconds from click on 
the play button, and the start of the counter. Stopping the transport 
works immediately.
So this makes recording difficult.

Qjackctl in the VM does not show jack transport running/stopping anyway; 
it can be started/stopped independently.

With verbose messages on, this message from the host jackd appears 
regularly, no matter which transport status:
Jack: CatchHost fd = 74 err = Resource temporarily unavailable

After click on play button, but counter not running, repeatedly:
Jack: JackNetMasterManager::SyncCallback returns 'false'
Jack: CheckAllRolling ref = 8 is not rolling

When counter runs, repeatedly:
Jack: JackNetMasterManager::SyncCallback returns 'false'

I assume that there exists still a network related mismatch between 
jackd on host and jackd in the VM, but I was not able to identify it. So 
I need some advice about jack transport and net mode.

Btw, an option for jack_load netmanager would be nice, telling on which 
network device to listen. So people get aware of this case and can solve 
it without smcroute.


More information about the JackAudio mailing list