Ardour - Jack & MIDI setup

Optimize your system for ultimate performance.

Moderators: MattKingUSA, khz

Post Reply
ladrua
Established Member
Posts: 5
Joined: Wed Dec 15, 2021 1:13 pm

Ardour - Jack & MIDI setup

Post by ladrua »

Hi. I am having difficulties getting midi to work with Jack/Ardour.
I have a NI Komplete Audio 6 MK2 running on debian(raspberry pi 4b). Audio inputs and outputs work perfect. I start jack via `qjackctl` with "Midi Driver" set to "none". If I boot up Ardour now, all the audio inputs and outputs are working.

Now to get midi working, I am told to start jackd with "midi driver: None" then start `a2jmidid -e` in another terminal. I can then see two midi interfaces visible in the qjackctl graph.

But if I then try to start Ardour, it takes along time where it is trying to connect to the jackd server but cannot, it after some seconds shows me the dialogue to start/connect to jack or another sound driver. And it will fail if I choose jack as the jack server is already running.

If I try to start a2jmidid with `a2jmidid -j default` I am allowed to start Ardour and it connects to the jack server, I can then make a connection from the a2j capture interface to Ardour's midi track. But no signal coming in.

I am sure I'm just missing something silly as I have never worked with midi, nor jack, before. Any help much appreciated.

Probably asked and answered but couldnt find it anywhere.

Messages from Qjackctl when starting Ardour after "a2jmidid -e":

Code: Select all

