On Sun, Jan 07, 2007 at 07:02:35PM +0100, Julien Claassen wrote:
> Hi!
> If I have a midi-interface, one of those externals, to which you can connect
> more than one device (synth, keyboard), how does this look to alsa? Does it
> only see one dvice with a lot of channels or does it see more devices? I think
> about getting one to use it with midish, which uses rawmidi devices and I
> wonder if it will work.
hello!
if your MIDI interface has multiple MIDI ports but they don't
appear in /dev you can use 'modprobe snd-virmidi' to create virtual
MIDI devices (they will appear in /dev). Then you can use
aconnect(1) to connect virtual devices to real devices.
For instance i have an Edirol UM2 USB-MIDI interface (2 input ports
and 2 output ports). According to 'aseqdump -l' devices appear to
ALSA as ports 16:0 and 16:1. Virtual devices appear as ports 24:0
25:0 26:0 27:0.
$ aseqdump -l
Port Client name Port name
0:0 System Timer
0:1 System Announce
14:0 Midi Through Midi Through Port-0
16:0 UM-2 UM-2 MIDI 1
16:1 UM-2 UM-2 MIDI 2
20:0 MPU-401 MIDI 1-0 MPU-401 MIDI 1-0
24:0 Virtual Raw MIDI 2-0 VirMIDI 2-0
25:0 Virtual Raw MIDI 2-1 VirMIDI 2-1
26:0 Virtual Raw MIDI 2-2 VirMIDI 2-2
27:0 Virtual Raw MIDI 2-3 VirMIDI 2-3
$ ls -l /dev/snd/midi*
crw-rw---- 1 root audio 116, 8 2007-01-08 21:56 /dev/snd/midiC0D0
crw-rw---- 1 root audio 116, 40 2007-01-08 21:56 /dev/snd/midiC1D0
crw-rw---- 1 root audio 116, 72 2007-01-08 22:06 /dev/snd/midiC2D0
crw-rw---- 1 root audio 116, 73 2007-01-08 22:06 /dev/snd/midiC2D1
crw-rw---- 1 root audio 116, 74 2007-01-08 22:06 /dev/snd/midiC2D2
crw-rw---- 1 root audio 116, 75 2007-01-08 22:06 /dev/snd/midiC2D3
Then, I connect (in both "in" and "out" directions) port 16:0 to
port 24:0 and 16:1 to 25:0, so that both ports of my UM2 will be
usable as /dev/snd/midiC2D0 and /dev/snd/midiC2D1
$ aconnect 16:0 24:0
$ aconnect 24:0 16:0
$ aconnect 16:1 25:0
$ aconnect 25:0 16:1
At this stage, midish is able to use /dev/snd/midiC2D0 and
/dev/snd/midiC2D1. For instance the following will configure
devices and start sending everything from device 1 (my keyboard) to
device 0 (my sound module)
$ rmidish
send EOF character (control-D) to quit
1> devattach 0 "/dev/snd/midiC2D0"
2> devattach 1 "/dev/snd/midiC2D1"
3> filtnew myfilt
4> filtdevmap myfilt 1 0
5> songidle
press control-C to finish
cheers,
-- Alexandre
Received on Tue Jan 9 00:15:06 2007
This archive was generated by hypermail 2.1.8 : Tue Jan 09 2007 - 00:15:06 EET