Clemens Ladisch wrote:
Does it work with aseqdump+amidi? If not, please show
the exact commands
you used to test it.
I tested it with seq24, hooking its output to the virmidi ports from
within seq24 itself (that's how it works). The virmidi port(s) were
connected to qsynth and to the hardware synth on the SBLive. I started
seq24, got no sound. I hooked the output to the MIDI Through port, got
sound. I also performed the same tests with the same hookups, but using
a MIDI keyboard to send events to the virmidi ports. Got the same results.
You never mentioned the raw MIDI port (which es where the MIDI data shows up).
I'm not sure what you mean here. I've attached a variety of reports to
the end of this message, perhaps you'll see something significant there.
What do you want to do that the through ports cannot
do?
I use Xsteem and Dosemu to run various MIDI applications. They want a
direct link to the device, and linking to /dev/snd/midiCxDx gives me the
greatest flexibility. It would be much better if they abided by the ALSA
convention of indicating devices (hw:x,x), but they don't.
Best,
dp
******************** Reports from Demudi 1.3.0rc1 **************
dlphilp@localdomain:~$ cat /proc/asound/cards
0 [M66 ]: ICE1712 - M Audio Delta 66
M Audio Delta 66 at 0xd800, irq 5
1 [Live ]: EMU10K1 - SBLive! Value [CT4832]
SBLive! Value [CT4832] (rev.8, serial:0x80271102)
at 0xd000, irq 3
2 [VirMIDI ]: VirMIDI - VirMIDI
Virtual MIDI Card 1
dlphilp@localdomain:~$ lsmod |grep midi
snd_virmidi 4288 1
snd_seq_virmidi 8448 3 snd_virmidi,snd_emux_synth
snd_seq_midi_emul 7680 1 snd_emux_synth
snd_seq_midi 9504 2
snd_rawmidi 26528 4
snd_seq_virmidi,snd_emu10k1,snd_mpu401_uart,snd_seq_midi
snd_seq_midi_event 7680 3 snd_seq_virmidi,snd_seq_oss,snd_seq_midi
snd_seq 56336 13
snd_emux_synth,snd_seq_virmidi,snd_seq_midi_emul,snd_seq_instr,snd_seq_dummy,snd_seq_oss,snd_seq_midi,snd_seq_midi_event
snd_seq_device 8844 8
snd_emu10k1_synth,snd_emux_synth,snd_emu10k1,snd_seq_dummy,snd_seq_oss,snd_seq_midi,snd_rawmidi,snd_seq
snd 58596 24
snd_virmidi,snd_emux_synth,snd_seq_virmidi,snd_emu10k1,snd_hwdep,snd_ice1712,snd_ak4xxx_adda,snd_cs8427,snd_ac97_codec,snd_pcm_oss,snd_mixer_oss,snd_pcm,snd_i2c,snd_mpu401_uart,snd_seq_oss,snd_rawmidi,snd_seq,snd_timer,snd_seq_device
dlphilp@localdomain:~$ amidi -l
Device Name
hw:1,0 EMU10K1 MPU-401 (UART)
hw:1,1 Emu10k1 Synth MIDI (16 subdevices)
hw:1,2 Emu10k1 Synth MIDI (16 subdevices)
hw:2,0 Virtual Raw MIDI (16 subdevices)
hw:2,1 Virtual Raw MIDI (16 subdevices)
hw:2,2 Virtual Raw MIDI (16 subdevices)
hw:2,3 Virtual Raw MIDI (16 subdevices)
dlphilp@localdomain:~$ aseqdump -l
Port Client name Port name
0:0 System Timer
0:1 System Announce
62:0 Midi Through Midi Through Port-0
72:0 EMU10K1 MPU-401 (UART) EMU10K1 MPU-401 (UART)
80:0 Virtual Raw MIDI 2-0 VirMIDI 2-0
81:0 Virtual Raw MIDI 2-1 VirMIDI 2-1
82:0 Virtual Raw MIDI 2-2 VirMIDI 2-2
83:0 Virtual Raw MIDI 2-3 VirMIDI 2-3
hw {
@args.0 CARD
@args.1 DEV
@args.2 SUBDEV
@args.CARD {
type string
default {
@func getenv
vars {
0 ALSA_RAWMIDI_CARD
1 ALSA_CARD
}
default {
@func refer
name 'defaults.rawmidi.card'
}
}
}
@args.DEV {
type integer
default {
@func igetenv
vars {
0 ALSA_RAWMIDI_DEVICE
}
default {
@func refer
name 'defaults.rawmidi.device'
}
}
}
@args.SUBDEV {
type integer
default -1
}
type hw
card $CARD
device $DEV
subdevice $SUBDEV
}
default {
type hw
card {
@func getenv
vars {
0 ALSA_RAWMIDI_CARD
1 ALSA_CARD
}
default {
@func refer
name 'defaults.rawmidi.card'
}
}
device {
@func igetenv
vars {
0 ALSA_RAWMIDI_DEVICE
}
default {
@func refer
name 'defaults.rawmidi.device'
}
}
}
virtual {
@args.0 MERGE
@args.MERGE {
type string
default 1
}
type virtual
merge $MERGE
}
dlphilp@localdomain:~$ modinfo snd-virmidi
filename:
/lib/modules/2.6.14-1-multimedia-386/kernel/sound/drivers/snd-virmidi.ko
author: Takashi Iwai <tiwai(a)suse.de>
description: Dummy soundcard for virtual rawmidi devices
license: GPL
vermagic: 2.6.14-1-multimedia-386 preempt 686 gcc-4.0
depends: snd,snd-seq-virmidi
parm: midi_devs:MIDI devices # (1-8) (array of int)
parm: enable:Enable this soundcard. (array of bool)
parm: id:ID string for virmidi soundcard. (array of charp)
parm: index:Index value for virmidi soundcard. (array of int)