Jack cannot patch USB-Midi devices


I’m running openSuse 11.1 (64) and have problems getting midi input devices to work.
I have connected a new Yamaha KX-61 USB midi-controller keyboard, but in QJackCtrl I cannot make any connection from the keyboard to any midi-input (a soft synth like Qsynth). All ports of the KX device are present in the devices list of QJackCtrl (and show up in the output of lsusb).

I installed a virtual midi keyboard, which I can connect in QJackCtrl to the soft synth and it will sound the notes /keys I press.
But when trying this with any of the three midi output devices of the KX which are listed in the QJackCtrl input devices list, qJackctrl will silenly refuse to make / draw a connection. And of course no sound is made when playing on the keys.

I also connected a different midi input-output controller a M-Audio MidiSport 2x2, which is known to work in linux. After the firmware has been loaded, the led’s show that the device is active and is transmitting midi events.
However, with this device the same problem: I cannot make a connection in QjackCtrl.

Next, I logged on as root, and everything worked fine !!

I switched off AppArmour, but that did not help.
Both midi devices work normally in Windows (vista-64 / XP).

My normal account is part of group audio
In /etc/security/limits.conf the following lines are added:
@audio - rtprio 90
@audio - nice 15
@audio - memlock 4000000
(which should allow real-time prioriry for the Jack deamon).

I looks like some security is preventing QJackCtrl / Jack to attach to the midi devices. Is there a way to make these accessible to a normal user account (and allow Jack to pass the midi events to the appropriate applications) ?

I just did a quick Google on the MidiSport. According to M-Audio, the Midisport uses a proprietary linux driver available from 4Front Technologies. The driver is free, you pay if you need technical support.

It gets worse. The driver is an oss driver, so one can’t be sure it plays well with the alsa-oss libraries.

The good news: OSS 4 is opensource again (it was closed source for a while) and the few people who have written about it say it’s very good.

The bad news: I’ve found no posts in the forum about using oss instead of alsa.

Here’s a June 2009 blog about the current states of alsa and oss.

It appears the Yamaha keyboard has either kernel support or a patch for kernel support with alsa. What does the keyboard manual say about its use in linux?

I have no inkling if this will work for the keyboard.

Try starting the jack daemon first, from a terminal or using Alt-F2.

jackd -n 3 -d alsa

Then run qjackctrl.

The ‘-n 3’ is a playback latency setting and is recommended in the jackd manpages for USB devices, the ‘-d alsa’ specifies the audio backend is to be alsa.

The M-Audio Midisport midi interface series (and some other M-Audio USB devices) need firmware to be loaded. Under Windows, the driver takes care of this. For Linux there is a loader and firmware files for several M-Audio devices available: Firmware loaders for M-Audio/Midiman USB MIDI and Audio devices

Once the firmware loaded, the device works fine with Jack, but only when I log in as root.

After a reboot it functions normally now! :slight_smile:
I don’t exactly know what is the reason. It could have been

  • trying running jack from the commandline (qjackctl cannot attach to the jack server, not very handy, but a different tool -patchage- can do the patches; but it didn’t help),
  • or start qjackctl as root using sudo (couldn’t get it running as it complained about a missing X screen).
  • or switching of AppArmour needed a reboot to have effect.

After a week searching and trying, I’m very pleased now with the situation. Even without optimizing the jack settings from my fast system, there is no noticeable delay between hitting a key and hearing it. On Vista there is an awful delay of 0.2 seconds, caused by the default Microsoft soft synth for the on-board audio chip.

is there any documentation / explanation about the meaning of the jack parameters,like the different server types and latency influencing settings?

A lot of people, using different distros, have solved jack the way you have – running it as root and they don’t know what steps they took to get it to work either.

is there any documentation / explanation about the meaning of the jack parameters,like the different server types and latency influencing settings?

Using jack seems like a very long experiment at times. You never know if you’ve optimized your settings. Here’s what I found.

There’s the manpages for jackd.

I found this pdf helpful, http://http://w3.linux-magazine.com/issue/67/JACK_Audio_Server.pdf.

There is this tutorial from ubustu.

www.hydrogenaudio.org is a good source for a lot of information and help on audio applications.

And finally, this page helped me to record flash audio.

When using “pro audio,” be aware of what else is running! Many cron jobs are set to run once a day and that means midnight!

thanks for the links and the encouraging words about Jack.