papermario
Decompilation of Paper Mario
 
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Loading...
Searching...
No Matches
private.h File Reference

Functions

void au_load_BK_headers (AuGlobals *arg0, ALHeap *)
 
void au_mseq_manager_init (AmbienceManager *arg0, s8 arg1, s8 reverbType, AuGlobals *arg3)
 
AuResult au_mseq_check_player_index (u32 arg0)
 
void au_mseq_load_tracks_fade (s32 arg0, s32 arg1)
 
void au_mseq_set_disabled (s32 arg0, s32 arg1)
 
AuResult au_mseq_start (s32 arg0, s32 arg1)
 
void au_mseq_fade_setup (AmbiencePlayer *arg0)
 
void au_mseq_pause (s32 arg0, s32 arg1)
 
void au_mseq_resume (s32 arg0, s32 arg1)
 
void au_mseq_stop_quick (s32 arg0)
 
void au_mseq_stop_slow (s32 arg0, s32 arg1)
 
void au_mseq_set_volume (s32 arg0, s32 arg1, s32 arg2)
 
AuResult au_mseq_check_stopped (s32 arg0)
 
void au_mseq_play_sequence (AmbienceManager *arg0, MSEQHeader *mseq, s32 index)
 
void au_mseq_manager_audio_frame_update (AmbienceManager *arg0)
 
void au_mseq_load_track_fade_info (AmbienceManager *manager, AmbiencePlayer *lambda)
 
void au_mseq_player_update (AmbienceManager *manager, AmbiencePlayer *lambda)
 
u8 au_mseq_read_next (AmbiencePlayer *arg0)
 
void au_mseq_player_stop (AmbienceManager *arg0, AmbiencePlayer *arg1)
 
void au_mseq_save_voices (AmbienceManager *arg0, AmbiencePlayer *lambda)
 
void au_mseq_restore_voices (AmbienceManager *manager, AmbiencePlayer *lambda)
 
void au_sfx_init (SoundManager *manager, u8 arg1, u8 arg2, AuGlobals *arg3, u8 arg4)
 
void au_sfx_load_groups_from_SEF (SoundManager *sndMgr)
 
void au_sfx_clear_queue (SoundManager *manager)
 
void au_sfx_enqueue_event (SoundManager *manager, u32 soundID, s16 volume, s16 pitchShift, u8 pan)
 
void au_sfx_begin_video_frame (SoundManager *manager)
 
s32 au_sfx_set_reverb_type (SoundManager *manager, s32 arg1)
 
void au_sfx_set_state (SoundManager *manager, s32 arg1)
 
void au_sfx_try_sound (SoundManager *manager, SoundRequest *request, SoundManagerCustomCmdList *)
 
s16 au_sfx_manager_audio_frame_update (SoundManager *manager)
 
void au_bgm_begin_video_frame (BGMPlayer *player)
 
BGMPlayerau_bgm_get_player_with_song_name (s32 songString)
 
AuResult au_bgm_process_init_song (SongStartRequest *event)
 
AuResult au_bgm_stop_song (s32 songName)
 
void au_bgm_stop_all (void)
 
AuResult au_bgm_is_song_playing (s32 songName)
 
b32 au_bgm_player_is_active (BGMPlayer *player)
 
AuResult au_bgm_process_fade_out (SongFadeOutRequest *s)
 
AuResult au_bgm_complete_push (s32 songName)
 
AuResult au_bgm_process_suspend (SongSuspendRequest *update, b32 skipStop)
 
AuResult au_bgm_process_resume (SongResumeRequest *update)
 
void au_bgm_restore_copied_player (AuGlobals *globals)
 
AuResult au_bgm_adjust_volume (SongStartRequest *update)
 
void au_bgm_player_init (BGMPlayer *player, s32 arg1, s32 arg2, AuGlobals *arg3)
 
void au_bgm_set_effect_indices (BGMPlayer *player, u8 *list)
 
void au_bgm_update_fade (BGMPlayer *player)
 
void au_bgm_update_bus_volumes (BGMPlayer *arg0)
 
s32 au_bgm_player_audio_frame_update (BGMPlayer *player)
 
void au_bgm_player_initialize (BGMPlayer *player)
 
void au_bgm_clear_custom_note_press (BGMPlayer *player, s32 arg1)
 
