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.