Difference between revisions of "PulseAudio/Examples (Italiano)"

From ArchWiki
Jump to: navigation, search
(Usare l'uscita HDMI e analogica contemporaneamente)
(15 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
[[Category:Audio/Video (Italiano)]]
 
[[Category:Audio/Video (Italiano)]]
 
[[en:PulseAudio/Examples]]
 
[[en:PulseAudio/Examples]]
===Usare l'uscita HDMI e analogica contemporaneamente===
 
  
Pulseaudio permette l'output simulteaneo su più dispositivi. Nell'esempio presentato di seguito, alcune applicazioni sono configurate per usare l'uscita HDMI, mentre altre utilizzeranno quella analogica. E' possibile inviare l'audio a più applicazioni contemporaneamente.
+
==Impostare l'output analogico come default==
  
 
{{Nota|Per ottenere l'elenco dei dispositivi, viene utilizzato  {{ic|aplay}}. Questo programma è parte del pacchetto {{Pkg|alsa-utils}} e NON è richiesto per effettuare l'output su sorgenti multiple: è solamente necessario per elencare i dispositivi di riproduzione, e può essere rimosso alla fine della procedura.}}
 
{{Nota|Per ottenere l'elenco dei dispositivi, viene utilizzato  {{ic|aplay}}. Questo programma è parte del pacchetto {{Pkg|alsa-utils}} e NON è richiesto per effettuare l'output su sorgenti multiple: è solamente necessario per elencare i dispositivi di riproduzione, e può essere rimosso alla fine della procedura.}}
  
Innanzitutto, bisogna conoscere il layout audio del proprio sistema, utilizzando l'utility ''aplay'', contenuta nel pacchetto {{Pkg|alsa-utils}}.
+
Per selezionare una sorgente output diversa da quella di default, è innanzitutto necessario elencarle tutte:
  
{{bc|
+
{{hc|$ aplay -l|
<nowiki>
+
**** List of PLAYBACK Hardware Devices ****
$ aplay -l
+
card 0: Intel [HDA Intel], device 0: ALC889A Analog [ALC889A Analog]
 +
  Subdevices: 0/1
 +
  Subdevice #0: subdevice #0
 +
card 0: Intel [HDA Intel], device 1: ALC889A Digital [ALC889A Digital]
 +
  Subdevices: 1/1
 +
  Subdevice #0: subdevice #0
 +
card 0: Intel [HDA Intel], device 3: HDMI 0 [HDMI 0]
 +
  Subdevices: 0/1
 +
  Subdevice #0: subdevice #0
 +
}}
 +
 
 +
Su questa macchina, la sorgente analogica è identificata da {{ic|card 0}} {{ic|device 0}}. Si modifichi {{ic|/etc/pulse/default.pa}} inserendo la seguente linea:
 +
 
 +
load-module module-alsa-sink device=hw:0,0
 +
 
 +
Si determini l'indice corretto della nuova sorgente:
 +
 
 +
$ pacmd list-sinks | less
 +
 
 +
Si annoti il numero d'indice che corrisponde al sink {{ic|alsa_output.hw_0_0}}
 +
 
 +
Infine, si aggiunga una seconda linea ad {{ic|/etc/pulse/default.pa}} per impostare l'output di default:
 +
 
 +
set-default-sink 2
 +
 
 +
Si effettui nuovamente il login o si riavvii PulseAudio per applicare i cambiamenti.
 +
 
 +
==Usare l'uscita HDMI e analogica contemporaneamente==
 +
Pulseaudio permette l'output simulteaneo su più dispositivi. Nell'esempio presentato di seguito, alcune applicazioni sono configurate per usare l'uscita HDMI, mentre altre utilizzeranno quella analogica. E' possibile inviare l'audio a più applicazioni contemporaneamente.
 +
 
 +
{{hc|$ aplay -l|
 
**** List of PLAYBACK Hardware Devices ****
 
**** List of PLAYBACK Hardware Devices ****
 
card 0: Intel [HDA Intel], device 0: ALC889A Analog [ALC889A Analog]
 
card 0: Intel [HDA Intel], device 0: ALC889A Analog [ALC889A Analog]
Line 22: Line 51:
 
   Subdevices: 0/1
 
   Subdevices: 0/1
 
   Subdevice #0: subdevice #0
 
   Subdevice #0: subdevice #0
</nowiki>
 
 
}}
 
}}
  
Line 44: Line 72:
 
Si veda inoltre [https://bbs.archlinux.org/viewtopic.php?id=118026 questo thread] per una variazione sul tema e le [http://www.freedesktop.org/wiki/Software/PulseAudio/FAQ#Can_I_use_PulseAudio_to_playback_music_on_two_sound_cards_simultaneously.3F FAQ di PulseAudio].
 
Si veda inoltre [https://bbs.archlinux.org/viewtopic.php?id=118026 questo thread] per una variazione sul tema e le [http://www.freedesktop.org/wiki/Software/PulseAudio/FAQ#Can_I_use_PulseAudio_to_playback_music_on_two_sound_cards_simultaneously.3F FAQ di PulseAudio].
  
===Sistemi surround===
+
==Configurazione dell'uscita HDMI==
Molte persone hanno una scheda che supporta il surround, ma diffusori che usano solamente due canali, cosa che impedisce a Pulseaudio di configurarsi per il supporto al surround in modo automatico. Per abilitare tutti i canali, modificare  {{ic|/etc/pulse/daemon.conf}}: si decommenti la linea "default-sample-channels" (ossia si rimuova il ';' dall'inizio della linea), modificando il valore a '''6''' se si ha un impianto 5.1, oppure a '''8''' se si dispone di un sistema 7.1.
+
 
+
# Default
+
default-sample-channels=2
+
# Sistemi 5.1
+
default-sample-channels=6
+
# Sistemi 7.1
+
default-sample-channels=8
+
 
+
Dopo aver effettuato le modifiche, sarà necessario riavviare Pulseaudio.
+
 
+
====Dividere le uscite frontali/posteriori====
+
 
+
Si potrebbe voler connettere gli altoparlanti all'output analogico frontale e le cuffie a quello posteriore. Sarebbe utile dividere le uscite in sink separati. Si aggiunga al file {{ic|default.pa}}:
+
 
+
load-module module-remap-sink sink_name=speakers remix=no master=alsa_output.pci-0000_05_00.0.analog-surround-40 channels=2 master_channel_map=front-left,front-right channel_map=front-left,front-right
+
 
+
load-module module-remap-sink sink_name=headphones remix=no master=alsa_output.pci-0000_05_00.0.analog-surround-40 channels=2 master_channel_map=rear-left,rear-right  channel_map=front-left,front-right
+
 
+
(Si sostituisca {{ic|alsa_output.pci-0000_05_00.0.analog-surround-40}} con il nome della propria scheda audio, ottenuto con {{ic|pacmd list-sinks}}).
+
 
+
E' ora possibile scegliere se usare le cuffie o gli altoparlanti direttamente dal player audio.
+
 
+
====Remixing LFE====
+
 
+
Di default, Pulseaudio effettua il remix del numero di canali basandosi sul valore di {{ic|default-sample-channels}}, escludendo però il canale LFE. Per abilitare il remixing LFE, si decommenti la linea:
+
 
+
; enable-lfe-remixing = no
+
 
+
sostituendo "no" con "yes":
+
 
+
enable-lfe-remixing = yes
+
 
+
Si riavvii quindi Pulseaudio.
+
 
+
===Configurazione avanzata di ALSA===
+
Affinché ALSA utilizzi Pulseaudio, è necessario modificare il file {{ic|/etc/asound.conf}} (modifiche effettive per tutto il sistema; raccomandato) oppure {{ic|~/.asoundrc}} (modifiche applicate solo per l'utente corrente):
+
 
+
{{hc|/etc/asound.conf
+
|
+
pcm.pulse {
+
    type pulse
+
}
+
ctl.pulse {
+
    type pulse
+
}
+
pcm.!default {
+
    type pulse
+
}
+
ctl.!default {
+
    type pulse
+
}
+
}}
+
 
+
Se si omettono gli ultimi due gruppi, Pulseaudio non sarà usato come predefinito. Sarà quindi necessario cambiare il device ALSA in "pulse" nelle applicazioni che lo utilizzano affinché funzioni.
+
 
+
{{Nota|Il contenuto del file di configurazione menzionato sopra è contenuto nel pacchetto {{Pkg|pulseaudio-alsa}}.}}
+
 
+
====ALSA Monitor source====
+
Per registrare da una monitor source (ossia "What-U-Hear", "Stereo Mix"), si utilizzi {{ic|pactl list}} per individuare il nome della sorgente in Pulseaudio (es: {{ic|alsa_output.pci-0000_00_1b.0.analog-stereo.monitor}}). Si aggiungano quindi le linee simili a quella di cui sopra al file {{ic|/etc/asound.conf}}, oppure {{ic|~/.asoundrc}}:
+
 
+
pcm.pulse_monitor {
+
  type pulse
+
  device alsa_output.pci-0000_00_1b.0.analog-stereo.monitor
+
}
+
ctl.pulse_monitor {
+
  type pulse
+
  device alsa_output.pci-0000_00_1b.0.analog-stereo.monitor
+
}
+
 
+
È ora possibile selezionare {{ic|pulse_monitor}} come sorgente di registrazione.
+
 
+
È altresì possibile usare pavucontrol per svolgere questo compito: ci si assicuri di aver impostato il display su "All input Devices" e si selezioni "Monitor of [nome scheda audio]" come sorgente di registrazione.
+
 
+
===Configurazione dell'uscita HDMI===
+
 
Come sottolineato in ftp://download.nvidia.com/XFree86/gpu-hdmi-audio-document/gpu-hdmi-audio.html#_issues_in_pulseaudio, a causa di un bug di Pulseaudio, usando una scheda video con supporto HDMI, non verrà riprodotto alcun suono a meno che la porta HDMI sia impostata come primo dispositivo di output. La soluzione proposta sotto, consiste nello scoprire quale output HTMI funziona usando l'utility {{ic|aplay}}, contenuta nel pacchetto {{Pkg|alsa-utils}}.
 
Come sottolineato in ftp://download.nvidia.com/XFree86/gpu-hdmi-audio-document/gpu-hdmi-audio.html#_issues_in_pulseaudio, a causa di un bug di Pulseaudio, usando una scheda video con supporto HDMI, non verrà riprodotto alcun suono a meno che la porta HDMI sia impostata come primo dispositivo di output. La soluzione proposta sotto, consiste nello scoprire quale output HTMI funziona usando l'utility {{ic|aplay}}, contenuta nel pacchetto {{Pkg|alsa-utils}}.
  
 
Il titolo originale di questa sezione assumeva che il problema fosse relativo alle sole schede nvidia, ma come si è visto in [https://bbs.archlinux.org/viewtopic.php?id=133222 questo thread], anche altre schede video potrebbero esserne affette. Il resto dell'articolo, userà una scheda nvidia come esempio, ma la soluzione dovrebbe applicarsi anche agli utilizzatori di schede diverse.
 
Il titolo originale di questa sezione assumeva che il problema fosse relativo alle sole schede nvidia, ma come si è visto in [https://bbs.archlinux.org/viewtopic.php?id=133222 questo thread], anche altre schede video potrebbero esserne affette. Il resto dell'articolo, userà una scheda nvidia come esempio, ma la soluzione dovrebbe applicarsi anche agli utilizzatori di schede diverse.
  
====Trovare l'output HDMI====
+
===Trovare l'output HDMI===
  
 
  # aplay -l
 
  # aplay -l
Line 151: Line 104:
 
</nowiki>}}
 
</nowiki>}}
  
====Identificare la scheda corretta====
+
===Identificare la scheda corretta===
  
 
Ora che si dispone di un elenco di tutte le schede rilevate, è necessario scoprire quale di esse invia l'output al tv/monitor:
 
Ora che si dispone di un elenco di tutte le schede rilevate, è necessario scoprire quale di esse invia l'output al tv/monitor:
Line 159: Line 112:
 
Dove 1 rappresenta la scheda e 3 è il device (i valori sono quelli elencati nella sezione precedente). Se non viene riprodotto alcun suono, si provi ad usare un device differente (nel mio caso ho dovuto usare la scheda 1 e il subdevice 7).
 
Dove 1 rappresenta la scheda e 3 è il device (i valori sono quelli elencati nella sezione precedente). Se non viene riprodotto alcun suono, si provi ad usare un device differente (nel mio caso ho dovuto usare la scheda 1 e il subdevice 7).
  
====Configurare Pulseaudio per rilevare l'uscita HDMI Nvidia====
+
===Configurare Pulseaudio per rilevare l'uscita HDMI Nvidia===
  
 
Una volta ricavato il dispositivo funzionante, è necessario forzare Pulseaudio ad usarlo. Si modifichi {{ic|/etc/pulse/default.pa}}, aggiungendo la seguente linea:
 
Una volta ricavato il dispositivo funzionante, è necessario forzare Pulseaudio ad usarlo. Si modifichi {{ic|/etc/pulse/default.pa}}, aggiungendo la seguente linea:
Line 175: Line 128:
 
Si apra quindi la scheda "Output", dove dovrebbero ora apparire due output HDMI per la scheda video. Si verifichi quale dei due funziona selezionandolo e poi aprendo un programma per la riproduzione audio (ad esempio, si usi VLC per riprodurre un filmato: se non si ottiene nessun suono, selezionare l'altra uscita).
 
Si apra quindi la scheda "Output", dove dovrebbero ora apparire due output HDMI per la scheda video. Si verifichi quale dei due funziona selezionandolo e poi aprendo un programma per la riproduzione audio (ad esempio, si usi VLC per riprodurre un filmato: se non si ottiene nessun suono, selezionare l'altra uscita).
  
===Streaming audio via rete attraverso Pulseaudio===
+
==Sistemi surround==
 +
Molte persone hanno una scheda che supporta il surround, ma diffusori che usano solamente due canali, cosa che impedisce a Pulseaudio di configurarsi per il supporto al surround in modo automatico. Per abilitare tutti i canali, modificare  {{ic|/etc/pulse/daemon.conf}}: si decommenti la linea "default-sample-channels" (ossia si rimuova il ';' dall'inizio della linea), modificando il valore a '''6''' se si ha un impianto 5.1, oppure a '''8''' se si dispone di un sistema 7.1.
 +
 
 +
# Default
 +
default-sample-channels=2
 +
# Sistemi 5.1
 +
default-sample-channels=6
 +
# Sistemi 7.1
 +
default-sample-channels=8
 +
 
 +
Dopo aver effettuato le modifiche, sarà necessario riavviare Pulseaudio.
 +
 
 +
===Dividere le uscite frontali/posteriori===
 +
 
 +
Si potrebbe voler connettere gli altoparlanti all'output analogico frontale e le cuffie a quello posteriore. Sarebbe utile dividere le uscite in sink separati. Si aggiunga al file {{ic|/etc/pulse/default.pa}}:
 +
 
 +
load-module module-remap-sink sink_name=speakers remix=no master=alsa_output.pci-0000_05_00.0.analog-surround-40 channels=2 master_channel_map=front-left,front-right channel_map=front-left,front-right
 +
 
 +
load-module module-remap-sink sink_name=headphones remix=no master=alsa_output.pci-0000_05_00.0.analog-surround-40 channels=2 master_channel_map=rear-left,rear-right  channel_map=front-left,front-right
 +
 
 +
(Si sostituisca {{ic|alsa_output.pci-0000_05_00.0.analog-surround-40}} con il nome della propria scheda audio, ottenuto con {{ic|pacmd list-sinks}}).
 +
 
 +
E' ora possibile scegliere se usare le cuffie o gli altoparlanti direttamente dal player audio.
 +
 
 +
===Remixing LFE===
 +
 
 +
Di default, Pulseaudio effettua il remix del numero di canali basandosi sul valore di {{ic|default-sample-channels}}, escludendo però il canale LFE. Per abilitare il remixing LFE, si decommenti la linea:
 +
 
 +
; enable-lfe-remixing = no
 +
 
 +
sostituendo "no" con "yes":
 +
 
 +
enable-lfe-remixing = yes
 +
 
 +
Si riavvii quindi Pulseaudio.
 +
 
 +
==Streaming audio via rete attraverso Pulseaudio==
 
Una delle caratteristiche più interessanti di Pulseaudio è la possibilità di effettuare lo streaming audio dai clients, attraverso i protocollo TCP, al server che ha in esecuzione  il demone Pulseaudio, permettendo all'audio di essere trasmesso in streaming attraverso la propria LAN.
 
Una delle caratteristiche più interessanti di Pulseaudio è la possibilità di effettuare lo streaming audio dai clients, attraverso i protocollo TCP, al server che ha in esecuzione  il demone Pulseaudio, permettendo all'audio di essere trasmesso in streaming attraverso la propria LAN.
  
 
Affinché questo funzioni, è necessario abilitare il relativo modulo in Pulseaudio e copiare il pulse-cookie sui clients.
 
Affinché questo funzioni, è necessario abilitare il relativo modulo in Pulseaudio e copiare il pulse-cookie sui clients.
  
====Supporto TCP (streaming audio via rete)====
+
===Supporto TCP (streaming audio via rete)===
Per abilitare il modulo TCP, aggiungere questa riga (o decommentarla, se già presente) al file {{ic|/etc/pulse/default.pa}}:
+
Per abilitare il modulo TCP, aggiungere questa riga (o decommentarla, se già presente) al file {{ic|/etc/pulse/default.pa}} (sia sul client che sul server):
  
 
  load-module module-native-protocol-tcp
 
  load-module module-native-protocol-tcp
 +
 +
Affinchè il tutto funzioni, è necessario che sia il client che il server condividano lo stesso cookie, situato in {{ic|~/.config/pulse/cookie}}.
 +
Non fa differenza utilizzare il cookie del server o quello del client: l'importante è che entrambe le macchine utilizzino lo stesso.
  
 
Nota: Se si riscontrano problemi di connessione, si usi (sul server):
 
Nota: Se si riscontrano problemi di connessione, si usi (sul server):
  
  pacmd>> list-modules
+
  pacmd list-modules
  
====Supporto TCP con client anonimi====
+
===Supporto TCP con client anonimi===
  
Se non si desidera copiare i pulse-cookies dai vari clients, si consenta a client anonimi di connettersi, passando questi parametri al modulo {{ic|module-native-protocol-tcp}} (sempre modificando {{ic|/etc/pulse/default.pa}}):
+
Se non si desidera copiare il file del cookie dai vari client, è possibile consentire a client anonimi di connettersi, passando questi parametri al modulo {{ic|module-native-protocol-tcp}} sul server (sempre modificando {{ic|/etc/pulse/default.pa}}):
  
 
   load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1;192.168.0.0/24 auth-anonymous=1
 
   load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1;192.168.0.0/24 auth-anonymous=1
  
Ricordarsi di cambiare l'indirizzo IP della LAN, se dovesse essere differente da 192.168.0.0.
+
Si cambi la sottorete della LAN in modo che combaci con quella in cui si trovano i client che desiderano connettersi al server.
 +
 
 +
===Publishing attraverso Zeroconf (avahi)===
 +
Affinché il server Pulseaudio remoto appaia nel Device Chooser di Pulseaudio ({{ic|pasystray}}) sarà necessario caricare i moduli di zeroconf necessari ed abilitare il demone [[Avahi|Avahi]].
 +
 
 +
Su entrambe le macchine si esegua:
 +
 
 +
# systemctl start avahi-daemon.service
 +
# systemctl enable avahi-daemon.service
 +
 
 +
Sul server si aggiunga {{ic|load-module module-zeroconf-publish}} al file {{ic|/etc/pulse/default.pa}}, mentre sul client aggiungere allo stesso file {{ic|load-module module-zeroconf-discover}}. Redirigere infine qualsiasi stream o output audio al server pulseaudio remoto selezionando il sink apposito.
  
====Publishing attraverso Zeroconf (avahi)====
+
Se si riscontrano problemi con i sink remoti dalle macchine client, si provi a riavviare il demone avahi in modo da effettuare nuovamente il broadcast delle interfacce disponibili.
Affinché il server Pulseaudio remoto appaia nel Device Chooser di Pulseaudio ({{ic|padevchooser}}), sarà necessario aggiungere {{ic|avahi-daemon}} all'array DAEMONS in rc.conf, sia sui clients che sul server.
+
  
====Cambiare il server Pulseaudio usato dai clients X locali====
+
===Cambiare il server Pulseaudio usato dai clients X locali===
 
Per scegliere tra diversi server sul client da dentro X, è possibile utilizzare il comando {{ic|pax11publish}}. Per esempio, per usare, al posto di quello di default, il server avviato sulla macchina con hostname foo:
 
Per scegliere tra diversi server sul client da dentro X, è possibile utilizzare il comando {{ic|pax11publish}}. Per esempio, per usare, al posto di quello di default, il server avviato sulla macchina con hostname foo:
  
Line 211: Line 212:
 
Si noti che, affinché il cambio abbia effetto, è necessario riavviare i programmi che usano Pulseaudio.
 
Si noti che, affinché il cambio abbia effetto, è necessario riavviare i programmi che usano Pulseaudio.
  
====Quando ogni altro tentativo risulta vano====
+
===Quando ogni altro tentativo risulta vano===
 
Si noti che quanto presentato di seguito, è un fix temporaneo e '''non''' rappresenta una soluzione permanente.
 
Si noti che quanto presentato di seguito, è un fix temporaneo e '''non''' rappresenta una soluzione permanente.
  
Line 224: Line 225:
 
  $ export PULSE_SERVER=server.ip && mplayer test.mp3
 
  $ export PULSE_SERVER=server.ip && mplayer test.mp3
  
===Pulseaudio attraverso JACK (il metodo ancora più nuovo)===
+
==ALSA Monitor source==
 +
Per registrare da una monitor source (ossia "What-U-Hear", "Stereo Mix"), si utilizzi {{ic|pactl list}} per individuare il nome della sorgente in Pulseaudio (es: {{ic|alsa_output.pci-0000_00_1b.0.analog-stereo.monitor}}). Si aggiungano quindi le linee simili a quella di cui sopra al file {{ic|/etc/asound.conf}}, oppure {{ic|~/.asoundrc}}:
 +
 
 +
pcm.pulse_monitor {
 +
  type pulse
 +
  device alsa_output.pci-0000_00_1b.0.analog-stereo.monitor
 +
}
 +
ctl.pulse_monitor {
 +
  type pulse
 +
  device alsa_output.pci-0000_00_1b.0.analog-stereo.monitor
 +
}
 +
 
 +
È ora possibile selezionare {{ic|pulse_monitor}} come sorgente di registrazione.
 +
 
 +
È altresì possibile usare pavucontrol per svolgere questo compito: ci si assicuri di aver impostato il display su "All input Devices" e si selezioni "Monitor of [nome scheda audio]" come sorgente di registrazione.
 +
 
 +
==Pulseaudio attraverso JACK==
 +
 
 +
===Il metodo ancora più nuovo===
 +
 
 
Questo metodo funzionerà solo con jackdbus (JACK compilato con il supporto a D-Bus).
 
Questo metodo funzionerà solo con jackdbus (JACK compilato con il supporto a D-Bus).
 +
Si aggiunga la seguente linea ad {{ic|/etc/pulse/default.pa}}:
 +
 
  load-module module-jackdbus-detect
 
  load-module module-jackdbus-detect
  
Line 234: Line 256:
 
{{ic|module-jackdbus-detect.so}} carica e rimuove dinamicamente i moduli {{ic|module-jack-sink}} e {{ic|module-jack-source}} quando jackdbus viene avviato o fermato.
 
{{ic|module-jackdbus-detect.so}} carica e rimuove dinamicamente i moduli {{ic|module-jack-sink}} e {{ic|module-jack-source}} quando jackdbus viene avviato o fermato.
  
===Pulseaudio attraverso JACK (nuovo metodo)===
+
===Nuovo metodo===
 
Uccidere Pulseaudio non è una buona idea, poichè potrebbe far crashare le applicazioni che lo stanno utilizzando ed interrompere la riproduzione dell'audio.
 
Uccidere Pulseaudio non è una buona idea, poichè potrebbe far crashare le applicazioni che lo stanno utilizzando ed interrompere la riproduzione dell'audio.
  
Line 273: Line 295:
 
  pacmd suspend false
 
  pacmd suspend false
  
===Pulseaudio attraverso JACK (vecchio metodo)===
+
===Vecchio metodo===
 
Il JACK-Audio-Connection-Kit è popolare tra chi lavora in ambito audio, ed è ampiamente supportato dalle relative applicazioni Linux. Si inserisce in una nicchia d'uso simile a quella occupata da Pulseaudio, ma è più adatto ad essere usato da chi lavora in ambito multimediale. In particolare, applicazioni audio come Ardour e Audacity (recentemente), funzionano bene con Jack.
 
Il JACK-Audio-Connection-Kit è popolare tra chi lavora in ambito audio, ed è ampiamente supportato dalle relative applicazioni Linux. Si inserisce in una nicchia d'uso simile a quella occupata da Pulseaudio, ma è più adatto ad essere usato da chi lavora in ambito multimediale. In particolare, applicazioni audio come Ardour e Audacity (recentemente), funzionano bene con Jack.
  
Line 353: Line 375:
 
Poi, una volta avviato QjackCtl, fare click sul pulsante ''setup'', selezionare il tab ''Opzioni'' e spuntare "Execute Script after Startup" e "Execute Script on Shutdown", quindi specificare il percorso relativo ai due script appena visti, avendo cura di salvare le modifiche apportate.
 
Poi, una volta avviato QjackCtl, fare click sul pulsante ''setup'', selezionare il tab ''Opzioni'' e spuntare "Execute Script after Startup" e "Execute Script on Shutdown", quindi specificare il percorso relativo ai due script appena visti, avendo cura di salvare le modifiche apportate.
  
===Pulseaudio attraverso OSS===
+
==Pulseaudio attraverso OSS==
  
 
Si aggiunga la seguente riga ad {{ic|/etc/pulse/default.pa}}
 
Si aggiunga la seguente riga ad {{ic|/etc/pulse/default.pa}}
Line 360: Line 382:
 
Poi si avvii Pulseaudio come al solito. Dovrebbero essere disponibili sinks e sorgenti per i propri dispositivi OSS.
 
Poi si avvii Pulseaudio come al solito. Dovrebbero essere disponibili sinks e sorgenti per i propri dispositivi OSS.
  
===Pulseaudio da chroot===
+
==Pulseaudio da chroot==
 
Poiché un ambiente di chroot definisce una root alternativa per l'ingabbiamento e l'utilizzo delle applicazioni, Pulseaudio deve essere installato all'interno dello stesso ({{ic|pacman -S pulseaudio}} dato da dentro l'ambiente di chroot).
 
Poiché un ambiente di chroot definisce una root alternativa per l'ingabbiamento e l'utilizzo delle applicazioni, Pulseaudio deve essere installato all'interno dello stesso ({{ic|pacman -S pulseaudio}} dato da dentro l'ambiente di chroot).
  
Line 372: Line 394:
 
Si consiglia di montare anche {{ic|/dev/shm}} per ottenere le massime performance ed efficienza. Si noti che montando la {{ic|/home}}, è possibile condividere la cartella {{ic|~/.pulse}}.
 
Si consiglia di montare anche {{ic|/dev/shm}} per ottenere le massime performance ed efficienza. Si noti che montando la {{ic|/home}}, è possibile condividere la cartella {{ic|~/.pulse}}.
  
Per istruzioni specifiche su come effettuare i vari mount, si faccia riferimento al wiki relativo all'installazione di un ambiente chroot a 32 bit, specialmente si legga la [http://wiki.archlinux.org/index.php?title=Arch64_Install_bundled_32bit_system#Additional_mount_option_to_allow_32-bit_apps_to_access_the_64-bit_Pulseaudio_server sezione aggiuntiva] relativa a Pulseaudio.
+
Per istruzioni specifiche su come effettuare i vari mount, si faccia riferimento al wiki relativo all'installazione di un ambiente chroot a 32 bit, specialmente si legga la [https://wiki.archlinux.org/index.php?title=Arch64_Install_bundled_32bit_system#Additional_mount_option_to_allow_32-bit_apps_to_access_the_64-bit_Pulseaudio_server sezione aggiuntiva] relativa a Pulseaudio.
  
 
+
==Disabilitare l'auto spawning del server PulseAudio==
 
+
===Equalizzatore di sistema===
+
 
+
La qualità del suono di Pulseaudio può essere migliorata usando un equalizzatore di sistema: ci sono diversi tools per farlo. Ulteriori informazioni sui pro e i contro di ogni tool, sono reperibili [http://ubuntuforums.org/showthread.php?t=1378087 qui]. Ogni applicazione può essere esclusa tramite {{ic|pavucontrol}}.
+
 
+
====pulseaudio-equalizer====
+
 
+
Un semplice ed user-friendly tool gtk, che è possibile scaricare da AUR a [https://aur.archlinux.org/packages.php?ID=48316 questo indirizzo].
+
 
+
{{Nota|Se si rimuove pulseaudio-equalizer, è necessario commentare la relativa sezione generata in {{ic|$HOME/.pulse/default.pa}}, o potrebbero verificarsi strani problemi.}}
+
 
+
{{Nota|Se il livello del volume si imposta automaticamente al massimo, o se si verificano degli stridii durante il cambio delle sorgenti sonore, si segua  quanto scritto [https://wiki.archlinux.org/index.php/PulseAudio_%28Italiano%29#Il_livello_del_volume_si_alza_ogni_volta_che_una_nuova_applicazione_viene_avviata qui]. Trovare poi la sezione chiamata "Equalized audo configuration" in  {{ic|$HOME/.pulse/default.pa}} e commentare la linea {{ic|set-sink-volume}}.}}
+
 
+
====qpaeq====
+
Un semplice tool in qt che è fornito di default con Pulseaudio e supporta più bande rispetto a pulseaudio-equalizer (si ridimensioni la finestra in senso orizzontale), ma manca di presets facilmente accessibili. Potrebbe essere necessario impostarlo manualmente come equalizzatore predefinito. Si trova in {{ic|/usr/bin/qpaeq}} e richiede {{ic|python2-pyqt}} per essere eseguito.
+
 
+
{{Nota|Se qpaeq crasha all'avvio, ci si assicuri che {{ic|load-module module-equalizer-sink}} sia presente in {{ic|/etc/pulse/default.pa}} o {{ic|$HOME/.pulse/default.pa}}.}}
+
 
+
{{Nota|Se l'equalizzatore non ha effetto (ad esempio, se non viene inibita la riproduzione dei suoni impostando a zero la barra di preampiflicazione di "qpaeq"), potrebbe essere necessario collegare i sink audio delle applicazioni in uso all'equalizzatore. Per farlo, si aggiunga {{ic|set-default-sink equalized}} a {{ic|/etc/pulse/default.pa}} o a {{ic|$HOME/.pulse/default.pa}}.}}
+
 
+
===Disabilitare l'auto spawning del server PulseAudio===
+
 
+
{{Attenzione|Questa soluzione è stata resa inefficace da recenti cambiamenti in systemd/initscripts e potrebbe persino rendere impossibile l'avvio del demone pulse. Si modifichi liberamente quanto segue se si dispone di una soluzione alternativa per far sì che gli utenti possano avviare manualmente PulseAudio per applicazioni specifiche.}}
+
  
 
Alcuni utenti potrebbero voler avviare il server pulseaudio manualmente prima di eseguire certi programmi e chiuderlo quando questi ultimi hanno portato a termine le proprie operazioni.
 
Alcuni utenti potrebbero voler avviare il server pulseaudio manualmente prima di eseguire certi programmi e chiuderlo quando questi ultimi hanno portato a termine le proprie operazioni.
Line 416: Line 415:
  
 
  $ pulseaudio --kill
 
  $ pulseaudio --kill
 +
 +
Potrebbe inoltre essere necessario rimuovere o rinominare il file {{ic|.desktop}} in {{ic|/etc/xdg/autostart}}, se presente.

Revision as of 19:46, 28 October 2013


Impostare l'output analogico come default

Nota: Per ottenere l'elenco dei dispositivi, viene utilizzato aplay. Questo programma è parte del pacchetto alsa-utils e NON è richiesto per effettuare l'output su sorgenti multiple: è solamente necessario per elencare i dispositivi di riproduzione, e può essere rimosso alla fine della procedura.

Per selezionare una sorgente output diversa da quella di default, è innanzitutto necessario elencarle tutte:

$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: Intel [HDA Intel], device 0: ALC889A Analog [ALC889A Analog]
  Subdevices: 0/1
  Subdevice #0: subdevice #0
card 0: Intel [HDA Intel], device 1: ALC889A Digital [ALC889A Digital]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: Intel [HDA Intel], device 3: HDMI 0 [HDMI 0]
  Subdevices: 0/1
  Subdevice #0: subdevice #0

Su questa macchina, la sorgente analogica è identificata da card 0 device 0. Si modifichi /etc/pulse/default.pa inserendo la seguente linea:

load-module module-alsa-sink device=hw:0,0

Si determini l'indice corretto della nuova sorgente:

$ pacmd list-sinks | less

Si annoti il numero d'indice che corrisponde al sink alsa_output.hw_0_0

Infine, si aggiunga una seconda linea ad /etc/pulse/default.pa per impostare l'output di default:

set-default-sink 2

Si effettui nuovamente il login o si riavvii PulseAudio per applicare i cambiamenti.

Usare l'uscita HDMI e analogica contemporaneamente

Pulseaudio permette l'output simulteaneo su più dispositivi. Nell'esempio presentato di seguito, alcune applicazioni sono configurate per usare l'uscita HDMI, mentre altre utilizzeranno quella analogica. E' possibile inviare l'audio a più applicazioni contemporaneamente.

$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: Intel [HDA Intel], device 0: ALC889A Analog [ALC889A Analog]
  Subdevices: 0/1
  Subdevice #0: subdevice #0
card 0: Intel [HDA Intel], device 1: ALC889A Digital [ALC889A Digital]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: Intel [HDA Intel], device 3: HDMI 0 [HDMI 0]
  Subdevices: 0/1
  Subdevice #0: subdevice #0

Il segreto per realizzare con succcesso una configurazione come questa è capire che il dispositivo selezionato in pavucontrol (sotto Configuration->Internal Audio), verrà trattato come quello di default. Si avvii pavucontrol, ci si rechi nella sezione Configurazion e si selezioni il profilo HDMI.

Si aggiungano poi le seguenti linee ad /etc/pulse/default.pa, per impostare l'uscita analogica come sorgente secondaria:

### Load analog device
load-module module-alsa-sink device=hw:0,0
load-module module-combine-sink sink_name=combined
set-default-sink combined

Si riavvi PulseAudio e si esegua pavucontrol, quindi selezionare il tab "Output Devices". Dovrebbero ora apparire tre voci:

  1. Internal Audio Digital Stereo (HDMI)
  2. Internal Audio
  3. Simultaneous ouput to Internal Audio Digital Stereo (HDMI), Internal Audio

Avviare quindi un programma che utilizzi Pulseaudio come mplayer,vlc,mpd eccetera, quindi si clicchi sulla tab "Playback". Dovrebbe comparire un menù a tendina per ciascuno dei programmi avviati, che permette di scegliere una sorgente fra le tre elencate sopra.

Si veda inoltre questo thread per una variazione sul tema e le FAQ di PulseAudio.

Configurazione dell'uscita HDMI

Come sottolineato in ftp://download.nvidia.com/XFree86/gpu-hdmi-audio-document/gpu-hdmi-audio.html#_issues_in_pulseaudio, a causa di un bug di Pulseaudio, usando una scheda video con supporto HDMI, non verrà riprodotto alcun suono a meno che la porta HDMI sia impostata come primo dispositivo di output. La soluzione proposta sotto, consiste nello scoprire quale output HTMI funziona usando l'utility aplay, contenuta nel pacchetto alsa-utils.

Il titolo originale di questa sezione assumeva che il problema fosse relativo alle sole schede nvidia, ma come si è visto in questo thread, anche altre schede video potrebbero esserne affette. Il resto dell'articolo, userà una scheda nvidia come esempio, ma la soluzione dovrebbe applicarsi anche agli utilizzatori di schede diverse.

Trovare l'output HDMI

# aplay -l
sample output:
 **** List of PLAYBACK Hardware Devices ****
 card 0: NVidia [HDA NVidia], device 0: ALC1200 Analog [ALC1200 Analog]
   Subdevices: 1/1
   Subdevice #0: subdevice #0
 card 0: NVidia [HDA NVidia], device 3: ALC1200 Digital [ALC1200 Digital]
   Subdevices: 1/1
   Subdevice #0: subdevice #0
 card 1: NVidia_1 [HDA NVidia], device 3: HDMI 0 [HDMI 0]
   Subdevices: 1/1
   Subdevice #0: subdevice #0
 card 1: NVidia_1 [HDA NVidia], device 7: HDMI 0 [HDMI 0]
   Subdevices: 0/1
   Subdevice #0: subdevice #0
 card 1: NVidia_1 [HDA NVidia], device 8: HDMI 0 [HDMI 0]
   Subdevices: 1/1
   Subdevice #0: subdevice #0
 card 1: NVidia_1 [HDA NVidia], device 9: HDMI 0 [HDMI 0]
   Subdevices: 1/1
   Subdevice #0: subdevice #0

Identificare la scheda corretta

Ora che si dispone di un elenco di tutte le schede rilevate, è necessario scoprire quale di esse invia l'output al tv/monitor:

# aplay -D plughw:1,3 /usr/share/sounds/alsa/Front_Right.wav

Dove 1 rappresenta la scheda e 3 è il device (i valori sono quelli elencati nella sezione precedente). Se non viene riprodotto alcun suono, si provi ad usare un device differente (nel mio caso ho dovuto usare la scheda 1 e il subdevice 7).

Configurare Pulseaudio per rilevare l'uscita HDMI Nvidia

Una volta ricavato il dispositivo funzionante, è necessario forzare Pulseaudio ad usarlo. Si modifichi /etc/pulse/default.pa, aggiungendo la seguente linea:

# load-module module-alsa-sink device=hw:1,7

Dove 1 e 7 rappresentano i valori trovati nella sezione precedente.

Si riavvii quindi Pulseaudio:

# killall pulseaudio

Si apra il pannello impostazioni del suono, e ci si assicuri che, sotto la scheda "Hardware", l'audio HDMI della scheda video sia impostato su "Digital Stereo (HDMI) Output" (L'audio della mia scheda video era identificato con "GF100 High Definition Audio Controller").

Si apra quindi la scheda "Output", dove dovrebbero ora apparire due output HDMI per la scheda video. Si verifichi quale dei due funziona selezionandolo e poi aprendo un programma per la riproduzione audio (ad esempio, si usi VLC per riprodurre un filmato: se non si ottiene nessun suono, selezionare l'altra uscita).

Sistemi surround

Molte persone hanno una scheda che supporta il surround, ma diffusori che usano solamente due canali, cosa che impedisce a Pulseaudio di configurarsi per il supporto al surround in modo automatico. Per abilitare tutti i canali, modificare /etc/pulse/daemon.conf: si decommenti la linea "default-sample-channels" (ossia si rimuova il ';' dall'inizio della linea), modificando il valore a 6 se si ha un impianto 5.1, oppure a 8 se si dispone di un sistema 7.1.

# Default
default-sample-channels=2
# Sistemi 5.1
default-sample-channels=6
# Sistemi 7.1
default-sample-channels=8

Dopo aver effettuato le modifiche, sarà necessario riavviare Pulseaudio.

Dividere le uscite frontali/posteriori

Si potrebbe voler connettere gli altoparlanti all'output analogico frontale e le cuffie a quello posteriore. Sarebbe utile dividere le uscite in sink separati. Si aggiunga al file /etc/pulse/default.pa:

load-module module-remap-sink sink_name=speakers remix=no master=alsa_output.pci-0000_05_00.0.analog-surround-40 channels=2 master_channel_map=front-left,front-right channel_map=front-left,front-right
load-module module-remap-sink sink_name=headphones remix=no master=alsa_output.pci-0000_05_00.0.analog-surround-40 channels=2 master_channel_map=rear-left,rear-right  channel_map=front-left,front-right

(Si sostituisca alsa_output.pci-0000_05_00.0.analog-surround-40 con il nome della propria scheda audio, ottenuto con pacmd list-sinks).

E' ora possibile scegliere se usare le cuffie o gli altoparlanti direttamente dal player audio.

Remixing LFE

Di default, Pulseaudio effettua il remix del numero di canali basandosi sul valore di default-sample-channels, escludendo però il canale LFE. Per abilitare il remixing LFE, si decommenti la linea:

; enable-lfe-remixing = no

sostituendo "no" con "yes":

enable-lfe-remixing = yes

Si riavvii quindi Pulseaudio.

Streaming audio via rete attraverso Pulseaudio

Una delle caratteristiche più interessanti di Pulseaudio è la possibilità di effettuare lo streaming audio dai clients, attraverso i protocollo TCP, al server che ha in esecuzione il demone Pulseaudio, permettendo all'audio di essere trasmesso in streaming attraverso la propria LAN.

Affinché questo funzioni, è necessario abilitare il relativo modulo in Pulseaudio e copiare il pulse-cookie sui clients.

Supporto TCP (streaming audio via rete)

Per abilitare il modulo TCP, aggiungere questa riga (o decommentarla, se già presente) al file /etc/pulse/default.pa (sia sul client che sul server):

load-module module-native-protocol-tcp

Affinchè il tutto funzioni, è necessario che sia il client che il server condividano lo stesso cookie, situato in ~/.config/pulse/cookie. Non fa differenza utilizzare il cookie del server o quello del client: l'importante è che entrambe le macchine utilizzino lo stesso.

Nota: Se si riscontrano problemi di connessione, si usi (sul server):

pacmd list-modules

Supporto TCP con client anonimi

Se non si desidera copiare il file del cookie dai vari client, è possibile consentire a client anonimi di connettersi, passando questi parametri al modulo module-native-protocol-tcp sul server (sempre modificando /etc/pulse/default.pa):

 load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1;192.168.0.0/24 auth-anonymous=1

Si cambi la sottorete della LAN in modo che combaci con quella in cui si trovano i client che desiderano connettersi al server.

Publishing attraverso Zeroconf (avahi)

Affinché il server Pulseaudio remoto appaia nel Device Chooser di Pulseaudio (pasystray) sarà necessario caricare i moduli di zeroconf necessari ed abilitare il demone Avahi.

Su entrambe le macchine si esegua:

# systemctl start avahi-daemon.service
# systemctl enable avahi-daemon.service

Sul server si aggiunga load-module module-zeroconf-publish al file /etc/pulse/default.pa, mentre sul client aggiungere allo stesso file load-module module-zeroconf-discover. Redirigere infine qualsiasi stream o output audio al server pulseaudio remoto selezionando il sink apposito.

Se si riscontrano problemi con i sink remoti dalle macchine client, si provi a riavviare il demone avahi in modo da effettuare nuovamente il broadcast delle interfacce disponibili.

Cambiare il server Pulseaudio usato dai clients X locali

Per scegliere tra diversi server sul client da dentro X, è possibile utilizzare il comando pax11publish. Per esempio, per usare, al posto di quello di default, il server avviato sulla macchina con hostname foo:

$ pax11publish -e -S foo

Oppure, per tornare al server di default:

$ pax11publish -e -r

Si noti che, affinché il cambio abbia effetto, è necessario riavviare i programmi che usano Pulseaudio.

Quando ogni altro tentativo risulta vano

Si noti che quanto presentato di seguito, è un fix temporaneo e non rappresenta una soluzione permanente.

Sul server:

$ paprefs

Accesso alla rete -> Abilitare l'accesso per i dispositivi audio locali (Selezionare sia 'Permetti discover' che 'Non richedere autenticazione').

Sul client:

$ export PULSE_SERVER=server.ip && mplayer test.mp3

ALSA Monitor source

Per registrare da una monitor source (ossia "What-U-Hear", "Stereo Mix"), si utilizzi pactl list per individuare il nome della sorgente in Pulseaudio (es: alsa_output.pci-0000_00_1b.0.analog-stereo.monitor). Si aggiungano quindi le linee simili a quella di cui sopra al file /etc/asound.conf, oppure ~/.asoundrc:

pcm.pulse_monitor {
  type pulse
  device alsa_output.pci-0000_00_1b.0.analog-stereo.monitor
}
ctl.pulse_monitor {
  type pulse
  device alsa_output.pci-0000_00_1b.0.analog-stereo.monitor
}

È ora possibile selezionare pulse_monitor come sorgente di registrazione.

È altresì possibile usare pavucontrol per svolgere questo compito: ci si assicuri di aver impostato il display su "All input Devices" e si selezioni "Monitor of [nome scheda audio]" come sorgente di registrazione.

Pulseaudio attraverso JACK

Il metodo ancora più nuovo

Questo metodo funzionerà solo con jackdbus (JACK compilato con il supporto a D-Bus). Si aggiunga la seguente linea ad /etc/pulse/default.pa:

load-module module-jackdbus-detect

Come descritto sulla pagina relativa alla pacchettizzazione di Jack-DBUS:

L'autoavvio del server è implementato come una chiamata a D-Bus che attiva automaticamente il servizio D-Bus relativo a Jack, nel caso in cui non sia già stato avviato automaticamente, ed inizializza il server Jack. L'interazione corretta con PulseAudio avviene attraverso un sistema di "acquisizione/rilascio" della scheda audio basato su D-Bus. Quando il server Jack si avvia, richiede al servizio D-Bus di prendere possesso della scheda audio e PulseAudio la rilascia immediatamente. Al contrario, quando il server viene fermato, è quest'ultimo a rilasciare la scheda audio che potrà così essere di nuovo gestita da PulseAudio.

module-jackdbus-detect.so carica e rimuove dinamicamente i moduli module-jack-sink e module-jack-source quando jackdbus viene avviato o fermato.

Nuovo metodo

Uccidere Pulseaudio non è una buona idea, poichè potrebbe far crashare le applicazioni che lo stanno utilizzando ed interrompere la riproduzione dell'audio.

Si procederà come segue:

  1. PulseAudio rilascia la scheda audio
  2. Jack ne prende possesso e si avvia
  3. Lo script redirige PulseAudio a JACK
  4. inviare manualmente l'output delle applicazioni PulseAudio a JACK (pavucontrol potrebbe essere d'aiuto in questo caso)
  5. usare programmi JACK
  6. attraverso lo script, smettere di redirigere l'output di PulseAudio a JACK
  7. uccidere JACK e rilasciare la scheda audio
  8. PulseAudio riprende possesso della scheda e redirige l'audio di conseguenza

Con QJackCTL, implementare questi script:

Script da eseguire all'avvio: pulse-jack-pre-start.sh

#!/bin/bash
pacmd suspend true

Script da eseguire dopo l'avvio: pulse-jack-post-start.sh

#!/bin/bash
pactl load-module module-jack-sink channels=2
pactl load-module module-jack-source channels=2
pacmd set-default-sink jack_out
pacmd set-default-source jack_in

Script da eseguire allo spegnimento: pulse-jack-pre-stop.sh

#!/bin/bash
SINKID=$(pactl list | grep -B 1 "Name: module-jack-sink" | grep Module | sed 's/[^0-9]//g')
SOURCEID=$(pactl list | grep -B 1 "Name: module-jack-source" | grep Module | sed 's/[^0-9]//g')
pactl unload-module $SINKID
pactl unload-module $SOURCEID
sleep 5

Script da eseguire dopo lo spegnimento: pulse-jack-post-stop.sh

#!/bin/bash
pacmd suspend false

Vecchio metodo

Il JACK-Audio-Connection-Kit è popolare tra chi lavora in ambito audio, ed è ampiamente supportato dalle relative applicazioni Linux. Si inserisce in una nicchia d'uso simile a quella occupata da Pulseaudio, ma è più adatto ad essere usato da chi lavora in ambito multimediale. In particolare, applicazioni audio come Ardour e Audacity (recentemente), funzionano bene con Jack.

Pulseaudio fornisce i moduli jack-source e jack-sink, che gli permettono di essere avviato come sound server sopra al demone JACK. Ciò consente di impostare valori di volume personalizzati per ogni applicazione che lo necessiti, applicazioni play-back per filmati ed audio, consentendo al tempo stesso di stabilire una interconnettività a bassa latenza per applicazioni di sound processing che si connettono a JACK.

Tuttavia, ciò impedirà a Pulseaudio di scrivere direttamente nei buffers della scheda audio, cosa che aumenterà l'uso complessivo della CPU.

Per provare ad utilizzare Pulseaudio su JACK, è necessario caricare i relativi moduli all'avvio:

pulseaudio -L module-jack-sink -L module-jack-source

Per usare Pulsaudio con JACK, questo deve essere caricato prima di Pulseaudio, usando un metodo di vostra scelta. Pulseaudio deve quindi essere avviato avendo cura di caricare due moduli rilevanti. Si modifichi /etc/pulse/default.pa, cambiando la seguente parte:

### Load audio drivers statically (it is probably better to not load
### these drivers manually, but instead use module-hal-detect --
### see below -- for doing this automatically)
#load-module module-alsa-sink
#load-module module-alsa-source device=hw:1,0
#load-module module-oss device="/dev/dsp" sink_name=output source_name=input
#load-module module-oss-mmap device="/dev/dsp" sink_name=output source_name=input
#load-module module-null-sink 
#load-module module-pipe-sink
### Automatically load driver modules depending on the hardware available
.ifexists module-udev-detect.so
load-module module-udev-detect
.else
### Alternatively use the static hardware detection module (for  systems that
### lack udev support)
load-module module-detect
.endif

In questo modo:

### Load audio drivers statically (it is probably better to not load
### these drivers manually, but instead use module-hal-detect --
### see below -- for doing this automatically)
#load-module module-alsa-sink
#load-module module-alsa-source device=hw:1,0
#load-module module-oss device="/dev/dsp" sink_name=output source_name=input
#load-module module-oss-mmap device="/dev/dsp" sink_name=output source_name=input
#load-module module-null-sink
#load-module module-pipe-sink
load-module module-jack-source
load-module module-jack-sink
### Automatically load driver modules depending on the hardware available
#.ifexists module-udev-detect.so
#load-module module-udev-detect
#.else
### Alternatively use the static hardware detection module (for  systems that
### lack udev support)
#load-module module-detect
#.endif

Sostanzialmente, viene qui impedito il caricamento del modulo udev-detect, il quale cercherà di prendere il controllo della vostra scheda audio. (JACK ha già effettutato questa operazione, perciò si otterrà un errore se il modulo viene caricato). Inoltre, i moduli jack-source e jack-sink, devono essere caricati esplicitamente.

QjackCtl con script di avvio/shutdown

Usando le impostazioni descritte sopra, è possibile usare QjackCtl per eseguire uno script all'avvio e allo spegnimento per avviare/terminare Pulseaudio. Una delle ragioni percui si possa voler fare una cosa simile è che i cambiamenti riportati sopra disabilitano i moduli di Pulseaudio che si occupano dell'autorilevazione dell'hardware.

Le impostazioni che seguono, sono adatte per utilizzare Pulseaudio con JACK, benché gli script possano essere modificati per essere usati con un setup diverso da questo. Terminare e riavviare Pulseaudio mentre dei programmi lo stanno utilizzando potrebbe rivelarsi problematico.

L'esempio seguente può essere usato e modificato secondo le proprie necessità in uno script d'avvio che avvia Pulseaudio in modalità demone e carica il programma padevchooserAUR (opzionale, va compilato dopo averlo scaricato da AUR) chiamato jack_startup:

#!/bin/bash
#Load PulseAudio and PulseAudio Device Chooser
pulseaudio -D
padevchooser&

Segue uno script di shutdown che termina Pulseaudio, chiamato jack_shutdown, da posizionare anch'esso nella propria home directory:

#!/bin/bash
#Kill PulseAudio and PulseAudio Device Chooser
pulseaudio --kill
killall padevchooser

Entrambi gli script devono essere resi eseguibili:

chmod +x jack_startup jack_shutdown

Poi, una volta avviato QjackCtl, fare click sul pulsante setup, selezionare il tab Opzioni e spuntare "Execute Script after Startup" e "Execute Script on Shutdown", quindi specificare il percorso relativo ai due script appena visti, avendo cura di salvare le modifiche apportate.

Pulseaudio attraverso OSS

Si aggiunga la seguente riga ad /etc/pulse/default.pa

load-module module-oss

Poi si avvii Pulseaudio come al solito. Dovrebbero essere disponibili sinks e sorgenti per i propri dispositivi OSS.

Pulseaudio da chroot

Poiché un ambiente di chroot definisce una root alternativa per l'ingabbiamento e l'utilizzo delle applicazioni, Pulseaudio deve essere installato all'interno dello stesso (pacman -S pulseaudio dato da dentro l'ambiente di chroot).

Se Pulseaudio non è configurato per connettersi ad un server specifico (si può ovviare modificando /etc/pulse/client.conf, usando la variabile d'ambiente PULSE_SERVER, oppure tramite l'annuncio alle proprietà locali di X11 usando il modulo x11-publish), tenterà di connettersi al server Pulseaudio locale, fallendo ed avviando una nuova istanza dello stesso. Ogni server Pulseaudio è identificato da un ID univoco basato sul valore machine-id contenuto in /var/lib/dbus. Affinché le applicazioni eseguite all'interno del chroot possano accedere al server, le seguenti directory devono essere montate nel chroot:

/var/run
/var/lib/dbus
/tmp
~/.pulse

Si consiglia di montare anche /dev/shm per ottenere le massime performance ed efficienza. Si noti che montando la /home, è possibile condividere la cartella ~/.pulse.

Per istruzioni specifiche su come effettuare i vari mount, si faccia riferimento al wiki relativo all'installazione di un ambiente chroot a 32 bit, specialmente si legga la sezione aggiuntiva relativa a Pulseaudio.

Disabilitare l'auto spawning del server PulseAudio

Alcuni utenti potrebbero voler avviare il server pulseaudio manualmente prima di eseguire certi programmi e chiuderlo quando questi ultimi hanno portato a termine le proprie operazioni.

È possibile ottenere questo comportamento modificando /etc/pulse/client.conf, cambiando autospawn = yes in autospawn = no, ed impostando la variabile daemon-binary a /bin/true. Ci si assicuri inoltre che le due linee di cui sopra siano decommentate:

/etc/pulse/client.conf
autospawn = no
daemon-binary = /bin/true 

È ora possibile avviare manualmente pulseaudio con:

$ pulseaudio --start

e terminarlo con:

$ pulseaudio --kill

Potrebbe inoltre essere necessario rimuovere o rinominare il file .desktop in /etc/xdg/autostart, se presente.