[linux-audio-user] virmidi and 2.6.14 (Demudi)

Dave Phillips dlphillips at woh.rr.com
Tue Jan 17 14:16:54 EST 2006


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 at 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 at 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 at 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 at 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 at localdomain:~$ modinfo snd-virmidi
filename:       
/lib/modules/2.6.14-1-multimedia-386/kernel/sound/drivers/snd-virmidi.ko
author:         Takashi Iwai <tiwai at 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)



More information about the linux-audio-user mailing list