On Thu, 14 Nov 2002, Pedro Lopez-Cabanillas wrote:
> On Wednesday 13 November 2002 09:50, Clemens Ladisch wrote:
> > Pedro Lopez-Cabanillas wrote:
> > > IMHO, mapping the card MIDI ports to subdevices may be OK, but only for
> > > ALSA native rawmidi. After all, you can access some MIDI port with
> > > "hw:x,y,z" instead of "hw:x,y", but for OSS emulation a better approach
> > > is needed. For major 14, why not to bind minors sequentially for each
> > > MIDI port on the system? I mean: first port minor=2, second port
> > > minor=18, ... thru -and up- minor=242 (/dev/midi15) if needed, regardless
> > > of ALSA card numbers?
> >
> > This would break if cards are loaded dynamically, i.e. the port number
> > would depend on the order the drivers are loaded.
>
> Yes, but not only the driver's loading order matters. With USB devices, the
> hub's port number and the plug-in order may cause troubles, too. With my UM-2
> and Midisport2x2, both using snd-usb-audio driver, i was used to cat
> /proc/asound/seq/clients from time to time, to know which client number had
> each device, until i've found a solution that is the same as for driver
> loading order. This is a snippet from my modules.conf file:
>
> alias char-major-14 soundcore
> alias char-major-116 snd
> alias snd-card-0 snd-ens1371
> alias snd-card-1 snd-usb-audio
> alias snd-card-2 snd-usb-audio
> options snd cards_limit=3
> options snd-ens1371 index=0
> options snd-usb-audio index=1,2 vid=0x0763,0x0582 pid=0x1110,0x0005
>
> Since i've found this trick, i don't need to wonder about client numbers as
> they always are the same. It doesn' matter which device i plug-in first,
> neither which USB hub port it uses. 72 is always Midisport and 80 is UM-2.
>
> I don't know if there is a better way, and i'm not sure if it shall work for
> OSS rawmidi also.
>
> > Well, for obvous reasons (i.e. laziness), the current answer for this is
> > "don't use OSS". ;-)
>
> You're kidding :-) You made a great, tireless work with ALSA usb driver, and
> ALSA as a whole is going to be beautiful too... but there are a lot of worthy
> OSS legacy apps (i.e. PD), and many cheap and ubiquitous USB MIDI multiport
> devices now. IMHO, ALSA should be able to give support to both worlds.
>
> Of course, this issue must be addressed very carefully, having some previous
> discussions with final consensus.
>
> About device minor numbers, i've heard that Linux 2.6 shall break actual
> limitations, with a 32 bits kdev_t, divided up to 12 bits for major and 20
> bits for minor. Anybody can confirm this?
It's not implemented in 2.5:
typedef struct {
unsigned short value;
} kdev_t;
#define KDEV_MINOR_BITS 8
#define KDEV_MAJOR_BITS 8
Have you tried to create the virtual MIDI device (snd-virmidi.o) ? You can
connect any sequencer port to a rawmidi device (and first two rawmidi
devices are mapped to the OSS space as well). Note that virmidi module can
occupy up to 8 card slots (in your environment with 3 real soundcards, you
can create up to 10 oss rawmidi devices).
Jaroslav
-----
Jaroslav Kysela <[EMAIL PROTECTED]>
Linux Kernel Sound Maintainer
ALSA Project, SuSE Labs
-------------------------------------------------------
This sf.net email is sponsored by: To learn the basics of securing
your web site with SSL, click here to get a FREE TRIAL of a Thawte
Server Certificate: http://www.gothawte.com/rd524.html
_______________________________________________
Alsa-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/alsa-devel