Hi, I've got a MIDI keyboard and an SB PCI64 that I really miss using now I've ditched MS from my disk. I'd like to keep MS off my disk, but after several *months* of frustrating and searching the web and posting to NGs I still don't have it working. So here I am, with rather a long post; hopefully it has all the info some kind souls out there need to assist me ...
My setup is this: - SB PCI64 - cheap MIDI keyboard (works fine under MS OSs) - ALSA 0.9+0beta12 - Debian GNU/Linux (woody, kernel=2.4.16) - ALSA kernel modules 0.9+0beta12+3+p0 - alsaplayer 0.99.59 (I guess the experts on the list know this, but according to Linux kernel documentation, SBPCI64 has no onboard MIDI synth, but the card does have a MIDI connector, and - under MS OS's - I can use this no problem. I realise that the MS driver must include the equivalent of Timidity inside it. Anyway ...) I think - correct me if I'm wrong - I need to do the following tasks: (a) get input of MIDI keyboard events by ALSA PCI64 device driver working (b) get alsaplayer working using ALSA devices (required by (e) below) (c) set up virmidi device (d) do some plumbing with 'aconnect' so MIDI keyboard events are routed through the ALSA PCI64 driver, to the virmidi driver (e) run Timidity as backend to virmidi Ok, well, (d) and (e) I've not got anywhere near attempting yet, 'cos (a), (b) and (c) don't work :-( Ok, so, dealing with each of those things individually ... reading MIDI keyboard events ---------------------------- Well, I'm not sure how to do this beyond correct sound card config and then trying something like 'rosegarden' and pressing keys! The right modules are loaded: dione:~# lsmod | grep snd snd-pcm-oss 35168 1 (autoclean) snd-mixer-oss 8928 1 (autoclean) [snd-pcm-oss] snd-ens1371 9440 2 (autoclean) snd-ac97-codec 22304 0 (autoclean) [snd-ens1371] snd-rawmidi 12256 0 (autoclean) [snd-ens1371] snd-seq-device 3984 0 (autoclean) [snd-rawmidi] snd-pcm 47968 0 (autoclean) [snd-pcm-oss snd-ens1371] snd-timer 10080 0 (autoclean) [snd-pcm] snd 24808 0 (autoclean) [snd-pcm-oss snd-mixer-oss snd-ens1371 snd-ac97-codec snd-rawmidi snd-seq-device snd-pcm snd-timer] soundcore 3492 6 (autoclean) [snd] and the config seems fine: dione:~# cat /etc/modutils/alsa alias char-major-116 snd alias snd-card-0 snd-ens1371 alias char-major-14 soundcore alias sound-slot-0 snd-card-0 alias sound-service-0-0 snd-mixer-oss alias sound-service-0-1 snd-seq-oss alias sound-service-0-3 snd-pcm-oss alias sound-service-0-8 snd-seq-oss alias sound-service-0-12 snd-pcm-oss options snd snd_major=116 snd_cards_limit=1 snd_device_mode=0660 snd_device_gid=29 snd_device_uid=0 options snd-ens1371 snd_index=0 snd_id=ENSONIQ XMMS, mplayer etc - all configured to use OSS devices - work fine. But rosegarden's MIDI setup menu just lists the MIDI record device as '(null device)'. I've wrote a 5 line C prog just to read /dev/midi or /proc/asound/dev/midiC0D0, expecting to see printf()'s as I pressed keys on the MIDI keyboard, but no luck. How can I simply test/verify that keypresses are seen? alsaplayer ---------- dione$ alsaplayer snd_pcm_open: No such file or directory (default) /usr/lib/alsaplayer/output/libalsa.so failed to load I could not find a suitable output module on your system. Make sure they're in "/usr/lib/alsaplayer/output/". Use the -o parameter to select one. failed to load output add-on. exitting... dione$ The library it fails to load exists of course. Since the OSS aliases are in place, then using XMMS or *non*-ALSA players works fine. But if ALSA is in 2.5 kernel then I guess I'll have to get alsaplayer (and other apps) using the ALSA devices rather than the OSS compatibility devices, right? So, why doesn't alsaplayer play? If I try any other ALSA-ish player, for example Timidity with -Os ('s' for ALSA device) then I get a - presumely not unrelated - error: dione:~# timidity -Os ~alexis/bohemian.mid No sound card found. Couldn't open ALSA pcm device (`s') What's going on? virmidi ------- Ok, so then I added to /etc/modutils/alsa the following: alias snd-card-1 snd-virmidi alias sound-slot-1 snd-card-1 options snd-virmidi snd_index=1 snd_id=VIRTUAL_MIDI But when I boot this results in: ALSA %s:%d: ALSA ../alsa-kernel/core/init.c:77: card 1 is out of range (0-0) Card-VirMIDI #1 not found or device busy Card-VirMIDI soundcard not found or device busy (virmidi) Huh? So I tried manually adding the snd-virmidi module with insmod: dione:~# insmod snd-virmidi Using /lib/modules/2.4.16/alsa/snd-virmidi.o /lib/modules/2.4.16/alsa/snd-virmidi.o: unresolved symbol snd_virmidi_new_Re3be217c dione:~# Ok, but with a bit of messing about I got this: dione:~# modprobe -a snd-seq-virmidi <-- silent, so ok I guess dione:~# lsmod | grep virmidi snd-seq-virmidi 2552 0 (unused) snd-seq-midi-event 2792 0 [snd-seq-virmidi] snd-seq 36236 0 [snd-seq-virmidi snd-seq-midi-event] snd-rawmidi 12256 0 (autoclean) [snd-seq-virmidi snd-ens1371] snd 24808 0 (autoclean) [snd-seq-virmidi snd-seq-midi-event snd-seq snd-pcm-oss snd-mixer-oss snd-ens1371 snd-ac97-codec snd-rawmidi snd-seq-device snd-pcm snd-timer] But is that really the way to do it? Surely the entries in /etc/modutils/alsa are fine, and much more graceful? Can anybody offer any advice? Is there anybody with the same card and/or requirement (MIDI keyboard, no onboard MIDI synth) with it working? Thanks! Alexis Huxley [EMAIL PROTECTED] PS In case anybody is having the same problem, and finds this article via a web search, the information above was primarily gleaned from the following URLS: http://audio.opensrc.org/modules.php?op=modload&name=News&file=article&sid=8 http://linux-sound.org/quick-toots/4-sequencers_and_softsynths/quick-toot-midisynth_howto.html file:///usr/doc/kernel-doc-2.4.16/Documentation/sound/es1371.gz The MIDI HOWTO, the ALSA mini HOWTO were very out of date and didn't offer anything useful. PPS I'll post a summary if anybody is interested. Let me know. _______________________________________________________________ Don't miss the 2002 Sprint PCS Application Developer's Conference August 25-28 in Las Vegas - http://devcon.sprintpcs.com/adp/index.cfm?source=osdntextlink _______________________________________________ Alsa-user mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-user