LINUX.ORG.RU

KLANG — проект новой аудиоподсистемы для ядра Linux и FreeBSD

 , klang


1

4

Некий разработчик объявил о запуске проекта KLANG по созданию новой аудиоподсистемы для ядра Linux и FreeBSD. KLANG должен предоставить пользователям профессиональное качество работы с аудиоматериалом, минимальные задержки и минимальную загрузку ЦП при обработке звука.

Архитектурно проект представляет собой прозрачную и эффективную систему маршрутизации звуковых данных, равноправными узлами которой являются звуковая карта и программные обработчики. Каждый узел является либо источником, либо приемником, при этом имеются широкие возможности для описания всевозможных топологий маршрутов.

Что не устраивает автора проекта в существующих аудиосистемах?

  • ALSA не имеет поддержки микшировавния, даже при использовании dmix.
  • JACK слишком сильно загружает ЦП.
  • PulseAudio все еще требует RealtimeKit для работы.
  • ESD — не для обычного домашнего использования.
  • OSS не поддерживает MIDI-синтезаторы, слишком быстро расходует батарею. Зато имеет прекрасный API.

Почему аудиосистема помещена внутрь ядра? Во-первых, это единственный благоразумный вариант. Для аудиопотока наиважнейшим параметром является время задержки. Даже при коротких на первый взгляд задержках восприятие такого звука ухом неприятно. Например, для видеосистемы задержки даже в 20 мс трудно различимы, а для звука уже 4 мс — это слишком много.

При низком времени задержки требуется работа с более коротким буфером данных, что усложняет процесс конфигурации планировщика процессов. Имеющиеся аудиосистемы, работающие на пользовательском уровне, запускаются с realtime-приоритетом. Если процессов-обработчиков аудиоданных немного, то все будет работать хорошо, но с увеличением их числа нагрузка на ЦП вырастет в разы. Помещение аудиоподсистемы в ядро во многом помогает в решении проблемы и позволяет реализовать собственный эффективный планировщик. К тому же ядро — прекрасный и удобный уровень абстракции над оборудованием, не нужно самому заботиться о деталях.

Существующая аудиоподсистема ALSA позволяет прямо воздействовать на аудиоустройство с пользовательского уровня. Представьте, что подсистема по работе с сетью передает на пользовательский уровень пакеты в сыром виде, которые обрабатывает либо демон, либо отдельный процесс, целиком и полностью обладающий правами на единоличное использование интерфейса. Нужна ли вам такая система?

API разрабатываемой аудиоподсистемы будет изначально подразумевать правильную работу со звуком:

  • open(2) — обращение к одной из конечных точек;
  • ioctl(2) — конфигурация работы с конечной точкой;
  • write(2) — запись аудиоданных;
  • read(2) — получение аудиоданных.

Очень сильно напоминает OSS. Да, подобный OSS-совместимый API будет предоставлен KLANG для пользовательского уровня. Данный API, конечно, ни для кого не станет открытием, но он достоин повторного использования и дальнейшего расширения.

На данный момент KLANG еще слишком нестабилен для внедрения и опробования. И разработчик не собирается выпускать его для всех на слишком ранней стадии. По адресу вскоре можно ожидать появления дополнительной информации и официального баг-трекера проекта.

>>> Подробности

★★★★★

Проверено: JB ()
Последнее исправление: Silent (всего исправлений: 4)

Ответ на: комментарий от Legioner

Когда Jack будет в убунте по умолчанию,

1) закукуй он там искаропки
2) ещё скажи что в репах его нету

shty ★★★★★
()
Ответ на: комментарий от SoulThreads

Если он такой хороший, почему его никто не использует? Можешь опрос на лоре создать, у кого что используется. Хотя и без опроса понятны результаты.

Legioner ★★★★★
()

JACK слишком сильно загружает ЦП.

Мой не шибко новый Атлон3000+ его даже не замечает. Если только для встраиваемых систем и мобильных девайсов это актуально, но на десктопах сабжевый велосипед не нужен.

kranky ★★★★★
()
Ответ на: комментарий от shty

Как будто в линуксе их правят

как будто за тебя это кто-то сделать должен

Одни должны ломать, другие чинить - разделение труда по линуксовски.

Napilnik ★★★★★
()
Ответ на: комментарий от Deleted

читай по губам: N-e-v-e-r-w-i-n-t-e-r N-i-g-h-t-s. Найдешь сырцы самого NWN для скачивания - приходи, поздравлю и спрошу где скачать

Pinkbyte ★★★★★
()
Ответ на: комментарий от Legioner

Если он такой хороший, почему его никто не использует?

Кому надо - те используют. А кто обработкой звука не занимается, тем и знать про Jack незачем.

kranky ★★★★★
()
Ответ на: комментарий от Legioner

Если он такой хороший, почему его никто не использует?

Потому что обычному десктопному юзеру он не нужен, а нужен музыкантам, где низкие задержки и гибкое управление аудиопотоками превыше всего. Музыкантами и используется.

Когда Jack будет в убунте по умолчанию

