===== Alsa: Múltiples aplicaciones sonando simultáneamente en GNU/Linux / Reparar sonido tras actualizar =====
Dependiendo del software de sonido, la versión y distribución de GNU/Linux puede que dos aplicaciones que intenten acceder al mismo dispositivo de sonido de forma simultanea no funcione. La solución que se propone aquí no tiene porque funcionar en todos los casos, ya que depende de muchos otros factores, como por ejemplo tener pulseaudio funcionando o no.
==== Listar dispositivos de audio en GNU/Linux ====
Lo primero que se debe hacer es identificar la tarjeta que queremos utilizar.
aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: HDMI [HDA Intel HDMI], device 3: HDMI 0 [HDMI 0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: HDMI [HDA Intel HDMI], device 7: HDMI 1 [HDMI 1]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: HDMI [HDA Intel HDMI], device 8: HDMI 2 [HDMI 2]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: PCH [HDA Intel PCH], device 0: ALC892 Analog [ALC892 Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
==== Seleccionar el dispositivo predeterminado y permitir sonido simultaneo ====
Editar el fichero ///etc/asound.conf// y agregar una de las siguientes lineas dependiendo lo que se quiera hacer.
**Opción 1**: Solo una aplicación puede utilizar la tarjeta, el flujo de sonido va directo a la tarjeta de audio.
pcm.default "hw:PCH"
**Opción 2**: Utiliza todos los plugins predeterminados, entre otros, el que permite mezclar sonidos de diferentes aplicaciones a la vez.
pcm.default "sysdefault:PCH"
La segunda opción sería la que interesa para poner de tarjeta predeterminada card 1: PCH [HDA Intel PCH] y que permita a múltiples aplicaciones sacar sonido al mismo tiempo.
===== Tarjeta de audio predeterminada en alsamixer =====
Editamos el fichero //alsa.conf// y editamos la siguiente linea.
defaults.ctl.card 1
===== Quitar el mute =====
Es posible que tras actualizar el sistema y reiniciarlo, se pierda el sonido. Esto puede deberse a que la tarjeta predeterminada es otra diferente a la configurada (mirar apartado anterior) o que simplemente está el mute activado, para desactivar / activar el silencio se pueden ejecutar estos comandos.
amixer set Master mute
amixer set Master unmute
# Activa / desactiva
amixer set Master toggle
Es el equivalente en Alsamixer a pulsar sobre el volumen "Master" la letra M.
NOTA: Aunque suele denominarse Master, esto no siempre es así y depende del dispositivo en uso, se puede ejecutar sencillamente amixer para conocer el nombre correspondiente, en este caso "Speaker" y "Mic".
amixer
Simple mixer control 'Speaker',0
Capabilities: pvolume pvolume-joined pswitch pswitch-joined
Playback channels: Mono
Limits: Playback 0 - 48
Mono: Playback 48 [100%] [12.00dB] [on]
Simple mixer control 'Mic',0
Capabilities: pvolume pvolume-joined cvolume cvolume-joined pswitch pswitch-joined cswitch cswitch-joined
Playback channels: Mono
Capture channels: Mono
Limits: Playback 0 - 29 Capture 0 - 4
Mono: Playback 1 [3%] [-40.00dB] [off] Capture 2 [50%] [0.00dB] [on]
===== Tarjetas Intel: pcm_dmix.c:1108 / Couldn't open audio device: No such file or directory =====
**Errores**.
ffplay.
ALSA: Couldn't open audio device: No such file or directory
mplayer.
[AO_ALSA] alsa-lib: pcm_dmix.c:1108:(snd_pcm_dmix_open) unable to open slave
speaker-test.
ALSA lib pcm_dmix.c:1108:(snd_pcm_dmix_open) unable to open slave
**Solución**.
Test.
rmmod snd_hda_intel
modprobe snd_hda_intel index=1
# Probar el sonido, por ejemplo "speaker-test -c2"
Cargar el módulo desde el arranque: /etc/modprobe.d/default.conf
options snd_hda_intel index=1
===== Comprobar si el audio está funcionando =====
Opción 1.
speaker-test -c2
Opción 2: Se debe buscar el dispositivo de sonido, por ejemplo /dev/audio y enviarle un par de bytes para ver si se emite sonido.
cat file > /dev/audio1
**Enlaces de interés**: [[https://wiki.archlinux.org/index.php/Advanced_Linux_Sound_Architecture_(Espa%C3%B1ol)]]