Sziasztok! Hátha valaki kisujjából kirázza a választ. :-)
Azt szeretném elérni az ALSA segítségével, hogy az SB Live! hullámtáblájával tudjak MIDI-t lejátszani.
A kernelem 2.6.0-test1 + ac2 patch, a disztrib Gentoo, van devfs, a hangkártya SB Live! 5.1. Korábban modulokat csináltam, most éppen mindent belefordítottam a kernelbe az egyszerűség kedvéért:
CONFIG_SOUND=y
CONFIG_SND=y
CONFIG_SND_SEQUENCER=y
CONFIG_SND_OSSEMUL=y
CONFIG_SND_MIXER_OSS=y
CONFIG_SND_PCM_OSS=y
CONFIG_SND_SEQUENCER_OSS=y
CONFIG_SND_VERBOSE_PRINTK=y
CONFIG_SND_DEBUG=y
CONFIG_SND_EMU10K1=y
Minden OSS programom, ami eddig ment, működik most is, mert azok a /dev/dsp-t használják. (MIDI-t timidity-vel játszottam le, az is megy.)
A pmidi -l a következőket írja:
Port Client name Port name
64:0 Rawmidi 0 - EMU10K1 MPU-401 (U EMU10K1 MPU-401 (UART)
65:0 Emu10k1 WaveTable Emu10k1 Port 0
65:1 Emu10k1 WaveTable Emu10k1 Port 1
65:2 Emu10k1 WaveTable Emu10k1 Port 2
65:3 Emu10k1 WaveTable Emu10k1 Port 3
A pmidi -p 65:0 (igaz, a 64:0 is) úgy csinál, mintha játszaná a megadott midi állományt, de hang az nincs. Gondoltam, azért, mert fel kell tölteni a soundfontot.
nfl@snoopy SFBANK $ sfxload 8MBGMSFX.SF2
/dev/sequencer: No such device or address
nfl@snoopy SFBANK $ cat /dev/sequencer
cat: /dev/sequencer: Nincs ilyen eszköz vagy cím
nfl@snoopy SFBANK $ ls -l /dev/sequencer
lr-xr-xr-x 1 root root 15 2003-07-20 13:31 /dev/sequencer -> sound/sequencer
nfl@snoopy SFBANK $ ls -l /dev/sound/sequencer
crw------- 1 nfl audio 14, 1 1970-01-01 01:00 /dev/sound/sequencer
Szóval nem lehet megnyitni a /dev/sequencer-t. Amikor ezt próbálom, akkor ezt kapom a kernel logba:
Jul 20 12:19:27 [kernel] ALSA sound/core/seq/oss/seq_oss_init.c:221: can't create port
Érdekes lehet még a /proc/asound/oss/sndstat tartalma:
Sound Driver:3.8.1a-980706 (ALSA v0.9.4 emulation code)
Kernel: Linux snoopy 2.6.0-test1-ac1 #5 v júl 20 02:01:47 CEST 2003 i686
Config options: 0
Installed drivers:
Type 10: ALSA emulation
Card config:
Sound Blaster Live! (rev.7) at 0xa400, irq 9
Audio devices:
0: EMU10K1 (DUPLEX)
Synth devices:
0: Emu10k1
Midi devices:
0: EMU10K1 MPU-401 (UART)
Timers:
7: system timer
Mixers:
0: SigmaTel STAC9708/11
Lehet, hogy a Midi devices-nél nem az MPU-401-nek kéne állnia? Hogy tudom azt átállítani a hullámtáblára?