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

Data Structures

union  SeqArgs
 
struct  Fade
 Structure for volume fading for SFX and BGM. Has independent controls for base and envelope volumes. More...
 
struct  AuDelay
 
struct  AuFX
 
struct  AuLowPass
 
struct  AuFilter
 
struct  AuFxBus
 
struct  AuLoadFilter
 
struct  AuResampler
 
struct  AuEnvMixer
 
struct  AuPVoice
 
struct  AuSynDriver
 
struct  SoundRequest
 
struct  EnvelopeData
 
struct  EnvelopeOffset
 
struct  EnvelopePreset
 
struct  Instrument
 
struct  SoundLerp
 
struct  SoundPlayChange
 
struct  SoundPlayer
 
struct  SoundManagerMusicEvent
 
struct  SoundManagerCustomCmdList
 
struct  SoundManager
 
struct  SoundInstance
 
struct  AlternatingSoundSet
 
struct  AuVoice
 
struct  BGMFileInfo
 
struct  BGMHeader
 
struct  BGMDrumInfo
 
struct  BGMInstrumentInfo
 
struct  SBNFileEntry
 
struct  SBNHeader
 
struct  SEFHeader
 
struct  INITHeader
 
struct  InitSongEntry
 
struct  InitBankEntry
 
struct  PERHeader
 
struct  PEREntry
 
struct  BKHeader
 
struct  BKFileBuffer
 Represents a dummy BK file large enough to hold everything except the wave data. More...
 
struct  AuEffectChange
 
struct  BGMPlayerSnapshot
 
struct  AuGlobals
 
struct  BGMPlayerTrack
 
struct  SeqNote
 
struct  BGMPlayer
 
struct  SongStartRequest
 
struct  SongFadeOutRequest
 
struct  SongSuspendRequest
 
struct  SongResumeRequest
 
struct  SongSwapLinkedRequest
 
struct  MSEQTrackData
 
struct  MSEQHeader
 
struct  AmbienceTrack
 
struct  AmbienceSavedVoice
 
union  AmbVoiceStateInfo
 Compact identifier for a voice used by the ambience system. More...
 
struct  AmbienceVoiceState
 
struct  AmbiencePlayer
 
struct  AmbienceManager
 
struct  ALConfig
 
struct  SeqArgs.MasterTempo
 
struct  SeqArgs.MasterVolume
 
struct  SeqArgs.MasterPitchShift
 
struct  SeqArgs.UnkCmdE3
 
struct  SeqArgs.MasterTempoFade
 
struct  SeqArgs.MasterVolumeFade
 
struct  SeqArgs.MasterEffect
 
struct  SeqArgs.OverridePatch
 
struct  SeqArgs.InstrumentVolume
 
struct  SeqArgs.InstrumentPan
 
struct  SeqArgs.InstrumentReverb
 
struct  SeqArgs.TrackVolume
 
struct  SeqArgs.InstrumentCoarseTune
 
struct  SeqArgs.InstrumentFineTune
 
struct  SeqArgs.TrackDetune
 
struct  SeqArgs.TrackTremolo
 
struct  SeqArgs.TrackTremoloRate
 
struct  SeqArgs.TrackTremoloDepth
 
struct  SeqArgs.RandomPan
 
struct  SeqArgs.UseInstrument
 
struct  SeqArgs.TrackVolumeFade
 
struct  SeqArgs.ReverbType
 
struct  SeqArgs.Branch
 
struct  SeqArgs.EventTrigger
 
struct  SeqArgs.Detour
 
struct  SeqArgs.Special
 
union  Instrument.__unnamed83__
 
union  SoundPlayChange.__unnamed85__
 
struct  SoundPlayChange.__unnamed85__.__unnamed87__
 
union  SoundManagerMusicEvent.__unnamed89__
 
struct  SoundManagerMusicEvent.__unnamed89__.__unnamed91__
 
union  SBNFileEntry.__unnamed93__
 
struct  SBNFileEntry.__unnamed93__.__unnamed95__
 
struct  AmbVoiceStateInfo.__unnamed97__
 

Macros

#define NO_INSTRUMENT   ((Instrument*) -1)
 
#define AUDIO_SAMPLES   184
 
#define AU_FX_MAX_TAPS   4
 
#define AU_FX_LENGTH   (14 * AUDIO_SAMPLES)
 
#define AU_FILTER_LENGTH   (28 * AUDIO_SAMPLES)
 
#define HARDWARE_OUTPUT_RATE   32000
 
#define AU_FRAME_USEC   5750
 
#define N_AL_DECODER_IN   0
 
#define N_AL_RESAMPLER_OUT   0
 
#define N_AL_TEMP_0   0
 
#define N_AL_DECODER_OUT   0x170
 
#define N_AL_TEMP_1   0x170
 
#define N_AL_TEMP_2   0x2E0
 
#define N_AL_MAIN_L_OUT   0x4E0
 
#define N_AL_MAIN_R_OUT   0x650
 
#define N_AL_AUX_L_OUT   0x7C0
 
#define N_AL_AUX_R_OUT   0x930
 
#define AU_MAX_BUS_VOLUME   0x8000
 
#define ALIGN16_(val)   (((val) + 0xF) & 0xFFF0)
 
#define AU_FILE_RELATIVE(base, offset)   ((void*)((s32)(offset) + (s32)(base)))
 
#define VIDEO_FRAMES_PER_SECOND   60
 
#define AUDIO_HEAP_SIZE   0x56000
 
#define AUDIO_MAX_SAMPLES   AUDIO_SAMPLES
 
#define AUDIO_COMMAND_LIST_BUFFER_SIZE   0x4000
 
#define ADPCMFBYTES   9
 
#define DEFAULT_KEYBASE   4800
 
#define AU_MAX_VOLUME_8   0x7F
 
#define AU_MAX_VOLUME_16   0x7FFF
 
#define AU_MAX_VOLUME_32   0x7FFFFFFF
 
#define AU_PAN_MIN   0
 
#define AU_PAN_MID   64
 
#define AU_PAN_MAX   127
 
#define AU_VOL_8_TO_16(vol)   (((vol) << 8) | 0xFF)
 
#define AU_VOL_8_TO_32(vol)   (((vol) << 0x18) | 0xFFFFFF)
 
#define BGM_MAX_INSTRUMNETS   0x80
 
#define BGM_DEFAULT_TICKS_PER_BEAT   48
 
#define BGM_UPDATE_SCALE   (1000)
 
#define BGM_TEMPO_SCALE   (100)
 
#define BGM_MFRAMES_PER_MINUTE   (BGM_UPDATE_SCALE * (60 * HARDWARE_OUTPUT_RATE) / AUDIO_SAMPLES)
 
#define BGM_DEFAULT_BPM   156
 
#define BGM_DEFAULT_TEMPO   (BGM_DEFAULT_BPM * BGM_TEMPO_SCALE)
 
#define BGM_DEFAULT_UPDATE_STEP   156250
 
#define BGM_TEMPO_TO_UPDATE_UNITS(tempo)   (BGM_UPDATE_SCALE * (u32)(tempo) / BGM_TEMPO_SCALE)
 
#define SND_MIN_DURATION   250
 
#define SND_MAX_DURATION   10000
 
#define AU_SONG_NONE   -1
 
#define MUS_QUEUE_SIZE   16
 
#define SFX_QUEUE_SIZE   16
 
#define AU_SEMITONE_CENTS   100
 
#define AU_OCTAVE_CENTS   (12 * AU_SEMITONE_CENTS)
 
#define ENV_VOL_MAX   0x80
 
#define ENV_VOL_SHIFT   7
 
#define PRG_MAX_COUNT   0x40
 
#define VOL_MULT_2(a, b)   ((a)*(b) >> ENV_VOL_SHIFT)
 
#define VOL_MULT_3(a, b, c)   ((a)*(b)*(c) >> ENV_VOL_SHIFT >> ENV_VOL_SHIFT)
 
#define VOL_MULT_4(a, b, c, d)   (VOL_MULT_2(VOL_MULT_3(a, b, c), d))
 
#define INIT_BANK_BUFFER_SIZE   80
 

Typedefs

typedef s32 s8_24
 
typedef s32 s16_16
 
typedef u8AuFilePos
 
typedef u8WaveData
 
typedef u32 SegData
 
typedef s32(* ALDMAproc2) (s32 addr, s32 len, void *state, u8 arg3)
 
