
Я запускаю набор программ, в которых мне нужно направить звук по цепочке.
Программа 1 генерирует звук, который необходимо беззвучно направить в программу 2, а затем программа 2 создает новый источник звука, который необходимо беззвучно направить в программу 3. Наконец, программа 3 создает звук, который необходимо направить на динамики.
Может ли кто-нибудь помочь мне понять, как лучше всего этого добиться? Мне удалось направить звук без звука из программы 1 в программу 2 с помощью "sudo modprobe snd-aloop", что дает мне устройство обратной связи.
Но теперь я застрял на том, как тихо направить этот звук в программу 3. Ах да, и этого нельзя добиться с помощью каналов.
решение1
Pulseaudio или чистый ALSA? Pulseaudio самый простой: создайте фиктивную раковину
pacmd load-module module-null-sink sink_name=tmpsink
и пусть программа 1 выводит на него данные. Программа 2 читает из источника tmpsink.monitor
. И так далее. Все это можно записать в скрипт. pacmd help
показывает больше команд, которые могут быть полезны, например list-sink-inputs
, list-source-outputs
, или move-sink-input
и move-sink-output
если вы не можете указать источники и приемники для программ в командной строке.
Делать это в ALSA, наверное... весело. Прежде чем я попробую сделать это в ALSA, я попробую сделать это с помощью Джека.