Jack: JackShmMem::delete size = 0 index = 4
Cannot create new client
Jack: JackSocketServerChannel::Execute : poll client error err = Success
Jack: JackSocketServerChannel::ClientKill ref = -1 fd = 22
Jack: Client was not opened : probably correspond to server_check
Jack: JackClientSocket::Close
Jack: JackSocketServerChannel::BuildPoolTable size = 4
Jack: JackSocketServerChannel::BuildPoolTable fSocketTable i = 1 fd = 13
Jack: JackSocketServerChannel::BuildPoolTable fSocketTable i = 2 fd = 16
Jack: JackSocketServerChannel::BuildPoolTable fSocketTable i = 3 fd = 19
Jack: JackSocketServerChannel::ClientCreate socket
Jack: JackSocketServerChannel::BuildPoolTable size = 5
Jack: JackSocketServerChannel::BuildPoolTable fSocketTable i = 1 fd = 13
Jack: JackSocketServerChannel::BuildPoolTable fSocketTable i = 2 fd = 16
Jack: JackSocketServerChannel::BuildPoolTable fSocketTable i = 3 fd = 19
Jack: JackSocketServerChannel::BuildPoolTable fSocketTable i = 4 fd = 22
Jack: JackSocketServerChannel::Execute : poll client error err = Success
Jack: JackSocketServerChannel::ClientKill ref = -1 fd = 22
Jack: Client was not opened : probably correspond to server_check
Jack: JackClientSocket::Close
Jack: JackSocketServerChannel::BuildPoolTable size = 4
Jack: JackSocketServerChannel::BuildPoolTable fSocketTable i = 1 fd = 13
Jack: JackSocketServerChannel::BuildPoolTable fSocketTable i = 2 fd = 16
Jack: JackSocketServerChannel::BuildPoolTable fSocketTable i = 3 fd = 19
Jack: JackSocketServerChannel::ClientCreate socket
Jack: JackSocketServerChannel::BuildPoolTable size = 5
Jack: JackSocketServerChannel::BuildPoolTable fSocketTable i = 1 fd = 13
Jack: JackSocketServerChannel::BuildPoolTable fSocketTable i = 2 fd = 16
Jack: JackSocketServerChannel::BuildPoolTable fSocketTable i = 3 fd = 19
Jack: JackSocketServerChannel::BuildPoolTable fSocketTable i = 4 fd = 22
Jack: JackRequest::ClientCheck
Jack: Check protocol client = 8 server = 8
Jack: JackRequest::ClientOpen
Jack: JackEngine::ClientExternalOpen: uuid = 10, name = ardourprobe
Jack: JackEngine::AllocateRefNum ref = 4
Jack: JackLinuxFutex::Allocate name = jack_sem.1000_default_ardourprobe val = 0
Jack: JackSocketNotifyChannel::Open name = ardourprobe
Jack: JackClientSocket::Connect : addr.sun_path /dev/shm/jack_ardourprobe_1000_0
Jack: JackShmMem::new index = 4 attached = abff7000 size = 440 
Jack: JackExternalClient::Open name = ardourprobe index = 4 base = abff7000
Jack: JackPosixProcessSync::TimedWait time out = 5000000
JackPosixProcessSync::LockedTimedWait error usec = 5000000 err = Connection timed out
Jack: JackPosixProcessSync::TimedWait finished delta = 5000168.0
Driver is not running
Jack: JackExternalClient::Close
Jack: JackSocketNotifyChannel::Close
Jack: JackClientSocket::Close
Jack: JackShmMem::delete size = 0 index = 4
Cannot create new client
Jack: JackSocketServerChannel::Execute : poll client error err = Success
Jack: JackSocketServerChannel::ClientKill ref = -1 fd = 22
Jack: Client was not opened : probably correspond to server_check
Jack: JackClientSocket::Close
Jack: JackSocketServerChannel::BuildPoolTable size = 4
Jack: JackSocketServerChannel::BuildPoolTable fSocketTable i = 1 fd = 13
Jack: JackSocketServerChannel::BuildPoolTable fSocketTable i = 2 fd = 16
Jack: JackSocketServerChannel::BuildPoolTable fSocketTable i = 3 fd = 19
Jack: JackSocketServerChannel::ClientCreate socket
Jack: JackSocketServerChannel::BuildPoolTable size = 5
Jack: JackSocketServerChannel::BuildPoolTable fSocketTable i = 1 fd = 13
Jack: JackSocketServerChannel::BuildPoolTable fSocketTable i = 2 fd = 16
Jack: JackSocketServerChannel::BuildPoolTable fSocketTable i = 3 fd = 19
Jack: JackSocketServerChannel::BuildPoolTable fSocketTable i = 4 fd = 22
Jack: JackSocketServerChannel::Execute : poll client error err = Success
Jack: JackSocketServerChannel::ClientKill ref = -1 fd = 22
Jack: Client was not opened : probably correspond to server_check
Jack: JackClientSocket::Close
Jack: JackSocketServerChannel::BuildPoolTable size = 4
Jack: JackSocketServerChannel::BuildPoolTable fSocketTable i = 1 fd = 13
Jack: JackSocketServerChannel::BuildPoolTable fSocketTable i = 2 fd = 16
Jack: JackSocketServerChannel::BuildPoolTable fSocketTable i = 3 fd = 19
Jack: JackSocketServerChannel::ClientCreate socket
Jack: JackSocketServerChannel::BuildPoolTable size = 5
Jack: JackSocketServerChannel::BuildPoolTable fSocketTable i = 1 fd = 13
Jack: JackSocketServerChannel::BuildPoolTable fSocketTable i = 2 fd = 16
Jack: JackSocketServerChannel::BuildPoolTable fSocketTable i = 3 fd = 19
Jack: JackSocketServerChannel::BuildPoolTable fSocketTable i = 4 fd = 22
Jack: JackRequest::ClientCheck
Jack: Check protocol client = 8 server = 8
Jack: JackRequest::ClientOpen
Jack: JackEngine::ClientExternalOpen: uuid = 11, name = ardourprobe
Jack: JackEngine::AllocateRefNum ref = 4
Jack: JackLinuxFutex::Allocate name = jack_sem.1000_default_ardourprobe val = 0
Jack: JackSocketNotifyChannel::Open name = ardourprobe
Jack: JackClientSocket::Connect : addr.sun_path /dev/shm/jack_ardourprobe_1000_0
Jack: JackShmMem::new index = 4 attached = abff7000 size = 440 
Jack: JackExternalClient::Open name = ardourprobe index = 4 base = abff7000
Jack: JackPosixProcessSync::TimedWait time out = 5000000
JackPosixProcessSync::LockedTimedWait error usec = 5000000 err = Connection timed out
Jack: JackPosixProcessSync::TimedWait finished delta = 5000103.0
Driver is not running
Jack: JackExternalClient::Close
Jack: JackSocketNotifyChannel::Close
Jack: JackClientSocket::Close
Jack: JackShmMem::delete size = 0 index = 4
Cannot create new client
Jack: JackSocketServerChannel::Execute : poll client error err = Success
Jack: JackSocketServerChannel::ClientKill ref = -1 fd = 22
Jack: Client was not opened : probably correspond to server_check
Jack: JackClientSocket::Close
Jack: JackSocketServerChannel::BuildPoolTable size = 4
Jack: JackSocketServerChannel::BuildPoolTable fSocketTable i = 1 fd = 13
Jack: JackSocketServerChannel::BuildPoolTable fSocketTable i = 2 fd = 16
Jack: JackSocketServerChannel::BuildPoolTable fSocketTable i = 3 fd = 19
Jack: JackSocketServerChannel::ClientCreate socket
Jack: JackSocketServerChannel::BuildPoolTable size = 5
Jack: JackSocketServerChannel::BuildPoolTable fSocketTable i = 1 fd = 13
Jack: JackSocketServerChannel::BuildPoolTable fSocketTable i = 2 fd = 16
Jack: JackSocketServerChannel::BuildPoolTable fSocketTable i = 3 fd = 19
Jack: JackSocketServerChannel::BuildPoolTable fSocketTable i = 4 fd = 22
Jack: JackSocketServerChannel::Execute : poll client error err = Success
Jack: JackSocketServerChannel::ClientKill ref = -1 fd = 22
Jack: Client was not opened : probably correspond to server_check
Jack: JackClientSocket::Close
Jack: JackSocketServerChannel::BuildPoolTable size = 4
Jack: JackSocketServerChannel::BuildPoolTable fSocketTable i = 1 fd = 13
Jack: JackSocketServerChannel::BuildPoolTable fSocketTable i = 2 fd = 16
Jack: JackSocketServerChannel::BuildPoolTable fSocketTable i = 3 fd = 19
Jack: JackSocketServerChannel::ClientCreate socket
Jack: JackSocketServerChannel::BuildPoolTable size = 5
Jack: JackSocketServerChannel::BuildPoolTable fSocketTable i = 1 fd = 13
Jack: JackSocketServerChannel::BuildPoolTable fSocketTable i = 2 fd = 16
Jack: JackSocketServerChannel::BuildPoolTable fSocketTable i = 3 fd = 19
Jack: JackSocketServerChannel::BuildPoolTable fSocketTable i = 4 fd = 22
Jack: JackRequest::ClientCheck
Jack: Check protocol client = 8 server = 8
Jack: JackRequest::ClientOpen
Jack: JackEngine::ClientExternalOpen: uuid = 12, name = ardourprobe
Jack: JackEngine::AllocateRefNum ref = 4
Jack: JackLinuxFutex::Allocate name = jack_sem.1000_default_ardourprobe val = 0
Jack: JackSocketNotifyChannel::Open name = ardourprobe
Jack: JackClientSocket::Connect : addr.sun_path /dev/shm/jack_ardourprobe_1000_0
Jack: JackShmMem::new index = 4 attached = abff7000 size = 440 
Jack: JackExternalClient::Open name = ardourprobe index = 4 base = abff7000
Jack: JackPosixProcessSync::TimedWait time out = 5000000
JackPosixProcessSync::LockedTimedWait error usec = 5000000 err = Connection timed out
Jack: JackPosixProcessSync::TimedWait finished delta = 5000165.0
Driver is not running
Jack: JackExternalClient::Close
Jack: JackSocketNotifyChannel::Close
Jack: JackClientSocket::Close
Jack: JackShmMem::delete size = 0 index = 4
Cannot create new client
Jack: JackSocketServerChannel::Execute : poll client error err = Success
Jack: JackSocketServerChannel::ClientKill ref = -1 fd = 22
Jack: Client was not opened : probably correspond to server_check
Jack: JackClientSocket::Close
Jack: JackSocketServerChannel::BuildPoolTable size = 4
Jack: JackSocketServerChannel::BuildPoolTable fSocketTable i = 1 fd = 13
Jack: JackSocketServerChannel::BuildPoolTable fSocketTable i = 2 fd = 16
Jack: JackSocketServerChannel::BuildPoolTable fSocketTable i = 3 fd = 19
User avatar
Michael Willis
Established Member
Posts: 1451
Joined: Mon Oct 03, 2016 3:27 pm
Location: Rocky Mountains, North America
Has thanked: 69 times
Been thanked: 164 times
Contact:

