LXF155:Звук в Linux
|
|
|
8 перемен к лучшему в Linux-аудио
Грэм Моррисон воздержался от исписывания всего журнала жалобами на звук, ограничившись двумя страницами брюзжания насчет PulseAudio.
01 Он просто должен работать
Мы в курсе, что звук – сложная штука, а Linux – это не Apple. Нам известно, что мир оборудования, спецификаций, возможностей, драйверов, соединений и качества бесконечно велик. Мы знаем, что не должны задавать предпосылки, где именно будет применяться Linux, или ограничивать выбор. Мы знаем, что в аудио больше слоев, чем в прованской луковичке. И, подобно луку, звук в Linux вызывает у нас слезы.
Уровни сложности не должны отражаться на работе пользователя! Стоит этой сложности всплыть на поверхность, многие бросят использовать Linux, и это наш провал. Нажимая Воспроизведение в Banshee или щелкая на ролике YouTube, они должны хоть что-то слышать. Никаких жалоб, никаких микшеров или всяких там «включи то» и «выключи это», и самое, самое главное – никакой тишины. Ничего не услышав, они вернут Windows и будут ждать еще два года, когда, по их ощущениям, звук в Linux заработает.
02 Табу на слова вроде PulseAudio и ALSA
Хотя звук касается всего, что мы слышим, некоторые слова слышать не следует. В частности, для простого обывателя таковыми являются ALSA и PulseAudio. Мы нисколько не принижаем их значительные совместные успехи, ведь они могут работать вместе очень эффективно. Но им не следует кричать о своих достижениях пользователю. Обычным людям, с повседневной жизнью и офисной работой, эти два слова ни о чем не скажут. ALSA звучит как танец для страдающих дислексией, а PulseAudio наводит на мысли об оказании неотложной медицинской помощи. Когда пользователь ликует, впервые установив Linux и прослушивая песню группы Queen «Don’t Stop Me Now», слова ALSA и PulseAudio – это последнее, что он хотел бы услышать. Они просто испортят ему весь праздник.
03 Один микшер на всех
Столь же печально, что нам приходится использовать такой термин, как микшер, и беспокоиться о нескольких программах-микшерах, управляющих устройством аудио. Однако реальность состоит в том, что все управляется каким-нибудь микшером, или даже двумя, если приложения PulseAudio и чистые приложения ALSA работают совместно. В любом случае, использовать их обоих, чтобы работал звук, неправильно. Почему микшер от PulseAudio не может иметь приоритет над микшером от ALSA, или определять, когда все его параметры выставлены на заглушку? Все, что избавит пользователя от загрузки alsamixer в командной строке, достойно похвалы.
04 Переименуйте pavucontrol
Это слово означает имя приложения, которое надо запустить, чтобы сделать со звуковой системой PulseAudio нечто сверх простого изменения громкости. Такое название дает повод заподозрить, что в вашу систему внедрился руткит, однако эта загадочная команда – путь ко всему в PulseAudio. Она позволяет вам менять громкость отдельных программ и вводов, а также направлять аудио через различные подгружаемые модули. Все это прекрасно, поскольку показывает, на какую мощь способен PulseAudio. Например, сколько программных аудиомикшеров скрываются за громкостью звука? Однако для работы программу нужно сделать более удобной.
Из этого рассадника вкладок и динамически изменяемых регулировок громкости можно увидеть, что делает каждое из звуковых приложений (если они осуществляют это через PulseAudio) – но только понимая, как работает PulseAudio, что противоречит пункту 02. Было бы куда лучше, если бы какой-нибудь талантливый дизайнер уместил большую часть функций на одной вкладке.
05 Сделать PulseAudio практичнее
Если в микшере PulseAudio программа записи появляется только после того, как вы начали запись, это значит, что у разработчиков альтернативное понимание удобства. Конечно, программистам проделывать так намного удобнее. Им незачем догадываться о возможностях приложения или потока записи, или соображать, как разработчикам приложения нужно оповестить, что пользователь собирается начать запись. Разработчики проявляют только соединение, устанавливаемое в фоновом режиме. Но этого мало. Это должно быть очевидно для пользователя, чего на настоящий момент нет. Нам нужно видеть, что есть входной сигнал, до нажатия на Запись. И нам нужно уметь менять источник и назначение раньше, чем время на создание нового файла потрачено зря. Изменить работу PulseAudio довольно сложно, но это не повод довольствоваться тем, что далеко не оптимально.
Львиная доля мощи PulseAudio заключена в его модульности, однако нет простого способа добыть или даже отследить эту модульность. Лучшее решение – это когда аудиоприложение управляет ею за вас: например, загружает модуль Equalizer при запуске GUI EQ. Однако если вы вздумаете контролировать эти модули вручную, придется проламываться через интерпретатор PulseAudio в командной строке. А такая работа явно не для большинства из нас. Такому интерпретатору требуется простой GUI с возможностью перетаскивания, чтобы люди полюбили PulseAudio и оценили его гибкость. В этом GUI должно быть легко добавить виртуальный источник и сток или направить аудио между ними и любыми запущенными приложениями. Это должно производиться в модульной палитре, да чтобы связи между модулями можно было рисовать и сохранять как конфигурацию. Также такие вещи, как источники и стоки, должны переименовываться.
06 Дистрибутивы должны работать слаженно
Мы знаем, что этот спор очень стар и применим не только к звуку. Однако когда дело доходит до оборудования, совместная работа куда важнее, чем предоставление выбора. Работают же они вместе, если речь идет о драйверах для оставшейся части системы; вот и звук обязан просто работать, наравне с графикой, мышами и клавиатурами. Для этого работа должна вестись единообразно у всех. В Linux это проблема, так как разработчики не любят привязываться к платформе или ее возможностям. Однако платформа x86 должна рассматриваться на первом же уровне, не отменяя поддержки для других платформ. Иначе звук будет казаться неисправным.
Поскольку большинство дистрибутивов так или иначе используют PulseAudio, прийти к соглашению об определенной конфигурации с одинаковым набором утилит – дело нехитрое. Тогда разработчики Linux PulseAudio смогут, например, уверенно рассчитывать на наличие ALSA, а разработчики ALSA, в свою очередь, полагать, что в большинстве случаев используется PulseAudio.
Это поможет всем сделать программы сопровождения проще в настройке и использовании. И, быть может, настраивать приложения типа Audacity на использование в первую очередь PulseAudio, не рассматривая по умолчанию ALSA или какой-нибудь другой аудиослой.
07 Больше обратной связи от приложений
Звуковые приложения редко признают, что для появления звука в ваших колонках обращаются к посторонней помощи – разве что упрячут такую опцию в панели Preferences. В случае с Audacity никогда нельзя быть уверенным, задействован ли PulseAudio (если только они не были скомпилированы вместе), или же слой совместимости с ALSA, или вообще что-то иное. Решением было бы сигнализировать о соединении со звуковым сервером, показав, что оно работает, цветом – например, зеленым. Это сняло бы все проблемы, связанные с тем, работает ли звук так, как вы ожидаете. А в теории, можно было бы сделать и панель рабочего стола с отображением, что и когда используется – чуть поменьше микшера, но содержащую достаточно информации, чтобы вы смогли узнать, откуда ждать выхода звука.
Уж извините, что мы опять эксплуатируем эту тематику, но хуже всего дела обстоят с Flash: звук вызывает больше проблем, чем решает их. Похоже, он полностью игнорирует PulseAudio и согласен работать только на правильно настроенной установке ALSA. Чтобы он заработал с PulseAudio, следует проделать некие манипуляции с файлом настройки, заставив Pulse использовать модуль совместимости с ALSA. Если вашему дистрибутиву не хватает ума сделать эту работу за вас, звук Flash будет у вас в изоляции. Нужно охватить также и Flash.
08 Jack и PulseAudio надо объединить
Если вы хоть раз попробовали Jack, то вряд ли остались им недовольны. Jack – это межпрограммная прослойка аудио с низкой задержкой, которая позволяет аудиопрограммам совместно использовать аудиопотоки, а также аппаратные звуковые входы и выходы. Это сказочная технология, однако обремененная сложностью настройки. Если бы Jack работал по умолчанию во всех дистрибутивах Linux, Linux получил бы огромное преимущество. Но это не так – по многим причинам, в основном связанным с производительностью и совместным использованием аудиопотоков.
Мы были бы рады, если бы PulseAudio и Jack стали единым пакетом, чтобы Linux-аудио сочетало обоих, без необходимости дополнительной настройки. И это самая большая проблема звука в Linux – знать, что у нас есть потенциал собрать самую мощную звуковую систему для произвольной платформы, и в то же время страдать от всех этих недостатков.