typedef ALDMAproc2(* ALDMANew2) (void *state)
 
typedef InstrumentInstrumentBank[16]
 

Enumerations

enum  AuPriority {
  AU_PRIORITY_FREE = 0 , AU_PRIORITY_BGM_PLAYER_MAIN = 1 , AU_PRIORITY_BGM_PLAYER_AUX = 2 , AU_PRIORITY_SFX_MANAGER = 4 ,
  AU_PRIORITY_MSEQ_MANAGER = 6
}
 
enum  AuVoiceEnvelopeFlags { AU_VOICE_ENV_FLAG_RELEASING = 0x01 , AU_VOICE_ENV_FLAG_HANDLED_VOL_CHANGE = 0x02 , AU_VOICE_ENV_FLAG_KEY_RELEASED = 0x10 , AU_VOICE_ENV_FLAG_VOL_CHANGED = 0x20 }
 
enum  AuVoiceSyncFlags { AU_VOICE_SYNC_FLAG_ALL = 0x02 , AU_VOICE_SYNC_FLAG_PARAMS = 0x04 , AU_VOICE_SYNC_FLAG_PITCH = 0x08 , AU_VOICE_SYNC_FLAG_PAN_FXMIX = 0x10 }
 
enum  AuEffectType {
  AU_FX_NONE = 0 , AU_FX_SMALLROOM = 1 , AU_FX_BIGROOM = 2 , AU_FX_CHORUS = 3 ,
  AU_FX_FLANGE = 4 , AU_FX_ECHO = 5 , AU_FX_CUSTOM_0 = 6 , AU_FX_CUSTOM_1 = 7 ,
  AU_FX_CUSTOM_2 = 8 , AU_FX_CUSTOM_3 = 9 , AU_FX_OTHER_BIGROOM = 10
}
 
enum  MusicPlayer { MUSIC_PLAYER_MAIN = 0 , MUSIC_PLAYER_AUX = 1 }
 
enum  MusicState {
  MUSIC_STATE_IDLE = 0 , MUSIC_STATE_STOP_CURRENT = 1 , MUSIC_STATE_AWAIT_FADEOUT = 2 , MUSIC_STATE_DELAY_2 = 3 ,
  MUSIC_STATE_DELAY_1 = 4 , MUSIC_STATE_PLAY_NEXT = 5
}
 
enum  MusicFlags {
  MUSIC_FLAG_PLAYING = 0x01 , MUSIC_FLAG_ENABLE_PROX_MIX = 0x02 , MUSIC_FLAG_PUSHING = 0x04 , MUSIC_FLAG_POPPING = 0x08 ,
  MUSIC_FLAG_IGNORE_POP = 0x10 , MUSIC_FLAG_FADE_IN_NEXT = 0x20
}
 
enum  BGMSnapshots { BGM_SNAPSHOT_0 = 0 }
 
enum  BGMPolyphony {
  BGM_POLYPHONY_0 = 0 , BGM_POLYPHONY_1 = 1 , BGM_POLYPHONY_UNUSED_A = 2 , BGM_POLYPHONY_UNUSED_B = 3 ,
  BGM_POLYPHONY_UNUSED_C = 4 , BGM_POLYPHONY_2 = 5 , BGM_POLYPHONY_3 = 6 , BGM_POLYPHONY_4 = 7
}
 
enum  BGMPlayerState {
  BGM_PLAY_STATE_IDLE = 0 , BGM_PLAY_STATE_ACTIVE = 1 , BGM_PLAY_STATE_FETCH = 2 , BGM_PLAY_STATE_INIT = 3 ,
  BGM_PLAY_STATE_STOP = 4
}
 
enum  BGMCompositionCommands {
  BGM_COMP_END = 0 , BGM_COMP_PLAY_PHRASE = 1 , BGM_COMP_START_LOOP = 3 , BGM_COMP_WAIT = 4 ,
  BGM_COMP_END_LOOP = 5 , BGM_COMP_END_COND_LOOP_FALSE = 6 , BGM_COMP_END_COND_LOOP_TRUE = 7
}
 
enum  BGMSpecialSubops {
  BGM_SPECIAL_SET_STEREO_DELAY = 1 , BGM_SPECIAL_SEEK_CUSTOM_ENV = 2 , BGM_SPECIAL_WRITE_CUSTOM_ENV = 3 , BGM_SPECIAL_USE_CUSTOM_ENV = 4 ,
  BGM_SPECIAL_TRIGGER_SOUND = 5 , BGM_SPECIAL_PROX_MIX_OVERRIDE = 6
}
 
enum  FxBus { FX_BUS_BGMA_MAIN = 0 , FX_BUS_SOUND = 1 , FX_BUS_BGMB = 2 , FX_BUS_BGMA_AUX = 3 }
 
enum  DelayChannel { AU_DELAY_CHANNEL_NONE = 0 , AU_DELAY_CHANNEL_LEFT = 1 , AU_DELAY_CHANNEL_RIGHT = 2 }
 
enum  DelayState { AU_DELAY_STATE_ON = 0 , AU_DELAY_STATE_OFF = 1 , AU_DELAY_STATE_REQUEST_OFF = 2 }
 
enum  EnvelopeCommand {
  ENV_CMD_END_LOOP = 0xFB , ENV_CMD_START_LOOP = 0xFC , ENV_CMD_ADD_SCALE = 0xFD , ENV_CMD_SET_SCALE = 0xFE ,
  ENV_CMD_END = 0xFF
}
 
enum  EnvelopeTimeIntervals {
  ENV_TIME_60S = 0 , ENV_TIME_55S = 1 , ENV_TIME_50S = 2 , ENV_TIME_45S = 3 ,
  ENV_TIME_40S = 4 , ENV_TIME_35S = 5 , ENV_TIME_30S = 6 , ENV_TIME_27_5S = 7 ,
  ENV_TIME_25S = 8 , ENV_TIME_22_5S = 9 , ENV_TIME_20S = 10 , ENV_TIME_19S = 11 ,
  ENV_TIME_18S = 12 , ENV_TIME_17S = 13 , ENV_TIME_16S = 14 , ENV_TIME_15S = 15 ,
  ENV_TIME_14S = 16 , ENV_TIME_13S = 17 , ENV_TIME_12S = 18 , ENV_TIME_11S = 19 ,
  ENV_TIME_10S = 20 , ENV_TIME_9S = 21 , ENV_TIME_8S = 22 , ENV_TIME_7S = 23 ,
  ENV_TIME_6S = 24 , ENV_TIME_5S = 25 , ENV_TIME_4_5S = 26 , ENV_TIME_4S = 27 ,
  ENV_TIME_3_5S = 28 , ENV_TIME_3S = 29 , ENV_TIME_2750MS = 30 , ENV_TIME_2500MS = 31 ,
  ENV_TIME_2250MS = 32 , ENV_TIME_2S = 33 , ENV_TIME_1900MS = 34 , ENV_TIME_1800MS = 35 ,
  ENV_TIME_1700MS = 36 , ENV_TIME_1600MS = 37 , ENV_TIME_1500MS = 38 , ENV_TIME_1400MS = 39 ,
  ENV_TIME_1300MS = 40 , ENV_TIME_1200MS = 41 , ENV_TIME_1100MS = 42 , ENV_TIME_1S = 43 ,
  ENV_TIME_950MS = 44 , ENV_TIME_900MS = 45 , ENV_TIME_850MS = 46 , ENV_TIME_800MS = 47 ,
  ENV_TIME_750MS = 48 , ENV_TIME_700MS = 49 , ENV_TIME_650MS = 50 , ENV_TIME_600MS = 51 ,
  ENV_TIME_550MS = 52 , ENV_TIME_500MS = 53 , ENV_TIME_450MS = 54 , ENV_TIME_400MS = 55 ,
  ENV_TIME_375MS = 56 , ENV_TIME_350MS = 57 , ENV_TIME_325MS = 58 , ENV_TIME_300MS = 59 ,
  ENV_TIME_290MS = 60 , ENV_TIME_280MS = 61 , ENV_TIME_270MS = 62 , ENV_TIME_260MS = 63 ,
  ENV_TIME_250MS = 64 , ENV_TIME_240MS = 65 , ENV_TIME_230MS = 66 , ENV_TIME_220MS = 67 ,
  ENV_TIME_210MS = 68 , ENV_TIME_200MS = 69 , ENV_TIME_190MS = 70 , ENV_TIME_180MS = 71 ,
  ENV_TIME_170MS = 72 , ENV_TIME_160MS = 73 , ENV_TIME_150MS = 74 , ENV_TIME_140MS = 75 ,
  ENV_TIME_130MS = 76 , ENV_TIME_120MS = 77 , ENV_TIME_110MS = 78 , ENV_TIME_100MS = 79 ,
  ENV_TIME_16UNITS = 80 , ENV_TIME_14UNITS = 81 , ENV_TIME_12UNITS = 81 , ENV_TIME_11UNITS = 83 ,
  ENV_TIME_10UNITS = 84 , ENV_TIME_9UNITS = 85 , ENV_TIME_8UNITS = 86 , ENV_TIME_7UNITS = 87 ,
  ENV_TIME_6UNITS = 88 , ENV_TIME_5UNITS = 89 , ENV_TIME_4UNITS = 90 , ENV_TIME_3UNITS = 91 ,
  ENV_TIME_2UNITS = 92 , ENV_TIME_1UNITS = 93 , ENV_TIME_0 = 94
}
 
