Difference between revisions of "PulseAudio (Italiano)"

From ArchWiki
Jump to: navigation, search
m (Avvio del demone fallito)
m (Il livello del volume si alza ogni volta che una nuova applicazione viene avviata)
(33 intermediate revisions by 4 users not shown)
Line 5: Line 5:
 
[[es:PulseAudio]]
 
[[es:PulseAudio]]
 
[[fr:PulseAudio]]
 
[[fr:PulseAudio]]
 +
[[ja:PulseAudio]]
 
[[pt:PulseAudio]]
 
[[pt:PulseAudio]]
 
[[ru:PulseAudio]]
 
[[ru:PulseAudio]]
 
[[tr:PulseAudio]]
 
[[tr:PulseAudio]]
{{Article summary start}}
+
{{Related articles start (Italiano)}}
{{Article summary text|'''PulseAudio''' è un sound server general purpose. Per un elenco esaustivo delle caratteristiche, si veda [[Wikipedia:PulseAudio#Features]].}}
+
{{Related|PulseAudio/Examples (Italiano)}}
{{Article summary heading|Articoli correlati}}
+
{{Related articles end}}
{{Article summary wiki|PulseAudio/Examples (Italiano)}}
+
[[Wikipedia:PulseAudio|PulseAudio]] è un sound server utilizzato comunemente da ambienti desktop come [[GNOME (Italiano)|GNOME]] e [[KDE (Italiano)|KDE]] e funge da proxy per le applicaazioni che richiedano l'utilizzo dell'audio utilizzando componenti come [[ALSA (Italiano)|ALSA]] od [[OSS (Italiano)|OSS]]. Dal momento che Alsa viene incluso in Arch Linux di default, i casi di utilizzo più comuni proposti di seguito coprono l'utilizzo di PulseAudio con Alsa.
{{Article summary end}}
+
  
 
==Installazione==
 
==Installazione==
Line 18: Line 18:
 
* Pacchetto richiesto: {{Pkg|pulseaudio}}
 
* Pacchetto richiesto: {{Pkg|pulseaudio}}
 
* GUI GTK opzionali: {{Pkg|paprefs}} e {{Pkg|pavucontrol}}
 
* GUI GTK opzionali: {{Pkg|paprefs}} e {{Pkg|pavucontrol}}
* Controllo volume opzionale via tastiera: {{AUR|pulseaudio_ctl}}
+
* Controllo volume opzionale via tastiera: {{AUR|pulseaudio-ctl}}
* Mixer da console opzionale: {{AUR|ponymix-git}} e {{AUR|pamixer-git}}
+
* Mixer da console (CLI) opzionali: {{Pkg|ponymix-git}} e {{AUR|pamixer-git}}
* Icona nella tray di sistema opzionale: {{AUR|pasystray-git}}
+
* Controllo volume via web opzionale:
 +
* Icona nella tray di sistema opzionale: [https://github.com/Siot/PaWebControl PaWebControl]{{AUR|pasystray-git}}
 
* Applet di Plasma per KDE: {{Pkg|kdemultimedia-kmix}} e {{AUR|kdeplasma-applets-veromix}}
 
* Applet di Plasma per KDE: {{Pkg|kdemultimedia-kmix}} e {{AUR|kdeplasma-applets-veromix}}
  
 
==Esecuzione==
 
==Esecuzione==
  
{{Nota|Pulseaudio richiede [[D-Bus|dbus]] per funzionare.}}
+
{{Attenzione|Se si dispone di copie locali dei files di configurazione ({{ic|client.conf}}, {{ic|daemon.conf}} o {{ic|default.pa}} in {{ic|~/.config/pulse}}, sarà necessario allinearle ai cambiamenti dei files situati in {{ic|/etc/pulse}}, altrimenti PulseAudio potrebbe non avviarsi a causa di errori di configurazione.}}
  
{{Nota|La maggior parte degli ambienti grafici avviano Pulseaudio automaticamente alla sessione di X11.}}
+
{{Nota|
 +
* Pulseaudio richiede [[D-Bus|dbus]] per funzionare.
 +
* La maggior parte degli ambienti grafici avviano PulseAudio automaticamente.
 +
}}
  
 
Nel caso in cui PulseAudio non venisse automaticamente avviato all'avvio di X, può essere avviato con:
 
Nel caso in cui PulseAudio non venisse automaticamente avviato all'avvio di X, può essere avviato con:
Line 35: Line 39:
 
PulseAudio può essere interrotto con:
 
PulseAudio può essere interrotto con:
  
  $ pulseaudio --kill
+
  $ pulseaudio -k
  
 
==Equalizzatore==
 
==Equalizzatore==
Line 41: Line 45:
 
Le nuove versioni di PulseAudio dispongono di un equalizzatore a 10 bande integrato. Per utilizzarlo, si proceda come segue:
 
Le nuove versioni di PulseAudio dispongono di un equalizzatore a 10 bande integrato. Per utilizzarlo, si proceda come segue:
  
====Caricamento del modulo====
+
====Caricamento dei moduli equalizer-sink e dbus-protocol====
  
 
  $ pactl load-module module-equalizer-sink
 
  $ pactl load-module module-equalizer-sink
 +
$ pactl load-module module-dbus-protocol
  
 
====Installazione ed esecuzione del frontend grafico====
 
====Installazione ed esecuzione del frontend grafico====
  
# pacman -S --needed python2-pyqt
+
Si installi il pacchetto {{Pkg|python2-pyqt4}} e si esegua:
  
 
  $ qpaeq
 
  $ qpaeq
Line 53: Line 58:
 
{{Nota|Se {{ic|qpaeq}} non ha effetto, si installi {{ic|pavucontrol}} e si modifichi l'opzione "ALSA Playback on" in "FFT based equalizer on" mentre il player è in riproduzione.}}
 
{{Nota|Se {{ic|qpaeq}} non ha effetto, si installi {{ic|pavucontrol}} e si modifichi l'opzione "ALSA Playback on" in "FFT based equalizer on" mentre il player è in riproduzione.}}
  
====Caricamento automatico del modulo al boot====
+
====Caricamento automatico dei moduli equalizer-sink e dbus-protocol al boot====
  
 
Si modifichi il file {{ic|/etc/pulse/default.pa}}, aggiungendo le righe seguenti:
 
Si modifichi il file {{ic|/etc/pulse/default.pa}}, aggiungendo le righe seguenti:
Line 59: Line 64:
 
  ### Load the intergrated pulseaudio equalizer module
 
  ### Load the intergrated pulseaudio equalizer module
 
  load-module module-equalizer-sink
 
  load-module module-equalizer-sink
 +
load-module module-dbus-protocol
  
 
==Configurazione del backend==
 
==Configurazione del backend==
Line 77: Line 83:
 
===ALSA / dmix senza che PulseAudio prenda possesso della scheda audio===
 
===ALSA / dmix senza che PulseAudio prenda possesso della scheda audio===
  
{{Nota|Questa sezione descrive una configurazione alternativa, generalmente NON consigliabile.}}
+
{{Nota|Questa sezione descrive una configurazione alternativa, generalmente '''NON''' consigliabile.}}
  
 
Si potrebbe voler utilizzare ALSA direttamente nella maggior parte delle applicazioni e al tempo stesso utilizzarne delle altre che richiedono PulseAudio.
 
Si potrebbe voler utilizzare ALSA direttamente nella maggior parte delle applicazioni e al tempo stesso utilizzarne delle altre che richiedono PulseAudio.
Line 83: Line 89:
  
 
* Si rimuova il pacchetto {{Pkg|pulseaudio-alsa}}, che fornisce un layer di compatibilità tra le applicazioni ALSA e PulseAudio. Una volta fatto, tali applicazioni utilizzeranno ALSA direttamente senza passare per PulseAudio.
 
* Si rimuova il pacchetto {{Pkg|pulseaudio-alsa}}, che fornisce un layer di compatibilità tra le applicazioni ALSA e PulseAudio. Una volta fatto, tali applicazioni utilizzeranno ALSA direttamente senza passare per PulseAudio.
 
$ sudo pacman -R pulseaudio-alsa
 
  
 
* Si modifichi {{ic|/etc/pulse/default.pa}}.
 
* Si modifichi {{ic|/etc/pulse/default.pa}}.
Line 107: Line 111:
 
===={{Pkg|ossp}}====
 
===={{Pkg|ossp}}====
  
Si avvii osspd con:
+
Si installi il pacchetto {{Pkg|ossp}} e si avvii il servizio {{ic|osspd}}.
 
+
rc.d start osspd
+
  
 
====padsp wrapper (parte di PulseAudio)====
 
====padsp wrapper (parte di PulseAudio)====
Line 122: Line 124:
 
  $ padsp sox foo.wav -t ossdsp /dev/dsp
 
  $ padsp sox foo.wav -t ossdsp /dev/dsp
  
È anche possibile rinominare l'eseguibile del programma in questione con uno script del genere:
+
E' anche possibile creare un wrapper, in questo modo:
  
{{hc|/usr/bin/nome_programma|<nowiki>
+
{{hc|/usr/local/bin/nome_programma|<nowiki>
 
#!/bin/sh
 
#!/bin/sh
if test -x /usr/bin/padsp; then
+
exec padsp /usr/bin/OSSprogram "$@"
    exec /usr/bin/padsp /usr/bin/nome_programma "$@"
+
else
+
    exec /usr/bin/nome_programma "$@"
+
fi
+
 
</nowiki>}}
 
</nowiki>}}
 +
 +
Assicurarsi che {{ic|/usr/local/bin}} abbia la precedenza su {{ic|/usr/bin}} nel vostro {{ic|PATH}}.
  
 
===Gstreamer===
 
===Gstreamer===
Per fare in modo che [[Gstreamer]] utilizzi PulseAudio è necessario installare il pacchetto {{Pkg|gstreamer0.10-good-plugins}}, eseguire {{ic|gstreamer-properties}} (parte del pacchetto {{Pkg|gnome-media}}) e selezionare ''PulseAudio Sound Server'' sia come Input che come Output audio. In alternativa lo stesso effetto può essere ottenuto impostando le variabili gconf {{ic|/system/gstreamer/0.10/default/audiosink}} a ''pulsesink'' e {{ic|/system/gstreamer/0.10/default/audiosrc}} a ''pulsesrc'':
+
Per fare in modo che [[Gstreamer]] utilizzi PulseAudio è necessario installare il pacchetto {{Pkg|gst-plugins-good}} oppure {{Pkg|gstreamer0.10-good-plugins}}
 
+
  $ gconftool-2 -t string --set /system/gstreamer/0.10/default/audiosink pulsesink
+
  $ gconftool-2 -t string --set /system/gstreamer/0.10/default/audiosrc pulsesrc
+
 
+
Alcune applicazione (come Rhythmbox) ignorano l'impostazione ''audiosink'', facendo riferimento invece a ''musicaudiosink'', che non può essere configurata tramite {{ic|gstreamer-properties}} ma deve essere impostata a mano utilizzando {{ic|gconf-editor}} o  {{ic|gconftool-2}}:
+
 
+
  $ gconftool-2 -t string --set /system/gstreamer/0.10/default/musicaudiosink pulsesink
+
  
 
===OpenAL===
 
===OpenAL===
Line 151: Line 144:
 
{{hc|/etc/libao.conf|2=default_driver=pulse}}
 
{{hc|/etc/libao.conf|2=default_driver=pulse}}
  
Assicurarsi di rimuovere l'opzione {{ic|1=dev=default}} del driver alsa o specificare il nome di un sink di PulseAudio o il relativo numero. Si noti che è possibile mantenere i valori di default di libao e lasciargli usare il driver {{ic|alsa}} per l'output se si installa il pacchetto {{Pkg|pulseaudio-alsa}}, poichè in quel caso il dispositivo ALSA di default sarebbe PulseAudio.
+
Assicurarsi di rimuovere l'opzione {{ic|1=dev=default}} del driver alsa o specificare il nome di un sink di PulseAudio o il relativo numero.
 +
 
 +
{{Nota|È possibile mantenere i valori di default di libao e lasciargli usare il driver {{ic|alsa}} per l'output se si installa il pacchetto {{Pkg|pulseaudio-alsa}}, poichè in quel caso il dispositivo ALSA di default sarebbe PulseAudio.}}
  
 
===ESD===
 
===ESD===
Line 164: Line 159:
 
Si verifichi se PulseAudio è in esecuzione:
 
Si verifichi se PulseAudio è in esecuzione:
  
$ ps aux | grep pulse
+
{{hc|<nowiki>$ ps aux | grep pulse</nowiki>|
 
+
 
  facade  1794  0.0  0.0 360464  6532 ?        S<l  15:33  0:00 /usr/bin/pulseaudio --start
 
  facade  1794  0.0  0.0 360464  6532 ?        S<l  15:33  0:00 /usr/bin/pulseaudio --start
 
 
  facade  1827  0.0  0.0  68888  2608 ?        S    15:33  0:00 /usr/lib/pulse/gconf-helper
 
  facade  1827  0.0  0.0  68888  2608 ?        S    15:33  0:00 /usr/lib/pulse/gconf-helper
 +
}}
  
 
Se PulseAudio non è avviato e si sta utilizzando X, il seguente comando lo avvierà manualmente assieme ai plugins per X11 necessari:
 
Se PulseAudio non è avviato e si sta utilizzando X, il seguente comando lo avvierà manualmente assieme ai plugins per X11 necessari:
Line 204: Line 198:
  
 
Vi è inoltre un'alternativa a pavucontrol per KDE: {{AUR|kdeplasma-addons-applets-veromix}}, disponibile su AUR.
 
Vi è inoltre un'alternativa a pavucontrol per KDE: {{AUR|kdeplasma-addons-applets-veromix}}, disponibile su AUR.
 +
 +
Se KMix o Veromix non riescono a connettersi al server PulseAudio in fase di boot, potrebbe essere necessario modificare il file {{ic|/etc/pulse/client.conf}}, cambiando {{ic|1=autospawn = no}} in {{ic|1=autospawn = yes}}.
  
 
===Xfce===
 
===Xfce===
Line 218: Line 214:
  
 
===Music Player Daemon (MPD)===
 
===Music Player Daemon (MPD)===
È necessario [http://mpd.wikia.com/wiki/PulseAudio configurare] mpd affinché usi Pulseaudio. Si veda anche [[MPD/Tips_and_Tricks#MPD_.26_PulseAudio]].
+
È necessario [http://mpd.wikia.com/wiki/PulseAudio configurare] mpd affinché usi Pulseaudio. Si veda anche [[MPD/Tips and Tricks#MPD and PulseAudio]].
  
 
Si noti comunque che quanto sopra potrebbe causare un bug che impedisce a PulseAudio di togliere il muto agli altoparlanti quando vengono rimosse cuffie o altri dispositivi audio.
 
Si noti comunque che quanto sopra potrebbe causare un bug che impedisce a PulseAudio di togliere il muto agli altoparlanti quando vengono rimosse cuffie o altri dispositivi audio.
Line 238: Line 234:
  
 
====Dispositivo audio muto====
 
====Dispositivo audio muto====
Se non si sente nessun suono anche usando ALSA come dispositivo di default, potrebbe essere necessario togliere il mute dalla scheda audio. Per farlo, si dovrà lanciare {{ic|alsamixer}} ed assicurarsi che ogni colonna abbia uno '00' verde sotto di essa (si prema 'm' per abilitare/disabilitare il mute, dopo aver selezionato la colonna desiderata).
+
Se non si sente nessun suono anche usando ALSA come dispositivo di default, potrebbe essere necessario togliere il mute dalla scheda audio. Per farlo, si dovrà lanciare {{ic|alsamixer}} ed assicurarsi che ogni colonna abbia uno '00' verde sotto di essa (si prema {{ic|m}} per abilitare/disabilitare il mute, dopo aver selezionato la colonna desiderata).
  
 
  $ alsamixer -c 0
 
  $ alsamixer -c 0
 +
 +
{{Nota|{{ic|alsamixer}} non specifica quale dispositivo di output è quello di default. Una delle possibili cause della mancanza di suono dopo l'ìnstallazione di PulseAudio potrebbe proprio risiedere nell'erronea identificazione dell'output di default. Si provi ad installare {{Pkg|pavucontrol}} e a controllare se è presente dell'output quando si riproduce un file {{ic|.wav}}.}}
 +
 +
====Modalità Auto-Mute====
 +
 +
La modalità Auto-Mute potrebbe essere abilitata, ed è possibile disabilitarla usando {{ic|alsamixer}}.
 +
 +
Si veda [http://superuser.com/questions/431079/how-to-disable-auto-mute-mode questa] discussione per ulteriori informazioni.
  
 
====Files di configurazione non corretti====
 
====Files di configurazione non corretti====
Line 264: Line 268:
 
Questo comportamento potrebbe avere diverse cause, tra cui, la presenza di un file {{ic|.asoundrc}} nella propria home che ha la precedenza rispetto all'{{ic|/etc/asound.conf}}.
 
Questo comportamento potrebbe avere diverse cause, tra cui, la presenza di un file {{ic|.asoundrc}} nella propria home che ha la precedenza rispetto all'{{ic|/etc/asound.conf}}.
  
Il file personale dell'utente è modificato dal tool '''asoundconf''' o dal relativo frontend grafico '''asoundconf-gtk''' (quest'ultimo è chiamato "Default sound card" nel menù applicazioni), non appena lo si avvia.  
+
Il file personale dell'utente è modificato dal tool {{ic|asoundconf}}} o dal relativo frontend grafico {{ic|asoundconf-gtk}} (quest'ultimo è chiamato "Default sound card" nel menù applicazioni), non appena lo si avvia.  
  
 
È possibile inibire gli effetti del file {{ic|.asoundrc}} commentando l'ultima linea, in questo modo:
 
È possibile inibire gli effetti del file {{ic|.asoundrc}} commentando l'ultima linea, in questo modo:
  
#</home/<yourusername>/.asoundrc.asoundconf>
+
{{hc|.asoundrc|
 +
# </home/''nomeutente''/.asoundrc.asoundconf>
 +
}}
  
 
È anche possibile che qualche programma abbia accesso esclusivo al dispositivo audio. Si provi il seguente comando:
 
È anche possibile che qualche programma abbia accesso esclusivo al dispositivo audio. Si provi il seguente comando:
Line 276: Line 282:
 
Se l'output è simile a questo,
 
Se l'output è simile a questo,
  
{{bc|<nowiki>
+
{{hc|# fuser -v /dev/snd/*|
                     USER       PID  ACCESS COMMAND
+
                     USER     PID  ACCESS COMMAND
 
/dev/snd/controlC0:  root        931 F....  timidity
 
/dev/snd/controlC0:  root        931 F....  timidity
 
                     bob        1195 F....  panel-6-mixer
 
                     bob        1195 F....  panel-6-mixer
Line 285: Line 291:
 
/dev/snd/seq:        root        931 F....  timidity
 
/dev/snd/seq:        root        931 F....  timidity
 
/dev/snd/timer:      root        931 f....  timidity
 
/dev/snd/timer:      root        931 f....  timidity
</nowiki>}}
+
}}
  
 
timidity potrebbe star impedendo a PulseAudio di accedere al dispositivo audio. Solitamente, uccidere il processo di timidity risolve il problema
 
timidity potrebbe star impedendo a PulseAudio di accedere al dispositivo audio. Solitamente, uccidere il processo di timidity risolve il problema
 
[da migliorare e completare]
 
  
 
Questo problema potrebbe anche essere causato da un conflitto tra [[FluidSynth]] e PulseAudio, come riportato in [https://bbs.archlinux.org/viewtopic.php?id=154002 questo thread]. E' necessario rimuovere FluidSynth:
 
Questo problema potrebbe anche essere causato da un conflitto tra [[FluidSynth]] e PulseAudio, come riportato in [https://bbs.archlinux.org/viewtopic.php?id=154002 questo thread]. E' necessario rimuovere FluidSynth:
Line 296: Line 300:
  
 
====KDE4====
 
====KDE4====
È possibile che un altro dispositivo sia impostato come preferito da phonon. Assicurarsi che ogni impostazione ad esso relativa abbia il dispositivo di output preferito in cima alla lista, e si controlli la tab "playback streams" in kmix per verificare che le applicazioni lo stiano utilizzando.
+
È possibile che un altro dispositivo sia impostato come preferito da phonon. Assicurarsi che ogni impostazione ad esso relativa abbia il dispositivo di output preferito in cima alla lista, e si controlli la tab "playback streams" in {{ic|kmix}} per verificare che le applicazioni lo stiano utilizzando.
 +
 
 +
Per visualizzare il dispositivo audio predefinito, si esegua:
 +
 
 +
$ pactl stat
 +
 
 +
Per l'elenco dei dispositivi audio disponibili, eseguire:
 +
 
 +
$ pactl list
 +
 
 +
Per impostare un dispositivo audio come predefinito si utilizzi il comando {{ic|pacmd}} o si modifichi {{ic|/etc/pulse/default.pa}}:
 +
 
 +
set-default-sink alsa_output.analog-stereo
  
 
====Errore "Failed to create sink input: sink is suspended"====
 
====Errore "Failed to create sink input: sink is suspended"====
Line 303: Line 319:
  
 
  $ rm -r ~/.pulse ~/.pulse-cookie
 
  $ rm -r ~/.pulse ~/.pulse-cookie
 +
 +
===Nessun output audio HDMI se si spegne il monitor per un certo periodo di tempo===
 +
 +
Il monitor è collegato tramite HDMI/DisplayPort, e il jack audio è collegato all'uscita cuffie sul monitor, ma PulseAudio lo considera scollegato.
 +
 +
{{hc|pactl list sinks|
 +
...
 +
hdmi-output-0: HDMI / DisplayPort (priority: 5900, not available)
 +
...
 +
}}
 +
 +
Il che non consente la riproduzione del suono dall'uscita HDMI. È possibile ovviare al problema cambiando momentaneamente TTY e tornando a quella utilizzata in precedenza. Il problema affligge gli utenti con schede video ATI/Nvidia/Intel.
 +
 +
===Non è possibile aggiornare la configurazione della scheda audio da pavucontrol===
 +
 +
{{Pkg|pavucontrol}} è un utile tool grafico per configurare PulseAudio. Nella scheda "Configuration" è possibile scegliere un profilo diverso per ogni dispositivo di riproduzione, come Stereo analogico, output digitale (IEC958), HDMI 5.1 Surround eccetera.
 +
 +
Può tuttavia verificarsi un crash del demone Pulse con conseguente autoriavvio se si tenta di scegliere un profilo diverso per una scheda audio, senza che le modifiche vengano salvate.
 +
Nel caso, si utilizzi il tool grafico {{Pkg|paprefs}} e controllare se sotto la scheda "Simultaneous Output" sia presente un dispositivo simultaneo virtuale: se lo stesso è abilitato, non si sarà in grado di cambiare le impostazioni da {{ic|pavucontrol}}. Si disabiliti momentaneamente il dispositivo deselezionando la relativa casella, si effettuino le modifiche in {{ic|pavucontrol}} e si riabiliti il dispositivo.
 +
 +
===Output simultaneo verso più schede audio / dispositivi===
 +
 +
L'output simultaneo verso dispositivi differenti è una funzionalità molto utile: ad esempio è possibile inviare l'audio al proprio ricevitore A/V tramite l'uscita HDMI della propria scheda video e allo stesso tempo inviarlo all'uscita analogica posta sulla propria scheda madre.
 +
 +
La procedura è molto meno problematica rispetto al passato (nell'esempio che segue, verrà utilizzato il DE GNOME).
 +
 +
Utilizzando {{Pkg|paprefs}}, si selezioni "Add virtual output device for simultaneous output on all local sound cards", posto sotto la scheda "Simultaneous Output" quindi, dalle impostazioni audio di GNOME, si selezioni l'uscita virtuale appena creata.
 +
 +
Se quanto sopra non funziona, aggiungere le seguenti righe al proprio {{ic|~/.asoundrc}}:
 +
 +
pcm.dsp {
 +
  type plug
 +
  slave.pcm "dmix"
 +
}
 +
 +
===L'output simultaneo verso più schede audio / dispositivi non funziona===
 +
 +
Quanto segue è utile ad utenti che hanno differenti sorgenti sonore e vogliono riprodurle su sinks/output differenti. Un caso d'uso potrebbe essere il riprodurre simultaneamente musica e la voce di una chat, redirigendo la musica agli altoparlanti (in questo caso l'uscita Digital S/PDIF) e la voce alle cuffie (Analog).
 +
 +
PulseAudio non riesce sempre a rilevare la configurazione descritta sopra. Se si è certi che la propria scheda audio supporti questa funzionalità e non viene visualizzata la relativa opzione nei profili di {{Pkg|pavucontrol}} o {{Pkg|veromix}}, potrebbe essere necessario creare un file di configurazione per la propria scheda.
 +
 +
Nello specifico, si dovrà creare un profilo per la propria scheda. Il procedimento può essere diviso in due parti:
 +
 +
* Creazione della regola di udev per costringere PulseAudio a scegliere il file di configurazione personalizzato per la scheda audio in uso
 +
* Creazione del file di configurazione
 +
 +
Si crei una regola udev per PulseAudio:
 +
 +
{{Nota|Quanto segue è un esempio valido per una Asus Xonar Essence STX. Si legga la pagina del wiki relativa ad [[Udev (Italiano)|udev]] per trovare i valori corretti.}}
 +
 +
{{Nota|La regola deve avere un numero più basso rispetto a quella originale per avere effetto.}}
 +
 +
{{hc|/usr/lib/udev/rules.d/90-pulseaudio-Xonar-STX.rules|<nowiki>
 +
ACTION=="change", SUBSYSTEM=="sound", KERNEL=="card*", \
 +
ATTRS{subsystem_vendor}=="0x1043", ATTRS{subsystem_device}=="0x835c", ENV{PULSE_PROFILE_SET}="asus-xonar-essence-stx.conf"
 +
</nowiki>}}
 +
 +
Si crei quindi un nuovo profilo. È possibile partire da zero ed arricchirlo man mano, oppure utilizzare il profilo originale rinominandolo e facendo le dovute modifiche.
 +
 +
Per abilitare sink multipli su una Asus Xonar Essence STX, si scriva quanto segue:
 +
 +
{{Nota|{{ic|asus-xonar-essence-stx.conf}} comprende tutto il codice/mappature di {{ic|default.conf}}.}}
 +
 +
{{hc|/usr/share/pulseaudio/alsa-mixer/profile-sets/asus-xonar-essence-stx.conf|<nowiki>
 +
[Profile analog-stereo+iec958-stereo]
 +
description = Analog Stereo Duplex + Digital Stereo Output
 +
input-mappings = analog-stereo
 +
output-mappings = analog-stereo iec958-stereo
 +
skip-probe = yes
 +
</nowiki>}}
 +
 +
Quanto sopra configurerà la vostra Asus Xonar Essence STX con i profili di default e consente l'aggiunta di un profilo personalizzato per l'utilizzo con più sink simultanei.
 +
 +
Sarà necessario creare un ulteriore profilo nel file di configurazione se si vorrà usufruire della stessa funzionalità con output AC3 Digital 5.1.
 +
 +
Si legga [https://www.freedesktop.org/wiki/Software/PulseAudio/Backends/ALSA/Profiles/ questo] articolo sui profili di PulseAudio.
 +
 +
===Disabilitare il supporto ai dispositivi Bluetooth===
 +
 +
Se non si utilizzano dispositivi Bluetooth, il journal di sistema potrebbe contenere il seguente errore:
 +
 +
{{bc|<nowiki>
 +
bluez5-util.c: GetManagedObjects() failed: org.freedesktop.DBus.Error.ServiceUnknown: The name org.bluez was not provided by any .service files
 +
</nowiki>}}
 +
 +
Per disabilitare il supporto Bluetooth in PulseAudio, assicurarsi che le seguenti linee dei file di configurazione {{ic|~/.config/pulse/default.pa}} o {{ic|/etc/pulse/default.pa}} siano commentate:
 +
 +
{{hc|~/.config/pulse/default.pa|<nowiki>
 +
### Automatically load driver modules for Bluetooth hardware
 +
#.ifexists module-bluetooth-policy.so
 +
#load-module module-bluetooth-policy
 +
#.endif
 +
 +
#.ifexists module-bluetooth-discover.so
 +
#load-module module-bluetooth-discover
 +
#.endif
 +
</nowiki>}}
  
 
===Problemi di riproduzione con cuffie Bluetooth===
 
===Problemi di riproduzione con cuffie Bluetooth===
 
Alcuni utenti [https://bbs.archlinux.org/viewtopic.php?id=117420 riferiscono] di enormi ritardi nella riproduzione del suono, o addirittura assenza di suono quando la connessione bluetooth rimane inattiva. Ciò è causato da {{ic|idle-suspend-module}}, che mette a risposo automaticamente le sinks/sources relative. Visto che questo modulo causa problemi con i dispositivi bluetooth, può essere disattivato.
 
Alcuni utenti [https://bbs.archlinux.org/viewtopic.php?id=117420 riferiscono] di enormi ritardi nella riproduzione del suono, o addirittura assenza di suono quando la connessione bluetooth rimane inattiva. Ciò è causato da {{ic|idle-suspend-module}}, che mette a risposo automaticamente le sinks/sources relative. Visto che questo modulo causa problemi con i dispositivi bluetooth, può essere disattivato.
  
1. cp /etc/pulse/default.pa ~/.pulse/default.pa
+
Per disabilitare il modulo in questione, assicurarsi che le seguenti linee dei file di configurazione {{ic|~/.config/pulse/default.pa}} o {{ic|/etc/pulse/default.pa}} siano commentate:
2. comment out the "load-module module-suspend-on-idle" line in ~/.pulse/default.pa
+
 
3. pulseaudio -k && pulseaudio --start
+
{{hc|~/.config/pulse/default.pa|<nowiki>
 +
### Automatically suspend sinks/sources that become idle for too long
 +
#load-module module-suspend-on-idle
 +
</nowiki>}}
  
[http://robert.orzanna.de/2011/08/prevent-idle-suspend-with-bluetooth.html  Ulteriori informazioni]
+
Si riavvii PulseAudio per applicare i cambiamenti.
  
 
===Switch automatico agli headset Bluetooth o USB===
 
===Switch automatico agli headset Bluetooth o USB===
  
Si aggiunga la seguente riga al {{ic|/etc/pulse/default.pa}}:
+
Si aggiunga la seguente riga al file {{ic|/etc/pulse/default.pa}}:
+
 
 +
{{hc|/etc/pulse/default.pa|
 
  # automatically switch to newly-connected devices
 
  # automatically switch to newly-connected devices
 
  load-module module-switch-on-connect
 
  load-module module-switch-on-connect
 +
}}
  
 
===Pulse sovrascrive le impostazioni di Alsa===
 
===Pulse sovrascrive le impostazioni di Alsa===
 
Pulseaudio è solito sovrascrivere le impostazioni di Alsa; ad esempio quando si ripristinano i livelli del volume all'avvio, anche se il demone alsa è attivo. Dal momento che non sembrano esserci altri modi per limitare questo comportamento, è necessario ricorrere ad un workaround che ripristini nuovamente le impostazioni di Alsa dopo che Pulseaudio si è avviato.
 
Pulseaudio è solito sovrascrivere le impostazioni di Alsa; ad esempio quando si ripristinano i livelli del volume all'avvio, anche se il demone alsa è attivo. Dal momento che non sembrano esserci altri modi per limitare questo comportamento, è necessario ricorrere ad un workaround che ripristini nuovamente le impostazioni di Alsa dopo che Pulseaudio si è avviato.
  
Si aggiunga il seguente comando a {{ic|.xinitrc}},  {{ic|.bash_login}} o a qualsiasi altro file si utilizzi per l'autostart delle applicazioni:
+
Si aggiunga il seguente comando a {{ic|.xinitrc}},  {{ic|.bash_profile}} o a qualsiasi altro file si utilizzi per l'[[Autostarting|autostart]] delle applicazioni:
  
 
  restore_alsa() {
 
  restore_alsa() {
   while [ -z "`pidof pulseaudio`" ]; do
+
   while [ -z "$(pidof pulseaudio)" ]; do
 
   sleep 0.5
 
   sleep 0.5
 
   done
 
   done
Line 343: Line 461:
  
 
  $ rm -rf /tmp/pulse* ~/.pulse*
 
  $ rm -rf /tmp/pulse* ~/.pulse*
  $ pulseaudio --kill
+
  $ pulseaudio -k
 
  $ pulseaudio --start
 
  $ pulseaudio --start
  
Line 349: Line 467:
 
Questo genere di pulizia manuale è sempre richiesta in caso si utilizzi LXDM, in quanto lo stesso non riavvia il server X dopo il logout. Si veda a tal proposito [[LXDM#PulseAudio]].
 
Questo genere di pulizia manuale è sempre richiesta in caso si utilizzi LXDM, in quanto lo stesso non riavvia il server X dopo il logout. Si veda a tal proposito [[LXDM#PulseAudio]].
  
===padevchooser===
+
====Problema con inotify====
Se non è possibile lanciare il Pulseaudio Device Chooser, si riavvii il demone Avahi, in questo modo:
+
  
  # rc.d restart avahi-daemon
+
Se quanto sopra non funziona, verificare la presenza di un errore simile al seguente:
 +
 
 +
{{hc|$ pulseaudio -vvvv|<nowiki>
 +
E: [pulseaudio] module-udev-detect.c: You apparently ran out of inotify watches, probably because Tracker/Beagle took them all away. I wished people would do their homework first and fix inotify before using it for watching whole directory trees which is something the current inotify is certainly not useful for. Please make sure to drop the Tracker/Beagle guys a line complaining about their broken use of inotify.</nowiki>}}
 +
 
 +
In questo caso si sono esauriti i watch di inotify.
 +
 
 +
È possibile risolvere il problema eseguendo:
 +
 
 +
  # echo 100000 > /proc/sys/fs/inotify/max_user_watches
 +
 
 +
Per rendere la modifica permanente, si modifichi {{hc|/etc/sysctl.d/99-sysctl.conf|<nowiki>
 +
# Increase inotify max watches per user
 +
fs.inotify.max_user_watches = 100000
 +
</nowiki>}}
  
 
===Artefatti sonori, audio intermittente o gracchiante===
 
===Artefatti sonori, audio intermittente o gracchiante===
Line 358: Line 489:
 
Lo scheduling basato su timer potrebbe causare problemi con alcuni driver ALSA, anche altri potrebbero dare problemi se lo si disattiva, perciò si agisca in base a come si comporta il proprio sistema.
 
Lo scheduling basato su timer potrebbe causare problemi con alcuni driver ALSA, anche altri potrebbero dare problemi se lo si disattiva, perciò si agisca in base a come si comporta il proprio sistema.
  
Per disattivarlo, si sostituisca la seguente linea in {{ic|/etc/pulse/default.pa}}:
+
Per disattivarlo, si aggiunga {{ic|1=tsched=0}} come parametro al modulo udev-detect in {{ic|/etc/pulse/default.pa}}:
 
+
load-module module-udev-detect
+
 
+
con:
+
  
 +
{{hc|/etc/pulse/default.pa|<nowiki>
 
  load-module module-udev-detect tsched=0
 
  load-module module-udev-detect tsched=0
 +
</nowiki>}}
  
Poi si riavvii Pulseaudio.
+
Poi si riavvii Pulseaudio:
 +
 
 +
$ pulseaudio -k
 +
$ pulseaudio --start
  
 
Si compiano gli stessi passaggi a ritroso per abilitare lo scheduling basato su timer, se non è stato abilitato di default.
 
Si compiano gli stessi passaggi a ritroso per abilitare lo scheduling basato su timer, se non è stato abilitato di default.
Line 374: Line 506:
 
===Impostare il numero di frammenti e la dimensione del buffer in PulseAudio===
 
===Impostare il numero di frammenti e la dimensione del buffer in PulseAudio===
  
:1. Identificare i parametri della scheda audio in uso
+
[http://forums.linuxmint.com/viewtopic.php?f=42&t=44862 Ulteriori informazioni]
 +
 
 +
====Identificare i parametri della scheda audio in uso (1/4)====
  
 
Si eseguano i seguenti comandi bash per individuare le impostazioni di buffering della propria scheda audio:
 
Si eseguano i seguenti comandi bash per individuare le impostazioni di buffering della propria scheda audio:
  
  echo autospawn = no >> ~/.pulse/client.conf
+
  $ echo autospawn = no >> ~/.pulse/client.conf
  killall pulseaudio
+
  $ pulseaudio -k
  LANG=C timeout --foreground -k 10 -s kill 10 pulseaudio -vvvv 2>&1 | grep device.buffering -B 10
+
  $ LANG=C timeout --foreground -k 10 -s kill 10 pulseaudio -vvvv 2>&1 | grep device.buffering -B 10
  sed -i '$d' ~/.pulse/client.conf
+
  $ sed -i '$d' ~/.pulse/client.conf
  
Per ogni scheda audio identificata da PulseAudiom si avrà un output simile al seguente:
+
Per ogni scheda audio identificata da PulseAudio si avrà un output simile al seguente:
  
 
{{bc|<nowiki>
 
{{bc|<nowiki>
Line 402: Line 536:
 
Si prenda nota dei valori {{ic|buffer_size}} e {{ic|fragment_size}} per la scheda audio in uso.
 
Si prenda nota dei valori {{ic|buffer_size}} e {{ic|fragment_size}} per la scheda audio in uso.
  
:2. Si calcolino la dimensione ed il numero di frammenti in millisecondi.
+
====Si calcolino la dimensione ed il numero di frammenti in millisecondi (2/4)====
  
La frequenza di campionamento di default in PulseAudio e i bit utilizzati corrispondono rispettivamente a 44100 Hz e 16 bit.
+
La frequenza di campionamento di default in PulseAudio e i bit utilizzati corrispondono rispettivamente a {{ic|44100 Hz}} e {{ic|16 bit}}.
  
Utilizzando questi valori, il bitrate da impostare corrisponde a {{ic|1=44100 * 16 = 705600}} bit al secondo, oppure 1411200 b/s in caso si utilizzino due canali (stereo).
+
Utilizzando questi valori, il bitrate da impostare corrisponde a {{ic|1=44100 * 16 = 705600}} bit al secondo, oppure {{ic|1411200 b/s}} in caso si utilizzino due canali (stereo).
  
 
Utilizziamo i valori ottenuti nel passaggio precedente:
 
Utilizziamo i valori ottenuti nel passaggio precedente:
Line 413: Line 547:
 
  device.buffering.fragment_size = "384000" => 384000/1411200 = 0.272108843537s = 272 ms
 
  device.buffering.fragment_size = "384000" => 384000/1411200 = 0.272108843537s = 272 ms
  
:3. Si modifichi il file di configurazione di PulseAudio ({{ic|/etc/pulse/daemon.conf}}) rimuovendo il punto e virgola iniziale alle due voci che seguono:
+
====Modificare il file di configurazione di PulseAudio (3/4)====
  
; default-fragments = X
+
{{hc|/etc/pulse/daemon.conf|<nowiki>
; default-fragment-size-msec = Y
+
; default-fragments = X
 +
; default-fragment-size-msec = Y
 +
</nowiki>}}
  
 
Nel passagio precedente si è calcolata la dimensione del frammento. Il numero di frammenti è dato da {{ic|buffer_size / fragment_size}} che nel nostro caso ({{ic|544/272}}) è {{ic|2}}.
 
Nel passagio precedente si è calcolata la dimensione del frammento. Il numero di frammenti è dato da {{ic|buffer_size / fragment_size}} che nel nostro caso ({{ic|544/272}}) è {{ic|2}}.
Line 422: Line 558:
 
Si modifichino quindi le righe di cui sopra utilizzando i risultati ottenuti:
 
Si modifichino quindi le righe di cui sopra utilizzando i risultati ottenuti:
  
default-fragment-size-msec = 272
+
{{hc|/etc/pulse/daemon.conf|<nowiki>
default-fragments = 2
+
; default-fragments = '''272'''
 +
; default-fragment-size-msec = '''2'''
 +
</nowiki>}}
  
:4. Si riavvii PulseAudio
+
====Riavviare il demone PulseAudio (4/4)====
  
  pulseaudio -k
+
  $ pulseaudio -k
  pulseaudio --start
+
  $ pulseaudio --start
  
Fonte: [http://forums.linuxmint.com/viewtopic.php?f=42&t=44862 kwevej sul forum di Linux Mint]
+
Per ulteriori informazioni: [http://forums.linuxmint.com/viewtopic.php?f=42&t=44862 kwevej sul forum di Linux Mint]
  
 
===Il suono arriva in ritardo===
 
===Il suono arriva in ritardo===
Line 438: Line 576:
 
Si eliminino eventuali modifiche alle voci riportate di seguito e, se il problema persiste, decommentarle modificarle in questo modo:
 
Si eliminino eventuali modifiche alle voci riportate di seguito e, se il problema persiste, decommentarle modificarle in questo modo:
  
default-fragments = 8
+
{{hc|/etc/pulse/daemon.conf|<nowiki>
default-fragment-size-msec = 5
+
default-fragment-size-msec = 5
 +
default-fragments = 8
 +
default-fragment-size-msec = 5
 +
</nowiki>}}
  
 
===Suono intermittente e distorto===
 
===Suono intermittente e distorto===
La scelta di una frequenza di campionamento errata in {{ic|/etc/pulse/daemon.conf}}, può causare un suono intermittente. Si provi a cambiare la linea:
+
La scelta di una frequenza di campionamento errata in {{ic|/etc/pulse/daemon.conf}}, può causare un suono intermittente. Si effettui la seguente modifica:
 
+
; default-sample-rate = 44100
+
{{hc|/etc/pulse/daemon.conf|<nowiki>
 
+
default-sample-rate = 48000
in:
+
</nowiki>}}
 
+
default-sample-rate = 48000
+
  
E a riavviare il server Pulseaudio.
+
E si riavvii il server Pulseaudio.
  
 
Se il suono è intermittente in applicazioni che usano openAL, si dovrebbe cambiare la frequenza di campionamento anche in {{ic|/etc/openal/alsoft.conf}}:
 
Se il suono è intermittente in applicazioni che usano openAL, si dovrebbe cambiare la frequenza di campionamento anche in {{ic|/etc/openal/alsoft.conf}}:
Line 466: Line 605:
  
 
===Il livello del volume si alza ogni volta che una nuova applicazione viene avviata===
 
===Il livello del volume si alza ogni volta che una nuova applicazione viene avviata===
Sembra che, come comportamento di default, il cambio di volume in una applicazione, si rifletta anche su quello globale, invece di riguardare solo la stessa. Per questo motivo, le applicazioni che impostano il proprio volume all'avvio, causano l'aumento del volume di sistema.
 
  
È possibile risolvere questo problema modificando il file {{ic|/etc/pulse/daemon.conf}} decommentando:
+
Potrebbe capitare che, a causa della modalità ''flat volumes'' di PulseAudio, la modifica del volume in applicazioni specifiche abbia effetto anche sul volume generale di sistema. Al posto di disabilitare tale modalità, gli utenti KDE dovrebbero provare ad abbassare il volume delle notifiche di sistema in ''Impostazioni di sistema -> Notifiche delle applicazioni e di sistema -> Gestisci le notifiche'', tab ''Impostazioni di riproduzione''.
 +
La modifica del livello volume ''Event Sounds'' in KMix o altri mixer non sortirà l'effetto desiderato in questo caso.
  
flat-volumes = yes
+
Nel caso la modalità flat-volumes non funzioni, è probabile che qualche altra applicazione stia richiedendo il livello volume al 100% durante la riproduzione.
  
e modificando la riga in:
+
Se non ri riesce a risolvere il problema, è possibile disabilitare la modalità ''flat volumes'':
 
+
{{hc|/etc/pulse/daemon.conf|<nowiki>
flat-volumes = no
+
flat-volumes = no
 +
</nowiki>}}
  
 
Riavviare poi Pulseaudio con:
 
Riavviare poi Pulseaudio con:
  pulseaudio --kill && pulseaudio --start
+
  $ pulseaudio -k && pulseaudio --start
  
 
Quando Pulseaudio si sarà riavviato, le applicazioni non altereranno più il volume di sistema e faranno riferimento ai propri livelli di volume.
 
Quando Pulseaudio si sarà riavviato, le applicazioni non altereranno più il volume di sistema e faranno riferimento ai propri livelli di volume.
 +
 +
{{Nota|Una precedente installazione e successiva rimozione di un equalizzatore per PulseAudio potrebbe lasciare tracce in {{ic|~/.pulse/default.pa}}, che potrebbero causare problemi di volume impostato al massimo. Si commentino le parti relative secondo le proprie necessità.}}
  
 
===Microfono non funzionante su ThinkPad T400/T500/T420===
 
===Microfono non funzionante su ThinkPad T400/T500/T420===
Line 497: Line 639:
  
 
===Output monocanale su M-Audio Audiophile 2496===
 
===Output monocanale su M-Audio Audiophile 2496===
Si aggiunganno le seguenti righe a {{ic|/etc/pulseaudio/default.pa}}
+
Si aggiunganno le seguenti righe a {{ic|/etc/pulse/default.pa}}:
{{bc|<nowiki>
+
{{hc|/etc/pulse/default.pa|<nowiki>
 
load-module module-alsa-sink sink_name=delta_out device=hw:M2496 format=s24le channels=10 channel_map=left,right,aux0,aux1,aux2,aux3,aux4,aux5,aux6,aux7
 
load-module module-alsa-sink sink_name=delta_out device=hw:M2496 format=s24le channels=10 channel_map=left,right,aux0,aux1,aux2,aux3,aux4,aux5,aux6,aux7
 
load-module module-alsa-source source_name=delta_in device=hw:M2496 format=s24le channels=12 channel_map=left,right,aux0,aux1,aux2,aux3,aux4,aux5,aux6,aux7,aux8,aux9
 
load-module module-alsa-source source_name=delta_in device=hw:M2496 format=s24le channels=12 channel_map=left,right,aux0,aux1,aux2,aux3,aux4,aux5,aux6,aux7,aux8,aux9
Line 508: Line 650:
 
Se si ottiene del rumore di fondo nelle registrazioni con skype, gnome-sound-recorder, arecord eccetera, allora la frequenza di campionamento della scheda audio non è corretta. Per risolvere il problema, dobbiamo impostare la frequenza di campionamento in {{ic|/etc/pulse/daemon.conf}}.
 
Se si ottiene del rumore di fondo nelle registrazioni con skype, gnome-sound-recorder, arecord eccetera, allora la frequenza di campionamento della scheda audio non è corretta. Per risolvere il problema, dobbiamo impostare la frequenza di campionamento in {{ic|/etc/pulse/daemon.conf}}.
  
====1. Determinare le schede audio installate nel sistema====
+
====Determinare le schede audio installate nel sistema (1/5)====
 
È necessario che {{Pkg|alsa-utils}} e i relativi pacchetti siano installati:
 
È necessario che {{Pkg|alsa-utils}} e i relativi pacchetti siano installati:
$ arecord --list-devices
+
 
output:
+
{{hc|$ arecord --list-devices|
{{bc|
+
 
   **** List of CAPTURE Hardware Devices ****
 
   **** List of CAPTURE Hardware Devices ****
 
   card 0: Intel [HDA Intel], device 0: ALC888 Analog [ALC888 Analog]
 
   card 0: Intel [HDA Intel], device 0: ALC888 Analog [ALC888 Analog]
Line 524: Line 665:
 
La scheda audio è {{ic|hw:0,0}}.
 
La scheda audio è {{ic|hw:0,0}}.
  
====2. Determinare la frequenza di campionamento della scheda audio====
+
====Determinare la frequenza di campionamento della scheda audio (2/5)====
arecord -f dat -r 60000 -D hw:0,0 -d 5 test.wav
+
{{hc| arecord -f dat -r 60000 -D hw:0,0 -d 5 test.wav|<nowiki>
output:
+
{{bc|<nowiki>
+
 
   "Recording WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 60000 Hz, Stereo
 
   "Recording WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 60000 Hz, Stereo
 
   Warning: rate is not accurate (requested = 60000Hz, got = 96000Hz)
 
   Warning: rate is not accurate (requested = 60000Hz, got = 96000Hz)
 
   please, try the plug plugin
 
   please, try the plug plugin
 
</nowiki>}}
 
</nowiki>}}
 +
 
Si noti il {{ic|1=got = 96000Hz}}, che indica la frequenza di campionamento massima supportata dalla scheda audio.
 
Si noti il {{ic|1=got = 96000Hz}}, che indica la frequenza di campionamento massima supportata dalla scheda audio.
  
====3. Impostare la frequenza di campionamento nella configurazione di Pulseaudio====
+
====Impostare la frequenza di campionamento nella configurazione di Pulseaudio (3/5)====
La frequenza di campionamento predefinita in Pulseaudio è:
+
La frequenza di campionamento predefinita in Pulseaudio è ottenibile con:
grep "sample-rate" /etc/pulse/daemon.conf
+
output:
+
; default-sample-rate = 44100
+
  
È 44100 ed è disabilitata. Si imposti ora la frequenza di campionamento desiderata con il comando seguente:
+
{{hc|$ grep "default-sample-rate" /etc/pulse/daemon.conf|<nowiki>
  su -c "sed 's/; default-sample-rate = 44100/default-sample-rate = 96000/g' -i /etc/pulse/daemon.conf"
+
; default-sample-rate = 44100
Si verifichi l'avvenuta applicazione delle modifiche:
+
</nowiki>}}
  grep "sample-rate" /etc/pulse/daemon.conf
+
 
output:
+
È pari a {{ic|44100 Hz}} ed è disabilitata. Si imposti ora la frequenza di campionamento desiderata con il comando seguente:
  default-sample-rate = 96000
+
 
Fatto.
+
  # sed 's/; default-sample-rate = 44100/default-sample-rate = 96000/g' -i /etc/pulse/daemon.conf
 +
 
 +
====Riavviare Pulseaudio per applicare i cambiamenti(4/5)====
 +
  $ pulseaudio -k
 +
  $ pulseaudio --start
  
====4. Riavviare Pulseaudio per applicare i cambiamenti====
+
====Effettuare una prova registrando e poi ascoltando la registrazione (5/5)====
pulseaudio --kill
+
  $ arecord -f cd -d 10 test-mic.wav
pulseaudio --start
+
====5. Effettuare una prova registrando e poi ascoltando la registrazione====
+
  arecord -f cd -d 10 test-mic.wav
+
 
Dopo 10 secondi, riprodurre la registrazione:
 
Dopo 10 secondi, riprodurre la registrazione:
  aplay test-mic.wav
+
  $ aplay test-mic.wav
 
Il problema dovrebbe essere stato risolto.
 
Il problema dovrebbe essere stato risolto.
  
Line 564: Line 702:
 
'''Non aggiungere quanto segue al proprio''' {{ic|/etc/bluetooth/audio.conf}}:
 
'''Non aggiungere quanto segue al proprio''' {{ic|/etc/bluetooth/audio.conf}}:
  
 +
{{hc|/etc/bluetooth/audio.conf|<nowiki>
 
  [General]
 
  [General]
 
  Enable=Socket
 
  Enable=Socket
 +
</nowiki>}}
  
Se si hanno problemi con A2DP e Pulseaudio 2.99 assicurarsi di aver installato la libreria SBC:
+
Se si hanno problemi con A2DP e Pulseaudio 2.99 assicurarsi di aver installato la libreria {{Pkg|sbc}}:
 
+
pacman -S sbc
+
  
 
===Il subwoofer smette di funzionare alla fine della riproduzione di una canzone===
 
===Il subwoofer smette di funzionare alla fine della riproduzione di una canzone===
Line 591: Line 729:
 
  $ alsamixer
 
  $ alsamixer
  
Si prema {{Keypress|F6}} e si selezioni la propria scheda audio (es. {{ic|HDA Intel}}. Ora si prema {{Keypress|F5}} per mostrare tutte le voci. Si cerchi la voce {{ic|Input Source}} e la si modifichi con l'ausilio dei tasti freccia.
+
Si prema {{ic|F6}} e si selezioni la propria scheda audio (es. {{ic|HDA Intel}}. Ora si prema {{ic|F5}} per mostrare tutte le voci. Si cerchi la voce {{ic|Input Source}} e la si modifichi con l'ausilio dei tasti freccia.
  
 
Si verifichi quindi l'utilizzo del microfono corretto.
 
Si verifichi quindi l'utilizzo del microfono corretto.
Line 607: Line 745:
 
Problema conosciuto (non sarà sistemato): https://bugs.launchpad.net/ubuntu/+source/pulseaudio/+bug/223133
 
Problema conosciuto (non sarà sistemato): https://bugs.launchpad.net/ubuntu/+source/pulseaudio/+bug/223133
  
Se non viene riprodotto alcun suono sotto un certo livello di volume, si modifichi il file {{ic|/etc/pulse/default.pa}}, cambiando:
+
Se non viene riprodotto alcun suono sotto un certo livello di volume, si passi {{ic|1=ignore_dB=1}} come parametro al modulo udev-detect nel file {{ic|/etc/pulse/default.pa}}:
  
{{hc|/etc/pulse/default.pa|<nowiki>
 
load-module module-udev-detect
 
</nowiki>}}
 
 
in:
 
 
{{hc|/etc/pulse/default.pa|<nowiki>
 
{{hc|/etc/pulse/default.pa|<nowiki>
 
load-module module-udev-detect ignore_dB=1
 
load-module module-udev-detect ignore_dB=1
Line 625: Line 758:
 
set-source-volume 1 300000
 
set-source-volume 1 300000
 
</nowiki>}}
 
</nowiki>}}
 +
 +
===Scheduling realtime===
 +
 +
Se rtkit non funziona è possibile avviare PulseAudio con lo scheduling in realtime manualmente. Per farlo si aggiungano le seguenti righe ad {{ic|/etc/security/limits.conf}}:
 +
 +
@pulse-rt - rtprio 9
 +
@pulse-rt - nice -11
 +
 +
Sarà quindi necessario aggiungere il proprio utente al gruppo {{ic|pulse-rt}}:
 +
 +
# gpasswd -a <utente> pulse-rt
 +
 +
===Nessun suono dopo il resume dalla sospensione===
 +
 +
Se l'audio smette di funzionare dopo un resume, si provi a ricaricare PulseAudio eseguendo:
 +
 +
$ /usr/bin/pasuspender /bin/true
 +
 +
Il comando di cui sopra è preferibile all'uccisione e riavvio del server ({{ic|pulseaudio -k && pulseaudio --start}}), poichè non crea problemi alle applicazioni già in esecuzione.
 +
 +
Se le operazioni di cui sopra risolvono il problema, si potrebbe volerle automatizzare creando un file .service per systemd:
 +
 +
1. Si crei il template:
 +
 +
{{hc|/etc/systemd/system/resume-fix-pulseaudio@.service|<nowiki>
 +
[Unit]
 +
Description=Fix PulseAudio after resume from suspend
 +
After=suspend.target
 +
 +
[Service]
 +
User=%I
 +
Type=oneshot
 +
Environment="XDG_RUNTIME_DIR=/run/user/%U"
 +
ExecStart=/usr/bin/pasuspender /bin/true
 +
 +
[Install]
 +
WantedBy=suspend.target
 +
</nowiki>}}
 +
 +
2. Abilitarlo per il proprio account:
 +
 +
# systemctl enable resume-fix-pulseaudio@NOME_UTENTE.service
 +
 +
3. Riavviare systemd:
 +
 +
# systemctl --system daemon-reload
 +
 +
===Canali ALSA muti a causa di un collegamento/scollegamento improprio delle cuffie===
 +
 +
Se quando si collegano/scollegano le cuffie vengono impostati come muti i canali sbagliati in {{ic|alsamixer}} è possibile provare a commentare la seguente riga in {{ic|/etc/pulse/default.pa}}:
 +
 +
load-module module-switch-on-port-available
 +
 +
===Errore "invalid option" di pactl quando si specificano argomenti in formato percentuale negativo===
 +
 +
I comandi di {{ic|pactl}} che accettano percentuali negative come argomenti mostreranno l'errore in oggetto. Si utilizzi {{ic|--}} prima dell'argomento con valore negativo per disabilitarne il parsing. Esempio: {{ic|pactl set-sink-volume 1 -- -5%}}.
 +
 +
===Messaggio "Daemon already running"===
 +
 +
Su alcuni sistemi, PulseAudio potrebbe venir avviato più volte. In questi casi {{ic|journalctl}} mostrerà il seguente messaggio:
 +
 +
[pulseaudio] pid.c: Daemon already running.
 +
 +
Assicurarsi di utilizzare solo uno dei metodi per l'avvio automatico delle applicazioni. {{Pkg|pulseaudio}} include al suo interno i seguenti files:
 +
 +
* {{ic|/etc/X11/xinit/xinitrc.d/pulseaudio}}
 +
* {{ic|/etc/xdg/autostart/pulseaudio.desktop}}
 +
* {{ic|/etc/xdg/autostart/pulseaudio-kde.desktop}}
 +
 +
Si controllino anche i files e le directory dell'utente, come [[xinitrc (Italiano)|xinitrc]], {{ic|~/.config/autostart}} eccetera.
  
 
== Link esterni ==
 
== Link esterni ==
  
*[http://www.pulseaudio.org/wiki/PerfectSetup http://www.pulseaudio.org/wiki/PerfectSetup] - Una buona guida per avere una configurazione perfetta
 
 
*[http://www.alsa-project.org/main/index.php/Asoundrc http://www.alsa-project.org/main/index.php/Asoundrc] - Pagina del wiki di ALSA relativa ad .asoundrc
 
*[http://www.alsa-project.org/main/index.php/Asoundrc http://www.alsa-project.org/main/index.php/Asoundrc] - Pagina del wiki di ALSA relativa ad .asoundrc
 
*[http://www.pulseaudio.org/ http://www.pulseaudio.org/] - Sito ufficiale di Pulseaudio
 
*[http://www.pulseaudio.org/ http://www.pulseaudio.org/] - Sito ufficiale di Pulseaudio
 
*[http://www.pulseaudio.org/wiki/FAQ http://www.pulseaudio.org/wiki/FAQ] - Faq per Pulseaudio.
 
*[http://www.pulseaudio.org/wiki/FAQ http://www.pulseaudio.org/wiki/FAQ] - Faq per Pulseaudio.

Revision as of 17:47, 19 February 2014

Articoli correlati

PulseAudio è un sound server utilizzato comunemente da ambienti desktop come GNOME e KDE e funge da proxy per le applicaazioni che richiedano l'utilizzo dell'audio utilizzando componenti come ALSA od OSS. Dal momento che Alsa viene incluso in Arch Linux di default, i casi di utilizzo più comuni proposti di seguito coprono l'utilizzo di PulseAudio con Alsa.

Contents

Installazione

Esecuzione

Attenzione: Se si dispone di copie locali dei files di configurazione (client.conf, daemon.conf o default.pa in ~/.config/pulse, sarà necessario allinearle ai cambiamenti dei files situati in /etc/pulse, altrimenti PulseAudio potrebbe non avviarsi a causa di errori di configurazione.
Nota:
  • Pulseaudio richiede dbus per funzionare.
  • La maggior parte degli ambienti grafici avviano PulseAudio automaticamente.

Nel caso in cui PulseAudio non venisse automaticamente avviato all'avvio di X, può essere avviato con:

$ pulseaudio --start

PulseAudio può essere interrotto con:

$ pulseaudio -k

Equalizzatore

Le nuove versioni di PulseAudio dispongono di un equalizzatore a 10 bande integrato. Per utilizzarlo, si proceda come segue:

Caricamento dei moduli equalizer-sink e dbus-protocol

$ pactl load-module module-equalizer-sink
$ pactl load-module module-dbus-protocol

Installazione ed esecuzione del frontend grafico

Si installi il pacchetto python2-pyqt4 e si esegua:

$ qpaeq
Nota: Se qpaeq non ha effetto, si installi pavucontrol e si modifichi l'opzione "ALSA Playback on" in "FFT based equalizer on" mentre il player è in riproduzione.

Caricamento automatico dei moduli equalizer-sink e dbus-protocol al boot

Si modifichi il file /etc/pulse/default.pa, aggiungendo le righe seguenti:

### Load the intergrated pulseaudio equalizer module
load-module module-equalizer-sink
load-module module-dbus-protocol

Configurazione del backend

ALSA

Nota: I pacchetti opzionali sono richiesti solamente se si è su un sistema a 64bit e si vuole usufruire del sonoro su applicazioni a 32bit (come Wine).

Per le applicazioni che supportano ALSA ma non PulseAudio, si raccomanda l'installazione del plugin di PulseAudio per ALSA. Il pacchetto in questione contiene inoltre il file /etc/asound.conf, necessario affinchè ALSA utilizzi PulseAudio.

Per impedire alle applicazioni di usare l'emulazione OSS di ALSA bypassando così Pulseaudio (non consentendo così ad altri programmi di riprodurre suoni), assicurarsi che il modulo snd_pcm_oss non venga caricato al boot. Se è caricato (controllare con lsmod | grep oss), è possibile rimuoverlo con:

# rmmod snd_pcm_oss

ALSA / dmix senza che PulseAudio prenda possesso della scheda audio

Nota: Questa sezione descrive una configurazione alternativa, generalmente NON consigliabile.

Si potrebbe voler utilizzare ALSA direttamente nella maggior parte delle applicazioni e al tempo stesso utilizzarne delle altre che richiedono PulseAudio. I passi seguenti consentiranno a PulseAudio di utilizzare dmix senza che lo stesso debba prendere il controllo della scheda audio.

  • Si rimuova il pacchetto pulseaudio-alsa, che fornisce un layer di compatibilità tra le applicazioni ALSA e PulseAudio. Una volta fatto, tali applicazioni utilizzeranno ALSA direttamente senza passare per PulseAudio.
  • Si modifichi /etc/pulse/default.pa.
Si identifichino e decommentino le linee che effettuano il caricamento dei drivers per i backend e si aggiunga loro il parametro device come mostrato sotto. Si commentino poi le linee che caricano i moduli per l'autorilevamento.
load-module module-alsa-sink device=dmix
load-module module-alsa-source device=dsnoop
# load-module module-udev-detect
# load-module module-detect
  • Opzionale: Se si utilizza kdemultimedia-kmix, si potrebbe voler controllare il volume di ALSA invece che quello di PulseAudio:
$ echo export KMIX_PULSEAUDIO_DISABLE=1 > ~/.kde4/env/kmix_disable_pulse.sh
$ chmod +x ~/.kde4/env/kmix_disable_pulse.sh
  • Si riavvii il pc e si provi quindi ad eseguire applicazioni che utilizzano ALSA e PulseAudio contemporaneamente: il suono dovrebbe venir riprodotto simultaneamente da entrambe.
Si utilizzi quindi pavucontrol per regolare il volume di PulseAudio secondo le proprie necessità.

OSS

Ci sono diversi modi per fare in modo che programmi compatibili solo con OSS funzionino anche con PulseAudio:

ossp

Si installi il pacchetto ossp e si avvii il servizio osspd.

padsp wrapper (parte di PulseAudio)

I programmi che utilizzano OSS, possono funzionare con Pulseaudio se avviati con padsp:

$ padsp OSSprogram

Un paio di esempi:

$ padsp aumix
$ padsp sox foo.wav -t ossdsp /dev/dsp

E' anche possibile creare un wrapper, in questo modo:

/usr/local/bin/nome_programma
#!/bin/sh
exec padsp /usr/bin/OSSprogram "$@"

Assicurarsi che /usr/local/bin abbia la precedenza su /usr/bin nel vostro PATH.

Gstreamer

Per fare in modo che Gstreamer utilizzi PulseAudio è necessario installare il pacchetto gst-plugins-good oppure gstreamer0.10-good-plugins

OpenAL

OpenAL Soft dovrebbe utilizzare PulseAudio di default, ma in caso di necessità può essere manualmente configurato tramite

/etc/openal/alsoft.conf
drivers=pulse,alsa

libao

Modificare il file di configurazione di libao:

/etc/libao.conf
default_driver=pulse

Assicurarsi di rimuovere l'opzione dev=default del driver alsa o specificare il nome di un sink di PulseAudio o il relativo numero.

Nota: È possibile mantenere i valori di default di libao e lasciargli usare il driver alsa per l'output se si installa il pacchetto pulseaudio-alsa, poichè in quel caso il dispositivo ALSA di default sarebbe PulseAudio.

ESD

PulseAudio è un sostituto naturale di ESD. Se PulseAudio è avviato, i programmi compatibili con ESD dovrebbero essere in grado di riprodurre suono senza alcuna configurazione particolare.

Ambienti Desktop

General X11

Nota: Come è già stato detto in precedenza, è molto probabile che PulseAudio sia stato già lanciato automaticamente usando /etc/X11/xinit/xinitrc.d/pulseaudio oppure i files in /etc/xdg/autostart, se gli utenti hanno un DE installato.

Si verifichi se PulseAudio è in esecuzione:

$ ps aux | grep pulse
 facade  1794  0.0  0.0 360464  6532 ?        S<l  15:33  0:00 /usr/bin/pulseaudio --start
 facade  1827  0.0  0.0  68888  2608 ?        S    15:33  0:00 /usr/lib/pulse/gconf-helper

Se PulseAudio non è avviato e si sta utilizzando X, il seguente comando lo avvierà manualmente assieme ai plugins per X11 necessari:

$ start-pulseaudio-x11

Se non si utilizzano GNOME, KDE o XFCE e il proprio ~/.xinitrc non effettua il source degli scripts in /etc/X11/xinit/xinitrc.d (come avviene nel file d'esempio /etc/skel/.xinitrc), è possibile lanciare PulseAudio al boot aggiungendo la seguente linea al file ~/.xinitrc:

/usr/bin/start-pulseaudio-x11

GNOME

A partire da GNOME 3, PulseAudio si integra perfettamente in questo ambiente desktop, senza che sia necessaria alcuna configurazione supplementare.

KDE3

PulseAudio non è un sostituto naturale di aRts. Gli utenti di KDE3, non possono utilizzare PulseAudio.

Tuttavia, le ultime versioni di Pulseaudio, potrebbero funzionare.

Si veda: http://www.pulseaudio.org/wiki/PerfectSetup KDE 3 usa il sound server artsd, il quale può comunque essere configurato per usare Esound come backend. Si modifichi kcmartsrc (si scelga tra quello in /etc/kde o /usr/share/config per una configurazione valida per tutti gli utenti, oppure si scelga quello nella directory ~/.kde/share/config per applicare le modifiche solo per l'utente corrente) come segue:

[Arts]
Arguments=\s-F 10 -S 4096 -a esd -n -s 1 -m artsmessage -c  drkonqi -l 3 -f
NetworkTransparent=true
SuspendTime=1

KDE Plasma Workspaces e Qt4

Se si è installato PulseAudio, questo sarà usato dalle applicazioni KDE4/QT4. Per ulteriori informazioni consultare la pagina relativa a KDE nel wiki di Pulseaudio.

Il supporto a PulseAudio è stato integrato in KMix, il sound mixed di default di KDE.

Se si utilizza il backend GStreamer per Phonon, sarà necessario configurare lo stesso affinchè utilizzi PulseAudio installando gstreamer0.10-good-plugins.

Ad esempio, un utile suggerimento reperibile nella pagina di cui sopra, è quello di aggiungere load-module module-device-manager in /etc/pulse/default.pa.

Vi è inoltre un'alternativa a pavucontrol per KDE: kdeplasma-addons-applets-veromixAUR, disponibile su AUR.

Se KMix o Veromix non riescono a connettersi al server PulseAudio in fase di boot, potrebbe essere necessario modificare il file /etc/pulse/client.conf, cambiando autospawn = no in autospawn = yes.

Xfce

Le applicazioni avviate in Xfce possono usufruire di Pulseaudio. Per controllarne le impostazioni, si usi pavucontrol.

Applicazioni

Audacious

Audacious supporta Pulseaudio nativamente. Per usarlo, è necessario avviare Audacious e recarsi in: Audacious Preferences -> Audio -> Current Output plugin, quindi scegliere 'Pulseaudio Output Plugin'

Java/OpenJDK 6

Si crei un wrapper per l'eseguibile java usando padsp come si è visto alla pagina Audio Java con Pulseaudio.

Music Player Daemon (MPD)

È necessario configurare mpd affinché usi Pulseaudio. Si veda anche MPD/Tips and Tricks#MPD and PulseAudio.

Si noti comunque che quanto sopra potrebbe causare un bug che impedisce a PulseAudio di togliere il muto agli altoparlanti quando vengono rimosse cuffie o altri dispositivi audio.

MPlayer

MPlayer supporta l'output attraverso Pulseaudio specificando l'opzione "-ao pulse". È inoltre possibile configurarlo affinché venga usato in modo predefinito modificando ~/.mplayer/config per l'utente corrente o /etc/mplayer/mplayer.conf per applicare le modifiche a tutto il sistema.

/etc/mplayer/mplayer.conf
ao=pulse

Skype (solo x86_64)

Si installi lib32-libpulse dal repository multilib, altrimenti si riceverà l'errore "Problem with Audio Playback" quando si effettua una chiamata.

Risoluzione dei problemi

Niente suono dopo l'installazione

Dispositivo audio muto

Se non si sente nessun suono anche usando ALSA come dispositivo di default, potrebbe essere necessario togliere il mute dalla scheda audio. Per farlo, si dovrà lanciare alsamixer ed assicurarsi che ogni colonna abbia uno '00' verde sotto di essa (si prema m per abilitare/disabilitare il mute, dopo aver selezionato la colonna desiderata).

$ alsamixer -c 0
Nota: alsamixer non specifica quale dispositivo di output è quello di default. Una delle possibili cause della mancanza di suono dopo l'ìnstallazione di PulseAudio potrebbe proprio risiedere nell'erronea identificazione dell'output di default. Si provi ad installare pavucontrol e a controllare se è presente dell'output quando si riproduce un file .wav.

Modalità Auto-Mute

La modalità Auto-Mute potrebbe essere abilitata, ed è possibile disabilitarla usando alsamixer.

Si veda questa discussione per ulteriori informazioni.

Files di configurazione non corretti

Se, dopo aver avviato Pulseaudio, il sistema non riproduce alcun suono, potrebbe essere necessario eliminare il contenuto della directory ~/.pulse. Pulseaudio ricreerà quindi dei nuovi files di configurazione la prossima volta che verrà avviato.

Contenuti Flash

Dal momento che Flash non supporta PulseAudio direttamente, è consigliabile configurare ALSA per utilizzare la scheda audio virtuale fornita da PulseAudio.

In alternativa, è possibile installare libflashsupport-pulseAUR da AUR.

Nota: L'installazione del pacchetto potrebbe mandare in crash il plugin flash.

Nessuna scheda audio rilevata

Se Pulseaudio si avvia, si esegua pacmd list. Se non viene elencata nessuna scheda audio, assicurarsi che i propri dispositivi ALSA non siano in uso:

$ fuser -v /dev/snd/*
$ fuser -v /dev/dsp

Assicurarsi che utte le applicazioni che usano i dispositivi sopra riportati siano chiuse. prima di riavviare Pulseaudio.

Viene visualizzato solo il dispositivo "dummy output"

Questo comportamento potrebbe avere diverse cause, tra cui, la presenza di un file .asoundrc nella propria home che ha la precedenza rispetto all'/etc/asound.conf.

Il file personale dell'utente è modificato dal tool asoundconf} o dal relativo frontend grafico asoundconf-gtk (quest'ultimo è chiamato "Default sound card" nel menù applicazioni), non appena lo si avvia.

È possibile inibire gli effetti del file .asoundrc commentando l'ultima linea, in questo modo:

.asoundrc
# </home/nomeutente/.asoundrc.asoundconf>	

È anche possibile che qualche programma abbia accesso esclusivo al dispositivo audio. Si provi il seguente comando:

# fuser -v /dev/snd/*

Se l'output è simile a questo,

# fuser -v /dev/snd/*
                     USER      PID  ACCESS COMMAND
/dev/snd/controlC0:  root        931 F....  timidity
                     bob        1195 F....  panel-6-mixer
/dev/snd/controlC1:  bob        1195 F....  panel-6-mixer
                     bob        1215 F....  pulseaudio
/dev/snd/pcmC0D0p:   root        931 F...m  timidity
/dev/snd/seq:        root        931 F....  timidity
/dev/snd/timer:      root        931 f....  timidity

timidity potrebbe star impedendo a PulseAudio di accedere al dispositivo audio. Solitamente, uccidere il processo di timidity risolve il problema

Questo problema potrebbe anche essere causato da un conflitto tra FluidSynth e PulseAudio, come riportato in questo thread. E' necessario rimuovere FluidSynth:

# pacman -Rnsc fluidsynth

KDE4

È possibile che un altro dispositivo sia impostato come preferito da phonon. Assicurarsi che ogni impostazione ad esso relativa abbia il dispositivo di output preferito in cima alla lista, e si controlli la tab "playback streams" in kmix per verificare che le applicazioni lo stiano utilizzando.

Per visualizzare il dispositivo audio predefinito, si esegua:

$ pactl stat

Per l'elenco dei dispositivi audio disponibili, eseguire:

$ pactl list

Per impostare un dispositivo audio come predefinito si utilizzi il comando pacmd o si modifichi /etc/pulse/default.pa:

set-default-sink alsa_output.analog-stereo

Errore "Failed to create sink input: sink is suspended"

Se non viene riprodotto alcun suono e journalctl -b riceve molti errori relativi ad un sink sospeso, si effettui il backup e poi si rimuovano le cartelle di PulseAudio relative al proprio utente:

$ rm -r ~/.pulse ~/.pulse-cookie

Nessun output audio HDMI se si spegne il monitor per un certo periodo di tempo

Il monitor è collegato tramite HDMI/DisplayPort, e il jack audio è collegato all'uscita cuffie sul monitor, ma PulseAudio lo considera scollegato.

pactl list sinks
...
hdmi-output-0: HDMI / DisplayPort (priority: 5900, not available)
...

Il che non consente la riproduzione del suono dall'uscita HDMI. È possibile ovviare al problema cambiando momentaneamente TTY e tornando a quella utilizzata in precedenza. Il problema affligge gli utenti con schede video ATI/Nvidia/Intel.

Non è possibile aggiornare la configurazione della scheda audio da pavucontrol

pavucontrol è un utile tool grafico per configurare PulseAudio. Nella scheda "Configuration" è possibile scegliere un profilo diverso per ogni dispositivo di riproduzione, come Stereo analogico, output digitale (IEC958), HDMI 5.1 Surround eccetera.

Può tuttavia verificarsi un crash del demone Pulse con conseguente autoriavvio se si tenta di scegliere un profilo diverso per una scheda audio, senza che le modifiche vengano salvate. Nel caso, si utilizzi il tool grafico paprefs e controllare se sotto la scheda "Simultaneous Output" sia presente un dispositivo simultaneo virtuale: se lo stesso è abilitato, non si sarà in grado di cambiare le impostazioni da pavucontrol. Si disabiliti momentaneamente il dispositivo deselezionando la relativa casella, si effettuino le modifiche in pavucontrol e si riabiliti il dispositivo.

Output simultaneo verso più schede audio / dispositivi

L'output simultaneo verso dispositivi differenti è una funzionalità molto utile: ad esempio è possibile inviare l'audio al proprio ricevitore A/V tramite l'uscita HDMI della propria scheda video e allo stesso tempo inviarlo all'uscita analogica posta sulla propria scheda madre.

La procedura è molto meno problematica rispetto al passato (nell'esempio che segue, verrà utilizzato il DE GNOME).

Utilizzando paprefs, si selezioni "Add virtual output device for simultaneous output on all local sound cards", posto sotto la scheda "Simultaneous Output" quindi, dalle impostazioni audio di GNOME, si selezioni l'uscita virtuale appena creata.

Se quanto sopra non funziona, aggiungere le seguenti righe al proprio ~/.asoundrc:

pcm.dsp {
 type plug
 slave.pcm "dmix"
}

L'output simultaneo verso più schede audio / dispositivi non funziona

Quanto segue è utile ad utenti che hanno differenti sorgenti sonore e vogliono riprodurle su sinks/output differenti. Un caso d'uso potrebbe essere il riprodurre simultaneamente musica e la voce di una chat, redirigendo la musica agli altoparlanti (in questo caso l'uscita Digital S/PDIF) e la voce alle cuffie (Analog).

PulseAudio non riesce sempre a rilevare la configurazione descritta sopra. Se si è certi che la propria scheda audio supporti questa funzionalità e non viene visualizzata la relativa opzione nei profili di pavucontrol o veromix, potrebbe essere necessario creare un file di configurazione per la propria scheda.

Nello specifico, si dovrà creare un profilo per la propria scheda. Il procedimento può essere diviso in due parti:

  • Creazione della regola di udev per costringere PulseAudio a scegliere il file di configurazione personalizzato per la scheda audio in uso
  • Creazione del file di configurazione

Si crei una regola udev per PulseAudio:

Nota: Quanto segue è un esempio valido per una Asus Xonar Essence STX. Si legga la pagina del wiki relativa ad udev per trovare i valori corretti.
Nota: La regola deve avere un numero più basso rispetto a quella originale per avere effetto.
/usr/lib/udev/rules.d/90-pulseaudio-Xonar-STX.rules
ACTION=="change", SUBSYSTEM=="sound", KERNEL=="card*", \
ATTRS{subsystem_vendor}=="0x1043", ATTRS{subsystem_device}=="0x835c", ENV{PULSE_PROFILE_SET}="asus-xonar-essence-stx.conf" 

Si crei quindi un nuovo profilo. È possibile partire da zero ed arricchirlo man mano, oppure utilizzare il profilo originale rinominandolo e facendo le dovute modifiche.

Per abilitare sink multipli su una Asus Xonar Essence STX, si scriva quanto segue:

Nota: asus-xonar-essence-stx.conf comprende tutto il codice/mappature di default.conf.
/usr/share/pulseaudio/alsa-mixer/profile-sets/asus-xonar-essence-stx.conf
[Profile analog-stereo+iec958-stereo]
description = Analog Stereo Duplex + Digital Stereo Output
input-mappings = analog-stereo
output-mappings = analog-stereo iec958-stereo
skip-probe = yes

Quanto sopra configurerà la vostra Asus Xonar Essence STX con i profili di default e consente l'aggiunta di un profilo personalizzato per l'utilizzo con più sink simultanei.

Sarà necessario creare un ulteriore profilo nel file di configurazione se si vorrà usufruire della stessa funzionalità con output AC3 Digital 5.1.

Si legga questo articolo sui profili di PulseAudio.

Disabilitare il supporto ai dispositivi Bluetooth

Se non si utilizzano dispositivi Bluetooth, il journal di sistema potrebbe contenere il seguente errore:

bluez5-util.c: GetManagedObjects() failed: org.freedesktop.DBus.Error.ServiceUnknown: The name org.bluez was not provided by any .service files

Per disabilitare il supporto Bluetooth in PulseAudio, assicurarsi che le seguenti linee dei file di configurazione ~/.config/pulse/default.pa o /etc/pulse/default.pa siano commentate:

~/.config/pulse/default.pa
### Automatically load driver modules for Bluetooth hardware
#.ifexists module-bluetooth-policy.so
#load-module module-bluetooth-policy
#.endif

#.ifexists module-bluetooth-discover.so
#load-module module-bluetooth-discover
#.endif

Problemi di riproduzione con cuffie Bluetooth

Alcuni utenti riferiscono di enormi ritardi nella riproduzione del suono, o addirittura assenza di suono quando la connessione bluetooth rimane inattiva. Ciò è causato da idle-suspend-module, che mette a risposo automaticamente le sinks/sources relative. Visto che questo modulo causa problemi con i dispositivi bluetooth, può essere disattivato.

Per disabilitare il modulo in questione, assicurarsi che le seguenti linee dei file di configurazione ~/.config/pulse/default.pa o /etc/pulse/default.pa siano commentate:

~/.config/pulse/default.pa
### Automatically suspend sinks/sources that become idle for too long
#load-module module-suspend-on-idle

Si riavvii PulseAudio per applicare i cambiamenti.

Switch automatico agli headset Bluetooth o USB

Si aggiunga la seguente riga al file /etc/pulse/default.pa:

/etc/pulse/default.pa
 # automatically switch to newly-connected devices
 load-module module-switch-on-connect

Pulse sovrascrive le impostazioni di Alsa

Pulseaudio è solito sovrascrivere le impostazioni di Alsa; ad esempio quando si ripristinano i livelli del volume all'avvio, anche se il demone alsa è attivo. Dal momento che non sembrano esserci altri modi per limitare questo comportamento, è necessario ricorrere ad un workaround che ripristini nuovamente le impostazioni di Alsa dopo che Pulseaudio si è avviato.

Si aggiunga il seguente comando a .xinitrc, .bash_profile o a qualsiasi altro file si utilizzi per l'autostart delle applicazioni:

restore_alsa() {
 while [ -z "$(pidof pulseaudio)" ]; do
  sleep 0.5
 done
 alsactl -f /var/lib/alsa/asound.state restore 
}
restore_alsa &

Impedire il riavvio di PulseAudio una volta ucciso

Potrebbe capitare di voler temporaneamente disabilitare il riavvio automatico di PulseAudio; per farlo si aggiunga la seguente riga al file ~/.pulse/client.conf:

autospawn=no

Avvio del demone fallito

Si provi a ripristinare la configurazione di Pulseaudio, in questo modo:

$ rm -rf /tmp/pulse* ~/.pulse*
$ pulseaudio -k
$ pulseaudio --start

Se il server PulseAudio non è in esecuzione ma si ottiene comunque l'errore "User-configured server at ... refusing to start/autospawn" potrebbe esserci un problema con le impostazioni di PulseAudio causato da un precedente login. Si individuino eventuali vecchie proprietà attribuite alla finestra root di X11 utilizzando pax11publish -d. Se ve ne sono, le si rimuova con pax11publish -r prima di riavviare il server. Questo genere di pulizia manuale è sempre richiesta in caso si utilizzi LXDM, in quanto lo stesso non riavvia il server X dopo il logout. Si veda a tal proposito LXDM#PulseAudio.

Problema con inotify

Se quanto sopra non funziona, verificare la presenza di un errore simile al seguente:

$ pulseaudio -vvvv
E: [pulseaudio] module-udev-detect.c: You apparently ran out of inotify watches, probably because Tracker/Beagle took them all away. I wished people would do their homework first and fix inotify before using it for watching whole directory trees which is something the current inotify is certainly not useful for. Please make sure to drop the Tracker/Beagle guys a line complaining about their broken use of inotify.

In questo caso si sono esauriti i watch di inotify.

È possibile risolvere il problema eseguendo:

# echo 100000 > /proc/sys/fs/inotify/max_user_watches
Per rendere la modifica permanente, si modifichi
/etc/sysctl.d/99-sysctl.conf
 # Increase inotify max watches per user
 fs.inotify.max_user_watches = 100000

Artefatti sonori, audio intermittente o gracchiante

La nuova implementazione del server Pulseaudio usa uno scheduling audio basato su timer, invece di usare l'approccio traduzionale basato sugli interrupt. Lo scheduling basato su timer potrebbe causare problemi con alcuni driver ALSA, anche altri potrebbero dare problemi se lo si disattiva, perciò si agisca in base a come si comporta il proprio sistema.

Per disattivarlo, si aggiunga tsched=0 come parametro al modulo udev-detect in /etc/pulse/default.pa:

/etc/pulse/default.pa
 load-module module-udev-detect tsched=0

Poi si riavvii Pulseaudio:

$ pulseaudio -k
$ pulseaudio --start

Si compiano gli stessi passaggi a ritroso per abilitare lo scheduling basato su timer, se non è stato abilitato di default.

Se possibile, segnalare le schede audio con le quali si verifica il problema in questa pagina.

Impostare il numero di frammenti e la dimensione del buffer in PulseAudio

Ulteriori informazioni

Identificare i parametri della scheda audio in uso (1/4)

Si eseguano i seguenti comandi bash per individuare le impostazioni di buffering della propria scheda audio:

$ echo autospawn = no >> ~/.pulse/client.conf
$ pulseaudio -k
$ LANG=C timeout --foreground -k 10 -s kill 10 pulseaudio -vvvv 2>&1 | grep device.buffering -B 10
$ sed -i '$d' ~/.pulse/client.conf

Per ogni scheda audio identificata da PulseAudio si avrà un output simile al seguente:

I: [pulseaudio] source.c:     alsa.long_card_name = "HDA Intel at 0xfa200000 irq 46"
I: [pulseaudio] source.c:     alsa.driver_name = "snd_hda_intel"
I: [pulseaudio] source.c:     device.bus_path = "pci-0000:00:1b.0"
I: [pulseaudio] source.c:     sysfs.path = "/devices/pci0000:00/0000:00:1b.0/sound/card0"
I: [pulseaudio] source.c:     device.bus = "pci"
I: [pulseaudio] source.c:     device.vendor.id = "8086"
I: [pulseaudio] source.c:     device.vendor.name = "Intel Corporation"
I: [pulseaudio] source.c:     device.product.name = "82801I (ICH9 Family) HD Audio Controller"
I: [pulseaudio] source.c:     device.form_factor = "internal"
I: [pulseaudio] source.c:     device.string = "front:0"
I: [pulseaudio] source.c:     device.buffering.buffer_size = "768000"
I: [pulseaudio] source.c:     device.buffering.fragment_size = "384000"

Si prenda nota dei valori buffer_size e fragment_size per la scheda audio in uso.

Si calcolino la dimensione ed il numero di frammenti in millisecondi (2/4)

La frequenza di campionamento di default in PulseAudio e i bit utilizzati corrispondono rispettivamente a 44100 Hz e 16 bit.

Utilizzando questi valori, il bitrate da impostare corrisponde a 44100 * 16 = 705600 bit al secondo, oppure 1411200 b/s in caso si utilizzino due canali (stereo).

Utilizziamo i valori ottenuti nel passaggio precedente:

device.buffering.buffer_size = "768000" => 768000/1411200 = 0.544217687075s = 544 ms
device.buffering.fragment_size = "384000" => 384000/1411200 = 0.272108843537s = 272 ms

Modificare il file di configurazione di PulseAudio (3/4)

/etc/pulse/daemon.conf
; default-fragments = X
; default-fragment-size-msec = Y

Nel passagio precedente si è calcolata la dimensione del frammento. Il numero di frammenti è dato da buffer_size / fragment_size che nel nostro caso (544/272) è 2.

Si modifichino quindi le righe di cui sopra utilizzando i risultati ottenuti:

/etc/pulse/daemon.conf
; default-fragments = '''272'''
; default-fragment-size-msec = '''2'''

Riavviare il demone PulseAudio (4/4)

$ pulseaudio -k
$ pulseaudio --start

Per ulteriori informazioni: kwevej sul forum di Linux Mint

Il suono arriva in ritardo

Questo problema è causato da una dimensione non corretta dei buffer. Si modifichi /etc/pulse/daemon.conf.

Si eliminino eventuali modifiche alle voci riportate di seguito e, se il problema persiste, decommentarle modificarle in questo modo:

/etc/pulse/daemon.conf
default-fragment-size-msec = 5	
default-fragments = 8
default-fragment-size-msec = 5

Suono intermittente e distorto

La scelta di una frequenza di campionamento errata in /etc/pulse/daemon.conf, può causare un suono intermittente. Si effettui la seguente modifica:

/etc/pulse/daemon.conf
default-sample-rate = 48000

E si riavvii il server Pulseaudio.

Se il suono è intermittente in applicazioni che usano openAL, si dovrebbe cambiare la frequenza di campionamento anche in /etc/openal/alsoft.conf:

frequency = 48000

Impostare il volume del canale PCM sopra 0dB può causare il clipping del segnale audio. Eseguire alsamixer -c0 permetterà di capire se questo è il problema.

I controlli del volume non funzionano correttamente

Si potrebbe voler controllare:

/usr/share/pulseaudio/alsa-mixer/paths/analog-output.conf.common

Poiché pulseaudio ha una maggior raggio di incremento (0-65535, per essere precisi), è possibile che il volume non venga regolato correttamente usando alsamixer o amixer. Si provino ad usare valori più grandi quando si cambia il volume (es: amixer set Master 655+).

Il livello del volume si alza ogni volta che una nuova applicazione viene avviata

Potrebbe capitare che, a causa della modalità flat volumes di PulseAudio, la modifica del volume in applicazioni specifiche abbia effetto anche sul volume generale di sistema. Al posto di disabilitare tale modalità, gli utenti KDE dovrebbero provare ad abbassare il volume delle notifiche di sistema in Impostazioni di sistema -> Notifiche delle applicazioni e di sistema -> Gestisci le notifiche, tab Impostazioni di riproduzione. La modifica del livello volume Event Sounds in KMix o altri mixer non sortirà l'effetto desiderato in questo caso.

Nel caso la modalità flat-volumes non funzioni, è probabile che qualche altra applicazione stia richiedendo il livello volume al 100% durante la riproduzione.

Se non ri riesce a risolvere il problema, è possibile disabilitare la modalità flat volumes:

/etc/pulse/daemon.conf
flat-volumes = no

Riavviare poi Pulseaudio con:

$ pulseaudio -k && pulseaudio --start

Quando Pulseaudio si sarà riavviato, le applicazioni non altereranno più il volume di sistema e faranno riferimento ai propri livelli di volume.

Nota: Una precedente installazione e successiva rimozione di un equalizzatore per PulseAudio potrebbe lasciare tracce in ~/.pulse/default.pa, che potrebbero causare problemi di volume impostato al massimo. Si commentino le parti relative secondo le proprie necessità.

Microfono non funzionante su ThinkPad T400/T500/T420

Si esegua:

alsamixer -c 0

e si porti al massimo/si tolga il mute dal controllo "Internal Mic".

Anche se il device associato viene visualizzato tramite il comando

arecord -l

potrebbe essere ancora necessario sistemare le impostazioni, dal momento che il microfono e il jack audio sono "duplexed". Si imposti il valore dell'audio interno in pavucontrol ad "Analog Stereo Duplex".

Microfono non funzionante su Acer Aspire One

Si installi pavucontrol, si scolleghino i canali del microfono e si imposti a 0 quello di sinistra. Ora si dovrebbe essere in grado di utilizzare il microfono. Riferimenti: http://getsatisfaction.com/jolicloud/topics/deaf_internal_mic_on_acer_aspire_one#reply_2108048

Output monocanale su M-Audio Audiophile 2496

Si aggiunganno le seguenti righe a /etc/pulse/default.pa:

/etc/pulse/default.pa
load-module module-alsa-sink sink_name=delta_out device=hw:M2496 format=s24le channels=10 channel_map=left,right,aux0,aux1,aux2,aux3,aux4,aux5,aux6,aux7
load-module module-alsa-source source_name=delta_in device=hw:M2496 format=s24le channels=12 channel_map=left,right,aux0,aux1,aux2,aux3,aux4,aux5,aux6,aux7,aux8,aux9
set-default-sink delta_out
set-default-source delta_in

Rumore statico durante la registrazione da microfono

Se si ottiene del rumore di fondo nelle registrazioni con skype, gnome-sound-recorder, arecord eccetera, allora la frequenza di campionamento della scheda audio non è corretta. Per risolvere il problema, dobbiamo impostare la frequenza di campionamento in /etc/pulse/daemon.conf.

Determinare le schede audio installate nel sistema (1/5)

È necessario che alsa-utils e i relativi pacchetti siano installati:

$ arecord --list-devices
   **** List of CAPTURE Hardware Devices ****
   card 0: Intel [HDA Intel], device 0: ALC888 Analog [ALC888 Analog]
     Subdevices: 1/1
     Subdevice #0: subdevice #0
   card 0: Intel [HDA Intel], device 2: ALC888 Analog [ALC888 Analog]
     Subdevices: 1/1
     Subdevice #0: subdevice #0

La scheda audio è hw:0,0.

Determinare la frequenza di campionamento della scheda audio (2/5)

 arecord -f dat -r 60000 -D hw:0,0 -d 5 test.wav
  "Recording WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 60000 Hz, Stereo
  Warning: rate is not accurate (requested = 60000Hz, got = 96000Hz)
  please, try the plug plugin

Si noti il got = 96000Hz, che indica la frequenza di campionamento massima supportata dalla scheda audio.

Impostare la frequenza di campionamento nella configurazione di Pulseaudio (3/5)

La frequenza di campionamento predefinita in Pulseaudio è ottenibile con:

$ grep "default-sample-rate" /etc/pulse/daemon.conf
; default-sample-rate = 44100

È pari a 44100 Hz ed è disabilitata. Si imposti ora la frequenza di campionamento desiderata con il comando seguente:

# sed 's/; default-sample-rate = 44100/default-sample-rate = 96000/g' -i /etc/pulse/daemon.conf

Riavviare Pulseaudio per applicare i cambiamenti(4/5)

$ pulseaudio -k
$ pulseaudio --start

Effettuare una prova registrando e poi ascoltando la registrazione (5/5)

$ arecord -f cd -d 10 test-mic.wav

Dopo 10 secondi, riprodurre la registrazione:

$ aplay test-mic.wav

Il problema dovrebbe essere stato risolto.

Il mio dispositivo bluetooth viene rilevato ma non riproduce alcun suono

Si faccia riferimento a questo articolo nella sezione Bluetooth

A partire da PulseAudio 2.99 e bluez 4.101 è consigliabile evitare l'utilizzo dell'interfaccia Socket. Non aggiungere quanto segue al proprio /etc/bluetooth/audio.conf:

/etc/bluetooth/audio.conf
 [General]
 Enable=Socket

Se si hanno problemi con A2DP e Pulseaudio 2.99 assicurarsi di aver installato la libreria sbc:

Il subwoofer smette di funzionare alla fine della riproduzione di una canzone

Problema noto: https://bugs.launchpad.net/ubuntu/+source/pulseaudio/+bug/494099

Per risolvere, modificare /etc/pulse/daemon.conf e abilitare l'opzione enable-lfe-remixing:

/etc/pulse/daemon.conf
enable-lfe-remixing = yes

Pulseaudio utilizza il microfono sbagliato

Se Pulseaudio utilizza il microfono sbagliato e si è già provato a modificare il dispositivo di input tramite pavucontrol, è consigliabile controllare le impostazioni di alsamixer. Talvolta può accadere che pavucontrol non imposti correttamente i dispositivi di input.


Si esegua:

$ alsamixer

Si prema F6 e si selezioni la propria scheda audio (es. HDA Intel. Ora si prema F5 per mostrare tutte le voci. Si cerchi la voce Input Source e la si modifichi con l'ausilio dei tasti freccia.

Si verifichi quindi l'utilizzo del microfono corretto.

Suono intermittente quando si usa il profilo Analog Surround Sound

Il canale LFE (low-frequency effects) non viene remixato di default. Per abilitare questa funzionalità si modifichi /etc/pulse/daemon.conf:

/etc/pulse/daemon.conf
enable-lfe-remixing = yes

Assenza di suono sotto un certo livello di volume

Problema conosciuto (non sarà sistemato): https://bugs.launchpad.net/ubuntu/+source/pulseaudio/+bug/223133

Se non viene riprodotto alcun suono sotto un certo livello di volume, si passi ignore_dB=1 come parametro al modulo udev-detect nel file /etc/pulse/default.pa:

/etc/pulse/default.pa
load-module module-udev-detect ignore_dB=1

Basso livello volume del microfono integrato

Se il volume del microfono integrato del vostro notebook è troppo basso, si inserisca alla fine del file:

/etc/pulse/default.pa
set-source-volume 1 300000

Scheduling realtime

Se rtkit non funziona è possibile avviare PulseAudio con lo scheduling in realtime manualmente. Per farlo si aggiungano le seguenti righe ad /etc/security/limits.conf:

@pulse-rt - rtprio 9
@pulse-rt - nice -11

Sarà quindi necessario aggiungere il proprio utente al gruppo pulse-rt:

# gpasswd -a <utente> pulse-rt

Nessun suono dopo il resume dalla sospensione

Se l'audio smette di funzionare dopo un resume, si provi a ricaricare PulseAudio eseguendo:

$ /usr/bin/pasuspender /bin/true

Il comando di cui sopra è preferibile all'uccisione e riavvio del server (pulseaudio -k && pulseaudio --start), poichè non crea problemi alle applicazioni già in esecuzione.

Se le operazioni di cui sopra risolvono il problema, si potrebbe volerle automatizzare creando un file .service per systemd:

1. Si crei il template:

/etc/systemd/system/resume-fix-pulseaudio@.service
[Unit]
Description=Fix PulseAudio after resume from suspend
After=suspend.target

[Service]
User=%I
Type=oneshot
Environment="XDG_RUNTIME_DIR=/run/user/%U"
ExecStart=/usr/bin/pasuspender /bin/true

[Install]
WantedBy=suspend.target

2. Abilitarlo per il proprio account:

# systemctl enable resume-fix-pulseaudio@NOME_UTENTE.service

3. Riavviare systemd:

# systemctl --system daemon-reload

Canali ALSA muti a causa di un collegamento/scollegamento improprio delle cuffie

Se quando si collegano/scollegano le cuffie vengono impostati come muti i canali sbagliati in alsamixer è possibile provare a commentare la seguente riga in /etc/pulse/default.pa:

load-module module-switch-on-port-available

Errore "invalid option" di pactl quando si specificano argomenti in formato percentuale negativo

I comandi di pactl che accettano percentuali negative come argomenti mostreranno l'errore in oggetto. Si utilizzi -- prima dell'argomento con valore negativo per disabilitarne il parsing. Esempio: pactl set-sink-volume 1 -- -5%.

Messaggio "Daemon already running"

Su alcuni sistemi, PulseAudio potrebbe venir avviato più volte. In questi casi journalctl mostrerà il seguente messaggio:

[pulseaudio] pid.c: Daemon already running.

Assicurarsi di utilizzare solo uno dei metodi per l'avvio automatico delle applicazioni. pulseaudio include al suo interno i seguenti files:

  • /etc/X11/xinit/xinitrc.d/pulseaudio
  • /etc/xdg/autostart/pulseaudio.desktop
  • /etc/xdg/autostart/pulseaudio-kde.desktop

Si controllino anche i files e le directory dell'utente, come xinitrc, ~/.config/autostart eccetera.

Link esterni