Всем доброго времени суток.
Столкнулся с нестандартной задачей: нужно устранить задержку в WDM устройствах. Имеется караоке-программа, которая исключительно использует WDM input устройства в Windows и сама выбирает их. У меня нет возможности изменить аудиопроцесс, так как программа всегда выбирает WDM input device. Проблема в том, что все WDM устройства, которые я подключаю к ноутбуку, приводят к слишком большой задержке. Например, Focusrite 2i2 аналоговый вход через WDM имеет задержку в 160 миллисекунд, а подключение микрофона к встроенной аудиокарте ноутбука — 100 мс. Требуется задержка около 30 мс, и только через WDM input, так как программа не принимает другое.
Для сравнения, реальная задержка Focusrite в FL Studio через драйвер Focusrite Asio составляет около 3 мс. Однако перенаправить I/O из FL Studio в Windows при использовании Focusrite Asio невозможно, так как можно использовать только I/O самой аудиокарты.
Я пробовал различные варианты с минимальным buffer size и настройками задержки:
FL Studio ASIO4ALL: ASIO4ALL input = Focusrite, ASIO4ALL output = Virtual Audio Cable input. Внутри Windows Virtual Audio Cable input перенаправляет в Virtual Audio Cable output. Этот вариант не сработал из-за высокой задержки на входе в сам ASIO4ALL из Focusrite analog input. То есть, задержка возникала на input стадии в FL Studio ASIO4ALL даже на минимальных настройках буфера, так как ASIO4ALL изначально берет input из WDM focusrite.
Voicemeeter: через микшер с драйвером Focusrite Asio я смог скопировать стрим внутри аудиокарты в виртуальный стрим в WDM устройство. Однако, если в кольце (analog input -> analog output) через микшер с использованием Focusrite Asio задержки не было, то скопированный виртуальный стрим в Windows имел такую же задержку, как если бы я просто использовал WDM Focusrite input.
ASIO Bridge VB HI-FI Cable: виртуальный кабель, который позволяет использовать Focusrite Asio. Input получаю от Focusrite, а virtual output в WDM — та же самая задержка.
В целом, я пытаюсь найти хитрое решение этой проблемы, но пока безуспешно. Обращаюсь за помощью. Может, у кого-то есть идеи?
Столкнулся с нестандартной задачей: нужно устранить задержку в WDM устройствах. Имеется караоке-программа, которая исключительно использует WDM input устройства в Windows и сама выбирает их. У меня нет возможности изменить аудиопроцесс, так как программа всегда выбирает WDM input device. Проблема в том, что все WDM устройства, которые я подключаю к ноутбуку, приводят к слишком большой задержке. Например, Focusrite 2i2 аналоговый вход через WDM имеет задержку в 160 миллисекунд, а подключение микрофона к встроенной аудиокарте ноутбука — 100 мс. Требуется задержка около 30 мс, и только через WDM input, так как программа не принимает другое.
Для сравнения, реальная задержка Focusrite в FL Studio через драйвер Focusrite Asio составляет около 3 мс. Однако перенаправить I/O из FL Studio в Windows при использовании Focusrite Asio невозможно, так как можно использовать только I/O самой аудиокарты.
Я пробовал различные варианты с минимальным buffer size и настройками задержки:
FL Studio ASIO4ALL: ASIO4ALL input = Focusrite, ASIO4ALL output = Virtual Audio Cable input. Внутри Windows Virtual Audio Cable input перенаправляет в Virtual Audio Cable output. Этот вариант не сработал из-за высокой задержки на входе в сам ASIO4ALL из Focusrite analog input. То есть, задержка возникала на input стадии в FL Studio ASIO4ALL даже на минимальных настройках буфера, так как ASIO4ALL изначально берет input из WDM focusrite.
Voicemeeter: через микшер с драйвером Focusrite Asio я смог скопировать стрим внутри аудиокарты в виртуальный стрим в WDM устройство. Однако, если в кольце (analog input -> analog output) через микшер с использованием Focusrite Asio задержки не было, то скопированный виртуальный стрим в Windows имел такую же задержку, как если бы я просто использовал WDM Focusrite input.
ASIO Bridge VB HI-FI Cable: виртуальный кабель, который позволяет использовать Focusrite Asio. Input получаю от Focusrite, а virtual output в WDM — та же самая задержка.
В целом, я пытаюсь найти хитрое решение этой проблемы, но пока безуспешно. Обращаюсь за помощью. Может, у кого-то есть идеи?