Difference between revisions of "Advanced Linux Sound Architecture (Italiano)"

From ArchWiki
Jump to: navigation, search
(Upmixing)
(wikify some external links, use https for archlinux.org)
(39 intermediate revisions by 4 users not shown)
Line 1: Line 1:
 
[[Category:Audio/Video (Italiano)]]
 
[[Category:Audio/Video (Italiano)]]
{{i18n|Advanced Linux Sound Architecture}}
+
[[cs:Advanced Linux Sound Architecture]]
 
+
[[de:Alsa]]
 +
[[en:Advanced Linux Sound Architecture]]
 +
[[es:Advanced Linux Sound Architecture]]
 +
[[fa:ALSA]]
 +
[[fr:Alsa]]
 +
[[he:Advanced Linux Sound Architecture]]
 +
[[nl:Advanced Linux Sound Architecture]]
 +
[[pt:Advanced Linux Sound Architecture]]
 +
[[ru:Advanced Linux Sound Architecture]]
 +
[[sk:Advanced Linux Sound Architecture]]
 +
[[th:Advanced Linux Sound Architecture]]
 +
[[tr:Gelişmiş_ses_mimarisi_(ALSA)]]
 +
[[zh-CN:Advanced Linux Sound Architecture]]
 
L' [[Wikipedia:Advanced Linux Sound Architecture|Architettura Avanzata per il Suono su Linux]] (conosciuta con l'acronimo di '''ALSA''') è un componente del kernel creato per rimpiazzare l'originale Open Sound System (OSS) utilizzato per fornire driver di periferica per le schede audio. Oltre ai driver audio, '''ALSA''' mette a disposizione anche una libreria in spazio-utente per sviluppatori di applicazioni che vogliano utilizzare le funzioni dei driver tramite un'API piuttosto che con un'interazione diretta con i driver del kernel.
 
L' [[Wikipedia:Advanced Linux Sound Architecture|Architettura Avanzata per il Suono su Linux]] (conosciuta con l'acronimo di '''ALSA''') è un componente del kernel creato per rimpiazzare l'originale Open Sound System (OSS) utilizzato per fornire driver di periferica per le schede audio. Oltre ai driver audio, '''ALSA''' mette a disposizione anche una libreria in spazio-utente per sviluppatori di applicazioni che vogliano utilizzare le funzioni dei driver tramite un'API piuttosto che con un'interazione diretta con i driver del kernel.
  
Line 17: Line 29:
 
ALSA è incluso nel kernel di default di Arch come insieme di moduli, perciò non è necessario installarlo esplicitamente.
 
ALSA è incluso nel kernel di default di Arch come insieme di moduli, perciò non è necessario installarlo esplicitamente.
  
{{Nota|Alsa è incluso nel ramo principale del kernel di Arch ed udev interoogherà automaticamente l'hardware al boot, caricando il modulo del kernel corretto per l'hardware rilevato. Perciò, la scheda audio dovrebbe essere subito funzionante, ma di default la configurazione prevederà che tutti i canali siano impostati su muto.}}
+
[[udev (Italiano)|Udev]] interogherà automaticamente l'hardware al boot, caricando il modulo del kernel corretto per l'hardware rilevato. Perciò, la scheda audio dovrebbe essere subito funzionante, ma di default la configurazione prevederà che tutti i canali siano impostati su muto.
  
 
L'utente dovrebbe essere inserito nel gruppo "audio" per poter eseguire suoni tramite alsa. Per aggiungere il proprio utente al gruppo audio, utilizzare il seguente comando:
 
L'utente dovrebbe essere inserito nel gruppo "audio" per poter eseguire suoni tramite alsa. Per aggiungere il proprio utente al gruppo audio, utilizzare il seguente comando:
  
{{Cli|# gpasswd -a ''yourusername'' audio}}
+
{{bc|# gpasswd -a ''tuonomeutente'' audio}}
  
 
{{Nota|questa modifica non avrà effetto fino al successivo login dell'utente.}}
 
{{Nota|questa modifica non avrà effetto fino al successivo login dell'utente.}}
 
Inoltre assicurarsi di non aver installato OSS, dato che non può lavorare con i moduli del kernel di Alsa e quindi il suo script di installazione provvederà a spostare questi moduli.
 
  
 
===Utility===
 
===Utility===
  
Il pacchetto alsa-utils, contiene lo strumento alsamixer, che consente la configurazione delle periferiche audio tramite console o terminale. Installarlo con pacman:
+
Dai [[Official Repositories (Italiano)|repository ufficiali]]:
{{cli|# pacman -S alsa-utils}}
+
* Installare il pacchetto {{pkg|alsa-utils}}, contenente lo strumento {{ic|alsamixer}}, che consente la configurazione delle periferiche audio tramite console o terminale.  
Installare il pacchetto alsa-oss se si vuole che le applicazioni OSS funzionino tramite dmix:
+
* Installare il pacchetto {{pkg|alsa-oss}} se si vuole che le applicazioni OSS funzionino tramite dmix:
{{cli|# pacman -S alsa-oss}}
+
 
 +
{{Nota|A partire da udev><nowiki>=</nowiki>171, i moduli per l'emulazione OSS ({{Ic|snd_seq_oss, snd_pcm_oss, snd_mixer_oss}}) non sono più caricati automaticamente di default.}}
  
{{Nota|A partire da udev><nowiki>=</nowiki>171, i moduli per l'emulazione OSS ({{codeline|snd_seq_oss, snd_pcm_oss, snd_mixer_oss}}) non sono più caricati automaticamente di default.}}
+
* Installare il pacchetto {{Pkg|alsa-plugins}} se si necessita del [[#Ricampionamento in alta qualità |ricampionamento in alta qualità]], [[#Upmixing/Downmixing|upmixing/downmixing]] ed altre funzioni avanzate..
  
 
==Togliere il muto ai canali==
 
==Togliere il muto ai canali==
  
La versione attuale di ALSA, viene installata con tutti i canali impostati su '''muto di default'''. Sarà necessario togliere il "muto" manualmente.La cosa più semplice per fare ciò è utilizzare l'interfaccia utente in ncurses {{Codeline|alsamixer}} (alternativamente, è possibile utilizzare amixer da riga di comando):
+
La versione attuale di ALSA, viene installata con tutti i canali impostati su '''muto di default'''. Sarà necessario togliere il "muto" manualmente. Il metodo più semplice per fare ciò è utilizzare l'interfaccia utente in ncurses {{Ic|alsamixer}} (alternativamente, è possibile utilizzare {{ic|amixer}} da riga di comando):
  
{{cli|$ alsamixer}}
+
{{bc|$ alsamixer}}
  
L'etichetta "MM" sotto un canale indica che quest'ultimo è impostato su muto, mentre "00" indica che è attivo.
+
L'etichetta {{ic|MM}} sotto un canale indica che quest'ultimo è impostato su muto, mentre {{ic|00}} indica che è attivo.
  
Togliere il muto dai canali Master e PCM posizionandovi sopra di essi tramite le frecce Destra e Sinistra e premendo il taso {{keypress|M}}.Usare il tasto {{keypress|↑}} per incrementare il volume ed ottenere un "db gain" pari a 0. Il valore di gain si trova in alto a sinistra dopo il campo 'Item:'. Valori di gain superiori produrranno suoni distorti.
+
Togliere il muto dai canali {{ic|Master}} e {{ic|PCM}} posizionandovi sopra di essi tramite i tasti {{keypress|←}} e {{keypress|→}} e premendo il tasto {{keypress|M}}. Usare il tasto {{keypress|↑}} per incrementare il volume ed ottenere un "db gain" pari a 0. Il valore di gain si trova in alto a sinistra dopo il campo 'Item:'. Valori di gain superiori produrranno suoni distorti.
  
 
Per ottenere un vero suono surround 5.1 o 7.1, è necessario togliere il muto anche ad altri canali come Front, Surround, Center, LFE (subwoofer) e Side (questi sono i nomi dei canali per il modulo intel HDA, possono variare in base all'hardware).
 
Per ottenere un vero suono surround 5.1 o 7.1, è necessario togliere il muto anche ad altri canali come Front, Surround, Center, LFE (subwoofer) e Side (questi sono i nomi dei canali per il modulo intel HDA, possono variare in base all'hardware).
Line 50: Line 61:
 
Uscire da alsamixer premendo {{Keypress|Esc}}.
 
Uscire da alsamixer premendo {{Keypress|Esc}}.
  
{{Nota|Alcune schede necessitano del canale digitale disattivato per produrre suono sull'uscita analogica. Per la SoundBlaster Audigy LS è necessario impostare su muto il canale IEC958.}}
+
{{Nota|Alcune schede necessitano del canale digitale disattivato per produrre suono sull'uscita analogica. Per la SoundBlaster Audigy LS è necessario impostare su muto il canale IEC958.
  
<!--Is this still true?-->
+
Alcuni sistemi (come il Thinkpad T61), richiedono che anche il canale Speaker sia attivato e regolato.}}
{{Nota|Alcuni sistemi (come il Thinkpad T61), richiedono che anche il canale Speaker sia attivato e regolato.}}
+
  
 
Si può ora verificare che il suono funzioni:
 
Si può ora verificare che il suono funzioni:
  
{{cli|$ speaker-test -c 2}}
+
{{bc|$ speaker-test -c 2}}
 +
 
 +
Modificare il valore di -c in base al proprio sistema, ad esempio utilizzare -c 8 per un 7.1.
  
 
Se non dovesse funzionare, passare al paragrafo [[#Configurazione]] e quindi a [[#Risoluzione dei problemi]].
 
Se non dovesse funzionare, passare al paragrafo [[#Configurazione]] e quindi a [[#Risoluzione dei problemi]].
  
 
Se dovesse funzionare, rimangono solo da salvare le proprie impostazioni:
 
Se dovesse funzionare, rimangono solo da salvare le proprie impostazioni:
{{cli|# alsactl -f /var/lib/alsa/asound.state store}}
+
{{bc|# # alsactl store}}
Questo comando creerà il file {{Filename|/var/lib/alsa/asound.state}}, salvando tutte le impostazioni di alsamixer.
+
Questo comando creerà il file {{ic|/var/lib/alsa/asound.state}}, salvando tutte le impostazioni di alsamixer.
Aggiungere quindi il daemon ''alsa'' alla sezione DAEMONS all'interno di /etc/rc.conf, in modo che le impostazioni salvate siano ricaricate automaticamente ad ogni avvio.
+
Aggiungere quindi il daemon {{ic|alsa}} alla sezione DAEMONS all'interno di {{ic|/etc/rc.conf}}, in modo che le impostazioni salvate siano ricaricate automaticamente ad ogni avvio.
{{file|name=/etc/rc.conf|content=
+
{{hc|/etc/rc.conf|2=
 
.....
 
.....
 
DAEMONS=(syslog-ng network crond '''alsa''')
 
DAEMONS=(syslog-ng network crond '''alsa''')
 
.....}}
 
.....}}
{{Nota| Il daemon alsa non fa altro che ricaricare i livelli di volume dei vari canali all'avvio leggendoli da {{Filename|/var/lib/alsa/asound.state}}. Non ha nulla a che vedere con la libreria audio alsa (e le API a livello kernel).''}}
+
{{Nota| Il daemon alsa non fa altro che ricaricare i livelli di volume dei vari canali all'avvio leggendoli da {{ic|/var/lib/alsa/asound.state}}. Non ha nulla a che vedere con la libreria audio alsa (e le API a livello kernel).''}}
  
 
==Configurazione==
 
==Configurazione==
{{poor writing}}
 
Se non viene emesso alcun suono, ricontrollare i settaggi di alsamixer, assicurandosi di aver tolto il muto ai canali PCM e Master (su alcuni sistemi anche a Speaker) e provare a lanciare l'utility alsaconf da root:
 
{{Cli|# alsaconf}}
 
Tutti i moduli necessari dovrebbero essere rilevati e caricati da udev automaticamente. Non è necessaria alcuna configurazione aggiuntiva, a meno che non venga usata una scheda su slot ISA.
 
  
{{Attenzione| Non utilizzare alsaconf se si è in possesso di una scheda audio PCI o ISAPNP, i quantro le chiavi che alsaconf aggiunge a modprobe.conf potrebbero rendere mal funzionante l'autorilevamento di udev.}}
 
 
===Impostare la scheda audio predefinita===
 
===Impostare la scheda audio predefinita===
  
====Kernelspace====
+
Bisogna innanzitutto rilevare gli id della scheda e del dispositivo che si vogliono impostare come predefiniti eseguendo {{Ic|aplay -l}}.
 
+
{{hc|$ aplay -l|
I modem Telephony-capable potrebbero andare in conflitto con la scheda audio per l’attribuzione dello slot predefinito di quest’ultima. (pcspkr, modulo per l’altoparlante del PC, non è un modulo di ALSA. Esso non andrà in conflitto con le schede audio ALSA.) Per evitare conflitti, individuare il modello della propria scheda audio con [http://linux.die.net/man/8/lspci lspci(8)] e i moduli dei driver ALSA con ls(1):
+
 
+
{{command|name=ls -l /sys/module/snd/holders|output=
+
total 0
+
lrwxrwxrwx 1 root root 0 2009-06-02 23:49 snd_ac97_codec -> ../../snd_ac97_codec
+
lrwxrwxrwx 1 root root 0 2009-06-02 23:49 snd_intel8x0 -> ../../snd_intel8x0
+
lrwxrwxrwx 1 root root 0 2009-06-02 23:49 snd_intel8x0m -> ../../snd_intel8x0m
+
lrwxrwxrwx 1 root root 0 2009-06-02 23:49 snd_pcm -> ../../snd_pcm
+
lrwxrwxrwx 1 root root 0 2009-06-02 23:49 snd_timer -> ../../snd_timer
+
}}
+
O meglio (fonte[http://ubuntuforums.org/showthread.php?t=205449]):
+
{{cli|$ cat /proc/asound/modules}}
+
 
+
Quindi aggiungere i nomi dei moduli della scheda audio in:
+
 
+
{{file |name=/etc/modprobe.d/modprobe.conf|content=
+
.....
+
options snd-intel8x0 index=0
+
options snd-pcsp index=1
+
.....
+
}}
+
 
+
Queste voci assicurano che la scheda audio Intel 82801DB-ICH4 assuma il valore “0” e gli altoparlanti del PC il valore “1”.
+
NB: Alcuni moduli non supportano le opzioni di indicizzazione, ad esempio snd-hda-intel. Se si verificano problemi al riavvio, editare il file {{filename | /etc/modprobe.d/modprobe.conf}} per modificare i moduli come di seguito indicato.
+
 
+
{{Note| Affinché le modifiche abbiano effetto, è necessario ricaricare tutti i moduli relativi al suono. In alternativa potrebbe essere più facile riavviare il PC. Scegliere il metodo che si preferisce. }}
+
 
+
====Userspace====
+
 
+
Questo metodo non richiede i privilegi di root, è attuabile da utente normale e ha effetto non appena si riavvia il software (ad esempio, il lettore multimediale).
+
 
+
Nel file {{Filename|/usr/share/alsa/alsa.conf}} è presente un elenco di stringhe di default utilizzate da ALSA.  Esse possono essere sovrascritte nel file {{Filename|~/.asoundrc}}
+
{{File|name=~/.asoundrc|content=
+
pcm.!default {
+
type hw
+
card 1
+
device 0
+
}
+
ctl.!default {
+
type hw
+
card 1
+
device 0
+
}
+
}}
+
Le opzioni 'pcm' indicano la scheda e il dispositivo che saranno utilizzati per la riproduzione del suono. Tuttavia è l’opzione 'ctl' che indica quale scheda è utilizzata dalle utility di controllo come alsamixer, amixer, e simili.
+
 
+
Per individuare i numeri corrispondenti ai dispositivi audio, utilizzare il comando {{Codeline|aplay -l}}.
+
{{command|name=aplay -l|output=
+
 
**** List of PLAYBACK Hardware Devices ****
 
**** List of PLAYBACK Hardware Devices ****
 
card 0: Intel [HDA Intel], device 0: CONEXANT Analog [CONEXANT Analog]
 
card 0: Intel [HDA Intel], device 0: CONEXANT Analog [CONEXANT Analog]
Line 144: Line 103:
 
   Subdevice #0: subdevice #0
 
   Subdevice #0: subdevice #0
 
}}
 
}}
 +
 +
Ad esempio, l'ultima voce in questa lista si riferisce alla scheda con id 2, ed al dispositivo con id1. Per impostarli come predefinit1, si può sia utilizzare il file di sistema {{ic|/etc/asound.conf}}, sia quello con influenza limitata sul singolo utente {{ic|~/.asoundrc}}. Potrebbe essere necessario creare il file se quest0ultimo non dovesse esistere.. Dopodichè inserirvi le seguenti opzioni con i corrispondenti id relativi alla scheda ed al dispositivo:
 +
 +
{{hc|~/.asoundrc|2=<nowiki>
 +
defaults.pcm.card 2
 +
defaults.pcm.device 0
 +
defaults.ctl.card 2
 +
</nowiki>}}
 +
 +
L'opzione {{ic|pcm}} specifica quale scheda e dispositivo verranno utilizzati per la riproduzione dell'audio, mentre l'opzione {{ic|ctl}} indica quali saranno controllati da utility come alsamixer.
 +
Le opzioni dovrebbere essere effettive nel momento in cui un'applicazione relativa ad esse (mplayer, alsamixer, etc...) viene riavviata.
  
 
===Assicurarsi che i moduli audio siano caricati===
 
===Assicurarsi che i moduli audio siano caricati===
Line 149: Line 119:
 
Verificare che udev abbia rilevato automaticamente l'audio,con il comando:
 
Verificare che udev abbia rilevato automaticamente l'audio,con il comando:
  
{{command|name=lsmod<nowiki>|grep '^snd'|</nowiki> column -t |output=
+
{{hc|$ lsmod<nowiki>|grep '^snd'|</nowiki> column -t |
 
snd_hda_codec_hdmi    22378  4
 
snd_hda_codec_hdmi    22378  4
 
snd_hda_codec_realtek  294191  1
 
snd_hda_codec_realtek  294191  1
Line 161: Line 131:
 
}}
 
}}
  
Se l'output è simile, i driver audio sono stati autorilevati con successo. Si può anche controllare la directory {{filename|/dev/snd}} per visualizzare i giusti file del dispositivo:
+
Se l'output è simile, i driver audio sono stati autorilevati con successo. Si può anche controllare la directory {{ic|/dev/snd}} per visualizzare i giusti file del dispositivo:
  
{{Nota|A partire da udev><nowiki>=</nowiki>171, i moduli per l'emulazione OSS ({{codeline|snd_seq_oss, snd_pcm_oss, snd_mixer_oss}}) non sono più caricati automaticamente di default: caricarli esplicitamente con {{codeline|modprobe}} e/o aggiungerli all'array {{codeline|MODULES}} all'interno di [[rc.conf|{{Filename|/etc/rc.conf}}]] se si desidera che vengano caricati automaticamente ad ogni avvio.}}
+
{{Nota|A partire da udev><nowiki>=</nowiki>171, i moduli per l'emulazione OSS ({{Ic|snd_seq_oss, snd_pcm_oss, snd_mixer_oss}}) non sono più caricati automaticamente di default: caricarli esplicitamente con {{Ic|modprobe}} e/o aggiungerli all'array {{Ic|MODULES}} all'interno di [[rc.conf|{{ic|/etc/rc.conf}}]] se si desidera che vengano caricati automaticamente ad ogni avvio.}}
  
{{command|name=ls -l /dev/snd/|output=
+
{{hc|$ ls -l /dev/snd/|
 
total 0
 
total 0
 
crw-rw----  1 root audio 116,  0 Apr  8 14:17 controlC0
 
crw-rw----  1 root audio 116,  0 Apr  8 14:17 controlC0
Line 179: Line 149:
 
'''In caso di richiesta di aiuto su IRC o sui forum, per favore postare l'output dei comandi di sopra.'''
 
