Сегодня сел за компьютер с твердой целью заставить работать звуковую карту под Linux-ом. По мере чтения гугли и всякой другой хауты относительно звуковых эффектов в Linux в голове сложилась странная картина. Как я понимаю, звуковая подсистема здесь построенна следующим образом:
На нижнем уровне существует некоторая базовая функциональность, реализованная в рамках ядра (OSS или ALSA), которая предоставляет доступ к аппаратным ресурсам звуковой карты пользовательским приложенииям. Проще говоря, конечным резульатом существования этого уровня звуковой подсистемы являются "девайсы" в /dev.
Далее возможны 2 варианта. При первом моя конечная программа ( например, музыкальный плеер xmms или какая-либо другая "шумовая" :) программа ) напрямую получает монополньный доступ к этим ресурсам и отлично играет музыку, НО ... одновременно другая программа не сможет выводить звук, поскольку устройство уже занятно. А хотелось бы получить эффект "наложения звука" от разных программ :(...
Для решения этой проблемы существуют т.н. звуковые среверы (второй вариант). Я насчитал их 2-а. aRts (KDE) и esd (GNOME). Данные серверы могут производить "наложение" звука от разных программ и лишь потом передавать его на вывод звуковому устройству.
Казалось бы все логично, но ТУТ ВОЗНИКАЕТ ПРОБЛЕММА:
Многие из моих любимых программ не могут работать с звуковым сервером вообще или работают с разными звуковыми серверами, но мне хочется запускать их одновременно и слышать, например, играя в openttd ( со звуокм) звук извещения о сообшении от SIM-а (ну т.п. ... таких варантов куча ). А как в мире линукса принято решать проблемы согласования звуковых выводов различных приложений ?