Jackd: Измеряем задержку аудио сигнала в цепочке обработки
Не секрет, что большинство диванных музыкантов любят мериться минимальной задержкой своей звуковой карты считая, что это задержка сигнала от поступления на вход карты, прохождения через обработку и появления в мониторах.
Но что на самом деле означает эта задержка? Это лишь время, которое будет затрачено на обработку сигнала после поступления его в роутер (в моем случае в роли роутера выступает jackd).
А как измерить полную задержку вместе со временем на обработку и перевод сигнала в аналог?
jack_iodelay - утилита генерирует тестовый сигнал, который можно направить в роутере куда угодно, потом вернуть на вход этой же утилиты и посмотреть в консоли что получится.
Для измерения нам потребуется небольшой патч чтобы соединить один из входов интерфейса с выходом.
После этого запускаем утилиту, коммутируем нужный вход и выход в роутере и смотрим на результат в консоли.
Общая задержка составляет в среднем 820 фреймов. Чтобы узнать задержку в миллисекундах делим это число на частоту семплирования. (96кГц). Это 8,5мс.
Поле extra loopback latency содержит лаг, который был вызван ЦАП’ом и АЦП.
Задержка зависит и от настроек джека. От количества семплов и периодов на буфер
Для текущего теста 2 периода на буфер и 128 сэмплов. Итого 384. И ~430 фреймов - это задержка на железе. В сумме и получается ~820.
Можно пользоваться опциям -I и -O. Они отдельно позволяют посмотреть задержку по входу и выходу сигнала.
Категории: HowTo