Pesquisa

Qual a precisão do timing de beatmaps com IA? ManiaGAI vs Mapperatorinator

Fizemos o timing automático de 2.501 músicas ranqueadas de osu! mania e comparamos com o dos mappers: ManiaGAI v2, v1 e Mapperatorinator, em quatro tolerâncias.

Os jogadores perdoam muita coisa em um beatmap. Timing, não. Um chart com as notas alguns milissegundos fora da batida parece errado desde o primeiro compasso, por melhores que sejam os padrões — então, antes que um mapper de IA possa colocar uma única nota, ele precisa responder a duas perguntas que um mapper humano responde de ouvido: qual é o BPM da música e onde exatamente cai a batida?

Este post é sobre o quanto o ManiaGAI responde bem a elas. Rodamos a detecção de timing dele em todas as músicas ranqueadas de osu! mania que conseguimos avaliar e comparamos o resultado com o timing escrito pelo mapper — ao lado do ManiaGAI v1 e do Mapperatorinator, de código aberto. Resumindo: o ManiaGAI v2 acerta mais músicas na tolerância que os jogadores realmente percebem, o Mapperatorinator é mais preciso na tolerância mais apertada, e o benchmark deixa perguntas reais em aberto. Os detalhes estão abaixo.

O que foi medido

O timing automático precisa produzir o que um mapper produz no editor: um BPM e um offset, escritos como linhas de timing. Para uma música com um único tempo constante, isso é uma linha. Por isso, o conjunto de teste é formado por todos os mapsets de osu! mania ranqueados ou aprovados cujo mapper fez o timing da música com exatamente uma linha — 2.507 mapsets, depois de remover pacotes de rate edits e mapsets duplicados. Os três métodos produziram um resultado em 2.501 deles, e todos os números abaixo se referem a essas 2.501 músicas.

Os três métodos:

  • ManiaGAI v2 — a detecção de timing por trás do ManiaGAI desde a versão 2 (1º de outubro de 2026): ativações de batida do modelo de código aberto Beat This, transformadas em uma grade de timing pelo nosso próprio método de ajuste. O benchmark rodou uma configuração próxima, mas não idêntica, à que foi lançada.
  • ManiaGAI v1 — o detector que o site usava antes da versão 2.
  • Mapperatorinator — o modo de timing do mapper de IA de código aberto do OliBomby, rodado como foi lançado. É a única referência de timing de código aberto que comparamos.

Uma música conta como correta quando o BPM detectado bate com o do mapper — metade ou o dobro do tempo são aceitos, já que uma música com timing em 85 ou 170 BPM pode ser mapeada de forma idêntica — e a fase da batida cai dentro de uma tolerância em relação à do mapper. Mostramos quatro tolerâncias, de 10 a 40 ms.

Os resultados

Precisão de timing em 2.501 músicas ranqueadas de osu! mania com tempo constante
Método≤10 ms≤20 ms≤30 ms≤40 msBPM corretoUma linha de timing
ManiaGAI v271,4%92,3%96,5%97,1%98,0%100%
Mapperatorinator78,0%90,9%91,7%91,7%92,6%11,0%
ManiaGAI v174,8%88,0%90,3%90,7%94,0%92,8%

Porcentagem de 2.501 músicas. “BPM correto” aceita metade/dobro do tempo. “Uma linha de timing” = a música teve o timing feito com uma única linha, como o mapper fez.

Qual método fica na frente depende da tolerância, e essa é a informação mais reveladora da tabela. Em 10 ms, o Mapperatorinator lidera. De 20 ms em diante, é o ManiaGAI v2. Em 40 ms, o ManiaGAI v2 acerta 97,1% das músicas, contra 91,7% do Mapperatorinator e 90,7% do ManiaGAI v1.

Por que 40 ms é o número principal

Uma tolerância apertada mede precisão; uma mais folgada mede se o timing é utilizável. Escolhemos 40 ms como número principal por causa de um teste de escuta: das 31 músicas que o critério de 10 ms marcou como erradas, 30 soaram com o timing correto quando tocadas. Erros de 10–40 ms são reais, e a tabela os mostra — mas, nesse tamanho, o BPM e a batida estão certos, e é isso que decide se um chart toca na batida.

Música por música