void au_bgm_set_tick_resolution (BGMPlayer *player, s32 sampleRate, u32 resolution)
 
void au_bgm_player_read_composition (BGMPlayer *player)
 
void au_bgm_end_composition_loop (BGMPlayer *player, u32 cmd)
 
void au_bgm_load_phrase (BGMPlayer *player, u32 cmd)
 
void au_bgm_player_update_stop (BGMPlayer *player)
 
void au_bgm_player_update_playing (BGMPlayer *player)
 play next tick
 
void au_BGMCmd_E0_MasterTempo (BGMPlayer *player, BGMPlayerTrack *track)
 
void au_BGMCmd_E1_MasterVolume (BGMPlayer *player, BGMPlayerTrack *track)
 
void au_BGMCmd_E2_MasterDetune (BGMPlayer *player, BGMPlayerTrack *track)
 
void au_BGMCmd_E3 (BGMPlayer *player, BGMPlayerTrack *track)
 
void au_BGMCmd_E6_MasterEffect (BGMPlayer *player, BGMPlayerTrack *track)
 
void au_BGMCmd_E4_MasterTempoFade (BGMPlayer *player, BGMPlayerTrack *track)
 
void au_BGMCmd_E5_MasterVolumeFade (BGMPlayer *player, BGMPlayerTrack *track)
 
void au_BGMCmd_E8_TrackOverridePatch (BGMPlayer *player, BGMPlayerTrack *track)
 
void au_BGMCmd_E9_InstrumentVolume (BGMPlayer *arg0, BGMPlayerTrack *track)
 
void au_BGMCmd_F6_InstrumentVolumeLerp (BGMPlayer *player, BGMPlayerTrack *track)
 
void au_BGMCmd_EA_InstrumentPan (BGMPlayer *player, BGMPlayerTrack *track)
 
void au_BGMCmd_EB_InstrumentReverb (BGMPlayer *player, BGMPlayerTrack *track)
 
void au_BGMCmd_EC_TrackVolume (BGMPlayer *player, BGMPlayerTrack *track)
 
void au_BGMCmd_ED_InstrumentCoarseTune (BGMPlayer *player, BGMPlayerTrack *track)
 
void au_BGMCmd_EE_InstrumentFineTune (BGMPlayer *player, BGMPlayerTrack *track)
 
void au_BGMCmd_EC_TrackDetune (BGMPlayer *player, BGMPlayerTrack *track)
 
void au_BGMCmd_F0_TrackTremolo (BGMPlayer *player, BGMPlayerTrack *track)
 
void au_BGMCmd_F1_TrackTremoloRate (BGMPlayer *player, BGMPlayerTrack *track)
 
void au_BGMCmd_F2_TrackTremoloDepth (BGMPlayer *player, BGMPlayerTrack *track)
 
void au_BGMCmd_F3_TrackTremoloStop (BGMPlayer *player, BGMPlayerTrack *track)
 
void au_BGMCmd_F4_SubTrackRandomPan (BGMPlayer *player, BGMPlayerTrack *track)
 
void au_BGMCmd_F5_UseInstrument (BGMPlayer *player, BGMPlayerTrack *track)
 
void au_BGMCmd_F7_ReverbType (BGMPlayer *player, BGMPlayerTrack *track)
 
void au_BGMCmd_FD_EventTrigger (BGMPlayer *player, BGMPlayerTrack *track)
 
void au_BGMCmd_FE_Detour (BGMPlayer *player, BGMPlayerTrack *track)
 
void au_BGMCmd_FC_Branch (BGMPlayer *player, BGMPlayerTrack *track)
 
void au_BGMCmd_FF_Special (BGMPlayer *player, BGMPlayerTrack *track)
 
void au_BGMCmd_NOP (BGMPlayer *player, BGMPlayerTrack *track)
 
void au_bgm_set_proximity_mix (s32 songName, u32 mix)
 
void au_bgm_set_playback_rate (BGMPlayer *player, f32 arg1)
 
void au_bgm_player_set_detune (BGMPlayer *player, s32 arg1)
 
void au_bgm_change_track_volume (BGMPlayer *player, s32 trackIdx, s16 arg2, u8 arg3)
 
void au_bgm_set_track_volumes (BGMPlayer *player, u8 *arg1, s32 arg2)
 
