Pulseaudio ou ALSA puro? Pulseaudio é mais fácil: criar uma pia fictícia
pacmd load-module module-null-sink sink_name=tmpsink
e deixe o programa 1 sair para ele. O programa 2 lê a partir da fonte tmpsink.monitor . E assim por diante. Tudo isso pode ser roteirizado. pacmd help mostra mais comandos que podem ser úteis, por ex. list-sink-inputs , list-source-outputs ou move-sink-input e move-sink-output se você não puder especificar fontes e coletores para os programas na linha de comando.
Fazer isso na ALSA é provavelmente ... divertido. Antes de tentar fazer isso na ALSA, eu tentava fazer isso usando o Jack.