
Estoy ejecutando un conjunto de programas en los que necesito enrutar el audio en cadena.
El programa 1 genera audio que debe enrutarse silenciosamente al programa 2, y luego el programa 2 crea una nueva fuente de audio que debe enrutarse silenciosamente al programa 3. Finalmente, el programa 3 crea audio que debe ir a los parlantes.
¿Alguien puede ayudarme a descubrir cuál es la mejor manera de lograrlo? Logré enrutar audio silenciosamente desde el programa 1 al programa 2 usando "sudo modprobe snd-aloop", que me proporciona un dispositivo de bucle invertido.
Pero ahora estoy atascado en cómo encaminar silenciosamente ese audio al programa 3. Ah, y esto no se puede lograr mediante tuberías.
Respuesta1
¿Pulseaudio o ALSA puro? Pulseaudio es más fácil: crea un disipador ficticio
pacmd load-module module-null-sink sink_name=tmpsink
y deje que el programa 1 le envíe. El programa 2 lee de la tmpsink.monitor
fuente. Etcétera. Todo esto se puede programar. pacmd help
muestra más comandos que pueden ser útiles, por ejemplo list-sink-inputs
, list-source-outputs
, o move-sink-input
y move-sink-output
si no puede especificar fuentes y receptores para los programas en la línea de comandos.
Hacer eso en ALSA es probablemente... divertido. Antes de intentar hacer eso en ALSA, intentaba hacerlo usando Jack.