enum  SoundPlayerState { SND_PLAYER_STATE_CONTINUE = 0 , SND_PLAYER_STATE_INIT = 1 }
 
enum  SoundManagerState { SND_MANAGER_STATE_ENABLED = 0 , SND_MANAGER_STATE_DISABLED = 1 }
 
enum  SoundInstanceFlags { SOUND_INSTANCE_FLAG_ACTIVE = 1 , SOUND_INSTANCE_FLAG_POSITION_CHANGED = 2 }
 
enum  BankSet {
  BANK_SET_AUX = 1 , BANK_SET_2 = 2 , BANK_SET_MUSIC = 3 , BANK_SET_4 = 4 ,
  BANK_SET_5 = 5 , BANK_SET_6 = 6
}
 corresponds with bank group IDs from INIT file bank list (InitBankEntry.bankSet) More...
 
enum  BankSetIndex {
  BANK_SET_IDX_0 = 0 , BANK_SET_IDX_1 = 1 , BANK_SET_IDX_2 = 2 , BANK_SET_IDX_3 = 3 ,
  BANK_SET_IDX_4 = 4 , BANK_SET_IDX_5 = 5 , BANK_SET_IDX_6 = 6 , BANK_SET_IDX_7 = 7
}
 The bank indices used by audio assets when choosing an intrument. More...
 
enum  AudioType { AUDIO_TYPE_BGM = 0x01 , AUDIO_TYPE_SFX = 0x10 }
 

Variables

volatile u8 AuSynUseStereo
 
s16 DummyInstrumentCodebook [32]
 
u8 DummyInstrumentWavData [190]
 
s32 CUSTOM_SMALL_ROOM_PARAMS []
 
s32 CUSTOM_ECHO_PARAMS_1 []
 
s32 CUSTOM_ECHO_PARAMS_3 []
 
s32 CUSTOM_ECHO_PARAMS_2 []
 
EnvelopePreset DummyInstrumentEnvelope
 
u8 AmbientSoundIDtoMSEQFileIndex []
 
s32 AuEnvelopeIntervals []
 
s32 PreventBGMPlayerUpdate
 While TRUE, the audio thread skips BGM player updates.
 
u16 AmbienceRadioChannel
 
AuSynDrivergActiveSynDriverPtr
 
AuSynDrivergSynDriverPtr
 
u8 AuUseGlobalVolume
 
u16 AuGlobalVolume
 
u8 AuSynStereoDirty
 
AuGlobalsgSoundGlobals
 
BGMPlayergBGMPlayerC
 
BGMPlayergBGMPlayerB
 
AmbienceManagergAuAmbienceManager
 
SoundManagergSoundManager
 
BGMPlayergBGMPlayerA
 

Data Structure Documentation

◆ SeqArgs

union SeqArgs
Data Fields
struct SeqArgs.Branch Branch
struct SeqArgs.Detour Detour
struct SeqArgs.EventTrigger EventTrigger
struct SeqArgs.InstrumentCoarseTune InstrumentCoarseTune
struct SeqArgs.InstrumentFineTune InstrumentFineTune
struct SeqArgs.InstrumentPan InstrumentPan
struct SeqArgs.InstrumentReverb InstrumentReverb
struct SeqArgs.InstrumentVolume InstrumentVolume
struct SeqArgs.MasterEffect MasterEffect
struct SeqArgs.MasterPitchShift MasterPitchShift
struct SeqArgs.MasterTempo MasterTempo
struct SeqArgs.MasterTempoFade MasterTempoFade
struct SeqArgs.MasterVolume MasterVolume
struct SeqArgs.MasterVolumeFade MasterVolumeFade
struct SeqArgs.OverridePatch OverridePatch
struct SeqArgs.RandomPan RandomPan
u8 raw[4]
struct SeqArgs.ReverbType ReverbType
struct SeqArgs.Special Special
struct SeqArgs.TrackDetune TrackDetune
struct SeqArgs.TrackTremolo TrackTremolo
struct SeqArgs.TrackTremoloDepth TrackTremoloDepth
struct SeqArgs.TrackTremoloRate TrackTremoloRate
struct SeqArgs.TrackVolume TrackVolume
struct SeqArgs.TrackVolumeFade TrackVolumeFade
struct SeqArgs.UnkCmdE3 UnkCmdE3
struct SeqArgs.UseInstrument UseInstrument

◆ Fade

struct Fade
Data Fields
s32 baseStep
s16 baseTarget
s16 baseTicks
s16_16 baseVolume
s32 envelopeStep
s16 envelopeTarget
s16 envelopeTicks
s16_16 envelopeVolume
AuCallback onCompleteCallback

◆ AuDelay

struct AuDelay
Data Fields
struct AuLowPass * activeLowpass
struct AuResampler * activeResampler
s16 fbcoef
s16 ffcoef
s16 gain
u32 input
struct AuLowPass * lowpassTemplate
u32 output
char pad_0E[2]
struct AuResampler * resamplerTemplate
s32 rsdelta
f32 rsgain
f32 rsinc
f32 rsval

◆ AuFX

struct AuFX
Data Fields
s16 * base
u8 delayCount
AuDelay * delays
s16 * input
s32 length

◆ AuLowPass

struct AuLowPass
Data Fields
s16 fc
s16 fccoef[16]
s16 fgain
s32 first
POLEF_STATE * fstate
char pad_04[4]

◆ AuFilter

struct AuFilter
Data Fields
AuLowPass * activeLowpass
s16 * base
AuLowPass * lowpassTemplate
char pad_04[2]
char pad_0A[2]
s16 unused_06
s16 unused_08

◆ AuFxBus

struct AuFxBus
Data Fields
u8 curEffectType
AuFX * fxL
AuFX * fxR
u16 gain
struct AuPVoice * head
char pad_02[2]
char pad_0D[3]
struct AuPVoice * tail

◆ AuLoadFilter

struct AuLoadFilter
Data Fields
s32 bookSize
ALDMAproc2 dmaFunc
NUDMAState * dmaState
s32 first
struct Instrument * instrument
s32 lastsam
ALRawLoop loop
ADPCM_STATE * lstate
s32 memin
s32 sample
ADPCM_STATE * state

◆ AuResampler

struct AuResampler
Data Fields
f32 delta
b32 first
f32 ratio
RESAMPLE_STATE * state

◆ AuEnvMixer

struct AuEnvMixer
Data Fields
s16 cvolL
s16 cvolR
s32 delta
b32 dirty
s16 dryamt
s16 lratl
s16 lratm
s16 ltgt
s32 motion
s16 pan
s16 rratl
s16 rratm
s16 rtgt
s32 segEnd
ENVMIX_STATE * state
s16 volume
s16 wetamt

◆ AuPVoice

struct AuPVoice
Data Fields
u8 busID
AuLoadFilter decoder
AuEnvMixer envMixer
u8 index
struct AuPVoice * next
char pad_76[2]
char pad_7A[2]
AuResampler resampler
s16 unused_74

◆ AuSynDriver

struct AuSynDriver
Data Fields
s32 curSamples
ALDMANew2 dmaNew
s32 * dryAccumBuffer
AuFxBus * fxBus
ALHeap * heap
s32 num_bus
s32 num_pvoice
s32 outputRate
AuPVoice * pvoices
s32 unused_04
s32 * wetAccumBuffer

