Guida verificata con Ubuntu: 20.04 22.04 24.04

Problemi in questa pagina? Segnalali in questa discussione

Introduzione

Storicamente nei sistemi Linux per la gestione dei flussi audio sono stati utilizzati differenti server audio a seconda della tipologia di software in utilizzo.
Per fare alcuni esempi, i flussi audio standard (player audio/video, filmati web, ecc..) sono stati gestiti da PulseAudio, mentre nel caso di utilizzo di software per l'editing professionale il server audio di riferimento è stato JACK.
Purtroppo tali server sono in conflitto fra di loro. Ad es. attivando il server JACK viene escluso l'audio di tutti quei software che utilizzano PulseAudio.

PipeWire è stato realizzato proprio per uniformare l'utilizzo dei software audio, eliminare i conflitti e rendere superflua l'installazione del kernel per la bassa latenza.

PipeWire è stato ufficialmente e parzialmente introdotto in Ubuntu 22.04 (installabile in modo limitato anche in Ubuntu 20.04).
Tuttavia la sua integrazione può ancora risultare incompleta. Questa guida è stata testata principalmente con il software Ardour ma può rendersi utile per l'utilizzo di altre applicazioni che fanno uso di JACK. Uno dei principali vantaggi lo si ha nel poter utilizzare contemporaneamente software che fanno uso o di PulseAudio o di JACK.

La versione presente nei repository ufficiali di Ubuntu 20.04 è obsoleta e limitata nelle funzionalità.

Per Ubuntu 18.04 il pacchetto PipeWire non è disponibile nei repository ufficiali.

In alternativa può essere installato tramite il PPA PipeWire Upstream, che fornisce sia versioni più recenti di quelle del repository ufficiale, aggiornate circa ogni quindici giorni, sia versioni per Ubuntu 18.04.

Installazione

Da repository Ubuntu

Eseguendo la procedura su Ubuntu 24.04 è possibile che alcuni passaggi risultino superflui: pacchetti già installati o già rimossi (se da rimuovere), configurazioni già presenti, ecc.

  1. Installare i pacchetti necessari per PipeWire:

  2. Rimuovere il pacchetto pipewire-media-session e poi installare il manager di sessione wireplumber digitando nel terminale i comandi:

    sudo apt purge pipewire-media-session
    sudo apt install wireplumber

Da repository PipeWire

  1. Digitare nel terminale i comandi:

    sudo add-apt-repository ppa:pipewire-debian/pipewire-upstream
    sudo add-apt-repository ppa:pipewire-debian/wireplumber-upstream
  2. Aggiornare la lista dei pacchetti:

    sudo apt update
  3. Installare i pacchetti pipewire-audio-client-libraries, libspa-0.2-bluetooth, libspa-0.2-jack, pipewire-locales, wireplumber-locales.

Configurazione

Eseguendo la procedura su Ubuntu 24.04 è possibile che alcuni passaggi risultino superflui: pacchetti già installati o già rimossi (se da rimuovere), configurazioni già presenti, ecc.

  1. Per la configurazione di software che utilizzano ALSA e JACK creare le seguenti copie:

    sudo cp /usr/share/doc/pipewire/examples/alsa.conf.d/99-pipewire-default.conf /etc/alsa/conf.d/
    sudo cp /usr/share/doc/pipewire/examples/ld.so.conf.d/pipewire-jack-*.conf /etc/ld.so.conf.d/
  2. Terminare la configurazione attraverso il comando:

    sudo ldconfig
  3. Eliminare completamente il seguente pacchetto per PulseAudio:

    sudo apt purge pulseaudio-module-bluetooth
  4. Abilitare WirePlumber:

    systemctl --user --now enable wireplumber.service
  5. Riavviare il sistema.
  6. Verificare la corretta configurazione digitando nel terminale il comando:

    pactl info
  7. Dovrebbe essere visualizzato un output simile:

    Stringa server: /run/user/1000/pulse/native
    Versione protocollo libreria: 35
    Versione protocollo server: 35
    Locale: sì
    Indice client: 66
    Dimensione tile: 65472
    Nome utente: pinguinux
    Nome host: slim
    Nome server: PulseAudio (on PipeWire 0.3.48)
    Versione server: 15.0.0
    Specifica di campionamento predefinita: float32le ch 2 48000 Hz
    Mappa del canale predefinita: front-left,front-right
    Sink predefinito: alsa_output.usb-C-Media_Electronics_Inc._USB_Advanced_Audio_Device-00.analog-stereo
    Sorgente predefinita: alsa_input.usb-C-Media_Electronics_Inc._USB_Advanced_Audio_Device-00.mono-fallback
    Cookie: fb6f:2804

    Verificare i passaggi svolti nel caso si visualizzasse un output differente o nella stringa:

    Nome server: PulseAudio (on PipeWire 0.3.48)

    mancasse un esplicito riferimento a PipeWire.

Gestione flussi audio/video

Per gestire flussi audio/video tra periferiche e programmi, è consigliabile installare i programmi Helvum e qpwgraph, il primo distribuito solo come pacchetto Flatpak, il secondo se si usa il repository PipeWire anche come pacchetto .deb.

  1. Per abilitare l'installazione di software in formato Flatpak e lo store Flathub seguire i seguenti passi.

  2. Da terminale installare i pacchetti necessari:

    flatpak install org.rncbc.qpwgraph org.pipewire.Helvum
  3. Riavviare il sistema.

Dal repository Pipewire

  1. Installare il pacchetto qpwgraph

  2. Riavviare il sistema.

Audio professionale con Carla

In ambito audio professionale per collegare i flussi audio e MIDI di sistema con altri provenienti da applicazioni in sandbox, (cioè installati da snap o flatpak), e per compatibilità con i plugin audio di Windows e Mac, è consigliabile installare il software Carla.

Per usare Carla installare i pacchetti carla, carla-bridge-linux32, carla-bridge-linux64, carla-bridge-win64, carla-bridge-win32

Frequenza di campionamento e latenza

Con PipeWire la frequenza di campionamento e latenza possono essere cambiate all'istante senza dover riavviare il server audio.

Eseguire queste modifiche prima di caricare le applicazioni multimediali.

La frequenza di campionamento predefinita è impostata a 48000 Hz.
Per cambiarla ad esempio a 44100 Hz, digitare nel terminale:

pw-metadata -n settings 0 clock.force-rate 44100

È tuttavia consigliabile lasciarla a 48000 Hz, essendo la frequenza ufficiale del audio della TV, dei DVD, di YouTube ecc..

La latenza invece è impostata di default a 1024, ma nei casi in cui occorra ad esempio registrare uno strumento o fare una live con OBS Studio, conviene abbassarla.
Per portarla ad esempio a un valore di 256 digitare:

pw-metadata -n settings 0 clock.force-quantum 256

I valori possibili sono 4096, 2048, 1024, 512, 256, 128, 64, 32. Più i valori sono bassi meno latenza si h,a ma si corre il rischio di rendere il sistema instabile e introdurre rumori nel audio.

Monitorare app che utilizzano PipeWire

Per vedere quali applicazioni stiano utilizzando PipeWire e a quale frequenza stiano lavorando, digitare il comando:

pw-top

Ulteriori risorse


CategoryMultimedia

Multimedia/Audio/PipeWire (l'ultima modifica è del 27/11/2024 09.51.09, fatta da andreas-xavier)