Przewodnik Nooba po Linux Audio ALSA, OSS i Pulse Audio

Przewodnik Nooba po Linux Audio ALSA, OSS i Pulse Audio
Jest jedna rzecz, jaką zarówno nowi, jak i doświadczeni użytkownicy Linux mogą się zgodzić: Linux audio jest mylące. Nie tylko wiele technologii wykonuje podobne zadania, ale większość z nich może zostać całkowicie pominięta przez Linux i ich użytkowników.

Sytuacja jest stosunkowo w porządku, jeśli chodzi o dystrybucję głównego nurtu, takie jak Ubuntu, Debian lub Fedora, ponieważ ich programiści bardzo się starali, aby dźwięk działał po wyjęciu z pudełka, ale tego samego nie można powiedzieć o Arch Linux, Gentoo, Gentoo, oraz inne minimalistyczne rozkłady, które oczekują od użytkowników skonfigurowania wszystkiego od zera.

Ten artykuł nie uczyni cię ekspertem od Linux Audio, ale miejmy nadzieję, wyjaśni podstawowe technologie odpowiedzialne za uczynienie dźwięku, gdy otworzysz wideo na YouTube lub zagrasz grę na Steamie.

Zaawansowana architektura dźwięku Linux (ALSA)

Zacznijmy od najważniejszej warstwy Linux Audio, ALSA. Utworzona w 1998 roku przez czeskiego programistę oprogramowania Jaroslava Kysela, ALSA jest odpowiedzialna za podawanie głosu wszystkim nowoczesnym dystrybucji Linux. W rzeczywistości jest częścią samego jądra Linux, zapewniając resztę funkcjonalności dźwięku za pośrednictwem interfejsu programowania aplikacji (API) dla sterowników urządzeń do karty dźwiękowej.

Oryginalna konstrukcja ALSA została w dużej mierze zainspirowana przez sterownik urządzenia Linux dla karty dźwiękowej Gravis Ultrasound, która została wykonana przez kanadyjską zaawansowaną technologię Gravis Computer i stała się bardzo popularna na scenie demonstracyjnej w latach 90.

Obsługa ALSA dla wszystkich rodzajów interfejsów audio Dzięki w pełni modułowymi sterownikami dźwiękowymi może jednocześnie zarządzać do ośmiu urządzeń audio, uzyskać dostęp do sprzętu MIDI, wykonywać mieszanie sprzętowe wielu kanałów i więcej.

Użytkownicy zazwyczaj wchodzą w interakcje z ALSA za pomocą Alsamixer, graficznego programu miksera, którego można użyć do konfigurowania ustawień dźwięku i dostosowania woluminu poszczególnych kanałów. Alsamixer działa w terminalu i możesz go wywołać, wpisując jego nazwę. Jedno szczególnie przydatne polecenie klawiatury jest aktywowane poprzez trafienie w klawisz M. To polecenie przełącza wyciszenie kanałów i jest to dość powszechna poprawka dla wielu pytań opublikowanych na płytkach dyskusyjnych Linux.

Otwarty system dźwiękowy (OSS)

Oficjalna strona ALSA wspomina o obsłudze otwartego systemu dźwiękowego lub OSS w skrócie. Aż do Linux 2.5, OSS był właściwie głównym i jedynym systemem dźwiękowym dla Linuksa. ALSA została zaprojektowana w celu przezwyciężenia różnych niedociągnięć, takich jak fakt, że nie pozwoliła na dostęp do sprzętu więcej niż jednej aplikacji. W Linux 2.6 ALSA zastąpił OSS jako domyślny system dźwiękowy.

Kiedy programiści OSS ogłosili, że wersja OSS będzie miała własność licencji, programiści Linux szybko podjął decyzję o zastąpieniu go ALSA. Warto zauważyć, że OSS ponownie stał się wolnym oprogramowaniem wraz z wydaniem wersji 4 w 2007 roku. Dzisiaj OSS jest dystrybuowany w ramach czterech różnych licencji (BSD, CDDL, GPL, zastrzeżone).

Większość rozkładów Linuksa nawet obecnie nie zawraca głowy aktywacją warstwy emulacji OSS obecnej w ALSA, ponieważ prawie nikt już jej nie potrzebuje, co czyni OSS reliktem z przeszłości.

Pulseaudio