Re: Ardour - Jack & MIDI setup

Post by Michael Willis »

Are you certain that you need JACK? Unless you specifically need the capability of routing between multiple apps, then you might try setting up Ardour to use ALSA instead. It's much more simple to get working, and might circumvent the issue you are experiencing.

If you want to try it, make sure that Jack is not running. Don't run qjackctl, don't run a2jmidid, just launch Ardour and pick Alsa and see if you are able to get Ardour to use your NI interface along with the midi hardware.
ladrua
Established Member
Posts: 5
Joined: Wed Dec 15, 2021 1:13 pm

Re: Ardour - Jack & MIDI setup

Post by ladrua »

Hi Michael, thanks for your reply. I will try as you say with pure Alsa driver. But I would need it to work with Jack in the end as I am planning to use JackTrip for remote jamming with a friend of mine.
ladrua
Established Member
Posts: 5
Joined: Wed Dec 15, 2021 1:13 pm

Re: Ardour - Jack & MIDI setup

Post by ladrua »

Ok, just tried to load Ardour with Alsa driver and "Midi system: ALSA raw devices" and it also fails. Ardour says
"The audio/MIDI engine has stopped running unexpectedly.
Something is probably wrong with your audio/MIDI device settings."
If I choose "Midi system: none" it starts fine.