Запусти livecd какого-нибудь Ubuntu Studio и посмотри, сколько приложений аудиоприложений там вообще без jack запускаться будут.

Как бы, то, что ты не интересуешься этим всем, не означает, что джек где-то там прозябает в неизвестности.

SoulThreads
()
Ответ на: комментарий от Legioner

почему по умолчанию в убунте стоит alsa и pulseaudio сверху, а не такой хороший Jack

ещё раз для тебя: нафига он там нужен?

shty ★★★★★
()

комментировать не собираюсь. просто скажу — люблю тебя опенсорс.

anonymous
()
Ответ на: комментарий от Napilnik

Одни должны ломать, другие чинить - разделение труда по линуксовски.

хороший коп - плохой коп, что делать :)

кстати, не обольщайся насичот линукса, это не линукс-специфично, это по жизни так

shty ★★★★★
()

еще слишком нестабилен для внедрения и опробования

Интересно, а почему у Apple (тогда еще NeXT) аудиоподсистема была стабильна еще в 1989 году???

:)))

Bioreactor ★★★★★
()
Ответ на: комментарий от Deleted

Мне нужно по***ть, туалет не предлагать?

Чему удивляешься, в городе так и есть. Бесплатные туалеты ликвидировали, оставшиеся переквалифицировали в убыточные платные с 8 часовым периодом обслуживания а в учреждениях всем сотрудникам выдали ключи а туалеты закрыли на замок чтобы посетители не пользовались:)

В виндовсе, сколько их там, три?.. способа выводить звук.

Чтобы пользоваться микромелкими костылями нужно пейсать под виндовсом а для этого кто-то должен доплачивать за вредность. Так что некроссплатформенные способы не катят.

Все обёртки и костыли, которые опенсорсники наклепали поверх к виндовсу относятся чуть менее, чем никак.

Ты ещё скажи: зверь сиди не виндовс.

Napilnik ★★★★★
()
Последнее исправление: Napilnik (всего исправлений: 1)
Ответ на: комментарий от Legioner

Неврубаешься? Не все убунтологи занимаются пейсательством звуков и музицированием, а джек именно для этого нужен.

Napilnik ★★★★★
()
Ответ на: комментарий от shimon

А почему в 2012 году программы все еще не могут не глючить/не жрать ресурсы по
умолчанию, без требования тонкой настройки или правки кода?

Потому, что в 2012 году «написать программу» == «натаскать окошек мышкой в Visual <какая-то фигня по вкусу>». В большинстве.

AS ★★★★★
()
Ответ на: комментарий от AiFiLTr0

Звучит крайне годно, ибо альза в текущем своем виде крайне стремна, и для юзабельности и многих фичей не может работать без весьма стремного пульсаудио, который сам по себе костыль. Будет хорошо если взлетит.

Да чего ж в ней стремного-то?

Ты сырцы дров в альзе видел? Доводилось свою железку в альзу интеграчить или хотя бы в hda_intel quirk'и добавлять?

Присоединяюсь к тому анониму, спрошу, какого функионала нет без PulseAudio. Неужели управления громкостью всех приложений из одного окна? Но есть управление громкостью приложений из самих приложений, и написать GUI для ALSA мне кажется проще, чем написать PulseAudio и добавить его поддержку во все приложения. Управление порядком звуковых устройств - GUI есть уже. Назначение разных звуковых карт для разных приложений - есть в настройках приложений. Переключение разговора на скайпфон при горячем подключении - проблема скайпа.

anonymous
()
Ответ на: комментарий от Legioner

Когда Jack будет в убунте по умолчанию, тогда имеет смысл о нём говорить. Пока из всех аудиосистем шевелятся только alsa и pulseaudio.

Автор KLANG утверждает, что JACK жрёт CPU. Сотрудник Harrison Consoles это опровергает. Что непонятно?

RussianNeuroMancer ★★★★★
()
Ответ на: комментарий от Napilnik

Ну так разговор шёл про звук в Windows, не? То, что там вредность или нет это уже другой вопрос :}

Deleted
()
Ответ на: комментарий от SoulThreads

Wolfgang 'datenwolf' Draxinger

Лет 6-7 назад он что-то коммитил в ядро: http://www.google.com/custom?domains=lkml.org&q=wolfgang Draxinger&sa... И работал над игрой «Fat Princess»: http://www.giantbomb.com/darkstar/65-6342/ (линуксовой версией, к сожалению, и не пахло). Ещё он в 2010 году дорабатывал Блендер: http://en.wikipedia.org/wiki/Elephants_Dream#Stereoscopic_3D_version

Или тёзка?

question4 ★★★★★
()

Некий разработчик... новая аудиоподсистема... для ядра

Завтра, вроде, первое августа, а не первое апреля.

UNiTE ★★★★★
()
Ответ на: комментарий от kranky

Если только для встраиваемых систем и мобильных девайсов это актуально, но на десктопах сабжевый велосипед не нужен.

Цель автора — ужать Линукс до 16 мегабайт.

question4 ★★★★★
()
Ответ на: комментарий от anonymous