Jeśli nie pamiętasz, kiedy ostatnio interakcja z ALSA podczas zmiany ustawień audio, prawdopodobnie dlatego, że warstwa systemu audio Linux w większości nowoczesnych rozkładów nazywa się pulsaudio.

Pulseaudio został początkowo wydany w 2004 roku, a teraz jest włączony i włączony domyślnie w Ubuntu, Linux Mint, OpenSuse i innych głównych rozkładach. Zadaniem Pulseaudio jest przekazanie danych dźwiękowych między aplikacjami a sprzętem, kierowanie dźwiękami pochodzącymi z ALSA do różnych miejsc wyjściowych, takich jak głośniki komputerowe lub słuchawki. Dlatego jest to powszechnie określane jako serwer dźwiękowy.

Na pierwszy rzut oka może się wydawać, że Pulseaudio tak naprawdę nie dodaje niczego niezwykle ważnego dla Linux Audio, a wielu jego krytyków podziela tę samą opinię. W rzeczywistości istnieje wiele rzeczy, które bez niego byłyby niemożliwe lub trudne do osiągnięcia, w tym mieszanie kilku dźwięków w jeden, przenoszenie dźwięku na inną maszynę lub zmiana formatu próbki lub liczby kanałów.

Pulseaudio wprowadza również kompatybilność międzyplatformową (FreeBSD, NetBSD, OpenBSD, Linux, Illumos, Solaris, MacOS i, w ograniczonym stylu, Microsoft Windows). Jeśli chcesz bezpośrednio kontrolować pulsaudio, zamiast interakcji z nim za pomocą widżetu kontroli głośności lub panelu, możesz zainstalować sterowanie głośnością pulsaudio (zwaną Pavucontrol w większości repozytoriów opakowań).

Jeśli uważasz, że nie masz pożytku z funkcji dostarczanych przez pulseaudio, możesz użyć czystej alsa lub zastąpić go innym serwerem dźwięku.

Pulseaudio vs. JACEK

Pulsaudio nie jest jedynym serwerem dźwięku dla Linux. Istnieje też Jack, który jest rekurencyjnym akronimem dla zestawu połączeń jack audio. Podczas gdy PulseAudio został opracowany z myślą o potrzebach ogólnych użytkowników Linuksa, Jack jest przeznaczony dla DJ-ów i specjalistów audio, zapewniający połączenia w czasie rzeczywistym, zarówno dla danych audio, jak i MIDI.

Ponieważ Jack pozwala podłączyć dane wejściowe i wyjścia audio każdego z nich i każdego z twoich aplikacji, możesz zrobić z nim całkiem fajne rzeczy, takie jak monitorowanie własnego głosu, dodanie do niego efektów w czasie rzeczywistym i więcej. W rzeczywistości nazwa tego systemu dźwiękowego była zainspirowana kablami używanymi w prawdziwych studiach nagrań do tworzenia skomplikowanych połączeń między instrumentami, syntezatorami, kontrolerów MIDI i multiTrackers.

Prawdopodobnie największym minusem Jacka jest to, że zwykle działa on idealnie lub okropnie, właścicielem faktu, że jego głównym celem jest zapewnienie dźwięku o niskiej opóźnieniu. Wymaga to również znacznie większej mocy procesora w porównaniu z pulsaudio, dlatego znajdziesz go głównie na profesjonalnych stacjach roboczych poświęconych edycji audio.

Sprawdzanie pulsu audio i ALSA

Być może zastanawiasz się, jak powiedzieć, jakiego oprogramowania audio używa mojego komputera? Aby sprawdzić, czy zarówno Pulse Audio, jak i ALSA są obecne w twoim systemie, użyj dwóch następujących poleceń:
Sprawdzanie pulsaudio:

Lista $ pactl


Sprawdzanie ALSA:

$ aplay -l

Wniosek

Audio na Linux wydaje się skomplikowany, ponieważ tak naprawdę jest. Rozplątanie sieci starszych technologii i warstw abstrakcji może być prawdziwym wyzwaniem nawet dla doświadczonych użytkowników Linuksa, którzy znają na pamięć z tato systemu operacyjnego. Mamy nadzieję, że nasz artykuł pomógł lepiej zrozumieć najważniejsze elementy systemu audio Linux, w tym ALSA, OSS i Pulseaudio.