What problem does it solve? Adding sound to a browser game involves Web Audio unlock gestures, mixer routing, spatial positioning, and music crossfades, all of which are tedious to wire up correctly. This Skill provides the @ignifx/audio extension with a bus tree, AudioSource and AudioListener components, and a MusicPlayer so an ignifx game can play effects and music in browsers, Electron, and headless Node tests. ## Core Features & Use Cases - Mixer bus tree: Named buses (Master, Music, SFX, UI, Voice) with per-bus gain, declared in code or an .audio.json file, with configurable pause behavior. - AudioSource and AudioListener components: Per-entity playback with volume, pitch, looping, instance limits, and 3D spatial audio with distance models and cones. - MusicPlayer with crossfading: Switch tracks with timed fades, surviving scene loads on persistent entities. - Headless simulation: Under Node, playback is simulated from the frame delta, so isPlaying, fades, and onEnded work in tests without a browser. - Use Case: Add footsteps with randomized pitch capped at eight concurrent instances, position a looping torch sound in the world, and crossfade menu music into battle music on game start. ## Quick Start Add the audio extension when creating the ignifx app, load an AudioClip, attach an AudioSource to an entity, and call play to hear the sound.