Mario Kart 64
Loading...
Searching...
No Matches
libaudio_internal.h
Go to the documentation of this file.
1#ifndef _LIBAUDIO_INTERNAL_H_
2#define _LIBAUDIO_INTERNAL_H_
3#include <ultra64.h>
4#define AL_BANK_VERSION 0x4231 /* 'B1' */
5
6typedef u8 ALPan;
8
9/* Possible wavetable types */
10enum
11{
14};
15
16typedef struct
17{
21} ALRawLoop;
22
23typedef struct
24{
28 ADPCM_STATE state;
30
31typedef struct
32{
35 s16 book[1]; // variable size, 8-byte aligned
37
46
56
62
63typedef struct
64{
67
68typedef struct ALWaveTable_s
69{
70 u8 *base; /* ptr to start of wave data */
71 s32 len; /* length of data in bytes */
72 u8 type; /* compression type */
73 u8 flags; /* offset/address flags */
74 union {
79
89
90typedef struct
91{
92 u8 volume; /* overall volume for this instrument */
93 ALPan pan; /* 0 = hard left, 127 = hard right */
94 u8 priority; /* voice priority for this instrument */
96 u8 tremType; /* the type of tremelo osc. to use */
97 u8 tremRate; /* the rate of the tremelo osc. */
98 u8 tremDepth; /* the depth of the tremelo osc */
99 u8 tremDelay; /* the delay for the tremelo osc */
100 u8 vibType; /* the type of tremelo osc. to use */
101 u8 vibRate; /* the rate of the tremelo osc. */
102 u8 vibDepth; /* the depth of the tremelo osc */
103 u8 vibDelay; /* the delay for the tremelo osc */
104 s16 bendRange; /* pitch bend range in cents */
105 s16 soundCount; /* number of sounds in this array */
106 ALSound *soundArray[1];
108
109typedef struct ALBank_s
110{
111 s16 instCount; /* number of programs in this bank */
114 s32 sampleRate; /* e.g. 44100, 22050, etc... */
115 ALInstrument *percussion; /* default percussion for GM */
116 ALInstrument *instArray[1]; /* ARRAY of instruments */
118
119typedef struct
120{ /* Note: sizeof won't be correct */
121 s16 revision; /* format revision of this file */
122 s16 bankCount; /* number of banks */
123 ALBank *bankArray[1]; /* ARRAY of bank offsets */
124} ALBankFile;
125
126void alBnkfNew(ALBankFile *f, u8 *table);
127#endif
s16 D_8015F6E8
Definition code_800029B0.c:86
s32 ALMicroTime
Definition libaudio_internal.h:7
u8 ALPan
Definition libaudio_internal.h:6
@ AL_ADPCM_WAVE
Definition libaudio_internal.h:12
@ AL_RAW16_WAVE
Definition libaudio_internal.h:13
struct ALWaveTable_s ALWaveTable
void alBnkfNew(ALBankFile *f, u8 *table)
Definition alBnkfNew.c:63
struct ALSound_s ALSound
struct ALBank_s ALBank
Definition libaudio_internal.h:32
s32 order
Definition libaudio_internal.h:33
s32 npredictors
Definition libaudio_internal.h:34
Definition libaudio_internal.h:58
ALADPCMBook * book
Definition libaudio_internal.h:60
ALADPCMloop * loop
Definition libaudio_internal.h:59
Definition libaudio_internal.h:24
u32 end
Definition libaudio_internal.h:26
ADPCM_STATE state
Definition libaudio_internal.h:28
u32 start
Definition libaudio_internal.h:25
u32 count
Definition libaudio_internal.h:27
Definition libaudio_internal.h:120
s16 bankCount
Definition libaudio_internal.h:122
s16 revision
Definition libaudio_internal.h:121
Definition libaudio_internal.h:110
s16 instCount
Definition libaudio_internal.h:111
ALInstrument * percussion
Definition libaudio_internal.h:115
ALInstrument * instArray[1]
Definition libaudio_internal.h:116
u8 pad
Definition libaudio_internal.h:113
u8 flags
Definition libaudio_internal.h:112
s32 sampleRate
Definition libaudio_internal.h:114
Definition libaudio_internal.h:39
ALMicroTime releaseTime
Definition libaudio_internal.h:42
ALMicroTime decayTime
Definition libaudio_internal.h:41
u8 decayVolume
Definition libaudio_internal.h:44
u8 attackVolume
Definition libaudio_internal.h:43
ALMicroTime attackTime
Definition libaudio_internal.h:40
Definition libaudio_internal.h:91
ALPan pan
Definition libaudio_internal.h:93
u8 vibType
Definition libaudio_internal.h:100
u8 tremType
Definition libaudio_internal.h:96
u8 tremDelay
Definition libaudio_internal.h:99
u8 priority
Definition libaudio_internal.h:94
u8 vibDepth
Definition libaudio_internal.h:102
u8 vibRate
Definition libaudio_internal.h:101
s16 bendRange
Definition libaudio_internal.h:104
u8 tremRate
Definition libaudio_internal.h:97
u8 vibDelay
Definition libaudio_internal.h:103
u8 volume
Definition libaudio_internal.h:92
s16 soundCount
Definition libaudio_internal.h:105
u8 tremDepth
Definition libaudio_internal.h:98
u8 flags
Definition libaudio_internal.h:95
Definition libaudio_internal.h:48
u8 keyMin
Definition libaudio_internal.h:51
s8 detune
Definition libaudio_internal.h:54
u8 keyMax
Definition libaudio_internal.h:52
u8 velocityMin
Definition libaudio_internal.h:49
u8 velocityMax
Definition libaudio_internal.h:50
u8 keyBase
Definition libaudio_internal.h:53
Definition libaudio_internal.h:64
ALRawLoop * loop
Definition libaudio_internal.h:65
Definition libaudio_internal.h:17
u32 start
Definition libaudio_internal.h:18
u32 end
Definition libaudio_internal.h:19
u32 count
Definition libaudio_internal.h:20
Definition libaudio_internal.h:81
u8 flags
Definition libaudio_internal.h:87
ALPan samplePan
Definition libaudio_internal.h:85
ALWaveTable * wavetable
Definition libaudio_internal.h:84
u8 sampleVolume
Definition libaudio_internal.h:86
ALEnvelope * envelope
Definition libaudio_internal.h:82
ALKeyMap * keyMap
Definition libaudio_internal.h:83
Definition libaudio_internal.h:69
ALRAWWaveInfo rawWave
Definition libaudio_internal.h:76
s32 len
Definition libaudio_internal.h:71
u8 * base
Definition libaudio_internal.h:70
ALADPCMWaveInfo adpcmWave
Definition libaudio_internal.h:75
u8 flags
Definition libaudio_internal.h:73
u8 type
Definition libaudio_internal.h:72
union ALWaveTable_s::@10 waveInfo
signed int s32
Definition ultratypes.h:15
unsigned int u32
Definition ultratypes.h:16
signed char s8
Definition ultratypes.h:11
signed short int s16
Definition ultratypes.h:13
unsigned char u8
Definition ultratypes.h:12