'''In caso di richiesta di aiuto su IRC o sui forum, per favore postare l'output dei comandi di sopra.'''
  
Se sono presenti i dispositivi {{codeline|controlC0}} e {{codeline|pcmC0D0p}} o simili, allora i moduli audio sono stati rilevati e caricati correttamente.
+
Se sono presenti i dispositivi {{Ic|controlC0}} e {{Ic|pcmC0D0p}} o simili, allora i moduli audio sono stati rilevati e caricati correttamente.
  
 
Altrimenti, i moduli audio non sono stati rilevati correttamente. Per risolvere, provare a caricare i moduli manualmente:
 
Altrimenti, i moduli audio non sono stati rilevati correttamente. Per risolvere, provare a caricare i moduli manualmente:
Line 185: Line 155:
 
* Individuare il modulo della scheda audio: [http://www.alsa-project.org/main/index.php/Matrix:Main ALSA Soundcard Matrix]. Il modulo sarà preceduto dal suffisso 'snd-' (ad esempio: 'snd-via82xx').
 
* Individuare il modulo della scheda audio: [http://www.alsa-project.org/main/index.php/Matrix:Main ALSA Soundcard Matrix]. Il modulo sarà preceduto dal suffisso 'snd-' (ad esempio: 'snd-via82xx').
 
* Caricare i moduli:
 
* Caricare i moduli:
{{cli|# modprobe snd-NAME-OF-MODULE
+
{{bc|# modprobe snd-NAME-OF-MODULE
 
<nowiki>#</nowiki> modprobe snd-pcm-oss}}
 
<nowiki>#</nowiki> modprobe snd-pcm-oss}}
* Controllare i file del dispositivo in {{Filename|/dev/snd}} (vedi sopra) e/o provare se {{codeline|alsamixer}} o {{codeline|amixer}} hanno un corretto output.
+
* Controllare i file del dispositivo in {{ic|/dev/snd}} (vedi sopra) e/o provare se {{Ic|alsamixer}} o {{Ic|amixer}} hanno un corretto output.
* Aggiungere {{codeline|snd-NOME-DEL-MODULO}} e {{codeline|snd-pcm-oss}} alla lista dei MODULI in {{Filename|/etc/rc.conf}} per assicurarsi che essi vengano caricati la prossima volta (assicurarsi che {{codeline|snd-NOME-DEL-MODULO}} preceda {{codeline|snd-pcm-oss}}).
+
* Aggiungere {{Ic|snd-NOME-DEL-MODULO}} e {{Ic|snd-pcm-oss}} alla lista dei MODULI in {{ic|/etc/rc.conf}} per assicurarsi che essi vengano caricati la prossima volta (assicurarsi che {{Ic|snd-NOME-DEL-MODULO}} preceda {{Ic|snd-pcm-oss}}).
  
 
===Ripristinare le impostazioni di Alsa Mixer all'avvio===
 
===Ripristinare le impostazioni di Alsa Mixer all'avvio===
  
* Avviare {{Codeline|alsactl -f /var/lib/alsa/asound.state store}} per creare {{Filename|/var/lib/alsa/asound.state}}
+
{{Attenzione| Se si utilizza {{ic|kmix}}, assicurarsi di configurarlo in maniera che non si occupi del ripristino dei livelli, altrimenti si verificherà un conflitto con la configurazione mostrata di seguito.}}
 +
* Avviare {{Ic|alsactl -f /var/lib/alsa/asound.state store}} per creare {{ic|/var/lib/alsa/asound.state}}
  
{{cli|# alsactl-f /var/lib/alsa/asound.state store}}
+
{{bc|# alsactl-f /var/lib/alsa/asound.state store}}
  
* Editare {{Filename|/etc/[[rc.conf]]}} e aggiungere {{Codeline|"alsa"}} alla lista dei demoni da far partire all'avvio. Questo salverà le regolazioni del mixer a ogni arresto del sistema e le ripristinerà all'avvio.
+
* Editare {{ic|/etc/[[rc.conf]]}} e aggiungere {{Ic|"alsa"}} alla lista dei demoni da far partire all'avvio. Questo salverà le regolazioni del mixer a ogni arresto del sistema e le ripristinerà all'avvio.
  
* Se i settaggi del mixer non vengono caricati all'avvio, aggiungere la seguente stringa in {{filename|/etc/rc.local}}.
+
* Se i settaggi del mixer non vengono caricati all'avvio, aggiungere la seguente stringa in {{ic|/etc/rc.local}}.
  
{{file|name=/etc/rc.local|content=alsactl -f /var/lib/alsa/asound.state restore}}
+
{{hc|/etc/rc.local|alsactl -f /var/lib/alsa/asound.state restore}}
  
 
* Questo metodo potrebbe non funzionare, oppure potrebbe sorgere l'esigenza di avere differenti impostazioni audio per i singoli utenti. In questo caso, lanciare il comando  
 
* Questo metodo potrebbe non funzionare, oppure potrebbe sorgere l'esigenza di avere differenti impostazioni audio per i singoli utenti. In questo caso, lanciare il comando  
{{cli|alsactl store -f ~/.asoundrc}} come utente semplice.  Così facendo si salveranno e si ripristineranno le impostazioni del volume sulla base di un singolo utente. Per automatizzare questo procedimento aggiungere i due comando rispettivamente nei file {{Filename|~/.bash_login}} e {{Filename|~/.bash_logout}}. Correggere il percorso di questi file nel caso si utilizzi una shell differente da  ''bash''. Ad esempio se si utilizza {{codeline|zsh}} modificare {{Filename|~/.zlogin}} e {{Filename|~/.zlogout}}.
+
{{bc|alsactl store -f ~/.asoundrc}} come utente semplice.  Così facendo si salveranno e si ripristineranno le impostazioni del volume sulla base di un singolo utente. Per automatizzare questo procedimento aggiungere i due comando rispettivamente nei file {{ic|~/.bash_login}} e {{ic|~/.bash_logout}}. Correggere il percorso di questi file nel caso si utilizzi una shell differente da  ''bash''. Ad esempio se si utilizza {{Ic|zsh}} modificare {{ic|~/.zlogin}} e {{ic|~/.zlogout}}.
  
 
===Ottenere un output SPDIF===
 
===Ottenere un output SPDIF===
Line 210: Line 181:
 
* Nel Controllo Volume di GNOME, sotto il tab delle opzioni, cambiare IEC958 in PCM.  Questa opzione può essere abilitata nelle preferenze.
 
* Nel Controllo Volume di GNOME, sotto il tab delle opzioni, cambiare IEC958 in PCM.  Questa opzione può essere abilitata nelle preferenze.
 
* Se non è installato il Controllo Volume di GNOME,
 
* Se non è installato il Controllo Volume di GNOME,
** Editare {{Filename|/var/lib/alsa/asound.state}}. In questo file alsasound salva le regolazioni del mixer.
+
** Editare {{ic|/var/lib/alsa/asound.state}}. In questo file alsasound salva le regolazioni del mixer.
** Trovare la riga che riporta: {{codeline|IEC958 Playback Switch}}.  Vicino ad essa c'è una riga nella quale è indicato {{codeline|value:false}}. Cambiarla in {{codeline|value:true}}.
+
** Trovare la riga che riporta: {{Ic|IEC958 Playback Switch}}.  Vicino ad essa c'è una riga nella quale è indicato {{Ic|value:false}}. Cambiarla in {{Ic|value:true}}.
** Adesso trovare questa riga: {{codeline|IEC958 Playback AC97-SPSA}}. Cambiare il suo valore in {{codeline|0}}.
+
** Adesso trovare questa riga: {{Ic|IEC958 Playback AC97-SPSA}}. Cambiare il suo valore in {{Ic|0}}.
 
** Riavviare alsa.
 
** Riavviare alsa.
  
 
Un metodo alternativo per abilitare un output SPDIF automaticamente al login (testato su una SoundBlaster Audigy) è il seguente:
 
Un metodo alternativo per abilitare un output SPDIF automaticamente al login (testato su una SoundBlaster Audigy) è il seguente:
* aggiungere le seguenti righe in {{Filename|/etc/rc.local}}:
+
* aggiungere le seguenti righe in {{ic|/etc/rc.local}}:
  
{{file|name=/etc/rc.local|content=
+
{{hc|/etc/rc.local|
 
# Use COAX-digital output
 
# Use COAX-digital output
 
amixer set 'IEC958 Optical' 100 unmute
 
amixer set 'IEC958 Optical' 100 unmute
Line 225: Line 196:
 
Si può visualizzare il nome dell'uscita digitale della scheda con:
 
Si può visualizzare il nome dell'uscita digitale della scheda con:
  
{{cli|$ amixer scontrols}}
+
{{bc|$ amixer scontrols}}
  
 
===Equalizzatore System-Wide===
 
===Equalizzatore System-Wide===
 
====Utilizzando AlsaEqual (fornisce l’interfaccia grafica)====
 
====Utilizzando AlsaEqual (fornisce l’interfaccia grafica)====
  
Installare [http://aur.archlinux.org/packages.php?ID=27066 alsaequal] da [[AUR]].
+
Installare {{AUR|alsaequal}} da [[AUR]].
  
 
{{Note | Se si utilizza un sistema x86_64 e 32bit-flashplugin, il suono in flash non funzionerà. Si dovrà quindi o disabilitare alsaequal o compilarlo per 32bit.}}
 
{{Note | Se si utilizza un sistema x86_64 e 32bit-flashplugin, il suono in flash non funzionerà. Si dovrà quindi o disabilitare alsaequal o compilarlo per 32bit.}}
  
Dopo aver installato il pacchetto, inserire nel file di configurazione ALSA ({{Filename|~/.asoundrc}} o {{Filename|/etc/asound.conf}}) quanto segue:
+
Dopo aver installato il pacchetto, inserire nel file di configurazione ALSA ({{ic|~/.asoundrc}} o {{ic|/etc/asound.conf}}) quanto segue:
  
{{file|name=~/.asoundrc|content=ctl.equal {
+
{{hc|~/.asoundrc|ctl.equal {
 
  type equal;
 
  type equal;
 
}
 
}
Line 260: Line 231:
  
 
Quindi ricaricare le impostazioni di alsa (da utente root).
 
Quindi ricaricare le impostazioni di alsa (da utente root).
{{cli|# /etc/rc.d/alsa restart}}
+
{{bc|# rc.d restart alsa}}
 
È molto importante chiudere tutte le applicazioni che utilizzano ALSA.
 
È molto importante chiudere tutte le applicazioni che utilizzano ALSA.
  
 
Ora si è pronti per modificare l’equalizzatore tramite il comando:
 
Ora si è pronti per modificare l’equalizzatore tramite il comando:
{{cli|$ alsamixer -D equal}}
+
{{bc|$ alsamixer -D equal}}
  
Si noti che il file di configurazione, diverso per ogni utente (se non diversamente specificato), viene salvato in {{filename|$HOME/.alsaequal.bin}}.
+
Si noti che il file di configurazione, diverso per ogni utente (se non diversamente specificato), viene salvato in {{ic|$HOME/.alsaequal.bin}}.
 
Perciò se si vuole utilizzare AlsaEqual con [[mpd]] o con un altro software, con un utente diverso, è possibile configurarlo con il comando:
 
Perciò se si vuole utilizzare AlsaEqual con [[mpd]] o con un altro software, con un utente diverso, è possibile configurarlo con il comando:
{{cli|# su mpd -c 'alsamixer -D equal}}
+
{{bc|# su mpd -c 'alsamixer -D equal}}
Oppure, è possibile creare un link simbolico a {{filename|.alsaequal.bin}} nella home di quell’utente.
+
Oppure, è possibile creare un link simbolico a {{ic|.alsaequal.bin}} nella home di quell’utente.
  
 
====Utilizzando mbeq====
 
====Utilizzando mbeq====
  
{{Box_Note|Questo metodo richiede l'utilizzo del plugin ladspa che può comportare un consumo un po' più alto della CPU quando si esegue un suono. Inoltre, questo metodo è pensato per l'utilizzo di un suono stereofonico (ad esempio, ottimizzato per un ascolto tramite cuffie) }}
+
{{Nota|Questo metodo richiede l'utilizzo del plugin ladspa che può comportare un consumo un po' più alto della CPU quando si esegue un suono. Inoltre, questo metodo è pensato per l'utilizzo di un suono stereofonico (ad esempio, ottimizzato per un ascolto tramite cuffie) }}
  
* sarà necessario, oltre alle utility precedentemente menzionate, anche il pacchetto alsa-plugins
+
Installare {{Pkg|alsa-plugins}}, {{Pkg|ladspa}} e {{Pkg|swh-plugins}}
  
{{cli|# pacman -S alsa-plugins}}
+
* sarà necessario avere uno dei file tra {{ic|~/.asoundrc}} e {{ic|/etc/asound.conf}}, dunque, se non è ancora stato fatto, creare uno dei due
  
* installare, se non si hanno già, i pacchetti ladspa e swh-plugins
+
{{bc|touch ~/.asoundrc}}
  
{{cli|# pacman -S ladspa swh-plugins}}
+
ed inserirvi le seguenti righe:
  
* sarà necessario avere uno dei file tra {{Filename|~/.asoundrc}} e {{Filename|/etc/asound.conf}}, dunque, se non è ancora stato fatto, creare uno dei due
+
{{hc|/etc/asound.conf|2=<nowiki>pcm.eq {
 +
  type ladspa
  
{{cli|touch ~/.asoundrc}}
+
  # The output from the EQ can either go direct to a hardware device
 +
  # (if you have a hardware mixer, e.g. SBLive/Audigy) or it can go
 +
  # to the software mixer shown here.
 +
  #slave.pcm "plughw:0,0"
 +
  slave.pcm "plug:dmix"
  
* inserire nel file di configurazione di ALSA ({{Filename|~/.asoundrc}} oppure {{Filename|/etc/asound.conf}}) le seguenti righe:
+
  # Sometimes you may need to specify the path to the plugins,
 +
  # especially if you have just installed them.  Once you have logged
 +
  # out/restarted this should not be necessary, but if you get errors
 +
  # about being unable to find plugins, try uncommenting this.
 +
  #path "/usr/lib/ladspa"
  
{{file |name=/etc/asound.conf |content=pcm.eq {
+
  plugins [
type ladspa<br>
+
    {
# The output from the EQ can either go direct to a hardware device
+
      label mbeq
# (if you have a hardware mixer, e.g. SBLive/Audigy) or it can go
+
      id 1197
# to the software mixer shown here.
+
      input {
#slave.pcm "plughw:0,0"
+
        #this setting is here by example, edit to your own taste
slave.pcm "plug:dmix"<br>
+
        #bands: 50hz, 100hz, 156hz, 220hz, 311hz, 440hz, 622hz, 880hz, 1250hz, 1750hz, 25000hz,
# Sometimes you may need to specify the path to the plugins,
+
        #50000hz, 10000hz, 20000hz
# especially if you've just installed them.  Once you've logged
+
        controls [ -5 -5 -5 -5 -5 -10 -20 -15 -10 -10 -10 -10 -10 -3 -2 ]
# out/restarted this shouldn't be necessary, but if you get errors
+
      }
# about being unable to find plugins, try uncommenting this.
+
    }
#path "/usr/lib/ladspa"<br>
+
  ]
plugins [
+
}
  {
+
 
    label mbeq
+
# Redirect the default device to go via the EQ - you may want to do
    id 1197
+
# this last, once you're sure everything is working.  Otherwise all
    input {
+
# your audio programs will break/crash if something has gone wrong.
      #this setting is here by example, edit to your own taste
+
 
      #bands: 50hz, 100hz, 156hz, 220hz, 311hz, 440hz, 622hz, 880hz, 1250hz, 1750hz, 25000hz,
+
pcm.!default {
      #50000hz, 10000hz, 20000hz
+
  type plug
      controls [ -5 -5 -5 -5 -5 -10 -20 -15 -10 -10 -10 -10 -10 -3 -2 ]
+
  slave.pcm "eq"
    }
+
}
  }
+
 
]
+
# Redirect the OSS emulation through the EQ too (when programs are running through "aoss")
}<br>
+
 
# Redirect the default device to go via the EQ - you may want to do
+
pcm.dsp0 {
# this last, once you're sure everything is working.  Otherwise all
+
  type plug
# your audio programs will break/crash if something has gone wrong.<br>
+
  slave.pcm "eq"
pcm.!default {
+
}
type plug
+
</nowiki>}}
slave.pcm "eq"
+
}<br>
+
# Redirect the OSS emulation through the EQ too (when programs are running through "aoss")<br>
+
pcm.dsp0 {
+
type plug
+
slave.pcm "eq"
+
}
+
}}
+
  
 
* ricaricare le impostazioni di alsa (da utente root)
 
* ricaricare le impostazioni di alsa (da utente root)
  
{{cli| # /etc/rc.d/alsa restart}}
+
{{bc| # rc.d restart alsa}}
  
 
* ora tutto dovrebbe essere sistemato
 
* ora tutto dovrebbe essere sistemato
Line 339: Line 311:
  
 
Installare alsa-plugins e libsamplerate
 
Installare alsa-plugins e libsamplerate
{{cli|# pacman -S alsa-plugins libsamplerate}}
+
{{bc|# pacman -S alsa-plugins libsamplerate}}
  
 
Modificare il tasso di conversione di default a libsamplerate
 
Modificare il tasso di conversione di default a libsamplerate
  
{{File|name=/etc/asoundrc|content=defaults.pcm.rate_converter "samplerate_best"}}
+
{{hc|/etc/asoundrc|defaults.pcm.rate_converter "samplerate_best"}}
  
 
'''samplerate_best''' offre la miglior qualità audio, ma necessità di cpu almeno decenti, in quanto il ricampionamento in tempo reale richiede un numero notevole di cicli di cpu. Sono disponibili anche altri algoritmi ('''samplerate''', etc.) ma non forniscono tangibili miglioramenti rispetto al ricampionatore di default.
 
'''samplerate_best''' offre la miglior qualità audio, ma necessità di cpu almeno decenti, in quanto il ricampionamento in tempo reale richiede un numero notevole di cicli di cpu. Sono disponibili anche altri algoritmi ('''samplerate''', etc.) ma non forniscono tangibili miglioramenti rispetto al ricampionatore di default.
Line 351: Line 323:
  
 
Per fare in modo che una sorgente audio stereo saturi tutte le uscite di un sistema che ne ha più di 2, come 5.1 o 7.1, è necessario effettuare un upmixing. In passato questa procedura risultava complessa e suscettibile di errori, ma al giorno d'oggi esistono dei plugin che se ne occupano. Installare {{Pkg|alsa-plugins}}
 
Per fare in modo che una sorgente audio stereo saturi tutte le uscite di un sistema che ne ha più di 2, come 5.1 o 7.1, è necessario effettuare un upmixing. In passato questa procedura risultava complessa e suscettibile di errori, ma al giorno d'oggi esistono dei plugin che se ne occupano. Installare {{Pkg|alsa-plugins}}
{{Cli|# pacman -S alsa-plugins}}
+
{{bc|# pacman -S alsa-plugins}}
  
Dopodichè aggiungere il seguente codice al file di configurazione di alsa a propria scelta ({{filename|/etc/asound.conf}} oppure {{filename|~/.asoundrc}}):
+
Dopodichè aggiungere il seguente codice al file di configurazione di alsa a propria scelta ({{ic|/etc/asound.conf}} oppure {{ic|~/.asoundrc}}):
  
{{file|name=~/.asoundrc|content=pcm.upmix71 {
+
{{hc|~/.asoundrc|pcm.upmix71 {
 
     type upmix
 
     type upmix
 
     slave.pcm "surround71"
 
     slave.pcm "surround71"
Line 367: Line 339:
 
Questo metodo aggiunge un nuovo pcm che è possibile utilizzare per l'upmixing. Se si vuole che tutte le sorgenti audio vengano redirette verso questo pcm, aggiungerlo come default successivamente al codice appena scritto, in questo modo
 
Questo metodo aggiunge un nuovo pcm che è possibile utilizzare per l'upmixing. Se si vuole che tutte le sorgenti audio vengano redirette verso questo pcm, aggiungerlo come default successivamente al codice appena scritto, in questo modo
  
{{file|name=~/.asoundrc|content=
+
{{hc|~/.asoundrc|
 
....
 
....
 
pcm.!default "plug:upmix71"
 
pcm.!default "plug:upmix71"
Line 373: Line 345:
 
}}
 
}}
  
Il plugin consente automaticamente alle sorgenti di essere riprodotte attraverso di esso, quindi impostarlo come predefinito è una scelta sicura.
+
Il plugin consente automaticamente alle sorgenti di essere riprodotte attraverso di esso, quindi impostarlo come predefinito è una scelta sicura. Se ciò non dovesse funzionare, si può provare a impostare dmix affinchè effettui l'upmixing del canale PCM in questo modo
Se si dovessero riscontrare problemi di suono che salta o risulta distorto, provare ad incrementare la dimensione del buffer (ad esempio a 32768) oppure utilizzare un [[#Ricampionamento in alta qualità|ricampionatore di alta qualità]].
+
{{hc|~/.asoundrc|
 +
pcm.dmix6 {
 +
    type asym
 +
    playback.pcm {
 +
        type dmix
 +
        ipc_key 567829
 +
        slave {
 +
            pcm "hw:0,0"
 +
            channels 6
 +
        }
 +
    }
 +
}
 +
}}
 +
ed usare "dmix6" al posto di "surround71". Se si dovessero riscontrare problemi di suono che salta o risulta distorto, provare ad incrementare la dimensione del buffer (ad esempio a 32768) oppure utilizzare un [[#Ricampionamento in alta qualità|ricampionatore di alta qualità]].
  
 
===Downmixing===
 
===Downmixing===
Line 381: Line 366:
 
Nel file di configurazione aggiungere quanto segue
 
Nel file di configurazione aggiungere quanto segue
  
{{file|name=~/.asoundrc|content=pcm.!surround51 {
+
{{hc|~/.asoundrc|pcm.!surround51 {
 
     type vdownmix
 
     type vdownmix
 
     slave.pcm "default"
 
     slave.pcm "default"
Line 396: Line 381:
 
Sistema di mixaggio software di ALSA
 
Sistema di mixaggio software di ALSA
  
{{Nota|: Per versioni di ALSA uguali o superiori alla 1.0.9rc2 non vi è necessità di configurare dmix. Dmix è abilitato di default se viene rilevata una scheda audio che non supporta il mixaggio via hardware.}}
+
{{Nota|: Per versioni di ALSA uguali o superiori alla 1.0.9rc2 non vi è necessità di configurare dmix per le uscite audio analogiche. Dmix è abilitato di default se viene rilevata una scheda audio che non supporta il mixaggio via hardware.}}
  
Se comunque non dovesse funzionare automaticamente è sufficiente creare il (o modificare l'esistente) file {{filename|~/.asoundrc}} con questo contenuto:  
+
Se comunque non dovesse funzionare automaticamente è sufficiente creare il (o modificare l'esistente) file {{ic|~/.asoundrc}} con questo contenuto:  
  
{{file|name=~/.asoundrc|content=
+
{{hc|~/.asoundrc|
 
pcm.dsp {
 
pcm.dsp {
 
     type plug
 
     type plug
Line 406: Line 391:
 
}
 
}
 
}}
 
}}
 +
 +
Questo dovrebbe abilitare il mixaggio software ed abilitare più applicazioni all'accesso alla periferica contemporaneamente.
 +
Per le uscite audio digitali come S/PDIF, il pacchetto ALSA tuttora non abilita dmix di default. Perciò la configurazione appena mostrata si rivela in questo caso necessaria per l'utilizzo del mixaggio software su uscite S/PDIF.
 
Consultare [[#Risoluzione dei problemi]] per soluzioni a problemi comuni.
 
Consultare [[#Risoluzione dei problemi]] per soluzioni a problemi comuni.
  
Line 411: Line 399:
 
{{poor writing}}
 
{{poor writing}}
  
Bisogna utilizzare schede audio che supportino il mixaggio hardware: le vecchie serie SoundBlaster Live! (emu10k1 chip) e le nuove Audigy (emu10k2 chip) sono da considerarsi utilizzabili.
+
*Bisogna utilizzare schede audio che supportino il mixaggio hardware: le vecchie serie SoundBlaster Live! (emu10k1 chip) e le nuove Audigy (emu10k2 chip) sono da considerarsi utilizzabili.
La SounBlaster Live! 5.1 è facilmente reperibile ad un prezzo contenuto.
+
*La SounBlaster Live! 5.1 è facilmente reperibile ad un prezzo contenuto.
  
{{Nota| le nuove economiche Audigy SE, Audigy 2 NX, SoundBlaster Live! 24bit e SoundBlaster Live! 7.1 '''non supportano''' il mixaggio hardware (utilizzano altri chip).
+
{{Nota| le nuove economiche Audigy SE, Audigy 2 NX, SoundBlaster Live! 24bit e SoundBlaster Live! 7.1 '''non supportano''' il mixaggio hardware (utilizzano altri chip).}}
  
Il 99% delle schede madri con audio integrato '''non supporta''' il mixaggio hardware.
+
{{Nota| Il 99% delle schede madri con audio integrato '''non supporta''' il mixaggio hardware.}}
  
Un eccezione è il chip integrato VIA8237 che supporta il mixaggio hardware di 4 flussi. In realtà ridotti a 3 su alcune schede madri (il quarto non emette suono). Anche se funzionante, la qualità del suono non è comparabile a quella delle altre soluzioni.}}
+
{{Nota|Un eccezione è il chip integrato VIA8237 che supporta il mixaggio hardware di 4 flussi. In realtà ridotti a 3 su alcune schede madri (il quarto non emette suono). Anche se funzionante, la qualità del suono non è comparabile a quella delle altre soluzioni.}}
  
Per Arch64 e la scheda 00:1b.0 Audio device: Intel Corporation 82801I (ICH9 Family) HD Audio Controller (rev 02), bisogna impostare alcuni parametri per ottenere suono da [[Enemy Territory]]:
+
*Per Arch64 e la scheda 00:1b.0 Audio device: Intel Corporation 82801I (ICH9 Family) HD Audio Controller (rev 02), bisogna impostare alcuni parametri per ottenere suono da Enemy Territory:
{{cli|$echo "et.x86 0 0 direct" > /proc/asound/card0/pcm0p/oss
+
{{bc|$ echo "et.x86 0 0 direct" > /proc/asound/card0/pcm0p/oss
 
$ echo "et.x86 0 0 disable" > /proc/asound/card0/pcm0c/oss}}
 
$ echo "et.x86 0 0 disable" > /proc/asound/card0/pcm0c/oss}}
  
Line 427: Line 415:
  
 
===Suono che salta utilizzando Dynamic Frequency Scaling===
 
===Suono che salta utilizzando Dynamic Frequency Scaling===
Alcune combinazioni di determinati driver ALSA e chipset, possono causare dei "salti" nel suono da tutte le sorgenti se utilizzati in combinazione con  un governor dinamico della frequenza della cpu come {{codeline|ondemand}} o {{codeline|conservative}}. Attualmente, l'unica soluzione è di passare al governor {{codeline|performance}}.
+
Alcune combinazioni di determinati driver ALSA e chipset, possono causare dei "salti" nel suono da tutte le sorgenti se utilizzati in combinazione con  un governor dinamico della frequenza della cpu come {{Ic|ondemand}} o {{Ic|conservative}}. Attualmente, l'unica soluzione è di passare al governor {{Ic|performance}}.
 
Fare riferimento alla pagina [[CPU Frequency Scaling (Italiano)]] per ulteriori informazioni.
 
Fare riferimento alla pagina [[CPU Frequency Scaling (Italiano)]] per ulteriori informazioni.
  
 
===Problemi con la disponibilità del mixaggio software per più di un utente per volta===
 
===Problemi con la disponibilità del mixaggio software per più di un utente per volta===
Può capitare di rilevare che solo un utente per volta può utilizzare dmix. Questa situazione può andar bene per la maggior parte degli utenti, ma coloro i quali utilizzano [[mpd]] come utente differente, ciò diviene un problema. Quando mpd è in esecuzione un utente non può eseguire suoni tramite dmix. Nonostante sia sufficiente eseguire mpd tramite l'account utente di login, è stata trovata anche un'altra soluzione. L'aggiunta della riga {{codeline|ipc_key_add_uid 0}} al blocco {{codeline|pcm.dmixer}} disabilita questa limitazione. Quello seguente è un estratto del codice di {{filename|/etc/asound.conf}}, il resto è identico a quello mostrato in precedenza.
+
Può capitare di rilevare che solo un utente per volta può utilizzare dmix. Questa situazione può andar bene per la maggior parte degli utenti, ma coloro i quali utilizzano [[mpd]] come utente differente, ciò diviene un problema. Quando mpd è in esecuzione un utente non può eseguire suoni tramite dmix. Nonostante sia sufficiente eseguire mpd tramite l'account utente di login, è stata trovata anche un'altra soluzione. L'aggiunta della riga {{Ic|ipc_key_add_uid 0}} al blocco {{Ic|pcm.dmixer}} disabilita questa limitazione. Quello seguente è un estratto del codice di {{ic|/etc/asound.conf}}, il resto è identico a quello mostrato in precedenza.
{{file|name=/etc/asound.conf|content=
+
{{hc|/etc/asound.conf|
 
...
 
...
 
pcm.dmixer {
 
pcm.dmixer {
Line 442: Line 430:
 
...
 
...
 
}}
 
}}
 +
 +
=== Problemi di riproduzione simultanea ===
 +
Se si  hanno problemmi a riprodurre più tracce contemporaneamente, e se è installto [[PulseAudio]] (ad esempio utilizzando [[GNOME]]), la sua configurazione di default verrà utilizzata automaticamente. Alcuni utenti potrebbero non voler utilizzare [[PulseAudio]] trovandosi bene con le proprie configurazioni di ALSA. Un metodo per risolvere il problema, è modificare il file {{ic|/etc/asound.conf}} e commentare le righe seguenti:
 +
{{bc|# Use PulseAudio by default
 +
#pcm.!default {
 +
#  type pulse
 +
#  fallback "sysdefault"
 +
#  hint {
 +
#    show on
 +
#    description "Default ALSA Output (currently PulseAudio Sound Server)"
 +
#  }
 +
#}
 +
}}
 +
Commentare anche queste potrebbe rivelarsi necessario:
 +
{{bc|#ctl.!default {
 +
#  type pulse
 +
#  fallback "sysdefault"
 +
#}
 +
}}
 +
Questa può rivelarsi una soluzione più semplice rispetto alla totale disinstallazione di [[PulseAudio]].
 +
Qui di seguito viene mostrato un esempio di un {{ic|/etc/asound.conf}} correttamente funzionante.
 +
{{bc|cm.dmixer {
 +
        type dmix
 +
        ipc_key 1024
 +
        ipc_key_add_uid 0
 +
        ipc_perm 0660
 +
}
 +
pcm.dsp {
 +
        type plug
 +
        slave.pcm "dmix"
 +
}
 +
}}
 +
{{Nota| Questo {{ic|/etc/asound.conf}} è stato creato ed utilizzato con successo per una configurazione globale di [[Music Player Daemon (Italiano)|MPD]]. Consultare [[Advanced_Linux_Sound_Architecture_(Italiano)#Problemi_con_la_disponibilit.C3.A0_del_mixaggio_software_per_pi.C3.B9_di_un_utente_per_volta|questa sezione]]}}
  
 
===Mancanza di suono casuale===
 
===Mancanza di suono casuale===
  
Se ad intervalli irregolari ci si ritrova senza suono all'avvio, la causa potrebbe essere la presenza nel sistema di più di una scheda audio, ed il fatto che il loro ordine di enumerazione venga invertito. Se è questo il caso bisogna modificare questa sezione di {{filename|/etc/asound.conf}}
+
Se ad intervalli irregolari ci si ritrova senza suono all'avvio, la causa potrebbe essere la presenza nel sistema di più di una scheda audio, ed il fatto che il loro ordine di enumerazione venga invertito. Se è questo il caso bisogna modificare questa sezione di {{ic|/etc/asound.conf}}
  
{{file|name=/etc/asound.conf|content=
+
{{hc|/etc/asound.conf|
 
.....
 
.....
 
ctl.dmixer {
 
ctl.dmixer {
Line 456: Line 477:
 
}}
 
}}
  
Sostituendo a FOO la periferica audio desiderata, come riportato in {{filename|/proc/asound/cards}} Un esempio del file è mostrato qui
+
Sostituendo a FOO la periferica audio desiderata, come riportato in {{ic|/proc/asound/cards}} Un esempio del file è mostrato qui
{{file|name=/proc/asound/cards|content=
+
{{hc|/proc/asound/cards|
 
0 [U0x46d0x9a1    ]: USB-Audio - USB Device 0x46d:0x9a1
 
0 [U0x46d0x9a1    ]: USB-Audio - USB Device 0x46d:0x9a1
 
                     USB Device 0x46d:0x9a1 at usb-0000:00:12.2-2, high speed
 
                     USB Device 0x46d:0x9a1 at usb-0000:00:12.2-2, high speed
Line 465: Line 486:
  
 
La periferica 0 è il microfono integrato nella webcam, mentre la periferica 1 è la scheda audio integrata.
 
La periferica 0 è il microfono integrato nella webcam, mentre la periferica 1 è la scheda audio integrata.
Se si è copiato {{filename|/etc/asound.conf}} da quassù senza adattarlo, ALSA tenterà di inizializzare il microfono come una periferica d'uscita, ma ciò fallirà e non si otterrà alcun suono. Anzichè sostituire a FOO il numero della periferica, si può utilizzare il nome di quest'ultima, riportato subito dopo al numero, in questo modo:
+
Se si è copiato {{ic|/etc/asound.conf}} da quassù senza adattarlo, ALSA tenterà di inizializzare il microfono come una periferica d'uscita, ma ciò fallirà e non si otterrà alcun suono. Anzichè sostituire a FOO il numero della periferica, si può utilizzare il nome di quest'ultima, riportato subito dopo al numero, in questo modo:
  
{{file|name=/etc/asound.conf|content=
+
{{hc|/etc/asound.conf|
 
.....
 
.....
 
ctl.dmixer {
 
ctl.dmixer {
Line 475: Line 496:
 
.....
 
.....
 
}}
 
}}
Per fare in modo che la maggior parte dei programmi utilizzino ALSA, assicurarsi che {{filename|/etc/libao.conf}} contenga solo la riga
+
Per fare in modo che la maggior parte dei programmi utilizzino ALSA, assicurarsi che {{ic|/etc/libao.conf}} contenga solo la riga
{{codeline|default_driver<nowiki>=</nowiki>alsa10}}
+
{{Ic|default_driver<nowiki>=</nowiki>alsa10}}
  
 
Se si utilizza mpd, ma i consigli proposti finora non funzionano, [http://mpd.wikia.com/wiki/Configuration#ALSA_MPD_software_volume_control consultare questa pagina].
 
Se si utilizza mpd, ma i consigli proposti finora non funzionano, [http://mpd.wikia.com/wiki/Configuration#ALSA_MPD_software_volume_control consultare questa pagina].
Line 483: Line 504:
  
 
Per alcuni programmi che continuano ad utilizzare i loro propri settaggi audio, come XMMS ed Mplayer, potrebbe rendersi necessaria l'impostazione dei loro specifici parametri.
 
Per alcuni programmi che continuano ad utilizzare i loro propri settaggi audio, come XMMS ed Mplayer, potrebbe rendersi necessaria l'impostazione dei loro specifici parametri.
Per Mplayer, aprire{{filename|~/.mplayer/config}} (o {{filename|/etc/mplayer/mplayer.conf}} per un'impostazione globale) ed aggiungere la seguente linea  
+
Per Mplayer, aprire{{ic|~/.mplayer/config}} (o {{ic|/etc/mplayer/mplayer.conf}} per un'impostazione globale) ed aggiungere la seguente linea  
<code>ao=alsa</code>
+
{{ic|1=ao=alsa}}
  
 
Per XMMS/Beep Media Player, portarsi nella scheda delle preferenze ed assicurarsi che sia selezionato come sistema audio ALSA e non OSS. Per fare ciò in XMMS
 
Per XMMS/Beep Media Player, portarsi nella scheda delle preferenze ed assicurarsi che sia selezionato come sistema audio ALSA e non OSS. Per fare ciò in XMMS
Line 492: Line 513:
 
** Scegliere il plugin di uscita ALSA.
 
** Scegliere il plugin di uscita ALSA.
  
Per applicazioni che non forniscono compatibilità con ALSA è possibile utilizzare il pacchetto alsa-oss. Per utilizzare aoss, eseguire il programma anteponendogli <code>aoss</code>, ad esempio:
+
Per applicazioni che non forniscono compatibilità con ALSA è possibile utilizzare il pacchetto alsa-oss. Per utilizzare aoss, eseguire il programma anteponendogli {{ic|aoss}}, ad esempio:
<code>aoss realplay</code>
+
{{ic|aoss realplay}}
  
<code>pcm.!default{ ... }</code>
+
{{ic|<nowiki>pcm.!default{ ... }</nowiki>}}
 
sembra non funzionare più, al suo posto si può utilizzare  
 
sembra non funzionare più, al suo posto si può utilizzare  
<code>pcm.default pcm.dmixer</code>
+
{{ic|pcm.default pcm.dmixer}}
  
 
===Impostazione modelli===
 
===Impostazione modelli===
  
Anche se Alsa rileva la scheda audio attraverso il BIOS a volte può non essere in grado di riconoscerne [http://www.kernel.org/doc/Documentation/sound/alsa/HD-Audio-Models.txt il modello]. Il chip della scheda audio può essere trovato in  <code>alsamixer</code> (ad esempio ALC662) e il modello può essere impostato in {{Filename|/etc/modprobe.d/modprobe.conf}} o {{Filename|/etc/modprobe.d/sound.conf}}. Ad esempio:
+
Anche se Alsa rileva la scheda audio attraverso il BIOS a volte può non essere in grado di riconoscerne [http://www.kernel.org/doc/Documentation/sound/alsa/HD-Audio-Models.txt il modello]. Il chip della scheda audio può essere trovato in  {{ic|alsamixer}} (ad esempio ALC662) e il modello può essere impostato in {{ic|/etc/modprobe.d/modprobe.conf}} o {{ic|/etc/modprobe.d/sound.conf}}. Ad esempio:
  
 
  options snd-hda-intel model=MODEL
 
  options snd-hda-intel model=MODEL
  
Ci sono anche altri modelli da impostare. Nella maggior parte dei casi Alsa lo farà in automatico. Se si vogliono vedere nel dettaglio le impostazioni della propria scheda audio si veda [http://bugtrack.alsa-project.org/main/index.php/Matrix:Main Alsa Soundcard List], si individui il proprio modello, si clicchi su “''Details''” e si osservi la sezione "''Setting up modprobe...''". Inserire i valori trovati in {{Filename|/etc/modprobe.d/modprobe.conf}}.  Ad esempio, per una scheda AC97 Intel:
+
Ci sono anche altri modelli da impostare. Nella maggior parte dei casi Alsa lo farà in automatico. Se si vogliono vedere nel dettaglio le impostazioni della propria scheda audio si veda [http://bugtrack.alsa-project.org/main/index.php/Matrix:Main Alsa Soundcard List], si individui il proprio modello, si clicchi su “''Details''” e si osservi la sezione "''Setting up modprobe...''". Inserire i valori trovati in {{ic|/etc/modprobe.d/modprobe.conf}}.  Ad esempio, per una scheda AC97 Intel:
  
<pre># ALSA portion
+
{{bc|# ALSA portion
 
alias char-major-116 snd
 
alias char-major-116 snd
 
alias snd-card-0 snd-intel8x0
 
alias snd-card-0 snd-intel8x0
Line 521: Line 542:
 
alias sound-service-0-3 snd-pcm-oss
 
alias sound-service-0-3 snd-pcm-oss
 
alias sound-service-0-8 snd-seq-oss
 
alias sound-service-0-8 snd-seq-oss
alias sound-service-0-12 snd-pcm-oss</pre>
+
alias sound-service-0-12 snd-pcm-oss}}
  
 
===Audio in conflitto con altoparlante interno del PC===
 
===Audio in conflitto con altoparlante interno del PC===
  
Se si è sicuri che tutto è attivo, che i propri driver sono installati correttamente, e che il volume è giusto, ma non si sente ancora nessun suono,  allora si proceda all’aggiunta delle seguenti linee di codice in {{filename|/etc/modprobe.d/modprobe.conf}}:
+
Se si è sicuri che tutto è attivo, che i propri driver sono installati correttamente, e che il volume è giusto, ma non si sente ancora nessun suono,  allora si proceda all’aggiunta delle seguenti linee di codice in {{ic|/etc/modprobe.d/modprobe.conf}}:
  
 
  options snd-NAME-OF-MODULE ac97_quirk=0
 
  options snd-NAME-OF-MODULE ac97_quirk=0
  
Funziona con <code>via82xx</code>
+
Funziona con {{ic|via82xx}}
  
 
  options snd-NAME-OF-MODULE ac97_quirk=1
 
  options snd-NAME-OF-MODULE ac97_quirk=1
  
Funziona con <code>snd_intel8x0</code>
+
Funziona con {{ic|snd_intel8x0}}
  
 
===Nessun Input dal Microfono===
 
===Nessun Input dal Microfono===
Line 544: Line 565:
 
Si consiglia di leggere la pagina ''man'' di ''arecord''. Comunque, nel caso in cui non si sentisse alcun suono, il microfono potrebbe essere guasto oppure collegato nell’ingresso sbagliato.
 
Si consiglia di leggere la pagina ''man'' di ''arecord''. Comunque, nel caso in cui non si sentisse alcun suono, il microfono potrebbe essere guasto oppure collegato nell’ingresso sbagliato.
  
Alcuni programmi tentano di utilizzare OSS come software di input principale. Per evitare  che i moduli OSS vengano caricati, aggiungere al file {{filename|/etc/rc.conf}} la seguente linea:
+
Alcuni portatili Dell richiedono che il suffisso "-dmic" sia aggiunto al nome del modello all'interno di {{ic|/etc/modprobe.d/modprobe.conf}}:
 +
{{ic|options snd-hda-intel model<nowiki>=</nowiki>dell-m6-dmic}}
 +
 
 +
Alcuni programmi tentano di utilizzare OSS come software di input principale. Per evitare  che i moduli OSS vengano caricati, aggiungere al file {{ic|/etc/rc.conf}} la seguente linea:
  
 
   MODULES=(!snd_pcm_oss !snd_mixer_oss !snd_seq_oss ... )
 
   MODULES=(!snd_pcm_oss !snd_mixer_oss !snd_seq_oss ... )
  
 
===Impostazione predefinita Microfono/Dispositivo di acquisizione===
 
===Impostazione predefinita Microfono/Dispositivo di acquisizione===
Alcune applicazioni (Pidgin, Adobe Flash) non forniscono una opzione per modificare il dispositivo di acquisizione. Ciò può costituire un problema se il microfono è su un dispositivo diverso (ad esempio una webcam USB o proprio un microfono) dalla scheda audio. Per cambiare solo il dispositivo di acquisizione, lasciando quello di riproduzione di default, si può modificare il file {{filename | ~/.asoundrc}} inserendo quanto segue:
+
Alcune applicazioni (Pidgin, Adobe Flash) non forniscono una opzione per modificare il dispositivo di acquisizione. Ciò può costituire un problema se il microfono è su un dispositivo diverso (ad esempio una webcam USB o proprio un microfono) dalla scheda audio. Per cambiare solo il dispositivo di acquisizione, lasciando quello di riproduzione di default, si può modificare il file {{ic| ~/.asoundrc}} inserendo quanto segue:
  
 
  pcm.usb
 
  pcm.usb
Line 572: Line 596:
 
  }
 
  }
  
 
+
Sostituire "U0x46d0x81d" con il nome della scheda del dispositivo di acquisizione in ALSA. È possibile utilizzare il comando {{Ic | arecord -L}} per visualizzare l’elenco di tutti i dispositivi di acquisizione rilevati da ALSA.
Sostituire "U0x46d0x81d" con il nome della scheda del dispositivo di acquisizione in ALSA. È possibile utilizzare il comando {{codeline | arecord -L}} per visualizzare l’elenco di tutti i dispositivi di acquisizione rilevati da ALSA.
+
  
 
===Il microfono interno non funziona===
 
===Il microfono interno non funziona===
  
Assicurarsi, in alsamixer, che tutti i livelli del volume, nella sezione Registrazione, siano attivi. Per ottenere una nuova impostazione volume, chiamata Capture, che registrerà il microfono interno, occorre aggiungere un’opzione al file {{filename | /etc/sound.conf}} e ricaricare il modulo snd-*. Ad esempio, per snd-hda-intel, aggiungere:
+
Assicurarsi, in alsamixer, che tutti i livelli del volume, nella sezione Registrazione, siano attivi. Per ottenere una nuova impostazione volume, chiamata Capture, che registrerà il microfono interno, occorre aggiungere un’opzione al file {{ic| /etc/sound.conf}} e ricaricare il modulo snd-*. Ad esempio, per snd-hda-intel, aggiungere:
  
 
   options snd-hda-intel enable_msi=1
 
   options snd-hda-intel enable_msi=1
Line 588: Line 611:
 
===Nessun suono con Onboard Intel Sound Card===
 
===Nessun suono con Onboard Intel Sound Card===
  
Ci potrebbe essere un conflitto tra due moduli caricati, chiamati {{codeline|snd_intel8x0}} e {{codeline|snd_intel8x0m}}. In questo caso, mettere in blacklist {{codeline|snd_intel8x0m}}:
+
Ci potrebbe essere un conflitto tra due moduli caricati, chiamati {{Ic|snd_intel8x0}} e {{Ic|snd_intel8x0m}}. In questo caso, mettere in blacklist {{Ic|snd_intel8x0m}}:
{{File|/etc/modprobe.d/modprobe.conf|content=blacklist snd_intel8x0m}}
+
{{hc|/etc/modprobe.d/modprobe.conf|blacklist snd_intel8x0m}}
''Disabilitare'' i canali "External Amplifier" in {{codeline|alsamixer}} o in {{codeline|amixer}} potrebbe essere d'aiuto. Consultare anche [http://alsa.opensrc.org/index.php/Intel8x0#Dell_Inspiron_8600_.28and_probably_others.29 il wiki ALSA].
+
''Disabilitare'' i canali "External Amplifier" in {{Ic|alsamixer}} o in {{Ic|amixer}} potrebbe essere d'aiuto. Consultare anche [http://alsa.opensrc.org/index.php/Intel8x0#Dell_Inspiron_8600_.28and_probably_others.29 il wiki ALSA].
  
 
===Nessun suono dalle cuffie con scheda audio Onboard Intel===
 
===Nessun suono dalle cuffie con scheda audio Onboard Intel===
Su di un portatile con '''Intel Corporation 82801 I (ICH9 Family) HD Audio Controller''' potrebbe essere necessario aggiungere questa riga a {{filename | modprobe}} o al {{filename | sound.conf}}:
+
Su di un portatile con '''Intel Corporation 82801 I (ICH9 Family) HD Audio Controller''' potrebbe essere necessario aggiungere questa riga a {{ic| modprobe}} o al {{ic| sound.conf}}:
  
 
  options snd-hda-intel model=$model
 
  options snd-hda-intel model=$model
Line 601: Line 624:
 
* dell-vostro
 
* dell-vostro
 
* olpc-xo-1_5
 
* olpc-xo-1_5
* laptop
+
* dell-m6
  
Note: Potrebbe essere necessario inserire queste "opzioni" dopo eventuali "alias".
+
{{Nota| Potrebbe essere necessario inserire queste "opzioni" dopo eventuali "alias"}}
  
 
Si possono visualizzare tutti i modelli disponibili nella documentazione del kernel. Ad esempio [http://git.kernel.org/?p=linux/kernel/git/stable/linux-2.6.35.y.git;a=blob;f=Documentation/sound/alsa/HD-Audio-Models.txt;h=dc25bb84b83b49665a7ed850e7bf5423d50cd3ba;hb=HEAD qua], ma accertarsi che si tratti della documentazione della versione del kernel in uso.
 
Si possono visualizzare tutti i modelli disponibili nella documentazione del kernel. Ad esempio [http://git.kernel.org/?p=linux/kernel/git/stable/linux-2.6.35.y.git;a=blob;f=Documentation/sound/alsa/HD-Audio-Models.txt;h=dc25bb84b83b49665a7ed850e7bf5423d50cd3ba;hb=HEAD qua], ma accertarsi che si tratti della documentazione della versione del kernel in uso.
 +
 +
Un elenco di tutti i modelli è anche disponibile a [http://www.mjmwired.net/kernel/Documentation/sound/alsa/HD-Audio-Models.txt questo indirizzo]. Per conoscere il nome del proprio chip eseguire il seguente comando
 +
{{ic|cat /proc/asound/card*/codec* | grep Codec}}
 +
 +
{{Nota| Alcuni chip potrebberoessere stati rinominati, e non avere quindi un riscontro diretto con i nomi all'interno del file}}
  
 
Se seguendo questo metodo si dovessero riscontrare malfunzionamenti o anomalie, si prega di segnalare ad ALSA eventuali bug.
 
Se seguendo questo metodo si dovessero riscontrare malfunzionamenti o anomalie, si prega di segnalare ad ALSA eventuali bug.
Line 620: Line 648:
 
  1 snd_ca0106
 
  1 snd_ca0106
  
Disattivare il codec audio della scheda video in {{filename|/etc/modprobe.d/modprobe.conf}}:
+
Disattivare il codec audio della scheda video in {{ic|/etc/modprobe.d/modprobe.conf}}:
 
  # /etc/modprobe.d/modprobe.conf
 
  # /etc/modprobe.d/modprobe.conf
 
  #
 
  #
 
  install snd_hda_intel /bin/false
 
  install snd_hda_intel /bin/false
 +
 +
Se entrambi i dispositivi utilizzano lo stesso modulo, dovrebbe essere possibile disattivare uno dei due tramite il BIOS.
  
 
===La qualità dell'audio è bassa===
 
===La qualità dell'audio è bassa===
  
 
Se si riscontra una bassa qualità dell'audio, provare ad impostare il volume di PCM (in alsamixer) ad un livello di gain 0.
 
Se si riscontra una bassa qualità dell'audio, provare ad impostare il volume di PCM (in alsamixer) ad un livello di gain 0.
 +
 +
Se è stato caricato il driver snd-usb-audio, potresti provare ad abilitare {{ic|softvol}} all'interno del file {{ic|/etc/asound.conf}}. Configurazione d'esempio per il primo dispositivo audio:
 +
{{bc|
 +
pcm.!default {
 +
  type plug
 +
  slave.pcm "softvol"
 +
}
 +
pcm.dmixer {
 +
      type dmix
 +
      ipc_key 1024
 +
      slave {
 +
          pcm "hw:0"
 +
          period_time 0
 +
          period_size 4096
 +
          buffer_size 131072
 +
          rate 50000
 +
      }
 +
      bindings {
 +
          0 0
 +
          1 1
 +
      }
 +
}
 +
pcm.dsnooper {
 +
      type dsnoop
 +
      ipc_key 1024
 +
      slave {
 +
          pcm "hw:0"
 +
          channels 2
 +
          period_time 0
 +
          period_size 4096
 +
          buffer_size 131072
 +
          rate 50000
 +
      }
 +
      bindings {
 +
          0 0
 +
          1 1
 +
      }
 +
}
 +
pcm.softvol {
 +
      type softvol
 +
      slave { pcm "dmixer" }
 +
      control {
 +
          name "Master"
 +
          card 0
 +
      }
 +
}
 +
ctl.!default {
 +
  type hw
 +
  card 0
 +
}
 +
ctl.softvol {
 +
  type hw
 +
  card 0
 +
}
 +
ctl.dmixer {
 +
  type hw
 +
  card 0
 +
}
 +
}}
  
 
===Rumori/Suoni all’avvio ed allo stop della riproduzione===
 
===Rumori/Suoni all’avvio ed allo stop della riproduzione===
  
Alcuni moduli posso spegnere la scheda audio quando questa non è utilizzata. Lo spegnimento può generare un suono. Per evitare che ciò avvenga si può eseguire "modinfo snd-MY-MODULE", e cercare un’opzione che regoli o disattivi questa funzione.
+
Alcuni moduli (ad es. snd-ac97-codec e snd-hda-intel) posso spegnere la scheda audio quando questa non è utilizzata. Lo spegnimento può generare un suono. A volte ciò può avvenire anche quando si agisce sulla barra del volume, o quando si aprono o chiudono finestre (KDE4). Per evitare che ciò avvenga si può eseguire "modinfo snd-MY-MODULE", e cercare un’opzione che regoli o disattivi questa funzione.
 +
 
 +
Ad esempio: per disabilitare il risparmio energetico utilizzando snd-hda-intel aggiungere {{bc|1=options snd-hda-intel power_save=0}} o {{bc|1=options snd-hda-intel power_save=0 power_save_controller=N}} in {{ic| /etc/modprobe.d/modprobe.conf}}.
 +
 
 +
Potrebbe anche rivelarsi necessario togliere il muto dal canale alsa 'Line'. Qualsiasi valore, purchè non 0 o troppo alto, andrà bene.
 +
 
 +
Ad esempio: su una scheda integrata VIA VT1708S (che utilizza il modulo snd-hda-intel) questi disturbi erano presenti anche dopo aver impostato il parametro 'power_save' a 0. Im postandolo ad 1 e togliendo il muto al canale 'Line', il problema è stato risolto.
  
Ad esempio: per disabilitare il risparmio energetico utilizzando snd-hda-intel aggiungere "''options snd-hda-intel power_save=0''" in {{filename | /etc/modprobe.d/modprobe.conf}} o provare con "modprobe snd-hda-intel power_save=0"
+
Fonte: http://www.kernel.org/doc/Documentation/sound/alsa/powersave.txt
  
 
===Alsamixer non si avvia===
 
===Alsamixer non si avvia===
Line 639: Line 734:
 
  alsamixer: function snd_ctl_open failed for default: No such device
 
  alsamixer: function snd_ctl_open failed for default: No such device
  
si dovrebbe innanzitutto verificare in {{filename|/etc/group}} se il proprio utente fa parte del gruppo 'audio'. Non dimenticarsi di terminare la sessione corrente e riavviarla quando si aggiunge un nuovo gruppo al proprio utente.
+
si dovrebbe innanzitutto verificare in {{ic|/etc/group}} se il proprio utente fa parte del gruppo 'audio'. Non dimenticarsi di terminare la sessione corrente e riavviarla quando si aggiunge un nuovo gruppo al proprio utente.
  
Quindi potrebbe essere necessario reinstallare il kernel. Eseguire 'pacman -S kernel26' o utilizzare il patchset che si preferisce.
+
Quindi potrebbe essere necessario reinstallare il kernel. Eseguire 'pacman -S linux' o utilizzare il patchset che si preferisce.
  
 
===L'uscita S/PDIF non funziona===
 
===L'uscita S/PDIF non funziona===
Line 650: Line 745:
 
da utente root.
 
da utente root.
  
È inoltre possibile inserire questo comando in {{filename | rc.local}} in quanto a volte può smettere di funzionare dopo un riavvio.
+
È inoltre possibile inserire questo comando in {{ic| rc.local}} in quanto a volte può smettere di funzionare dopo un riavvio.
  
 
===L'uscita HDMI non funziona===
 
===L'uscita HDMI non funziona===
Line 658: Line 753:
 
Interrogare i dispositivi di riproduzione:
 
Interrogare i dispositivi di riproduzione:
  
{{command|name=aplay -l|output=
+
{{hc|$ aplay -l|
 
**** List of PLAYBACK Hardware Devices ****
 
**** List of PLAYBACK Hardware Devices ****
 
card 0: NVidia [HDA NVidia], device 0: ALC1200 Analog [ALC1200 Analog]
 
card 0: NVidia [HDA NVidia], device 0: ALC1200 Analog [ALC1200 Analog]
Line 672: Line 767:
 
Ora che abbiamo le informazioni per la periferica HDMI, si può fare una prova. Nell'esempio che segue, 0 è il numero della scheda e 3 è il numero del dispositivo.
 
Ora che abbiamo le informazioni per la periferica HDMI, si può fare una prova. Nell'esempio che segue, 0 è il numero della scheda e 3 è il numero del dispositivo.
  
{{cli|$ aplay -D plughw:0,3 /usr/share/sounds/alsa/Front_Center.wav}}
+
{{bc|$ aplay -D plughw:0,3 /usr/share/sounds/alsa/Front_Center.wav}}
  
 
Se aplay non restituisce alcun errore, ma ancora non si sente alcun suono, "riavviare" il ricevitore, il monitor o la tv. Poichè l'interfaccia HDMI esegue un rigido controllo sulla connessione, potrebbe aver recepito che prima non c'era alcun flusso audio, ed ha quindi disabilitato la decodifica audio.
 
Se aplay non restituisce alcun errore, ma ancora non si sente alcun suono, "riavviare" il ricevitore, il monitor o la tv. Poichè l'interfaccia HDMI esegue un rigido controllo sulla connessione, potrebbe aver recepito che prima non c'era alcun flusso audio, ed ha quindi disabilitato la decodifica audio.
  
Se la verifica ha esito positivo, modificare/creare {{filename |~/.asoundrc}} per impostare HDMI come dispositivo audio predefinito e riavviare; ora l'audio dovrebbe funzionare.
+
{{Nota| <nowiki>Se si utilizza una scheda ATI ed un kernel superiore al 3.0, verificare la propria configurazione di grub ed eventualmente aggiungervi il parametro d'avvio del kernel 'radeon.audio=1'. In alternativa è possibile specificare tale parametro tramite i file di configurazione di modprobe.</nowiki>}}
  
{{file|name=~/.asoundrc|content=
+
Se la verifica ha esito positivo, modificare/creare {{ic|~/.asoundrc}} per impostare HDMI come dispositivo audio predefinito e riavviare; ora l'audio dovrebbe funzionare.
 +
 
 +
{{hc|~/.asoundrc|
 
   pcm.!default {
 
   pcm.!default {
 
       type hw
 
       type hw
Line 685: Line 782:
 
   }
 
   }
 
}}
 
}}
 +
 +
Si può ora riavviare alsa col seguente comando
 +
{{Nota| tutti iprogrammi che utilizzano alsa verranno interrotti.}}
 +
{{ic| # rc.d force-restart alsa}}
 +
====Utilizzare udev per abilitare/disabilitare l'audio da HDMI====
 +
 +
{{Nota| Questa funzionalità sarà disponibile solo per i driver che supportano UDEV: i driver proprietari Nvidia ad esempio, non lo fanno.}}
 +
 +
I passi visti in precedenza in questa sezione sono utili per testare il proprio dispositivo o se non si ha la necessità di collegare spesso a caldo la propria periferica HDMI. Si considera ora il caso in cui si sia in possesso di un portatile, e si voglia che il dispositivo audio HDMI sia attivato solo quando viene collegato un cavo HDMI.
 +
 +
Questo codice proviene dal [https://bbs.archlinux.org/viewtopic.php?id=132641 Forum internazionale di Arch Linux].
 +
 +
Si creano una regola di udev (per rilevare il collegamento/scollegamento del cavo), due differenti file di configurazione di ALSA, ed uno script che esegue lo switch tra queste due configurazioni.
 +
 +
Per prima cosa creare {{ic|/etc/alsa/}}  se non esistesse già; conterrà i file di configurazione e lo script di switch:
 +
 +
{{bc|<nowiki>[[ -d /etc/alsa/ ]] || sudo mkdir -v /etc/alsa</nowiki>}}
 +
 +
Inserire sotto questa directory i seguenti file:
 +
 +
{{hc|/etc/alsa/hdmi-switch|2=
 +
<nowiki>
 +
#! /bin/bash
 +
set -x
 +
 +
udevadm settle --quiet --timeout=16
 +
 +
read hdmi_status </sys/class/drm/card0-HDMI-A-1/status
 +
alsa_dir=/etc/alsa
 +
asound_file=asound.hdmi-$hdmi_status
 +
 +
if [[ -n $hdmi_status && -f "$alsa_dir/$asound_file" ]]; then
 +
    ln -sf "$alsa_dir/$asound_file" /etc/asound.conf
 +
    /etc/rc.d/alsa force-restart
 +
fi
 +
</nowiki>
 +
}}
 +
 +
{{hc|/etc/alsa/asound.hdmi-connected|2=
 +
pcm.!default {
 +
    type plug
 +
    slave.pcm "dmixer"
 +
}
 +
 +
pcm.dsp0 {
 +
    type plug
 +
    slave.pcm "dmixer"
 +
}
 +
 +
pcm.dmixer {
 +
    type dmix
 +
    ipc_key 1024           
 +
    ipc_key_add_uid 0
 +
    ipc_perm 0666               
 +
    slave {
 +
        pcm "hw:0,3"    # HDMI CARD AND DEVICE
 +
        period_time 0
 +
        period_size 1024
 +
        buffer_size 8192
 +
        rate 48000 #or 44100
 +
    } 
 +
}
 +
 +
ctl.dmixer {
 +
    type hw
 +
    card 0
 +
}
 +
}}
 +
 +
{{hc|/etc/alsa/asound.hdmi-disconnected|2=
 +
pcm.!default {
 +
  type plug
 +
  slave.pcm "dmixer"
 +
}
 +
 
 +
pcm.dsp0 {
 +
  type plug
 +
  slave.pcm "dmixer"
 +
}
 +
 
 +
pcm.dmixer {
 +
  type dmix
 +
  ipc_key 1024               
 +
  ipc_key_add_uid 0
 +
  ipc_perm 0666         
 +
  slave {
 +
      pcm "hw:0,0"      # LOCAL CARD AND DEVICE
 +
      period_time 0
 +
      period_size 1024
 +
      buffer_size 8192
 +
      rate 48000 #or 44100
 +
  }
 +
}
 +
 
 +
ctl.dmixer {
 +
  type hw
 +
  card 0
 +
}
 +
}}
 +
 +
Queste due versioni di {{ic|asound.conf}} includono l'impostazione di dmix e consentono l'unione dei permessi utente, cosicchè, ad esempio, sia possibile che l'utente mpd ed il proprio utente, possano accedere contemporaneamente alla risorsa.T
 +
 +
Si può ora verificare il funzionamento dello script di switch tramite
 +
 +
  sudo chmod +x /etc/alsa/hdmi-switch
 +
  sudo /etc/alsa/hdmi-switch
 +
 +
Si dovrebbe riscontrare che l'audio HDMI è attivo se si avvia lo script quando il cavo è inserito, mentre si ritorna alla normale periferica audio se lo script viene eseguito una volta che il cavo è scollegato.
 +
 +
Ora che si è verificato ciò, si può automatizzare il tutto tramite la regola di udev:
 +
 +
{{hc|/etc/udev/rules.d/hdmi.rules|2=
 +
SUBSYSTEM=="drm", ACTION=="change", RUN+="/bin/bash /etc/alsa/hdmi-switch"
 +
}}
 +
 +
Per fare in modo che udev consideri da subito la nuova regola, ricaricarle tutte
 +
 +
  sudo udevadm control --reload-rules
  
 
===Impossibile regolare il canale PCM===
 
===Impossibile regolare il canale PCM===
  
Potrebbe non essere possibile regolare il canale PCM. In questo caso provare a rimuovere tutte le voci inerenti l’audio dalla sezione MODULES del file {{filename | /etc/rc.conf}}, ad eccezione di snd-NAME-OF-MODULE.
+
Potrebbe non essere possibile regolare il canale PCM. In questo caso provare a rimuovere tutte le voci inerenti l’audio dalla sezione MODULES del file {{ic| /etc/rc.conf}}, ad eccezione di snd-NAME-OF-MODULE.
  
 
===HP TX2500===
 
===HP TX2500===
  
Aggiungere queste due righe in {{Filename|/etc/modprobe.d/modprobe.conf}}:
+
Aggiungere queste due righe in {{ic|/etc/modprobe.d/modprobe.conf}}:
 
  options snd-cmipci mpu_port=0x330 fm_port=0x388
 
  options snd-cmipci mpu_port=0x330 fm_port=0x388
 
  options snd-hda-intel index=0 model=toshiba position_fix=1
 
  options snd-hda-intel index=0 model=toshiba position_fix=1
 
  
 
  options snd-hda-intel model=hp (works for tx2000cto)
 
  options snd-hda-intel model=hp (works for tx2000cto)
Line 701: Line 915:
 
===Salto di suono durante la riproduzione MP3===
 
===Salto di suono durante la riproduzione MP3===
  
Se si hanno salti di suono durante la riproduzione di file MP3 e se al computer sono collegati di più di 2 altoparlanti (o più di due), eseguire {{codeline | alsamixer }} e disabilitare i canali degli altoparlanti che '''NON''' si posseggono (ad esempio, disabilitare il canale dell’altoparlante centrale se non si dispone di un altoparlante centrale).
+
Se si hanno salti di suono durante la riproduzione di file MP3 e se al computer sono collegati di più di 2 altoparlanti (o più di due), eseguire {{Ic | alsamixer}} e disabilitare i canali degli altoparlanti che '''NON''' si posseggono (ad esempio, disabilitare il canale dell’altoparlante centrale se non si dispone di un altoparlante centrale).
  
 
===Cuffia USB e schede audio esterne USB===
 
===Cuffia USB e schede audio esterne USB===
Line 708: Line 922:
 
  #modprobe snd-usb-audio
 
  #modprobe snd-usb-audio
  
Se si vuole, si può aggiungere quanto segue al file {{Filename|/etc/rc.conf}}
+
Se si vuole, si può aggiungere quanto segue al file {{ic|/etc/rc.conf}}
  
 
  # asoundconf is-active
 
  # asoundconf is-active
 
  # asoundconf list
 
  # asoundconf list
 
  # asoundconf set-default-card <chosen soundcard>
 
  # asoundconf set-default-card <chosen soundcard>
 +
 +
==== Suono gracchiante su dispositivi USB ====
 +
 +
Se si riscontra audio gracchiante su dispositivi USB, si può provare ad impostare il modulo snd-usb-audio per minime latenze.
 +
Aggiungere questo codice a {{ic|/etc/modprobe.d/modprobe.conf}} :
 +
options snd-usb-audio nrpacks=1
 +
Fonte: http://alsa.opensrc.org/Usb-audio#Tuning_USB_devices_for_minimal_latencies
  
 
===Errore 'Unkown hardware' dopo aggiornamento Kernel===
 
===Errore 'Unkown hardware' dopo aggiornamento Kernel===
Line 720: Line 941:
 
  Hardware is initialized using a guess method
 
  Hardware is initialized using a guess method
 
  /usr/sbin/alsactl: set_control:nnnn:failed to obtain info for control #mm (No such file or directory)
 
  /usr/sbin/alsactl: set_control:nnnn:failed to obtain info for control #mm (No such file or directory)
 +
 +
oppure
 +
Found hardware: "HDA-Intel" "VIA VT1705" "HDA:11064397,18490397,00100000" "0x1849" "0x0397"
 +
Hardware is initialized using a generic method
 +
/usr/sbin/alsactl: set_control:1328: failed to obtain info for control #1 (No such file or directory)
 +
/usr/sbin/alsactl: set_control:1328: failed to obtain info for control #2 (No such file or directory)
 +
/usr/sbin/alsactl: set_control:1328: failed to obtain info for control #25 (No such file or directory)
 +
/usr/sbin/alsactl: set_control:1328: failed to obtain info for control #26 (No such file or directory)
  
 
E’ sufficiente memorizzare nuovamente le impostazioni del mixer di ALSA (da root):
 
E’ sufficiente memorizzare nuovamente le impostazioni del mixer di ALSA (da root):
 
  # alsactl -f /var/lib/alsa/asound.state store
 
  # alsactl -f /var/lib/alsa/asound.state store
 +
 +
Potrebbe essere necessario configurare nuovamente ALSA tramite {{ic|alsamixer}}
  
 
===HDA Analyzer===
 
===HDA Analyzer===
Line 735: Line 966:
 
===ALSA con SDL===
 
===ALSA con SDL===
 
Se non si riesce ad ottenere alcun suono tramite SDL, ma ALSA non può essere selezionato nella configurazione dell'applicazione, provare ad impostare la variabile d'ambiente SDL_AUDIODRIVER su "alsa"
 
Se non si riesce ad ottenere alcun suono tramite SDL, ma ALSA non può essere selezionato nella configurazione dell'applicazione, provare ad impostare la variabile d'ambiente SDL_AUDIODRIVER su "alsa"
{{cli| export SDL_AUDIODRIVER<nowiki>=</nowiki>alsa}}
+
{{bc|export SDL_AUDIODRIVER<nowiki>=</nowiki>alsa}}
  
 
==Configurazioni d'esempio==
 
==Configurazioni d'esempio==
 
Consultare [[Advanced Linux Sound Architecture/Example Configurations (Italiano)]]
 
Consultare [[Advanced Linux Sound Architecture/Example Configurations (Italiano)]]
 
  
 
== Link esterni ==
 
== Link esterni ==
Line 746: Line 976:
 
* [http://www.mjmwired.net/kernel/Documentation/sound/alsa/ALSA-Configuration.txt Advanced ALSA module configuration]
 
* [http://www.mjmwired.net/kernel/Documentation/sound/alsa/ALSA-Configuration.txt Advanced ALSA module configuration]
 
* [http://alsa.opensrc.org/Main_Page Unofficial ALSA Wiki]
 
* [http://alsa.opensrc.org/Main_Page Unofficial ALSA Wiki]
* [http://bbs.archlinux.org/viewtopic.php?id=36815 HOWTO: Compile driver from svn]
+
* [https://bbs.archlinux.org/viewtopic.php?id=36815 HOWTO: Compile driver from svn]

Revision as of 14:46, 3 December 2012

L' Architettura Avanzata per il Suono su Linux (conosciuta con l'acronimo di ALSA) è un componente del kernel creato per rimpiazzare l'originale Open Sound System (OSS) utilizzato per fornire driver di periferica per le schede audio. Oltre ai driver audio, ALSA mette a disposizione anche una libreria in spazio-utente per sviluppatori di applicazioni che vogliano utilizzare le funzioni dei driver tramite un'API piuttosto che con un'interazione diretta con i driver del kernel.

Nota: Per una eventuale alternativa consultare la pagina OSS.
Summary help replacing me
Utilizzo, configurazione risoluzione dei problemi di ALSA
Related
Sound
Disable PC Speaker Beep

Contents

Installazione

ALSA è incluso nel kernel di default di Arch come insieme di moduli, perciò non è necessario installarlo esplicitamente.

Udev interogherà automaticamente l'hardware al boot, caricando il modulo del kernel corretto per l'hardware rilevato. Perciò, la scheda audio dovrebbe essere subito funzionante, ma di default la configurazione prevederà che tutti i canali siano impostati su muto.

L'utente dovrebbe essere inserito nel gruppo "audio" per poter eseguire suoni tramite alsa. Per aggiungere il proprio utente al gruppo audio, utilizzare il seguente comando:

# gpasswd -a tuonomeutente audio
Nota: questa modifica non avrà effetto fino al successivo login dell'utente.

Utility

Dai repository ufficiali:

  • Installare il pacchetto alsa-utils, contenente lo strumento alsamixer, che consente la configurazione delle periferiche audio tramite console o terminale.
  • Installare il pacchetto alsa-oss se si vuole che le applicazioni OSS funzionino tramite dmix:
Nota: A partire da udev>=171, i moduli per l'emulazione OSS (snd_seq_oss, snd_pcm_oss, snd_mixer_oss) non sono più caricati automaticamente di default.

Togliere il muto ai canali

La versione attuale di ALSA, viene installata con tutti i canali impostati su muto di default. Sarà necessario togliere il "muto" manualmente. Il metodo più semplice per fare ciò è utilizzare l'interfaccia utente in ncurses alsamixer (alternativamente, è possibile utilizzare amixer da riga di comando):

$ alsamixer

L'etichetta MM sotto un canale indica che quest'ultimo è impostato su muto, mentre 00 indica che è attivo.

Togliere il muto dai canali Master e PCM posizionandovi sopra di essi tramite i tasti Template:Keypress e Template:Keypress e premendo il tasto Template:Keypress. Usare il tasto Template:Keypress per incrementare il volume ed ottenere un "db gain" pari a 0. Il valore di gain si trova in alto a sinistra dopo il campo 'Item:'. Valori di gain superiori produrranno suoni distorti.

Per ottenere un vero suono surround 5.1 o 7.1, è necessario togliere il muto anche ad altri canali come Front, Surround, Center, LFE (subwoofer) e Side (questi sono i nomi dei canali per il modulo intel HDA, possono variare in base all'hardware).

Uscire da alsamixer premendo Template:Keypress.

Nota: Alcune schede necessitano del canale digitale disattivato per produrre suono sull'uscita analogica. Per la SoundBlaster Audigy LS è necessario impostare su muto il canale IEC958. Alcuni sistemi (come il Thinkpad T61), richiedono che anche il canale Speaker sia attivato e regolato.

Si può ora verificare che il suono funzioni:

$ speaker-test -c 2

Modificare il valore di -c in base al proprio sistema, ad esempio utilizzare -c 8 per un 7.1.

Se non dovesse funzionare, passare al paragrafo #Configurazione e quindi a #Risoluzione dei problemi.

Se dovesse funzionare, rimangono solo da salvare le proprie impostazioni:

# # alsactl store

Questo comando creerà il file /var/lib/alsa/asound.state, salvando tutte le impostazioni di alsamixer. Aggiungere quindi il daemon alsa alla sezione DAEMONS all'interno di /etc/rc.conf, in modo che le impostazioni salvate siano ricaricate automaticamente ad ogni avvio.

/etc/rc.conf
.....
DAEMONS=(syslog-ng network crond alsa)
.....
Nota: Il daemon alsa non fa altro che ricaricare i livelli di volume dei vari canali all'avvio leggendoli da /var/lib/alsa/asound.state. Non ha nulla a che vedere con la libreria audio alsa (e le API a livello kernel).

Configurazione

Impostare la scheda audio predefinita

Bisogna innanzitutto rilevare gli id della scheda e del dispositivo che si vogliono impostare come predefiniti eseguendo aplay -l.

$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: Intel [HDA Intel], device 0: CONEXANT Analog [CONEXANT Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: Intel [HDA Intel], device 1: Conexant Digital [Conexant Digital]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: JamLab [JamLab], device 0: USB Audio [USB Audio]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 2: Audio [Altec Lansing XT1 - USB Audio], device 0: USB Audio [USB Audio]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

Ad esempio, l'ultima voce in questa lista si riferisce alla scheda con id 2, ed al dispositivo con id1. Per impostarli come predefinit1, si può sia utilizzare il file di sistema /etc/asound.conf, sia quello con influenza limitata sul singolo utente ~/.asoundrc. Potrebbe essere necessario creare il file se quest0ultimo non dovesse esistere.. Dopodichè inserirvi le seguenti opzioni con i corrispondenti id relativi alla scheda ed al dispositivo:

~/.asoundrc
defaults.pcm.card 2
defaults.pcm.device 0
defaults.ctl.card 2

L'opzione pcm specifica quale scheda e dispositivo verranno utilizzati per la riproduzione dell'audio, mentre l'opzione ctl indica quali saranno controllati da utility come alsamixer. Le opzioni dovrebbere essere effettive nel momento in cui un'applicazione relativa ad esse (mplayer, alsamixer, etc...) viene riavviata.

Assicurarsi che i moduli audio siano caricati

Verificare che udev abbia rilevato automaticamente l'audio,con il comando:

$ lsmod|grep '^snd'| column -t 
snd_hda_codec_hdmi     22378   4
snd_hda_codec_realtek  294191  1
snd_hda_intel          21738   1
snd_hda_codec          73739   3  snd_hda_codec_hdmi,snd_hda_codec_realtek,snd_hda_intel
snd_hwdep              6134    1  snd_hda_codec
snd_pcm                71032   3  snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec
snd_timer              18992   1  snd_pcm
snd                    55132   9  snd_hda_codec_hdmi,snd_hda_codec_realtek,snd_hda_intel,snd_hda_codec,snd_hwdep,snd_pcm,snd_timer
snd_page_alloc         7017    2  snd_hda_intel,snd_pcm

Se l'output è simile, i driver audio sono stati autorilevati con successo. Si può anche controllare la directory /dev/snd per visualizzare i giusti file del dispositivo:

Nota: A partire da udev>=171, i moduli per l'emulazione OSS (snd_seq_oss, snd_pcm_oss, snd_mixer_oss) non sono più caricati automaticamente di default: caricarli esplicitamente con modprobe e/o aggiungerli all'array MODULES all'interno di /etc/rc.conf se si desidera che vengano caricati automaticamente ad ogni avvio.
$ ls -l /dev/snd/
total 0
crw-rw----  1 root audio 116,  0 Apr  8 14:17 controlC0
crw-rw----  1 root audio 116, 32 Apr  8 14:17 controlC1
crw-rw----  1 root audio 116, 24 Apr  8 14:17 pcmC0D0c
crw-rw----  1 root audio 116, 16 Apr  8 14:17 pcmC0D0p
crw-rw----  1 root audio 116, 25 Apr  8 14:17 pcmC0D1c
crw-rw----  1 root audio 116, 56 Apr  8 14:17 pcmC1D0c
crw-rw----  1 root audio 116, 48 Apr  8 14:17 pcmC1D0p
crw-rw----  1 root audio 116,  1 Apr  8 14:17 seq
crw-rw----  1 root audio 116, 33 Apr  8 14:17 timer

In caso di richiesta di aiuto su IRC o sui forum, per favore postare l'output dei comandi di sopra.

Se sono presenti i dispositivi controlC0 e pcmC0D0p o simili, allora i moduli audio sono stati rilevati e caricati correttamente.

Altrimenti, i moduli audio non sono stati rilevati correttamente. Per risolvere, provare a caricare i moduli manualmente:

  • Individuare il modulo della scheda audio: ALSA Soundcard Matrix. Il modulo sarà preceduto dal suffisso 'snd-' (ad esempio: 'snd-via82xx').
  • Caricare i moduli:
# modprobe snd-NAME-OF-MODULE
# modprobe snd-pcm-oss
  • Controllare i file del dispositivo in /dev/snd (vedi sopra) e/o provare se alsamixer o amixer hanno un corretto output.
  • Aggiungere snd-NOME-DEL-MODULO e snd-pcm-oss alla lista dei MODULI in /etc/rc.conf per assicurarsi che essi vengano caricati la prossima volta (assicurarsi che snd-NOME-DEL-MODULO preceda snd-pcm-oss).

Ripristinare le impostazioni di Alsa Mixer all'avvio

Attenzione: Se si utilizza kmix, assicurarsi di configurarlo in maniera che non si occupi del ripristino dei livelli, altrimenti si verificherà un conflitto con la configurazione mostrata di seguito.
  • Avviare alsactl -f /var/lib/alsa/asound.state store per creare /var/lib/alsa/asound.state
# alsactl-f /var/lib/alsa/asound.state store
  • Editare /etc/rc.conf e aggiungere "alsa" alla lista dei demoni da far partire all'avvio. Questo salverà le regolazioni del mixer a ogni arresto del sistema e le ripristinerà all'avvio.
  • Se i settaggi del mixer non vengono caricati all'avvio, aggiungere la seguente stringa in /etc/rc.local.
/etc/rc.local
alsactl -f /var/lib/alsa/asound.state restore
  • Questo metodo potrebbe non funzionare, oppure potrebbe sorgere l'esigenza di avere differenti impostazioni audio per i singoli utenti. In questo caso, lanciare il comando
alsactl store -f ~/.asoundrc
come utente semplice. Così facendo si salveranno e si ripristineranno le impostazioni del volume sulla base di un singolo utente. Per automatizzare questo procedimento aggiungere i due comando rispettivamente nei file ~/.bash_login e ~/.bash_logout. Correggere il percorso di questi file nel caso si utilizzi una shell differente da bash. Ad esempio se si utilizza zsh modificare ~/.zlogin e ~/.zlogout.

Ottenere un output SPDIF

(da gralves dai forum di Gentoo)

  • Nel Controllo Volume di GNOME, sotto il tab delle opzioni, cambiare IEC958 in PCM. Questa opzione può essere abilitata nelle preferenze.
  • Se non è installato il Controllo Volume di GNOME,
    • Editare /var/lib/alsa/asound.state. In questo file alsasound salva le regolazioni del mixer.
    • Trovare la riga che riporta: IEC958 Playback Switch. Vicino ad essa c'è una riga nella quale è indicato value:false. Cambiarla in value:true.
    • Adesso trovare questa riga: IEC958 Playback AC97-SPSA. Cambiare il suo valore in 0.
    • Riavviare alsa.

Un metodo alternativo per abilitare un output SPDIF automaticamente al login (testato su una SoundBlaster Audigy) è il seguente:

  • aggiungere le seguenti righe in /etc/rc.local:
/etc/rc.local
# Use COAX-digital output
amixer set 'IEC958 Optical' 100 unmute
amixer set 'Audigy Analog/Digital Output Jack' on

Si può visualizzare il nome dell'uscita digitale della scheda con:

$ amixer scontrols

Equalizzatore System-Wide

Utilizzando AlsaEqual (fornisce l’interfaccia grafica)

Installare alsaequalAUR da AUR.

Note: Se si utilizza un sistema x86_64 e 32bit-flashplugin, il suono in flash non funzionerà. Si dovrà quindi o disabilitare alsaequal o compilarlo per 32bit.

Dopo aver installato il pacchetto, inserire nel file di configurazione ALSA (~/.asoundrc o /etc/asound.conf) quanto segue:

~/.asoundrc
ctl.equal {
 type equal;
}

pcm.plugequal {
  type equal;
  # Modify the line below if you don't
  # want to use sound card 0.
  #slave.pcm "plughw:0,0";
  #by default we want to play from more sources at time:
  slave.pcm "plug:dmix";
}

#pcm.equal {
  # Or if you want the equalizer to be your
  # default soundcard uncomment the following
  # line and comment the above line.
pcm.!default {
  type plug;
  slave.pcm plugequal;
}

Quindi ricaricare le impostazioni di alsa (da utente root).

# rc.d restart alsa

È molto importante chiudere tutte le applicazioni che utilizzano ALSA.

Ora si è pronti per modificare l’equalizzatore tramite il comando:

$ alsamixer -D equal

Si noti che il file di configurazione, diverso per ogni utente (se non diversamente specificato), viene salvato in $HOME/.alsaequal.bin. Perciò se si vuole utilizzare AlsaEqual con mpd o con un altro software, con un utente diverso, è possibile configurarlo con il comando:

# su mpd -c 'alsamixer -D equal

Oppure, è possibile creare un link simbolico a .alsaequal.bin nella home di quell’utente.

Utilizzando mbeq

Nota: Questo metodo richiede l'utilizzo del plugin ladspa che può comportare un consumo un po' più alto della CPU quando si esegue un suono. Inoltre, questo metodo è pensato per l'utilizzo di un suono stereofonico (ad esempio, ottimizzato per un ascolto tramite cuffie)

Installare alsa-plugins, ladspa e swh-plugins

  • sarà necessario avere uno dei file tra ~/.asoundrc e /etc/asound.conf, dunque, se non è ancora stato fatto, creare uno dei due
touch ~/.asoundrc

ed inserirvi le seguenti righe:

/etc/asound.conf
pcm.eq {
  type ladspa

  # The output from the EQ can either go direct to a hardware device
  # (if you have a hardware mixer, e.g. SBLive/Audigy) or it can go
  # to the software mixer shown here.
  #slave.pcm "plughw:0,0"
  slave.pcm "plug:dmix"

  # Sometimes you may need to specify the path to the plugins,
  # especially if you have just installed them.  Once you have logged
  # out/restarted this should not be necessary, but if you get errors
  # about being unable to find plugins, try uncommenting this.
  #path "/usr/lib/ladspa"

  plugins [
    {
      label mbeq
      id 1197
      input {
        #this setting is here by example, edit to your own taste
        #bands: 50hz, 100hz, 156hz, 220hz, 311hz, 440hz, 622hz, 880hz, 1250hz, 1750hz, 25000hz,
        #50000hz, 10000hz, 20000hz
        controls [ -5 -5 -5 -5 -5 -10 -20 -15 -10 -10 -10 -10 -10 -3 -2 ]
      }
    }
  ]
 }

 # Redirect the default device to go via the EQ - you may want to do
 # this last, once you're sure everything is working.  Otherwise all
 # your audio programs will break/crash if something has gone wrong.

 pcm.!default {
  type plug
  slave.pcm "eq"
 }

 # Redirect the OSS emulation through the EQ too (when programs are running through "aoss")

 pcm.dsp0 {
  type plug
  slave.pcm "eq"
 }
  • ricaricare le impostazioni di alsa (da utente root)
 # rc.d restart alsa
  • ora tutto dovrebbe essere sistemato

Ricampionamento in alta qualità

Quando viene abilitato il mixaggio software, ALSA è costretto a ricampionare tutto alla stessa frequenza (di default a 48000, se supportata). Dmix utilizza un algoritmo di ricampionamento poco efficace, che produce una notevole perdita di qualità.

Installare alsa-plugins e libsamplerate

# pacman -S alsa-plugins libsamplerate

Modificare il tasso di conversione di default a libsamplerate

/etc/asoundrc
defaults.pcm.rate_converter "samplerate_best"

samplerate_best offre la miglior qualità audio, ma necessità di cpu almeno decenti, in quanto il ricampionamento in tempo reale richiede un numero notevole di cicli di cpu. Sono disponibili anche altri algoritmi (samplerate, etc.) ma non forniscono tangibili miglioramenti rispetto al ricampionatore di default.

Upmixing/Downmixing

Upmixing

Per fare in modo che una sorgente audio stereo saturi tutte le uscite di un sistema che ne ha più di 2, come 5.1 o 7.1, è necessario effettuare un upmixing. In passato questa procedura risultava complessa e suscettibile di errori, ma al giorno d'oggi esistono dei plugin che se ne occupano. Installare alsa-plugins

# pacman -S alsa-plugins

Dopodichè aggiungere il seguente codice al file di configurazione di alsa a propria scelta (/etc/asound.conf oppure ~/.asoundrc):

~/.asoundrc
pcm.upmix71 {
     type upmix
     slave.pcm "surround71"
     delay 15
     channels 8
 }

È intuitivo come adeguare questo esempio da 7.1 ad altro sistema.

Questo metodo aggiunge un nuovo pcm che è possibile utilizzare per l'upmixing. Se si vuole che tutte le sorgenti audio vengano redirette verso questo pcm, aggiungerlo come default successivamente al codice appena scritto, in questo modo

~/.asoundrc
....
pcm.!default "plug:upmix71"
....

Il plugin consente automaticamente alle sorgenti di essere riprodotte attraverso di esso, quindi impostarlo come predefinito è una scelta sicura. Se ciò non dovesse funzionare, si può provare a impostare dmix affinchè effettui l'upmixing del canale PCM in questo modo

~/.asoundrc
pcm.dmix6 {
    type asym
    playback.pcm {
        type dmix
        ipc_key 567829
        slave {
            pcm "hw:0,0"
            channels 6
        }
    }
}

ed usare "dmix6" al posto di "surround71". Se si dovessero riscontrare problemi di suono che salta o risulta distorto, provare ad incrementare la dimensione del buffer (ad esempio a 32768) oppure utilizzare un ricampionatore di alta qualità.

Downmixing

Se si vuole effettuare il downmixing, ad esempio per ascoltare su un'uscita stereo il sonoro di un video in 5.1, è necessario utilizzare il plugin vdownmix che alsa fornisce nello stesso pacchetto.

Nel file di configurazione aggiungere quanto segue

~/.asoundrc
pcm.!surround51 {
     type vdownmix
     slave.pcm "default"
 }
 pcm.!surround40 {
     type vdownmix
     slave.pcm "default"
 }

Mixaggio

Mixaggio software (dmix)

Sistema di mixaggio software di ALSA

Nota: : Per versioni di ALSA uguali o superiori alla 1.0.9rc2 non vi è necessità di configurare dmix per le uscite audio analogiche. Dmix è abilitato di default se viene rilevata una scheda audio che non supporta il mixaggio via hardware.

Se comunque non dovesse funzionare automaticamente è sufficiente creare il (o modificare l'esistente) file ~/.asoundrc con questo contenuto:

~/.asoundrc
pcm.dsp {
    type plug
    slave.pcm "dmix"
}

Questo dovrebbe abilitare il mixaggio software ed abilitare più applicazioni all'accesso alla periferica contemporaneamente. Per le uscite audio digitali come S/PDIF, il pacchetto ALSA tuttora non abilita dmix di default. Perciò la configurazione appena mostrata si rivela in questo caso necessaria per l'utilizzo del mixaggio software su uscite S/PDIF. Consultare #Risoluzione dei problemi per soluzioni a problemi comuni.

Mixaggio Hardware

Tango-edit-clear.pngThis article or section needs language, wiki syntax or style improvements.Tango-edit-clear.png

Reason: please use the first argument of the template to provide a brief explanation. (Discuss in Talk:Advanced Linux Sound Architecture (Italiano)#)
  • Bisogna utilizzare schede audio che supportino il mixaggio hardware: le vecchie serie SoundBlaster Live! (emu10k1 chip) e le nuove Audigy (emu10k2 chip) sono da considerarsi utilizzabili.
  • La SounBlaster Live! 5.1 è facilmente reperibile ad un prezzo contenuto.
Nota: le nuove economiche Audigy SE, Audigy 2 NX, SoundBlaster Live! 24bit e SoundBlaster Live! 7.1 non supportano il mixaggio hardware (utilizzano altri chip).
Nota: Il 99% delle schede madri con audio integrato non supporta il mixaggio hardware.
Nota: Un eccezione è il chip integrato VIA8237 che supporta il mixaggio hardware di 4 flussi. In realtà ridotti a 3 su alcune schede madri (il quarto non emette suono). Anche se funzionante, la qualità del suono non è comparabile a quella delle altre soluzioni.
  • Per Arch64 e la scheda 00:1b.0 Audio device: Intel Corporation 82801I (ICH9 Family) HD Audio Controller (rev 02), bisogna impostare alcuni parametri per ottenere suono da Enemy Territory:
$ echo "et.x86 0 0 direct" > /proc/asound/card0/pcm0p/oss
$ echo "et.x86 0 0 disable" > /proc/asound/card0/pcm0c/oss

Risoluzione dei problemi

Suono che salta utilizzando Dynamic Frequency Scaling

Alcune combinazioni di determinati driver ALSA e chipset, possono causare dei "salti" nel suono da tutte le sorgenti se utilizzati in combinazione con un governor dinamico della frequenza della cpu come ondemand o conservative. Attualmente, l'unica soluzione è di passare al governor performance. Fare riferimento alla pagina CPU Frequency Scaling (Italiano) per ulteriori informazioni.

Problemi con la disponibilità del mixaggio software per più di un utente per volta

Può capitare di rilevare che solo un utente per volta può utilizzare dmix. Questa situazione può andar bene per la maggior parte degli utenti, ma coloro i quali utilizzano mpd come utente differente, ciò diviene un problema. Quando mpd è in esecuzione un utente non può eseguire suoni tramite dmix. Nonostante sia sufficiente eseguire mpd tramite l'account utente di login, è stata trovata anche un'altra soluzione. L'aggiunta della riga ipc_key_add_uid 0 al blocco pcm.dmixer disabilita questa limitazione. Quello seguente è un estratto del codice di /etc/asound.conf, il resto è identico a quello mostrato in precedenza.

/etc/asound.conf
...
pcm.dmixer {
 type dmix
 ipc_key 1024
 ipc_key_add_uid 0 
 ipc_perm 0660
slave {
...

Problemi di riproduzione simultanea

Se si hanno problemmi a riprodurre più tracce contemporaneamente, e se è installto PulseAudio (ad esempio utilizzando GNOME), la sua configurazione di default verrà utilizzata automaticamente. Alcuni utenti potrebbero non voler utilizzare PulseAudio trovandosi bene con le proprie configurazioni di ALSA. Un metodo per risolvere il problema, è modificare il file /etc/asound.conf e commentare le righe seguenti:

# Use PulseAudio by default
#pcm.!default {
#  type pulse
#  fallback "sysdefault"
#  hint {
#    show on
#    description "Default ALSA Output (currently PulseAudio Sound Server)"
#  }
#}

Commentare anche queste potrebbe rivelarsi necessario:

#ctl.!default {
#  type pulse
#  fallback "sysdefault"
#}

Questa può rivelarsi una soluzione più semplice rispetto alla totale disinstallazione di PulseAudio. Qui di seguito viene mostrato un esempio di un /etc/asound.conf correttamente funzionante.

cm.dmixer {
        type dmix
        ipc_key 1024
        ipc_key_add_uid 0
        ipc_perm 0660
}
pcm.dsp {
        type plug
        slave.pcm "dmix"
}
Nota: Questo /etc/asound.conf è stato creato ed utilizzato con successo per una configurazione globale di MPD. Consultare questa sezione

Mancanza di suono casuale

Se ad intervalli irregolari ci si ritrova senza suono all'avvio, la causa potrebbe essere la presenza nel sistema di più di una scheda audio, ed il fatto che il loro ordine di enumerazione venga invertito. Se è questo il caso bisogna modificare questa sezione di /etc/asound.conf

/etc/asound.conf
.....
ctl.dmixer {
    type hw
    card FOO
}
.....

Sostituendo a FOO la periferica audio desiderata, come riportato in /proc/asound/cards Un esempio del file è mostrato qui

/proc/asound/cards
0 [U0x46d0x9a1    ]: USB-Audio - USB Device 0x46d:0x9a1
                     USB Device 0x46d:0x9a1 at usb-0000:00:12.2-2, high speed
1 [SB             ]: HDA-Intel - HDA ATI SB
                     HDA ATI SB at 0xf9ff4000 irq 16

La periferica 0 è il microfono integrato nella webcam, mentre la periferica 1 è la scheda audio integrata. Se si è copiato /etc/asound.conf da quassù senza adattarlo, ALSA tenterà di inizializzare il microfono come una periferica d'uscita, ma ciò fallirà e non si otterrà alcun suono. Anzichè sostituire a FOO il numero della periferica, si può utilizzare il nome di quest'ultima, riportato subito dopo al numero, in questo modo:

/etc/asound.conf
.....
ctl.dmixer {
    type hw
    card SB
}
.....

Per fare in modo che la maggior parte dei programmi utilizzino ALSA, assicurarsi che /etc/libao.conf contenga solo la riga default_driver=alsa10

Se si utilizza mpd, ma i consigli proposti finora non funzionano, consultare questa pagina.

Problemi specifici di alcuni programmi

Per alcuni programmi che continuano ad utilizzare i loro propri settaggi audio, come XMMS ed Mplayer, potrebbe rendersi necessaria l'impostazione dei loro specifici parametri. Per Mplayer, aprire~/.mplayer/config (o /etc/mplayer/mplayer.conf per un'impostazione globale) ed aggiungere la seguente linea ao=alsa

Per XMMS/Beep Media Player, portarsi nella scheda delle preferenze ed assicurarsi che sia selezionato come sistema audio ALSA e non OSS. Per fare ciò in XMMS

  • Aprire XMMS
    • Opzioni -> Preferenze.
    • Scegliere il plugin di uscita ALSA.

Per applicazioni che non forniscono compatibilità con ALSA è possibile utilizzare il pacchetto alsa-oss. Per utilizzare aoss, eseguire il programma anteponendogli aoss, ad esempio: aoss realplay

pcm.!default{ ... } sembra non funzionare più, al suo posto si può utilizzare pcm.default pcm.dmixer

Impostazione modelli

Anche se Alsa rileva la scheda audio attraverso il BIOS a volte può non essere in grado di riconoscerne il modello. Il chip della scheda audio può essere trovato in alsamixer (ad esempio ALC662) e il modello può essere impostato in /etc/modprobe.d/modprobe.conf o /etc/modprobe.d/sound.conf. Ad esempio:

options snd-hda-intel model=MODEL

Ci sono anche altri modelli da impostare. Nella maggior parte dei casi Alsa lo farà in automatico. Se si vogliono vedere nel dettaglio le impostazioni della propria scheda audio si veda Alsa Soundcard List, si individui il proprio modello, si clicchi su “Details” e si osservi la sezione "Setting up modprobe...". Inserire i valori trovati in /etc/modprobe.d/modprobe.conf. Ad esempio, per una scheda AC97 Intel:

# ALSA portion
alias char-major-116 snd
alias snd-card-0 snd-intel8x0
# module options should go here

# OSS/Free portion
alias char-major-14 soundcore
alias sound-slot-0 snd-card-0

# card #1
alias sound-service-0-0 snd-mixer-oss
alias sound-service-0-1 snd-seq-oss
alias sound-service-0-3 snd-pcm-oss
alias sound-service-0-8 snd-seq-oss
alias sound-service-0-12 snd-pcm-oss

Audio in conflitto con altoparlante interno del PC

Se si è sicuri che tutto è attivo, che i propri driver sono installati correttamente, e che il volume è giusto, ma non si sente ancora nessun suono, allora si proceda all’aggiunta delle seguenti linee di codice in /etc/modprobe.d/modprobe.conf:

options snd-NAME-OF-MODULE ac97_quirk=0

Funziona con via82xx

options snd-NAME-OF-MODULE ac97_quirk=1

Funziona con snd_intel8x0

Nessun Input dal Microfono

Assicurarsi, in alsamixer, che tutti i livelli del volume, nella sezione Registrazione, siano attivi e che la modalità CAPTURE del microfono sia abilitata (in alsamixer, selezionarla e premere spazio). Potrebbe anche essere necessario attivare e aumentare il volume di Line-in (Linea in ingresso) nella sezione Playblack (Riproduzione).

Per testare il microfono, eseguire questi comandi:

 arecord -d 5 test-mic.wav
 aplay test-mic.wav

Si consiglia di leggere la pagina man di arecord. Comunque, nel caso in cui non si sentisse alcun suono, il microfono potrebbe essere guasto oppure collegato nell’ingresso sbagliato.

Alcuni portatili Dell richiedono che il suffisso "-dmic" sia aggiunto al nome del modello all'interno di /etc/modprobe.d/modprobe.conf: options snd-hda-intel model=dell-m6-dmic

Alcuni programmi tentano di utilizzare OSS come software di input principale. Per evitare che i moduli OSS vengano caricati, aggiungere al file /etc/rc.conf la seguente linea:

 MODULES=(!snd_pcm_oss !snd_mixer_oss !snd_seq_oss ... )

Impostazione predefinita Microfono/Dispositivo di acquisizione

Alcune applicazioni (Pidgin, Adobe Flash) non forniscono una opzione per modificare il dispositivo di acquisizione. Ciò può costituire un problema se il microfono è su un dispositivo diverso (ad esempio una webcam USB o proprio un microfono) dalla scheda audio. Per cambiare solo il dispositivo di acquisizione, lasciando quello di riproduzione di default, si può modificare il file ~/.asoundrc inserendo quanto segue:

pcm.usb
{
    type hw
    card U0x46d0x81d
}

pcm.!default
{
    type asym
    playback.pcm
    {
        type plug
        slave.pcm "dmix"
    }
    capture.pcm 
    {
        type plug
        slave.pcm "usb"
    }
}

Sostituire "U0x46d0x81d" con il nome della scheda del dispositivo di acquisizione in ALSA. È possibile utilizzare il comando arecord -L per visualizzare l’elenco di tutti i dispositivi di acquisizione rilevati da ALSA.

Il microfono interno non funziona

Assicurarsi, in alsamixer, che tutti i livelli del volume, nella sezione Registrazione, siano attivi. Per ottenere una nuova impostazione volume, chiamata Capture, che registrerà il microfono interno, occorre aggiungere un’opzione al file /etc/sound.conf e ricaricare il modulo snd-*. Ad esempio, per snd-hda-intel, aggiungere:

 options snd-hda-intel enable_msi=1

Quindi, con i comandi riportati di seguito, ricaricare il modulo, attivare la nuova impostazione volume (Capture) e riprovare.

 rmmod snd-hda-intel
 modprobe snd-hda-intel

Nessun suono con Onboard Intel Sound Card

Ci potrebbe essere un conflitto tra due moduli caricati, chiamati snd_intel8x0 e snd_intel8x0m. In questo caso, mettere in blacklist snd_intel8x0m:

/etc/modprobe.d/modprobe.conf
blacklist snd_intel8x0m

Disabilitare i canali "External Amplifier" in alsamixer o in amixer potrebbe essere d'aiuto. Consultare anche il wiki ALSA.

Nessun suono dalle cuffie con scheda audio Onboard Intel

Su di un portatile con Intel Corporation 82801 I (ICH9 Family) HD Audio Controller potrebbe essere necessario aggiungere questa riga a modprobe o al sound.conf:

options snd-hda-intel model=$model

Dove $model è uno dei modelli che seguono (non in ordine di merito ma di probabilità di funzionamento):

  • dell-vostro
  • olpc-xo-1_5
  • dell-m6
Nota: Potrebbe essere necessario inserire queste "opzioni" dopo eventuali "alias"

Si possono visualizzare tutti i modelli disponibili nella documentazione del kernel. Ad esempio qua, ma accertarsi che si tratti della documentazione della versione del kernel in uso.

Un elenco di tutti i modelli è anche disponibile a questo indirizzo. Per conoscere il nome del proprio chip eseguire il seguente comando cat /proc/asound/card*/codec*

Nota: Alcuni chip potrebberoessere stati rinominati, e non avere quindi un riscontro diretto con i nomi all'interno del file

Se seguendo questo metodo si dovessero riscontrare malfunzionamenti o anomalie, si prega di segnalare ad ALSA eventuali bug.

Inoltre, in caso di problemi con segnali acustici (pcspkr):

options snd-hda-intel model=$model enable=1 index=0

Nessun suono quando è installata la scheda video con S/PDIF

Individuare i moduli disponibili ed il loro ordine:

$ cat /proc/asound/modules
0 snd_hda_intel
1 snd_ca0106

Disattivare il codec audio della scheda video in /etc/modprobe.d/modprobe.conf:

# /etc/modprobe.d/modprobe.conf
#
install snd_hda_intel /bin/false

Se entrambi i dispositivi utilizzano lo stesso modulo, dovrebbe essere possibile disattivare uno dei due tramite il BIOS.

La qualità dell'audio è bassa

Se si riscontra una bassa qualità dell'audio, provare ad impostare il volume di PCM (in alsamixer) ad un livello di gain 0.

Se è stato caricato il driver snd-usb-audio, potresti provare ad abilitare softvol all'interno del file /etc/asound.conf. Configurazione d'esempio per il primo dispositivo audio:

pcm.!default {
   type plug
   slave.pcm "softvol"
 }
 pcm.dmixer {
      type dmix
      ipc_key 1024
      slave {
          pcm "hw:0"
          period_time 0
          period_size 4096
          buffer_size 131072
          rate 50000
      }
      bindings {
          0 0
          1 1
      }
 }
 pcm.dsnooper {
      type dsnoop
      ipc_key 1024
      slave {
          pcm "hw:0"
          channels 2
          period_time 0
          period_size 4096
          buffer_size 131072
          rate 50000
      }
      bindings {
          0 0
          1 1
      }
 }
 pcm.softvol {
      type softvol
      slave { pcm "dmixer" }
      control {
          name "Master"
          card 0
      }
 }
 ctl.!default {
   type hw
   card 0
 }
 ctl.softvol {
   type hw
   card 0
 }
 ctl.dmixer {
   type hw
   card 0
 }

Rumori/Suoni all’avvio ed allo stop della riproduzione

Alcuni moduli (ad es. snd-ac97-codec e snd-hda-intel) posso spegnere la scheda audio quando questa non è utilizzata. Lo spegnimento può generare un suono. A volte ciò può avvenire anche quando si agisce sulla barra del volume, o quando si aprono o chiudono finestre (KDE4). Per evitare che ciò avvenga si può eseguire "modinfo snd-MY-MODULE", e cercare un’opzione che regoli o disattivi questa funzione.

Ad esempio: per disabilitare il risparmio energetico utilizzando snd-hda-intel aggiungere
options snd-hda-intel power_save=0
o
options snd-hda-intel power_save=0 power_save_controller=N
in /etc/modprobe.d/modprobe.conf.

Potrebbe anche rivelarsi necessario togliere il muto dal canale alsa 'Line'. Qualsiasi valore, purchè non 0 o troppo alto, andrà bene.

Ad esempio: su una scheda integrata VIA VT1708S (che utilizza il modulo snd-hda-intel) questi disturbi erano presenti anche dopo aver impostato il parametro 'power_save' a 0. Im postandolo ad 1 e togliendo il muto al canale 'Line', il problema è stato risolto.

Fonte: http://www.kernel.org/doc/Documentation/sound/alsa/powersave.txt

Alsamixer non si avvia

Se alsamixer non funziona, ed avviandolo si riceve il seguente errore:

alsamixer: function snd_ctl_open failed for default: No such device

si dovrebbe innanzitutto verificare in /etc/group se il proprio utente fa parte del gruppo 'audio'. Non dimenticarsi di terminare la sessione corrente e riavviarla quando si aggiunge un nuovo gruppo al proprio utente.

Quindi potrebbe essere necessario reinstallare il kernel. Eseguire 'pacman -S linux' o utilizzare il patchset che si preferisce.

L'uscita S/PDIF non funziona

Se l'uscita digitale ottica/coassiale della scheda madre/scheda audio non funziona o ha smesso di funzionare, e in alsamixer i relativi canali sono già attivi, provare ad eseguire:

iecset audio on

da utente root.

È inoltre possibile inserire questo comando in rc.local in quanto a volte può smettere di funzionare dopo un riavvio.

L'uscita HDMI non funziona

Se l'uscita HDMI della scheda madre/scheda audio non funziona o ha smesso di funzionare, e in alsamixer i relativi canali sono già attivi, provare quanto segue.

Interrogare i dispositivi di riproduzione:

$ aplay -l
**** 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 1: ALC1200 Digital [ALC1200 Digital]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: NVidia [HDA NVidia], device 3: NVIDIA HDMI [NVIDIA HDMI]
  Subdevices: 0/1
  Subdevice #0: subdevice #0

Ora che abbiamo le informazioni per la periferica HDMI, si può fare una prova. Nell'esempio che segue, 0 è il numero della scheda e 3 è il numero del dispositivo.

$ aplay -D plughw:0,3 /usr/share/sounds/alsa/Front_Center.wav

Se aplay non restituisce alcun errore, ma ancora non si sente alcun suono, "riavviare" il ricevitore, il monitor o la tv. Poichè l'interfaccia HDMI esegue un rigido controllo sulla connessione, potrebbe aver recepito che prima non c'era alcun flusso audio, ed ha quindi disabilitato la decodifica audio.

Nota: Se si utilizza una scheda ATI ed un kernel superiore al 3.0, verificare la propria configurazione di grub ed eventualmente aggiungervi il parametro d'avvio del kernel 'radeon.audio=1'. In alternativa è possibile specificare tale parametro tramite i file di configurazione di modprobe.

Se la verifica ha esito positivo, modificare/creare ~/.asoundrc per impostare HDMI come dispositivo audio predefinito e riavviare; ora l'audio dovrebbe funzionare.

~/.asoundrc
  pcm.!default {
       type hw
       card 0
       device 3
  }

Si può ora riavviare alsa col seguente comando

Nota: tutti iprogrammi che utilizzano alsa verranno interrotti.

# rc.d force-restart alsa

Utilizzare udev per abilitare/disabilitare l'audio da HDMI

Nota: Questa funzionalità sarà disponibile solo per i driver che supportano UDEV: i driver proprietari Nvidia ad esempio, non lo fanno.

I passi visti in precedenza in questa sezione sono utili per testare il proprio dispositivo o se non si ha la necessità di collegare spesso a caldo la propria periferica HDMI. Si considera ora il caso in cui si sia in possesso di un portatile, e si voglia che il dispositivo audio HDMI sia attivato solo quando viene collegato un cavo HDMI.

Questo codice proviene dal Forum internazionale di Arch Linux.

Si creano una regola di udev (per rilevare il collegamento/scollegamento del cavo), due differenti file di configurazione di ALSA, ed uno script che esegue lo switch tra queste due configurazioni.

Per prima cosa creare /etc/alsa/ se non esistesse già; conterrà i file di configurazione e lo script di switch:

[[ -d /etc/alsa/ ]] || sudo mkdir -v /etc/alsa

Inserire sotto questa directory i seguenti file:

/etc/alsa/hdmi-switch
#! /bin/bash
set -x

udevadm settle --quiet --timeout=16

read hdmi_status </sys/class/drm/card0-HDMI-A-1/status
alsa_dir=/etc/alsa
asound_file=asound.hdmi-$hdmi_status

if [[ -n $hdmi_status && -f "$alsa_dir/$asound_file" ]]; then
    ln -sf "$alsa_dir/$asound_file" /etc/asound.conf
    /etc/rc.d/alsa force-restart
fi
/etc/alsa/asound.hdmi-connected
pcm.!default {
    type plug
    slave.pcm "dmixer"
}

pcm.dsp0 {
    type plug
    slave.pcm "dmixer"
}

pcm.dmixer {
    type dmix
    ipc_key 1024             
    ipc_key_add_uid 0
    ipc_perm 0666                
    slave {
        pcm "hw:0,3"    # HDMI CARD AND DEVICE
        period_time 0
        period_size 1024
        buffer_size 8192
        rate 48000 #or 44100
    }   
}

ctl.dmixer {
    type hw
    card 0
}
/etc/alsa/asound.hdmi-disconnected
pcm.!default {
   type plug
   slave.pcm "dmixer"
}
  
pcm.dsp0 {
   type plug
   slave.pcm "dmixer"
}
  
pcm.dmixer {
   type dmix
   ipc_key 1024                
   ipc_key_add_uid 0
   ipc_perm 0666           
   slave {
       pcm "hw:0,0"      # LOCAL CARD AND DEVICE
       period_time 0
       period_size 1024
       buffer_size 8192
       rate 48000 #or 44100
   }
}
  
ctl.dmixer {
   type hw
   card 0
}

Queste due versioni di asound.conf includono l'impostazione di dmix e consentono l'unione dei permessi utente, cosicchè, ad esempio, sia possibile che l'utente mpd ed il proprio utente, possano accedere contemporaneamente alla risorsa.T

Si può ora verificare il funzionamento dello script di switch tramite

 sudo chmod +x /etc/alsa/hdmi-switch
 sudo /etc/alsa/hdmi-switch

Si dovrebbe riscontrare che l'audio HDMI è attivo se si avvia lo script quando il cavo è inserito, mentre si ritorna alla normale periferica audio se lo script viene eseguito una volta che il cavo è scollegato.

Ora che si è verificato ciò, si può automatizzare il tutto tramite la regola di udev:

/etc/udev/rules.d/hdmi.rules
SUBSYSTEM=="drm", ACTION=="change", RUN+="/bin/bash /etc/alsa/hdmi-switch"

Per fare in modo che udev consideri da subito la nuova regola, ricaricarle tutte

  sudo udevadm control --reload-rules

Impossibile regolare il canale PCM

Potrebbe non essere possibile regolare il canale PCM. In questo caso provare a rimuovere tutte le voci inerenti l’audio dalla sezione MODULES del file /etc/rc.conf, ad eccezione di snd-NAME-OF-MODULE.

HP TX2500

Aggiungere queste due righe in /etc/modprobe.d/modprobe.conf:

options snd-cmipci mpu_port=0x330 fm_port=0x388
options snd-hda-intel index=0 model=toshiba position_fix=1
options snd-hda-intel model=hp (works for tx2000cto)

Salto di suono durante la riproduzione MP3

Se si hanno salti di suono durante la riproduzione di file MP3 e se al computer sono collegati di più di 2 altoparlanti (o più di due), eseguire alsamixer e disabilitare i canali degli altoparlanti che NON si posseggono (ad esempio, disabilitare il canale dell’altoparlante centrale se non si dispone di un altoparlante centrale).

Cuffia USB e schede audio esterne USB

Se si utilizza una cuffia USB con ALSA, si può provare ad usare asoundconf (attualmente disponibile solo da AUR) per impostare l'auricolare come uscita audio principale. Nota: prima di proseguire, per favore, assicurarsi di avere abilitato il modulo usb audio

#modprobe snd-usb-audio

Se si vuole, si può aggiungere quanto segue al file /etc/rc.conf

# asoundconf is-active
# asoundconf list
# asoundconf set-default-card <chosen soundcard>

Suono gracchiante su dispositivi USB

Se si riscontra audio gracchiante su dispositivi USB, si può provare ad impostare il modulo snd-usb-audio per minime latenze. Aggiungere questo codice a /etc/modprobe.d/modprobe.conf :

options snd-usb-audio nrpacks=1

Fonte: http://alsa.opensrc.org/Usb-audio#Tuning_USB_devices_for_minimal_latencies

Errore 'Unkown hardware' dopo aggiornamento Kernel

I seguenti messaggi possono essere visualizzati durante l'avvio di ALSA, dopo l'aggiornamento del kernel:

Unknown hardware "foo" "bar" ...
Hardware is initialized using a guess method
/usr/sbin/alsactl: set_control:nnnn:failed to obtain info for control #mm (No such file or directory)

oppure

Found hardware: "HDA-Intel" "VIA VT1705" "HDA:11064397,18490397,00100000" "0x1849" "0x0397"
Hardware is initialized using a generic method
/usr/sbin/alsactl: set_control:1328: failed to obtain info for control #1 (No such file or directory)
/usr/sbin/alsactl: set_control:1328: failed to obtain info for control #2 (No such file or directory)
/usr/sbin/alsactl: set_control:1328: failed to obtain info for control #25 (No such file or directory)
/usr/sbin/alsactl: set_control:1328: failed to obtain info for control #26 (No such file or directory)

E’ sufficiente memorizzare nuovamente le impostazioni del mixer di ALSA (da root):

# alsactl -f /var/lib/alsa/asound.state store

Potrebbe essere necessario configurare nuovamente ALSA tramite alsamixer

HDA Analyzer

Se la mappatura dei pin (spinotti) audio non corrisponde ma ALSA funzione regolarmente, si può provare HDA Analyzer – un’interfaccia grafica (GUI) in pyGTK2 per il controllo dell’audio HD, disponibile nel wiki di ALSA. Provare anche ad utilizzare la sezione Widget Control per gestire i PIN, impostando IN per il microfono e OUT per le cuffie. Potrebbe essere una buona idea fare riferimento ai valori di default (Config Defaults).

NOTE: Lo script è incompatibile con python3 (che è attualmente fornito con ArchLinux) ma si può comunque provare ad utilizzarlo. La soluzione è: aprire “run.py”, trovare tutte le ricorrenze "python" (2 ricorrenze - una nella prima riga, e la seconda nell'ultima riga) e sostituirle con "python2".

NOTE2: Lo script richiede i privilegi di root, ma non funziona attraverso su/sudo. Eseguirlo quindi tramite kdesu o gtksu.

ALSA con SDL

Se non si riesce ad ottenere alcun suono tramite SDL, ma ALSA non può essere selezionato nella configurazione dell'applicazione, provare ad impostare la variabile d'ambiente SDL_AUDIODRIVER su "alsa"

export SDL_AUDIODRIVER=alsa

Configurazioni d'esempio

Consultare Advanced Linux Sound Architecture/Example Configurations (Italiano)

Link esterni

Altre informazioni possono essere trovate ai seguenti link: