[Comm] Re: ALSA + Midi + CMi8738
Denis G. Samsonenko
=?iso-8859-1?q?earthsea_=CE=C1_ngs=2Eru?=
Вт Июн 15 15:22:59 MSD 2004
День добрый!
В общем покопался я в /etc/modules.conf и вроде midi часично заработало.
Вот выдержка из /etc/modules.conf:
# ALSA native device support
alias char-major-116 snd
options snd snd_major=116 snd_cards_limit=1
alias snd-card-0 snd-cmipci
options snd-cmipci enable_midi=1 mpu_port=0x330 fm_port=0x388
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
# OSS/Free setup
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
Порывшись на сайте проекта alsa я обнаружил, что midi теперь по
дефолту отключено, и его надо принудительно включать (см. строчку
options... выше).
Прописав "mpu_port=0x330" или "fm_port=0x388" playmidi перестаёт
ругаться, что нет устройства /dev/sequencer, правда в первом случае он
всё равно говорит, что нет правильного устройства воспроизведения. А
вот в случае присутствия в /etc/modules.conf опции "fm_port=0x388"
playmidi начинает нормально проигрывать midi-файлы.
Так что если пользоваться playmidi, то достаточно включить строку
"options snd-cmipci fm_port=0x388" в /etc/modules.conf.
Для полноты картины:
[denis на ogion denis]$ cat /proc/asound/oss/sndstat
Sound Driver:3.8.1a-980706 (ALSA v1.0.2c emulation code)
Kernel: Linux ogion.nsu.ru 2.4.22-std-up-alt22 #1 Tue Apr 27 18:45:13
MSD 2004 i686
Config options: 0
Installed drivers:
Type 10: ALSA emulation
Card config:
C-Media PCI CMI8738-MC6 (model 55) at 0xc800, irq 10
Audio devices:
0: C-Media PCI DAC/ADC (DUPLEX)
Synth devices:
0: OPL3 FM synth
Midi devices:
0: MPU-401 (UART) 0-0
Timers:
7: system timer
Mixers:
0: CMedia PCI
а также:
[denis на ogion songs]$ pmidi -l
Port Client name Port name
64:0 Rawmidi 0 - MPU-401 (UART) 0-0 MPU-401 (UART) 0-0
65:0 OPL3 FM synth OPL3 FM Port
[denis на ogion songs]$ aconnect -o -l
client 64: 'Rawmidi 0 - MPU-401 (UART) 0-0' [type=kernel]
0 'MPU-401 (UART) 0-0'
client 65: 'OPL3 FM synth' [type=kernel]
0 'OPL3 FM Port '
Как сказано выше, playmidi всё хорошо проигрывает. А вот если давать
команду
pmidi -p "64:0" some.mid
или
pmidi -p "65:0" some.mid
то он делает вид, что играет, но из колонок ничего не раздаётся.
Вот такие дела.
Всего доброго,
Денис.
---------------
earthsea на ngs.ru
Подробная информация о списке рассылки community