Output of dmesg:

Code: Select all

[  375.369694] retire_capture_urb: 244 callbacks suppressed
[  377.941622] usb 1-1.1: USB disconnect, device number 5
[  378.009753] hdmi-audio-codec hdmi-audio-codec.3.auto: ASoC: error at snd_soc_dai_startup on i2s-hifi: -19
[  378.172158] usb 1-1.1: new high-speed USB device number 6 using xhci_hcd
[  378.272816] usb 1-1.1: New USB device found, idVendor=17cc, idProduct=1870, bcdDevice= 0.36
[  378.272827] usb 1-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[  378.272831] usb 1-1.1: Product: Komplete Audio 6 MK2
[  378.272835] usb 1-1.1: Manufacturer: Native Instruments
[  378.272838] usb 1-1.1: SerialNumber: 9D3101EA
[  378.339249] hdmi-audio-codec hdmi-audio-codec.3.auto: ASoC: error at snd_soc_dai_startup on i2s-hifi: -19
ladrua
Established Member
Posts: 5
Joined: Wed Dec 15, 2021 1:13 pm

Re: Ardour - Jack & MIDI setup

Post by ladrua »

And here is my system kernel info

Code: Select all

Linux raspberrypi 5.10.83-rt58-v8+ #1 SMP PREEMPT Sun Dec 12 03:47:57 GMT 2021 aarch64 GNU/Linux
ladrua
Established Member
Posts: 5
Joined: Wed Dec 15, 2021 1:13 pm

Re: Ardour - Jack & MIDI setup

Post by ladrua »

And when starting Ardour via terminal and verbose I this with ALSA driver and Raw midi:

Code: Select all

Scanning folders for bundled LV2s: /usr/lib/ardour6/LV2
ALSA lib rawmidi_hw.c:133:(snd_rawmidi_hw_drain) SNDRV_RAWMIDI_IOCTL_DRAIN failed: No such device
ALSA lib rawmidi_hw.c:133:(snd_rawmidi_hw_drain) SNDRV_RAWMIDI_IOCTL_DRAIN failed: No such device

Code: Select all

pi@raspberrypi:~ $ aconnect -l
client 0: 'System' [type=kernel]
    0 'Timer           '
    1 'Announce        '
client 14: 'Midi Through' [type=kernel]
    0 'Midi Through Port-0'
client 20: 'Komplete Audio 6 MK2' [type=kernel,card=1]
    0 'Komplete Audio 6 MK2 MIDI 1'
If I run

Code: Select all

aseqdump -p 20
I do see the MIDI signals coming in.

If I run

Code: Select all

pi@raspberrypi:~ $ amidi -l
Dir Device    Name
IO  hw:1,0,0  Komplete Audio 6 MK2 MIDI 1
and then

Code: Select all

amidi --dump -c -p hw:1,0,0
I get nothing. No error message or signals.
Post Reply