◆ SoundRequest

struct SoundRequest
Data Fields
char pad_9[1]
s8 pan
s16 pitchShift
u16 soundID
u16 toReplaceID
s16 volume

◆ EnvelopeData

struct EnvelopeData
Data Fields
u8 * cmdListPress
u8 * cmdListRelease

◆ EnvelopeOffset

struct EnvelopeOffset
Data Fields
u16 offsetPress
u16 offsetRelease

◆ EnvelopePreset

struct EnvelopePreset
Data Fields
u8 count
EnvelopeOffset offsets[1]
char pad_01[3]

◆ Instrument

struct Instrument
Data Fields
union Instrument.__unnamed83__ __unnamed__
u16 codebookSize
EnvelopePreset * envelopes
u16 keyBase
s32 loopCount
s32 loopEnd
s32 loopStart
ADPCM_STATE * loopState
s16 * predictor
u8 type
s8 unused_26
s8 unused_27
s8 unused_28
s8 unused_29
s8 unused_2A
s8 unused_2B
b8 useDma
u8 * wavData
u32 wavDataLength

◆ SoundLerp

struct SoundLerp
Data Fields
s16_16 current
s16 goal
s16_16 step
s16 time

◆ SoundPlayChange

struct SoundPlayChange
Data Fields
union SoundPlayChange.__unnamed85__ __unnamed__

◆ SoundPlayer

struct SoundPlayer
Data Fields
AuFilePos alternativeDataPos
s8 alternativeType
s16 alternativeVolume
SoundPlayChange changed
u8 cmdListOneShot[8]
s16 coarseTune
u16 curSoundID
u16 delay
u8 * envelopCustomPressProfile
EnvelopeData envelope
u8 envelopePreset
u8 exclusiveID
s8 fineTune
u8 instrumentIndex
u8 loopIterCount
s8 * loopStartPos
u8 masterPan
s16 masterPitchShift unused; presumably another random parameter matching randomPitch and randomVelocity
s16 masterVolume
char pad_4[0xC]
char pad_86[2]
char pad_8D[1]
char pad_95[1]
char pad_AA[2]
f32 pitchRatio
u16 playLength
u8 playVelocity
u8 priority
u8 randomPitch
s8 randomUnused
u8 randomVelocity
u8 reverb
AuFilePos sefDataReadPos
AuFilePos sefReadStart
Instrument sfxInstrument
Instrument * sfxInstrumentRef
u8 sfxPan
u8 sfxParamsFlags
s16 sfxVolume
u8 state
u8 triggers
SoundLerp tuneLerp
u8 unused_A0
SoundLerp volumeLerp

◆ SoundManagerMusicEvent

struct SoundManagerMusicEvent
Data Fields
union SoundManagerMusicEvent.__unnamed89__ __unnamed__

◆ SoundManagerCustomCmdList

struct SoundManagerCustomCmdList
Data Fields
u16 data[3]

◆ SoundManager

struct SoundManager
Data Fields
u16 baseVolume
SoundManagerMusicEvent bgmSounds[4]
u8 busID
s32 busVolume
struct AuVoice * curVoice
u8 curVoiceIndex
SoundManagerCustomCmdList customCmdList[4]
s8 customReverbAmounts[8]
s32 * customReverbParams[8]
s8 defaultReverbAmt
s32 * extraSounds
Fade fadeInfo
u8 firstVoice
s32 frameCounter Number of video frame updates, used to update random numnber.
struct AuGlobals * globals
u8 lastCustomEffectIdx
s32 nextUpdateCounter
s32 nextUpdateInterval
s32 nextUpdateStep
s32 * normalSounds[8]
char pad_166[2]
char pad_8E[2]
char pad_C1[1]
SoundPlayer players[8]
s16 prevUpdateResult Unused, may indicate error status.
u8 priority
s32 randomValue
s32 resetPending
u8 * sefData
u8 sfxQueueReadPos Read index for the soundQueue ring buffer (audio thread)
u8 sfxQueueWritePos Write index for the soundQueue ring buffer (game thread)
SoundRequest soundQueue[16] Lock-free ring buffer for queueing sound effects from game thread.
u8 state
s8 unused_162
s8 unused_165

◆ SoundInstance

struct SoundInstance
Data Fields
s32 flags
u8 pan
s16 pitchShift
Vec3f pos
s32 soundID
s32 sourceFlags
u8 volume

◆ AlternatingSoundSet

struct AlternatingSoundSet
Data Fields
s16 curIndex
s16 soundCount
s32 * sounds

◆ AuVoice

struct AuVoice
Data Fields
u8 busID
s8 clientPriority
s16 clientVolume
u8 * cmdPtr
s32 delta
u8 donePending
f32 envDelta
s32 envDuration
EnvelopeData envelope
u8 envelopeFlags
u8 envInitial
u8 envIntervalIndex
u8 envRelativeStart
s32 envScale
u8 envTarget
s32 envTimeLeft
Instrument * instrument
b8 isRelativeRelease
u8 loopCounter
u8 * loopStart
char pad_11[3]
char pad_46[2]
u8 pan
f32 pitchRatio
u8 priority
u8 reverb
u8 syncFlags
s32 unused_20
u8 unused_3C
s16 volume

◆ BGMFileInfo

struct BGMFileInfo
Data Fields
u16 compositions[4]
u16 drumCount
u16 drums
u16 instrumentCount
u16 instruments
char pad_11[3]
u8 timingPreset

◆ BGMHeader

struct BGMHeader
Data Fields
BGMFileInfo info
s32 name
char pad_C[4]
s32 signature
s32 size

◆ BGMDrumInfo

struct BGMDrumInfo
Data Fields
u16 bankPatch
u16 keyBase
char pad_B[1]
s8 pan
u8 randPan
u8 randReverb
u8 randTune
u8 randVolume
u8 reverb
u8 volume

◆ BGMInstrumentInfo

struct BGMInstrumentInfo
Data Fields
u16 bankPatch
s8 coarseTune
s8 fineTune
char pad_7[1]
s8 pan
u8 reverb
u8 volume

◆ AUFileMetadata

struct AUFileMetadata
Data Fields
s32 signature
s32 size

◆ SBNFileEntry

struct SBNFileEntry
Data Fields
union SBNFileEntry.__unnamed93__ __unnamed__
s32 offset

◆ SBNHeader

struct SBNHeader
Data Fields
SBNFileEntry entries[0]
s32 fileListOffset
s32 fullFileSize
s32 INIToffset
AUFileMetadata mdata
s32 numEntries
char unused_04[4]
char unused_08[8]
char unused_28[24]
s32 versionOffset

◆ SEFHeader

struct SEFHeader
Data Fields
u8 hasExtraSection
AUFileMetadata mdata
s32 name
u16 section2000
u16 sections[8]
char unused_0C[2]
char unused_0F[1]

◆ INITHeader

struct INITHeader
Data Fields
u16 bankListOffset
u16 bankListSize
AUFileMetadata mdata
u16 mseqListOffset
u16 mseqListSize
char pad_14[0xC]
u16 songListOffset
u16 songListSize

◆ InitSongEntry

struct InitSongEntry
Data Fields
u16 bgmFileIndex
u16 bkFileIndex[3]

◆ InitBankEntry

struct InitBankEntry
Data Fields
u8 bankIndex
u8 bankSet
u16 fileIndex

◆ PERHeader

struct PERHeader
Data Fields
AUFileMetadata mdata
char pad_08[8]

◆ PEREntry

struct PEREntry
Data Fields
BGMDrumInfo drums[12]

◆ BKHeader

struct BKHeader
Data Fields
u16 envelopesLength
u16 envelopesStart
u16 format
u16 instruments[16]
u16 instrumetsLength
u16 loopStatesLength
u16 loopStatesStart
s32 name
char pad_02[2]
char pad_0E[3]
u16 predictorsLength
u16 predictorsStart
u16 signature
s32 size
u8 swizzled

◆ BKFileBuffer

struct BKFileBuffer
Data Fields
u8 data[0x800]
BKHeader header

◆ AuEffectChange

struct AuEffectChange
Data Fields
u8 changed
char pad_02[2]
u8 type

◆ BGMPlayerSnapshot

struct BGMPlayerSnapshot
Data Fields
u8 assigned
struct BGMPlayer * bgmPlayer
u8 priority

