Типово Windows переносить звук між програмами і твоїм звуковим залізом буферами по 10 мілісекунд, і це власне число Microsoft, а не оцінка: "by default all applications in Windows 10 and later will use 10-ms buffers to render and capture audio". Усе інше — ефекти, просторова обробка, передискретизація, бездротова ланка — додається поверх цієї нижньої межі. Якщо твої кроки приходять уже після спалаху пострілу, причина може бути в одному з цих додатків, і розділи нижче розбирають їх по одному.
Який шлях проходить звук, із власними числами Microsoft
Документ Microsoft Low Latency Audio розбиває шлях відтворення на етапи й ставить числа тим із них, якими керує сама. Коротка версія:
| Етап | Чого це коштує | Джерело |
|---|---|---|
| Гра записує звук у буфер | — | — |
| Звуковий рушій читає й обробляє його, підвантажуючи ефекти як об'єкти обробки звуку (APO) | 1,3 мс у Windows 10 і новіших — до того було ~12 мс для програм із рухомою комою і ~6 мс для цілочислових | Microsoft |
| Кожен ефект у ланцюжку додає своє | "The latency of the APOs varies based on the signal processing within the APOs" — фіксованого числа немає | Microsoft |
| Рушій пише в буфер, який читає драйвер | Типово 10 мс; мінімум оголошує сам звуковий драйвер | Microsoft |
| Драйвер переносить його в залізо, яке може обробити його ще раз | Залежить від пристрою, не публікується | — |
| Динамік або навушник | Фізика | — |
Два факти з того документа варто носити з собою:
- Ці 10 мс — не закон, а типове значення. Починаючи з Windows 10 драйвер оголошує найменший буфер, який здатен витримати, і програма може його попросити. Приклад від Microsoft: штатний драйвер HDAudio "has been updated to support buffer sizes between 128 samples (2.66ms@48kHz) and 480 samples (10ms@48kHz)".
- Попросити може лише сама програма. "If an application needs to use small buffers, then it needs to use the new AudioGraph settings or the WASAPI
IAudioClient3interface, in order to do so." Немає ні налаштування Windows, ні значення реєстру, яке змусило б гру попросити менший буфер. Жодна програма тонкого налаштування не зробить цього за тебе, зокрема й наша.
З цього випливає один цікавий наслідок. Microsoft зазначає, що коли одна програма просить малий буфер, "all applications that use the same endpoint and mode will automatically switch to that small buffer size", а щойно ця програма завершується, рушій повертається до 10 мс. Тобто програма з низькою затримкою, яка вже працює на тому самому виході, здатна зменшити буфер, яким користується твоя гра, без відома самої гри.
Причина 1 — Bluetooth-гарнітура, яка відкриває свій мікрофон
Якщо ти користуєшся Bluetooth-гарнітурою і ще й говориш у неї, ця причина стосується тебе — і вона задокументована, а не фольклорна.
Windows відтворює стерео через A2DP, а для мікрофона використовує профіль Hands-Free — і робити обидва водночас не вміє. Сторінка Microsoft Bluetooth Classic Audio каже, що на Windows 11 система перемикається з A2DP на HFP, коли "an application opens the input (microphone) endpoint" або "an application creates an output (playback) stream with the category set to Communications". HFP працює на 8 кГц (вузька смуга) або 16 кГц (широка смуга), у моно, і "Windows automatically resamples audio as needed for the currently selected profile" — тож звук гри на 48 кГц передискретизується вниз під лінію телефонної якості тієї ж миті, коли твій голосовий чат відкриває мікрофон.
Саме тому гарнітура нормально звучить у меню й жахливо в матчі: це не той самий звуковий шлях.
Що робити:
- Для змагальної гри бери дротову гарнітуру або бездротову гарнітуру 2,4 ГГц із власним USB-приймачем. Вони тримають один шлях і не перемикають профілі.
- Якщо мусиш лишитися на Bluetooth, візьми окремий мікрофон, щоб ніщо не відкривало вхідну кінцеву точку гарнітури, — тоді пристрій лишиться на A2DP.
- Перевір, який кодек ти насправді отримав. Windows бере перший кодек, який підтримують обидва боки, у порядку aptX Adaptive, AAC, aptX Classic, SBC — таблиця доступності за версіями Windows є на тій самій сторінці Microsoft.
- Якщо пристрій погано спарюється або кінцеві точки взагалі зникають, це вже інша несправність: для неї є картка відновлення Bluetooth.
Bluetooth-ланка додає час кодування, передавання й декодування в обидва боки, і жоден виробник не публікує одного числа, яке було б справедливим для всіх чипсетів і адаптерів, — тож і ми його не друкуватимемо. Що документація виробників таки встановлює, так це механізм і те перемикання профілю вище. Для рішення цього досить.
Причина 2 — частота дискретизації, яку доводиться перетворювати
Якщо гра виводить 48 кГц, а твій пристрій налаштований на 44,1 кГц — або навпаки, — рушій передискретизує, а це робота, і безкоштовною вона не буває. Windows дає програмам прапорець, який вони можуть виставити тоді, коли "it is important to avoid resampling in the audio engine", — а це вже каже тобі, що перетворення достатньо реальне, щоб Microsoft дала розробникам спосіб його обійти.
Що робити:
- Клацни правою кнопкою на значку динаміка, відкрий Параметри звуку, а тоді властивості свого пристрою виводу.
- Знайди формат за замовчуванням (зазвичай у розділі Додатково) і постав 24 біт, 48000 Гц, якщо документація твого заліза не каже інакше. І ігри, і Windows працюють у 48 кГц.
- Якщо у твоєї гарнітури є власна програма налаштування, постав у ній ту саму частоту.
- Увімкни щось і переконайся, що воно й далі працює. Якщо зламалася якась конкретна програма, поверни налаштування назад — це оборотно і не варте того, щоб втратити програму.
Причина 3 — стек ефектів, про який ти не знав, що він увімкнений
Кожен ефект на цьому шляху — це об'єкт обробки звуку, і власне формулювання Microsoft каже, що їхня затримка змінюється залежно від обробки всередині них. Просторовий звук, віртуальний об'ємний звук, «покращення», вирівнювання гучності, еквалайзер від виробника гарнітури і незаглушений другий вихід — усе це додає етапи.
Просторова обробка тут найцікавіша для гравця, бо це справжній обмін, а не помилка: вона існує для того, щоб було легше визначати напрямок, — і водночас вона є ще одним етапом у ланцюжку. Суди про неї на слух, а не з принципу.
Що робити:
- Відкрий властивості свого пристрою виводу й пошукай вкладку покращень або ефектів. Вимкни там усе й послухай.
- Тимчасово вимкни просторовий звук і зіграй раунд на звичайному стерео. Якщо напрямок став гіршим, а тайминг кращим — тепер ти знаєш свій власний обмін.
- Так само вимкни еквалайзер і віртуалізацію в програмі своєї гарнітури. По одному за раз.
- Увімкни назад лише те, чого тобі забракло.
Правильної відповіді тут немає, а той, хто каже тобі, що вона є, не проганяв цього тесту на твоїх вухах із твоєю гарнітурою.
Причина 4 — монопольний режим: що він дає і чого коштує
Програма може відкрити пристрій у монопольному режимі, і Microsoft описує рівно те, що це означає: "the data bypasses the audio engine and goes directly from the application to the buffer where the driver reads it from. However, if an application opens an endpoint in exclusive mode, then there's no other application that can use that endpoint to render or capture audio."
Власна сторінка Microsoft про монопольний режим формулює різкіше: "Exclusive-mode streams seize the audio endpoint—all system sounds, notifications, and audio from other applications are silenced."
На тій же сторінці є важливе сучасне застереження. Починаючи з Windows 10, IAudioClient3 дозволяє потоку в спільному режимі працювати з дуже малими періодами, що "provides latency comparable to exclusive mode while preserving system sound mixing and interoperability" — тож монопольний режим уже не той автоматичний виграш, яким він був у 2010 році.
Галочка у Windows — Дозволити застосункам монопольно керувати цим пристроєм — сама нічого в монопольний режим не переводить. Вона лише вирішує, чи буде це дозволено програмі, яка попросить. Лишити її ввімкненою не коштує нічого; вимкнути її означає не дати тим програмам, яким це потрібно, цього отримати.
Для гри, у якій тобі потрібні ще й голосовий чат, браузер і системні звуки, монопольний режим — зазвичай неправильний обмін. Скажи це вголос, перш ніж вирушати його шукати.
Що w0a тут робить і чого не робить

