GNU/Linux >> Linux Esercitazione >  >> Linux

Jack Vs Pulseaudio:come è più veloce?

Vedo un sacco di affermazioni secondo cui Jack è più veloce di Pulse e ha meno latenza. Com'è così? Perché Pulse si definisce leggero e i ragazzi di Jack lo chiamano grasso? Qualcuno potrebbe scomporre l'interno di questi due demoni a un profano?

Risposta accettata:

Jack richiede che tu, l'utente esperto, configuri il server per determinare la latenza di elaborazione più bassa possibile per la tua macchina (La latenza di elaborazione è il tempo impiegato dal server per spostare i dati da/verso le applicazioni client e quindi inviare/ricevere il successivo "pezzo" di campioni audio all'esterno del sistema.) Jack consegnerà quei blocchi di dati audio in tempo o fallirà e ti darà un buffer underrun (a volte chiamato "dropout" o pop e clic ). Se Jack ottiene costantemente underrun, è tuo compito riavviare il server con impostazioni diverse o modificare qualcosa nelle applicazioni client per renderle più efficienti in modo da poter rispettare le scadenze audio. Dal momento che le impostazioni del tuo server si applicano uniformemente a tutti i client, Jack è molto utile per instradare l'audio tra più applicazioni audio e ottenere una prevedibilità risultati. (Ad esempio, è come collegare dei "jack" a vari componenti audio.)

Pulse è progettato per ridurre al minimo il numero di interruzioni dell'audio dovute al mancato rispetto da parte del server di una scadenza per l'invio/ricezione dell'audio al di fuori del sistema. Apparentemente cerca di farlo scegliendo un buffer di grandi dimensioni per le applicazioni client che non richiedono una bassa latenza di elaborazione , quindi "iniettando" campioni in quel buffer per le applicazioni client che hanno una scadenza più breve. Se tenta di iniettare campioni così presto da perdere una scadenza e causare un underrun, Pulse aumenterà automaticamente il tempo più breve in cui consentirà a un client di inviare un aggiornamento audio al server. I documenti di Pulse affermano esplicitamente che ultra bassa latenza:diciamo meno di 10 ms di latenza di elaborazione — non è un obiettivo di progettazione. Dato che Linux stesso (e probabilmente il tuo hardware) non è stato progettato per la programmazione dell'audio in tempo reale, sarei incline a crederci.

In termini di configurazione utente, Pulse è "leggero". (Si potrebbe dire che Pulse ha una bassa latenza di configurazione , qualcosa che purtroppo molte app Linux Audio non tengono in considerazione.) In termini di complessità sottostante rispetto a Jack, Pulse è "grasso".

Per ottenere una risposta definitiva su quale sia più veloce, dovrai solo procurarti un dispositivo di loopback e misurare la latenza di andata e ritorno sul proprio sistema per conoscere la verità. Latenza di andata e ritorno è il tempo impiegato dal tuo sistema per elaborare l'audio e ricevere ciò che ha elaborato nel sistema. Ci sono tutorial online che spiegano come farlo sotto Linux. Questo ti darà un'idea di cosa stai effettivamente cercando, ovvero la latenza percepita — il tempo impiegato dal momento in cui attivi un evento (ad esempio, strimpellando le corde di una chitarra) al momento in cui senti per la prima volta il suono che ne risulta (ad esempio, ascoltando l'accordo di chitarra).

Correlati:è generalmente più veloce selezionare in una tabella temporanea piuttosto che selezionare in una tabella reale?

Infine, tieni presente che sia Pulse che Jack si trovano in cima ad ALSA sulla maggior parte delle distribuzioni GNU/Linux. So che stai solo chiedendo di Jack contro Pulse. Ma se stai utilizzando un'unica applicazione audio in grado di connettersi direttamente ad ALSA, non è possibile che l'aggiunta di Pulse o Jack ti faccia abbassare la latenza percepita rispetto alla sola ALSA. In questo senso sia Pulse che Jack sono "grassi".

tld; ALSA da solo è il più veloce, Jack è utile per concatenare più applicazioni audio e Pulse è probabilmente il più semplice da usare quando non ti interessa la latenza ultra bassa. Ignora qualsiasi documentazione o discussione che utilizzi il termine latenza senza spiegare che tipo di latenza si intende. (Sfortunatamente, sia i documenti ufficiali di Jack che i post del blog di Lennart su Pulse rientrano in questa categoria.)

Nota :Potrebbero esserci casi limite in cui si desidera utilizzare una singola applicazione audio e ha un'interfaccia ALSA scadente e un'interfaccia Jack decente. In tal caso, l'utilizzo di Jack potrebbe ridurre la latenza. Ma se parliamo di app progettate per ridurre al minimo la latenza questi casi dovrebbero essere rari. Ma collega un dispositivo di loopback e verifica la mia ipotesi!


Linux
  1. Come abilitare il servizio audio PipeWire per sostituire PulseAudio in Ubuntu 21.04

  2. Perché Scp è così lento e come renderlo più veloce?

  3. Il jack per cuffie per laptop non produce alcun suono?

  4. Come precaricare un programma per un avvio più rapido?

  5. Pulseaudio:come ripetere la scansione dei dispositivi audio?

Come rendere il sistema Linux più veloce su CPU Intel

Come navigare nelle directory più velocemente in Linux

Come rendere Debian Linux più veloce

Come Gzip file di grandi dimensioni (100 GB+) più velocemente in Linux

Come installare Pigz per comprimere i file più velocemente in Linux

Come installare e utilizzare Pigz per comprimere i file più velocemente in Linux