[linux-audio-user] usb midi

Clemens Ladisch clemens at ladisch.de
Tue May 27 07:13:01 EDT 2003


R Parker wrote:
> --- Clemens Ladisch <clemens at ladisch.de> wrote:
> > R Parker wrote:
> > > I still don't understand where the usb-midi i/o
> > device is.
> > > ...
> > > There's no messages passing through
> > /dev/snd/midiC1D0
> >
> > This file handles all nine ports. The ALSA library
> > uses a magic IOCTL to
> > select the desired port; when you access the file
> > directly, you get the
> > first port only.
>
> After examining things a little closer, your reply
> confirms my conclusion.
>
> I think there's something wrong because no data is
> making it to the /dev/snd/midiC1D0 file.
>
> For demonstration, I've connected everything:
> ...
> With this scenario anything that comes in port_N,8
> should be seen in the file /dev/snd/midiC1D0. Am I
> right?

Well, what I said earlier isn't entirely correct, accessing
/dev/snd/midiC1D0 will open the first free port. Connecting ports will
open them, so the first free port in your case was probably Port 8.

And when you connect port x to port 0, data from the device at port x will
be written to port 0, but you won't be able to read it from port 0 because
MIDI Out 1 and MIDI In 1 are different ports.


I think you really need virmidi to do what you want.
Please add the following lines (or modify them) in your modules.conf:

	options snd cards_limit=3
	alias snd-card-2 snd-virmidi
	alias snd-slot-2 snd-card-2
	options snd-virmidi index=2

then connect the desired ports of the 8x8 to port 80:0, and then the
incoming data should be available at /dev/midi02.

> > If possible, you should use a program that can
> > access MIDI ports via the
> > ALSA library (the 8x8's ports would be named
> > "hw:1,x", x = 0..8).
>
> I've always used dd to see check for incoming mmc
> messages. It's always worked. Is this what you're
> referring to?

No, dd doesn't use the ALSA library.

The ALSA library hides the device files behind device names. Instead of
accessing the ALSA device files directly, you are supposed to use some
program which uses the ALSA library.

There is an ugly test program which can display the data from an ALSA
rawmidi port in the alsa-lib/test directory. Please go there, run "make
rawmidi", and start it with
	./rawmidi -v -i hw:1,x


HTH
Clemens





More information about the Linux-audio-user mailing list