Копипаста с сайта DrumSpeech.com
На сайте компании CEntrance выложен документ Latency Explanation в котором описан интересный опыт. На специальном оборудовании меняли задержку аудиотракта, варьируя от 0 до 50 мс. В качестве добровольцев были приглашены два музыканта: бас-гитарист и DJ-электронщик (крутящий рукой диски). При задержке 50 мс ни одни из них не смог адекватно играть под тестовый драм-луп. Стали понижать до тех пор пока кто-нибудь не переставал замечать задержку. Проведя серию раздельных опытов для статистической достоверности установили, что DJ замечает задержку начиная с 12 мс, а басист с 9 мс. Разумеется, все люди индивидуальны но этот опыт может дать некое представление о том какая задержка тракта является максимально допустимой. Теперь рассмотрим всю цепочку временных промежутков обратной связи барабанщика и его ударов в случае применения компьютера:
- Промежуток между срабатыванием триггера и фактическим началом передачи миди-сигнала по кабелю. К сожалению, у меня нет данных о величине этой задержки в модулях, а замерить время отклика без специального оборудования вряд ли удастся. Остается надеяться что в «хороших» модулях она мала и не слишком влияет на общий итог. Однако в сети встречаются ужастики о задержках некоторых клавиатур, доходящие до десятков миллисекунд! Были случаи обращения в техподдержку производителя карт E-MU с жалобой по поводу неудовлетворительной скорости их драйверов, в то время причина, как оказалось, была в самом синтезаторе. За неимением точных сведений эту задержку я учитывать не буду, но имейте ввиду что она возможна.
- Время передачи миди-сигнала по кабелю. Здесь жесткий стандарт. Интерфейс последовательный, скорость передачи данных 31,2 кбит/c. С учетом того, что логический байт равняется 10 техническим битам (1-старт, 8-данные, 1-стоп) и для передачи ноты требуется 3 байта (код сообщения, pitch, velocity), получается что задержка удара в кабеле составляет около 1 мс (31200 / 30 = 1040).
- Задержка передачи миди сообщения хост-приложению (Sonar, Cubase, etc.). Как правило для PCI-карт имеющих собственный midi-вход это очень небольшая величина не требующая учета, но для внешних устройств уже может принимать какое-то значение (от 2 мс и выше, в зависимости от переходника и настроек контроллера материнской платы).
- Задержка ASIO. Необходима для работы программных синтезаторов, таких как BFD или EZdrummer. Она зависит от выбора карты, используемых драйверов и настроек хоста. Косвенно зависит и от мощности компьютера. В профессиональных картах обычно стартует с 2 мс и это хороший выбор, однако если сэмплер требовательный а процессор слабый то может потребоваться ее увеличить до величины не приводящей к хрипам или зависаниям. Некоторые драйвера разрешают устанавливать задержку ниже 2 мс и даже ниже 1 мс, однако на практике столь низкие значения в большинстве случаев непригодны к использованию (хотя попробовать можно). USB и Firewire дают более высокую задержку, связанную с расходами на интерфейс. Эмпирически установлено что прибавляется от 2 мс и выше. Если учесть повышенную нагрузку на CPU, то реально при той же нагрузке от VSTi буфер придется сместить на один-два значения вверх (вместо 2 мс – 4 мс, вместо 4 мс – 6 мс, и т.д.) Читать далее Задержка звука и ее минимизация