Главная » 2012 » Август » 2 » Для ядер Linux и FreeBSD развивается новая аудиосистема KLANG
Для ядер Linux и FreeBSD развивается новая аудиосистема KLANG
08:26
В рамках проекта 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.