Enrutamiento de audio con cables de audio virtuales

Enrutamiento de audio con cables de audio virtuales

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.monitorfuente. Etcétera. Todo esto se puede programar. pacmd helpmuestra más comandos que pueden ser útiles, por ejemplo list-sink-inputs, list-source-outputs, o move-sink-inputy move-sink-outputsi 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.

información relacionada