52 player->
id.playerIndex = i;
60 manager->nextUpdateInterval = 2;
236 player = &
manager->players[index];
241 player->
id.playerIndex = index;
287 if (
manager->loadTracksFadeInfo) {
367 for (i = 0; i < 16U; i++) {
397 if (
track->tuneLerp.time != 0) {
399 if (
track->tuneLerp.time != 0) {
400 track->tuneLerp.current +=
track->tuneLerp.step;
402 track->tuneLerp.current =
track->tuneLerp.goal << 16;
424 if (
track->volumeLerp.time != 0) {
426 if (
track->volumeLerp.time != 0) {
427 track->volumeLerp.current +=
track->volumeLerp.step;
429 track->volumeLerp.current =
track->volumeLerp.goal << 16;
449 if (player->
delay <= 0) {
450 while (player->
delay == 0) {
552 voice->envelope.cmdListPress =
track->envelope.cmdListPress;
553 voice->envelope.cmdListRelease =
track->envelope.cmdListRelease;
556 drum = &
manager->globals->dataPER->drums[arg1 & 0x7F];
557 bankPatch =
drum->bankPatch;
577 track->pan = arg1 & 0x7F;
590 track->volumeLerp.current = arg1 << 24;
591 if (
track->volumeLerp.current != 0) {
592 track->volumeLerp.current |= 0xFFFFFF;
623 count = (arg2 & 0x7C) >> 2;
643 track->reverb = arg2;
710 if (
voiceState->info.playerIndex == player->
id.playerIndex) {
789 voice->envelope.cmdListPress =
track->envelope.cmdListPress;
790 voice->envelope.cmdListRelease =
track->envelope.cmdListRelease;
BSS s32 PopupMenu_SelectedIndex
MSEQHeader * mseqFiles[4]
#define VOL_MULT_3(a, b, c)
#define AU_FILE_RELATIVE(base, offset)
@ AU_VOICE_SYNC_FLAG_PAN_FXMIX
@ AU_VOICE_SYNC_FLAG_PITCH
AmbienceSavedVoice savedVoices[4]
AuFilePos loopStartPos[2]
AmbiencePlayer players[4]
@ AU_VOICE_ENV_FLAG_KEY_RELEASED
@ AU_VOICE_ENV_FLAG_VOL_CHANGED
AmbienceManager * gAuAmbienceManager
void au_reset_voice(AuVoice *voice, u8 voiceIdx)
f32 au_compute_pitch_ratio(s32 tuning)
Converts a linear pitch value (in cents) into a frequency ratio suitable for adjusting playback speed...
Instrument * au_get_instrument(AuGlobals *globals, BankSetIndex bank, s32 patch, EnvelopeData *arg3)
Note that bank is supplied as BankSetIndex and not BankSet, which means it will be used to perform a ...
void au_memset(void *dst, s32 size, u8 value)
@ AU_AMBIENCE_STOP_ERROR_1
@ AU_AMBIENCE_STOP_ERROR_2
@ AU_AMBIENCE_ERROR_MSEQ_NOT_FOUND
@ AU_AMBIENCE_ERROR_PLAYER_BUSY
AuResult au_mseq_start(s32 index, s32 time)
void au_mseq_restore_voices(AmbienceManager *manager, AmbiencePlayer *player)
void au_mseq_set_disabled(s32 index, s32 disable)
void au_mseq_player_update(AmbienceManager *manager, AmbiencePlayer *player)
void au_mseq_stop_slow(s32 index, s32 time)
AuResult au_mseq_check_player_index(u32 index)
void au_mseq_manager_init(AmbienceManager *manager, s8 priority, s8 busID, AuGlobals *globals)
void au_mseq_fade_setup(AmbiencePlayer *player)
void au_mseq_load_tracks_fade(s32 arg0, s32 arg1)
void au_mseq_save_voices(AmbienceManager *manager, AmbiencePlayer *player)
void au_mseq_stop_quick(s32 index)
@ MSEQ_CMD_C0_SET_INSTRUMENT
@ MSEQ_CMD_SUB_68_SET_REVERB
@ MSEQ_CMD_SUB_67_END_LOOP
@ MSEQ_CMD_SUB_69_SET_RESUMABLE
@ MSEQ_CMD_SUB_66_START_LOOP
@ MSEQ_CMD_A0_SET_VOLUME_PAN
void au_mseq_resume(s32 index, s32 time)
AuResult au_mseq_check_stopped(s32 index)
u8 au_mseq_read_next(AmbiencePlayer *state)
void au_mseq_load_track_fade_info(AmbienceManager *manager, AmbiencePlayer *player)
void au_mseq_set_volume(s32 index, s32 time, s32 volume)
void au_mseq_pause(s32 index, s32 time)
void au_mseq_player_stop(AmbienceManager *manager, AmbiencePlayer *player)
void au_mseq_manager_audio_frame_update(AmbienceManager *manager)
void au_mseq_play_sequence(AmbienceManager *manager, MSEQHeader *mseqFile, s32 index)