Журнал LinuxFormat - перейти на главную

LXF155:Звук в Linux

Материал из Linuxformat
Версия от 18:58, 26 июня 2018; Olkol (обсуждение | вклад)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Содержание

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 прак­тичнее

(thumbnail)
Нам не обязательно обращаться к alsamixer, чтобы включить звук на звуковых картах.

Ес­ли в мик­ше­ре 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 – знать, что у нас есть по­тен­ци­ал со­брать са­мую мощ­ную зву­ко­вую сис­те­му для про­из­воль­ной плат­фор­мы, и в то же вре­мя стра­дать от всех этих недостатков.

Персональные инструменты
купить
подписаться
Яндекс.Метрика