LINUX.ORG.RU

ALSA lib rawmidi_hw.c:233:(snd_rawmidi_hw_open) open /dev/snd/midiC0D0 failed: No such file or directory


0

0

При попытке доступа к MIDI программа ругается:

ALSA lib rawmidi_hw.c:233:(snd_rawmidi_hw_open) open /dev/snd/midiC0D0 failed: No such file or directory

Файлов /dev/snd/midi* в системе нет. Что сделать, чтобы они появились и программа заработала?

О системе: Gentoo, x86_64, версия alsa-lib 1.0.19, версия ядра 2.6.28-gentoo-r5. Звуковой чип определяется как

00:11.5 Multimedia audio controller: VIA Technologies, Inc. VT8233/A/8235/8237 AC97 Audio Controller (rev 60)

Опции сборки ядра:

CONFIG_SOUND=y
CONFIG_SOUND_OSS_CORE=y
CONFIG_SND=y
CONFIG_SND_TIMER=y
CONFIG_SND_PCM=y
CONFIG_SND_RAWMIDI=y
CONFIG_SND_SEQUENCER=y
CONFIG_SND_SEQ_DUMMY=y
CONFIG_SND_OSSEMUL=y
CONFIG_SND_MIXER_OSS=y
CONFIG_SND_PCM_OSS=y
CONFIG_SND_PCM_OSS_PLUGINS=y
CONFIG_SND_SEQUENCER_OSS=y
CONFIG_SND_SUPPORT_OLD_API=y
CONFIG_SND_VERBOSE_PROCFS=y
CONFIG_SND_VMASTER=y
CONFIG_SND_MPU401_UART=y
CONFIG_SND_AC97_CODEC=y
CONFIG_SND_DRIVERS=y
CONFIG_SND_VIRMIDI=m
CONFIG_SND_AC97_POWER_SAVE=y
CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0
CONFIG_SND_PCI=y
CONFIG_SND_VIA82XX=y
CONFIG_AC97_BUS=y
CONFIG_HID_SUPPORT=y
CONFIG_HID=y

Установлена timidity++-2.13.2-r10, демон запущен.

Для чего вообще нужны файлы /dev/snd/midi* ? Как их создать или заменить?

★★★★★
Ответ на: комментарий от mv

> modprobe snd-virmidi

Спасибо! Я уже пробовал загружать модули, безуспешно. Сейчас проверил — оказалось они от старой версии ядра :)

Файлы /dev/snd/midi* создались. Правда, midiC0D0 среди них нет. Можно ли обойтись символьной ссылкой? Я создал, но ничего не услышал. Как проверить работоспособность этого MIDI-устройства?

question4 ★★★★★
() автор топика
Ответ на: комментарий от question4

> Я создал, но ничего не услышал. Как проверить работоспособность этого MIDI-устройства?

Это эмулятор midi-порта, он не играет. Играет эмулятор секвенсера (snd-seq).

mv ★★★★★
()
Ответ на: комментарий от mv

> Это эмулятор midi-порта, он не играет. Играет эмулятор секвенсера (snd-seq).

Модуль snd_seq вкомпилирован в ядро. Модуль snd_seq_virmidi загружен. Или нужен какой-то ещё? 

aplaymidi -l видит следующие порты:

 Port    Client name                      Port name
 14:0    Midi Through                     Midi Through Port-0
 20:0    Virtual Raw MIDI 1-0             VirMIDI 1-0
 21:0    Virtual Raw MIDI 1-1             VirMIDI 1-1
 22:0    Virtual Raw MIDI 1-2             VirMIDI 1-2
 23:0    Virtual Raw MIDI 1-3             VirMIDI 1-3
128:0    TiMidity                         TiMidity port 0
128:1    TiMidity                         TiMidity port 1
128:2    TiMidity                         TiMidity port 2
128:3    TiMidity                         TiMidity port 3

Но какие-то звуки извлекает из .mid файлов только на портах 128:0 и 128:1. (Не очень похожие на результат проигрывания того же файла TiMidity, но проблема может быть в самом файле.)

Как проверить работу портов?

question4 ★★★★★
() автор топика
Ответ на: комментарий от question4

> Но какие-то звуки извлекает из .mid файлов только на портах 128:0 и 128:1. (Не очень похожие на результат проигрывания того же файла TiMidity, но проблема может быть в самом файле.)

Если какие-то звуки извлекает, хоть и не особо похожие на timidity, то это и есть признак работы. Почему не особо похоже - читать про какой-нибудь OPL (http://en.wikipedia.org/wiki/Yamaha_YMF262), про синтез звука с помощью midi, etc.

mv ★★★★★
()
Ответ на: комментарий от mv

> Если какие-то звуки извлекает, хоть и не особо похожие на timidity, то это и есть признак работы.

Это признак работы самого Timidity. Порты 128 относятся к нему. На остальных портах глухо.

question4 ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.