Re: [linux-audio-dev] Midi Mapper???

New Message Reply About this list Date view Thread view Subject view Author view Other groups

Subject: Re: [linux-audio-dev] Midi Mapper???
From: Paul Davis (pbd_AT_Op.Net)
Date: Thu Jan 03 2002 - 21:34:40 EET


>able to get ALSA midi support working. The documentation is woefully
>out of date. I do remember seeing another installation howto from someone
>in New Zealand but I couldn't find that information when I needed it.

did you bother to ask on alsa-users?

>Finally, I dont think that ALSA supports USB midi devices and therefore
>these devices would be outside the ALSA midi framework.

AFAIK, almost no USB MIDI device is properly supported under
Linux. It has nothing to do with ALSA. the manufacturers of such
devices have been remarkably reluctant to release the information
needed to make their devices usable, despite the fact that we can
obviously read the bit stream they deliver to a USB port.

I am not sure what ALSA's handling of USB MIDI will look like. Right
now, I believe that in the ALSA *device drivers* all physical MIDI
ports are assumed to be handled by kernel code belonging to ALSA
(i.e. devices on audio interfaces, etc.). For USB and IEEE1394, this
is obviously not the case, and hence there will be probably need to be
some new user space code added to the ALSA *library* to support
devices that are accessed and controlled without any ALSA kernel code
(just the standard USB and IEEE1394 device drivers).

For applications that use ALSA's MIDI API (snd_rawmidi_foo()) or the
sequencer API (snd_seq_foo()), both sets of device classes would
appear completely identical.

Its key to remember this - unlike OSS, ALSA includes a user-space
library to handle issues like this. Under OSS, there is no way to make
a USB MIDI device appear at /dev/midi without removing /dev/midi and
using some kind of wierd symlink. OSS doesn't offer any API that isn't
part of POSIX (open/read/write/close/ioctl) and uses plain file
descriptors to identify the "target" of all actions. file descriptors
ultimately point to device drivers in the kernel. since USB MIDI
devices would be accessed via a USB device driver, not an OSS one, you
can't use OSS nodes like /dev/midi to access them. Under ALSA, you
don't use file descriptors like this - you use names, and the ALSA
library will figure out how to access things for you and provide a
uniform API for doing so.

--p


New Message Reply About this list Date view Thread view Subject view Author view Other groups

This archive was generated by hypermail 2b28 : Thu Jan 03 2002 - 21:30:56 EET