GNU/Linux >> Belajar Linux >  >> Linux

Jack Vs Pulseaudio — Bagaimana Lebih Cepat?

Saya melihat banyak klaim bahwa Jack lebih cepat daripada Pulse dan memiliki lebih sedikit latensi. Bagaimana begitu? Mengapa Pulse menyebut dirinya ringan, dan orang-orang Jack menyebutnya gemuk? Adakah yang bisa memecah internal kedua daemon ini menjadi orang awam?

Jawaban yang Diterima:

Jack mengharuskan Anda– pengguna yang berpengetahuan luas– untuk mengonfigurasi server guna menentukan latensi pemrosesan serendah mungkin untuk mesin Anda. (Latensi pemrosesan adalah waktu yang dibutuhkan server untuk memindahkan data ke/dari aplikasi klien dan kemudian mengirim/menerima "potongan" sampel audio berikutnya di luar sistem.) Jack akan mengirimkan potongan data audio tersebut tepat waktu, atau itu akan gagal dan memberi Anda buffer underrun (kadang-kadang disebut "dropout", atau muncul dan klik ). Jika Jack terus-menerus mendapatkan underruns, maka tugas Anda untuk me-restart server dengan pengaturan yang berbeda, atau mengubah sesuatu di aplikasi klien untuk membuatnya lebih efisien sehingga Anda dapat memenuhi tenggat waktu audio Anda. Karena pengaturan server Anda berlaku seragam untuk semua klien, Jack cukup berguna untuk merutekan audio di antara beberapa aplikasi audio dan membuat dapat diprediksi hasil. (Misalnya, ini seperti mencolokkan "jack" ke berbagai komponen audio.)

Pulse dirancang untuk meminimalkan berapa kali audio terputus karena server tidak memenuhi tenggat waktu untuk mengirim/menerima audio di luar sistem. Tampaknya mencoba melakukan ini dengan memilih buffer besar untuk aplikasi klien yang tidak meminta latensi pemrosesan rendah , lalu "menyuntikkan" sampel ke dalam buffer tersebut untuk aplikasi klien yang memiliki tenggat waktu lebih cepat. Jika mencoba untuk menyuntikkan sampel begitu cepat sehingga melewatkan tenggat waktu dan menyebabkan underrun, Pulse akan secara otomatis meningkatkan jumlah waktu terpendek yang akan membiarkan klien mengirim pembaruan audio ke server. Pulse docs secara eksplisit menyatakan bahwa ultra latensi rendah– katakanlah, latensi pemrosesan kurang dari 10 md — bukan tujuan desain. Mengingat bahwa Linux itu sendiri (dan mungkin perangkat keras Anda) tidak dirancang untuk penjadwalan audio secara realtime, saya cenderung mempercayainya.

Dalam hal konfigurasi pengguna, Pulse "ringan". (Orang mungkin mengatakan Pulse memiliki latensi konfigurasi yang rendah , sesuatu yang sayangnya tampaknya diabaikan oleh banyak aplikasi Audio Linux.) Dalam hal kompleksitas dasarnya dibandingkan dengan Jack, Pulse "gemuk".

Untuk mendapatkan jawaban pasti tentang mana yang lebih cepat, Anda hanya perlu mendapatkan perangkat loopback dan mengukur latensi pulang-pergi pada sistem Anda sendiri untuk mengetahui kebenaran. Latensi pulang pergi adalah waktu yang dibutuhkan sistem Anda untuk memproses audio dan menerima apa yang diproses kembali ke dalam sistem. Ada tutorial online yang menjelaskan bagaimana melakukan ini di Linux. Itu akan memberi Anda gambaran tentang apa yang sebenarnya Anda cari, yang merupakan latensi yang dirasakan — waktu yang diperlukan dari saat Anda memicu suatu peristiwa (mis., memetik senar gitar) hingga saat Anda pertama kali mendengar suara yang dihasilkan (mis., mendengar akord gitar).

Terkait:Apakah umumnya lebih cepat untuk memilih ke dalam tabel sementara daripada memilih ke dalam tabel yang sebenarnya?

Terakhir, perlu diingat bahwa Pulse dan Jack berada di atas ALSA pada sebagian besar distribusi GNU/Linux. Saya tahu Anda hanya bertanya tentang Jack vs. Pulse. Tetapi jika Anda menggunakan satu aplikasi audio yang dapat terhubung langsung ke ALSA, tidak mungkin menambahkan Pulse atau Jack akan membuat Anda perceived latency lebih rendah daripada ALSA saja. Dalam hal ini Pulse dan Jack sama-sama "gemuk".

tldr; ALSA saja yang tercepat, Jack berguna untuk menyatukan beberapa aplikasi audio, dan Pulse mungkin termudah untuk digunakan saat Anda tidak peduli dengan latensi sangat rendah. Abaikan dokumentasi atau diskusi apa pun yang menggunakan istilah latensi tanpa menjelaskan jenis latensi apa yang dimaksud. (Sayangnya, baik dokumen resmi Jack dan entri blog Lennart tentang Pulse termasuk dalam kategori ini.)

Catatan :Mungkin ada kasus tepi di mana Anda ingin menggunakan satu aplikasi audio dan memiliki antarmuka ALSA yang payah dan antarmuka Jack yang layak. Dalam hal ini menggunakan Jack dapat membuat Anda menurunkan latensi. Tetapi jika kita berbicara tentang aplikasi yang dirancang untuk meminimalkan latensi, kasus-kasus itu seharusnya jarang terjadi. Tapi, hubungkan perangkat loopback dan uji hipotesis saya!


Linux
  1. Cara Mengaktifkan Layanan Audio PipeWire untuk Mengganti PulseAudio di Ubuntu 21.04

  2. Latensi Loopback Pulseaudio?

  3. Bagaimana Cara Memperbarui Pulseaudio Ke 12.x Di Ubuntu 18.04?

  1. Mengapa Scp Sangat Lambat Dan Bagaimana Cara Mempercepatnya?

  2. Bagaimana Cara Membuat Output Virtual Di Pulseaudio?

  3. Jack Headphone Laptop Tidak Menghasilkan Suara?

  1. Bagaimana Cara Memuat Program Untuk Memulai Lebih Cepat?

  2. Cara Membuat Situs Saya Memuat Lebih Cepat

  3. Bagaimana cara membuat skrip sed ini lebih cepat?