PulseAudio (Italiano)

From ArchWiki
Jump to: navigation, search

PulseAudio è un sound server utilizzato comunemente da ambienti desktop come GNOME e KDE e funge da proxy per le applicazioni 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.

Installazione

Configurazione

Si sarà notato che PulseAudio supporta vari moduli per estendere le proprie funzionalità. È possibile reperirne un elenco completo qui. Per abilitarli sarà sufficiente aggiungere load-module <module-name-from-list> a /etc/pulse/default.pa.

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:

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 --kill

Avvio automatico in ambienti desktop non supportati

Nota: Come già detto in precedenza, PulseAudio viene molto probabilmente già lanciato automaticamente tramite /etc/X11/xinit/xinitrc.d/pulseaudio o i file in /etc/xdg/autostart, se si è installato un DE.

Si controlli se PulseAudio è in esecuzione:

$ pgrep -af pulseaudio
369 /usr/bin/pulseaudio

Se PulseAudio non è avviato e si sta utilizzando X, il comando che segue ne consentirà l'avvio manuale, assieme a tutti i plugin richiesti:

$ start-pulseaudio-x11

Se non si sta utilizzando GNOME, KDE o Xfce e il proprio ~/.xinitrc non effettua il source degli script in /etc/X11/xinit/xinitrc.d, è possibile avviare PulseAudio al boot con:

~/.xinitrc
/usr/bin/start-pulseaudio-x11

Configurazione del backend

ALSA

Si installi pulseaudio-alsa dai repository ufficiali. Il pacchetto contiene il file /etc/asound.conf per impostare ALSA per l'utilizzo con PulseAudio.

Si installino inoltre lib32-libpulse e lib32-alsa-plugins se si è su un sistema a 64 bit e si utilizzano applicazioni multilib a 32 bit come Wine, Skype e Steam.

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 passino l'output a PulseAudio:

ossp

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

padsp wrapper

I programmi che utilizzano OSS, possono funzionare con Pulseaudio se avviati con padsp (incluso in PulseAudio):

$ 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

Si installi il pacchetto gst-plugins-good oppure gstreamer0.10-good-plugins se il programma in questione utilizza un'implementazione vecchia di GStreamer.

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.

Equalizzatore

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

Installazione componenti necessari

# pacman -S pulseaudio-equalizer

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

Applicazioni

QEMU

Per verificare se QEMU supporta PulseAudio, si esegua:

$ qemu-system-x86_64 -audio-help | grep 'Name: pa'

QEMU può utilizzare le variabili d'ambiente per la configurazione dell'audio:

export QEMU_AUDIO_DRV=pa
export QEMU_PA_SINK=alsa_output.pci-0000_04_01.0.analog-stereo.monitor
export QEMU_PA_SOURCE=input

Per altre opzioni di configurazione di PulseAudio, si esegua:

$ qemu-system-x86_64 -audio-help | grep '_PA_'

Per una lista dei driver emulati supportati si esegua:

$ qemu-system-x86_64 -soundhw help

Ad esempio, per utilizzare il driver ac97 per il sistema guest, si passi il parametro -soundhw ac97 a QEMU.

Nota:
  • Nel comando qemu-system-XXX, XXX specifica l'architettura del sistema guest. Per visualizzare un elenco di quelle disponibili, eseguire: ls /usr/bin/qemu-system-* -1
  • I driver video emulati potrebbero causare problemi di qualità audio nella macchinav irtuale. Si provi ogni driver per identificare quello più adatto. È possibile visualizzare un elenco dei driver disponibili con: qemu-system-x86_64 -h | grep vga.

AlsaMixer.app

Per fare in modo che la dockapp AlsaMixer.appAUR per windowmaker utilizzi PulseAudio, utilizzare:

$ AlsaMixer.app --device pulse

Di seguito due esempi, il primo per ALSA e il secondo per PulseAudio. È possibile eseguire istanze multiple dell'applicazione. Si utilizzi l'opzione -w per scegliere quale dei due pulsanti di controllo assegnare alla rotella del mouse:

# AlsaMixer.app -3 Mic -1 Master -2 PCM --card 0 -w 1
# AlsaMixer.app --device pulse -1 Capture -2 Master -w 2
Nota: L'applicazione può utilizzare solamente gli output sinks impostati come default.

XMMS2

Per utilizzare PulseAudio come output:

$ nyxmms2 server config output.plugin pulse

Per utilizzare ALSA:

$ nyxmms2 server config output.plugin alsa

Per utilizzare un sink di output differente:

$ nyxmms2 server config pulse.sink alsa_output.pci-0000_04_01.0.analog-stereo.monitor

Consultare inoltre la guida ufficiale: [1].

KDE Plasma Workspaces e Qt4

PulseAudio viene utilizzato automaticamente dalle applicazioni KDE/Qt4 e supportato di default nel mixer di KDE. Per ulteriori informazioni si veda la pagina relativa a KDE sul wiki di PulseAudio. Un consiglio utile dal link di cui sopra è quello di aggiungere load-module module-device-manager a /etc/pulse/default.pa.

Se si sta utilizzando il backend phonon-gstreamer per Phonon, sarà necessario configurare anche GStreamer come descritto in #Gstreamer.

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[broken link: invalid section].

Music Player Daemon (MPD)

È necessario configurare mpd affinché usi Pulseaudio. Si veda anche MPD/Tips and Tricks#MPD and PulseAudio[broken link: invalid section].

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

guvcview

È possibile che l'input audio venga sospeso quando si utilizza l'input PulseAudio da una Webcam, causando cosi la mancata registrazione dell'audio.

Si verifichi eseguendo:

$ pactl list sources

Se la sorgente audio è sospesa, si modifichi /etc/pulse/default.pa cambiando:

load-module module-suspend-on-idle

in:

#load-module module-suspend-on-idle

Così facendo, il riavvio di PulseAudio o del sistema metterà in idle la sorgente di input invece di sospenderla. guvcview potrà quindi registrare l'audio dal dispositivo in maniera corretta.

Risoluzione dei problemi

Si veda PulseAudio/Troubleshooting (Italiano).

Link esterni