As porcentagens escondem quais músicas cada método acerta. Contando as músicas em que exatamente um dos dois métodos acertou:

  • Em 40 ms, o ManiaGAI v2 acertou onde o Mapperatorinator errou em 187 músicas, e o contrário aconteceu em 51. Os dois acertaram 2.242; os dois erraram 21.
  • Em 20 ms, a diferença é bem menor: 187 músicas contra 153.
  • Contra o próprio antecessor, em 40 ms, o ManiaGAI v2 ganhou em 190 músicas e perdeu em 30.

Onde o Mapperatorinator é melhor

O Mapperatorinator posiciona a batida com mais precisão quando acerta o tempo:

  • Dentro de 10 ms, ele acerta 78,0% das músicas, contra 71,4% do ManiaGAI v2.
  • O erro de fase da batida dele é menor: mediana de 5,0 ms contra 5,8 ms.

Onde o ManiaGAI é melhor

O ManiaGAI v2 acerta o tempo com mais frequência (98,0% contra 92,6%, aceitando metade/dobro) e tem um problema muito menor com falsas mudanças de tempo. Toda música deste conjunto tem um único tempo constante, então qualquer linha de timing extra é uma mudança de tempo que não existe na música — e, em um chart, isso significa um deslocamento repentino da grade de batidas no meio da música.

  • O ManiaGAI v2 fez o timing de todas as 2.501 músicas com uma única linha.
  • O ManiaGAI v1 adicionou linhas em 181 músicas (7,2%).
  • O Mapperatorinator adicionou linhas em 2.226 músicas (89,0%) — uma mediana de 6 linhas e uma média de 7,9 por música.

Isso precisa de contexto: o Mapperatorinator não parte do princípio de que uma música tem um único tempo, e em músicas que realmente mudam de tempo, escrever várias linhas é o comportamento certo. Este benchmark só tem músicas de tempo constante, então ele consegue mostrar o custo dessa escolha de design, mas não o benefício.

Quão perto do teto?

Em 40 ms, 16 músicas (0,6%) derrotaram os três métodos. Mesmo um juiz perfeito que escolhesse o melhor dos três para cada música chegaria a 99,4% — então a distância entre os 97,1% do ManiaGAI v2 e esse teto é pequena. Dessas 16 músicas, 12 foram erros de tempo do ManiaGAI v2 e 4 foram erros de fase.

O que este benchmark não diz

  • Não é um teste com dados separados (held-out). 344 das músicas tinham sido usadas durante o ajuste do detector do ManiaGAI v2. Verificamos se isso inflou o resultado: em 40 ms, o ManiaGAI v2 marca 97,1% nessas músicas e 97,1% nas 2.157 que ele nunca viu; em 10 ms, 70,3% contra 71,5%. O ajuste não comprou uma precisão que deixa de generalizar — mas um conjunto held-out limpo seria uma evidência mais forte.
  • Só músicas de tempo constante. Músicas que mudam de tempo são mais difíceis para todos os métodos, e elas não estão aqui. Nos dados com que o ManiaGAI v2 aprendeu, 15,8% dos charts mudam de tempo no meio da música.
  • Só mapas ranqueados, com o mapper como referência. O timing de mapas ranqueados é conferido por pessoas, o que faz dele a melhor referência disponível — mas ainda é o timing de uma pessoa, e a população é a música que chega a ser ranqueada.
  • Uma única referência externa. O Mapperatorinator é o único outro método que rodamos. Não comparamos beat trackers que não foram feitos para o osu!, e não afirmamos nada sobre eles.
  • Timing, não charts. O benchmark avalia só a grade de timing, não a qualidade dos charts gerados.
  • Próximo da configuração lançada, não idêntico. O detector em produção difere em detalhes da versão medida aqui.

Os próximos passos do timing

Três coisas se destacam. Os erros que restam em músicas de tempo constante são, na maioria, de tempo, não de fase. Na tolerância mais apertada, ainda há precisão a ganhar. E a maior pergunta em aberto é a que este benchmark não consegue responder: como cada método — incluindo o nosso — lida com músicas cujo tempo realmente muda. Essa é a lacuna que um benchmark futuro precisa fechar.

Se você quer ver o que o timing significa na prática, BPM e timing no osu! explicados cobre o básico, a página de Tecnologia mostra onde o timing fica no pipeline inteiro, e o teste mais rápido é uma música que você conhece bem.