Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > *NIX и Hardware > [LXDE] две звуковые карты


Автор: CompWorm 10.5.2011, 12:55
Привет всем!

имеем две звуковые карты - встроенная (intel) и внешняя (SoundBlaster).
/proc/asound/cards
Код

 0 [Live           ]: EMU10K1 - SB Live! Value [CT4832]
                      SB Live! Value [CT4832] (rev.6, serial:0x80271102) at 0xe100, irq 16
 1 [Intel          ]: HDA-Intel - HDA Intel
                      HDA Intel at 0xe0700000 irq 16

при запуске LXDE выбирает одну из них в зависимости от погоды на марсе и шлёт туда звук. в alsamixer я не могу найти как выставить дефолтовую карту...

вопросы:
1) как выбрать звуковую карту по умолчанию?
2) бонусный вопрос: как направить вывод на одну карту, а вход на другую?
3) поясните вцелом, мне непутёвому, почему в один дистрибутив пихают аш 3 аудио системы gstreamer, pulseaudio и alsa? ониж всё время ссорются и не могут поделить одеяло  smile 

Автор: bilbobagginz 11.5.2011, 23:25
все вопросы отпадут, если научится ваш дистриб обертывать ALSA с помощью PulseAudio.
и использовать в последствии виртуальное устройство pulse.
это если не мешают некоторые лаги с пульсом.
Если мешают - пользуйтесь OSS v.4
там все намного проще чем в альсе.

на 3) 
одним словом причина всему - бардак. двумя словами: бардак из-за несовместимости.

Некоторые пользовательские программы хотят ALSA
другие некоторые Pulse 
ну и совсем некоторые - GStreamer (или Phonon)

Bottom-UP:
В самом низу есть железки. над ними есть драйвера. 
в линукс системе может быть только одна технология драйверов аудио - либо ALSA, либо OSS (v.3 или v.4)

Над драйверами вешаются пласты абстракции доступа к железкам (ну и обычно лагов).
альса вся такая добрая, белая, пушистая, GPLьная и без нужды нудная для разработчиков. но "это же наше ЖоПэЛэ"
OSS весь такой навороченный, официальный с поддержкой нескольких профи устройств, но с более ограниченным списком железяк. и API очень удобным и простым в использовании. А линуховый коммьюнити (а точнее ядренный девелоперский коммьюнити) немного точит зуб на OSS, из-за того, что те не открыли код сразу же.
стоит приметить, что есть чипсеты всех премутаций наличия драйверов:
  • для которых есть только драйвера OSS
  • для которых есть только драйвера ALSA
  • для которых есть драйвера OSS и ALSA
  • для которых НЕТ драйверов под линукс.
еще момент: 
из тех чипсетов для которых есть и то и это:
одни работают лучше под OSS, другие под ALSA, третьи и там и сям, а четвертые глючат и там и там.
ессно, по линуховой традиции для своей карты ответ определяется google-foo + методом научного тыка.

Далее Pulse: это неплохая идея, для десктопа: 
устройства - виртуальные. с одного на другое можно перетягивать/переключать потоки аудио. 
для музыкальной работы эта идея - никчемная: дополнительный уровень абстракции, дополнительные лаги, 
и никакого сока для музыканта в переброске аудио потока с карты на карту "в прямом эфире" - нет.
Для таких поделок как скайп - пульс сойдет (правда выхода и нет smile  - скайп тоже не хочер поддерживать 10 технологий)
GSTreamer - это гномовская попытка заменить ужасно глючный проект ESD (тем самым обернуть сложный API ALSA более удобным конвеерным методом, API стримера - очень прикольный).
Вкратце:
  • для музыки используют: ALSA+jack, или OSS+jack  + realtime scheduler
  • для скайпа - пульс.
  • для приложений гнома стали пульс (и все его пакет)
  • для приложений КДЕ - "фонон" smile (phonon)
кстати при правильных настройках над альсой можно поженить все подсистемы более высокого уровня (т.е. gstreamer+pulse)
Надо читануть про ~/.asoundrc

Кстати про ESD. изначально это был один из первых аудио-серверов. появился как часть Enlightenment, и как-то "внезападно" оказался частью гномяры.... потом поняли гномисты глубину ЖоПэЛэ, в которое они попали, и создали довольно неплохую альтернативу.

Автор: CompWorm 20.5.2011, 08:01
таки... это... а выставить то как основную хотя бы для альсы?

Автор: bilbobagginz 20.5.2011, 09:03
Цитата(CompWorm @  20.5.2011,  07:01 Найти цитируемый пост)
 а выставить то как основную хотя бы для альсы? 

.asoundrc

Автор: CompWorm 21.5.2011, 11:15
bilbobagginz, спасибо!
ответ на вопрос как установить дефолт и как сделать вывод на разные устройства я нашёл вот по этой ссылке
http://alsa.opensrc.org/.asoundrc
вывод на разные устройства делается путём создания виртуальных устройств, что описано так же по ссылке.

вопрос решён, всем спасибо. smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)