Use this file to discover all available pages before exploring further.
The audio system in Super Mario Galaxy is layered. At the bottom sits AudSystem, which extends the JSystem JAUSoundMgr and owns the hardware audio context. Above that, specialised managers handle background music (AudBgmMgr), sound effects (AudSoundObjHolder), scene-scoped resource loading (AudSceneMgr), and rhythm-driven music logic (AudRemixMgr). Actor code interacts with AudSoundObject instances to trigger positional sound effects, and designer-authored BCSV tables drive most BGM sequencing automatically.
The BGM subsystem is a three-class hierarchy: AudBgm defines the abstract BGM contract, AudBgmKeeper pools concrete instances, and AudBgmMgr provides the public API used by the rest of the game.
AudBgm is the abstract base for all background music players. Two concrete variants exist: AudSingleBgm for standard single-stream music and AudMultiBgm for synchronised multi-stream arrangements.
AudSingleBgm adds an array of 16 AudTrackController entries for per-track mute and volume management. AudMultiBgm adds the same array plus two AudFader objects and stream synchronisation logic.
AudSoundObject is the positional sound emitter attached to actors. It extends JAUSoundObject (the JSystem 3D audio source) and adds game-specific map-code tagging, version conversion, and limited-voice management.
AudSoundObjHolder maintains the list of all live AudSoundObject instances. AudSystem calls update() on it each frame to cull sounds whose objects have been destroyed.
AudSceneMgr handles staged loading of audio wave-set archives. It distinguishes between static resources (loaded once), stage resources (loaded per galaxy), and scenario resources (loaded per star mission).
AudBgmRhythmStrategy is embedded in every AudBgm. It marks one BGM as the rhythm dominant, meaning its beat data drives the rhythm system even when another BGM is playing simultaneously.
AudRemixMgr manages the remix sequencer used for musical variation. It holds a table of RemixNoteGroupData entries keyed by melody index and drives an AudRemixSequencer each frame.