void au_bgm_set_prox_mix_fade (BGMPlayer *player, BGMPlayerTrack *track, s32 target, s32 duration)
 
void au_bgm_reset_all_voices (BGMPlayer *player)
 
AuResult au_bgm_set_linked_tracks (SongSwapLinkedRequest *arg0)
 
void snd_bgm_clear_legacy_commands (BGMPlayer *player)
 Part of an unused system for inter-thread communication with a BGM player using commands.
 
AuResult snd_song_get_playing_info (s32 songName, BGMHeader **outTrackData, BGMPlayer **outPlayer)
 
AuResult snd_song_set_detune (s32 songName, s32 arg1)
 
AuResult snd_song_set_track_volumes (s32 songName, MusicTrackVols arg1)
 
AuResult snd_song_clear_track_volumes (s32 songName, MusicTrackVols arg1)
 
AuResult snd_song_set_track_vol_mute (s32 arg0, s32 arg1)
 
AuResult snd_song_set_track_vol_quiet (s32 arg0, s32 arg1)
 
AuResult snd_song_set_track_vol_full (s32 arg0, s32 arg1)
 
void snd_song_set_proximity_mix_far (s32 songName, s32 mix)
 
void snd_song_set_proximity_mix_near (s32 songName, s32 mix)
 
void snd_song_set_proximity_mix_full (s32 songName, s32 mix)
 
SoundInstancesfx_get_env_sound_instance (s32 soundID)
 

Function Documentation

◆ au_bgm_adjust_volume()

AuResult au_bgm_adjust_volume ( SongStartRequest * update)

◆ au_bgm_begin_video_frame()

void au_bgm_begin_video_frame ( BGMPlayer * player)

◆ au_bgm_change_track_volume()

void au_bgm_change_track_volume ( BGMPlayer * player,
s32 trackIdx,
s16 arg2,
u8 arg3 )

◆ au_bgm_clear_custom_note_press()

void au_bgm_clear_custom_note_press ( BGMPlayer * player,
s32 arg1 )

◆ au_bgm_complete_push()

AuResult au_bgm_complete_push ( s32 songName)

Referenced by au_bgm_update_fade().

◆ au_bgm_end_composition_loop()

void au_bgm_end_composition_loop ( BGMPlayer * player,
u32 cmd )

◆ au_bgm_get_player_with_song_name()

◆ au_bgm_is_song_playing()

AuResult au_bgm_is_song_playing ( s32 songName)

Referenced by snd_song_is_playing().

◆ au_bgm_load_phrase()

void au_bgm_load_phrase ( BGMPlayer * player,
u32 cmd )

◆ au_bgm_player_audio_frame_update()

s32 au_bgm_player_audio_frame_update ( BGMPlayer * player)

◆ au_bgm_player_init()

void au_bgm_player_init ( BGMPlayer * player,
s32 arg1,
s32 arg2,
AuGlobals * arg3 )

Referenced by au_engine_init().

◆ au_bgm_player_initialize()

void au_bgm_player_initialize ( BGMPlayer * player)

◆ au_bgm_player_is_active()

b32 au_bgm_player_is_active ( BGMPlayer * player)

◆ au_bgm_player_read_composition()

void au_bgm_player_read_composition ( BGMPlayer * player)

◆ au_bgm_player_set_detune()

void au_bgm_player_set_detune ( BGMPlayer * player,
s32 arg1 )

Referenced by snd_song_set_detune().

◆ au_bgm_player_update_playing()

void au_bgm_player_update_playing ( BGMPlayer * player)

play next tick

Referenced by au_bgm_player_audio_frame_update().

◆ au_bgm_player_update_stop()

void au_bgm_player_update_stop ( BGMPlayer * player)

◆ au_bgm_process_fade_out()

◆ au_bgm_process_init_song()

◆ au_bgm_process_resume()

AuResult au_bgm_process_resume ( SongResumeRequest * update)

◆ au_bgm_process_suspend()

◆ au_bgm_reset_all_voices()

void au_bgm_reset_all_voices ( BGMPlayer * player)

◆ au_bgm_restore_copied_player()

void au_bgm_restore_copied_player ( AuGlobals * globals)

◆ au_bgm_set_effect_indices()

void au_bgm_set_effect_indices ( BGMPlayer * player,
u8 * list )

