HeadlinesBriefing favicon HeadlinesBriefing.com

Aetheryte Radio Audio Engine bauen

Hacker News •
×

Der Autor beschreibt die JavaScript-Implementierung hinter Aetheryte Radio und repliziert das ambienten Audio-Verhalten von Final Fantasy XIV. Das Spiel spielt "whir" Soundeffekte in zufälligen Intervallen, Pitches und Volumina ab, um eine Illusion von Leben zu erzeugen und Asset-Wiederholungen zu maskieren. FFXIV stellt Min-/Max-Werte für diese Parameter bereit, was eine direkte Übersetzung in Code ermöglicht: zufällige Index-Auswahl, Wiedergaberaten zwischen 0.794 und 1.0, und Gain-Werte zwischen 0.6 und 1.0.

Die Audiografo-Einrichtung folgt standardmäßigen Web Audio API-Mustern: einen Knoten zuweisen, Metadaten setzen, verbinden. Mit einer festen Wiedergaberate von 0.63 erstellte Pufferquelle für einen konstanten Hum-Loop, verbunden mit einem Gain-Knoten und unendlich geschaltet.

Das Whir-System vermeidet herkömmliche Schleifen. Statt `while(true)` mit Pausen verwendet `setTimeout`, um das nächste Whir in einer zufälligen Verzögerung (0–2001ms) zu planen. Die `chooseWhir`-Funktion erstellt einen Quellknoten, weist zufällige Eigenschaften zu, verbindet ihn und startet die Wiedergabe. Crucial: Wenn der Ton endet, wird der Knoten getrennt und über `onended` ein neuer geplant, was marginale Latenz hinzufügt, die für Ambient-Effekte akzeptabel ist.