Archivos por Etiqueta: volumen
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: Ficheros de configuración