Paper Mario DX
Paper Mario (N64) modding
 
Loading...
Searching...
No Matches
audio.h File Reference

Go to the source code of this file.

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.__unnamed84__
 
union  SoundPlayChange.__unnamed86__
 
struct  SoundPlayChange.__unnamed86__.__unnamed88__
 
union  SoundManagerMusicEvent.__unnamed90__
 
struct  SoundManagerMusicEvent.__unnamed90__.__unnamed92__
 
union  SBNFileEntry.__unnamed94__
 
struct  SBNFileEntry.__unnamed94__.__unnamed96__
 
struct  AmbVoiceStateInfo.__unnamed98__
 

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
u8 raw[4]
struct SeqArgs.MasterTempo MasterTempo
struct SeqArgs.MasterVolume MasterVolume
struct SeqArgs.MasterPitchShift MasterPitchShift
struct SeqArgs.UnkCmdE3 UnkCmdE3
struct SeqArgs.MasterTempoFade MasterTempoFade
struct SeqArgs.MasterVolumeFade MasterVolumeFade
struct SeqArgs.MasterEffect MasterEffect
struct SeqArgs.OverridePatch OverridePatch
struct SeqArgs.InstrumentVolume InstrumentVolume
struct SeqArgs.InstrumentPan InstrumentPan
struct SeqArgs.InstrumentReverb InstrumentReverb
struct SeqArgs.TrackVolume TrackVolume
struct SeqArgs.InstrumentCoarseTune InstrumentCoarseTune
struct SeqArgs.InstrumentFineTune InstrumentFineTune
struct SeqArgs.TrackDetune TrackDetune
struct SeqArgs.TrackTremolo TrackTremolo
struct SeqArgs.TrackTremoloRate TrackTremoloRate
struct SeqArgs.TrackTremoloDepth TrackTremoloDepth
struct SeqArgs.RandomPan RandomPan
struct SeqArgs.UseInstrument UseInstrument
struct SeqArgs.TrackVolumeFade TrackVolumeFade
struct SeqArgs.ReverbType ReverbType
struct SeqArgs.Branch Branch
struct SeqArgs.EventTrigger EventTrigger
struct SeqArgs.Detour Detour
struct SeqArgs.Special Special

◆ Fade

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

◆ AuDelay

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

◆ AuFX

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

◆ AuLowPass

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

◆ AuFilter

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

◆ AuFxBus

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

◆ AuLoadFilter

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

◆ AuResampler

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

◆ AuEnvMixer

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

◆ AuPVoice

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

◆ AuSynDriver

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

◆ SoundRequest

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

◆ 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
char pad_01[3]
EnvelopeOffset offsets[1]

◆ Instrument

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

◆ SoundLerp

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

◆ SoundPlayChange

struct SoundPlayChange
Data Fields
union SoundPlayChange.__unnamed86__ __unnamed__

◆ SoundPlayer

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

◆ SoundManagerMusicEvent

struct SoundManagerMusicEvent
Data Fields
union SoundManagerMusicEvent.__unnamed90__ __unnamed__

◆ SoundManagerCustomCmdList

struct SoundManagerCustomCmdList
Data Fields
u16 data[3]

◆ SoundManager

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

◆ SoundInstance

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

◆ AlternatingSoundSet

struct AlternatingSoundSet
Data Fields
s32 * sounds
s16 soundCount
s16 curIndex

◆ AuVoice

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

◆ BGMFileInfo

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

◆ BGMHeader

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

◆ BGMDrumInfo

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

◆ BGMInstrumentInfo

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

◆ AUFileMetadata

struct AUFileMetadata
Data Fields
s32 signature
s32 size

◆ SBNFileEntry

struct SBNFileEntry
Data Fields
s32 offset
union SBNFileEntry.__unnamed94__ __unnamed__

◆ SBNHeader

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

◆ SEFHeader

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

◆ INITHeader

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

◆ InitSongEntry

struct InitSongEntry
Data Fields
u16 bgmFileIndex
u16 bkFileIndex[3]

◆ InitBankEntry

struct InitBankEntry
Data Fields
u16 fileIndex
u8 bankIndex
u8 bankSet

◆ 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 signature
char pad_02[2]
s32 size
s32 name
u16 format
u8 swizzled
char pad_0E[3]
u16 instruments[16]
u16 instrumetsLength
u16 loopStatesStart
u16 loopStatesLength
u16 predictorsStart
u16 predictorsLength
u16 envelopesStart
u16 envelopesLength

◆ BKFileBuffer

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

◆ AuEffectChange

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

◆ BGMPlayerSnapshot

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

◆ AuGlobals

struct AuGlobals
Data Fields
f32 outputRate
Instrument * defaultInstrument
BGMDrumInfo defaultDrumEntry
BGMInstrumentInfo defaultPRGEntry
s32 baseRomOffset
SBNFileEntry * sbnFileList
s32 fileListLength copied from SBN to the audio heap
char pad_28[4]
InitSongEntry * songList
s32 songListLength copied from INIT to the audio heap
s32 bkFileListOffset
s32 bkListLength
u16 * extraFileList
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

u8 channelDelayPending
u8 channelDelayBusID
u8 channelDelayTime
u8 channelDelaySide
PEREntry * dataPER
BGMInstrumentInfo * dataPRG
struct BGMHeader * dataBGM[2]
struct MSEQHeader * dataMSEQ[2]
BGMPlayerSnapshot snapshots[1]
struct BGMPlayer * resumeCopyTo
struct BGMPlayer * resumeCopyFrom
s32 resumeSongName
b32 resumeRequested
s32 resumeFadeTime
s32 resumeFadeStart
s32 resumeFadeEnd
MusicEventTrigger * musicEventQueuePos
MusicEventTrigger * musicEventQueue
u32 musicEventQueueCount
s32 flushMusicEventQueue
SEFHeader * dataSEF
AuCallback audioThreadCallbacks[2]
InstrumentBank defaultBankSet[1]
InstrumentBank musicBankSet[16]
InstrumentBank auxBankSet[4]
InstrumentBank bankSet2[16]
InstrumentBank bankSet4[16]
InstrumentBank bankSet5[16]
InstrumentBank bankSet6[4]
InstrumentBank * bankSets[8]
u8 channelDelayState
char pad_130D[3]
BKFileBuffer * auxBanks[3]
char pad_131C[4]
AuVoice voices[24]

◆ BGMPlayerTrack

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

◆ SeqNote

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

◆ BGMPlayer

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

◆ SongStartRequest

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

◆ SongFadeOutRequest

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

◆ SongSuspendRequest

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

◆ SongResumeRequest

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

◆ SongSwapLinkedRequest

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

◆ MSEQTrackData

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

◆ MSEQHeader

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

◆ AmbienceTrack

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

◆ AmbienceSavedVoice

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

◆ AmbVoiceStateInfo

union AmbVoiceStateInfo
Data Fields
struct AmbVoiceStateInfo.__unnamed98__ __unnamed__
s32 all

◆ AmbienceVoiceState

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

◆ AmbiencePlayer

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

◆ AmbienceManager

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

◆ ALConfig

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

◆ 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 speed
u8 depth

◆ 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
u16 offset
u8 length

◆ SeqArgs.Special

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

◆ Instrument.__unnamed84__

union Instrument.__unnamed84__
Data Fields
f32 pitchRatio
s32 sampleRate

◆ SoundPlayChange.__unnamed86__

union SoundPlayChange.__unnamed86__
Data Fields
u32 all
struct SoundPlayChange.__unnamed86__.__unnamed88__ __unnamed__

◆ SoundPlayChange.__unnamed86__.__unnamed88__

struct SoundPlayChange.__unnamed86__.__unnamed88__
Data Fields
u8 tune
u8 volume
u8 pan
u8 reverb

◆ SoundManagerMusicEvent.__unnamed90__

union SoundManagerMusicEvent.__unnamed90__
Data Fields
s32 raw
struct SoundManagerMusicEvent.__unnamed90__.__unnamed92__ __unnamed__

◆ SoundManagerMusicEvent.__unnamed90__.__unnamed92__

struct SoundManagerMusicEvent.__unnamed90__.__unnamed92__
Data Fields
u8 index
char pad_01[0x2]
u8 volume

◆ SBNFileEntry.__unnamed94__

union SBNFileEntry.__unnamed94__
Data Fields
u32 data
struct SBNFileEntry.__unnamed94__.__unnamed96__ __unnamed__

◆ SBNFileEntry.__unnamed94__.__unnamed96__

struct SBNFileEntry.__unnamed94__.__unnamed96__
Data Fields
s8 fmt
char pad_05[1]
s16 size

◆ AmbVoiceStateInfo.__unnamed98__

struct AmbVoiceStateInfo.__unnamed98__
Data Fields
u8 playerIndex
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.
u8 released Set to true when the voice should be released/stopped.

Macro Definition Documentation

◆ NO_INSTRUMENT

#define NO_INSTRUMENT   ((Instrument*) -1)

Definition at line 14 of file audio.h.

Referenced by au_bgm_player_initialize().

◆ AUDIO_SAMPLES

◆ AU_FX_MAX_TAPS

#define AU_FX_MAX_TAPS   4

Definition at line 18 of file audio.h.

Referenced by au_fx_create().

◆ AU_FX_LENGTH

#define AU_FX_LENGTH   (14 * AUDIO_SAMPLES)

Definition at line 19 of file audio.h.

Referenced by au_fx_create(), and au_fx_load_preset().

◆ AU_FILTER_LENGTH

#define AU_FILTER_LENGTH   (28 * AUDIO_SAMPLES)

Definition at line 21 of file audio.h.

Referenced by au_filter_create().

◆ HARDWARE_OUTPUT_RATE

#define HARDWARE_OUTPUT_RATE   32000

Definition at line 23 of file audio.h.

Referenced by create_audio_system().

◆ AU_FRAME_USEC

#define AU_FRAME_USEC   5750

◆ N_AL_DECODER_IN

#define N_AL_DECODER_IN   0

Definition at line 29 of file audio.h.

Referenced by au_pull_voice().

◆ N_AL_RESAMPLER_OUT

#define N_AL_RESAMPLER_OUT   0

Definition at line 30 of file audio.h.

◆ N_AL_TEMP_0

#define N_AL_TEMP_0   0

Definition at line 31 of file audio.h.

Referenced by alAudioFrame().

◆ N_AL_DECODER_OUT

#define N_AL_DECODER_OUT   0x170

Definition at line 32 of file audio.h.

Referenced by au_pull_voice().

◆ N_AL_TEMP_1

#define N_AL_TEMP_1   0x170

Definition at line 33 of file audio.h.

Referenced by alAudioFrame().

◆ N_AL_TEMP_2

#define N_AL_TEMP_2   0x2E0

Definition at line 34 of file audio.h.

◆ N_AL_MAIN_L_OUT

#define N_AL_MAIN_L_OUT   0x4E0

Definition at line 35 of file audio.h.

Referenced by alAudioFrame().

◆ N_AL_MAIN_R_OUT

#define N_AL_MAIN_R_OUT   0x650

Definition at line 36 of file audio.h.

Referenced by alAudioFrame().

◆ N_AL_AUX_L_OUT

#define N_AL_AUX_L_OUT   0x7C0

Definition at line 37 of file audio.h.

Referenced by alAudioFrame().

◆ N_AL_AUX_R_OUT

#define N_AL_AUX_R_OUT   0x930

Definition at line 38 of file audio.h.

Referenced by alAudioFrame().

◆ AU_MAX_BUS_VOLUME

#define AU_MAX_BUS_VOLUME   0x8000

Definition at line 40 of file audio.h.

Referenced by au_bgm_player_init(), au_fade_set_volume(), and au_sfx_init().

◆ ALIGN16_

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

Definition at line 42 of file audio.h.

Referenced by au_load_BK_to_bank(), and au_load_INIT().

◆ AU_FILE_RELATIVE

◆ VIDEO_FRAMES_PER_SECOND

#define VIDEO_FRAMES_PER_SECOND   60

Definition at line 51 of file audio.h.

Referenced by create_audio_system().

◆ AUDIO_HEAP_SIZE

#define AUDIO_HEAP_SIZE   0x56000

Definition at line 52 of file audio.h.

Referenced by create_audio_system().

◆ AUDIO_MAX_SAMPLES

#define AUDIO_MAX_SAMPLES   AUDIO_SAMPLES

Definition at line 53 of file audio.h.

Referenced by create_audio_system(), and nuAuMgr().

◆ AUDIO_COMMAND_LIST_BUFFER_SIZE

#define AUDIO_COMMAND_LIST_BUFFER_SIZE   0x4000

Definition at line 54 of file audio.h.

Referenced by create_audio_system().

◆ ADPCMFBYTES

#define ADPCMFBYTES   9

Definition at line 57 of file audio.h.

Referenced by au_pull_voice(), au_syn_set_wavetable(), and au_syn_start_voice_params().

◆ DEFAULT_KEYBASE

#define DEFAULT_KEYBASE   4800

Definition at line 59 of file audio.h.

Referenced by au_sfx_init().

◆ AU_MAX_VOLUME_8

◆ AU_MAX_VOLUME_16

◆ AU_MAX_VOLUME_32

#define AU_MAX_VOLUME_32   0x7FFFFFFF

Definition at line 63 of file audio.h.

Referenced by au_mseq_play_sequence().

◆ AU_PAN_MIN

#define AU_PAN_MIN   0

Definition at line 65 of file audio.h.

◆ AU_PAN_MID

#define AU_PAN_MID   64

Definition at line 66 of file audio.h.

Referenced by au_sfx_init().

◆ AU_PAN_MAX

◆ 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)

Definition at line 72 of file audio.h.

◆ BGM_MAX_INSTRUMNETS

#define BGM_MAX_INSTRUMNETS   0x80

Definition at line 75 of file audio.h.

Referenced by au_BGMCmd_F5_UseInstrument().

◆ BGM_DEFAULT_TICKS_PER_BEAT

#define BGM_DEFAULT_TICKS_PER_BEAT   48

Definition at line 77 of file audio.h.

Referenced by au_bgm_player_init().

◆ BGM_UPDATE_SCALE

#define BGM_UPDATE_SCALE   (1000)

Definition at line 81 of file audio.h.

Referenced by au_bgm_set_tick_resolution().

◆ BGM_TEMPO_SCALE

#define BGM_TEMPO_SCALE   (100)

Definition at line 83 of file audio.h.

◆ BGM_MFRAMES_PER_MINUTE

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

Definition at line 86 of file audio.h.

Referenced by au_bgm_set_tick_resolution().

◆ BGM_DEFAULT_BPM

#define BGM_DEFAULT_BPM   156

Definition at line 89 of file audio.h.

Referenced by au_bgm_player_initialize().

◆ BGM_DEFAULT_TEMPO

#define BGM_DEFAULT_TEMPO   (BGM_DEFAULT_BPM * BGM_TEMPO_SCALE)

Definition at line 91 of file audio.h.

Referenced by au_bgm_player_init(), and au_bgm_player_initialize().

◆ BGM_DEFAULT_UPDATE_STEP

#define BGM_DEFAULT_UPDATE_STEP   156250

◆ BGM_TEMPO_TO_UPDATE_UNITS

#define BGM_TEMPO_TO_UPDATE_UNITS ( tempo)    (BGM_UPDATE_SCALE * (u32)(tempo) / BGM_TEMPO_SCALE)

◆ SND_MIN_DURATION

◆ SND_MAX_DURATION

#define SND_MAX_DURATION   10000

◆ AU_SONG_NONE

#define AU_SONG_NONE   -1

Definition at line 105 of file audio.h.

Referenced by bgm_init_music_players(), and bgm_update_music_control().

◆ MUS_QUEUE_SIZE

#define MUS_QUEUE_SIZE   16

Definition at line 107 of file audio.h.

Referenced by au_engine_init(), and snd_song_trigger_music_event().

◆ SFX_QUEUE_SIZE

#define SFX_QUEUE_SIZE   16

Definition at line 108 of file audio.h.

Referenced by au_sfx_begin_video_frame(), au_sfx_clear_queue(), and au_sfx_enqueue_event().

◆ AU_SEMITONE_CENTS

#define AU_SEMITONE_CENTS   100

Definition at line 111 of file audio.h.

Referenced by au_BGMCmd_ED_InstrumentCoarseTune(), and au_BGMCmd_F5_UseInstrument().

◆ AU_OCTAVE_CENTS

#define AU_OCTAVE_CENTS   (12 * AU_SEMITONE_CENTS)

◆ ENV_VOL_MAX

#define ENV_VOL_MAX   0x80

Definition at line 116 of file audio.h.

Referenced by au_init_voices(), au_voice_start(), and au_voice_step().

◆ ENV_VOL_SHIFT

#define ENV_VOL_SHIFT   7

Definition at line 117 of file audio.h.

◆ PRG_MAX_COUNT

#define PRG_MAX_COUNT   0x40

Definition at line 119 of file audio.h.

Referenced by au_BGMCmd_F5_UseInstrument(), au_engine_init(), and au_load_PRG().

◆ VOL_MULT_2

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

Definition at line 122 of file audio.h.

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)

Definition at line 125 of file audio.h.

Referenced by au_mseq_player_update(), au_mseq_restore_voices(), and au_voice_start().

◆ VOL_MULT_4

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

Definition at line 128 of file audio.h.

Referenced by au_update_voices(), and au_voice_after_volume_change().

◆ INIT_BANK_BUFFER_SIZE

#define INIT_BANK_BUFFER_SIZE   80

Definition at line 973 of file audio.h.

Referenced by au_load_BK_headers().

Typedef Documentation

◆ s8_24

Definition at line 8 of file audio.h.

◆ s16_16

Definition at line 9 of file audio.h.

◆ AuFilePos

Definition at line 11 of file audio.h.

◆ WaveData

Definition at line 12 of file audio.h.

◆ SegData

Definition at line 130 of file audio.h.

◆ ALDMAproc2

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

Definition at line 573 of file audio.h.

◆ ALDMANew2

typedef ALDMAproc2(* ALDMANew2) (void *state)

Definition at line 574 of file audio.h.

◆ InstrumentBank

typedef Instrument* InstrumentBank[16]

Definition at line 699 of file audio.h.

Enumeration Type Documentation

◆ AuPriority

Enumerator
AU_PRIORITY_FREE 
AU_PRIORITY_BGM_PLAYER_MAIN 
AU_PRIORITY_BGM_PLAYER_AUX 
AU_PRIORITY_SFX_MANAGER 
AU_PRIORITY_MSEQ_MANAGER 

Definition at line 132 of file audio.h.

132 {
138} AuPriority;
AuPriority
Definition audio.h:132
@ AU_PRIORITY_BGM_PLAYER_MAIN
Definition audio.h:134
@ AU_PRIORITY_MSEQ_MANAGER
Definition audio.h:137
@ AU_PRIORITY_FREE
Definition audio.h:133
@ AU_PRIORITY_SFX_MANAGER
Definition audio.h:136
@ AU_PRIORITY_BGM_PLAYER_AUX
Definition audio.h:135

◆ 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 

Definition at line 140 of file audio.h.

140 {
145};
@ AU_VOICE_ENV_FLAG_KEY_RELEASED
Definition audio.h:143
@ AU_VOICE_ENV_FLAG_RELEASING
Definition audio.h:141
@ AU_VOICE_ENV_FLAG_VOL_CHANGED
Definition audio.h:144
@ AU_VOICE_ENV_FLAG_HANDLED_VOL_CHANGE
Definition audio.h:142

◆ AuVoiceSyncFlags

Enumerator
AU_VOICE_SYNC_FLAG_ALL 
AU_VOICE_SYNC_FLAG_PARAMS 
AU_VOICE_SYNC_FLAG_PITCH 
AU_VOICE_SYNC_FLAG_PAN_FXMIX 

Definition at line 147 of file audio.h.

147 {
152};
@ AU_VOICE_SYNC_FLAG_PARAMS
Definition audio.h:149
@ AU_VOICE_SYNC_FLAG_PAN_FXMIX
Definition audio.h:151
@ AU_VOICE_SYNC_FLAG_PITCH
Definition audio.h:150
@ AU_VOICE_SYNC_FLAG_ALL
Definition audio.h:148

◆ 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 

Definition at line 154 of file audio.h.

154 {
155 AU_FX_NONE = 0,
156 AU_FX_SMALLROOM = 1,
157 AU_FX_BIGROOM = 2,
158 AU_FX_CHORUS = 3,
159 AU_FX_FLANGE = 4,
160 AU_FX_ECHO = 5,
161 AU_FX_CUSTOM_0 = 6,
162 AU_FX_CUSTOM_1 = 7,
163 AU_FX_CUSTOM_2 = 8,
164 AU_FX_CUSTOM_3 = 9,
AuEffectType
Definition audio.h:154
@ AU_FX_CUSTOM_3
Definition audio.h:164
@ AU_FX_FLANGE
Definition audio.h:159
@ AU_FX_CUSTOM_2
Definition audio.h:163
@ AU_FX_CUSTOM_1
Definition audio.h:162
@ AU_FX_ECHO
Definition audio.h:160
@ AU_FX_CHORUS
Definition audio.h:158
@ AU_FX_SMALLROOM
Definition audio.h:156
@ AU_FX_OTHER_BIGROOM
Definition audio.h:165
@ AU_FX_BIGROOM
Definition audio.h:157
@ AU_FX_NONE
Definition audio.h:155
@ AU_FX_CUSTOM_0
Definition audio.h:161

◆ MusicPlayer

Enumerator
MUSIC_PLAYER_MAIN 
MUSIC_PLAYER_AUX 

Definition at line 168 of file audio.h.

168 {
MusicPlayer
Definition audio.h:168
@ MUSIC_PLAYER_MAIN
Definition audio.h:169
@ MUSIC_PLAYER_AUX
Definition audio.h:170

◆ 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 

Definition at line 173 of file audio.h.

173 {
180} MusicState;
MusicState
Definition audio.h:173
@ MUSIC_STATE_PLAY_NEXT
Definition audio.h:179
@ MUSIC_STATE_IDLE
Definition audio.h:174
@ MUSIC_STATE_STOP_CURRENT
Definition audio.h:175
@ MUSIC_STATE_AWAIT_FADEOUT
Definition audio.h:176
@ MUSIC_STATE_DELAY_2
Definition audio.h:177
@ MUSIC_STATE_DELAY_1
Definition audio.h:178

◆ 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 

Definition at line 182 of file audio.h.

182 {
183 MUSIC_FLAG_PLAYING = 0x01,
185 MUSIC_FLAG_PUSHING = 0x04,
186 MUSIC_FLAG_POPPING = 0x08,
189} MusicFlags;
MusicFlags
Definition audio.h:182
@ MUSIC_FLAG_PUSHING
Definition audio.h:185
@ MUSIC_FLAG_PLAYING
Definition audio.h:183
@ MUSIC_FLAG_POPPING
Definition audio.h:186
@ MUSIC_FLAG_FADE_IN_NEXT
Definition audio.h:188
@ MUSIC_FLAG_IGNORE_POP
Definition audio.h:187
@ MUSIC_FLAG_ENABLE_PROX_MIX
Definition audio.h:184

◆ BGMSnapshots

Enumerator
BGM_SNAPSHOT_0 

Definition at line 191 of file audio.h.

191 {
192 BGM_SNAPSHOT_0 = 0,
BGMSnapshots
Definition audio.h:191
@ BGM_SNAPSHOT_0
Definition audio.h:192

◆ 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 

Definition at line 195 of file audio.h.

195 {
196 BGM_POLYPHONY_0 = 0,
197 BGM_POLYPHONY_1 = 1,
201 BGM_POLYPHONY_2 = 5,
202 BGM_POLYPHONY_3 = 6,
203 BGM_POLYPHONY_4 = 7,
BGMPolyphony
Definition audio.h:195
@ BGM_POLYPHONY_UNUSED_A
Definition audio.h:198
@ BGM_POLYPHONY_4
Definition audio.h:203
@ BGM_POLYPHONY_UNUSED_C
Definition audio.h:200
@ BGM_POLYPHONY_2
Definition audio.h:201
@ BGM_POLYPHONY_1
Definition audio.h:197
@ BGM_POLYPHONY_0
Definition audio.h:196
@ BGM_POLYPHONY_UNUSED_B
Definition audio.h:199
@ BGM_POLYPHONY_3
Definition audio.h:202

◆ BGMPlayerState

Enumerator
BGM_PLAY_STATE_IDLE 
BGM_PLAY_STATE_ACTIVE 
BGM_PLAY_STATE_FETCH 
BGM_PLAY_STATE_INIT 
BGM_PLAY_STATE_STOP 

Definition at line 206 of file audio.h.

206 {
BGMPlayerState
Definition audio.h:206
@ BGM_PLAY_STATE_IDLE
Definition audio.h:207
@ BGM_PLAY_STATE_FETCH
Definition audio.h:209
@ BGM_PLAY_STATE_STOP
Definition audio.h:211
@ BGM_PLAY_STATE_ACTIVE
Definition audio.h:208
@ BGM_PLAY_STATE_INIT
Definition audio.h:210

◆ 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 

Definition at line 214 of file audio.h.

214 {
215 BGM_COMP_END = 0,
218 BGM_COMP_WAIT = 4,
BGMCompositionCommands
Definition audio.h:214
@ BGM_COMP_PLAY_PHRASE
Definition audio.h:216
@ BGM_COMP_START_LOOP
Definition audio.h:217
@ BGM_COMP_END
Definition audio.h:215
@ BGM_COMP_END_COND_LOOP_FALSE
Definition audio.h:220
@ BGM_COMP_END_COND_LOOP_TRUE
Definition audio.h:221
@ BGM_COMP_WAIT
Definition audio.h:218
@ BGM_COMP_END_LOOP
Definition audio.h:219

◆ 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 

Definition at line 224 of file audio.h.

224 {
225 BGM_SPECIAL_SET_STEREO_DELAY = 1, // sets delay to desync the left or right channel
226 BGM_SPECIAL_SEEK_CUSTOM_ENV = 2, // set active custom envelope index for writing
227 BGM_SPECIAL_WRITE_CUSTOM_ENV = 3, // write custom envelope data
228 BGM_SPECIAL_USE_CUSTOM_ENV = 4, // select which custom envelope to use
BGMSpecialSubops
Definition audio.h:224
@ BGM_SPECIAL_PROX_MIX_OVERRIDE
Definition audio.h:230
@ BGM_SPECIAL_SEEK_CUSTOM_ENV
Definition audio.h:226
@ BGM_SPECIAL_USE_CUSTOM_ENV
Definition audio.h:228
@ BGM_SPECIAL_WRITE_CUSTOM_ENV
Definition audio.h:227
@ BGM_SPECIAL_TRIGGER_SOUND
Definition audio.h:229
@ BGM_SPECIAL_SET_STEREO_DELAY
Definition audio.h:225

◆ FxBus

Enumerator
FX_BUS_BGMA_MAIN 
FX_BUS_SOUND 
FX_BUS_BGMB 
FX_BUS_BGMA_AUX 

Definition at line 233 of file audio.h.

233 {
235 FX_BUS_SOUND = 1,
236 FX_BUS_BGMB = 2,
237 FX_BUS_BGMA_AUX = 3,
238} FxBus;
FxBus
Definition audio.h:233
@ FX_BUS_BGMA_MAIN
Definition audio.h:234
@ FX_BUS_BGMA_AUX
Definition audio.h:237
@ FX_BUS_SOUND
Definition audio.h:235
@ FX_BUS_BGMB
Definition audio.h:236

◆ DelayChannel

Enumerator
AU_DELAY_CHANNEL_NONE 
AU_DELAY_CHANNEL_LEFT 
AU_DELAY_CHANNEL_RIGHT 

Definition at line 240 of file audio.h.

240 {
DelayChannel
Definition audio.h:240
@ AU_DELAY_CHANNEL_LEFT
Definition audio.h:242
@ AU_DELAY_CHANNEL_RIGHT
Definition audio.h:243
@ AU_DELAY_CHANNEL_NONE
Definition audio.h:241

◆ 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

Definition at line 246 of file audio.h.

246 {
250} DelayState;
DelayState
Definition audio.h:246
@ AU_DELAY_STATE_OFF
channel delay is enabled (though not necessarily applied)
Definition audio.h:248
@ AU_DELAY_STATE_ON
Definition audio.h:247
@ AU_DELAY_STATE_REQUEST_OFF
channel delay is disabled
Definition audio.h:249

◆ EnvelopeCommand

Enumerator
ENV_CMD_END_LOOP 
ENV_CMD_START_LOOP 
ENV_CMD_ADD_SCALE 
ENV_CMD_SET_SCALE 
ENV_CMD_END 

Definition at line 252 of file audio.h.

252 {
253 ENV_CMD_END_LOOP = 0xFB,
254 ENV_CMD_START_LOOP = 0xFC,
255 ENV_CMD_ADD_SCALE = 0xFD,
256 ENV_CMD_SET_SCALE = 0xFE,
257 ENV_CMD_END = 0xFF,
EnvelopeCommand
Definition audio.h:252
@ ENV_CMD_END
Definition audio.h:257
@ ENV_CMD_ADD_SCALE
Definition audio.h:255
@ ENV_CMD_SET_SCALE
Definition audio.h:256
@ ENV_CMD_START_LOOP
Definition audio.h:254
@ ENV_CMD_END_LOOP
Definition audio.h:253

◆ 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 

Definition at line 260 of file audio.h.

260 {
261 ENV_TIME_60S = 0,
262 ENV_TIME_55S = 1,
263 ENV_TIME_50S = 2,
264 ENV_TIME_45S = 3,
265 ENV_TIME_40S = 4,
266 ENV_TIME_35S = 5,
267 ENV_TIME_30S = 6,
268 ENV_TIME_27_5S = 7,
269 ENV_TIME_25S = 8,
270 ENV_TIME_22_5S = 9,
271 ENV_TIME_20S = 10,
272 ENV_TIME_19S = 11,
273 ENV_TIME_18S = 12,
274 ENV_TIME_17S = 13,
275 ENV_TIME_16S = 14,
276 ENV_TIME_15S = 15,
277 ENV_TIME_14S = 16,
278 ENV_TIME_13S = 17,
279 ENV_TIME_12S = 18,
280 ENV_TIME_11S = 19,
281 ENV_TIME_10S = 20,
282 ENV_TIME_9S = 21,
283 ENV_TIME_8S = 22,
284 ENV_TIME_7S = 23,
285 ENV_TIME_6S = 24,
286 ENV_TIME_5S = 25,
287 ENV_TIME_4_5S = 26,
288 ENV_TIME_4S = 27,
289 ENV_TIME_3_5S = 28,
290 ENV_TIME_3S = 29,
291 ENV_TIME_2750MS = 30,
292 ENV_TIME_2500MS = 31,
293 ENV_TIME_2250MS = 32,
294 ENV_TIME_2S = 33,
295 ENV_TIME_1900MS = 34,
296 ENV_TIME_1800MS = 35,
297 ENV_TIME_1700MS = 36,
298 ENV_TIME_1600MS = 37,
299 ENV_TIME_1500MS = 38,
300 ENV_TIME_1400MS = 39,
301 ENV_TIME_1300MS = 40,
302 ENV_TIME_1200MS = 41,
303 ENV_TIME_1100MS = 42,
304 ENV_TIME_1S = 43,
305 ENV_TIME_950MS = 44,
306 ENV_TIME_900MS = 45,
307 ENV_TIME_850MS = 46,
308 ENV_TIME_800MS = 47,
309 ENV_TIME_750MS = 48,
310 ENV_TIME_700MS = 49,
311 ENV_TIME_650MS = 50,
312 ENV_TIME_600MS = 51,
313 ENV_TIME_550MS = 52,
314 ENV_TIME_500MS = 53,
315 ENV_TIME_450MS = 54,
316 ENV_TIME_400MS = 55,
317 ENV_TIME_375MS = 56,
318 ENV_TIME_350MS = 57,
319 ENV_TIME_325MS = 58,
320 ENV_TIME_300MS = 59,
321 ENV_TIME_290MS = 60,
322 ENV_TIME_280MS = 61,
323 ENV_TIME_270MS = 62,
324 ENV_TIME_260MS = 63,
325 ENV_TIME_250MS = 64,
326 ENV_TIME_240MS = 65,
327 ENV_TIME_230MS = 66,
328 ENV_TIME_220MS = 67,
329 ENV_TIME_210MS = 68,
330 ENV_TIME_200MS = 69,
331 ENV_TIME_190MS = 70,
332 ENV_TIME_180MS = 71,
333 ENV_TIME_170MS = 72,
334 ENV_TIME_160MS = 73,
335 ENV_TIME_150MS = 74,
336 ENV_TIME_140MS = 75,
337 ENV_TIME_130MS = 76,
338 ENV_TIME_120MS = 77,
339 ENV_TIME_110MS = 78,
340 ENV_TIME_100MS = 79,
341 ENV_TIME_16UNITS = 80,
342 ENV_TIME_14UNITS = 81,
343 ENV_TIME_12UNITS = 81,
344 ENV_TIME_11UNITS = 83,
345 ENV_TIME_10UNITS = 84,
346 ENV_TIME_9UNITS = 85,
347 ENV_TIME_8UNITS = 86,
348 ENV_TIME_7UNITS = 87,
349 ENV_TIME_6UNITS = 88,
350 ENV_TIME_5UNITS = 89,
351 ENV_TIME_4UNITS = 90,
352 ENV_TIME_3UNITS = 91,
353 ENV_TIME_2UNITS = 92,
354 ENV_TIME_1UNITS = 93,
355 ENV_TIME_0 = 94,
356};
@ ENV_TIME_14UNITS
Definition audio.h:342
@ ENV_TIME_350MS
Definition audio.h:318
@ ENV_TIME_4_5S
Definition audio.h:287
@ ENV_TIME_280MS
Definition audio.h:322
@ ENV_TIME_140MS
Definition audio.h:336
@ ENV_TIME_45S
Definition audio.h:264
@ ENV_TIME_55S
Definition audio.h:262
@ ENV_TIME_240MS
Definition audio.h:326
@ ENV_TIME_270MS
Definition audio.h:323
@ ENV_TIME_800MS
Definition audio.h:308
@ ENV_TIME_8S
Definition audio.h:283
@ ENV_TIME_120MS
Definition audio.h:338
@ ENV_TIME_1UNITS
Definition audio.h:354
@ ENV_TIME_1100MS
Definition audio.h:303
@ ENV_TIME_18S
Definition audio.h:273
@ ENV_TIME_375MS
Definition audio.h:317
@ ENV_TIME_17S
Definition audio.h:274
@ ENV_TIME_210MS
Definition audio.h:329
@ ENV_TIME_160MS
Definition audio.h:334
@ ENV_TIME_170MS
Definition audio.h:333
@ ENV_TIME_700MS
Definition audio.h:310
@ ENV_TIME_60S
Definition audio.h:261
@ ENV_TIME_1900MS
Definition audio.h:295
@ ENV_TIME_1800MS
Definition audio.h:296
@ ENV_TIME_100MS
Definition audio.h:340
@ ENV_TIME_650MS
Definition audio.h:311
@ ENV_TIME_6S
Definition audio.h:285
@ ENV_TIME_35S
Definition audio.h:266
@ ENV_TIME_850MS
Definition audio.h:307
@ ENV_TIME_1700MS
Definition audio.h:297
@ ENV_TIME_600MS
Definition audio.h:312
@ ENV_TIME_0
Definition audio.h:355
@ ENV_TIME_10S
Definition audio.h:281
@ ENV_TIME_15S
Definition audio.h:276
@ ENV_TIME_22_5S
Definition audio.h:270
@ ENV_TIME_220MS
Definition audio.h:328
@ ENV_TIME_190MS
Definition audio.h:331
@ ENV_TIME_2UNITS
Definition audio.h:353
@ ENV_TIME_11UNITS
Definition audio.h:344
@ ENV_TIME_25S
Definition audio.h:269
@ ENV_TIME_30S
Definition audio.h:267
@ ENV_TIME_950MS
Definition audio.h:305
@ ENV_TIME_300MS
Definition audio.h:320
@ ENV_TIME_110MS
Definition audio.h:339
@ ENV_TIME_1300MS
Definition audio.h:301
@ ENV_TIME_27_5S
Definition audio.h:268
@ ENV_TIME_1400MS
Definition audio.h:300
@ ENV_TIME_150MS
Definition audio.h:335
@ ENV_TIME_2500MS
Definition audio.h:292
@ ENV_TIME_8UNITS
Definition audio.h:347
@ ENV_TIME_2250MS
Definition audio.h:293
@ ENV_TIME_14S
Definition audio.h:277
@ ENV_TIME_3S
Definition audio.h:290
@ ENV_TIME_1600MS
Definition audio.h:298
@ ENV_TIME_1S
Definition audio.h:304
@ ENV_TIME_5S
Definition audio.h:286
@ ENV_TIME_5UNITS
Definition audio.h:350
@ ENV_TIME_230MS
Definition audio.h:327
@ ENV_TIME_7S
Definition audio.h:284
@ ENV_TIME_16UNITS
Definition audio.h:341
@ ENV_TIME_6UNITS
Definition audio.h:349
@ ENV_TIME_2750MS
Definition audio.h:291
@ ENV_TIME_325MS
Definition audio.h:319
@ ENV_TIME_450MS
Definition audio.h:315
@ ENV_TIME_3_5S
Definition audio.h:289
@ ENV_TIME_4S
Definition audio.h:288
@ ENV_TIME_180MS
Definition audio.h:332
@ ENV_TIME_3UNITS
Definition audio.h:352
@ ENV_TIME_19S
Definition audio.h:272
@ ENV_TIME_13S
Definition audio.h:278
@ ENV_TIME_1500MS
Definition audio.h:299
@ ENV_TIME_200MS
Definition audio.h:330
@ ENV_TIME_4UNITS
Definition audio.h:351
@ ENV_TIME_50S
Definition audio.h:263
@ ENV_TIME_11S
Definition audio.h:280
@ ENV_TIME_130MS
Definition audio.h:337
@ ENV_TIME_40S
Definition audio.h:265
@ ENV_TIME_10UNITS
Definition audio.h:345
@ ENV_TIME_2S
Definition audio.h:294
@ ENV_TIME_250MS
Definition audio.h:325
@ ENV_TIME_900MS
Definition audio.h:306
@ ENV_TIME_12S
Definition audio.h:279
@ ENV_TIME_7UNITS
Definition audio.h:348
@ ENV_TIME_400MS
Definition audio.h:316
@ ENV_TIME_20S
Definition audio.h:271
@ ENV_TIME_16S
Definition audio.h:275
@ ENV_TIME_1200MS
Definition audio.h:302
@ ENV_TIME_9S
Definition audio.h:282
@ ENV_TIME_750MS
Definition audio.h:309
@ ENV_TIME_12UNITS
Definition audio.h:343
@ ENV_TIME_550MS
Definition audio.h:313
@ ENV_TIME_260MS
Definition audio.h:324
@ ENV_TIME_9UNITS
Definition audio.h:346
@ ENV_TIME_290MS
Definition audio.h:321
@ ENV_TIME_500MS
Definition audio.h:314

◆ SoundPlayerState

Enumerator
SND_PLAYER_STATE_CONTINUE 
SND_PLAYER_STATE_INIT 

Definition at line 358 of file audio.h.

358 {
361};
@ SND_PLAYER_STATE_INIT
Definition audio.h:360
@ SND_PLAYER_STATE_CONTINUE
Definition audio.h:359

◆ SoundManagerState

Enumerator
SND_MANAGER_STATE_ENABLED 
SND_MANAGER_STATE_DISABLED 

Definition at line 363 of file audio.h.

363 {
366};
@ SND_MANAGER_STATE_DISABLED
Definition audio.h:365
@ SND_MANAGER_STATE_ENABLED
Definition audio.h:364

◆ SoundInstanceFlags

Enumerator
SOUND_INSTANCE_FLAG_ACTIVE 
SOUND_INSTANCE_FLAG_POSITION_CHANGED 

Definition at line 368 of file audio.h.

368 {
371};
@ SOUND_INSTANCE_FLAG_POSITION_CHANGED
Definition audio.h:370
@ SOUND_INSTANCE_FLAG_ACTIVE
Definition audio.h:369

◆ 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 

Definition at line 374 of file audio.h.

374 {
375 BANK_SET_AUX = 1, // extra banks loaded at request of BGM file
376 BANK_SET_2 = 2, // loaded during INIT
377 BANK_SET_MUSIC = 3, // loaded during INIT, contains instrument samples for BGM
378 BANK_SET_4 = 4, // loaded during INIT
379 BANK_SET_5 = 5, // loaded during INIT
380 BANK_SET_6 = 6, // loaded during INIT
381} BankSet;
BankSet
corresponds with bank group IDs from INIT file bank list (InitBankEntry.bankSet)
Definition audio.h:374
@ BANK_SET_2
Definition audio.h:376
@ BANK_SET_AUX
Definition audio.h:375
@ BANK_SET_MUSIC
Definition audio.h:377
@ BANK_SET_6
Definition audio.h:380
@ BANK_SET_5
Definition audio.h:379
@ BANK_SET_4
Definition audio.h:378

◆ 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 

Definition at line 385 of file audio.h.

385 {
386 BANK_SET_IDX_0 = 0, // BANK_SET_AUX
387 BANK_SET_IDX_1 = 1, // BANK_SET_2
388 BANK_SET_IDX_2 = 2, // used only for au_reset_drum_entry/au_reset_instrument_entry
389 BANK_SET_IDX_3 = 3, // BANK_SET_MUSIC
390 BANK_SET_IDX_4 = 4, // BANK_SET_4
391 BANK_SET_IDX_5 = 5, // BANK_SET_5
392 BANK_SET_IDX_6 = 6, // BANK_SET_6
393 BANK_SET_IDX_7 = 7, // also BANK_SET_AUX
394 // higher values are not supported, as bankPatch values
BankSetIndex
The bank indices used by audio assets when choosing an intrument.
Definition audio.h:385
@ BANK_SET_IDX_5
Definition audio.h:391
@ BANK_SET_IDX_6
Definition audio.h:392
@ BANK_SET_IDX_7
Definition audio.h:393
@ BANK_SET_IDX_0
Definition audio.h:386
@ BANK_SET_IDX_3
Definition audio.h:389
@ BANK_SET_IDX_1
Definition audio.h:387
@ BANK_SET_IDX_2
Definition audio.h:388
@ BANK_SET_IDX_4
Definition audio.h:390

◆ AudioType

Enumerator
AUDIO_TYPE_BGM 
AUDIO_TYPE_SFX 

Definition at line 397 of file audio.h.

397 {
398 AUDIO_TYPE_BGM = 0x01,
399 AUDIO_TYPE_SFX = 0x10,
400} AudioType;
AudioType
Definition audio.h:397
@ AUDIO_TYPE_BGM
Definition audio.h:398
@ AUDIO_TYPE_SFX
Definition audio.h:399

Variable Documentation

◆ AuSynUseStereo

◆ DummyInstrumentCodebook

s16 DummyInstrumentCodebook[32]
extern

Definition at line 69 of file sfx_player.c.

69 {
70 0xF803, 0x0125, 0x07D0, 0xFDBC, 0xF886, 0x0355, 0x06FC, 0xFBAB,
71 0xFEDA, 0xF82D, 0x0245, 0x077D, 0xFCA9, 0xF901, 0x0456, 0x065D,
72 0xFC33, 0xFBB2, 0xFCEF, 0xFE94, 0xFFD8, 0x0080, 0x00A4, 0x007D,
73 0x090E, 0x0673, 0x02FF, 0x0053, 0xFEF2, 0xFEA7, 0xFEF9, 0xFF7B
74};

◆ DummyInstrumentWavData

u8 DummyInstrumentWavData[190]
extern

Definition at line 76 of file sfx_player.c.

76 {
77 0xB1, 0x01, 0x11, 0x10, 0x00, 0xFF, 0xFE, 0x34, 0xBB, 0x90, 0xE2, 0x1E, 0x00, 0xFB, 0x10, 0xEF,
78 0xF2, 0xD1, 0x80, 0xC4, 0xB3, 0xB1, 0xD3, 0xCF, 0xD1, 0xFD, 0xFE, 0x80, 0x1D, 0x2D, 0x3D, 0x3B,
79 0x2C, 0x3B, 0xFC, 0x1D, 0x80, 0xDE, 0xF0, 0xD0, 0xD3, 0xD2, 0xB3, 0xD1, 0xF4, 0x80, 0xA2, 0x03,
80 0xD0, 0x0D, 0xA9, 0xEA, 0xCB, 0x72, 0x90, 0x41, 0x4E, 0x1D, 0x2D, 0x0C, 0x1E, 0x10, 0x2F, 0x90,
81 0xF2, 0x12, 0x03, 0xF0, 0xC2, 0xD1, 0xD4, 0xF3, 0x80, 0xB0, 0xA1, 0xBF, 0xD2, 0x1E, 0x12, 0x70,
82 0x4D, 0x80, 0x4C, 0x39, 0x2C, 0x7E, 0x30, 0x6D, 0xB9, 0xCF, 0x90, 0xE1, 0xF2, 0xF3, 0xF2, 0xE1,
83 0xE2, 0x16, 0x22, 0xC1, 0xE7, 0x28, 0xF4, 0xF0, 0x21, 0x10, 0x10, 0xFF, 0xA1, 0xED, 0x9F, 0x2F,
84 0xF5, 0x61, 0x33, 0x3C, 0xD0, 0xA1, 0xDA, 0xC2, 0xFF, 0x14, 0x41, 0x22, 0x2D, 0xEF, 0xA1, 0xFA,
85 0xE1, 0x0E, 0x23, 0x30, 0x32, 0x0E, 0xF0, 0x91, 0x9A, 0xF2, 0xCF, 0x55, 0x13, 0x61, 0xEE, 0x1C,
86 0x91, 0x9D, 0x0F, 0xD2, 0x52, 0x06, 0x4D, 0xE1, 0x09, 0x91, 0xD0, 0x1B, 0x15, 0x2E, 0x36, 0xFD,
87 0x12, 0xCB, 0x81, 0x22, 0xBC, 0x65, 0xF0, 0x73, 0xCE, 0x3F, 0xAE, 0x71, 0x4E, 0x93, 0x70, 0xF5,
88 0x6E, 0xD2, 0x1B, 0xD1, 0x61, 0x0A, 0x5D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
89};

◆ CUSTOM_SMALL_ROOM_PARAMS

s32 CUSTOM_SMALL_ROOM_PARAMS[]
extern

Definition at line 92 of file sfx_player.c.

92 {
93 /* sections length */
94 3, 11,
95 /* chorus chorus filter
96 input output fbcoef ffcoef gain rate depth coef */
97 0, 9, 9830, -9830, 0, 0, 0, 0,
98 3, 7, 3276, -3276, 0x3FFF, 0, 0, 0,
99 0, 10, 5000, 0, 0, 0, 0, 0x5000
100};

Referenced by au_sfx_init().

◆ CUSTOM_ECHO_PARAMS_1

s32 CUSTOM_ECHO_PARAMS_1[]
extern

Definition at line 103 of file sfx_player.c.

103 {
104 /* sections length */
105 1, 11,
106 /* chorus chorus filter
107 input output fbcoef ffcoef gain rate depth coef */
108 0, 10, 20000, 0, 0x7FFF, 0, 0, 0x7FFF
109};

Referenced by au_sfx_init().

◆ CUSTOM_ECHO_PARAMS_3

s32 CUSTOM_ECHO_PARAMS_3[]
extern

Definition at line 121 of file sfx_player.c.

121 {
122 /* sections length */
123 1, 14,
124 /* chorus chorus filter
125 input output fbcoef ffcoef gain rate depth coef */
126 0, 13, 20000, 0, 0x7FFF, 0, 0, 0x7FFF
127};

Referenced by au_sfx_init().

◆ CUSTOM_ECHO_PARAMS_2

s32 CUSTOM_ECHO_PARAMS_2[]
extern

Definition at line 112 of file sfx_player.c.

112 {
113 /* sections length */
114 1, 13,
115 /* chorus chorus filter
116 input output fbcoef ffcoef gain rate depth coef */
117 0, 12, 20000, 0, 0x7FFF, 0, 0, 0x7FFF
118};

Referenced by au_sfx_init().

◆ DummyInstrumentEnvelope

EnvelopePreset DummyInstrumentEnvelope
extern

Definition at line 312 of file sfx_player.c.

312 {
313 .count = 1,
314 .offsets = { { 0x8, 0xC } }, // EnvelopePressDefault, EnvelopePressDefault
315};

◆ AmbientSoundIDtoMSEQFileIndex

u8 AmbientSoundIDtoMSEQFileIndex[]
extern

Definition at line 346 of file sfx_player.c.

346 {
347 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A,
348 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10, 0x11, 0x12,
349 0x13, 0x14, 0x15, 0x16, 0x17, 0x00, 0x00, 0x00,
350 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
351};

◆ AuEnvelopeIntervals

s32 AuEnvelopeIntervals[]
extern

Definition at line 359 of file sfx_player.c.

359 {
360 SEC(60), SEC(55), SEC(50), SEC(45), SEC(40), SEC(35), SEC(30), SEC(27.5), SEC(25), SEC(22.5),
361 SEC(20), SEC(19), SEC(18), SEC(17), SEC(16), SEC(15), SEC(14), SEC(13), SEC(12), SEC(11),
362 SEC(10), SEC(9), SEC(8), SEC(7), SEC(6), SEC(5), SEC(4.5), SEC(4), SEC(3.5), SEC(3),
363 SEC(2.75), SEC(2.5), SEC(2.25), SEC(2), SEC(1.9), SEC(1.8), SEC(1.7), SEC(1.6), SEC(1.5), SEC(1.4),
364 SEC(1.3), SEC(1.2), SEC(1.1), SEC(1), SEC(0.95), SEC(0.9), SEC(0.85), SEC(0.8), SEC(0.75), SEC(0.7),
365 SEC(0.65), SEC(0.6), SEC(0.55), SEC(0.5), SEC(0.45), SEC(0.4), SEC(0.375), SEC(0.35), SEC(0.325), SEC(0.3),
366 SEC(0.29), SEC(0.28), SEC(0.27), SEC(0.26), SEC(0.25), SEC(0.24), SEC(0.23), SEC(0.22), SEC(0.21), SEC(0.2),
367 SEC(0.19), SEC(0.18), SEC(0.17), SEC(0.16), SEC(0.15), SEC(0.14), SEC(0.13), SEC(0.12), SEC(0.11), SEC(0.1),
370 4 * AU_FRAME_USEC, 3 * AU_FRAME_USEC, 2 * AU_FRAME_USEC, 1 * AU_FRAME_USEC, 0, 0, 0, 0, 0, 0,
371};
#define AU_FRAME_USEC
Definition audio.h:27
#define SEC(x)
Definition sfx_player.c:357

Referenced by au_update_voices(), and au_voice_start().

◆ 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.

Definition at line 10 of file snd_interface.c.

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().

◆ AmbienceRadioChannel

u16 AmbienceRadioChannel
extern

◆ gActiveSynDriverPtr

AuSynDriver* gActiveSynDriverPtr
extern

◆ gSynDriverPtr

◆ AuUseGlobalVolume

u8 AuUseGlobalVolume
extern

Definition at line 16 of file syn_driver.c.

Referenced by alAudioFrame(), au_driver_init(), and au_use_global_volume().

◆ AuGlobalVolume

u16 AuGlobalVolume
extern

◆ AuSynStereoDirty

u8 AuSynStereoDirty
extern

Definition at line 18 of file syn_driver.c.

Referenced by alAudioFrame(), au_driver_init(), and au_set_stereo_enabled().

◆ gSoundGlobals

◆ gBGMPlayerC

BGMPlayer* gBGMPlayerC
extern

Definition at line 8 of file engine.c.

Referenced by au_engine_init().

◆ gBGMPlayerB

◆ gAuAmbienceManager

◆ gSoundManager

◆ gBGMPlayerA