HeadlinesBriefing favicon HeadlinesBriefing.com

Construindo o Motor de Áudio Aetheryte Radio

Hacker News •
×

O autor detalha a implementação JavaScript por trás do Aetheryte Radio, replicando o comportamento de áudio ambiental de Final Fantasy XIV. O jogo reproduz efeitos de som "whir" em intervalos aleatórios, pitches e volumes para criar uma ilusão de vida e mascarar a repetição de ativos. FFXIV fornece valores mín e máximos para esses parâmetros, permitindo tradução direta para o código: seleção de índice aleatório, taxas de reprodução entre 0.794 e 1.0, e valores de ganho entre 0.6 e 1.0.

A configuração do gráfico de áudio segue padrões padrão da Web Audio API: alocar um nó, definir metadados, conectar. Cria-se um loop constante de zumbido usando uma fonte de buffer com taxa de reprodução fixa de 0.63, conectada a um nó de ganho e definida para loop indefinido.

O sistema whir evita loops convencionais. Em vez de `while(true)` com sono, `setTimeout` agenda o próximo whir em um atraso aleatório (0–2001ms). A função `chooseWhir` cria um nó de origem, atribui propriedades aleatórias, conecta-o e inicia a reprodução. Crucialmente, quando o som termina, o nó é desconectado e um novo é agendado via `onended`, adicionando latência marginal aceitável para efeitos ambientais.