В рамках проекта KLANG (Kernel Level Audio Next Generation) ведётся разработка новой аудио-подсистемы для ядра Linux. В качестве причины создания проекта называется желания избавиться от недостатков существующих звуковых подсистем, таких как ALSA, OSS4 и PulseAudio. KLANG будет реализован полностью на уровне ядра, для чего будет подготовлен дополнительный набор звуковых API и собственный планировщик. Кроме того подсистема KLANG будет изначально разработана у учётом переносимости, что позволит использовать её не только с ядром Linux, но и с ядром FreeBSD.

Проект позиционирует себя как предоставляющий возможности профессионального уровня по работе со звуком, с поддержкой компенсации задержек, создающий минимальную нагрузку на процессор и обеспечивающий хорошую поддержку процессов обработки аудио в режиме реального времени. Планируется, что KLANG будет создан в виде системы маршрутизации аудио-сигналов, с поддержкой плавных переходов и прозрачной трансляции звука между всеми конечными точками вещания. На практике это значит, что в рамках KLANG не будет никаких различий между оборудованием и программными точками обработки звука. Каждая точка обработки звука будет одновременно являться как источником звука, так и его приемником, позволяя создавать универсальные топологии для маршрутизации. При этом все подобные соединения будут скомпенсированы в плане задержек. Специальная система метронома синхронизирует обработку всех потоков по настраиваемому набору внутренних системных и независимых внешних источников времени. Это серьёзно упрощает типовую задачу аудио/видео синхронизации.

Перемещение аудио системы в ядро, как считает разработчик KLANG, это единственная благоразумная вещь которую стоит сделать, для обеспечения минимально возможной задержки и максимальной производительности, прежде всего в сравнении с проектами PulseAudio и JACK, которые функционируют на уровне пользовательского окружения. При этом будет задействована схема расширения уже существующего OSS API, что позволит существующим программам, поддерживающим OSS, также успешно работать и с KLANG. С другой стороны, те программы, которым будут нужны новые возможности KLANG, смогут обращаться к расширенным API, характерным исключительно для данной подсистемы. Таким образом, KLANG не создает свои API полностью с нуля, а скорее расширяет уже имеющийся OSS API.

KLANG будет поддерживать управление электропитанием всех звуковых устройств, а также сможет транслировать данные в формате MIDI. При таком подходе у KLANG есть множество преимуществ перед аналогичными разработками, например в ALSA отсутствует должная степень поддержки микшировавния, даже при использовании dmix; все пользовательские системы работающие в пользовательском пространстве, такие как JACK/ESD/PulseAudio, часто раздражают качеством и задержками; OSS4 свойственны функциональные ограничения и большая нагрузка на систему, что способствует быстрому разряду аккумулятора на портативных устройствах.

На данный момент код проекта пока не опубликован, неизвестно и то, под какой лицензией будет распространяться проект. Сообщается, что основа всей системы уже написана, но код в целом ещё слишком нестабильный даже для первого релиза. Первый релиз KLANG планируют выпустить когда будут полностью завершены как разработка системы маршрутизации потоков, так и код драйвера для популярного чипсета Intel HD-Audio.

Источник: http://www.opennet.ru/opennews/art.shtml?num=34457