[Решено] ALSA: PCM-устройства и их взаимодействие?

Разные проблемы звука, видео, обсуждение разных устройств и т.д.

Модератор: Модераторы разделов

Аватара пользователя
Cyril
Сообщения: 40
ОС: Разные...

[Решено] ALSA: PCM-устройства и их взаимодействие?

Сообщение Cyril »

Всем привет,

Есть у меня компьютер, в котором есть встроенная звуковая карта Intel ICH5, с комбинированными выходами в задней панели и выходами для микрофона и наушников на передней - причём последний запараллелен с задним стерео/фронтом.

Так как на этом компьютере планируется использование только стерео, то возникла мысль, используя выходы на задней панели для фронта и тыла и на передней - для наушников и микрофона, разделить потоки стандартного аудиовывода (фильмы там всякие, музыка и т.п.) и разговоры Skype. Так как на задней панели фронт запараллелен с наушниками на передней, решение представлялось простым - перемаршрутизироовать стереопотоки на выходах surround51 так, чтобы Skype говорил через фронт, а остальное (и по умолчанию) - через тыл, и вуаля! Был создан /etc/asound.conf, в котором определены новые pcm-устройства типа route, 6-тиканальные и прицепленные к surround51, выкидывающие каналы 0 и 1 на входе в нужные на выходе (0 и 1 для Skype и 2 и 3 - для остального), проверена работа схемы через aplay, и...

И "вуаля" не получилось. Параллельное воспроизведение через разные устройства не идёт - если играет музыка, Skype говорит, что у него проблема с воспроизведением аудио; если говорит Skype - музыка не играет, даёт ошибки.

Я подозреваю, что где-то я нарушил правила работы с PCM-устройствами, в результате чего при использовании одного из созданных мной устройств происходит эксклюзивный захват surround51. Может ли кто помочь советом - особенно желательны ссылки на практическую документацию (ALSA-Wiki не предлагать - они, в общем-то, убоги)?
Спасибо сказали:
Аватара пользователя
Cyril
Сообщения: 40
ОС: Разные...

Re: [Решено] ALSA: PCM-устройства и их взаимодействие?

Сообщение Cyril »

Решается задача следующей конфигурацией (all и upmix51 - это заглушки под будущие нужды, можно их не учитывать в контексте темы):

Код:

default.pcm.card 0 default.pcm.device 0 default.ctl.card 0 pcm.!default speakers pcm.mixer { type dmix ipc_key 1 slave { pcm "hw:0,0" channels 6 } } pcm.speakers { type route slave { pcm output channels 6 } ttable.0.2 1 ttable.1.3 1 } pcm.headphones { type route slave { pcm output channels 6 } ttable.0.0 1 ttable.1.1 1 } pcm.all { type route slave { pcm output channels 6 } ttable.0.0 1 ttable.1.1 1 ttable.0.2 1 ttable.1.3 1 } pcm.upmix51 { type upmix slave.pcm "surround51" } pcm.output mixer


Соль - в последней строчке. Почему именно так и почему прямое указание slave.pcm на плагин dmix (mixer в данном случае) не приводит к желаемому эффекту - так и не понятно, так что вопрос из заголовка остался. Ж:-\

P.S. А Skype так и не заработал, как нужно - либо играет сигнал входящего звонка в наушники, через headphones, либо не играет вообще - хорошо, что хотя бы не блокирует вывод аудио при этом. Но это вопрос, видимо, уже к техподдержке Skype.
Спасибо сказали: