Ouço os passos depois de ver o inimigo

Por padrão o Windows entrega o áudio à sua placa de som em buffers de 10 milissegundos — o número é da própria Microsoft — e todo o resto se empilha em cima disso. De onde vem cada milissegundo, quais dá para remover, e por que um headset que abre o microfone piora de forma dramática.

Por padrão, o Windows move o áudio entre os aplicativos e o seu hardware de som em buffers de 10 milissegundos, e esse número é da própria Microsoft, não uma estimativa: "by default all applications in Windows 10 and later will use 10-ms buffers to render and capture audio". Todo o resto — efeitos, processamento espacial, reamostragem, um link sem fio — é somado em cima desse piso. Se os seus passos chegam depois do clarão do disparo, uma dessas adições pode ser a razão, e as seções abaixo tratam delas uma por uma.

O caminho que um som percorre, com os números da própria Microsoft

O documento Low Latency Audio da Microsoft divide o caminho de renderização em etapas e coloca números nas que ela controla. A versão curta:

EtapaQuanto custaFonte
O jogo escreve áudio num buffer——
O motor de áudio lê e processa, carregando efeitos como audio processing objects (APOs)1,3 ms no Windows 10 e posteriores, contra ~12 ms para aplicativos float e ~6 ms para aplicativos integer antes dissoMicrosoft
Cada efeito da cadeia acrescenta o seu próprio"The latency of the APOs varies based on the signal processing within the APOs" — nenhum número fixoMicrosoft
O motor escreve no buffer que o driver lê10 ms por padrão; o mínimo é declarado pelo driver de áudioMicrosoft
O driver leva para o hardware, que pode processar de novoEspecífico do dispositivo, não publicado—
Caixa de som ou foneFísica—

Dois fatos desse documento valem ser carregados por aí:

Há uma consequência interessante. A Microsoft afirma que, quando um aplicativo pede um buffer pequeno, "all applications that use the same endpoint and mode will automatically switch to that small buffer size", e o motor volta para 10 ms quando aquele aplicativo é fechado. Ou seja, um aplicativo de baixa latência já rodando na mesma saída pode encolher o buffer que o seu jogo está usando, sem o seu jogo saber.

Causa 1 — um headset Bluetooth que abre o microfone

Se você usa um headset Bluetooth e também fala nele, esta causa se aplica a você, e ela é documentada, não folclore.

O Windows toca estéreo por A2DP e usa o Hands-Free Profile para o microfone — e não consegue fazer os dois. A página Bluetooth Classic Audio da Microsoft diz que, no Windows 11, o Windows troca de A2DP para HFP quando "an application opens the input (microphone) endpoint" ou "an application creates an output (playback) stream with the category set to Communications". O HFP roda a 8 kHz (banda estreita) ou 16 kHz (banda larga), em mono, e "Windows automatically resamples audio as needed for the currently selected profile" — ou seja, um jogo tocando áudio a 48 kHz é reamostrado para baixo, para caber num link de qualidade de ligação telefônica, no instante em que o seu chat de voz abre o microfone.

É por isso que um headset soa bem nos menus e terrível numa partida: não é o mesmo caminho de áudio.

O que fazer:

  1. Use um headset com fio para jogar competitivo, ou um headset sem fio dedicado de 2,4 GHz com receptor USB próprio. Esses mantêm um único caminho e não trocam de perfil.
  2. Se você precisa mesmo ficar no Bluetooth, use um microfone separado, para que nada abra o endpoint de entrada do headset e o dispositivo continue no A2DP.
  3. Confira qual codec você realmente pegou. O Windows escolhe o primeiro codec com suporte nas duas pontas, na ordem aptX Adaptive, AAC, aptX Classic, SBC — a tabela de disponibilidade por versão do Windows está na mesma página da Microsoft.
  4. Se o dispositivo emparelha mal ou os endpoints somem por completo, isso é outro defeito: Bluetooth é o cartão de reparo para ele.

Um link Bluetooth acrescenta tempo de codificação, transmissão e decodificação nos dois sentidos, e nenhum fabricante publica um número único que valha para todos os chipsets e adaptadores — então não vamos imprimir um. O que a documentação dos fabricantes estabelece é o mecanismo e a troca de perfil descrita acima. Isso basta para tomar a decisão.

Causa 2 — uma taxa de amostragem que precisa ser convertida

Se o jogo sai a 48 kHz e o seu dispositivo está configurado para 44,1 kHz — ou o contrário — o motor reamostra, o que é trabalho e não é de graça. O Windows expõe um sinalizador que os aplicativos podem definir quando "it is important to avoid resampling in the audio engine", o que já diz que a conversão é real o bastante para a Microsoft dar aos desenvolvedores um jeito de contorná-la.

O que fazer:

  1. Clique com o botão direito no ícone do alto-falante, abra Configurações de som e depois as propriedades do seu dispositivo de saída.
  2. Encontre o formato padrão (normalmente em Avançado) e defina como 24 bits, 48000 Hz, a menos que a documentação do seu hardware diga outra coisa. Jogos e Windows trabalham os dois em 48 kHz.
  3. Ajuste o programa de configuração do próprio headset para a mesma taxa, se ele tiver um.
  4. Toque alguma coisa e confirme que continua funcionando. Se algum aplicativo específico quebrar, volte a configuração — isso é reversível e não vale perder um aplicativo por causa disso.

Causa 3 — a pilha de efeitos que você não sabia que estava ligada

Todo efeito no caminho é um audio processing object, e as palavras da própria Microsoft são que a latência deles varia conforme o processamento que têm dentro. Som espacial, surround virtual, "aprimoramentos", equalização de volume, o EQ do fabricante do headset e uma segunda saída não silenciada — todos acrescentam etapas.

O processamento espacial é o caso interessante para quem joga, porque é uma troca de verdade, não um erro: ele existe para facilitar o julgamento de direção, e é mais uma etapa na cadeia. Julgue de ouvido, não por princípio.

O que fazer:

  1. Abra as propriedades do seu dispositivo de saída e procure uma aba de aprimoramentos ou de efeitos. Desligue tudo, e escute.
  2. Desligue o som espacial temporariamente e jogue uma partida em estéreo puro. Se a direção piorou e o timing melhorou, agora você conhece a sua própria troca.
  3. Desligue o EQ e a virtualização do programa do seu headset do mesmo jeito. Um de cada vez.
  4. Religue só o que fez falta.

Não existe resposta certa aqui, e quem te disser que existe não fez o teste nos seus ouvidos com o seu headset.

Causa 4 — modo exclusivo: o que ele dá e o que ele custa

Um aplicativo pode abrir um dispositivo em modo exclusivo, e a Microsoft descreve exatamente o que isso significa: "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."

A página sobre modo exclusivo da própria Microsoft é mais direta: "Exclusive-mode streams seize the audio endpoint—all system sounds, notifications, and audio from other applications are silenced."

Essa página traz também uma ressalva moderna importante. Desde o Windows 10, o IAudioClient3 permite que um stream em modo compartilhado use períodos bem pequenos, o que "provides latency comparable to exclusive mode while preserving system sound mixing and interoperability" — ou seja, o modo exclusivo não é mais a vitória automática que era em 2010.

A caixa de seleção do Windows — Permitir a aplicativos assumir controle exclusivo deste dispositivo — não coloca nada em modo exclusivo. Ela só decide se um aplicativo que pedir tem permissão. Deixá-la ligada não custa nada; desligá-la impede que os aplicativos que querem isso consigam.

Para um jogo em que você também precisa de chat de voz, de navegador e dos sons do sistema, o modo exclusivo costuma ser a troca errada. Diga isso em voz alta antes de sair atrás dele.

O que o w0a faz aqui, e o que ele não faz

A página Fix: um cartão de reparo por coisa que pode ser alterada, cada um restaurando o padrão do Windows.
A página Fix: um cartão de reparo por coisa que pode ser alterada, cada um restaurando o padrão do Windows.

O que ele faz. A página Tweaks do Regedit tem exatamente uma entrada no grupo ÁUDIO, chamada Prioridade das threads de áudio (MMCSS). Ela define a Scheduling Category da tarefa Audio do agendador multimídia como High, em HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Multimedia\SystemProfile\Tasks\Audio. Tweaks de áudio é a página por entrada dela.

Seja preciso sobre o mecanismo. Aumentar uma prioridade de agendamento não encolhe o buffer — faz a thread de áudio ter mais chance de estar rodando quando o prazo dela chega. Numa máquina carregada isso elimina buffers atrasados e as falhas que vêm com eles, e você ouve a diferença. Numa máquina ociosa não há nada ali para ganhar.

O que ele não faz. Ele não muda o seu tamanho de buffer — só o aplicativo pode pedir isso. Ele não muda a sua taxa de amostragem. Ele não instala driver de áudio. Ele não mexe no som espacial. E ele não grava SystemResponsiveness, que aparece em toda lista de ajuste de áudio da internet: abaixo de 10 o valor se comporta como o padrão de qualquer jeito, e numa máquina já configurada em 10 nós medimos que gravar 0 piorava as coisas. A página Fix ainda consegue repará-lo para o padrão do Windows se uma ferramenta mais velha o alterou.

Existe um botão relacionado na página Otimizações — Manter o perfil do agendador de jogos na categoria Alta (MMCSS Games) — e ele merece a mesma honestidade. Ele só afeta títulos e pilhas de áudio que de fato registram uma tarefa no agendador multimídia. Jogos que nunca registram uma não são afetados por ele, e o produto não faz nenhuma alegação de taxa de quadros para esse botão exatamente por essa razão.

Se a própria pilha de áudio estiver quebrada — som cortando, um dispositivo que sumiu, uma ferramenta antiga tendo deixado o valor de agendamento em algum lugar estranho — o cartão de reparo Áudio reinicia os serviços de áudio e grava o padrão do Windows de volta. Isso é um reparo, não um tweak, e não depende de o w0a ter feito a alteração.

O que o software não consegue fazer aqui

O que sobra é uma lista curta e honesta do que é de fato seu: o transporte (com fio contra sem fio), a taxa de amostragem, a pilha de efeitos, e se a thread de áudio é agendada a tempo. Percorra esses quatro e você terá tirado tudo o que dá para tirar.

Relacionados

Das cerca de doze etapas entre um clique e um pixel que muda, três são do software; o resto é do firmware, da tela e do jogo: Como diminuir o input lag no PC: o que o software encurta e o que não

O w0a não muda nenhuma configuração do Windows até você pedir, e um tweak guarda o valor antigo antes de gravar um novo. Avise-me

Esta página ajudou?

O que faltou, ou o que não funcionou? Lemos cada uma dessas respostas.

Se esta página não resolveu, escreva para nós — diga qual artigo você leu, e nós vamos corrigi-lo.