Audio

Przewodnik Noob po Linux Audio Objaśnienie ALSA, OSS i Pulse Audio

Przewodnik Noob po Linux Audio Objaśnienie ALSA, OSS i Pulse Audio
Jest jedna rzecz, z którą mogą się zgodzić zarówno nowi, jak i doświadczeni użytkownicy Linuksa: dźwięk w Linuksie jest zagmatwany. Nie tylko wiele technologii wykonuje podobne zadania, ale większość z nich może być całkowicie pominięta przez dystrybucje Linuksa i ich użytkowników.

Sytuacja jest stosunkowo dobra, jeśli chodzi o główne dystrybucje, takie jak Ubuntu, Debian czy Fedora, ponieważ ich programiści dołożyli wszelkich starań, aby dźwięk działał od razu po wyjęciu z pudełka, ale tego samego nie można powiedzieć o Arch Linux, Gentoo, i inne minimalistyczne dystrybucje, które oczekują od użytkowników skonfigurowania wszystkiego od podstaw.

Ten artykuł nie uczyni Cię ekspertem od dźwięku w Linuksie, ale miejmy nadzieję, że wyjaśni podstawowe technologie odpowiedzialne za wydobywanie dźwięku z głośników, gdy otworzysz film na YouTube lub zagrasz w grę na Steamie.

Zaawansowana architektura dźwięku Linux (ALSA)

Zacznijmy od najważniejszej warstwy audio Linuksa, ALSA. Stworzona w 1998 roku przez czeskiego programistę Jaroslava Kyselę, ALSA jest odpowiedzialna za udzielenie głosu wszystkim współczesnym dystrybucjom Linuksa. W rzeczywistości jest częścią samego jądra Linuksa, zapewniając funkcjonalność audio reszcie systemu za pośrednictwem interfejsu programowania aplikacji (API) dla sterowników urządzeń kart dźwiękowych.

Oryginalny projekt ALSA był w dużej mierze zainspirowany sterownikiem urządzenia Linux dla karty dźwiękowej Gravis Ultrasound, który został stworzony przez kanadyjską Advanced Gravis Computer Technology i stał się bardzo popularny na scenie demonstracyjnej w latach 90.

Obsługa ALSA dla wszystkich typów interfejsów audio dzięki w pełni zmodularyzowanym sterownikom dźwięku, może zarządzać maksymalnie ośmioma urządzeniami audio jednocześnie, uzyskiwać dostęp do sprzętowej funkcjonalności MIDI, wykonywać sprzętowe miksowanie wielu kanałów i nie tylko.

Użytkownicy zazwyczaj wchodzą w interakcję z ALSA za pomocą alsamixer, graficznego programu miksującego, którego można używać do konfigurowania ustawień dźwięku i regulacji głośności poszczególnych kanałów. Alsamixer działa w terminalu i możesz go wywołać, wpisując jego nazwę. Jedno szczególnie przydatne polecenie klawiaturowe jest aktywowane przez naciśnięcie klawisza M. To polecenie przełącza wyciszanie kanału i jest to dość powszechna poprawka w wielu pytaniach publikowanych na forach dyskusyjnych dotyczących systemu Linux.

Otwarty system dźwiękowy (OSS)

Oficjalna strona ALSA wspomina o wsparciu dla Open Sound System, w skrócie OSS. Do Linuksa 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 pozwalała na dostęp do sprzętu więcej niż jednej aplikacji na raz. W Linuksie 2.6 ALSA zastąpiła OSS jako domyślny system dźwiękowy.

Kiedy twórcy OSS ogłosili, że wersja OSS będzie miała własną licencję, deweloperzy Linuksa szybko podjęli decyzję o zastąpieniu jej przez ALSA. Warto zauważyć, że OSS ponownie stał się wolnym oprogramowaniem wraz z wydaniem wersji 4 w 2007 roku. Obecnie OSS jest dystrybuowany na czterech różnych licencjach (BSD, CDDL, GPL, Proprietary).

Większość dystrybucji Linuksa w dzisiejszych czasach nawet nie zawraca sobie głowy aktywacją warstwy emulacji OSS obecnej w ALSA, ponieważ prawie nikt jej już nie potrzebuje, co czyni OSS reliktem przeszłości.

PulseAudio

Jeśli nie pamiętasz, kiedy ostatni raz wchodziłeś w interakcję z ALSA podczas zmiany ustawień dźwięku, to prawdopodobnie dlatego, że warstwa systemu audio Linux w większości nowoczesnych dystrybucji nosi nazwę PulseAudio.

PulseAudio został pierwotnie wydany w 2004 roku, a teraz jest dołączony i włączony domyślnie w Ubuntu, Linux Mint, openSUSE i innych głównych dystrybucjach. Zadaniem PulseAudio jest przekazywanie danych dźwiękowych między aplikacjami a sprzętem, kierując dźwięki pochodzące z ALSA do różnych miejsc docelowych, takich jak głośniki komputera lub słuchawki. Dlatego jest powszechnie określany jako serwer dźwięku.

Na pierwszy rzut oka mogłoby się wydawać, że PulseAudio tak naprawdę nie wnosi niczego krytycznego do audio Linuksa, a wielu jego krytyków podziela tę samą opinię. W rzeczywistości jest wiele rzeczy, które bez niego byłyby niemożliwe lub trudne do wykonania, w tym miksowanie kilku dźwięków w jeden, przesyłanie dźwięku do innej maszyny lub zmiana formatu próbki lub liczby kanałów.

PulseAudio zapewnia również kompatybilność międzyplatformową (FreeBSD, NetBSD, OpenBSD, Linux, Illumos, Solaris, macOS i, w ograniczonym zakresie, Microsoft Windows). Jeśli chcesz sterować PulseAudio bezpośrednio, zamiast wchodzić z nim w interakcję za pomocą widżetu regulacji głośności lub pewnego rodzaju panelu, możesz zainstalować PulseAudio Volume Control (w większości repozytoriów pakietów nazywany pavucontrol).

Jeśli uważasz, że funkcje oferowane przez PulseAudio nie przydają Ci się, możesz użyć czystej ALSA lub zastąpić ją innym serwerem dźwięku.

PulseAudio a. JACEK

PulseAudio nie jest jedynym serwerem dźwięku dla Linuksa. Istnieje również JACK, który jest rekurencyjnym akronimem od JACK Audio Connection Kit. Podczas gdy PulseAudio został opracowany z myślą o potrzebach ogólnych użytkowników Linuksa, JACK jest przeznaczony dla DJ-ów i profesjonalistów audio, zapewniając połączenia w czasie rzeczywistym z małymi opóźnieniami zarówno dla danych audio, jak i MIDI.

Ponieważ JACK pozwala łączyć wejścia i wyjścia audio każdej z Twoich aplikacji razem, możesz robić z nim całkiem fajne rzeczy, takie jak monitorowanie własnego głosu, dodawanie do niego efektów w czasie rzeczywistym i wiele więcej. W rzeczywistości nazwa tego systemu dźwiękowego została zainspirowana kablami używanymi w prawdziwych studiach nagraniowych do budowania skomplikowanych połączeń między instrumentami, syntezatorami, kontrolerami MIDI i multitrackerami.

Prawdopodobnie największą wadą JACK jest to, że zwykle działa idealnie lub okropnie, biorąc pod uwagę fakt, że jego głównym celem jest zapewnienie dźwięku o niskiej latencji. Wymaga również znacznie większej mocy procesora w porównaniu z PulseAudio, dlatego znajdziesz go głównie na profesjonalnych stacjach roboczych dedykowanych do edycji dźwięku.

Sprawdzanie dźwięku Pulse i ALSA

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

$ lista pakt


Sprawdzanie ALSA:

$ odtwórz -l

Wniosek

Dźwięk w Linuksie 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 na pamięć znają tajniki systemu operacyjnego. Mamy nadzieję, że nasz artykuł pomógł ci lepiej zrozumieć najważniejsze komponenty systemu audio Linux, w tym ALSA, OSS i PulseAudio.

How to change Left & Right mouse buttons on Windows 10 PC
It's quite a norm that all computer mouse devices are ergonomically designed for right-handed users. But there are mouse devices available which are s...
Emulate Mouse clicks by hovering using Clickless Mouse in Windows 10
Using a mouse or keyboard in the wrong posture of excessive usage can result in a lot of health issues, including strain, carpal tunnel syndrome, and ...
Add Mouse gestures to Windows 10 using these free tools
In recent years computers and operating systems have greatly evolved. There was a time when users had to use commands to navigate through file manager...