[LAD] alsa seq client ids??
cladisch at fastmail.net
Wed Sep 12 15:08:42 UTC 2007
> 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.
If your alsa-lib is new enough, you can try to check for
Chris Cannam wrote:
> 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
And there's userspace drivers for Bluetooth and Firewire.
> I assume it must be intended that ALSA applications treat these numbers as
> meaningless opaque identifiers; otherwise they wouldn't have been changed so
> 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.
On my old SB-compatible card, opening the MIDI port will disable the
PCM device (or fail if the PCM is opened).
And what would the purpose be of automatically connecting to all
those ports, when there's more than one?
$ aplaymidi -l
Port Client name Port name
14:0 Midi Through Midi Through Port-0
14:1 Midi Through Midi Through Port-1
20:0 MPU-401 UART MIDI MPU-401 UART MIDI
24:0 Yamaha DS-1E (YMF754) MIDI Yamaha DS-1E (YMF754) MIDI
25:0 OPL3 FM synth OPL3 FM Port
32:0 SC-8820 SC-8820 Part A
32:1 SC-8820 SC-8820 Part B
32:2 SC-8820 SC-8820 MIDI
40:0 Virtual Raw MIDI 6-0 VirMIDI 6-0
41:0 Virtual Raw MIDI 6-1 VirMIDI 6-1
42:0 Virtual Raw MIDI 6-2 VirMIDI 6-2
43:0 Virtual Raw MIDI 6-3 VirMIDI 6-3
48:0 UM-2 UM-2 MIDI 1
48:1 UM-2 UM-2 MIDI 2
56:0 EMU10K1 MPU-401 (UART) EMU10K1 MPU-401 (UART)
57:0 Emu10k1 WaveTable Emu10k1 Port 0
57:1 Emu10k1 WaveTable Emu10k1 Port 1
57:2 Emu10k1 WaveTable Emu10k1 Port 2
57:3 Emu10k1 WaveTable Emu10k1 Port 3
60:0 Serial MIDI Serial MIDI 1
64:0 C-Media CMI8738-MC8 C-Media CMI8738-MC8 MIDI
(yes, I'm bragging :-)
> Also, note that you can't rely on the SND_SEQ_PORT_TYPE flags to tell you
> anything useful either.
They're strictly optional, but at least all the drivers set them.
(Both the in-the-kernel-but-virtual drivers, snd-virmidi and snd-seq-dummy,
set SND_SEQ_PORT_TYPE_SOFTWARE instead of _HARDWARE.)
More information about the Linux-audio-dev