Difference between revisions of "Advanced Linux Sound Architecture (Español)"

From ArchWiki
Jump to: navigation, search
(Actualización: 2012-10-02)
Line 14: Line 14:
 
[[tr:Gelişmiş_ses_mimarisi_(ALSA)]]
 
[[tr:Gelişmiş_ses_mimarisi_(ALSA)]]
 
[[zh-CN:Advanced Linux Sound Architecture]]
 
[[zh-CN:Advanced Linux Sound Architecture]]
{{out of date}}
+
La [[Wikipedia: Advanced Linux Sound Architecture|Arquitectura Avanzada para el Sonido en Linux]] (conocido con el acrónimo '''ALSA''') es un componente del kernel destinado a sustituir el original Open Sound System (Open OSSv3) para proporcionar controladores de dispositivos para las tarjetas de sonido. Además de los controladores de dispositivos de sonido, '''ALSA''' también pone a disposición una amplia biblioteca en el espacio de usuario para los desarrolladores de aplicaciones que quieran utilizar las funciones del controlador mediante un API de alto nivel con una interacción directa con los controladores del kernel.
ALSA es el acrónimo de "Advanced Linux Sound Architecture" (que significa Arquitectura de Sonido Avanzada para Linux en español). Es un componente del kernel Linux que proporciona controladores para las tarjetas de sonido.
+
  
Mire [[OSS]] si busca alternativas.
+
{{Nota|Para un entorno de sonido alternativo, consulte la página [[Open Sound System]] }}.
  
Este documento muestra cómo hacer funcionar ALSA con núcleos de la rama 2.6. Vea también cómo
+
{{Article summary start|Sumario}}
[[Allow_multiple_programs_to_play_sound_at_once|permitir que varios programas reproduzcan sonido a la vez]].
+
{{Article summary text|Uso, configuración y solución de problemas de ALSA.}}
 +
{{Article summary heading|Relacionado}}
 +
{{Article summary wiki|Sound}}
 +
{{Article summary wiki|Disable PC Speaker Beep}}
 +
{{Article summary end}}
  
= Instalación =
+
==Instalación==
  
== Drivers del kernel ==
+
ALSA está incluido en el kernel de Arch por defecto como un conjunto de módulos, por lo que no es necesaria su instalación explícitamente.
  
ALSA ha sido incluido en los kernels 2.6 y en todos los paquetes '''kernel26*''' de Archlinux. Si quiere compilar un kernel propio no olvide habilitar el driver ALSA adecuado.
+
[[Udev]] explorará automáticamente su hardware en el arranque, cargando el módulo del kernel correcto para la tarjeta de sonido encontrada. Por lo tanto, su sonido debería estar funcionando desde el inicio, pero, ha de tener en cuenta que su configuración viene, por defecto, con todos los canales de audio silenciados.
  