◆ AuGlobals

struct AuGlobals
Data Fields
AuCallback audioThreadCallbacks[2]
BKFileBuffer * auxBanks[3]
InstrumentBank auxBankSet[4]
InstrumentBank bankSet2[16]
InstrumentBank bankSet4[16]
InstrumentBank bankSet5[16]
InstrumentBank bankSet6[4]
InstrumentBank * bankSets[8]
s32 baseRomOffset
s32 bkFileListOffset
s32 bkListLength
u8 channelDelayBusID
u8 channelDelayPending
u8 channelDelaySide
u8 channelDelayState
u8 channelDelayTime
struct BGMHeader * dataBGM[2]
struct MSEQHeader * dataMSEQ[2]
PEREntry * dataPER
BGMInstrumentInfo * dataPRG
SEFHeader * dataSEF
InstrumentBank defaultBankSet[1]
BGMDrumInfo defaultDrumEntry
Instrument * defaultInstrument
BGMInstrumentInfo defaultPRGEntry
AuEffectChange effectChanges[4] copied from INIT to the audio heap, seems to exist only to find SEF, PER, and PRG

set this to change the effect on an effect bus

u16 * extraFileList
s32 fileListLength copied from SBN to the audio heap
s32 flushMusicEventQueue
InstrumentBank musicBankSet[16]
MusicEventTrigger * musicEventQueue
u32 musicEventQueueCount
MusicEventTrigger * musicEventQueuePos
f32 outputRate
char pad_130D[3]
char pad_131C[4]
char pad_28[4]
struct BGMPlayer * resumeCopyFrom
struct BGMPlayer * resumeCopyTo
s32 resumeFadeEnd
s32 resumeFadeStart
s32 resumeFadeTime
b32 resumeRequested
s32 resumeSongName
SBNFileEntry * sbnFileList
BGMPlayerSnapshot snapshots[1]
InitSongEntry * songList
s32 songListLength copied from INIT to the audio heap
AuVoice voices[24]

◆ BGMPlayerTrack

struct BGMPlayerTrack
Data Fields
AuFilePos bgmReadPos
s8 busID prevents notes from this track from being assigned voices, implemented for linked track pairs
SoundPlayChange changed
s32 delayTime
s16 detourLength
s16 detune
EnvelopeData envelope
u8 firstVoice number of polyphonic voices for this track
u8 index
u16 insCoarseDetune
s8 insFineDetune semitone detune for instrument, reset if instrument is changed
u8 insPan track volume, independent of instrument,
u8 insReverb
Instrument * instrument
s8_24 insVolume
s16_16 insVolumeStep volume for current instrument, reset if instrument is changed
s16_16 insVolumeTarget
s32 insVolumeTicks
u8 isDrumTrack
u8 lastVoice voice idx start
u8 linkedTrackID
u8 muted
char pad_3C[2]
char pad_5D[3]
u16 patch
u8 polyphonicIdx voice idx end, exclusive
u8 polyVoiceCount
u8 pressOverride
AuFilePos prevReadPos
u8 proxMixSetChanged
u8 proxMixValChanged
u8 proxVol1
u8 proxVol2
s16_16 proxVolume
s16_16 proxVolumeStep
s16 proxVolumeTarget
s16 proxVolumeTicks
u8 randomPanAmount
AuFilePos savedPos
s16 tremoloDelay live track detune, independent of instrument, instantly affects all active voices and subsequent notes played
u8 tremoloDepth
u8 tremoloRate
s8 volume cent detune for instrument, reset if instrument is changed

◆ SeqNote

struct SeqNote
Data Fields
s16 detune
Instrument * ins
s32 length
u8 pendingTick
f32 pitchRatio
s16 randDetune
u16 tremoloDelay attack + sustain time
u8 tremoloDepth
u8 tremoloPhase
u8 velocity
s16 volume

◆ BGMPlayer

struct BGMPlayer
Data Fields
u8 bFadeConfigSetsVolume
u8 bgmDrumCount
struct BGMHeader * bgmFile
s32 bgmFileIndex
u8 bgmInstrumentCount
u8 busID
s32 busVolume
s32 cmdBufData[8]
u8 cmdBufOverflows
u8 cmdBufPending Buffer for an unused (legacy) system for controlling the BGMPlayer from the main thread.
u8 cmdBufReadPos
u8 cmdBufWritePos
SegData * compActiveLoopEndPos[4]
u8 compLoopCounters[4]
u8 compLoopDepth
SegData * compLoopStartLabels[32]
SegData * compReadPos
SegData * compStartPos
u8 conditionalLoopFlags
s32 curVariation
u8 customEnvelopeWritePos[8] Currently active (for writing) custom envelope.
s16 customPressEnvelopes[8][9]
s16 detune
BGMDrumInfo * drums[12]
BGMDrumInfo * drumsInfo
u8 effectIndices[4]
u8 effectValues[4] No means to modify value is implemented.
Fade fadeInfo
s32 frameCounter current update counter value
AuGlobals * globals
u8 initLinkMute
BGMInstrumentInfo * instrumentsInfo
u16 masterPitchShift
u8 masterState
s32 masterTempo
u16 masterTempoBPM
s32 masterTempoStep
s32 masterTempoTarget
s32 masterTempoTicks
s8_24 masterVolume
s32 masterVolumeStep
s32 masterVolumeTarget
s32 masterVolumeTicks
u16 maxTempo
s32 nextUpdateCounter update counter threshold for a single tick
s32 nextUpdateStep
SeqNote notes[24]
char pad_172[2]
char pad_21F[1]
char pad_228[2]
char pad_236[2]
char pad_5E[2]
u8 paused
SegData * phraseStartPos
f32 playbackRate
u8 polyphonyCounts[8]
s16 prevUpdateResult
u8 priority Used to mute any linked tracks after the first one encountered.
u8 proxMixID
s32 proxMixValue
u8 proxMixVolume
s32 pushSongName
s32 randomValue1
s32 randomValue2
SeqArgs seqCmdArgs
s32 songID
s32 songName
s32 songPlayingCounter video frames (60 fps)
SoundManager * soundManager
u8 * tickRatePtr
s32 tickUpdateInterval update counter amount to add per audio frame
u8 totalVoices
BGMPlayerTrack tracks[16]
u8 * trackVolsConfig Dynamically customizable press envelopes.
u16 unk_58
u16 unk_5A
u8 unused_21E
u8 unused_222
s8 volumeChanged Current write position for each custom envelope.
u8 writingCustomEnvelope

◆ SongStartRequest

struct SongStartRequest
Data Fields
s32 duration
s32 finalVolume
char pad_18[8]
s32 songName
s32 startVolume
s32 unused_14
s32 variation

◆ SongFadeOutRequest

struct SongFadeOutRequest
Data Fields
AuCallback doneCallback
s32 duration
s32 finalVolume
s32 onPush
char pad_18[8]
s32 songName
s32 unused_08

◆ SongSuspendRequest

struct SongSuspendRequest
Data Fields
s32 duration
s32 finalVolume
s32 index
char pad_18[8] if true, the player is paused, else it will be saved to a snapshot
s32 pauseMode
s32 songName
s32 startVolume

◆ SongResumeRequest

struct SongResumeRequest
Data Fields
s32 duration
s32 finalVolume
s32 index
char pad_18[8]
s32 pauseMode
s32 songName
s32 startVolume

◆ SongSwapLinkedRequest

struct SongSwapLinkedRequest
Data Fields
b32 enabled
char pad_14[0xC]
s32 songName
char unused_04[4]
char unused_08[4]
char unused_0C[4]

◆ MSEQTrackData

struct MSEQTrackData
Data Fields
s16 delta
s16 goal
s16 time
u8 trackIndex
u8 type

◆ MSEQHeader

struct MSEQHeader
Data Fields
u16 dataStart
u8 firstVoiceIdx
s32 name
char pad_12[6]
s32 signature
s32 size
u8 trackSettingsCount
u16 trackSettingsOffset

◆ AmbienceTrack

struct AmbienceTrack
Data Fields
EnvelopeData envelope
u8 flags
Instrument * instrument
char pad_27[1]
s8 pan
s8 reverb
SoundLerp tuneLerp
SoundLerp volumeLerp

◆ AmbienceSavedVoice

