Alsa: Softvol, control del volumen

Una de las primeras cosas que querremos hacer para controlar la reproducción de audio es ser capaces de controlar el sonido.

Si no podemos hacer esto directamente desde el hardware de la tarjeta gráfica, alsa nos ofrece un plugin que nos permite añadir controles para el volumen.

El plugin en cuestión es «softvol» y deberá añadirse en algún punto de la cadena de plugins antes de la tarjeta de sonido. Si tenemos varias aplicaciones accediendo a la tarjeta de sonido y usamos un plugin dmix tenemos dos opciones. Si colocamos un control softvol antes de dmix podremos controlar el volumen de cada aplicación por separado siempre que definamos una pila de plugins distinta para cada aplicación.

Si añadimos el plugin Softvol después del que se encarga de hacer el mix de audio, controlaremos el volumen global. La sintaxis para este plugin es la siguiente:


pcm.softvol
{
    type softvol
    slave.pcm mixer
    control.name "vol_ctl"
    control.card 0
}

El nombre que se asigna al control con control.name debe ser único. Si dos controles de volumen usan el mismo nombre serán, a la practica, solo uno.

Ahora que ya tenemos definido el control, si no esta hecho ya, necesitaremos añadir un ctl a la tarjeta de sonido con la que lo hemos asociado para ser capaces de ver dichos controles desde las aplicaciones de mixign como alsamixer o amixer. Lo haremos en el propio fichero asound.conf con la sintaxis siguiente:


ctl.volumen

{

    type hw

    card 0

}

Una vez definido podremos acceder al control mediante cualquiera de las aplicaciones de mixing que hay disponibles, por ejemplo mediante amixer.


amixer set vol_ctl 50%

Es posible que sea necesario especificar el nombre concreto del control para tener acceso a todos los valores que podamos modificar.


amixer -D volumen set vol_ctl 50%

Si el control no aparece es posible que alsa no lo haya cargado todavía. Para que lo detecte podemos forzar que vuelva a cargar la configuración mediante el comando


alsactl kill rescan

Hay que tener en cuenta la posibilidad de que ni siquiera cargando de nuevo la configuración seamos capaces de ver el control. Esto es porque en ocasiones los controles no están disponibles hasta que el pcm no se ha usado como mínimo una vez. Esto es especialmente cierto cuando usamos un pcm que no es el que esta configurado por defecto. Lo único que debemos hacer en este caso es emplear el pcm como mínimo una vez y ya seremos capaces de encontrar el control.


amixer | grep vol_ctl

 

Anterior artículo      Siguiente artículo

 

ALSA: Advanced Linux Sound Architecture

ALSA: PCM

ALSA: xrun

ALSA: Ficheros de configuración

ALSA: /proc/asound

ALSA: asound.conf

ALSA:plugins

ALSA: programming API

ALSA: Loopback virtual card

-> HOWTO: añadir control de volumen a un tarjeta de sonido

ALSA: Olvidándolo todo

Deja un comentario