Що робить. На сторінці Твіки реєстру у групі ЗВУК є рівно один запис — Пріоритет аудіопотоків (MMCSS). Він ставить Scheduling Category завдання Audio мультимедійного планувальника в High, під HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Multimedia\SystemProfile\Tasks\Audio. Твіки звуку — це сторінка з розбором саме цього запису.
Будьмо точні щодо механізму. Підняття пріоритету планування не зменшує буфер — воно підвищує ймовірність того, що звуковий потік працюватиме тоді, коли настане його дедлайн. На завантаженій машині це прибирає запізнілі буфери й тріски, які з ними приходять, а це ти чуєш. На незавантаженій машині вигравати тут нема чого.
Чого не робить. Він не змінює розміру твого буфера — попросити про це може лише сама програма. Він не змінює частоти дискретизації. Він не встановлює звукового драйвера. Він не чіпає просторового звуку. І він не пише SystemResponsiveness, яке є в кожному інтернетному списку налаштувань звуку: нижче за 10 це значення все одно поводиться як типове, а на машині, де вже стоїть 10, ми виміряли, що запис 0 робить гірше. Сторінка Fix усе одно може повернути його до стандартного значення Windows, якщо його змінив давніший інструмент.
На сторінці Оптимізації є споріднений перемикач — Тримати профіль планувальника ігор у категорії High (MMCSS Games) — і він заслуговує на таку саму чесність. Він впливає лише на ті ігри та звукові стеки, які справді реєструють завдання мультимедійного планувальника. На ігри, які його ніколи не реєструють, він не впливає, і саме тому продукт не робить для цього перемикача жодної заяви про частоту кадрів.
Якщо зламався сам звуковий стек — звук пропадає, пристрій зник, давній інструмент лишив значення планування десь у дивному місці — картка відновлення Звук перезапускає звукові служби й записує назад стандартне значення Windows. Це відновлення, а не твік, і воно не залежить від того, чи робив цю зміну саме w0a.
Чого програма тут не може
- Вона не може змусити гру попросити менший буфер. Це рішення програми, у коді самої програми.
- Вона не може прибрати час кодування й декодування на бездротовій ланці.
- Вона не може завадити Windows перемкнути Bluetooth-гарнітуру на профіль hands-free, коли щось відкриває її мікрофон, — така поведінка задумана і задокументована.
- Вона не може прибрати мінімального розміру буфера, оголошеного драйвером. Це те, на що здатне твоє залізо.
Лишається короткий чесний список того, що справді твоє: транспорт (дріт проти бездроту), частота дискретизації, стек ефектів і те, чи встигає звуковий потік потрапити в розклад вчасно. Пройди ці чотири пункти — і ти прибрав усе, що можна прибрати.
Пов'язане
- Твіки звуку
- Звук
- Bluetooth
- Як зменшити input lag: що програма може скоротити, а що ні
- Чому мій приціл запізнюється
Із приблизно дванадцяти етапів між кліком і зміною пікселя програмі належать три, а решта належить прошивці, дисплею і грі: Як зменшити input lag: що програма може скоротити, а що ні
Ця сторінка допомогла?
Чого бракувало або що не спрацювало? Ми читаємо кожну таку відповідь.
Якщо ця сторінка не розв'язала проблему, напиши нам — скажи, яку статтю ти читав, і ми виправимо статтю.