Воткнул гитару в компьютер, поставил усилитель-плагин — и играть невозможно: звук приходит позже, чем дёрнул струну. Формулируют это по-разному, а беда одна:
«Задержка неадекватно большая — от момента, когда взял ноту, до звука.»
«Поставил буфер поменьше — начался треск. Поставил побольше — играть нельзя.»
Дальше обычно советуют «поставь ASIO4ALL» и на этом расходятся. Совет верный наполовину, и от того, какая это половина, зависит, получится у вас или нет.
Сколько задержки допустимо
Цифра, которую стоит запомнить: десять миллисекунд.
Меньше — играть можно, и большинство людей вообще ничего не замечает. Больше — начинает мешать, причём на перегруженном звуке сильнее, чем на чистом: у перегруза резкая атака, и рассогласование слышно отчётливее.
Двадцать-тридцать миллисекунд — это уже невозможно. Именно столько даёт обычный звук Windows, и именно поэтому «просто воткнуть и играть» не работает.
Для сравнения: звук летит по воздуху примерно метр за три миллисекунды. Десять миллисекунд — это как стоять в трёх метрах от комбика. Привычное расстояние, и потому незаметное.
Из чего она складывается
Задержка — это не одно число, а сумма пяти. Понимать это важно: люди крутят одну ручку и удивляются, что не помогает.
| Звено | Сколько |
|---|---|
| Преобразование звука в цифру | ~0,5–1 мс |
| Буфер входа | зависит от размера |
| Обработка (плагины) | доли миллисекунды, но бывают исключения |
| Буфер выхода | столько же, сколько вход |
| Преобразование обратно в звук | ~0,5–1 мс |
Плюс передача по USB, если карта внешняя.
Ручкой вы управляете только буфером. Остальное задано железом и не меняется. Отсюда следует неприятное: у дешёвой карты есть предел, ниже которого не опуститься, сколько ни уменьшай буфер.
Про исключение в строке «обработка»
Один плагин в цепочке может добавить десятки миллисекунд — и это самая обидная причина, потому что о ней не думают.
Так делают обработки с «заглядыванием вперёд»: линейно-фазовые эквалайзеры, многополосные компрессоры, некоторые лимитеры. Им нужно знать, что будет дальше, поэтому они придерживают звук.
На форумах разбирали случай: человек жаловался на 20–30 мс в одной программе при нормальных пяти в другой, с теми же настройками. Виноват оказался единственный компрессор в цепочке.
Проверяется просто: отключите все плагины и послушайте. Стало нормально — включайте по одному, пока не найдёте виновника.
Что делать по порядку
1. Убедиться, что звук идёт через ASIO
ASIO — это способ разговора программы со звуковой картой в обход обычного звукового тракта Windows. Тракт Windows делался, чтобы ничего не щёлкало при просмотре кино, и ради этого он копит звук в больших буферах. Для игры это смертельно.
Без ASIO дальше можно не читать: остальные настройки ничего не спасут.
2. Понять, какой у вас ASIO
Их два вида, и разница между ними принципиальна.
Родной драйвер карты. Пишется производителем под конкретное железо. Focusrite, Audient, Steinberg, Behringer, Arturia — у всех есть. Если карта у вас есть, скачайте драйвер с сайта производителя, а не пользуйтесь ничем другим.
ASIO4ALL. Это не драйвер карты, а прослойка: он изображает ASIO поверх обычного звука Windows. Нужен тем, у кого внешней карты нет вовсе и гитара воткнута во встроенный вход.
ASIO4ALL — честная и полезная программа, но чудес она не делает. Задержка через неё будет заметно больше, чем через родной драйвер, потому что под ней всё тот же тракт Windows. Если вы упёрлись в предел с ASIO4ALL — это предел не настроек, а подхода.
3. Подобрать размер буфера
Буфер — это порция звука, которую программа обрабатывает за раз. Меряется в кадрах: 64, 128, 256, 512.
Меньше буфер — меньше задержка и выше нагрузка. Больше буфер — наоборот. Всё.
Порядок подбора:
- Начните со 128. Это обычно работает у всех.
- Поиграйте пару минут. Если щелчков нет — попробуйте 64.
- Появились щелчки или треск — вернитесь на ступень назад. Это ваш предел.
Не гонитесь за минимальным числом. Разница между 64 и 128 — примерно полторы миллисекунды, то есть полметра расстояния до комбика. Разница между «играет ровно» и «щёлкает» — гораздо больше.
4. Не опускаться ниже, чем имеет смысл
Вот измерение, которое многое объясняет. Замер физической петлёй — выход карты соединён со входом кабелем, программа выпускает щелчок и ждёт его обратно:
| Буфер | Задержка целиком | Выигрыш |
|---|---|---|
| 64 кадра | 7,35 мс | — |
| 32 кадра | 6,24 мс | −1,11 мс |
| 16 кадров | 6,15 мс | −0,09 мс |
С 64 до 32 выигрыш настоящий. С 32 до 16 — девять сотых миллисекунды, то есть ничего: дальше время съедают уже не буферы, а передача по USB и сами преобразователи, а они не сокращаются.
Зато нагрузка при вдвое меньшем буфере ровно вдвое выше. То есть ниже определённого предела вы платите риском срывов, не получая взамен ничего.
Предел этот у каждой карты свой, но порядок такой: 32–64 кадра для приличной внешней карты, 128–256 для ASIO4ALL на встроенном звуке.
5. Не верить числу, которое показывает драйвер
Драйверы сообщают свою задержку, и почти все занижают: они считают буферы, но не считают собственно преобразователи.
На той же карте драйвер обещал 6,44 мс, а замер петлёй дал 7,35. Разница почти в миллисекунду — и это нормальная, честная разница, а не поломка.
Настоящее число даёт только замер петлёй. Если вам важна точность — соедините выход со входом кабелем и померьте.
Что здесь делает StemPlayer
Программа работает через ASIO напрямую: выбор драйвера, размера буфера и пары выходов прямо в окне.
Показывает счётчик перегрузок. Это главное, чего не хватает при подборе буфера: обычно человек слышит щелчок и гадает, показалось или нет. Здесь видно числом — не ноль, значит движок не успевает, берите буфер побольше.
Умеет померить настоящую задержку петлёй — той самой, из таблицы выше.
Замер на Audient iD4: 6,2 мс при буфере 32 кадра. Это и есть то, ради чего всё затевается.
И главное, ради чего программа вообще существует: гитара идёт не сама по себе, а вместе с песней в одном микшере — со своей громкостью, замедлением и петлёй.
Чего программа не делает
Не заменяет драйвер вашей карты. Родной ASIO-драйвер всё равно нужен, его берут у производителя.
Не работает без ASIO вообще — в части живой гитары. Всё остальное (воспроизведение песни, табы, замедление) работает на любом компьютере, но гитару без ASIO не пустить.
Не убирает задержку, которую добавляют ваши плагины. Если в цепочке стоит обработка с заглядыванием вперёд, её задержку не уберёт никто.
Читайте дальше
- Нет звука через ASIO4ALL или Guitar Rig — если дело не в задержке, а в том, что звука нет вовсе.
- Купил звуковую карту для гитары — что дальше — с чего начинать, если карта только что появилась.
- Играть под минус и слышать себя — зачем всё это в итоге нужно.