On Wednesday 12 September 2007 14:00, IOhannes M zmoelnig wrote: > however i have found no way to find out, which clients are real midi > devices and which are not.
I've wondered this many times before, and have come to the conclusion that there is no way that's any better than a "rule of thumb". I'd like to know if anyone out there thinks otherwise. Prior to ALSA driver version 1.0.11rc1, system clients were numbered 0 to 63, hardware clients 64 to 127 and software clients 128 onwards. ALSA 1.0.11rc1 changed this (for a good reason, but apparently without documenting it) so that system clients were 0 to 15, hardware clients 16 to 127 and software clients 128 onwards. This was particularly problematic at the time, because it is the ALSA driver that generates the client numbers, and there is nothing enforcing the rule that the ALSA driver and library should be the same version. A user application therefore couldn't rely on the alsalib version number when trying to decide whether a client numbered 16 to 63 was system or hardware. (It's always recommended that the ALSA driver and library version numbers match up, but I don't think that a third-party application can necessarily assume that this will be the case on every system.) I assume it must be intended that ALSA applications treat these numbers as meaningless opaque identifiers; otherwise they wouldn't have been changed so lightly. But I don't see any alternative if you want to do autoconnection (even under user control). Many people here will argue that autoconnection is a bad idea in itself. I am not interested in having that argument again, except perhaps in the pub with a few pints stacked up and ready. Also, note that you can't rely on the SND_SEQ_PORT_TYPE flags to tell you anything useful either. Chris _______________________________________________ Linux-audio-dev mailing list Linux-audio-dev@lists.linuxaudio.org http://lists.linuxaudio.org/mailman/listinfo.cgi/linux-audio-dev