No MIDI Devices!

I recently got an unpleasant surprise when I tried to connect the input from a MIDI keyboard. I have a MIDI interface on my sound card plus a USB keyboard, so I was expecting to see something like the following on the ALSA tab of QjackCtl’s Connections window:

no_midi-01

Instead, what I saw was this:

no_midi-02

My MIDI input devices were gone! Where did they go?

I figured out a few things to try. First, I checked my QjackCtl settings. I didn’t see anything unexpected.

Next, I listed the ALSA MIDI devices:

[steve@audio ~]$ amidi -l
Dir Device    Name
IO  hw:0,0    M Audio Audiophile 24/96 MIDI
IO  hw:2,0,0  E-MU Xboard25 MIDI 1

Both MIDI input devices were present.

I then tried receiving ALSA MIDI input from the E-MU Xboard25:

[steve@audio ~]$ amidi -p hw:2,0,0 -d
90 3C 77
90 3C 00
90 3E 74
90 3E 00

(Press Ctrl-C to exit amidi)

That worked, too, but I didn’t know of anything else to try.

I then posted a request for help on the LinuxMusicians forum and got some helpful responses. The first hint was to run aconnect:

[steve@audio ~]$ aconnect -i
client 0: 'System' [type=kernel]
    0 'Timer           '
    1 'Announce        '
client 14: 'Midi Through' [type=kernel]
    0 'Midi Through Port-0'

My MIDI input devices should have been listed but weren’t.

The next hint was to verify that module snd_seq_midi was loaded.

[steve@audio ~]$ lsmod | grep snd_seq_midi

The command had no output, meaning the required module wasn’t loaded! I loaded it manually:

[steve@audio ~]$ sudo modprobe snd_seq_midi

I then re-ran aconnect:

[steve@audio ~]$ aconnect -i
client 0: 'System' [type=kernel]
    0 'Timer           '
    1 'Announce        '
client 14: 'Midi Through' [type=kernel]
    0 'Midi Through Port-0'
client 16: 'M Audio Audiophile 24/96' [type=kernel]
    0 'M Audio Audiophile 24/96 MIDI'
client 24: 'E-MU Xboard25' [type=kernel]
    0 'E-MU Xboard25 MIDI 1'

The missing devices were back and available in QjackCtl.

I don’t yet have a solution to this problem other than to manually load the snd_seq_midi module. The module appears to be part of the linux kernal package, so I’m hoping the problem will be solved the next time there’s a kernel update.

Note that the MIDI input devices are handled by ALSA and should show up in QjackCtl’s Connections window even if JACK isn’t running.

UPDATE 9 APRIL 2015: This is a known problem with Linux kernel 3.19 (Arch Linux bug 44286).

UPDATE 24 MAY 2015: The problem is not fixed after several kernel updates. I’ve now made a change to automatically load the missing module at startup. As root, I created a new file /etc/modules-load.d/alsa_fix.conf containing one line:

snd_seq_midi

I restarted my system and the module was automatically loaded.

Note: There’s nothing special about the first part of the name alsa_fix.conf. The first part of the name can be anything you like but it needs to end with .conf.

Advertisements
Tagged with: , ,
Posted in Troubleshooting

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: