## page created by jeremie2
#format wiki
#LANGUAGE it
<
>
<>
<>
= 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 [[Hardware/Audio/PulseAudio|PulseAudio]], mentre nel caso di utilizzo di software per l'editing professionale il server audio di riferimento è stato [[Multimedia/Audio/Jack|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'''.
'''[[https://pipewire.org/|PipeWire]]''' è stato realizzato proprio per uniformare l'utilizzo dei software audio, eliminare i conflitti e rendere superflua l'installazione del kernel per la [[AmministrazioneSistema/KernelBassaLatenza|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 [[Multimedia/Audio/Ardour|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'''.
{{{#!wiki note
La versione presente nei repository ufficiali di '''Ubuntu 20.04''' è obsoleta e limitata nelle funzionalità.
}}}
{{{#!wiki note
Per '''Ubuntu 18.04''' il pacchetto '''!PipeWire''' non è disponibile nei [[Repository|repository]] ufficiali.<
>
}}}
In alternativa può essere installato tramite il [[https://launchpad.net/~pipewire-debian/+archive/ubuntu/pipewire-upstream|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 ==
0. Installare i pacchetti necessari per '''!PipeWire''':
* '''Ubuntu 22.04''': [[AmministrazioneSistema/InstallareProgrammi|Installare]] i pacchetti [[apt://pipewire-audio-client-libraries, libspa-0.2-bluetooth, libspa-0.2-jack|pipewire-audio-client-libraries, libspa-0.2-bluetooth, libspa-0.2-jack]]
* '''Ubuntu 20.04''': [[AmministrazioneSistema/InstallareProgrammi|Installare]] i pacchetti [[apt://pipewire, libpipewire-0.2-1, libspa-bluetooth ,libspa-ffmpeg|pipewire, libpipewire-0.2-1, libspa-bluetooth, libspa-ffmpeg]]
0. Rimuovere il pacchetto '''pipewire-media-session''' e poi installare il manager di sessione '''wireplumber''' digitando nel [[AmministrazioneSistema/Terminale|terminale]] i comandi:
{{{
sudo apt purge pipewire-media-session
sudo apt install wireplumber
}}}
## Modificato la procedura pella sostituzione del pacchetto '''pipewire-media-session''' con '''wireplumber''' in cagione del baco <>.
<>
== Da repository PipeWire ==
0. Digitare nel [[AmministrazioneSistema/Terminale|terminale]] i comandi:{{{
sudo add-apt-repository ppa:pipewire-debian/pipewire-upstream
sudo add-apt-repository ppa:pipewire-debian/wireplumber-upstream
}}}
0. Aggiornare la lista dei pacchetti:{{{
sudo apt update
}}}
0. [[AmministrazioneSistema/InstallareProgrammi|Installare]] i pacchetti [[apt://pipewire-audio-client-libraries, libspa-0.2-bluetooth, libspa-0.2-jack, pipewire-locales, wireplumber-locales|pipewire-audio-client-libraries, libspa-0.2-bluetooth, libspa-0.2-jack, pipewire-locales, wireplumber-locales]].
= Configurazione =
0. 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/
}}}
0. Terminare la configurazione attraverso il comando:{{{
sudo ldconfig
}}}
0. Eliminare completamente il seguente pacchetto per '''!PulseAudio''':{{{
sudo apt purge pulseaudio-module-bluetooth
}}}
0. Abilitare '''!WirePlumber''':{{{
systemctl --user --now enable wireplumber.service
}}}
0. Riavviare il sistema.
0. Verificare la corretta configurazione digitando nel [[AmministrazioneSistema/Terminale|terminale]] il comando:{{{
pactl info
}}}
0. 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 [[AmministrazioneSistema/InstallareProgrammi/PacchettiFlatpak|Flatpak]], il secondo se si usa il [[#ppapipewire|repository PipeWire]] anche come pacchetto `.deb`.
0. Per abilitare l'installazione di software in formato Flatpak e lo store Flathub seguire i [[AmministrazioneSistema/InstallareProgrammi/PacchettiFlatpak#install|seguenti passi]].
0. Da [[AmministrazioneSistema/Terminale|terminale]] installare i pacchetti necessari:{{{
flatpak install org.rncbc.qpwgraph org.pipewire.Helvum
}}}
0. Riavviare il sistema.
== Dal repository Pipewire ==
0. [[AmministrazioneSistema/InstallareProgrammi|Installare]] il pacchetto [[apt://qpwgraph|qpwgraph]]
0. 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 [[AmministrazioneSistema/InstallareProgrammi/PacchettiSnap|snap]] o [[AmministrazioneSistema/InstallareProgrammi/PacchettiFlatpak|flatpak]]), e per compatibilità con i plugin audio di '''Windows''' e '''Mac''', è consigliabile installare il software '''[[https://wiki.linuxaudio.org/apps/all/carla|Carla]]'''.<
>
Per usare '''Carla''' [[AmministrazioneSistema/InstallareProgrammi|installare]] i pacchetti [[apt://carla, carla-bridge-linux32, carla-bridge-linux64, carla-bridge-win64, carla-bridge-win32|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.
{{{#!wiki note
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 [[AmministrazioneSistema/Terminale|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 '''[[https://it.wikipedia.org/wiki/Open_Broadcaster_Software|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 =
* [[https://pipewire.org/|Sito ufficiale del progetto]]
* [[https://it.wikipedia.org/wiki/PipeWire|Pagina enciclopedica]]
* [[https://pipewire-debian.github.io|Come configurare WirePlumber con PipeWire]]
----
CategoryMultimedia