Referenced by au_engine_init().

◆ au_bgm_set_linked_tracks()

AuResult au_bgm_set_linked_tracks ( SongSwapLinkedRequest * arg0)

◆ au_bgm_set_playback_rate()

void au_bgm_set_playback_rate ( BGMPlayer * player,
f32 arg1 )

◆ au_bgm_set_prox_mix_fade()

void au_bgm_set_prox_mix_fade ( BGMPlayer * player,
BGMPlayerTrack * track,
s32 target,
s32 duration )

◆ au_bgm_set_proximity_mix()

void au_bgm_set_proximity_mix ( s32 songName,
u32 mix )

◆ au_bgm_set_tick_resolution()

void au_bgm_set_tick_resolution ( BGMPlayer * player,
s32 sampleRate,
u32 resolution )

◆ au_bgm_set_track_volumes()

void au_bgm_set_track_volumes ( BGMPlayer * player,
u8 * arg1,
s32 arg2 )

◆ au_bgm_stop_all()

void au_bgm_stop_all ( void )

Referenced by snd_song_stop_all().

◆ au_bgm_stop_song()

AuResult au_bgm_stop_song ( s32 songName)

Referenced by snd_song_stop().

◆ au_bgm_update_bus_volumes()

void au_bgm_update_bus_volumes ( BGMPlayer * arg0)

◆ au_bgm_update_fade()

void au_bgm_update_fade ( BGMPlayer * player)

◆ au_BGMCmd_E0_MasterTempo()

void au_BGMCmd_E0_MasterTempo ( BGMPlayer * player,
BGMPlayerTrack * track )

◆ au_BGMCmd_E1_MasterVolume()

void au_BGMCmd_E1_MasterVolume ( BGMPlayer * player,
BGMPlayerTrack * track )

◆ au_BGMCmd_E2_MasterDetune()

void au_BGMCmd_E2_MasterDetune ( BGMPlayer * player,
BGMPlayerTrack * track )

◆ au_BGMCmd_E3()

void au_BGMCmd_E3 ( BGMPlayer * player,
BGMPlayerTrack * track )

◆ au_BGMCmd_E4_MasterTempoFade()

void au_BGMCmd_E4_MasterTempoFade ( BGMPlayer * player,
BGMPlayerTrack * track )

◆ au_BGMCmd_E5_MasterVolumeFade()

void au_BGMCmd_E5_MasterVolumeFade ( BGMPlayer * player,
BGMPlayerTrack * track )

◆ au_BGMCmd_E6_MasterEffect()

void au_BGMCmd_E6_MasterEffect ( BGMPlayer * player,
BGMPlayerTrack * track )

◆ au_BGMCmd_E8_TrackOverridePatch()

void au_BGMCmd_E8_TrackOverridePatch ( BGMPlayer * player,
BGMPlayerTrack * track )

◆ au_BGMCmd_E9_InstrumentVolume()

void au_BGMCmd_E9_InstrumentVolume ( BGMPlayer * arg0,
BGMPlayerTrack * track )

◆ au_BGMCmd_EA_InstrumentPan()

void au_BGMCmd_EA_InstrumentPan ( BGMPlayer * player,
BGMPlayerTrack * track )

◆ au_BGMCmd_EB_InstrumentReverb()

void au_BGMCmd_EB_InstrumentReverb ( BGMPlayer * player,
BGMPlayerTrack * track )

◆ au_BGMCmd_EC_TrackDetune()

void au_BGMCmd_EC_TrackDetune ( BGMPlayer * player,
BGMPlayerTrack * track )

◆ au_BGMCmd_EC_TrackVolume()

void au_BGMCmd_EC_TrackVolume ( BGMPlayer * player,
BGMPlayerTrack * track )

◆ au_BGMCmd_ED_InstrumentCoarseTune()

void au_BGMCmd_ED_InstrumentCoarseTune ( BGMPlayer * player,
BGMPlayerTrack * track )

◆ au_BGMCmd_EE_InstrumentFineTune()

void au_BGMCmd_EE_InstrumentFineTune ( BGMPlayer * player,
BGMPlayerTrack * track )

◆ au_BGMCmd_F0_TrackTremolo()

void au_BGMCmd_F0_TrackTremolo ( BGMPlayer * player,
BGMPlayerTrack * track )

