Допустим, у меня есть динамик1 и динамик2 , которые имеют разные задержки ввода. В Windows есть программа под названием Voicemeeter , в которой вы можете выводить системный звук на динамик1 и динамик2 через несколько дополнительных выходов и даже добавлять задержку на каждый отдельный выход, устранение проблемы с задержкой.
В Linux с программой под названием Jack маршрутизация вывода работала, но я не мог найти способ добавить задержку к динамикам.
У кого-нибудь есть идеи?
Поскольку я пока не отвечаю требованиям, к сожалению, я не могу проголосовать за этот вопрос, потому что трудно поверить, что его почти не задавали (?!). Но это абсолютно актуально!
Наконец я ответил себе на аналогичный вопрос. Моя - как добавить задержку к звуку, проигрываемому из одного потока. Однако следующий рецепт можно масштабировать на несколько потоков.
Вот шаги, вдохновленные примерами из PulseAudio под капотом - Пример настройки :
Настройка приемника трубы:
pactl load-module module-pipe-stock file = "output.pcm"
Запустить (подготовиться к) воспроизведение с задержкой по вашему выбору (например, 10 секунд ниже):
pacat --latency-msec = 10000 output.pcm {{ 1}}
Убедитесь, что ваш входной поток (ваш динамик) настроен на воспроизведение на созданном приемнике трубы. Сделайте это на вкладке Воспроизведение в pavucontrol
.
Обратите внимание, что шаги 2 и 3 можно выполнять в любом порядке.