Monitorear una fuente de sonido con PulseAudio

01-29-2010

Tengo un receptor FM USB el cual normalmente utilizo para grabar audio, pero no para escucharlo en vivo.  Otros aparatos de esta clase en Linux se presentan como una fuente V4L pero este en particular se presentan como una fuente de audio con ALSA.  Antes había explicado como tomar esa fuente y guardarla en un archivo para reproducirla con opción de pausa.

Hace unos minutos tenía una situación distinta: no quería guardar el audio sino solo escuchar la radio, en vivo.  Mi primer intento, aplay, no se sintió muy feliz leyendo datos de stdin.  Estaba jugando con alguna solución y de pronto pensé en PulseAudio, que de por sí está corriendo y se encarga de toda la parte de administración de sonido (en userspace, como debe ser) en la computadora.  Mi sorpresa fue que todo el proceso se reduce a:

$ pamon | paplay

Como PulseAudio es capaz de cambiar las fuentes y los sumideros de audio en forma dinámica, es posible utilizar paman para cambiar la fuente de audio en caliente sin necesidad de detener estos dos procesos.  Dado que ambos comandos aceptan que se especifique explícitamente el dispositivo a usar, también es posible tomar una fuente específica y dirigirla a una salida también específica de audio.

Y como feria, requiere muy poco tiempo de CPU: en esta computadora del orden de 6 segundos por hora, es decir 0,2%.



  « Anterior: Siguiente: »