nfl Creative Commons License 2003.07.20 0 0 10
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?