Bagaimana hubungan ALSA dan PulseAudio?


30

Ketika mencoba membuat suara saya bekerja , saya bertanya-tanya tentang peran ALSA dan PulseAudio. Saya telah menginstal dan bertanya-tanya, misalnya, yang mana yang perlu mereka ketahui tentang kartu suara saya.

Keduanya tampaknya dapat saling menggunakan, ada plugin pulseaudio untuk ALSA, dan di sistem saya, alsa muncul sebagai kartu suara di pulseaudio.

Manakah dari keduanya yang melakukan apa, apakah mereka alternatif atau pelengkap?

Jawaban:


32

ALSA adalah mixer suara level kernel, ia mengelola kartu suara Anda secara langsung. ALSA dengan sendirinya hanya dapat menangani satu aplikasi pada satu waktu. Tentu saja, ada ' dmix ', yang ditulis untuk menyelesaikan masalah ini. (Ini adalah modul ALSA.)

PulseAudio adalah mixer perangkat lunak, di atas tanah pengguna (seperti Anda menjalankan aplikasi). Saat dijalankan, ia menggunakan Alsa - tanpa dmix - dan mengelola setiap jenis pencampuran, perangkat, perangkat jaringan, semuanya dengan sendirinya.

Pada tahun 2014, Anda masih dapat menjalankan hanya ALSA. Tetapi kecuali jika Anda mengkompilasi aplikasi Anda sendiri dan mengaktifkan dukungan ALSA di mana saja - atau menggunakan distribusi berbasis sumber seperti Gentoo - Anda mungkin mendapatkan masalah pencampuran. Aplikasi pra-kompilasi yang dikirimkan oleh distro biasanya hanya dibangun dengan dukungan untuk Pulseaudio, bukan ALSA murni. Ubuntu misalnya lebih suka PulseAudio. Muncul dengan PulseAudio secara default, sehingga setiap aplikasi dikompilasi hanya menggunakan PulseAudio.

PulseAudio memang memiliki manfaatnya. Orang mengatakan bahwa itu baik untuk bekerja dengan audio di seluruh jaringan, dan itu memecahkan beberapa masalah dengan aliran audio multi-channel yang terjadi di bawah ALSA murni. Seharusnya juga lebih mudah untuk mengembangkan aplikasi untuk PA. Di sisi pengguna akhir, mudah untuk memilih perangkat baru, untuk mengontrol volume berdasarkan aplikasi, dll.

Namun, dalam konfigurasi default itu menambahkan jumlah latensi yang tidak signifikan ke dalam campuran. Ini adalah masalah besar untuk jenis tugas tertentu yang memerlukan latensi rendah seperti beberapa game dan perangkat lunak.

OSS adalah alternatif untuk keduanya, tetapi tidak dilisensikan di bawah GPL, yang membuatnya tidak mungkin melihat banyak adopsi oleh distro.

Ilustrasi :
Sistem suara khas PulseAudio, seperti Ubuntu:
Kernel: ALSA -> Userland: PulseAudio -> app1, app2, app3
Dalam sistem Linux yang khas, PulseAudio mencampur audio dari semua aplikasi Anda yang berbeda dan memasukkannya ke rantai ke ALSA.

ALSA:
Kernel: ALSA -> dmix -> Userland: app1, app2, app3
Dengan hanya ALSA murni, Anda perlu dmix untuk mencampur beberapa aplikasi. Tanpa itu, ALSA hanya dapat memutar streaming audio dari satu aplikasi pada satu waktu.

OSS:
Kernel: OSS -> Userland: app1, app2, app3
Dengan OSS, aplikasi userland berbicara langsung ke OSS di kernel, yang mencampur stream itu sendiri.

Jadi ringkasnya, dalam sistem khas Anda hari ini, ALSA berbicara langsung ke kartu suara Anda, dan Pulseaudio berbicara dengan aplikasi dan program Anda dan memasukkannya ke dalam ALSA.


2
Sebenarnya, setiap kali saya menemukan Pulseaudio saya menemukan MASALAH! Lucunya, sepertinya (setidaknya berdasarkan pengalaman saya) bermasalah juga dengan versi RT dari kernel, artinya ... apakah Anda ingin lingkungan linux yang mudah untuk memutar musik? Apakah Anda memikirkan UbuntuStudio baru? Nah, pikirkan lagi ...: D
dag729

4
Oh, jangan berpikir. Grafik juga merupakan tumpukan .. Linux BUKAN untuk penggunaan desktop dengan sederhana dan terus terang. Xorg adalah server X sehingga pada dasarnya Anda memulai SERVER dan Anda MENONTONnya (sungguh omong kosong? Yeah). Pada MAC, Windows, Haiku, GUI dijalankan dari kernel (oke itu di dalam kernel). Baik. Masuk akal bukan? Juga, tidak ada antarmuka asli. Seperti pada Windows, Windows. Di MAC Cocoa. Di sini, Anda hanya dapat menggunakan toolkit FAT, seperti GTK, Qt. | Jaringan disetujui, kernelnya dalam, OK (oke jika pabrikan menyediakan driver yang bagus seperti Intel) ... jadi itu saja.
Apache

3
On MAC, Windows, Haiku, GUI runs from the kernel (okay its inside the kernel). Well. It would make sense doesnt it? Sebenarnya tidak. Ingat masa lalu yang buruk "driver video NT 4 yang merusak sistem"? Ya, itulah yang menyebabkannya - menjalankan driver jelek di ruang kernel. Menurut Anda mengapa Microsoft tiba-tiba berpikir untuk mendapatkan driver masuk ke Windows? Bingo! Karena driver payah menyebabkan crash sistem. Mendapatkannya berarti membuat mereka diperiksa , dan smidgeon dari QA berjalan jauh ...
Avery Payne

1
Avery: Mendukung modul yang tidak dapat dibongkar sekarang. Jadi jika crash, itu hanya akan memuat kembali modul untuk adapter grafis. Tapi sejauh yang saya tahu mereka masih modul. (Tidak berjalan di userspace .. itu tidak mungkin). | Tentang SDL: Ini..ks. Setiap penulis game mengeluh tentang hal itu karena memberikan kinerja lambat, masalah rumit, dll. (Saya tidak akan mencantumkannya, periksa melalui pencarian.) Bahkan taipan transportasi open source lambat dengan SDL.
Apache

2
@ Skiki - Saya menyadari jawabannya sudah usang sekarang, tetapi bisakah Anda memberikan referensi di mana Valve telah meninggalkan Linux? Sejauh yang saya bisa lihat, mereka masih bergerak maju, pikirkan saja.
aggregate1166877
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.