PulseAudio: Перенаправление потоков аля jackd
Что мы хотим? Мы хотим подмешать к микрофонному сигналу еще что-то. Например дополнительный сигнал с другой звуковой карты для того, чтобы по скайпу с кем-то поджемить на гитаре\ударке.
В jackd это сделать довольно просто - там куча графических роутеров. Но что делать если надо подмешать сигнал в pulse?
Возьмем самый простой пример: нужно подмешать к звуку микрофона аудио из браузера.
mic -> skype <- ff
Просто так это работать не будет. Потребуется виртуальное loopback-устройство, которое будет смешивать сигналы, а после остальное по будет использовать его как микрофон.
skype ^ |mic -> loopback <- ff
1 - Создаем устройство
Создаем само устройство и задаем ему описание чтобы в панели управления бло что-то вразумительное, а не “Пустой выход”.
$ pacmd load-module module-null-sink sink_name=fx-sink 42 $ pacmd update-sink-proplist fx-sink device.description=Виртуальный_микрофон_вход $ pacmd update-source-proplist fx-sink.monitor device.description=Виртуальный_микрофон_выход
Цифру, которая выдает первая команда можно запомнить. Это идентификатор, по которому можно sink удалить.
2 - Перенаправляем микрофонный выход на это устройство
$ pactl load-module module-loopback source=alsa_input sink=fx-sink 43
Номер так же можно запомнить чтобы потом удалить ассоциацию.
Теперь в качестве устройства для ввода в панели управления (ставим как дефолтный девайс) или в программе выбираем fx-sink.monitor. Он будет называться “Виртуальный_микрофон_выход” (выше мы прописали в описании).
Чтобы посмотреть что писать в аргументе source просматриваем вывод команды
$ pactl list-sinks
Тут нам нужно найти содержимое поля name системного микрофона.
Источники:
Категории: HowTo