Słyszę kroki później, niż je widzę

Windows domyślnie podaje dźwięk do twojego sprzętu w 10-milisekundowych buforach — to własna liczba Microsoftu — a wszystko inne dokłada się na wierzch. Skąd bierze się każda milisekunda, które da się usunąć i dlaczego zestaw słuchawkowy otwierający mikrofon robi się dramatycznie gorszy.

Domyślnie Windows przenosi dźwięk między aplikacjami a twoim sprzętem audio w 10-milisekundowych buforach i jest to własna liczba Microsoftu, a nie szacunek: "by default all applications in Windows 10 and later will use 10-ms buffers to render and capture audio". Wszystko inne — efekty, przetwarzanie przestrzenne, przepróbkowanie, łącze bezprzewodowe — dokłada się ponad tę granicę. Jeśli twoje kroki docierają po błysku z lufy, powodem może być któryś z tych dodatków, a sekcje poniżej omawiają je jeden po drugim.

Droga, którą pokonuje dźwięk, z liczbami samego Microsoftu

Dokument Low Latency Audio Microsoftu rozbija ścieżkę odtwarzania na etapy i przypisuje liczby tym, które kontroluje. W skrócie:

EtapIle kosztujeŹródło
Gra zapisuje dźwięk do bufora——
Silnik audio czyta go i przetwarza, ładując efekty jako obiekty przetwarzania dźwięku (APO)1,3 ms w Windows 10 i nowszych, wcześniej ~12 ms dla aplikacji zmiennoprzecinkowych i ~6 ms dla całkowitoliczbowychMicrosoft
Każdy efekt w łańcuchu dokłada swoje"The latency of the APOs varies based on the signal processing within the APOs" — bez stałej liczbyMicrosoft
Silnik zapisuje do bufora, z którego czyta sterownikdomyślnie 10 ms; minimum deklaruje sterownik audioMicrosoft
Sterownik przenosi to do sprzętu, który może przetworzyć to jeszcze razzależne od urządzenia, niepublikowane—
Głośnik albo słuchawkafizyka—

Dwa fakty z tego dokumentu warto nosić przy sobie:

Jest z tego jedna ciekawa konsekwencja. Microsoft podaje, że gdy jedna aplikacja poprosi o mały bufor, "all applications that use the same endpoint and mode will automatically switch to that small buffer size", a silnik wraca do 10 ms, gdy ta aplikacja się zamknie. Czyli aplikacja o niskim opóźnieniu, już działająca na tym samym wyjściu, potrafi zmniejszyć bufor używany przez twoją grę, bez wiedzy gry.

Przyczyna 1 — zestaw słuchawkowy Bluetooth, który otwiera mikrofon

Jeśli używasz zestawu słuchawkowego Bluetooth i jednocześnie na nim rozmawiasz, ta przyczyna dotyczy ciebie — i jest udokumentowana, a nie zasłyszana.

Windows odtwarza stereo przez A2DP, a do mikrofonu używa profilu Hands-Free — i nie potrafi obu naraz. Strona Microsoftu Bluetooth Classic Audio mówi, że na Windows 11 system przełącza się z A2DP na HFP, gdy "an application opens the input (microphone) endpoint" albo "an application creates an output (playback) stream with the category set to Communications". HFP działa na 8 kHz (wąskopasmowo) albo 16 kHz (szerokopasmowo), w mono, a "Windows automatically resamples audio as needed for the currently selected profile" — więc gra grająca dźwięk w 48 kHz jest przepróbkowywana w dół do łącza klasy rozmowy telefonicznej w chwili, gdy twój czat głosowy otwiera mikrofon.

Dlatego zestaw słuchawkowy brzmi dobrze w menu i fatalnie w meczu: to nie jest ta sama ścieżka dźwięku.

Co zrobić:

  1. Do gry rywalizacyjnej używaj zestawu przewodowego albo dedykowanego bezprzewodowego na 2,4 GHz z własnym odbiornikiem USB. Te trzymają jedną ścieżkę i nie przełączają profili.
  2. Jeśli musisz zostać na Bluetooth, użyj osobnego mikrofonu, żeby nic nie otwierało wejścia zestawu — wtedy urządzenie zostaje na A2DP.
  3. Sprawdź, jaki kodek faktycznie dostałeś. Windows wybiera pierwszy kodek obsługiwany po obu stronach, w kolejności aptX Adaptive, AAC, aptX Classic, SBC — tabela dostępności według wersji Windows jest na tej samej stronie Microsoftu.
  4. Jeśli urządzenie źle się paruje albo punkty końcowe znikają zupełnie, to inna usterka: Bluetooth jest kartą naprawczą do niej.

Łącze Bluetooth dokłada czas kodowania, transmisji i dekodowania w obie strony, a żaden producent nie publikuje jednej liczby ważnej dla wszystkich układów i adapterów — więc jej tu nie wydrukujemy. To, co dokumentacja producentów faktycznie ustala, to mechanizm i opisane wyżej przełączenie profilu. To wystarczy, żeby podjąć decyzję.

Przyczyna 2 — częstotliwość próbkowania, którą trzeba przeliczyć

Jeśli gra wyprowadza 48 kHz, a twoje urządzenie jest ustawione na 44,1 kHz — albo odwrotnie — silnik przepróbkowuje, a to jest praca i nie jest darmowa. Windows wystawia flagę, którą aplikacje mogą ustawić, gdy "it is important to avoid resampling in the audio engine", co mówi ci, że ta konwersja jest na tyle realna, że Microsoft dał programistom drogę wokół niej.

Co zrobić:

  1. Kliknij prawym przyciskiem ikonę głośnika, otwórz Ustawienia dźwięku, a potem właściwości swojego urządzenia wyjściowego.
  2. Znajdź format domyślny (zwykle w zakładce Zaawansowane) i ustaw go na 24 bit, 48000 Hz, chyba że dokumentacja twojego sprzętu mówi inaczej. Gry i Windows pracują w 48 kHz.
  3. Ustaw oprogramowanie konfiguracyjne swojego zestawu słuchawkowego na tę samą częstotliwość, jeśli je ma.
  4. Odtwórz coś i potwierdź, że nadal działa. Jeśli jakaś konkretna aplikacja się psuje, cofnij ustawienie — to jest odwracalne i nie warto tracić przez to aplikacji.

Przyczyna 3 — stos efektów, o którym nie wiedziałeś, że jest włączony

Każdy efekt na ścieżce jest obiektem przetwarzania dźwięku, a własne słowa Microsoftu mówią, że ich opóźnienie zmienia się wraz z przetwarzaniem w środku. Dźwięk przestrzenny, wirtualne surround, „ulepszenia”, wyrównywanie głośności, korektor od producenta zestawu słuchawkowego i niewyciszone drugie wyjście — każde z nich dokłada etap.

Przetwarzanie przestrzenne jest tu ciekawym przypadkiem dla graczy, bo to realna wymiana, a nie pomyłka: istnieje po to, żeby łatwiej było ocenić kierunek, i jest kolejnym etapem w łańcuchu. Oceń je uchem, a nie z zasady.

Co zrobić:

  1. Otwórz właściwości swojego urządzenia wyjściowego i poszukaj zakładki z ulepszeniami albo efektami. Wyłącz wszystko i posłuchaj.
  2. Wyłącz na chwilę dźwięk przestrzenny i zagraj rundę na zwykłym stereo. Jeśli kierunek się pogorszył, a czas poprawił, znasz już swoją własną wymianę.
  3. Tak samo wyłącz korektor i wirtualizację w oprogramowaniu swojego zestawu. Po jednej rzeczy naraz.
  4. Włącz z powrotem tylko to, czego ci brakowało.

Nie ma tu poprawnej odpowiedzi, a każdy, kto mówi ci, że jest, nie przeprowadził tego testu na twoich uszach i twoich słuchawkach.

Przyczyna 4 — tryb wyłączny: co daje i ile kosztuje

Aplikacja może otworzyć urządzenie w trybie wyłącznym, a Microsoft opisuje dokładnie, co to znaczy: "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."

Własna strona Microsoftu o trybie wyłącznym jest jeszcze bardziej dosadna: "Exclusive-mode streams seize the audio endpoint—all system sounds, notifications, and audio from other applications are silenced."

Ta sama strona niesie ważne współczesne zastrzeżenie. Od Windows 10 IAudioClient3 pozwala strumieniowi w trybie współdzielonym używać bardzo krótkich okresów, co "provides latency comparable to exclusive mode while preserving system sound mixing and interoperability" — więc tryb wyłączny nie jest automatyczną wygraną, jaką był w 2010 roku.

Pole wyboru w Windows — Zezwalaj aplikacjom na przejmowanie wyłącznej kontroli nad tym urządzeniem — samo z siebie niczego w tryb wyłączny nie wprowadza. Decyduje tylko o tym, czy aplikacja, która o to poprosi, dostanie zgodę. Zostawienie go włączonego nic nie kosztuje; wyłączenie go odbiera możliwość tym aplikacjom, które tego chcą.

Dla gry, przy której potrzebujesz też czatu głosowego, przeglądarki i dźwięków systemowych, tryb wyłączny jest zwykle złą wymianą. Powiedz to na głos, zanim zaczniesz go szukać.

Co w0a tu robi, a czego nie

Strona Fix: jedna karta naprawcza na każdą rzecz, którą można zmienić, każda przywraca domyślną wartość Windows.
Strona Fix: jedna karta naprawcza na każdą rzecz, którą można zmienić, każda przywraca domyślną wartość Windows.

Co robi. Strona Tweaki Regedit ma w swojej grupie DŹWIĘK dokładnie jeden wpis, nazwany Priorytet wątków audio (MMCSS). Ustawia Scheduling Category zadania Audio w harmonogramie multimediów na High, w HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Multimedia\SystemProfile\Tasks\Audio. Tweaki audio to strona opisująca ten wpis z osobna.

Trzeba być precyzyjnym co do mechanizmu. Podniesienie priorytetu planowania nie zmniejsza bufora — sprawia, że wątek audio z większym prawdopodobieństwem będzie działał, gdy nadejdzie jego termin. Na obciążonej maszynie usuwa to spóźnione bufory i towarzyszące im zakłócenia, które słychać. Na maszynie bezczynnej nie ma tam nic do wygrania.

Czego nie robi. Nie zmienia twojego rozmiaru bufora — poprosić o to może tylko aplikacja. Nie zmienia częstotliwości próbkowania. Nie instaluje sterownika audio. Nie dotyka dźwięku przestrzennego. I nie zapisuje SystemResponsiveness, które pojawia się na każdej internetowej liście do strojenia dźwięku: poniżej 10 ta wartość zachowuje się i tak jak domyślna, a na maszynie już ustawionej na 10 zmierzyliśmy, że zapisanie 0 pogarsza sprawę. Strona Fix i tak potrafi naprawić ją do domyślnej wartości Windows, jeśli zmieniło ją starsze narzędzie.

Na stronie Optymalizacje jest pokrewny przełącznik — Trzymaj profil harmonogramu gier w kategorii High (MMCSS Games) — i zasługuje na tę samą uczciwość. Dotyczy wyłącznie tytułów i stosów audio, które faktycznie rejestrują zadanie w harmonogramie multimediów. Gry, które nigdy go nie rejestrują, pozostają przez niego nietknięte, a produkt właśnie dlatego nie stawia dla tego przełącznika żadnej tezy o liczbie klatek.

Jeśli sam stos audio jest zepsuty — dźwięk się urywa, urządzenie zniknęło, starsze narzędzie zostawiło wartość planowania w dziwnym miejscu — karta naprawcza Dźwięk restartuje usługi audio i zapisuje z powrotem domyślną wartość Windows. To naprawa, a nie tweak, i nie zależy od tego, czy zmianę wprowadziło w0a.

Czego oprogramowanie tu nie potrafi

Zostaje krótka, uczciwa lista tego, co naprawdę należy do ciebie: transport (przewód kontra bezprzewód), częstotliwość próbkowania, stos efektów i to, czy wątek audio zostaje zaplanowany na czas. Przejdź przez te cztery rzeczy, a wyjmiesz wszystko, co da się wyjąć.

Powiązane

Z jakichś dwunastu etapów między kliknięciem a zmianą piksela trzy należą do oprogramowania, a resztę mają firmware, ekran i gra: Jak zmniejszyć input lag: co program może skrócić, a czego nie

w0a nie zmienia żadnego ustawienia Windows, dopóki o to nie poprosisz, a tweak zapamiętuje starą wartość, zanim zapisze nową. Powiadom mnie

Czy ta strona pomogła?

Czego zabrakło albo co nie zadziałało? Czytamy każdą taką wiadomość.

Jeśli ta strona nie rozwiązała problemu, napisz do nas — podaj, który artykuł czytasz, a poprawimy ten artykuł.