struct AmbienceSavedVoice
Data Fields
char pad_03[1]
u8 trackIndex
u8 tune
s8 volume

◆ AmbVoiceStateInfo

union AmbVoiceStateInfo
Data Fields
struct AmbVoiceStateInfo.__unnamed97__ __unnamed__
s32 all

◆ AmbienceVoiceState

struct AmbienceVoiceState
Data Fields
AmbVoiceStateInfo info
u8 isResumable
s16 pitch
s8 volume

◆ AmbiencePlayer

struct AmbiencePlayer
Data Fields
s32 delay
u8 fadeGoal
u8 fadeSettingsGoal
u8 fadeSettingsInitial
u16 fadeSettingsTime
u8 fadeSettingsType
s8_24 fadeStep
u16 fadeTime
s8_24 fadeVolume
u32 firstVoiceIdx
AmbVoiceStateInfo id
u32 lastVoiceIdx
u8 loopCount[2]
AuFilePos loopStartPos[2]
u8 mode
MSEQHeader * mseqFile
s32 mseqName
AuFilePos mseqReadPos
AuFilePos mseqReadStart
char pad_1C[4]
char pad_27[1]
char pad_2E[2]
u8 playState
u8 resetRequired
AmbienceSavedVoice savedVoices[4]
AmbienceTrack tracks[10]

◆ AmbienceManager

struct AmbienceManager
Data Fields
u8 busID
AuGlobals * globals
u8 loadTracksFadeInfo
MSEQHeader * mseqFiles[4]
s32 nextUpdateCounter
s32 nextUpdateInterval
s32 nextUpdateStep
u8 numActivePlayers
AmbiencePlayer players[4]
u8 priority
AmbienceVoiceState voiceStates[16]

◆ ALConfig

struct ALConfig
Data Fields
void * dmaNew
ALHeap * heap
s32 num_bus
s32 num_pvoice
s32 outputRate
char pad_0D[3]
u8 unused_0C hardware sample output rate

◆ SeqArgs.MasterTempo

struct SeqArgs.MasterTempo
Data Fields
u16 value

◆ SeqArgs.MasterVolume

struct SeqArgs.MasterVolume
Data Fields
u8 value

◆ SeqArgs.MasterPitchShift

struct SeqArgs.MasterPitchShift
Data Fields
u8 cent

◆ SeqArgs.UnkCmdE3

struct SeqArgs.UnkCmdE3
Data Fields
u8 effectType

◆ SeqArgs.MasterTempoFade

struct SeqArgs.MasterTempoFade
Data Fields
u16 time
u16 value

◆ SeqArgs.MasterVolumeFade

struct SeqArgs.MasterVolumeFade
Data Fields
u16 time
u8 value

◆ SeqArgs.MasterEffect

struct SeqArgs.MasterEffect
Data Fields
u8 index
u8 value

◆ SeqArgs.OverridePatch

struct SeqArgs.OverridePatch
Data Fields
u8 bank
u8 patch

◆ SeqArgs.InstrumentVolume

struct SeqArgs.InstrumentVolume
Data Fields
u8 value

◆ SeqArgs.InstrumentPan

struct SeqArgs.InstrumentPan
Data Fields
u8 value

◆ SeqArgs.InstrumentReverb

struct SeqArgs.InstrumentReverb
Data Fields
u8 value

◆ SeqArgs.TrackVolume

struct SeqArgs.TrackVolume
Data Fields
u8 value

◆ SeqArgs.InstrumentCoarseTune

struct SeqArgs.InstrumentCoarseTune
Data Fields
s8 semitone

◆ SeqArgs.InstrumentFineTune

struct SeqArgs.InstrumentFineTune
Data Fields
s8 cent

◆ SeqArgs.TrackDetune

struct SeqArgs.TrackDetune
Data Fields
s16 cents

◆ SeqArgs.TrackTremolo

struct SeqArgs.TrackTremolo
Data Fields
u8 delay
u8 depth
u8 speed

◆ SeqArgs.TrackTremoloRate

struct SeqArgs.TrackTremoloRate
Data Fields
u8 value

◆ SeqArgs.TrackTremoloDepth

struct SeqArgs.TrackTremoloDepth
Data Fields
u8 value

◆ SeqArgs.RandomPan

struct SeqArgs.RandomPan
Data Fields
u8 pan0
u8 pan1

◆ SeqArgs.UseInstrument

struct SeqArgs.UseInstrument
Data Fields
u8 index

◆ SeqArgs.TrackVolumeFade

struct SeqArgs.TrackVolumeFade
Data Fields
u16 time
u8 value

◆ SeqArgs.ReverbType

struct SeqArgs.ReverbType
Data Fields
u8 index

◆ SeqArgs.Branch

struct SeqArgs.Branch
Data Fields
u16 offset
u8 tableCount

◆ SeqArgs.EventTrigger

struct SeqArgs.EventTrigger
Data Fields
u32 eventInfo

◆ SeqArgs.Detour

struct SeqArgs.Detour
Data Fields
u8 length
u16 offset

◆ SeqArgs.Special

struct SeqArgs.Special
Data Fields
u8 arg1
u8 arg2
u8 type

◆ Instrument.__unnamed83__

union Instrument.__unnamed83__
Data Fields
f32 pitchRatio
s32 sampleRate

◆ SoundPlayChange.__unnamed85__

union SoundPlayChange.__unnamed85__
Data Fields
struct SoundPlayChange.__unnamed85__.__unnamed87__ __unnamed__
u32 all

◆ SoundPlayChange.__unnamed85__.__unnamed87__

struct SoundPlayChange.__unnamed85__.__unnamed87__
Data Fields
u8 pan
u8 reverb
u8 tune
u8 volume

◆ SoundManagerMusicEvent.__unnamed89__

union SoundManagerMusicEvent.__unnamed89__
Data Fields
struct SoundManagerMusicEvent.__unnamed89__.__unnamed91__ __unnamed__
s32 raw

◆ SoundManagerMusicEvent.__unnamed89__.__unnamed91__

struct SoundManagerMusicEvent.__unnamed89__.__unnamed91__
Data Fields
u8 index
char pad_01[0x2]
u8 volume

◆ SBNFileEntry.__unnamed93__

union SBNFileEntry.__unnamed93__
Data Fields
struct SBNFileEntry.__unnamed93__.__unnamed95__ __unnamed__
u32 data

◆ SBNFileEntry.__unnamed93__.__unnamed95__

struct SBNFileEntry.__unnamed93__.__unnamed95__
Data Fields
s8 fmt
char pad_05[1]
s16 size

◆ AmbVoiceStateInfo.__unnamed97__

struct AmbVoiceStateInfo.__unnamed97__
Data Fields
u8 playerIndex
u8 released Set to TRUE when the voice should be released/stopped.
u8 trackIndex Index of the owning ambience player.

Track index within the player (0–9)

u8 tune Note or drum ID used to differentiate voices on the same track.

Macro Definition Documentation

◆ ADPCMFBYTES

◆ ALIGN16_

#define ALIGN16_ ( val)    (((val) + 0xF) & 0xFFF0)

Referenced by au_load_BK_to_bank(), and au_load_INIT().

◆ AU_FILE_RELATIVE

◆ AU_FILTER_LENGTH

#define AU_FILTER_LENGTH   (28 * AUDIO_SAMPLES)

Referenced by au_filter_create().

◆ AU_FRAME_USEC

◆ AU_FX_LENGTH

#define AU_FX_LENGTH   (14 * AUDIO_SAMPLES)

Referenced by au_fx_create(), and au_fx_load_preset().

◆ AU_FX_MAX_TAPS

#define AU_FX_MAX_TAPS   4

Referenced by au_fx_create().

◆ AU_MAX_BUS_VOLUME

#define AU_MAX_BUS_VOLUME   0x8000

◆ AU_MAX_VOLUME_16

◆ AU_MAX_VOLUME_32

#define AU_MAX_VOLUME_32   0x7FFFFFFF

Referenced by au_mseq_play_sequence().

◆ AU_MAX_VOLUME_8

◆ AU_OCTAVE_CENTS

◆ AU_PAN_MAX

◆ AU_PAN_MID

#define AU_PAN_MID   64

Referenced by au_sfx_init().

◆ AU_PAN_MIN

#define AU_PAN_MIN   0

◆ AU_SEMITONE_CENTS

#define AU_SEMITONE_CENTS   100