◆ au_BGMCmd_F1_TrackTremoloRate()

void au_BGMCmd_F1_TrackTremoloRate ( BGMPlayer * player,
BGMPlayerTrack * track )

◆ au_BGMCmd_F2_TrackTremoloDepth()

void au_BGMCmd_F2_TrackTremoloDepth ( BGMPlayer * player,
BGMPlayerTrack * track )

◆ au_BGMCmd_F3_TrackTremoloStop()

void au_BGMCmd_F3_TrackTremoloStop ( BGMPlayer * player,
BGMPlayerTrack * track )

◆ au_BGMCmd_F4_SubTrackRandomPan()

void au_BGMCmd_F4_SubTrackRandomPan ( BGMPlayer * player,
BGMPlayerTrack * track )

◆ au_BGMCmd_F5_UseInstrument()

void au_BGMCmd_F5_UseInstrument ( BGMPlayer * player,
BGMPlayerTrack * track )

◆ au_BGMCmd_F6_InstrumentVolumeLerp()

void au_BGMCmd_F6_InstrumentVolumeLerp ( BGMPlayer * player,
BGMPlayerTrack * track )

◆ au_BGMCmd_F7_ReverbType()

void au_BGMCmd_F7_ReverbType ( BGMPlayer * player,
BGMPlayerTrack * track )

◆ au_BGMCmd_FC_Branch()

void au_BGMCmd_FC_Branch ( BGMPlayer * player,
BGMPlayerTrack * track )

◆ au_BGMCmd_FD_EventTrigger()

void au_BGMCmd_FD_EventTrigger ( BGMPlayer * player,
BGMPlayerTrack * track )

◆ au_BGMCmd_FE_Detour()

void au_BGMCmd_FE_Detour ( BGMPlayer * player,
BGMPlayerTrack * track )

◆ au_BGMCmd_FF_Special()

void au_BGMCmd_FF_Special ( BGMPlayer * player,
BGMPlayerTrack * track )

◆ au_BGMCmd_NOP()

void au_BGMCmd_NOP ( BGMPlayer * player,
BGMPlayerTrack * track )

◆ au_load_BK_headers()

void au_load_BK_headers ( AuGlobals * arg0,
ALHeap * heap )

Referenced by au_engine_init().

◆ au_mseq_check_player_index()

◆ au_mseq_check_stopped()

AuResult au_mseq_check_stopped ( s32 arg0)

Referenced by snd_ambient_is_stopped().

◆ au_mseq_fade_setup()

void au_mseq_fade_setup ( AmbiencePlayer * arg0)

◆ au_mseq_load_track_fade_info()

void au_mseq_load_track_fade_info ( AmbienceManager * manager,
AmbiencePlayer * lambda )

◆ au_mseq_load_tracks_fade()

void au_mseq_load_tracks_fade ( s32 arg0,
s32 arg1 )

Referenced by snd_ambient_fade_out().

◆ au_mseq_manager_audio_frame_update()

void au_mseq_manager_audio_frame_update ( AmbienceManager * arg0)

◆ au_mseq_manager_init()

void au_mseq_manager_init ( AmbienceManager * arg0,
s8 arg1,
s8 reverbType,
AuGlobals * arg3 )

Referenced by au_engine_init().

◆ au_mseq_pause()

void au_mseq_pause ( s32 arg0,
s32 arg1 )

Referenced by snd_ambient_pause().

◆ au_mseq_play_sequence()

void au_mseq_play_sequence ( AmbienceManager * arg0,
MSEQHeader * mseq,
s32 index )

Referenced by au_mseq_start().

◆ au_mseq_player_stop()

void au_mseq_player_stop ( AmbienceManager * arg0,
AmbiencePlayer * arg1 )

◆ au_mseq_player_update()

void au_mseq_player_update ( AmbienceManager * manager,
AmbiencePlayer * lambda )

◆ au_mseq_read_next()

u8 au_mseq_read_next ( AmbiencePlayer * arg0)

Referenced by au_mseq_player_update().

◆ au_mseq_restore_voices()

void au_mseq_restore_voices ( AmbienceManager * manager,
AmbiencePlayer * lambda )

◆ au_mseq_resume()

void au_mseq_resume ( s32 arg0,
s32 arg1 )

Referenced by snd_ambient_resume().