Да функционал-то он есть, да вот только сделан выходит через какую-то хитровывернутую задницу, звиняйте мой французский.

AiFiLTr0 ★★★★★
()
Ответ на: комментарий от spacemm

А про то,что у 99,9 процентов пользователей звук встроеный, от Intel(или Realtek) и без аппаратного микширования, вы не в курсе? Обычным пользователям даром не сдалась дискретная звуковуха. Зачем платить лишние деньги?

lucentcode ★★★★★
()
Ответ на: комментарий от lucentcode

99,9 процентов пользователей звук встроеный
без аппаратного микширования

High Definition Audio сейчас все имеют встроенный аппаратный микшер. А это те самые 99,9% пользователей

Pinkbyte ★★★★★
()

Ну, посмотрим что у этого немца получится. Не уверен я, что кто-то в одиночку потянет такой велисипед. Да и драйвера для звуковух в Linux-ядре написаны под ALSA. Есть ещё вариант под OSS. Все остальные звуковые системы использую низкоуровневую часть данных систем. А этому проекту нужно будет судя по его описанию портировать все имеющиеся драйвера. Отличия в списке поддерживаемых устройств у OSS и ALSA отлично говорят о том, что даже команде развивающей OSS не под силу угнаться за командой ALSA. А для новой системы драйвера писать никто не будет. Как автор выкрутится из этой ситуации? Сам их напишет?

lucentcode ★★★★★
()

Какая гадость. Мозговая болезнь, а не идея.

Архитектурно проект представляет собой прозрачную и эффективную систему маршрутизации звуковых данных, равноправными узлами которой являются звуковая карта и программные обработчики. Каждый узел является либо источником, либо приемником, при этом имеются широкие возможности для описания всевозможных топологий маршрутов.

Ага, здорово. Граф обработки, это gstreamer. Это все здорово и круто, но про низкую задержку надо забыть. Как вообще сожно говорить о короткой задержке потенциально бесконечного конвейера обработки?!

API разрабатываемой аудиоподсистемы будет изначально подразумевать правильную работу со звуком:

Ага. А Апи как в ОСС. И как это согласуется с графом обработки? Его описывать уже не надо?

для ядра Linux и FreeBSD

Ага. И оптимизировать мы ничего не будем.

Идиотизм какой-то.

AVL2 ★★★★★
()
Ответ на: комментарий от AiFiLTr0

OpenWRT и на 4 мегабайтах флеша нормально летает, хотя 16 более желательно.

Видимо, он хочет туда впихнуть полноценную мультимедийную систему.

question4 ★★★★★
()
Ответ на: комментарий от anonymous

есть управление громкостью приложений из самих приложений

Назначение разных звуковых карт для разных приложений - есть в настройках приложений

Дублирование функциональности в каждом приложении — не UNIX way

dexpl ★★★★★
()
Ответ на: комментарий от Pinkbyte

А разве при использовании ALSA на High Definition Audio не связка костылей под названием dmix + softvol используется? Мне казалось, что именно она. У меня на Realtek не помню какой(стандарта High Definition Audio) звук блокировался одной программой, если в настройках ALSA не был указан dmix. И в настройках некоторых программ тоже.

lucentcode ★★★★★
()
Ответ на: комментарий от question4

Ага, нормально летает. У меня тоже. Но места для дополнительных пакетов катастрофически не хватает. Было бы хоть 8Mb, мне бы хватило.

lucentcode ★★★★★
()
Ответ на: комментарий от Deleted

Ну так SDL давно туда интегрировалась, а через какое отверстие она туда пролезла, для нас не так и важно.

Napilnik ★★★★★
()
Ответ на: комментарий от spacemm

А зачем вообще брать каточку без микширования? Ведь это одна из основных ее функций.Да и фиг найдешь сейчас такую.

Все с точностью до наоборот.Это раньше каждая первая карта делала аппаратное микширование. Сейчас большинство встроеных hd карт этого не делает.

r ★★★★★
()
Ответ на: комментарий от unfo

Это я видел :)

Я не видел:) Так прикинул. Но название галимое- согласен. Как и все названия с NG.

r ★★★★★
()
Ответ на: комментарий от Axon

Ни разу в жизни не видел железки, на которой микширование бы не работало без настройки. Так в чём проблема-то?

Ты давно не обновлял железо:)

r ★★★★★
()
Ответ на: комментарий от question4

Ну, если постараться, то gstreamer вроде ужать в 16 метров сквашки можно.

AiFiLTr0 ★★★★★
()
Ответ на: комментарий от pevzi

но сейчас использую все дефолтное и с подобными проблемами уже давно не встречался.

Есть еще верояность что все дефолтное то что раньше было без миксинга теперь с миксингом, или драйвера поумнели и там где раньше не распознавали наличие хардварного миксера - теперь распознают.

r ★★★★★
()
Ответ на: комментарий от r

название галимое- согласен. Как и все названия с NG.

RelaxNG ничего так

shty ★★★★★
()

В день по костылю, они там рекорд что ли ставят?

warmate
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.