◆ AU_SONG_NONE

◆ AU_VOL_8_TO_16

#define AU_VOL_8_TO_16 ( vol)    (((vol) << 8) | 0xFF)

◆ AU_VOL_8_TO_32

#define AU_VOL_8_TO_32 ( vol)    (((vol) << 0x18) | 0xFFFFFF)

◆ AUDIO_COMMAND_LIST_BUFFER_SIZE

#define AUDIO_COMMAND_LIST_BUFFER_SIZE   0x4000

Referenced by create_audio_system().

◆ AUDIO_HEAP_SIZE

#define AUDIO_HEAP_SIZE   0x56000

Referenced by create_audio_system().

◆ AUDIO_MAX_SAMPLES

#define AUDIO_MAX_SAMPLES   AUDIO_SAMPLES

Referenced by create_audio_system(), and nuAuMgr().

◆ AUDIO_SAMPLES

◆ BGM_DEFAULT_BPM

#define BGM_DEFAULT_BPM   156

◆ BGM_DEFAULT_TEMPO

◆ BGM_DEFAULT_TICKS_PER_BEAT

#define BGM_DEFAULT_TICKS_PER_BEAT   48

Referenced by au_bgm_player_init().

◆ BGM_DEFAULT_UPDATE_STEP

◆ BGM_MAX_INSTRUMNETS

#define BGM_MAX_INSTRUMNETS   0x80

◆ BGM_MFRAMES_PER_MINUTE

#define BGM_MFRAMES_PER_MINUTE   (BGM_UPDATE_SCALE * (60 * HARDWARE_OUTPUT_RATE) / AUDIO_SAMPLES)

◆ BGM_TEMPO_SCALE

#define BGM_TEMPO_SCALE   (100)

◆ BGM_TEMPO_TO_UPDATE_UNITS

◆ BGM_UPDATE_SCALE

#define BGM_UPDATE_SCALE   (1000)

◆ DEFAULT_KEYBASE

#define DEFAULT_KEYBASE   4800

Referenced by au_sfx_init().

◆ ENV_VOL_MAX

#define ENV_VOL_MAX   0x80

◆ ENV_VOL_SHIFT

#define ENV_VOL_SHIFT   7

◆ HARDWARE_OUTPUT_RATE

#define HARDWARE_OUTPUT_RATE   32000

Referenced by create_audio_system().

◆ INIT_BANK_BUFFER_SIZE

#define INIT_BANK_BUFFER_SIZE   80

Referenced by au_load_BK_headers().

◆ MUS_QUEUE_SIZE

#define MUS_QUEUE_SIZE   16

◆ N_AL_AUX_L_OUT

#define N_AL_AUX_L_OUT   0x7C0

Referenced by alAudioFrame().

◆ N_AL_AUX_R_OUT

#define N_AL_AUX_R_OUT   0x930

Referenced by alAudioFrame().

◆ N_AL_DECODER_IN

#define N_AL_DECODER_IN   0

Referenced by au_pull_voice().

◆ N_AL_DECODER_OUT

#define N_AL_DECODER_OUT   0x170

Referenced by au_pull_voice().

◆ N_AL_MAIN_L_OUT

#define N_AL_MAIN_L_OUT   0x4E0

Referenced by alAudioFrame().

◆ N_AL_MAIN_R_OUT

#define N_AL_MAIN_R_OUT   0x650

Referenced by alAudioFrame().

◆ N_AL_RESAMPLER_OUT

#define N_AL_RESAMPLER_OUT   0

◆ N_AL_TEMP_0

#define N_AL_TEMP_0   0

Referenced by alAudioFrame().

◆ N_AL_TEMP_1

#define N_AL_TEMP_1   0x170

Referenced by alAudioFrame().

◆ N_AL_TEMP_2

#define N_AL_TEMP_2   0x2E0

◆ NO_INSTRUMENT

#define NO_INSTRUMENT   ((Instrument*) -1)

◆ PRG_MAX_COUNT

#define PRG_MAX_COUNT   0x40

◆ SFX_QUEUE_SIZE

#define SFX_QUEUE_SIZE   16

◆ SND_MAX_DURATION

◆ SND_MIN_DURATION

◆ VIDEO_FRAMES_PER_SECOND

#define VIDEO_FRAMES_PER_SECOND   60

Referenced by create_audio_system().

◆ VOL_MULT_2

#define VOL_MULT_2 ( a,
b )   ((a)*(b) >> ENV_VOL_SHIFT)

Referenced by au_mseq_player_update().

◆ VOL_MULT_3

#define VOL_MULT_3 ( a,
b,
c )   ((a)*(b)*(c) >> ENV_VOL_SHIFT >> ENV_VOL_SHIFT)

◆ VOL_MULT_4

#define VOL_MULT_4 ( a,
b,
c,
d )   (VOL_MULT_2(VOL_MULT_3(a, b, c), d))

Typedef Documentation

◆ ALDMANew2

typedef ALDMAproc2(* ALDMANew2) (void *state)

◆ ALDMAproc2

typedef s32(* ALDMAproc2) (s32 addr, s32 len, void *state, u8 arg3)

◆ AuFilePos

◆ InstrumentBank

typedef Instrument* InstrumentBank[16]

◆ s16_16

◆ s8_24

◆ SegData

◆ WaveData

Enumeration Type Documentation

◆ AudioType

Enumerator
AUDIO_TYPE_BGM 
AUDIO_TYPE_SFX 

◆ AuEffectType

Enumerator
AU_FX_NONE 
AU_FX_SMALLROOM 
AU_FX_BIGROOM 
AU_FX_CHORUS 
AU_FX_FLANGE 
AU_FX_ECHO 
AU_FX_CUSTOM_0 
AU_FX_CUSTOM_1 
AU_FX_CUSTOM_2 
AU_FX_CUSTOM_3 
AU_FX_OTHER_BIGROOM 

◆ AuPriority

Enumerator
AU_PRIORITY_FREE 
AU_PRIORITY_BGM_PLAYER_MAIN 
AU_PRIORITY_BGM_PLAYER_AUX 
AU_PRIORITY_SFX_MANAGER 
AU_PRIORITY_MSEQ_MANAGER 

◆ AuVoiceEnvelopeFlags

Enumerator
AU_VOICE_ENV_FLAG_RELEASING 
AU_VOICE_ENV_FLAG_HANDLED_VOL_CHANGE 
AU_VOICE_ENV_FLAG_KEY_RELEASED 
AU_VOICE_ENV_FLAG_VOL_CHANGED 

◆ AuVoiceSyncFlags

Enumerator
AU_VOICE_SYNC_FLAG_ALL 
AU_VOICE_SYNC_FLAG_PARAMS 
AU_VOICE_SYNC_FLAG_PITCH 
AU_VOICE_SYNC_FLAG_PAN_FXMIX 

◆ BankSet

corresponds with bank group IDs from INIT file bank list (InitBankEntry.bankSet)

Enumerator
BANK_SET_AUX 
BANK_SET_2 
BANK_SET_MUSIC 
BANK_SET_4 
BANK_SET_5 
BANK_SET_6 

◆ BankSetIndex

The bank indices used by audio assets when choosing an intrument.

These are similar to values in BankSet, but not identical

Enumerator
BANK_SET_IDX_0 
BANK_SET_IDX_1 
BANK_SET_IDX_2 
BANK_SET_IDX_3 
BANK_SET_IDX_4 
BANK_SET_IDX_5 
BANK_SET_IDX_6 
BANK_SET_IDX_7 

◆ BGMCompositionCommands

Enumerator
BGM_COMP_END 
BGM_COMP_PLAY_PHRASE 
BGM_COMP_START_LOOP 
BGM_COMP_WAIT 
BGM_COMP_END_LOOP 
BGM_COMP_END_COND_LOOP_FALSE 
BGM_COMP_END_COND_LOOP_TRUE 

◆ BGMPlayerState

Enumerator
BGM_PLAY_STATE_IDLE 
BGM_PLAY_STATE_ACTIVE 
BGM_PLAY_STATE_FETCH 
BGM_PLAY_STATE_INIT 
BGM_PLAY_STATE_STOP 

◆ BGMPolyphony

Enumerator
BGM_POLYPHONY_0 
BGM_POLYPHONY_1 
BGM_POLYPHONY_UNUSED_A 
BGM_POLYPHONY_UNUSED_B 
BGM_POLYPHONY_UNUSED_C 
BGM_POLYPHONY_2 
BGM_POLYPHONY_3 
BGM_POLYPHONY_4 