Todos los módulos necesarios deberían ser detectados y cargados automáticamente por udev. No se necesita de ningúna configuración especial a menos que su tarjeta de sonido sea ISA. No use '''NUNCA''' alsaconf si tiene una tarjeta PCI o ISAPNP, ya que el programa añade líneas a modprobe.conf que pueden romper la autodetección de udev. Si ya ha ejecutado el programa borre todo el contenido de <code>/etc/modprobe.d/modprobe.conf</code> (si usted ya ha agregado alguna línea no es necesario que la borre). Necesitará privilegios de root para esto.
+
Los usuarios deben formar parte del [[Users and Groups|group]] de audio para reproducir sonido con ALSA. Para agregar un usuario al grupo audio, utilice el siguiente comando:
 +
{{bc|# gpasswd -a ''nombre-de-usuario'' audio}}
  
== Utilidades de area de usuario ==
+
{{Nota|Ésto no tendrá efecto hasta el siguiente reinicio del login de usuario}}
  
* Necesarios para los programas nativos de ALSA y su administración
+
===Utilidades===
# pacman -S alsa-lib alsa-utils
+
* Recomendado si quiere usar aplicaciones con soporte de OSS en combinación con dmix:
+
# pacman -S alsa-oss
+
  
Todos los programas ALSA dependerán de la librería alsa-lib.
+
Desde los [[Official Repositories|repositorios oficiales]]:
 +
* [[pacman|Instale]] el paquete {{pkg|alsa-utils}} que contiene la utilidad {{ic|alsamixer}}, que permite la configuración del dispositivo de sonido desde consola o terminal.
 +
* Instale el paquete {{pkg|alsa-oss}} si desea que las aplicaciones OSS funcionen mediante dmix (software de mezcla).
 +
{{Nota|1=A partir de [[udev]] >= 171, los módulos de emulación OSS ({{ic|snd_seq_oss}}, {{ic|snd_pcm_oss}}, {{ic|snd_mixer_oss}}) no se cargan automáticamente por defecto.}}
 +
* Instale el paquete {{pkg|alsa-plugins}} si desea [[#Remuestreo de alta calidad|remuestreo en alta calidad]], [[#Upmixing/Downmixing|upmixing/downmixing]] y otras características avanzadas.
  
= Configuración =
+
==Abriendo los canales de audio==
  
== Asegurándose de que los módulos estén cargados ==
+
La versión actual de ALSA se instala con todos los canales '''silenciados por defecto'''. Será necesario revertir el '''enmudecimiento''' de los canales manualmente.
  
Puede suponer que udev autodetectó su tarjeta de sonido correctamente, y que incluso cargó los módulos de compatibilidad OSS. Si quiere comprobarlo, puede hacerlo con lsmod:
+
Para lograr ésto, lo más fácil es usar la interfaz gráfica de usuario {{ic|alsamixer}}, (otra alternativa es utilizar amixer desde la línea de comandos):
 +
{{bc|$ alsamixer}}
  
$ lsmod | grep '^snd'
+
La etiqueta {{ic|MM}} por debajo de un canal indica que el canal está silenciado, y {{ic|00}} indica que está abierto.
snd_usb_audio          69696  0
+
snd_usb_lib            13504  1 snd_usb_audio
+
snd_rawmidi            20064  1 snd_usb_lib
+
snd_hwdep              7044  1 snd_usb_audio
+
snd_seq_oss            29412  0
+
snd_seq_midi_event      6080  1 snd_seq_oss
+
snd_seq                46220  4 snd_seq_oss,snd_seq_midi_event
+
snd_seq_device          6796  3 snd_rawmidi,snd_seq_oss,snd_seq
+
snd_pcm_oss            45216  0
+
snd_mixer_oss          15232  1 snd_pcm_oss
+
snd_intel8x0          27932  0
+
snd_ac97_codec        87648  1 snd_intel8x0
+
snd_ac97_bus            1792  1 snd_ac97_codec
+
snd_pcm                76296  4 snd_usb_audio,snd_pcm_oss,snd_intel8x0,snd_ac97_codec
+
snd_timer              19780  2 snd_seq,snd_pcm
+
snd                    43776  12 snd_usb_audio,snd_rawmidi,snd_hwdep,snd_seq_oss,snd_seq,snd_seq_device,snd_pcm_oss,snd_mixer_oss,snd_intel8x0,snd_ac97_codec,snd_pcm,snd_timer
+
snd_page_alloc          7944  2 snd_intel8x0,snd_pcm
+
  
Si la salida es similar, los controladores de su tarjeta de sonido fueron autodetectados correctamente (en este caso, snd_intel8x0 y snd_usb_audio son los drivers de los dispositivos de hardware). También puede verificar que en el directorio '''/dev/snd''' se encuentren los ficheros de dispositivo correctos:
+
El procedimiento a seguir es el siguiente:
  
$ ls -l /dev/snd/
+
Desplácese hasta los canales {{ic|Master}} y {{ic|PCM}} con las teclas {{keypress|←}} y {{keypress|→}} y desactívelos pulsando la tecla {{keypress|m}}. Utilice la tecla {{keypress|↑}} para aumentar el volumen y obtener un "dB gain" con valor {{ic|0}}. El valor gain se puede encontrar en la parte superior izquierda junto al campo {{ic|Item:}}. Los valores más altos de gain producirán sonido distorsionado.
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
+
  
Si al menos tiene el dispositivo '''controlC0''' y '''pcmC0D0p''' (o similar) entonces los módulos de sonido han sido cargados sin problemas.
+
Para obtener un verdadero sonido envolvente (surround) 5.1 ó 7.1 es probable que tenga que desactivar otros canales como Front, Surround, Center, LFE (subwoofer) y Side (éstos son los nombres de los canales para el módulo Intel HD Audio, y pueden variar con hardware diferente). Tenga en cuenta que ésto no se logrará automáticamente con Upmix para las fuentes de sonido estéreo (como, por ejemplo, la música). Con el fin de lograrlo, consulte [[#Upmixing/Downmixing|Upmixing/Downmixing]].
  
Si no es el caso, sus módulos de sonido no fueron detectados o algo impide que se carguen. '''Si quiere ayuda en IRC o en los foros, por favor, incluya la salida de los programas mencionados en su mensaje.''' Para solucionar ésto, puede intentar cargar los módulos manualmente:
+
Salga de alsamixer pulsando {{Keypress|Esc}}.
  
* Encuentre el módulo de su tarjeta: [http://www.alsa-project.org/alsa-doc/ http://www.alsa-project.org/alsa-doc/]. El prefijo del módulo será 'snd-' (por ejemplo: 'snd-via82xx').
+
{{Nota|
* Cargue los módulos:
+
* Algunas tarjetas necesitan tener el canal de salida digital silenciado/apagado para poder escuchar el sonido analógico. Para el LS Soundblaster Audigy es necesario silenciar el canal IEC958.
  # modprobe snd-NAME-OF-MODULE
+
* Algunas máquinas, (como la Thinkpad T61), tienen un canal speaker (altavoz) que debe ser activado y ajustado también.
  # modprobe snd-pcm-oss
+
* Algunas máquinas (como Dell E6400) también pueden requerir que el silencio sea desactivado en los canales {{ic|Front}} y {{ic|Headphone}} y ajustados}}
* Busque los ficheros del dispositivo en '''/dev/snd''' (mire más arriba) y/o pruebe si '''alsamixer''' o '''amixer''' pueden producir alguna salida de audio.
+
* Añada '''snd-NOMBRE-DEL-MÓDULO''' y '''snd-pcm-oss''' a la lista de "MODULES" en '''/etc/rc.conf''' para que carguen al arrancar el ordenador (asegúrese de que '''snd-NOMBRE-DEL-MÓDULO''' está antes de '''snd-pcm-oss''').
+
  
== Probando la tarjeta de sonido ==
+
Se puede ahora comprobar si el sonido funciona:
  
En esta sección damos poe supuesto que es root. Si quiere realizar los pasos en un usuario sin privilegios, debe saltar a la parte ''Dando Permisos'' primero.
+
{{bc|$ speaker-test -c 2}}
  
* Revirtiendo el silencio por defecto de la tarjeta.
+
Modifique el valor -c para ajustar la configuración de los altavoces. Por ejemplo, use -c 8 para 7.1:
  
La versión actual de ALSA deja a todas las tarjetas '''mudas por defecto''', así que aunque la instalación haya resultado exitosa y tenga todos los módulos cargados, no escuchará ningún sonido. Deberá revertir el estado de silencio de los canales manualmente. Se recomienda usar '<code>alsamixer</code>' para hacerlo.  Desde la interfaz de alsamixer (basada en texto), la etiqueta "MM" bajo un canal significa que el mismo esta mudo, y "00" indica que está abierto. Presione la tecla 'm' para pasar de MM/00. Use las flechas de dirección derecha/izquierda para navegar por los canales y arriba/abajo para cambiar el volúmen.<br><br>
+
{{bc|$ speaker-test -c 8}}
'''NOTA:''' Cuando use '''<code>amixer</code>''', no solo debe asegurarse de '''revertir el silencio''' sino también de dejar un buen nivel de volúmen. El programa entiende los valores por porcentaje, no por números. Si usa un número (digamos, 90) entonces '''<code>amixer</code>''' lo tomará como un 100%, lo que puede dañar sus altavoces.
+
  
  # amixer set Master 90% unmute
+
Si esto no funciona, vaya a [[#Configuración]] o consulte [[#Solución de problemas]].
  # amixer set PCM 85% unmute
+
  
* Trate de reproducir un archivo WAV
+
Si funciona, sólo le queda guardar los ajustes realizados.
  
  # aplay mywav.wav
+
{{bc|# alsactl store}}
  
'''NOTA:''' Algunas tarjetas (hasta ahora sólo se vió en una Soundblaster Audigy LS) necesitan la salida digital apagada o muda para poder escuchar sonido analógico.
+
Esto creará el archivo {{ic|/var/lib/alsa/asound.state}}, donde se guardarán todos los ajustes de alsamixer.
  
 +
A continuación, agregue el [[daemon|demonio]] {{ic|alsa}} a la matriz {{ic|DAEMONS}} en el archivo {{ic|/etc/rc.conf}} para restaurar automáticamente la configuración del mezclador durante el arranque. Consulte [[rc.conf#Daemons|Daemons]] para obtener instrucciones detalladas.
  
== Dando Permisos ==
+
{{Nota|El demonio {{ic|alsa}} sólo restaura los niveles del volumen de algunos canales en el arranque mediante la lectura del archivo {{ic|/var/lib/alsa/asound.state}}. Es independiente de la biblioteca de audio de alsa (y la API a nivel del kernel).}}
  
Para poder usar el sonido siendo un usuario común, siga estos pasos:
+
==Configuración==
 +
===Establecer la tarjeta de sonido por defecto===
  
* Añada su usuario al grupo audio:
+
En primer lugar, tendrá que averiguar los identificadores de la tarjeta de audio y del dispositivo que desea establecer como predeterminados, ejecutando {{ic|aplay -l}}:
# gpasswd -a NOMBRE_DE_USUARIO audio
+
  
* Salga de su sesión y vuelva a entrar para que los cambios tengan efecto.
+
{{hc|$ aplay -l|2=<nowiki>
 +
**** 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
 +
</nowiki>}}
  
== Cargar la configuración de ALSAMIXER al arranque ==
+
Por ejemplo, la última entrada de esta lista se refiere a la tarjeta (card) con el identificador (id) 2 y al dispositivo (device) con el id 0. Para establecer esta tarjeta como predeterminada, puede utilizar el archivo del sistema {{ic|/etc/asound.conf}} o el archivo específico del usuario {{ic|~/.asoundrc}}. Puede que tenga que crear este último archivo si no existe. A continuación, inserte las siguientes opciones con el correspondiente id (identificador) relativo a la tarjeta y al dispositivo.
 +
{{hc|~/.asoundrc|2=<nowiki>
 +
defaults.pcm.card 2
 +
defaults.pcm.device 0
 +
defaults.ctl.card 2
 +
</nowiki>}}
 +
La opción {{ic|'pcm'}}, que afecta a la tarjeta y al dispositivo, especifica que ambos serán utilizados para la reproducción de audio, mientras que la opción {{ic|'ctl'}} indica que serán controlados por utilidades como alsamixer.
  
* Ejecute 'alsactl' una vez para crear '<code>/etc/asound.state</code>':
+
Los cambios surten efecto tan pronto como se (re-) inicie una aplicación (mplayer, etc.)
  
alsactl store
+
Si sus tarjetas de sonido cambian de orden durante el arranque, puede especificar el orden de las mismas en el archivo {{ic|/etc/modprobe.d/modprobe.conf}}.
 +
Por ejemplo, si desea que su tarjeta de sonido ''mia'' se cargue primero, colóquele el valor {{ic|#0}}:
  
* Edite '/etc/rc.conf' y añada 'alsa' a la lista de "DAEMONS". Ésto guardará la configuración de ALSA al apagado y la volverá a cargar al bootear.
+
{{hc|/etc/modprobe.d/modprobe.conf|2=<nowiki>
 +
options snd slots=snd_mia,snd_hda_intel
 +
options snd-mia index=0
 +
options snd-hda-intel index=1
 +
</nowiki>}}
  
== Consiguiéndo la salida de SPDIF ==
+
snd-mia y snd-hda-intel son los módulos utilizados por las respectivas tarjetas. Esta configuración asume que tiene una tarjeta de sonido mia y una tarjeta snd-hda-intel (es decir, integrada). Estos cambios requieren un reinicio del sistema, para que surtan efectos.
  
(de gralves de los foros de Gentoo)
+
===Asegurarse de que los módulos de sonido se cargan===
* En el control de volúmen de GNOME, bajo la pestaña "Opciones", cambie de IEC958 a PCM. Esta opción puede ser habilitada en "Preferencias".
+
* Si no tiene instalado el control de volúmen de Gnome,
+
** Edite <code>/etc/asound.state</code>.  Este fichero es donde alsasound guarda las preferencias.
+
** Encuentre la línea que dice: 'IEC958 Playback Switch'.  Cerca de ella encontrará una línea diciendo "<code>value:false</code>". Cámbielo a "<code>value:true</code>".
+
** Ahora encuentre esta línea: 'IEC958 Playback AC97-SPSA'. Cambie su valor a 0.
+
** Reinicie ALSA (para hacerlo: <code># /etc/rc.d/alsa restart</code>).
+
  
Forma alternativa de habilitar la salida de SPDIF automáticamente en el login (probado en una SoundBlaster Audigy):
+
Es de suponer que udev detectará automáticamente el sonido correctamente. Puede verificar que ésto ha ocurrido así con el comando siguiente:
* añada las siguientes líneas a /etc/rc.local:
+
  
   # Usar salida COAX-digital
+
{{hc|<nowiki>$ lsmod | grep '^snd' | column -t</nowiki>|<nowiki>
 +
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
 +
</nowiki>}}
 +
 
 +
Si el resultado es similar, los controladores de sonido han sido reconocidos automáticamente con éxito.
 +
{{Nota|A partir de {{ic|udev>&#61;171}}, los módulos de emulación OSS ({{ic|snd_seq_oss, snd_pcm_oss, snd_mixer_oss}}) no se cargan de forma predeterminada: son necesarios cargarlos con {{ic|modprobe}} y/o agregarlos en la matriz {{ic|MODULES}} del archivo [[rc.conf|{{ic|/etc/rc.conf}}]], si se desea que se inicien automáticamente en cada arranque. Al puentearse el software de mezcla, no los cargue a menos que tenga software compatible con OSS.}}
 +
 
 +
También puede ser que desee comprobar el directorio {{ic|/dev/snd/}} para verificar que los archivos de dispositivos son los correctos:
 +
 
 +
{{hc|$ ls -l /dev/snd|2=<nowiki>
 +
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
 +
</nowiki>}}
 +
 
 +
{{Nota|Si solicita ayuda en el IRC o los foros, por favor envíe la salida de los comandos anteriores.}}
 +
 
 +
Si tiene presente, por lo menos, los dispositivos '''controlC0''' y '''pcmC0D0p''' o similares, entonces los módulos de sonido han sido detectados y cargados correctamente.
 +
 
 +
Si éste no es el caso, sus módulos de sonido no se han detectado correctamente. Para solucionar ésto, pruebe intentando cargar los módulos manualmente:
 +
 
 +
* Localice el módulo de tu tarjeta de sonido: [http://www.alsa-project.org/main/index.php/Matrix:Main ALSA Soundcard Matrix]. El módulo tendrá el prefijo 'snd-' (por ejemplo: {{ic|snd-via82xx}}).
 +
* Cargue lo módulos:
 +
  # modprobe snd-NOMBRE-DEL-MÓDULO
 +
* Compruebe si los archivos del dispositivo están en {{ic|/dev/snd}} (ver más arriba) y/o pruebe si {{ic|alsamixer}} o {{ic|amixer}} tienen una salida razonable.
 +
* Agregue {{ic|snd-NOMBRE-DEL-MÓDULO}} y {{ic|snd-pcm-oss}} a la lista de módulos en {{ic|/etc/rc.conf}} para asegurar que se cargan la próxima vez que reinicie (verifique que {{ic|snd-NOMBRE-DEL-MÓDULO}} está colocado antes que {{ic|snd-pcm-oss}}).
 +
 
 +
===Restaurar configuraciones ALSA Mixer al inicio===
 +
 
 +
{{Advertencia|Si utiliza {{ic|kmix}}, asegúrese de configurarlo para que no restaure los niveles de sonido en el inicio. De lo contrario, hará que entre en conflicto con la configuración que se detalla a continuación.}}
 +
* Ejecute {{ic|alsactl -f /var/lib/alsa/asound.state store}} para crear {{ic|/var/lib/alsa/asound.state}}.
 +
 
 +
# alsactl -f /var/lib/alsa/asound.state store
 +
 
 +
* Edite {{ic|/etc/[[rc.conf]]}} y añada {{ic|alsa}} a la lista de demonios para iniciar en el arranque. Esto guardará la configuración del mezclador (mixer) en cada parada y la restaurará al arrancar.
 +
 
 +
* Si la configuración del mezclador no se carga en el arranque, añada la siguiente línea a {{ic|/etc/rc.local}}:
 +
 
 +
# alsactl -f /var/lib/alsa/asound.state restore
 +
 
 +
* Puede que con este método tampoco funcione, y, como alternativa, no le importe tener, tan sólo, la configuración de audio para usuarios individuales. En este último caso, ejecute {{ic|alsactl store -f ~/.asoundrc}} como un usuario normal. Esto guardará y restaurará la configuración del volumen en función de cada usuario. Para automatizar este proceso, agregue los respectivos comandos a {{ic|~/.bash_login}} y {{ic|~/.bash_logout}}, o a los lugares correctos para la shell de su elección. Por ejemplo para zsh, utilice:
 +
 
 +
{{ic|~/.zlogin}} y {{ic|~/.zlogout}}.
 +
 
 +
===Conseguir salida SPDIF===
 +
 
 +
(De los foros de Gentoo)
 +
 
 +
* En el control de volumen de GNOME, en la pestaña Opciones, cambie el IEC958 a PCM. Esta opción puede estar habilitada en las preferencias.
 +
* Si usted no tiene instalado el control de volumen de GNOME,
 +
** Edite {{ic|/var/lib/alsa/asound.state}}. En este archivo alsasound almacena la configuración de mixer.
 +
** Encuentra una línea que dice: 'IEC958 Playback Switch'. Cerca de ella se encuentra una línea que dice {{ic|value:false}}. Cambie el valor a {{ic|value:true}}.
 +
** Ahora busca esta línea: 'IEC958 Playback AC97-SPSA'. Cambie su valor a {{ic|0}}.
 +
** Reinicie ALSA.
 +
 
 +
Otra forma alternativa para activar la salida SPDIF automáticamente al iniciar sesión (probado en SoundBlaster Audigy):
 +
 
 +
* Añada las siguientes líneas a {{ic|/etc/rc.local}}:
 +
  # Use COAX-digital output
 
   amixer set 'IEC958 Optical' 100 unmute
 
   amixer set 'IEC958 Optical' 100 unmute
 
   amixer set 'Audigy Analog/Digital Output Jack' on
 
   amixer set 'Audigy Analog/Digital Output Jack' on
  
Puede ver el nombre de la salida digital de tu tarjeta con:
+
Se puede ver el nombre de la salida digital de su tarjeta con:
 +
  $ amixer scontrols
  
  amixer scontrols
+
===Ecualizador System-Wide===
 +
====Usando AlsaEqual (proporciona la interfaz gráfica de usuario)====
  
== Configuración en KDE ==
+
Instale {{AUR|alsaequal}} desde [[AUR].
* Inicia KDE:
+
$ startx
+
  
* Configure los niveles de volumen para este usuario (cada usuario tiene sus propios niveles):
+
{{Nota|Si tiene un sistema x86_64 y está utilizando un flashplugin de 32bit, el sonido en flash no funcionará. Tendrá que, o bien desactivar alsaequal, o bien compilar alsaequal para 32 bits.}}
$ alsamixer
+
  
* Salga de la sesión e ingrese de nuevo para que funcione el sonido.
+
Después de instalar el paquete, introduzca lo siguiente en el archivo de configuración de ALSA ({{ic|~/.asoundrc}} o {{ic|/etc/asound.conf}}):
  
* <b>KDE 3.3</b> Dirígase al menu K > Multimedia > KMix
+
ctl.equal {
** Seleccione Opciones > Configurar KMix...
+
  type equal;
** Deseleccione la opción "Restablecer volumen al logearse"
+
}
** Presione OK, y todo debería estar terminado. Ahora el volumen será el mismo que con alsamixer o sin KDE.
+
 +
pcm.plugequal {
 +
  type equal;
 +
  # Modifique la línea de abajo si
 +
  # desea utilizar la tarjeta de sonido 0.
 +
  #slave.pcm "plughw:0,0";
 +
  #por defecto funcionará con más de una fuente simultáneamente:
 +
  slave.pcm "plug:dmix";
 +
}
 +
#pcm.equal {
 +
  # Si no desea que el ecualizador utilice la
 +
  # tarjeta de sonido predeterminada comente la siguiente
 +
  # línea y descomente la línea anterior. (Puede
 +
  # elegirlo como dispositivo de salida al usar
 +
  # otras aplicaciones específicas, por ejemplo, mpg123 -a equal 06.Back_In_Black.mp3)
 +
pcm.!default {
 +
  type plug;
 +
  slave.pcm plugequal;
 +
}
 +
 +
A continuación, vuelva a cargar la configuración de ALSA (como root).
 +
# rc.d restart alsa
 +
Es muy importante cerrar todas las aplicaciones que usan ALSA.
  
==Ecualizador del sistema==
+
Y ya está listo para cambiar su ecualizador con el comando
Nota: Este método requiere del uso de un plugin ladspa que podría suponer un elevado uso de CPU al reproducir sonido. Además, ésto se hizo con vistas a sonido estereofónico (p. ej. auriculares).
+
$ alsamixer -D equal
  
* necesitará, además de las utilidades del área de usuario ya comentadas, el paquete alsa-plugins
+
Tenga en cuenta que el archivo de configuración es diferente para cada usuario (mientras no se especifique otra cosa) que se guarda en {{ic|~/.alsaequal.bin}}.
  pacman -S alsa-plugins
+
Así que si desea utilizar AlsaEqual con [[mpd]] u otro software que se ejecute bajo un usuario diferente, se puede configurar mediante el comando:
* instale también los paquetes ladspa y swh-plugins si no los tiene ya
+
# su mpd -c 'alsamixer -D equal'
pacman -S ladspa swh-plugins
+
O, por ejemplo, se puede hacer un enlace simbólico a {{ic|.alsaequal.bin}} en el directorio home de aquel usuario.
* si no tiene ya creados los archivos ~/.asoundrc o /etc/asound.conf, crée uno de ellos
+
 
vim ~/.asoundrc
+
=====Gestor de Estados de AlsaEqual=====
* inserte lo siguiente en su archivo de configuración de alsa (~/.asoundrc o /etc/asound.conf)
+
 
pcm.eq {
+
Instale [http://xyne.archlinux.ca/projects/alsaequal-mgr/ alsaequal-mgr] desde los repositorios [http://xyne.archlinux.ca/repos/ Xyne] o desde [https://aur.archlinux.org/packages.php?ID=62420 AUR].
   type ladspa<br>
+
 
   # La salida del EQ puede ir bien directamente a un dispositivo de hardware
+
Configure el ecualizador como de costumbre con:
   # (si dispone de un mezclador por hardware, p.ej. SBLive/Audigy) o bien puede ir
+
  $ alsamixer -D equal
   # al mezclador por software visto aquí.
+
 
 +
Cuando esté satisfecho con el estado, puede darle un nombre ("foo" en este ejemplo) y guardarlo:
 +
$ alsaequal-mgr save foo
 +
 
 +
El estado "foo", entonces se puede restaurar en un momento posterior con:
 +
$ alsaequal-mgr load foo
 +
 
 +
De esta forma puede crear diferentes estados de ecualizador para juegos, películas, géneros musicales, aplicaciones de VoIP, etc. y volver a cargarlos cuando sea necesario.
 +
 
 +
Consulte la [http://xyne.archlinux.ca/projects/alsaequal-mgr/ página del proyecto] y los consejos de ayuda para más opciones.
 +
 
 +
====Usando mbeq====
 +
 
 +
{{Nota|Este método requiere el uso de un plugin LADSPA que podría suponer un consumo un poco alto de la CPU cuando se reproduce el sonido. Además, ésto se hizo pensando en la utilización de sonido estereofónico (por ejemplo, optimizado para auriculares).}}
 +
 
 +
Instale los paquetes {{Pkg|alsa-plugins}}, {{Pkg|ladspa}} y {{Pkg|swh-plugins}} si aún no los tiene.
 +
 
 +
* Si no ha creado el archivo {{ic|~/.asoundrc}} o {{ic|/etc/asound.conf}}, a continuación, cree cualquiera de ellos y añada lo siguiente:
 +
 
 +
{{hc|/etc/asound.conf|2=<nowiki>pcm.eq {
 +
   type ladspa
 +
 
 +
   # La salida del EQ puede ir directamente a un dispositivo de hardware
 +
   # (si usted tiene un mezclador de hardware, por ejemplo SBLive/Audigy) o puede ir
 +
   # para el mezclador de software que se muestra aquí.
 
   #slave.pcm "plughw:0,0"
 
   #slave.pcm "plughw:0,0"
   slave.pcm "plug:dmix"<br>
+
   slave.pcm "plug:dmix"
   # A veces tendrá que especificar la ruta a los plugins, especialmente si acaba de  
+
 
  # instalarlos. Una vez haya abandonado la sesión y rearrancado esto no
+
   # A veces es posible que necesite especificar la ruta de los plugins,
   # debería ser necesario, pero si recibe mensajes de error acerca de la
+
  # especialmente si acaba de instalarlos. Una vez que haya iniciado sesión
   # imposibilidad de encontrar los plugins, pruebe a descomentar ésto.
+
   # salir/reiniciar no debería ser necesario, pero sí, si se producen errores
   #path "/usr/lib/ladspa"<br>
+
   # por no poder encontrar los plugins, intente eliminando el comentario de éstos.
 +
   #path "/usr/lib/ladspa"
 +
 
 
   plugins [
 
   plugins [
 
     {
 
     {
Line 187: Line 301:
 
       id 1197
 
       id 1197
 
       input {
 
       input {
         #este valor está aquí como ejemplo, edítelo a su gusto
+
         #este ajuste se puede hacer aquí, por ejemplo; edite a su gusto
         #bandas: 50hz, 100hz, 156hz, 220hz, 311hz, 440hz, 622hz, 880hz, 1250hz, 1750hz, 25000hz,
+
         #bandas: 50Hz, 100Hz, 220Hz, 156hz, 311hz, 440hz, 622hz, 880hz, 1250hz, 1750Hz, 25000hz,
         #50000hz, 10000hz, 20000hz
+
         #50000hz, 10000Hz, 20000Hz
 
         controls [ -5 -5 -5 -5 -5 -10 -20 -15 -10 -10 -10 -10 -10 -3 -2 ]
 
         controls [ -5 -5 -5 -5 -5 -10 -20 -15 -10 -10 -10 -10 -10 -3 -2 ]
 
       }
 
       }
 
     }
 
     }
 
   ]
 
   ]
  }<br>
+
  }
  # Redirija el dispositivo por defecto via el EQ - usted querrá hacer ésto
+
 
  # lo último, una vez esté seguro de que todo funciona. De otro modo todos
+
  # Redirigir el dispositivo predeterminado para pasar por el EQ - es posible que desee hacer ésto.
  # sus programas de audio dejarán de funcionar si algo ha ido mal.<br>
+
  # haga esto último, una vez que esté seguro de que todo está funcionando. De lo contrario todos
 +
  # sus programas de audio se romperán/bloquearán si algo ha ido mal.
 +
 
 
  pcm.!default {
 
  pcm.!default {
 
   type plug
 
   type plug
 
   slave.pcm "eq"
 
   slave.pcm "eq"
  }<br>
+
  }
  # Redirija también la emulación OSS por el EQ (cuando los programas corren por "aoss")<br>
+
 
 +
  # Redirigir la emulación OSS a través del EQ también (con programas que corren a través de "AOSS")
 +
 
 
  pcm.dsp0 {
 
  pcm.dsp0 {
 
   type plug
 
   type plug
 
   slave.pcm "eq"
 
   slave.pcm "eq"
 
  }
 
  }
 +
</nowiki>}}
  
*Reinicie alsa para cargar la nueva configuración (como root)
+
* Actualizar la configuración de alsa (como root).
  /etc/rc.d/alsa restart
+
  # rc.d restart alsa
  
*ya debería funcionar (si no es así, pregunte en el foro)
+
* Ahora todo debe ir bien (en su defecto, pregunte en el foro).
  
= Problemas =
+
==Remuestreo de alta calidad==
== ¿Todavía sin sonido? ==
+
  
Si está seguro de que ningún canal esta enmudecido, de que sus drivers están instalados correctamente, y de que el volumen está bien, pero todavía no puede escuchar nada, entonces la siguiente línea debería solucionar el problema: añádala a <code>/etc/modprobe.d/modprobe.conf</code>
+
Cuando el software de mezcla está habilitado, ALSA se ve obligado a volver a muestrear (remuestrear) todo en la misma frecuencia (48000 por defecto cuando se admite). Dmix utiliza un algoritmo de remuestreo pobre que produce una pérdida notable de la calidad de sonido.
  
options snd-NOMBRE-DEL-MÓDULO ac97_quirk=0
+
Instale alsa-plugins y libsamplerate:
 +
{{bc|# pacman -S alsa-plugins libsamplerate}}
  
== Sin sonido en una tarjeta de sonido Intel Onboard ==
+
Cambie el convertidor de frecuencia por defecto a libsamplerate:
  
Puede que haya un inconveniente con dos módulos conflictivos, <code>snd_intel8x0</code> y <code>snd_intel8x0m</code>. En este caso, edite <code>rc.conf</code> y en el array "MODULES" añada el último a la lista negra de manera que finalmenete quede como <code>!snd_intel8x0m</code>.
+
{{hc|/etc/asound.conf|defaults.pcm.rate_converter "samplerate_best"}}
  
== ¿Mala calidad en el sonido? ==
+
o
  
Si experimenta baja calidad de sonido, intente ajustar el volumen PCM (con alsamixer) a un nivel en el que el sonido sea bueno.
+
{{hc|~/.asoundrc|defaults.pcm.rate_converter "samplerate_best"}}
  
== ¿Ruidos cuando inicia y detiene la reproducción?==
+
'''Samplerate_best''' ofrece la mejor calidad de sonido, pero se necesita una CPU decente para poder usarlo, ya que requiere una gran cantidad de ciclos de CPU en tiempo real para el remuestreo. Existen otros algoritmos disponibles ('''samplerate''', etc.), pero no proporcionan una gran mejora respecto al remuestreador por defecto.
  
Algunos módulos pueden apagar la tarjeta cuando no está en uso. Esto puede producir un sonido audible cuando se enciende. Si le ocurre esto intente "modinfo snd-NOMBRE-DEL-MÓDULO", y busque una opción que ajuste o deshabilite esta opción.
+
{{Advertencia|En algunos sistemas, samplerate_best puede causar un problema por el que no se obtiene ningún sonido de reproducción flash.}}
  
Por ejemplo: para deshabilitar la función de ahorro de energía en una snd-hda-intel añada "options snd-hda-intel power_save=0" en <code>/etc/modprobe.d/modprobe.conf</code>, o pruebe con "modprobe snd-hda-intel power_save=0".
+
==Upmixing/Downmixing==
 +
===Upmixing===
  
== Alsamixer no puede iniciar==
+
A fin de que una fuente de audio estéreo, como música, pueda ser capaz de ocupar todas las salidas de un sistema de sonido 5.1 ó 7.1, es necesario utilizar upmixing. En el pasado este proceso resultaba difícil y propenso a errores, pero a día de hoy existen plugins que hacen fácil esta tarea. Por lo tanto, instale {{Pkg|alsa-plugins}}.
Si obtiene el siguiente error al intentar abrir Alsamixer:
+
 
 +
A continuación, añada lo siguiente al archivo de configuración de ALSA de su elección (ya sea {{ic|/etc/asound.conf}} o {{ic|~/.asoundrc}}):
 +
pcm.upmix71 {
 +
    type upmix
 +
    slave.pcm "surround71"
 +
    delay 15
 +
    channels 8
 +
}
 +
 
 +
Puede cambiar fácilmente este ejemplo del 7.1, a upmixing 5.1 ó 4.0.
 +
 
 +
Esto agrega un nuevo pcm que se puede utilizar por upmixing. Si desea que todas las fuentes de audio pasen por este pcm, agréguelo como predeterminado debajo de la definición anterior, así:
 +
 
 +
pcm.!default "plug:upmix71"
 +
 
 +
El plugin permite automáticamente múltiples fuentes de sonido para trabajar a través de él sin problemas, de modo que este ajuste por defecto es, en realidad, una elección segura.
 +
Si esto no funciona, pruebe configurar su propio dmixer, para efectuar upmixing del canal PCM, así:
 +
pcm.dmix6 {
 +
    type asym
 +
    playback.pcm {
 +
        type dmix
 +
        ipc_key 567829
 +
        slave {
 +
            pcm "hw:0,0"
 +
            channels 6
 +
        }
 +
    }
 +
}
 +
 
 +
y usar "dmix6" en lugar de "surround71".
 +
Si experimenta problemas de sonido como saltos o distorsiones, puede aumentar el buffer_size (a 32768, por ejemplo) o utilizar un [[#Remuestreo de alta calidad|remuestreador de alta calidad.]]
 +
 
 +
===Downmixing===
 +
 
 +
Si quiere efectos downmixing, por ejemplo, desea escuchar en una salida estéreo un vídeo con sonido 5.1, es necesario utilizar el plugin vdownmix que alsa ofrece en el mismo paquete.
 +
 
 +
Una vez más, en el archivo de configuración, añada lo siguiente:
 +
 
 +
pcm.!surround51 {
 +
    type vdownmix
 +
    slave.pcm "default"
 +
}
 +
pcm.!surround40 {
 +
    type vdownmix
 +
    slave.pcm "default"
 +
}
 +
 
 +
==Mezcla==
 +
===Software de mezcla (dmix) ===
 +
 
 +
{{Nota|Para versiones 1.0.9rc2 y superiores de ALSA, no es necesario configurar dmix para las salidas de sonido analógicas. Dmix está habilitado, de forma predeterminada, para las tarjetas de sonido que no son compatibles con el hardware de mezcla.}}
 +
 
 +
Si eso no funciona automáticamente, sin embargo, es cuestión simplemente de crear un archivo {{ic|.asoundrc}} (o modificar el existente) en el directorio personal, con el siguiente contenido:
 +
 
 +
pcm.dsp {
 +
    type plug
 +
    slave.pcm "dmix"
 +
}
 +
 
 +
Esto debería habilitar dmix (software de mezcla) y permitir el acceso simultáneo de más de una aplicación para hacer uso de la tarjeta de sonido.
 +
 
 +
Para una salida de sonido digital como S/PDIF, el paquete ALSA todavía no habilita dmix por defecto. Así, la configuración dmix anteriormente citada se puede usar para habilitar dmix para dispositivos con salida S/PDIF.
 +
 
 +
Consulte el apartado sobre [[#Solución de problemas|solución de problemas]] para los problemas más comunes y sus soluciones.
 +
 
 +
===Hardware de mezcla===
 +
{{poor writing}}
 +
* Utilice una tarjeta de sonido compatible con hardware de mezcla: La antigua serie SoundBlaster Live! (emu10k1 chip) y la nueva serie Audigy (EMU10K2 chip) son consideradas utilizables.
 +
 
 +
* El SoundBlaster Live! 5.1 se puede encontrar fácilmente y a un precio accesible.
 +
 
 +
{{Nota|Las más económicas Audigy, Audigy 2 NX, SoundBlaster Live! 24 bits y SoundBlaster Live! 7,1 '''no''' proporcionan soporte de hardware de mezcla (usan otros chips).}}
 +
 
 +
* El 99% de las placas base con sonido integrado '''no''' proporcionan soporte de hardware de mezcla.
 +
 
 +
{{Nota|Una excepción es el chip integrado VIA8237 que soporta 4-stream de hardware de mezcla. Sin embargo, sólo 3 funcionan para algunas placas base (el cuarto no hace ningún sonido), o se rompe recién se inicia. Incluso si funciona, la calidad no es buena en comparación con otras soluciones.}}
 +
 
 +
* Para Arch64 y la tarjeta 00:1b.0 Audio device: Intel Corporation 82801I (ICH9 Family) HD Audio Controller (rev 02), es necesario establecer algunos parámetros para hacer funcionar Enemy Territory:
 +
echo "et.x86 0 0 direct" > /proc/asound/card0/pcm0p/oss
 +
echo "et.x86 0 0 disable" > /proc/asound/card0/pcm0c/oss
 +
 
 +
==Solución de problemas==
 +
===Sonido con saltos durante el uso de Dynamic Frequency Scaling===
 +
 
 +
Algunas combinaciones de determinados drivers ALSA y chipsets pueden causar '''saltos''' en el audio de todas las fuentes cuando se utiliza en combinación con un regulador de frecuencia de la CPU de escalamiento dinámico como {{ic|ondemand}} o {{ic|conservative}}. En la actualidad, la solución es volver al gobernador {{ic|performance}}.
 +
 
 +
Consulte la [[CPU Frequency Scaling]] para más información.
 +
 
 +
===Problemas con la disponibilidad del software de mezcla por sólo un usuario a la vez===
 +
 
 +
Puede suceder que sólo un usuario puede utilizar el dmixer a la vez. Esto probablemente pueda andar bien para la mayoría de los usuarios cuando sólo ellos utilizan su máquina, pero para los que corren [[mpd]] en una máquina con usuarios distintos plantea un problema. Cuando mpd está corriendo, otro usuario normal no puede reproducir sonidos mediante dmixer. Aunque es posible solucionarlo corriendo mpd en la cuenta de inicio de sesión del usuario habilitado, otra solución es factible. Añada la línea {{Ic|ipc_key_add_uid 0}} al bloque {{ic|pcm.dmixer}} para desactivar esta limitación. El siguiente es un fragmento del código de {{ic|asound.conf}}, el resto es lo mismo que el anterior.
 +
...
 +
pcm.dmixer {
 +
  type dmix
 +
  ipc_key 1024
 +
  ipc_key_add_uid 0
 +
  ipc_perm 0660
 +
slave {
 +
...
 +
 
 +
===Problemas de reproducción simultánea===
 +
 
 +
Si está teniendo problemas de reproducción simultánea, y si [[PulseAudio]] se ha instalado (por ejemplo, utilizando [[GNOME]]), su configuración por defecto está ajustada para "secuestrar" a favor de pulseadio la tarjeta de sonido. Algunos usuarios de ALSA no les importa no utilizar [[PulseAudio]] y están satisfechos con su actual configuración de ALSA. Una solución para resolver el problema es editar {{ic|/etc/asound.conf}} y comentar las siguientes líneas:
 +
 
 +
# Use PulseAudio by default
 +
#pcm.!default {
 +
#  type pulse
 +
#  fallback "sysdefault"
 +
#  hint {
 +
#    show on
 +
#    description "Default ALSA Output (currently PulseAudio Sound Server)"
 +
#  }
 +
#}
 +
 
 +
Comentando lo siguiente también puede resulta útil:
 +
#ctl.!default {
 +
#  type pulse
 +
#  fallback "sysdefault"
 +
#}
 +
 
 +
Ésta puede ser una solución mucho más simple que desinstalar por completo [[PulseAudio]].
 +
 
 +
Efectivamente, este es un ejemplo de un archivo {{ic|/etc/asound.conf}} funcionando correctamente:
 +
{{bc|<nowiki>pcm.dmixer {
 +
        type dmix
 +
        ipc_key 1024
 +
        ipc_key_add_uid 0
 +
        ipc_perm 0660
 +
}
 +
pcm.dsp {
 +
        type plug
 +
        slave.pcm "dmix"
 +
}</nowiki>
 +
}}
 +
 
 +
{{Nota|Este archivo {{ic|/etc/asound.conf}} fue creado y utilizado con éxito para una configuración de [[MPD]] global. Consulte [http://wiki.archlinux.org/index.php/Alsa#Problems_with_Availability_to_Only_One_User_at_a_Time esta sección] para múltiples usuarios}}
 +
 
 +
===Falta de sonido al azar===
 +
 
 +
Si no tiene sonido aleatoriamente en el arranque, puede deberse a que el sistema tiene varias tarjetas de sonido, y su orden puede, a veces, cambiar al inicio. Si este es el caso, entonces hay que cambiar esta sección de {{ic|/etc/asound.conf}}:
 +
 
 +
{{bc|<nowiki>
 +
ctl.dmixer {
 +
    type hw
 +
    card FOO
 +
}
 +
</nowiki>}}
 +
 
 +
Sustituya foo con el dispositivo de audio que desee, según se informa en el archivo {{ic|/proc/asound/cards}}. Un ejemplo del archivo se muestra a continuación:
 +
{{bc|
 +
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
 +
}}
 +
El dispositivo 0 es el micrófono incorporado en una cámara web, mientras que el dispositivo 1 es la tarjeta de sonido integrada. Si ha copiado el archivo {{ic|/etc/asound.conf}} que se muestra arriba tal cual sin adaptarlo a su sistema, puede encontrarse con que ALSA intentará inicializar el micrófono como dispositivo de salida de audio, pero se producirá un error y no tendrá ningún sonido. En lugar de establecer el valor FOO con números, sustitúyalo con el nombre del dispositivo, así:
 +
{{bc|<nowiki>
 +
ctl.dmixer {
 +
    type hw
 +
    card SB
 +
}
 +
</nowiki>}}
 +
 
 +
Si utiliza dmix, quizás quiera tener una configuración como ésta:
 +
{{bc|<nowiki>
 +
ctl.!default {
 +
    type hw
 +
    card Intel #adapt this to your card
 +
    #device 0 #not required, defaults to 0 (see the output of aplay -L)
 +
}
 +
 
 +
pcm.dmixer {
 +
    type dmix
 +
    ipc_key 1024 #required and must be unique
 +
    slave.pcm {
 +
        type hw
 +
        card Intel #same as above
 +
        #device 0 #same as above
 +
    }
 +
}
 +
 
 +
pcm.!default {
 +
    type plug
 +
    slave.pcm dmixer
 +
}
 +
</nowiki>}}
 +
 
 +
Para la mayoría de los programas que usan ALSA, asegúrese que el archivo {{ic|/etc/libao.conf}} sólo contiene la siguiente línea:
 +
default_driver=alsa10
 +
 
 +
Si utiliza mpd y los consejos de configuración anteriormente propuestos no funcionan en su caso, consulte [http://mpd.wikia.com/wiki/Configuration#ALSA_MPD_software_volume_control este otro] en su lugar.
 +
 
 +
===Problemas específicos de algunos programas===
 +
 
 +
Algunos programas definen por sí su propia configuración de audio, por ejemplo, XMMS o Mplayer, con lo cual tendría que configurar sus opciones específicas.
 +
 
 +
Para mplayer, abra {{ic|~/.mplayer/config}} (o {{ic|/etc/mplayer/mplayer.conf}} para el ajuste global) y añada la siguiente línea:
 +
ao=alsa
 +
 
 +
Para XMMS/Beep Media Player, entre en sus opciones y asegúrese de que el controlador de sonido está ajustado a ALSA y no, a OSS.
 +
 
 +
Para hacer esto en XMMS:
 +
* Abra XMMS
 +
** Opciones -> Preferencias.
 +
** Elija el plugin de salida de Alsa.
 +
 
 +
Para las aplicaciones que no proporcionan compatibilidad con ALSA, puede usar AOSS desde el paquete alsa-oss. Para utilizar aoss, se ejecuta el programa, anteponiendo el prefijo {{ic|aoss}}, por ejemplo:
 +
aoss realplay
 +
 
 +
pcm.!default{ ... }  si ésto no funciona, pruebe en su lugar:
 +
  pcm.default pcm.dmixer
 +
 
 +
===Modelo de Configuración===
 +
 
 +
Aunque Alsa detecta la tarjeta de sonido a través de la BIOS, a veces Alsa puede no ser capaz de reconocer el [http://www.kernel.org/doc/Documentation/sound/alsa/HD-Audio-Models.txt tipo de modelo]. El chip de la tarjeta de sonido puede ser encontrado en {{ic|alsamixer}} (por ejemplo ALC662) y el modelo se puede ajustar en {{ic|/etc/modprobe.d/modprobe.conf}} o {{ic|/etc/modprobe .d/sound.conf}}. Por ejemplo:
 +
 
 +
options snd-hda-intel model=MODEL
 +
 
 +
Hay otras opciones, según el modelo. Para la mayoría de los casos, Alsa lo hará de manera automática, por defecto. Si desea ver más opciones de configuración específica para su tarjeta de sonido, eche un vistazo a la [http://bugtrack.alsa-project.org/main/index.php/Matrix:Main Lista de Tarjetas de sonido Alsa], localice su modelo, a continuación, pinche en Detalles, a continuación, busque la sección "setting up modprobe ...". Introduzca esos valores en el archivo {{ic|/etc/modprobe.d/modprobe.conf}}. Por ejemplo, para una tarjeta de audio Intel AC97:
 +
 
 +
{{bc|# 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 en conflicto con altavoz interno del PC===
 +
 
 +
Si estás seguro de que nada está silenciado, que los controladores están instalados correctamente y que su volumen es correcto, pero todavía no se oye nada, entonces trate de añadir la siguiente línea a {{ic|/etc/modprobe.d/modprobe.conf}}:
 +
 
 +
options snd-NAME-OF-MODULE ac97_quirk=0
 +
 
 +
La solución anterior se ha observado que funciona con {{ic|via82xx}}
 +
options snd-NAME-OF-MODULE ac97_quirk=1
 +
La solución anterior se ha informado que funciona con {{ic|snd_intel8x0}}
 +
 
 +
===Sin Input en el micrófono ===
 +
 
 +
En alsamixer, asegúrese de que todos los niveles de volumen, en la sección grabación, están activados, y que la modalidad ''CAPTURE''  del micrófono está activa (por ejemplo, Mic, micrófono interno) y/o sobre ''capture'' (en alsamixer, seleccione estos elementos en el primer espacio).
 +
 
 +
En la medida que pulseaudio se muestra como "default" en alsamixer, puede ser necesario presionar F6 para seleccionar la tarjeta de sonido presente en primer lugar. También puede ser necesario para habilitar y aumentar el volumen de Line-in (Línea de entrada) en la sección Playblack (reproducción).
 +
 
 +
Para probar el micrófono, ejecute estos comandos (consulte la página arecord hombre para más información):
 +
  arecord -d 5 test-mic.wav
 +
  aplay test-mic.wav
 +
 
 +
Si todo falla, es posible que desee descartar un fallo de hardware, probando el micrófono con un dispositivo diferente.
 +
 
 +
En algunos ordenadores, el silenciamiento de un micrófono (MM) simplemente significa que su entrada no va de inmediato a los altavoces. Todavía recibe la entrada, aunque no se escuche sonido alguno.
 +
 
 +
Muchos portátiles Dell necesitan "-DMIC", que se añade al nombre del modelo en {{ic|/etc/modprobe.d/modprobe.conf}}:
 +
  options snd-hda-intel model=dell-m6-dmic
 +
 
 +
Algunos programas intenta utilizar OSS como software de entrada principal. Añada las siguientes líneas a {{ic|/etc/modprobe.d/modprobe.conf}} para evitar que los módulos OSS se carguen:
 +
 
 +
{{Nota|Los módulos de software libre ya no se cargan automáticamente de todos modos.}}
 +
 
 +
blacklist snd_pcm_oss
 +
blacklist snd_mixer_oss
 +
blacklist snd_seq_oss
 +
 
 +
Consulte también:
 +
* http://www.alsa-project.org/main/index.php/SoundcardTesting
 +
* http://alsa.opensrc.org/Record_from_mic
 +
 
 +
=== Configuración predeterminada de Micrófono/Dispositivo de captura===
 +
 
 +
Algunas aplicaciones (Pidgin, Adobe Flash) no ofrecen una opción para cambiar el dispositivo de captura. Se convierte en un problema si el micrófono está en un dispositivo separado (por ejemplo, USB webcam o micrófono) de la tarjeta de sonido interna. Para cambiar sólo el dispositivo ''capture'', dejando el dispositivo de reproducción predeterminado como está, puede editar el archivo {{ic|~/.asoundrc}} para incluir lo siguiente:
 +
 
 +
pcm.usb
 +
{
 +
    type hw
 +
    card U0x46d0x81d
 +
}
 
   
 
   
  alsamixer: function snd_ctl_open failed for default: No such device
+
  pcm.!default
 +
{
 +
    type asym
 +
    playback.pcm
 +
    {
 +
        type plug
 +
        slave.pcm "dmix"
 +
    }
 +
    capture.pcm
 +
    {
 +
        type plug
 +
        slave.pcm "usb"
 +
    }
 +
}
  
Deberá reinstalar el kernel. Ejecute 'pacman -S kernel26'.
+
Reemplace "U0x46d0x81d" con el nombre de la tarjeta del dispositivo ''capture'' en ALSA. Es posible utilizar el comando {{ic|arecord -L}} para listar todos los dispositivos de captura detectados por ALSA.
  
== Sin sonido PCM por SPDIF ==  
+
===Micrófono interno no funciona===
  
Se han encontrado algunos problemas con el sonido PCM saliendo por SPDIF, si es nuestro caso, y el switch de gnome o kde no funciona como debería la solución es crear el archivo '''/etc/asound.conf''' y añadir las siguientes lineas:
+
En primer lugar, asegúrese, en almixer, de que todos los niveles de volumen, en la sección de grabación, están activados. Para obtener un nuevo ajuste del volumen, llamado Capture, que registre el micrófono interno, vuelva a añadir una nueva opción al archivo  /etc/sound.conf y recargue el módulo snd-*. Por ejemplo, para snd-hda-intel, añada:
 +
 
 +
  options snd-hda-intel enable_msi=1
 +
 
 +
Cargando el módulo (como se indica abajo), activará el nuevo ajuste de volumen (Capture) y luego pruebe.
 +
 
 +
{{bc|# rmmod snd-hda-intel && modprobe snd-hda-intel}}
 +
 
 +
===Sin sonido con Onboard Intel Sound Card===
 +
 
 +
Puede haber un problema con dos módulos cargados en conflicto, a saber {{ic|snd_intel8x0}} y {{ic|snd_intel8x0m}}. En este caso, introduzca en blacklist snd_intel8x0m:
 +
 
 +
{{hc|/etc/modprobe.d/modprobe.conf|blacklist snd_intel8x0m}}
 +
 
 +
''Deshabilitar'' el canal  "External Amplifier" en {{ic|alsamixer}} o {{ic|amixer}} también puede ayudar. Consulte [http://alsa.opensrc.org/Intel8x0#Dell_Inspiron_8600_.28and_probably_others.29 la wiki de ALSA].
 +
 
 +
===Sin sonido en auriculares con tarjeta de audio Onboard Intel===
 +
 
 +
Si tiene un portatil con '''Intel Corporation 82801 I (ICH9 Family) HD Audio Controller''', puede que tenga que añadir esta línea a modprobe o sound.conf:
 +
 
 +
options snd-hda-intel model=$model
 +
 
 +
Donde $model es cualquiera de los siguientes modelos(por orden de posibilidad de funcionar, no por mérito):
 +
 
 +
* dell-vostro
 +
* olpc-xo-1_5
 +
* laptop
 +
* dell-m6
 +
* laptop-hpsense
 +
 
 +
{{Nota|Puede que sea necesario poner esas "opciones" abajo (después de) los "alias".}}
 +
 
 +
Puede ver todos los modelos disponibles en la documentación del kernel. Por ejemplo [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 aquí], pero comprueba que se trata de la versión correcta de ese documento para su versión del kernel.
 +
 
 +
Una lista de modelos disponibles también está recogida [http://www.mjmwired.net/kernel/Documentation/sound/alsa/HD-Audio-Models.txt aquí]. Para conocer el nombre de su chip debe escribir el siguiente comando (con el asterisco {{ic|*}} que permite adaptarse a las peculiaridades de sus archivos). Tenga en cuenta que algunos chips podrían haber cambiado de nombre y no corresponderse directamente a los que están disponibles en el archivo.
 +
 
 +
cat /proc/asound/card*/codec* | grep Codec
 +
 
 +
Tenga en cuenta, por último,  que hay una alta probabilidad de que ninguno de los dispositivos de entrada (todos los micrófonos internos y externos) funcionen si decide hacer ésto, por lo que o funcionarán los auriculares o el micrófono. Por favor, informe a ALSA si se ve afectado por este error.
 +
 
 +
Por otro lado, si tiene problemas con las señales acústicas (pcspkr):
 +
 
 +
options snd-hda-intel model=$model enable=1 index=0
 +
 
 +
===Sin sonido cuando se instala la tarjeta de vídeo con S/PDIF===
 +
 
 +
Localice los módulos disponibles y su orden:
 +
$ cat /proc/asound/modules
 +
0 snd_hda_intel
 +
1 snd_ca0106
 +
 
 +
Desactive el códec de audio de la tarjeta de vídeo en {{ic|/etc/modprobe.d/modprobe.conf}}:
 +
# /etc/modprobe.d/modprobe.conf
 +
#
 +
install snd_hda_intel /bin/false
 +
 
 +
Si ambos dispositivos utilizan el mismo módulo, podría ser posible desactivar uno de ellos en la BIOS.
 +
 
 +
===Calidad de audio deficiente===
 +
 
 +
Si la calidad de sonido es pobre, intente ajustar el volumen de PCM (en alsamixer) a un nivel tal que gain sea 0.
 +
 
 +
Si se ha cargado el controlador snd-usb-audio, puede intentar habilitar {{ic|softvol}} en el archivo '''/etc/asound.conf'''. Ejemplo de configuración para el primer dispositivo de audio:
  
 
   pcm.!default {
 
   pcm.!default {
  type plug
+
    type plug
  slave {
+
    slave.pcm "softvol"
  pcm "spdif"
+
  rate 48000
+
  format S16_LE
+
 
   }
 
   }
 +
  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
 +
      }
 
   }
 
   }
===Error 'Unkown hardware' aparece luego de actualizar el Kernel===
+
  pcm.dsnooper {
El siguiente mensaje tal vez aparezca durante el inicio del demonio ALSA luego de una actualización del kernel:
+
      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
 +
  }
 +
 
 +
===Crepiteos al iniciar y detener la reproducción ===
 +
 
 +
Algunos módulos (como snd-ac97-codec y snd-hda-intel) pueden apagar la tarjeta de sonido cuando no está en uso. Esto puede provocar un ruido audible (como un crack/pop/crepiteos) al encender/apagar su tarjeta de sonido. A veces, puede ocurrir, incluso, cuando se mueve el control deslizante de volumen, o las ventanas se abren y cierran (KDE4). Si encuentra este sonido molesto, puede ejecutar "modinfo snd-MY-MODULE", y buscar una opción que regule o desactive esta función.
 +
 
 +
Ejemplo: para desactivar el modo de ahorro de energía utilizando snd-hda-intel para evitar las distorsiones y resolver el problema de sonido de los altavoces, añada en {{ic|/etc/modprobe.d/modprobe.conf}}
 +
[options snd-hda-intel power_save=0]
 +
o
 +
[options snd-hda-intel power_save=0 power_save_controller=N]
 +
 
 +
También puede probar con '''"modprobe snd-hda-intel power_save=0"''' antes.
 +
 
 +
Puede que sea necesario también activar el canal 'Line' de alsa para que esto funcione. Cualquier valor puede servir (que no sea '0' o algo muy alto).
 +
 
 +
''Ejemplo:'' en una tarjeta integrada VIA VT1708S (utilizando el módulo snd-hda-intel) estas distorsiones seguían presentes a pesar de haber ajustado el parámetro 'power_save' a 0. Activando el canal 'Línea' y estableciendo el valor '1' se resolvió el problema.
 +
 
 +
Fuente: http://www.kernel.org/doc/Documentation/sound/alsa/powersave.txt
 +
 
 +
Si utiliza un ordenador portátil, pm-utils cambiará {{ic|power_save}} de nuevo a {{ic|1}} cuando se utiliza la batería, incluso si se desactiva el ahorro de energía en /etc/modprobe.d. Para solucionar este problema, desactive esta opción para pm-utils mediante la desactivación del script que realiza el cambio:
 +
# chmod -x /usr/lib/pm-utils/power.d/intel-audio-powersave
 +
 
 +
===Salida S/PDIF no funciona===
 +
 
 +
Si la salida digital óptica/coaxial de la placa base/tarjeta de sonido no funciona o ha dejado de funcionar, y en alsamixer los correspondientes canales de sonido se han activado, pruebe lo siguiente:
 +
# iecset audio on
 +
 
 +
como root.
 +
 
 +
También puede poner este comando en {{ic|rc.local}}, ya que a veces puede dejar de funcionar después de un reinicio.
 +
 
 +
===Salida HDMI no funciona===
 +
 
 +
Si la salida HDMI de la placa base/tarjeta de sonido no funciona o ha dejado de funcionar, y en alsamixer los correspondientes canales de sonido se han activado, pruebe lo siguiente:
 +
 
 +
Consulte los dispositivos de reproducción:
 +
 
 +
  {{hc|$ 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
 +
}}
 +
 
 +
Ahora que tenemos la información del dispositivo HDMI, haga una prueba. En el siguiente ejemplo, 0 es el número de tarjeta y 3 es el número de dispositivo.
 +
 
 +
{{bc|$ aplay -D plughw:0,3 /usr/share/sounds/alsa/Front_Center.wav}}
 +
 
 +
Si aplay no emite ningún error, pero aún no hay ningún sonido, "reinicie" el receptor, monitor o televisor. Desde la interfaz HDMI revise rigurosamente la conexión, dado que podría haber informado anteriormente de que no había flujo de audio y haber deshabilitado así la decodificación de audio.
 +
 
 +
{{Nota|Si está utilizando una tarjeta ATI y la versión 3.0  ó superior de Linux, revise los ajustes del grub, lo más probable es que deba añadir la opción ''''radeon.audio'''<nowiki>=</nowiki>'''1'''' en los parámetro de arranque del kernel, o bien configure dicha opción en los archivos de configuración de modprobe.}}
 +
 
 +
Si la prueba tiene éxito, cree o modifique el archivo {{ic|~/.asoundrc}} para establecer HDMI como el dispositivo de audio predeterminado.
 +
 
 +
  pcm.!default {
 +
      type hw
 +
      card 0
 +
      device 3
 +
  }
 +
 
 +
Ahora puede reiniciar alsa con el comando de abajo o puede reiniciar el sistema, y ​​el audio debería funcionar correctamente.
 +
{{Nota|Todos los programas en ejecución que usan ALSA se cerrarán}}
 +
# rc.d force-restart alsa
 +
 
 +
====Usando udev para apagar/iniciar automáticamente audio HDMI ====
 +
 
 +
{{Nota|Esto sólo funcionará si el controlador es compatible con udev; los drivers propietarios de NVIDIA, por ejemplo, no lo hacen.}}
 +
 
 +
Los pasos vistos en la sección anterior son utilizados para probar el propio dispositivo, o si no tiene la necesidad de conectarse con frecuencia al dispositivo HDMI. Pasamos ahora a analizar la situación en la que tiene un portátil y quiere que el dispostivo  de audio HDMI se active sólo cuando viene conectado al cable HDMI.
 +
 
 +
El código de esta sección proviene de [https://bbs.archlinux.org/viewtopic.php?id=132641 La Foros Arch Linux].
 +
 
 +
Creamos una regla udev (para el proceso de la conexión/desconexión del cable), dos diferentes archivos de configuración de ALSA, y un script que permite cambiar entre estas dos configuraciones.
 +
 
 +
En primer lugar hay que crear  {{ic|/etc/alsa/}} si no existe todavía, que albergará los archivos de configuración y el script de conmutación:
 +
 
 +
{{bc|<nowiki>[[ -d /etc/alsa/ ]] || sudo mkdir -v /etc/alsa</nowiki>}}
 +
 
 +
Coloque dentro de este directorio los archivos siguientes (que puede ajustar como mejor le parezca):
 +
 
 +
{{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 # or restart if you don't want existing clients to be unceremoniously shut down
 +
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
 +
}
 +
 
 +
}}
 +
 
 +
Las dos versiones de {{ic|asound.conf}} incluyen ajustes de dmix y permiten la fusión de los permisos de usuario, de modo que, por ejemplo, el usuario mpd y su usuario normal puede acceder a él simultáneamente
 +
 
 +
Ahora puede probar que el script de conmutación funciona, ejecutando:
 +
 
 +
# chmod +x /etc/alsa/hdmi-switch
 +
# /etc/alsa/hdmi-switch
 +
 
 +
Si funciona, se puede obtener salida de audio HDMI al ejecutar el script cuando el cable está conectado, mientras que se debe ser capaz de restaurar la salida de audio por defecto desconectando el cable y ejecutando manualmente el script de nuevo.
 +
 
 +
Una vez que se verifica que funciona, se tiene que automatizar el proceso mediante la adición de la regla udev:
 +
 
 +
{{hc|/etc/udev/rules.d/hdmi.rules|2=
 +
SUBSYSTEM=="drm", ACTION=="change", RUN+="/bin/bash /etc/alsa/hdmi-switch"
 +
}}
 +
 
 +
Para hacer que udev incorpore la nueva regla de inmediato, vuelva a cargar todas las reglas:
 +
 
 +
# udevadm control --reload-rules
 +
 
 +
===Imposible regular el canal PCM===
 +
 
 +
Puede encontrarse con que no puede regular los canales PCM. En este caso, pruebe a quitar todas las entradas relacionadas con el sonido en la matriz {{ic|MODULES}} del archivo {{ic|/etc/[[rc.conf]]}}, excepto {{ic|snd-NOMBRE-DEL-MÓDULO}}.
 +
 
 +
===HP tx2500===
 +
 
 +
Agregue estas dos líneas en {{ic|/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 (funciona para tx2000cto)
 +
 
 +
===Salto de sonido durante la reproducción MP3===
 +
 
 +
Si tiene saltos de sonido al reproducir archivos MP3 y tiene más de dos altavoces conectados al ordenador (es decir, dos o más sistema de altavoces), ejecute {{ic|alsamixer}} y desactive los canales para los altavoces que '''NO''' tiene (es decir, deshabilite, por ejemplo, el canal del altavoz central si no se dispone de un altavoz central).
 +
 
 +
===Auriculares USB y tarjetas de sonido externas USB===
 +
 
 +
Si usted está usando un auricular USB con ALSA puede probar a usar {{AUR|asoundconf}} (actualmente sólo disponible en [[AUR]]) para ajustar el auricular como salida de sonido principal. ''Nota: antes de proseguir, por favor, asegúrese de tener el módulo usb audio habilitado:
 +
# modprobe snd-usb-audio
 +
 
 +
Puede agregar lo siguiente al archivo {{ic|/etc/rc.conf}} si lo desea:''
 +
 
 +
# asoundconf is-active
 +
# asoundconf list
 +
# asoundconf set-default-card <tarjeta-de-sonido elegida>
 +
 
 +
====Sonido crepitante con dispositivos USB====
 +
 
 +
Si usted experimenta crepiteos o crujidos en dispositivos USB, puede intentar ajustar el snd-usb-audio para una latencia mínima.
 +
 
 +
Agregue lo siguiente a su {{ic|/etc/modprobe.d/modprobe.conf}}:
 +
 
 +
options snd-usb-audio nrpacks=1
 +
 
 +
Fuente: http://alsa.opensrc.org/Usb-audio#Tuning_USB_devices_for_minimal_latencies
 +
 
 +
===Error 'Unkown hardware' después de una actualización del Kernel===
 +
 
 +
Los siguientes mensajes pueden aparecer durante la puesta en marcha de ALSA después de la actualización del kernel:
 
  Unknown hardware "foo" "bar" ...
 
  Unknown hardware "foo" "bar" ...
 
  Hardware is initialized using a guess method
 
  Hardware is initialized using a guess method
Line 267: Line 1,015:
 
  /usr/sbin/alsactl: set_control:1328: failed to obtain info for control #26 (No such file or directory)
 
  /usr/sbin/alsactl: set_control:1328: failed to obtain info for control #26 (No such file or directory)
  
Simplemnte guarda la configuración de ALSA mixer de nuevo (como root):
+
Simplemente almacene las configuraciones del mixer de ALSA otra vez (como root):
 
  # alsactl -f /var/lib/alsa/asound.state store
 
  # alsactl -f /var/lib/alsa/asound.state store
  
Tal vez sea necesario configuran alsa de nuevo con el alsamixer
+
Puede ser necesario configurar de nuevo ALSA con {{ic|alsamixer}}.
 +
 
 +
===HDA Analyzer===
 +
 
 +
Si las asignaciones de los pin (conectores) de audio no se corresponden con ALSA, pero éste funciona bien, puede probar con HDA Analyzer -una interfaz gráfica de usuario pyGTK2 para el control de audio HD, que se puede encontrar en la [http://www.alsa-project.org/main/index.php/HDA_Analyzer wiki de ALSA]-.
 +
Trate de configurar la sección de Control Widget para gestionar los PIN, ajustando IN para micrófonos y AUT para auriculares. Puede ser buena idea hacer referencia a los valores por defecto (Config Defaults).
 +
 
 +
NOTA:El script se ejecuta de tal manera que es incompatible con python3 (que es el actualmente proporcionado por ArchLinux) pero, no obstante, trate de usarlo.
 +
Para solucionar este problema, abra "run.py", encuentre todas las entradas de "python" (2 entradas - una en la primera línea, y la segunda en la última línea) y reemplácelas por todo "python2".
 +
 
 +
NOTA 2: El script requiere acceso de root, pero no funciona a través de su/sudo. Ejecútelo mediante kdesu o gtksu.
 +
 
 +
===ALSA con SDL===
 +
 
 +
Si no se obtiene ningún sonido a través de SDL, y ALSA no puede ser seleccionado desde la configuración de la aplicación, pruebe a establecer la variable de entorno SDL_AUDIODRIVER a "alsa".
 +
{{bc|# export SDL_AUDIODRIVER<nowiki>=</nowiki>alsa}}
 +
 
 +
===Alternativa al sonido bajo===
 +
 
 +
Si se obtiene un sonido bajo, incluso después usar al máximo sus altavoces/auriculares, puede intentar solucionar el problema probando el plugin softvol. Agregue lo siguiente a {{ic|/etc/asound.conf}}.
 +
{{bc|<nowiki>
 +
pcm.!default {
 +
      type plug
 +
      slave.pcm "softvol"
 +
  }
 +
 
 +
pcm.softvol {
 +
    type softvol
 +
    slave {
 +
        pcm "dmix"
 +
    }
 +
    control {
 +
        name "Pre-Amp"
 +
        card 0
 +
    }
 +
    min_dB -5.0
 +
    max_dB 20.0
 +
    resolution 6
 +
}
 +
</nowiki>}}
 +
{{Nota|Es probable que tenga que reiniciar el equipo, así como reiniciar el demonio si alsa no se ha cargado con la nueva configuración. Además, si la configuración no funciona, incluso después de reiniciar, intente cambiar {{ic|plug}} con {{ic|hw}} en la configuración antes expuesta}}
 +
 
 +
Después que los cambios se carguen correctamente, aparecerá una nueva sección {{ic|Pre-Amp}} en alsamixer. Puede ajustar los niveles desde allí.
 +
{{Nota|Establecer un valor alto para {{ic|Pre-Amp}} puede causar distorsión del sonido, por lo que ajustelo de acuerdo al nivel más adecuado.}}
 +
 
 +
==Configuraciones de ejemplo==
 +
 
 +
Consulte [[Advanced Linux Sound Architecture/Example Configurations]].
 +
 
 +
==Véase también==
  
= Recursos Externos =
+
* [http://www.mjmwired.net/kernel/Documentation/sound/alsa/ALSA-Configuration.txt Advanced ALSA module configuration]
Más información:
+
* [http://alsa.opensrc.org/Main_Page Unofficial ALSA Wiki]
* [http://alsa.opensrc.org/index.php/Main_Page Wiki NO OFICIAL de ALSA (Inglés)]
+
* [http://bbs.archlinux.org/viewtopic.php?id=36815 HOWTO: Compile driver from svn]
* [http://alsa.opensrc.org/index.php/Aadebug Un script para depurar ALSA (Inglés)]
+
* [http://bbs.archlinux.org/viewtopic.php?id=36815 Cómo compilar el driver desde el SVN (Inglés)]
+
* [http://gentoo-wiki.com/HOWTO_Set_up_a_system-wide_equaliser_with_ALSA_and_LADSPA Cómo configurar un ecualizador del sistema con ALSA y LADSPA (Inglés)]
+

Revision as of 14:16, 2 October 2012

La Arquitectura Avanzada para el Sonido en Linux (conocido con el acrónimo ALSA) es un componente del kernel destinado a sustituir el original Open Sound System (Open OSSv3) para proporcionar controladores de dispositivos para las tarjetas de sonido. Además de los controladores de dispositivos de sonido, ALSA también pone a disposición una amplia biblioteca en el espacio de usuario para los desarrolladores de aplicaciones que quieran utilizar las funciones del controlador mediante un API de alto nivel con una interacción directa con los controladores del kernel.

Nota: Para un entorno de sonido alternativo, consulte la página Open Sound System
.
Sumario help replacing me
Uso, configuración y solución de problemas de ALSA.
Relacionado
Sound
Disable PC Speaker Beep

Contents

Instalación

ALSA está incluido en el kernel de Arch por defecto como un conjunto de módulos, por lo que no es necesaria su instalación explícitamente.

Udev explorará automáticamente su hardware en el arranque, cargando el módulo del kernel correcto para la tarjeta de sonido encontrada. Por lo tanto, su sonido debería estar funcionando desde el inicio, pero, ha de tener en cuenta que su configuración viene, por defecto, con todos los canales de audio silenciados.

Los usuarios deben formar parte del group de audio para reproducir sonido con ALSA. Para agregar un usuario al grupo audio, utilice el siguiente comando:

# gpasswd -a nombre-de-usuario audio
Nota: Ésto no tendrá efecto hasta el siguiente reinicio del login de usuario

Utilidades

Desde los repositorios oficiales:

  • Instale el paquete alsa-utils que contiene la utilidad alsamixer, que permite la configuración del dispositivo de sonido desde consola o terminal.
  • Instale el paquete alsa-oss si desea que las aplicaciones OSS funcionen mediante dmix (software de mezcla).
Nota: A partir de udev >= 171, los módulos de emulación OSS (snd_seq_oss, snd_pcm_oss, snd_mixer_oss) no se cargan automáticamente por defecto.

Abriendo los canales de audio

La versión actual de ALSA se instala con todos los canales silenciados por defecto. Será necesario revertir el enmudecimiento de los canales manualmente.

Para lograr ésto, lo más fácil es usar la interfaz gráfica de usuario alsamixer, (otra alternativa es utilizar amixer desde la línea de comandos):

$ alsamixer

La etiqueta MM por debajo de un canal indica que el canal está silenciado, y 00 indica que está abierto.

El procedimiento a seguir es el siguiente:

Desplácese hasta los canales Master y PCM con las teclas Template:Keypress y Template:Keypress y desactívelos pulsando la tecla Template:Keypress. Utilice la tecla Template:Keypress para aumentar el volumen y obtener un "dB gain" con valor 0. El valor gain se puede encontrar en la parte superior izquierda junto al campo Item:. Los valores más altos de gain producirán sonido distorsionado.

Para obtener un verdadero sonido envolvente (surround) 5.1 ó 7.1 es probable que tenga que desactivar otros canales como Front, Surround, Center, LFE (subwoofer) y Side (éstos son los nombres de los canales para el módulo Intel HD Audio, y pueden variar con hardware diferente). Tenga en cuenta que ésto no se logrará automáticamente con Upmix para las fuentes de sonido estéreo (como, por ejemplo, la música). Con el fin de lograrlo, consulte Upmixing/Downmixing.

Salga de alsamixer pulsando Template:Keypress.

Nota:
  • Algunas tarjetas necesitan tener el canal de salida digital silenciado/apagado para poder escuchar el sonido analógico. Para el LS Soundblaster Audigy es necesario silenciar el canal IEC958.
  • Algunas máquinas, (como la Thinkpad T61), tienen un canal speaker (altavoz) que debe ser activado y ajustado también.
  • Algunas máquinas (como Dell E6400) también pueden requerir que el silencio sea desactivado en los canales Front y Headphone y ajustados

Se puede ahora comprobar si el sonido funciona:

$ speaker-test -c 2

Modifique el valor -c para ajustar la configuración de los altavoces. Por ejemplo, use -c 8 para 7.1:

$ speaker-test -c 8

Si esto no funciona, vaya a #Configuración o consulte #Solución de problemas.

Si funciona, sólo le queda guardar los ajustes realizados.

# alsactl store

Esto creará el archivo /var/lib/alsa/asound.state, donde se guardarán todos los ajustes de alsamixer.

A continuación, agregue el demonio alsa a la matriz DAEMONS en el archivo /etc/rc.conf para restaurar automáticamente la configuración del mezclador durante el arranque. Consulte Daemons para obtener instrucciones detalladas.

Nota: El demonio alsa sólo restaura los niveles del volumen de algunos canales en el arranque mediante la lectura del archivo /var/lib/alsa/asound.state. Es independiente de la biblioteca de audio de alsa (y la API a nivel del kernel).

Configuración

Establecer la tarjeta de sonido por defecto

En primer lugar, tendrá que averiguar los identificadores de la tarjeta de audio y del dispositivo que desea establecer como predeterminados, ejecutando 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

Por ejemplo, la última entrada de esta lista se refiere a la tarjeta (card) con el identificador (id) 2 y al dispositivo (device) con el id 0. Para establecer esta tarjeta como predeterminada, puede utilizar el archivo del sistema /etc/asound.conf o el archivo específico del usuario ~/.asoundrc. Puede que tenga que crear este último archivo si no existe. A continuación, inserte las siguientes opciones con el correspondiente id (identificador) relativo a la tarjeta y al dispositivo.

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

La opción 'pcm', que afecta a la tarjeta y al dispositivo, especifica que ambos serán utilizados para la reproducción de audio, mientras que la opción 'ctl' indica que serán controlados por utilidades como alsamixer.

Los cambios surten efecto tan pronto como se (re-) inicie una aplicación (mplayer, etc.)

Si sus tarjetas de sonido cambian de orden durante el arranque, puede especificar el orden de las mismas en el archivo /etc/modprobe.d/modprobe.conf. Por ejemplo, si desea que su tarjeta de sonido mia se cargue primero, colóquele el valor #0:

/etc/modprobe.d/modprobe.conf
options snd slots=snd_mia,snd_hda_intel
options snd-mia index=0
options snd-hda-intel index=1

snd-mia y snd-hda-intel son los módulos utilizados por las respectivas tarjetas. Esta configuración asume que tiene una tarjeta de sonido mia y una tarjeta snd-hda-intel (es decir, integrada). Estos cambios requieren un reinicio del sistema, para que surtan efectos.

Asegurarse de que los módulos de sonido se cargan

Es de suponer que udev detectará automáticamente el sonido correctamente. Puede verificar que ésto ha ocurrido así con el comando siguiente:

$ 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

Si el resultado es similar, los controladores de sonido han sido reconocidos automáticamente con éxito.

Nota: A partir de udev>=171, los módulos de emulación OSS (snd_seq_oss, snd_pcm_oss, snd_mixer_oss) no se cargan de forma predeterminada: son necesarios cargarlos con modprobe y/o agregarlos en la matriz MODULES del archivo /etc/rc.conf, si se desea que se inicien automáticamente en cada arranque. Al puentearse el software de mezcla, no los cargue a menos que tenga software compatible con OSS.

También puede ser que desee comprobar el directorio /dev/snd/ para verificar que los archivos de dispositivos son los correctos:

$ 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
Nota: Si solicita ayuda en el IRC o los foros, por favor envíe la salida de los comandos anteriores.

Si tiene presente, por lo menos, los dispositivos controlC0 y pcmC0D0p o similares, entonces los módulos de sonido han sido detectados y cargados correctamente.

Si éste no es el caso, sus módulos de sonido no se han detectado correctamente. Para solucionar ésto, pruebe intentando cargar los módulos manualmente:

  • Localice el módulo de tu tarjeta de sonido: ALSA Soundcard Matrix. El módulo tendrá el prefijo 'snd-' (por ejemplo: snd-via82xx).
  • Cargue lo módulos:
 # modprobe snd-NOMBRE-DEL-MÓDULO
  • Compruebe si los archivos del dispositivo están en /dev/snd (ver más arriba) y/o pruebe si alsamixer o amixer tienen una salida razonable.
  • Agregue snd-NOMBRE-DEL-MÓDULO y snd-pcm-oss a la lista de módulos en /etc/rc.conf para asegurar que se cargan la próxima vez que reinicie (verifique que snd-NOMBRE-DEL-MÓDULO está colocado antes que snd-pcm-oss).

Restaurar configuraciones ALSA Mixer al inicio

Advertencia: Si utiliza kmix, asegúrese de configurarlo para que no restaure los niveles de sonido en el inicio. De lo contrario, hará que entre en conflicto con la configuración que se detalla a continuación.
  • Ejecute alsactl -f /var/lib/alsa/asound.state store para crear /var/lib/alsa/asound.state.
# alsactl -f /var/lib/alsa/asound.state store
  • Edite /etc/rc.conf y añada alsa a la lista de demonios para iniciar en el arranque. Esto guardará la configuración del mezclador (mixer) en cada parada y la restaurará al arrancar.
  • Si la configuración del mezclador no se carga en el arranque, añada la siguiente línea a /etc/rc.local:
# alsactl -f /var/lib/alsa/asound.state restore
  • Puede que con este método tampoco funcione, y, como alternativa, no le importe tener, tan sólo, la configuración de audio para usuarios individuales. En este último caso, ejecute alsactl store -f ~/.asoundrc como un usuario normal. Esto guardará y restaurará la configuración del volumen en función de cada usuario. Para automatizar este proceso, agregue los respectivos comandos a ~/.bash_login y ~/.bash_logout, o a los lugares correctos para la shell de su elección. Por ejemplo para zsh, utilice:

~/.zlogin y ~/.zlogout.

Conseguir salida SPDIF

(De los foros de Gentoo)

  • En el control de volumen de GNOME, en la pestaña Opciones, cambie el IEC958 a PCM. Esta opción puede estar habilitada en las preferencias.
  • Si usted no tiene instalado el control de volumen de GNOME,
    • Edite /var/lib/alsa/asound.state. En este archivo alsasound almacena la configuración de mixer.
    • Encuentra una línea que dice: 'IEC958 Playback Switch'. Cerca de ella se encuentra una línea que dice value:false. Cambie el valor a value:true.
    • Ahora busca esta línea: 'IEC958 Playback AC97-SPSA'. Cambie su valor a 0.
    • Reinicie ALSA.

Otra forma alternativa para activar la salida SPDIF automáticamente al iniciar sesión (probado en SoundBlaster Audigy):

  • Añada las siguientes líneas a /etc/rc.local:
 # Use COAX-digital output
 amixer set 'IEC958 Optical' 100 unmute
 amixer set 'Audigy Analog/Digital Output Jack' on

Se puede ver el nombre de la salida digital de su tarjeta con:

 $ amixer scontrols

Ecualizador System-Wide

Usando AlsaEqual (proporciona la interfaz gráfica de usuario)

Instale alsaequalAUR desde [[AUR].

Nota: Si tiene un sistema x86_64 y está utilizando un flashplugin de 32bit, el sonido en flash no funcionará. Tendrá que, o bien desactivar alsaequal, o bien compilar alsaequal para 32 bits.

Después de instalar el paquete, introduzca lo siguiente en el archivo de configuración de ALSA (~/.asoundrc o /etc/asound.conf):

ctl.equal {
 type equal;
}

pcm.plugequal {
  type equal;
  # Modifique la línea de abajo si
  # desea utilizar la tarjeta de sonido 0.
  #slave.pcm "plughw:0,0";
  #por defecto funcionará con más de una fuente simultáneamente:
  slave.pcm "plug:dmix";
}
#pcm.equal {
  # Si no desea que el ecualizador utilice la
  # tarjeta de sonido predeterminada comente la siguiente
  # línea y descomente la línea anterior. (Puede
  # elegirlo como dispositivo de salida al usar
  # otras aplicaciones específicas, por ejemplo, mpg123 -a equal 06.Back_In_Black.mp3)
pcm.!default {
  type plug;
  slave.pcm plugequal;
}

A continuación, vuelva a cargar la configuración de ALSA (como root).

# rc.d restart alsa

Es muy importante cerrar todas las aplicaciones que usan ALSA.

Y ya está listo para cambiar su ecualizador con el comando

$ alsamixer -D equal

Tenga en cuenta que el archivo de configuración es diferente para cada usuario (mientras no se especifique otra cosa) que se guarda en ~/.alsaequal.bin. Así que si desea utilizar AlsaEqual con mpd u otro software que se ejecute bajo un usuario diferente, se puede configurar mediante el comando:

# su mpd -c 'alsamixer -D equal'

O, por ejemplo, se puede hacer un enlace simbólico a .alsaequal.bin en el directorio home de aquel usuario.

Gestor de Estados de AlsaEqual

Instale alsaequal-mgr desde los repositorios Xyne o desde AUR.

Configure el ecualizador como de costumbre con:

$ alsamixer -D equal

Cuando esté satisfecho con el estado, puede darle un nombre ("foo" en este ejemplo) y guardarlo:

$ alsaequal-mgr save foo

El estado "foo", entonces se puede restaurar en un momento posterior con:

$ alsaequal-mgr load foo

De esta forma puede crear diferentes estados de ecualizador para juegos, películas, géneros musicales, aplicaciones de VoIP, etc. y volver a cargarlos cuando sea necesario.

Consulte la página del proyecto y los consejos de ayuda para más opciones.

Usando mbeq

Nota: Este método requiere el uso de un plugin LADSPA que podría suponer un consumo un poco alto de la CPU cuando se reproduce el sonido. Además, ésto se hizo pensando en la utilización de sonido estereofónico (por ejemplo, optimizado para auriculares).

Instale los paquetes alsa-plugins, ladspa y swh-plugins si aún no los tiene.

  • Si no ha creado el archivo ~/.asoundrc o /etc/asound.conf, a continuación, cree cualquiera de ellos y añada lo siguiente:
/etc/asound.conf
pcm.eq {
  type ladspa

  # La salida del EQ puede ir directamente a un dispositivo de hardware
  # (si usted tiene un mezclador de hardware, por ejemplo SBLive/Audigy) o puede ir
  # para el mezclador de software que se muestra aquí.
  #slave.pcm "plughw:0,0"
  slave.pcm "plug:dmix"

  # A veces es posible que necesite especificar la ruta de los plugins,
  # especialmente si acaba de instalarlos. Una vez que haya iniciado sesión
  # salir/reiniciar no debería ser necesario, pero sí, si se producen errores
  # por no poder encontrar los plugins, intente eliminando el comentario de éstos.
  #path "/usr/lib/ladspa"

  plugins [
    {
      label mbeq
      id 1197
      input {
        #este ajuste se puede hacer aquí, por ejemplo; edite a su gusto
        #bandas: 50Hz, 100Hz, 220Hz, 156hz, 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 ]
      }
    }
  ]
 }

 # Redirigir el dispositivo predeterminado para pasar por el EQ - es posible que desee hacer ésto.
 # haga esto último, una vez que esté seguro de que todo está funcionando. De lo contrario todos
 # sus programas de audio se romperán/bloquearán si algo ha ido mal.

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

 # Redirigir la emulación OSS a través del EQ también (con programas que corren a través de "AOSS")

 pcm.dsp0 {
  type plug
  slave.pcm "eq"
 }
  • Actualizar la configuración de alsa (como root).
# rc.d restart alsa
  • Ahora todo debe ir bien (en su defecto, pregunte en el foro).

Remuestreo de alta calidad

Cuando el software de mezcla está habilitado, ALSA se ve obligado a volver a muestrear (remuestrear) todo en la misma frecuencia (48000 por defecto cuando se admite). Dmix utiliza un algoritmo de remuestreo pobre que produce una pérdida notable de la calidad de sonido.

Instale alsa-plugins y libsamplerate:

# pacman -S alsa-plugins libsamplerate

Cambie el convertidor de frecuencia por defecto a libsamplerate:

/etc/asound.conf
defaults.pcm.rate_converter "samplerate_best"

o

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

Samplerate_best ofrece la mejor calidad de sonido, pero se necesita una CPU decente para poder usarlo, ya que requiere una gran cantidad de ciclos de CPU en tiempo real para el remuestreo. Existen otros algoritmos disponibles (samplerate, etc.), pero no proporcionan una gran mejora respecto al remuestreador por defecto.

Advertencia: En algunos sistemas, samplerate_best puede causar un problema por el que no se obtiene ningún sonido de reproducción flash.

Upmixing/Downmixing

Upmixing

A fin de que una fuente de audio estéreo, como música, pueda ser capaz de ocupar todas las salidas de un sistema de sonido 5.1 ó 7.1, es necesario utilizar upmixing. En el pasado este proceso resultaba difícil y propenso a errores, pero a día de hoy existen plugins que hacen fácil esta tarea. Por lo tanto, instale alsa-plugins.

A continuación, añada lo siguiente al archivo de configuración de ALSA de su elección (ya sea /etc/asound.conf o ~/.asoundrc):

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

Puede cambiar fácilmente este ejemplo del 7.1, a upmixing 5.1 ó 4.0.

Esto agrega un nuevo pcm que se puede utilizar por upmixing. Si desea que todas las fuentes de audio pasen por este pcm, agréguelo como predeterminado debajo de la definición anterior, así:

pcm.!default "plug:upmix71"

El plugin permite automáticamente múltiples fuentes de sonido para trabajar a través de él sin problemas, de modo que este ajuste por defecto es, en realidad, una elección segura. Si esto no funciona, pruebe configurar su propio dmixer, para efectuar upmixing del canal PCM, así:

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

y usar "dmix6" en lugar de "surround71". Si experimenta problemas de sonido como saltos o distorsiones, puede aumentar el buffer_size (a 32768, por ejemplo) o utilizar un remuestreador de alta calidad.

Downmixing

Si quiere efectos downmixing, por ejemplo, desea escuchar en una salida estéreo un vídeo con sonido 5.1, es necesario utilizar el plugin vdownmix que alsa ofrece en el mismo paquete.

Una vez más, en el archivo de configuración, añada lo siguiente:

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

Mezcla

Software de mezcla (dmix)

Nota: Para versiones 1.0.9rc2 y superiores de ALSA, no es necesario configurar dmix para las salidas de sonido analógicas. Dmix está habilitado, de forma predeterminada, para las tarjetas de sonido que no son compatibles con el hardware de mezcla.

Si eso no funciona automáticamente, sin embargo, es cuestión simplemente de crear un archivo .asoundrc (o modificar el existente) en el directorio personal, con el siguiente contenido:

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

Esto debería habilitar dmix (software de mezcla) y permitir el acceso simultáneo de más de una aplicación para hacer uso de la tarjeta de sonido.

Para una salida de sonido digital como S/PDIF, el paquete ALSA todavía no habilita dmix por defecto. Así, la configuración dmix anteriormente citada se puede usar para habilitar dmix para dispositivos con salida S/PDIF.

Consulte el apartado sobre solución de problemas para los problemas más comunes y sus soluciones.

Hardware de mezcla

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 (Español)#)
  • Utilice una tarjeta de sonido compatible con hardware de mezcla: La antigua serie SoundBlaster Live! (emu10k1 chip) y la nueva serie Audigy (EMU10K2 chip) son consideradas utilizables.
  • El SoundBlaster Live! 5.1 se puede encontrar fácilmente y a un precio accesible.
Nota: Las más económicas Audigy, Audigy 2 NX, SoundBlaster Live! 24 bits y SoundBlaster Live! 7,1 no proporcionan soporte de hardware de mezcla (usan otros chips).
  • El 99% de las placas base con sonido integrado no proporcionan soporte de hardware de mezcla.
Nota: Una excepción es el chip integrado VIA8237 que soporta 4-stream de hardware de mezcla. Sin embargo, sólo 3 funcionan para algunas placas base (el cuarto no hace ningún sonido), o se rompe recién se inicia. Incluso si funciona, la calidad no es buena en comparación con otras soluciones.
  • Para Arch64 y la tarjeta 00:1b.0 Audio device: Intel Corporation 82801I (ICH9 Family) HD Audio Controller (rev 02), es necesario establecer algunos parámetros para hacer funcionar Enemy Territory:
echo "et.x86 0 0 direct" > /proc/asound/card0/pcm0p/oss
echo "et.x86 0 0 disable" > /proc/asound/card0/pcm0c/oss

Solución de problemas

Sonido con saltos durante el uso de Dynamic Frequency Scaling

Algunas combinaciones de determinados drivers ALSA y chipsets pueden causar saltos en el audio de todas las fuentes cuando se utiliza en combinación con un regulador de frecuencia de la CPU de escalamiento dinámico como ondemand o conservative. En la actualidad, la solución es volver al gobernador performance.

Consulte la CPU Frequency Scaling para más información.

Problemas con la disponibilidad del software de mezcla por sólo un usuario a la vez

Puede suceder que sólo un usuario puede utilizar el dmixer a la vez. Esto probablemente pueda andar bien para la mayoría de los usuarios cuando sólo ellos utilizan su máquina, pero para los que corren mpd en una máquina con usuarios distintos plantea un problema. Cuando mpd está corriendo, otro usuario normal no puede reproducir sonidos mediante dmixer. Aunque es posible solucionarlo corriendo mpd en la cuenta de inicio de sesión del usuario habilitado, otra solución es factible. Añada la línea ipc_key_add_uid 0 al bloque pcm.dmixer para desactivar esta limitación. El siguiente es un fragmento del código de asound.conf, el resto es lo mismo que el anterior.

...
pcm.dmixer {
 type dmix
 ipc_key 1024
 ipc_key_add_uid 0
 ipc_perm 0660
slave {
...

Problemas de reproducción simultánea

Si está teniendo problemas de reproducción simultánea, y si PulseAudio se ha instalado (por ejemplo, utilizando GNOME), su configuración por defecto está ajustada para "secuestrar" a favor de pulseadio la tarjeta de sonido. Algunos usuarios de ALSA no les importa no utilizar PulseAudio y están satisfechos con su actual configuración de ALSA. Una solución para resolver el problema es editar /etc/asound.conf y comentar las siguientes líneas:

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

Comentando lo siguiente también puede resulta útil:

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

Ésta puede ser una solución mucho más simple que desinstalar por completo PulseAudio.

Efectivamente, este es un ejemplo de un archivo /etc/asound.conf funcionando correctamente:

pcm.dmixer {
        type dmix
        ipc_key 1024
        ipc_key_add_uid 0
        ipc_perm 0660
}
pcm.dsp {
        type plug
        slave.pcm "dmix"
}
Nota: Este archivo /etc/asound.conf fue creado y utilizado con éxito para una configuración de MPD global. Consulte esta sección para múltiples usuarios

Falta de sonido al azar

Si no tiene sonido aleatoriamente en el arranque, puede deberse a que el sistema tiene varias tarjetas de sonido, y su orden puede, a veces, cambiar al inicio. Si este es el caso, entonces hay que cambiar esta sección de /etc/asound.conf:

ctl.dmixer {
    type hw
    card FOO
}

Sustituya foo con el dispositivo de audio que desee, según se informa en el archivo /proc/asound/cards. Un ejemplo del archivo se muestra a continuación:

 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

El dispositivo 0 es el micrófono incorporado en una cámara web, mientras que el dispositivo 1 es la tarjeta de sonido integrada. Si ha copiado el archivo /etc/asound.conf que se muestra arriba tal cual sin adaptarlo a su sistema, puede encontrarse con que ALSA intentará inicializar el micrófono como dispositivo de salida de audio, pero se producirá un error y no tendrá ningún sonido. En lugar de establecer el valor FOO con números, sustitúyalo con el nombre del dispositivo, así:

ctl.dmixer {
    type hw
    card SB
}

Si utiliza dmix, quizás quiera tener una configuración como ésta:

ctl.!default {
    type hw
    card Intel #adapt this to your card
    #device 0 #not required, defaults to 0 (see the output of aplay -L)
}

pcm.dmixer {
    type dmix
    ipc_key 1024 #required and must be unique
    slave.pcm {
        type hw
        card Intel #same as above
        #device 0 #same as above
    }
}

pcm.!default {
    type plug
    slave.pcm dmixer
}

Para la mayoría de los programas que usan ALSA, asegúrese que el archivo /etc/libao.conf sólo contiene la siguiente línea:

default_driver=alsa10

Si utiliza mpd y los consejos de configuración anteriormente propuestos no funcionan en su caso, consulte este otro en su lugar.

Problemas específicos de algunos programas

Algunos programas definen por sí su propia configuración de audio, por ejemplo, XMMS o Mplayer, con lo cual tendría que configurar sus opciones específicas.

Para mplayer, abra ~/.mplayer/config (o /etc/mplayer/mplayer.conf para el ajuste global) y añada la siguiente línea:

ao=alsa

Para XMMS/Beep Media Player, entre en sus opciones y asegúrese de que el controlador de sonido está ajustado a ALSA y no, a OSS.

Para hacer esto en XMMS:

  • Abra XMMS
    • Opciones -> Preferencias.
    • Elija el plugin de salida de Alsa.

Para las aplicaciones que no proporcionan compatibilidad con ALSA, puede usar AOSS desde el paquete alsa-oss. Para utilizar aoss, se ejecuta el programa, anteponiendo el prefijo aoss, por ejemplo:

aoss realplay

pcm.!default{ ... } si ésto no funciona, pruebe en su lugar:

 pcm.default pcm.dmixer

Modelo de Configuración

Aunque Alsa detecta la tarjeta de sonido a través de la BIOS, a veces Alsa puede no ser capaz de reconocer el tipo de modelo. El chip de la tarjeta de sonido puede ser encontrado en alsamixer (por ejemplo ALC662) y el modelo se puede ajustar en /etc/modprobe.d/modprobe.conf o /etc/modprobe .d/sound.conf. Por ejemplo:

options snd-hda-intel model=MODEL

Hay otras opciones, según el modelo. Para la mayoría de los casos, Alsa lo hará de manera automática, por defecto. Si desea ver más opciones de configuración específica para su tarjeta de sonido, eche un vistazo a la Lista de Tarjetas de sonido Alsa, localice su modelo, a continuación, pinche en Detalles, a continuación, busque la sección "setting up modprobe ...". Introduzca esos valores en el archivo /etc/modprobe.d/modprobe.conf. Por ejemplo, para una tarjeta de audio Intel AC97:

# 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 en conflicto con altavoz interno del PC

Si estás seguro de que nada está silenciado, que los controladores están instalados correctamente y que su volumen es correcto, pero todavía no se oye nada, entonces trate de añadir la siguiente línea a /etc/modprobe.d/modprobe.conf:

options snd-NAME-OF-MODULE ac97_quirk=0

La solución anterior se ha observado que funciona con via82xx

options snd-NAME-OF-MODULE ac97_quirk=1

La solución anterior se ha informado que funciona con snd_intel8x0

Sin Input en el micrófono

En alsamixer, asegúrese de que todos los niveles de volumen, en la sección grabación, están activados, y que la modalidad CAPTURE del micrófono está activa (por ejemplo, Mic, micrófono interno) y/o sobre capture (en alsamixer, seleccione estos elementos en el primer espacio).

En la medida que pulseaudio se muestra como "default" en alsamixer, puede ser necesario presionar F6 para seleccionar la tarjeta de sonido presente en primer lugar. También puede ser necesario para habilitar y aumentar el volumen de Line-in (Línea de entrada) en la sección Playblack (reproducción).

Para probar el micrófono, ejecute estos comandos (consulte la página arecord hombre para más información):

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

Si todo falla, es posible que desee descartar un fallo de hardware, probando el micrófono con un dispositivo diferente.

En algunos ordenadores, el silenciamiento de un micrófono (MM) simplemente significa que su entrada no va de inmediato a los altavoces. Todavía recibe la entrada, aunque no se escuche sonido alguno.

Muchos portátiles Dell necesitan "-DMIC", que se añade al nombre del modelo en /etc/modprobe.d/modprobe.conf:

 options snd-hda-intel model=dell-m6-dmic

Algunos programas intenta utilizar OSS como software de entrada principal. Añada las siguientes líneas a /etc/modprobe.d/modprobe.conf para evitar que los módulos OSS se carguen:

Nota: Los módulos de software libre ya no se cargan automáticamente de todos modos.
blacklist snd_pcm_oss
blacklist snd_mixer_oss
blacklist snd_seq_oss

Consulte también:

Configuración predeterminada de Micrófono/Dispositivo de captura

Algunas aplicaciones (Pidgin, Adobe Flash) no ofrecen una opción para cambiar el dispositivo de captura. Se convierte en un problema si el micrófono está en un dispositivo separado (por ejemplo, USB webcam o micrófono) de la tarjeta de sonido interna. Para cambiar sólo el dispositivo capture, dejando el dispositivo de reproducción predeterminado como está, puede editar el archivo ~/.asoundrc para incluir lo siguiente:

pcm.usb
{
    type hw
    card U0x46d0x81d
}

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

Reemplace "U0x46d0x81d" con el nombre de la tarjeta del dispositivo capture en ALSA. Es posible utilizar el comando arecord -L para listar todos los dispositivos de captura detectados por ALSA.

Micrófono interno no funciona

En primer lugar, asegúrese, en almixer, de que todos los niveles de volumen, en la sección de grabación, están activados. Para obtener un nuevo ajuste del volumen, llamado Capture, que registre el micrófono interno, vuelva a añadir una nueva opción al archivo /etc/sound.conf y recargue el módulo snd-*. Por ejemplo, para snd-hda-intel, añada:

 options snd-hda-intel enable_msi=1

Cargando el módulo (como se indica abajo), activará el nuevo ajuste de volumen (Capture) y luego pruebe.

# rmmod snd-hda-intel && modprobe snd-hda-intel

Sin sonido con Onboard Intel Sound Card

Puede haber un problema con dos módulos cargados en conflicto, a saber snd_intel8x0 y snd_intel8x0m. En este caso, introduzca en blacklist snd_intel8x0m:

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

Deshabilitar el canal "External Amplifier" en alsamixer o amixer también puede ayudar. Consulte la wiki de ALSA.

Sin sonido en auriculares con tarjeta de audio Onboard Intel

Si tiene un portatil con Intel Corporation 82801 I (ICH9 Family) HD Audio Controller, puede que tenga que añadir esta línea a modprobe o sound.conf:

options snd-hda-intel model=$model

Donde $model es cualquiera de los siguientes modelos(por orden de posibilidad de funcionar, no por mérito):

  • dell-vostro
  • olpc-xo-1_5
  • laptop
  • dell-m6
  • laptop-hpsense
Nota: Puede que sea necesario poner esas "opciones" abajo (después de) los "alias".

Puede ver todos los modelos disponibles en la documentación del kernel. Por ejemplo aquí, pero comprueba que se trata de la versión correcta de ese documento para su versión del kernel.

Una lista de modelos disponibles también está recogida aquí. Para conocer el nombre de su chip debe escribir el siguiente comando (con el asterisco * que permite adaptarse a las peculiaridades de sus archivos). Tenga en cuenta que algunos chips podrían haber cambiado de nombre y no corresponderse directamente a los que están disponibles en el archivo.

cat /proc/asound/card*/codec* | grep Codec

Tenga en cuenta, por último, que hay una alta probabilidad de que ninguno de los dispositivos de entrada (todos los micrófonos internos y externos) funcionen si decide hacer ésto, por lo que o funcionarán los auriculares o el micrófono. Por favor, informe a ALSA si se ve afectado por este error.

Por otro lado, si tiene problemas con las señales acústicas (pcspkr):

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

Sin sonido cuando se instala la tarjeta de vídeo con S/PDIF

Localice los módulos disponibles y su orden:

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

Desactive el códec de audio de la tarjeta de vídeo en /etc/modprobe.d/modprobe.conf:

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

Si ambos dispositivos utilizan el mismo módulo, podría ser posible desactivar uno de ellos en la BIOS.

Calidad de audio deficiente

Si la calidad de sonido es pobre, intente ajustar el volumen de PCM (en alsamixer) a un nivel tal que gain sea 0.

Si se ha cargado el controlador snd-usb-audio, puede intentar habilitar softvol en el archivo /etc/asound.conf. Ejemplo de configuración para el primer dispositivo de 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
 }

Crepiteos al iniciar y detener la reproducción

Algunos módulos (como snd-ac97-codec y snd-hda-intel) pueden apagar la tarjeta de sonido cuando no está en uso. Esto puede provocar un ruido audible (como un crack/pop/crepiteos) al encender/apagar su tarjeta de sonido. A veces, puede ocurrir, incluso, cuando se mueve el control deslizante de volumen, o las ventanas se abren y cierran (KDE4). Si encuentra este sonido molesto, puede ejecutar "modinfo snd-MY-MODULE", y buscar una opción que regule o desactive esta función.

Ejemplo: para desactivar el modo de ahorro de energía utilizando snd-hda-intel para evitar las distorsiones y resolver el problema de sonido de los altavoces, añada en /etc/modprobe.d/modprobe.conf

[options snd-hda-intel power_save=0]

o

[options snd-hda-intel power_save=0 power_save_controller=N]

También puede probar con "modprobe snd-hda-intel power_save=0" antes.

Puede que sea necesario también activar el canal 'Line' de alsa para que esto funcione. Cualquier valor puede servir (que no sea '0' o algo muy alto).

Ejemplo: en una tarjeta integrada VIA VT1708S (utilizando el módulo snd-hda-intel) estas distorsiones seguían presentes a pesar de haber ajustado el parámetro 'power_save' a 0. Activando el canal 'Línea' y estableciendo el valor '1' se resolvió el problema.

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

Si utiliza un ordenador portátil, pm-utils cambiará power_save de nuevo a 1 cuando se utiliza la batería, incluso si se desactiva el ahorro de energía en /etc/modprobe.d. Para solucionar este problema, desactive esta opción para pm-utils mediante la desactivación del script que realiza el cambio:

# chmod -x /usr/lib/pm-utils/power.d/intel-audio-powersave

Salida S/PDIF no funciona

Si la salida digital óptica/coaxial de la placa base/tarjeta de sonido no funciona o ha dejado de funcionar, y en alsamixer los correspondientes canales de sonido se han activado, pruebe lo siguiente:

# iecset audio on

como root.

También puede poner este comando en rc.local, ya que a veces puede dejar de funcionar después de un reinicio.

Salida HDMI no funciona

Si la salida HDMI de la placa base/tarjeta de sonido no funciona o ha dejado de funcionar, y en alsamixer los correspondientes canales de sonido se han activado, pruebe lo siguiente:

Consulte los dispositivos de reproducción:

$ 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

Ahora que tenemos la información del dispositivo HDMI, haga una prueba. En el siguiente ejemplo, 0 es el número de tarjeta y 3 es el número de dispositivo.

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

Si aplay no emite ningún error, pero aún no hay ningún sonido, "reinicie" el receptor, monitor o televisor. Desde la interfaz HDMI revise rigurosamente la conexión, dado que podría haber informado anteriormente de que no había flujo de audio y haber deshabilitado así la decodificación de audio.

Nota: Si está utilizando una tarjeta ATI y la versión 3.0 ó superior de Linux, revise los ajustes del grub, lo más probable es que deba añadir la opción 'radeon.audio=1' en los parámetro de arranque del kernel, o bien configure dicha opción en los archivos de configuración de modprobe.

Si la prueba tiene éxito, cree o modifique el archivo ~/.asoundrc para establecer HDMI como el dispositivo de audio predeterminado.

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

Ahora puede reiniciar alsa con el comando de abajo o puede reiniciar el sistema, y ​​el audio debería funcionar correctamente.

Nota: Todos los programas en ejecución que usan ALSA se cerrarán
# rc.d force-restart alsa

Usando udev para apagar/iniciar automáticamente audio HDMI

Nota: Esto sólo funcionará si el controlador es compatible con udev; los drivers propietarios de NVIDIA, por ejemplo, no lo hacen.

Los pasos vistos en la sección anterior son utilizados para probar el propio dispositivo, o si no tiene la necesidad de conectarse con frecuencia al dispositivo HDMI. Pasamos ahora a analizar la situación en la que tiene un portátil y quiere que el dispostivo de audio HDMI se active sólo cuando viene conectado al cable HDMI.

El código de esta sección proviene de La Foros Arch Linux.

Creamos una regla udev (para el proceso de la conexión/desconexión del cable), dos diferentes archivos de configuración de ALSA, y un script que permite cambiar entre estas dos configuraciones.

En primer lugar hay que crear /etc/alsa/ si no existe todavía, que albergará los archivos de configuración y el script de conmutación:

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

Coloque dentro de este directorio los archivos siguientes (que puede ajustar como mejor le parezca):

/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 # or restart if you don't want existing clients to be unceremoniously shut down
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
}

Las dos versiones de asound.conf incluyen ajustes de dmix y permiten la fusión de los permisos de usuario, de modo que, por ejemplo, el usuario mpd y su usuario normal puede acceder a él simultáneamente

Ahora puede probar que el script de conmutación funciona, ejecutando:

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

Si funciona, se puede obtener salida de audio HDMI al ejecutar el script cuando el cable está conectado, mientras que se debe ser capaz de restaurar la salida de audio por defecto desconectando el cable y ejecutando manualmente el script de nuevo.

Una vez que se verifica que funciona, se tiene que automatizar el proceso mediante la adición de la regla udev:

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

Para hacer que udev incorpore la nueva regla de inmediato, vuelva a cargar todas las reglas:

# udevadm control --reload-rules

Imposible regular el canal PCM

Puede encontrarse con que no puede regular los canales PCM. En este caso, pruebe a quitar todas las entradas relacionadas con el sonido en la matriz MODULES del archivo /etc/rc.conf, excepto snd-NOMBRE-DEL-MÓDULO.

HP tx2500

Agregue estas dos líneas en /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 (funciona para tx2000cto)

Salto de sonido durante la reproducción MP3

Si tiene saltos de sonido al reproducir archivos MP3 y tiene más de dos altavoces conectados al ordenador (es decir, dos o más sistema de altavoces), ejecute alsamixer y desactive los canales para los altavoces que NO tiene (es decir, deshabilite, por ejemplo, el canal del altavoz central si no se dispone de un altavoz central).

Auriculares USB y tarjetas de sonido externas USB

Si usted está usando un auricular USB con ALSA puede probar a usar asoundconfAUR (actualmente sólo disponible en AUR) para ajustar el auricular como salida de sonido principal. Nota: antes de proseguir, por favor, asegúrese de tener el módulo usb audio habilitado:

# modprobe snd-usb-audio

Puede agregar lo siguiente al archivo /etc/rc.conf si lo desea:

# asoundconf is-active
# asoundconf list
# asoundconf set-default-card <tarjeta-de-sonido elegida>

Sonido crepitante con dispositivos USB

Si usted experimenta crepiteos o crujidos en dispositivos USB, puede intentar ajustar el snd-usb-audio para una latencia mínima.

Agregue lo siguiente a su /etc/modprobe.d/modprobe.conf:

options snd-usb-audio nrpacks=1

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

Error 'Unkown hardware' después de una actualización del Kernel

Los siguientes mensajes pueden aparecer durante la puesta en marcha de ALSA después de la actualización 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)

o

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)

Simplemente almacene las configuraciones del mixer de ALSA otra vez (como root):

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

Puede ser necesario configurar de nuevo ALSA con alsamixer.

HDA Analyzer

Si las asignaciones de los pin (conectores) de audio no se corresponden con ALSA, pero éste funciona bien, puede probar con HDA Analyzer -una interfaz gráfica de usuario pyGTK2 para el control de audio HD, que se puede encontrar en la wiki de ALSA-. Trate de configurar la sección de Control Widget para gestionar los PIN, ajustando IN para micrófonos y AUT para auriculares. Puede ser buena idea hacer referencia a los valores por defecto (Config Defaults).

NOTA:El script se ejecuta de tal manera que es incompatible con python3 (que es el actualmente proporcionado por ArchLinux) pero, no obstante, trate de usarlo. Para solucionar este problema, abra "run.py", encuentre todas las entradas de "python" (2 entradas - una en la primera línea, y la segunda en la última línea) y reemplácelas por todo "python2".

NOTA 2: El script requiere acceso de root, pero no funciona a través de su/sudo. Ejecútelo mediante kdesu o gtksu.

ALSA con SDL

Si no se obtiene ningún sonido a través de SDL, y ALSA no puede ser seleccionado desde la configuración de la aplicación, pruebe a establecer la variable de entorno SDL_AUDIODRIVER a "alsa".

# export SDL_AUDIODRIVER=alsa

Alternativa al sonido bajo

Si se obtiene un sonido bajo, incluso después usar al máximo sus altavoces/auriculares, puede intentar solucionar el problema probando el plugin softvol. Agregue lo siguiente a /etc/asound.conf.

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

pcm.softvol {
    type softvol
    slave {
        pcm "dmix"
    }
    control {
        name "Pre-Amp"
        card 0
    }
    min_dB -5.0
    max_dB 20.0
    resolution 6
}
Nota: Es probable que tenga que reiniciar el equipo, así como reiniciar el demonio si alsa no se ha cargado con la nueva configuración. Además, si la configuración no funciona, incluso después de reiniciar, intente cambiar plug con hw en la configuración antes expuesta

Después que los cambios se carguen correctamente, aparecerá una nueva sección Pre-Amp en alsamixer. Puede ajustar los niveles desde allí.

Nota: Establecer un valor alto para Pre-Amp puede causar distorsión del sonido, por lo que ajustelo de acuerdo al nivel más adecuado.

Configuraciones de ejemplo

Consulte Advanced Linux Sound Architecture/Example Configurations.

Véase también