Advanced Linux Sound Architecture - Advanced Linux Sound Architecture
|
Snímek obrazovky Alsamixer 1.0.14
| |
| Původní autoři | Jaroslav Kysela |
|---|---|
| Vývojáři | Tým ALSA |
| První vydání | 1998 |
| Stabilní uvolnění | 1.2.5.1 / 14. června 2021
|
| Napsáno | C |
| Operační systém | Linux |
| Typ | |
| Licence | |
| webová stránka | alsa-project |
Advanced Linux Sound Architecture ( ALSA ) je softwarový framework a součást linuxového jádra, které poskytuje rozhraní pro programování aplikací (API) pro ovladače zařízení zvukových karet .
Některé z cílů projektu ALSA při jeho vzniku byly automatická konfigurace hardwaru zvukové karty a elegantní ovládání více zvukových zařízení v systému. ALSA je vydávána pod GPL-2.0-nebo-novější a LGPL-2.1-nebo-novější .
V systému Linux fungují zvukové servery jako sndio , PulseAudio , JACK (profesionální úpravy a míchání zvuku na profesionální úrovni s nízkou latencí) a PipeWire a API vyšší úrovně (např. OpenAL , SDL audio atd.) Nad ALSA a jeho zvukem. ovladače zařízení pro karty. ALSA následovala starší port Linuxu Open Sound System (OSS).
Dějiny
Projekt vývoje ALSA vedl Jaroslav Kysela a byl založen na ovladači zařízení Linux pro zvukovou kartu Gravis Ultrasound . Začalo to v roce 1998 a bylo vyvíjeno odděleně od jádra Linuxu, dokud nebylo v roce 2002 uvedeno do vývojové řady 2.5 (2.5.4–2.5.5).
Ve verzi 2.6 ve výchozím nastavení nahradil předchozí systém Open Sound System (OSS) (ačkoli vrstva zpětné kompatibility existuje).
ALSA má větší a komplexnější API než OSS, takže vývoj aplikace, která jako zvukovou technologii používá ALSA, může být obtížnější. Přestože ALSA může být nakonfigurován tak, aby poskytoval vrstvu emulace OSS, taková funkce již není v mnoha distribucích Linuxu standardně nainstalována.
Funkce
ALSA byl navržen s některými funkcemi, které nebyly v době jeho koncepce podporovány OSS:
- Hardwarová syntéza MIDI .
- Hardwarové míchání více kanálů.
- Plně duplexní provoz.
- Ovladače zařízení vhodné pro více procesorů a bezpečné pro vlákna .
Kromě ovladačů zvukových zařízení obsahuje ALSA knihovnu uživatelského prostoru pro vývojáře aplikací, kteří chtějí používat funkce ovladače prostřednictvím rozhraní, které je na vyšší úrovni než rozhraní určené pro přímou interakci s ovladači jádra. Na rozdíl od API jádra, které se pokouší přímo odrážet možnosti hardwaru, knihovna ALSA v uživatelském prostoru představuje abstrakci, která zůstává co nejvíce standardizována napříč různorodými základními hardwarovými prvky. Tohoto cíle je částečně dosaženo použitím softwarových zásuvných modulů ; například mnoho moderních zvukových karet nebo vestavěných zvukových čipů nemá ovládání „hlavní hlasitosti“. Místo toho u těchto zařízení knihovna uživatelského prostoru poskytuje ovládání hlasitosti softwaru pomocí zásuvného modulu „ softwarol “ a běžnému aplikačnímu softwaru nemusí být jedno, zda je taková kontrola implementována základním hardwarem nebo softwarovou emulací takového podkladového hardwaru.
Aplikace
Dodatečné do rámce softwaru interní do linuxového jádra, projekt ALSA také poskytuje nástroje příkazového řádku a nástroje alsactl, amixer, arecord/aplaya alsamixer, an ncurses založené TUI .
K dispozici jsou také GUI naprogramované vývojáři třetích stran , jako je například GNOME-alsamixer (pomocí GTK ), kmix, xfce4 míchadle, LXpanel, QasHctl, QasMixer, Pavucontrol, AconnectGUI, tapiir, polarbear, ALSAmixerGUI (pomocí FLTK ), ZynAddSubFX , Yoshimi , a ještě více.
Pojmy
Tato část poskytuje přehled základních konceptů týkajících se ALSA.
ALSA obvykle podporuje až osm karet číslovaných od 0 do 7; každá karta je fyzické nebo logické zařízení jádra schopné vstupu a výstupu. Každá karta může být navíc adresována svým ID , což je vysvětlující řetězec, například „ Headset “ nebo „ ICH9 “.
Karta má zařízení , číslovaná od 0; zařízení může být typu přehrávání , což znamená, že vydává zvuk z počítače nebo jiného typu, jako je zachycení , ovládání , časovač nebo sekvencer ; pokud není specifikováno žádné konkrétní zařízení, použije se ve výchozím nastavení číslo 0.
Zařízení může mít dílčí zařízení číslovaná od 0; dílčí zařízení představuje nějaký relevantní koncový bod zvuku pro zařízení, například pár reproduktorů. Pokud není uvedeno dílčí zařízení nebo je -li uvedeno číslo dílčího zařízení −1, použije se jakékoli dostupné dílčí zařízení.
Rozhraní karty je popis protokolu ALSA pro přístup ke kartě; mezi možná rozhraní patří: hw , plughw , default a plug: dmix . Rozhraní hw poskytuje přímý přístup k zařízení jádra, ale bez podpory míchání softwaru nebo přizpůsobování proudu. Plughw a výchozí realizaci zvukového výstupu, kde hw by rozhraní ohlásí chybu.
Aplikace obvykle popisuje zvukový výstup kombinací všech výše uvedených specifikací dohromady v řetězci zařízení , který má jednu z následujících forem (která rozlišují velká a malá písmena ):
- rozhraní: karta, zařízení, dílčí zařízení
- rozhraní: CARD = 1, DEV = 3, SUBDEV = 2 .
Stream ALSA je datový tok představující zvuk; nejběžnějším formátem streamu je PCM, který musí být vytvořen tak, aby odpovídal vlastnostem nebo parametrům hardwaru, včetně:
- vzorkovací frekvence : často 44,1 kHz na domácím stereu nebo 48 kHz na domácím kině, ale až 88,2 kHz, 96 kHz nebo dokonce 192 kHz pro produkci nebo reprodukci hi-fi zvuku.
- šířka vzorku : měřeno v určitém počtu bitů na vzorek (například 8, 16, 24 nebo 32 bitů/vzorek)
- ukázkové kódování : například endianness
- počet kanálů : 1 pro mono, 2 pro stereo nebo 6 pro AC-3 / IEC958
Implementace
Vrstva ALSA System on Chip (ASoC) má za cíl poskytnout lepší podporu pro ALSA na vestavěných systémech, které používají design system-on-chip (SoC).
Viz také
- Otevřete zvukový systém
- DSSI
- udev
- Sada pro připojení zvuku JACK
- KMid
- LADSPA
- PulseAudio
- Alsamixer
- PipeWire
Reference
externí odkazy
- Oficiální webové stránky
-
Strážníku, Marku. „Alsa WIKI“ . AlsaOpensrcOrg . Archivovány od originálu dne 29. března 2002 . Citováno 18. července 2021 .
Některé z důvodů, proč tato stránka existuje, jsou tyto: nikdo z oficiálních stránek ALSA na tuto stránku nikdy nepřispěl (dříve než oficiální existoval, tento předchází oficiální wiki o několik let), nikdo oficiálně nebo formálně navrhl sloučení, nikdo jiný neprojevil vážný zájem pomoci je sloučit, a co je nejdůležitější, existuje značný počet offsite refererů a hitů Google, které přicházejí přímo na tento web, protože je tu tak dlouho.
| Uživatelský režim | Uživatelské aplikace | bash , LibreOffice , GIMP , Blender , 0 AD , Mozilla Firefox , ... | ||||
|---|---|---|---|---|---|---|
| Součásti systému |
Démoni : systemd , runit , udevd , polkitd , sshd , smbd ... |
Správce oken : X11 , Wayland , SurfaceFlinger (Android) |
Grafická karta : Mesa , AMD Catalyst , ... |
Jiné knihovny: GTK , Qt , EFL , SDL , SFML , FLTK , GNUstep , ... |
||
| Standardní knihovna C. |
fopen, execv, malloc, memcpy, localtime, pthread_create... (až 2000 podprogramy ) glibc si klade za cíl být rychlý, MUSL a uClibc cílové vestavěné systémy, bionické napsané pro Android , atd Všechny mají za cíl být POSIX / SUS kompatibilních. |
|||||
| Režim jádra | Linuxové jádro |
stat, splice, dup, read, open, ioctl, write, mmap, close, exit, Atd. (Cca 380 systémová volání) Linuxové jádro systému Call rozhraní (SCI, si klade za cíl být POSIX / SUS kompatibilních) |
||||
|
Subsystém plánování procesů |
Subsystém IPC |
Subsystém správy paměti |
Subsystém virtuálních souborů |
Síťový subsystém |
||
| Další komponenty: ALSA , DRI , evdev , LVM , mapovač zařízení , Linux Network Scheduler , Netfilter Linux Bezpečnostní moduly : SELinux , TOMOYO , AppArmor , Smack |
||||||
| Hardware ( CPU , hlavní paměť , zařízení pro ukládání dat atd.) | ||||||