◆ BGMSnapshots

Enumerator
BGM_SNAPSHOT_0 

◆ BGMSpecialSubops

Enumerator
BGM_SPECIAL_SET_STEREO_DELAY 
BGM_SPECIAL_SEEK_CUSTOM_ENV 
BGM_SPECIAL_WRITE_CUSTOM_ENV 
BGM_SPECIAL_USE_CUSTOM_ENV 
BGM_SPECIAL_TRIGGER_SOUND 
BGM_SPECIAL_PROX_MIX_OVERRIDE 

◆ DelayChannel

Enumerator
AU_DELAY_CHANNEL_NONE 
AU_DELAY_CHANNEL_LEFT 
AU_DELAY_CHANNEL_RIGHT 

◆ DelayState

Enumerator
AU_DELAY_STATE_ON 
AU_DELAY_STATE_OFF 

channel delay is enabled (though not necessarily applied)

AU_DELAY_STATE_REQUEST_OFF 

channel delay is disabled

◆ EnvelopeCommand

Enumerator
ENV_CMD_END_LOOP 
ENV_CMD_START_LOOP 
ENV_CMD_ADD_SCALE 
ENV_CMD_SET_SCALE 
ENV_CMD_END 

◆ EnvelopeTimeIntervals

Enumerator
ENV_TIME_60S 
ENV_TIME_55S 
ENV_TIME_50S 
ENV_TIME_45S 
ENV_TIME_40S 
ENV_TIME_35S 
ENV_TIME_30S 
ENV_TIME_27_5S 
ENV_TIME_25S 
ENV_TIME_22_5S 
ENV_TIME_20S 
ENV_TIME_19S 
ENV_TIME_18S 
ENV_TIME_17S 
ENV_TIME_16S 
ENV_TIME_15S 
ENV_TIME_14S 
ENV_TIME_13S 
ENV_TIME_12S 
ENV_TIME_11S 
ENV_TIME_10S 
ENV_TIME_9S 
ENV_TIME_8S 
ENV_TIME_7S 
ENV_TIME_6S 
ENV_TIME_5S 
ENV_TIME_4_5S 
ENV_TIME_4S 
ENV_TIME_3_5S 
ENV_TIME_3S 
ENV_TIME_2750MS 
ENV_TIME_2500MS 
ENV_TIME_2250MS 
ENV_TIME_2S 
ENV_TIME_1900MS 
ENV_TIME_1800MS 
ENV_TIME_1700MS 
ENV_TIME_1600MS 
ENV_TIME_1500MS 
ENV_TIME_1400MS 
ENV_TIME_1300MS 
ENV_TIME_1200MS 
ENV_TIME_1100MS 
ENV_TIME_1S 
ENV_TIME_950MS 
ENV_TIME_900MS 
ENV_TIME_850MS 
ENV_TIME_800MS 
ENV_TIME_750MS 
ENV_TIME_700MS 
ENV_TIME_650MS 
ENV_TIME_600MS 
ENV_TIME_550MS 
ENV_TIME_500MS 
ENV_TIME_450MS 
ENV_TIME_400MS 
ENV_TIME_375MS 
ENV_TIME_350MS 
ENV_TIME_325MS 
ENV_TIME_300MS 
ENV_TIME_290MS 
ENV_TIME_280MS 
ENV_TIME_270MS 
ENV_TIME_260MS 
ENV_TIME_250MS 
ENV_TIME_240MS 
ENV_TIME_230MS 
ENV_TIME_220MS 
ENV_TIME_210MS 
ENV_TIME_200MS 
ENV_TIME_190MS 
ENV_TIME_180MS 
ENV_TIME_170MS 
ENV_TIME_160MS 
ENV_TIME_150MS 
ENV_TIME_140MS 
ENV_TIME_130MS 
ENV_TIME_120MS 
ENV_TIME_110MS 
ENV_TIME_100MS 
ENV_TIME_16UNITS 
ENV_TIME_14UNITS 
ENV_TIME_12UNITS 
ENV_TIME_11UNITS 
ENV_TIME_10UNITS 
ENV_TIME_9UNITS 
ENV_TIME_8UNITS 
ENV_TIME_7UNITS 
ENV_TIME_6UNITS 
ENV_TIME_5UNITS 
ENV_TIME_4UNITS 
ENV_TIME_3UNITS 
ENV_TIME_2UNITS 
ENV_TIME_1UNITS 
ENV_TIME_0 

◆ FxBus

Enumerator
FX_BUS_BGMA_MAIN 
FX_BUS_SOUND 
FX_BUS_BGMB 
FX_BUS_BGMA_AUX 

◆ MusicFlags

Enumerator
MUSIC_FLAG_PLAYING 
MUSIC_FLAG_ENABLE_PROX_MIX 
MUSIC_FLAG_PUSHING 
MUSIC_FLAG_POPPING 
MUSIC_FLAG_IGNORE_POP 
MUSIC_FLAG_FADE_IN_NEXT 

◆ MusicPlayer

Enumerator
MUSIC_PLAYER_MAIN 
MUSIC_PLAYER_AUX 

◆ MusicState

Enumerator
MUSIC_STATE_IDLE 
MUSIC_STATE_STOP_CURRENT 
MUSIC_STATE_AWAIT_FADEOUT 
MUSIC_STATE_DELAY_2 
MUSIC_STATE_DELAY_1 
MUSIC_STATE_PLAY_NEXT 

◆ SoundInstanceFlags

Enumerator
SOUND_INSTANCE_FLAG_ACTIVE 
SOUND_INSTANCE_FLAG_POSITION_CHANGED 

◆ SoundManagerState

Enumerator
SND_MANAGER_STATE_ENABLED 
SND_MANAGER_STATE_DISABLED 

◆ SoundPlayerState

Enumerator
SND_PLAYER_STATE_CONTINUE 
SND_PLAYER_STATE_INIT 

Variable Documentation

◆ AmbienceRadioChannel

u16 AmbienceRadioChannel
extern

◆ AmbientSoundIDtoMSEQFileIndex

u8 AmbientSoundIDtoMSEQFileIndex[]
extern

◆ AuEnvelopeIntervals

s32 AuEnvelopeIntervals[]
extern

Referenced by au_update_voices(), and au_voice_start().

◆ AuGlobalVolume

◆ AuSynStereoDirty

u8 AuSynStereoDirty
extern

◆ AuSynUseStereo

◆ AuUseGlobalVolume

u8 AuUseGlobalVolume
extern

◆ CUSTOM_ECHO_PARAMS_1

s32 CUSTOM_ECHO_PARAMS_1[]
extern

Referenced by au_sfx_init().

◆ CUSTOM_ECHO_PARAMS_2

s32 CUSTOM_ECHO_PARAMS_2[]
extern

Referenced by au_sfx_init().

◆ CUSTOM_ECHO_PARAMS_3

s32 CUSTOM_ECHO_PARAMS_3[]
extern

Referenced by au_sfx_init().

◆ CUSTOM_SMALL_ROOM_PARAMS

s32 CUSTOM_SMALL_ROOM_PARAMS[]
extern

Referenced by au_sfx_init().

◆ DummyInstrumentCodebook

s16 DummyInstrumentCodebook[32]
extern

◆ DummyInstrumentEnvelope

EnvelopePreset DummyInstrumentEnvelope
extern

◆ DummyInstrumentWavData

u8 DummyInstrumentWavData[190]
extern

◆ gActiveSynDriverPtr

◆ gAuAmbienceManager

◆ gBGMPlayerA

◆ gBGMPlayerB

◆ gBGMPlayerC

BGMPlayer* gBGMPlayerC
extern

Referenced by au_engine_init().

◆ gSoundGlobals

◆ gSoundManager

◆ gSynDriverPtr

◆ PreventBGMPlayerUpdate

s32 PreventBGMPlayerUpdate
extern

While TRUE, the audio thread skips BGM player updates.

Used by the game thread to lock out BGM updates while modifying player state, to prevent race conditions.

Referenced by au_update_clients_for_audio_frame(), snd_notify_engine_ready(), snd_song_request_fade_in(), snd_song_request_fade_in_default(), snd_song_request_play(), snd_song_request_play_default(), and snd_song_request_pop().