Technology weblog

Saturday Jun 02, 2007

USB Uno MIDI interface

A couple of weeks ago I bought a USB MIDI interface, one that is supported under Linux, of course.

Midisport Uno USB MIDI interface

It is the Midisport Uno by M-Audio. Finally I can play my favourite MIDI files on my digital piano (again) as well as record my playing with a sequencer using my laptop. Although it took me some time to get the Uno working under Linux, I am now immensely happy with it, since I normally never use Windows and I have Rosegarden to my avail. What an incredibly nice and feature rich open source MIDI program. The only scarce resource left now is my time!

What did I do to get it working under Linux? First of all, I found this link on setting up M-Audio USB MIDI devices. Apparently, first of all drivers have to be loaded into memory every time the computer is started. So first I downloaded the USB MIDI firmware loader (version 1.2) and unpacked it. Then I followed the somewhat tedious procedure to extract the usb11ldr.sys driver from the Windows installer package (version 4.2.03v4). For the sake of convenience, you my download it here directly. I placed it in the root of the unpacked firmware loader directory and invoked a "make install" as root.

Then I plugged in the Uno while simultaneously watching "tail -f /var/log/messages"

Jun  2 22:03:49 achilles usb 1-2: new full speed USB device using uhci_hcd and address 2
Jun  2 22:03:49 achilles usb 1-2: configuration #1 chosen from 1 choice
Jun  2 22:03:49 achilles usbcore: registered new interface driver snd-usb-audio

Great, as it should be! However, I got disappointed when I tried to play my first (Scriabin) MIDI file:

bash[505]% playmidi -e scriabn1.mid 
Playmidi 2.5 Copyright (C) 1994-1997 Nathan I. Laredo, AWE32 by Takashi Iwai
This is free software with ABSOLUTELY NO WARRANTY.
For details please see the file COPYING.
open /dev/sequencer: No such device

Actually, I still don't know what is wrong here. The mysterious action here is to start Rosegarden now. Rosegarden spits out a lot of info when starting up, but look at this:

CREATED OUTPUT PORT 3:out 1 - MIDI external device for device 0
Connecting my port 3 to 20:0 on initialisation
Creating device 0 in Play mode for connection 20:0 USB Uno MIDI Interface MIDI 1 (duplex)
Default device name for this device is MIDI external device
Creating device 1 in Record mode for connection 20:0 USB Uno MIDI Interface MIDI 1 (duplex)

Rosegarden does not only seem to be happy, it is happy, as I can record and play! And as a bonus, as soon as Rosegarden has been started (it may be stopped anytime thereafter), playmidi is happy too. The only change I have to do is somewhere in the kernel adapt the system timer as I get the following warning during start-up of Rosegarden (but everything else seems to work fine)

 System timer is only 250Hz, sending a warning
    Current timer set to "system timer"
    WARNING: using system timer with only 250Hz resolution!
AlsaDriver::initialiseMidi -  initialised MIDI subsystem

When solved I'll post a follow-up. And for now, while I'm writing this post, my digital piano plays music form The Pianist, a package with over 600 recorded classical piano pieces that I bought once, but no longer seems to be available. I know this, because the CD with the software on it became unreadable, and I wanted to reoder it.

So how did I manage to recover it? Luckily, when I threw out my old PC, I kept the hard disks, although a 4 and 2 Gig hard disk are rather useless these days. So I went to the store and bought a housing for an external USB hard disk, and put in my old hard drive. Luckily, I could recover the pianist without much effort! And now I'm such a happy man, listening to these magnificent recordings of all these incredibly beautiful compositions. If it wasn't for the copyrights, I would share all of them from my home page!


Post a Comment:
Comments are closed for this entry.

Hire us