Проблема из
#1701973 решена, ключ в Jack Audio Connection Kit. Рецепт таков:
0. Стартовые условия: Slackware, Alsa 1.0.24, hda-intel, ядро 3.1.7. Никаких звуковых серверов не установлено;
1. Ставим JACK (0.121.3 в моём случае. 1.9.8. не пробовал), alsa-plugins и QJackCtl (по вкусу).
2. Если используется софт, что не умеет jack (skype, teamspeak, etc), следует собрать alsa-plugins из git, ибо в апстриме пофиксили баг падения приложений (и сервера вслед за ними) при выводе звука через ALSA (
bugs.debian.org). Вообще, в приложениях, что умеют jack, я проявлений бага не заметил, хотя бэкенд у всех один;
3. Прописываем jack в ~/.asoundrc:
pastebin.com . Отмечу, что мы не переопределяем jack'ом дефолтный PCM — им остаётся микшированный PCM альсы. Это нужно, чтобы клиенты по-умолчанию не ломились в jack, а работали себе преспокойно, будто ничего не изменилось;
4. В alsamixer включаем второй канал записи (даже на hda из три) — этим каналом будут пользоваться клиенты, пока первый занят jack'ом. В VoIP/скайпиках настраиваем микрофон на второй канал. Всё.
Что в итоге:
Все приложения работают, будто ничего не изменилось, независимо, запущен jackd, или нет. JACK при запуске также ничему не мешает и никого не трогает. В любом приложении можно указать звуковой вывод "jackplug" и в QJackCtl патчить его куда угодно: хоть в ffmpeg, хоть в студию звукозаписи. Соответственно, звук захватывется только от приложений, что выводятся в jackplug. У меня jackd запускается такой командой: jackd -d alsa -D -Chw:0,0 -P default :0
Но если кто-то знает проблемы средствами самой альсы, буду рад, если поделитесь.
Полезные ссылки по теме будут в
/1.