Dokumentacija ALSA
Advanced Linux Sound Architecture (ALSA) je komponenta Linux kernela koja osigurava drivere (upravljačke programe) za zvučne kartice. Neki od začetnih ciljeva ALSA projekta su automatsko konfiguriranje zvučnih kartica i kvalitetno manipuliranje sa više audio uređaja na istom računalu. Neki opsežniji sustavi poput JACK koriste ALSA koa podsustav za nisko-latentno profesionalno audio editiranje i obradu. Projekt je započeo Jaroslav Kysela 1998 pisanjem drivera za Ultrasound zvučnu karticu, te je razvijan kompletno odvojeno od Linux kernela dok se nije integrirao tijekom 2.5 verzije tokom 2002. Prelaskom u stabilnu inačicu kernela serije 2.6, ALSA je zamijenila prijašnji Open Sound System (OSS).
Značajke
ALSA je dizajnirana da omogući neke značajke koje nisu bile dostupne u OSS-u:
- Hardverska MIDI sintetizacija
- Hardversko kombiniranje više signala na isti izlaz u zvučnoj kartici
- Full-duplex
- Kompatibilnost sa višeprocesorskim sustavima i sustaviam sa više threadova
ALSA ima veći i kompleksniji API od OSS, što uzrokuje otežano pisanje aplikacija koje koriste ALSA. ALSA također pruža mogućnost emulacije OSS-a, što omogućuje korištenje jednostavnijeg API, doduše, ova je funkcionalnost rijetko omogućena po defaultu u mnogim Linux distribucijama.
Osim drivera za zvučne kartice, ALSA uključuje biblioteku unutar user spacea (korisničkog prostora) za razvijatelje aplikacija koji žele koristiti mogućnosti koje pruža API, umjesto direktne komunikacije sa kernel driverima. Za razliku od kernelovog API koji reflektira mogućnosti hardvera direktno, ALSA koristi biblioteke koji predstavljaju višu apstrakciju koja pokušava biti koliko je moguće što sličnija među različitim hardverom. Primjerice, mnogo zvučnih kartica uopće nema ugrađeni "master" vučni kontroler, za takve svrhe se ALSA biblioteka koristi softversku kontrolu zvuka umjesto "softvol" plugina, sa poantom da obične aplikacije ne trebaju brinuti o tome.
Koncepti
Tipično, ALSA podržava do osam kartica numeriranih 0 do 7. Svaka kartica je ili logički kernel uređaj sposoban za ulaz, izlaz ili kontrolu zvuka te ga se može adresirati pomoću ID (identitet) koji je oznaka poput "Slušalice" ili "ICH9". Ukoliko je kartica neadresirana, uzima se broj nula, koji je dafaultna kartica gdje se većina zvukova reproducira i koji se određuje unutar operacijskog sustava. Kartica može biti sa svrhom puštanja zvuka sa računala, ali i drugi tip kartica za prihvaćanje, kontrole, mjerenja vremena ili sekvencera.
Aplikacija tipično opisuje zvučni izlaz kombinirajući razne informacije u niz koji izgleda kao: kartica, uređaj, poduređaj ili interfejs: CARD=1,DEV=3,SUBDEV=2. Ovaj niz je osjetljiv na veličinu slova.
ALSA izlaz je podatkovni niz koji predstavlja zvuk. Najčešći je to izlaz formata PCM i enkodiranje mora biti usklađeno sa specifičnim hardverom ili zvuk neće biti reproduciram. Parametri za sempliranje su 44.1 kHz na kućnim uređajima i 48 kHz na home theatre opremi; širina uzroka se mjeri u bitovima, 8, 16, 24 il i 32 bita, enkodiranje u kanalima 1 za mono, 2 za stereo ili 6 za AC-3/IEC958. ALSA također zahtijeva međuspremnik kako bi znala koliko je CPU-a potrebno.