◆ au_mseq_save_voices()

void au_mseq_save_voices ( AmbienceManager * arg0,
AmbiencePlayer * lambda )

◆ au_mseq_set_disabled()

void au_mseq_set_disabled ( s32 arg0,
s32 arg1 )

◆ au_mseq_set_volume()

void au_mseq_set_volume ( s32 arg0,
s32 arg1,
s32 arg2 )

Referenced by snd_ambient_set_volume().

◆ au_mseq_start()

AuResult au_mseq_start ( s32 arg0,
s32 arg1 )

Referenced by snd_ambient_play().

◆ au_mseq_stop_quick()

void au_mseq_stop_quick ( s32 arg0)

Referenced by snd_ambient_stop_quick().

◆ au_mseq_stop_slow()

void au_mseq_stop_slow ( s32 arg0,
s32 arg1 )

Referenced by snd_ambient_stop_slow().

◆ au_sfx_begin_video_frame()

void au_sfx_begin_video_frame ( SoundManager * manager)

◆ au_sfx_clear_queue()

void au_sfx_clear_queue ( SoundManager * manager)

Referenced by au_sfx_init().

◆ au_sfx_enqueue_event()

void au_sfx_enqueue_event ( SoundManager * manager,
u32 soundID,
s16 volume,
s16 pitchShift,
u8 pan )

◆ au_sfx_init()

void au_sfx_init ( SoundManager * manager,
u8 arg1,
u8 arg2,
AuGlobals * arg3,
u8 arg4 )

Referenced by au_engine_init().

◆ au_sfx_load_groups_from_SEF()

void au_sfx_load_groups_from_SEF ( SoundManager * sndMgr)

Referenced by au_engine_init().

◆ au_sfx_manager_audio_frame_update()

s16 au_sfx_manager_audio_frame_update ( SoundManager * manager)

◆ au_sfx_set_reverb_type()

s32 au_sfx_set_reverb_type ( SoundManager * manager,
s32 arg1 )

Referenced by au_set_reverb_type(), and au_sfx_init().

◆ au_sfx_set_state()

void au_sfx_set_state ( SoundManager * manager,
s32 arg1 )

◆ au_sfx_try_sound()

void au_sfx_try_sound ( SoundManager * manager,
SoundRequest * request,
SoundManagerCustomCmdList * customSEF )

◆ sfx_get_env_sound_instance()

◆ snd_bgm_clear_legacy_commands()

void snd_bgm_clear_legacy_commands ( BGMPlayer * player)

Part of an unused system for inter-thread communication with a BGM player using commands.

Use functions in bgm_control to manipualte gMusicControlData instead.

Referenced by au_bgm_player_init().

◆ snd_song_clear_track_volumes()

AuResult snd_song_clear_track_volumes ( s32 songName,
MusicTrackVols arg1 )

Referenced by bgm_clear_track_volumes().

◆ snd_song_get_playing_info()

AuResult snd_song_get_playing_info ( s32 songName,
BGMHeader ** outTrackData,
BGMPlayer ** outPlayer )

◆ snd_song_set_detune()

AuResult snd_song_set_detune ( s32 songName,
s32 arg1 )

◆ snd_song_set_proximity_mix_far()

void snd_song_set_proximity_mix_far ( s32 songName,
s32 mix )

Referenced by bgm_adjust_proximity().

◆ snd_song_set_proximity_mix_full()

void snd_song_set_proximity_mix_full ( s32 songName,
s32 mix )

Referenced by bgm_adjust_proximity().

◆ snd_song_set_proximity_mix_near()

void snd_song_set_proximity_mix_near ( s32 songName,
s32 mix )

Referenced by bgm_adjust_proximity().

◆ snd_song_set_track_vol_full()

AuResult snd_song_set_track_vol_full ( s32 arg0,
s32 arg1 )

◆ snd_song_set_track_vol_mute()

AuResult snd_song_set_track_vol_mute ( s32 arg0,
s32 arg1 )

◆ snd_song_set_track_vol_quiet()

AuResult snd_song_set_track_vol_quiet ( s32 arg0,
s32 arg1 )

◆ snd_song_set_track_volumes()

AuResult snd_song_set_track_volumes ( s32 songName,
MusicTrackVols arg1 )

Referenced by bgm_set_track_volumes().