Super Mario 64 Source
A Super Mario 64 decompilation, brought to you by a bunch of clever folks.
internal.h
Go to the documentation of this file.
1 #ifndef _AUDIO_INTERNAL_H
2 #define _AUDIO_INTERNAL_H
3 
4 #include <ultra64.h>
5 
6 #include "types.h"
7 
8 #define SEQUENCE_PLAYERS 3
9 #define CHANNELS_MAX 16
10 
11 #define NO_LAYER ((struct SequenceChannelLayer *)(-1))
12 
13 #define MUTE_BEHAVIOR_80 0x80
14 #define MUTE_BEHAVIOR_40 0x40
15 #define MUTE_BEHAVIOR_20 0x20
16 
17 #define SEQUENCE_PLAYER_STATE_0 0
18 #define SEQUENCE_PLAYER_STATE_FADE_OUT 1
19 #define SEQUENCE_PLAYER_STATE_2 2
20 #define SEQUENCE_PLAYER_STATE_3 3
21 #define SEQUENCE_PLAYER_STATE_4 4
22 
23 #define NOTE_PRIORITY_DISABLED 0
24 #define NOTE_PRIORITY_STOPPING 1
25 #define NOTE_PRIORITY_MIN 2
26 #define NOTE_PRIORITY_DEFAULT 3
27 
28 #define TATUMS_PER_BEAT 48
29 
30 #ifdef VERSION_JP
31 #define TEMPO_SCALE 1
32 #else
33 #define TEMPO_SCALE TATUMS_PER_BEAT
34 #endif
35 
36 #ifdef VERSION_JP
37 #define US_FLOAT(x) x
38 #else
39 #define US_FLOAT(x) x ## f
40 #endif
41 
42 // Convert u8 or u16 to f32. On JP, this uses a u32->f32 conversion,
43 // resulting in more bloated codegen, while on US it goes through s32.
44 // Since u8 and u16 fit losslessly in both, behavior is the same.
45 #ifdef VERSION_JP
46 #define FLOAT_CAST(x) (f32) (x)
47 #else
48 #define FLOAT_CAST(x) (f32) (s32) (x)
49 #endif
50 
51 struct NotePool;
52 
54 {
55  // A node in a circularly linked list. Each node is either a head or an item:
56  // - Items can be either detached (prev = NULL), or attached to a list.
57  // 'value' points to something of interest.
58  // - List heads are always attached; if a list is empty, its head points
59  // to itself. 'count' contains the size of the list.
60  // If the list holds notes, 'pool' points back to the pool where it lives.
61  // Otherwise, that member is NULL.
64  union {
65  void *value; // either Note* or SequenceChannelLayer*
67  } u;
68  struct NotePool *pool;
69 }; // size = 0x10
70 
71 struct NotePool
72 {
73  struct AudioListItem disabled;
74  struct AudioListItem decaying;
75  struct AudioListItem releasing;
76  struct AudioListItem active;
77 };
78 
79 struct VibratoState {
89 }; // size = 0x18
90 
91 // Pitch sliding by up to one octave in the positive direction. Negative
92 // direction is "supported" by setting extent to be negative. The code
93 // exterpolates exponentially in the wrong direction in that case, but that
94 // doesn't prevent seqplayer from doing it, AFAICT.
95 struct Portamento {
96  u8 mode; // bit 0x80 denotes something; the rest are an index 0-5
100 }; // size = 0x10
101 
102 struct AdsrEnvelope {
105 }; // size = 0x4
106 
107 struct AdpcmLoop
108 {
113  s16 state[16]; // only exists if count != 0. 8-byte aligned
114 };
115 
116 struct AdpcmBook
117 {
120  s16 book[1]; // size 8 * order * npredictors. 8-byte aligned
121 };
122 
124 {
128  struct AdpcmLoop *loop;
129  struct AdpcmBook *book;
130  u32 sampleSize; // never read. either 0 or 1 mod 9, depending on padding
131 };
132 
134 {
136  f32 tuning; // frequency scale factor
137 }; // size = 0x8
138 
140 {
141  /*0x00*/ u8 loaded;
142  /*0x01*/ u8 normalRangeLo;
143  /*0x02*/ u8 normalRangeHi;
144  /*0x03*/ u8 releaseRate;
145  /*0x04*/ struct AdsrEnvelope *envelope;
146  /*0x08*/ struct AudioBankSound lowNotesSound;
147  /*0x10*/ struct AudioBankSound normalNotesSound;
148  /*0x18*/ struct AudioBankSound highNotesSound;
149 }; // size = 0x20
150 
151 struct Drum
152 {
156  struct AudioBankSound sound;
158 };
159 
160 struct AudioBank
161 {
162  struct Drum **drums;
163  struct Instrument *instruments[1];
164 }; // dynamic size
165 
166 struct CtlEntry
167 {
172  struct Drum **drums;
173 }; // size = 0xC
174 
176  u8 *pc;
177  u8 *stack[4];
178  u8 remLoopIters[4];
180 }; // size = 0x1C
181 
183 {
184  /*0x000*/ volatile u8 enabled : 1;
185  /*0x000*/ u8 finished : 1; // never read
186  /*0x000*/ u8 muted : 1;
187  /*0x000*/ u8 seqDmaInProgress : 1;
188  /*0x000*/ u8 bankDmaInProgress : 1;
189  /*0x001*/ s8 seqVariation;
190  /*0x002*/ u8 state;
191  /*0x003*/ u8 noteAllocPolicy;
192  /*0x004*/ u8 muteBehavior;
193  /*0x005*/ u8 seqId;
194  /*0x006*/ u8 anyBank[1]; // must be an array to get a comparison
195  // to match; other u8's might also be part of that array
196  /*0x007*/ u8 loadingBankId;
199  /*0x00A*/ u16 tempo; // beats per minute in JP, tatums per minute in US
200  /*0x00C*/ u16 tempoAcc;
201  /*0x00E*/ u16 fadeTimer;
202  /*0x010*/ s16 transposition;
203  /*0x012*/ u16 delay;
204  /*0x014*/ u8 *seqData; // buffer of some sort
205  /*0x018*/ f32 fadeVolume; // set to 1.0f
206  /*0x01C*/ f32 fadeVelocity; // set to 0.0f
207  /*0x020*/ f32 volume; // set to 0.0f
208  /*0x024*/ f32 muteVolumeScale; // set to 0.5f
209  /* */ u8 pad1[4];
210  /*0x02C*/ struct SequenceChannel *channels[CHANNELS_MAX];
211  /*0x06C*/ struct M64ScriptState scriptState;
214  /*0x090*/ struct NotePool notePool;
215  /*0x0D0*/ OSMesgQueue seqDmaMesgQueue;
216  /*0x0E8*/ OSMesg seqDmaMesg;
218  /*0x100*/ OSMesgQueue bankDmaMesgQueue;
219  /*0x118*/ OSMesg bankDmaMesg;
221  /*0x130*/ u8 *bankDmaCurrMemAddr;
222  /*0x134*/ struct AudioBank *loadingBank;
225 }; // size = 0x140
226 
228 {
230  u16 sustain; // sustain level, 2^16 = max
232 }; // size = 0x8
233 
234 struct AdsrState {
237  s16 initial; // always 0
248 }; // size = 0x20
249 
251 {
256 }; // size = 0x10
257 
259 {
260  /*0x00*/ u8 enabled : 1;
261  /*0x00*/ u8 finished : 1;
262  /*0x00*/ u8 stopScript : 1;
263  /*0x00*/ u8 unk0b10 : 1;
264  /*0x00*/ u8 hasInstrument : 1;
265  /*0x00*/ u8 stereoHeadsetEffects : 1;
266  /*0x00*/ u8 largeNotes : 1; // notes specify duration and velocity
267  /*0x00*/ u8 unused : 1; // never read, set to 0
268  /*0x01*/ u8 noteAllocPolicy;
269  /*0x02*/ u8 muteBehavior;
270  /*0x03*/ u8 reverb; // or dry/wet mix
271  /*0x04*/ u8 notePriority; // 0-3
272  /*0x05*/ u8 bankId;
273  /*0x06*/ u8 updatesPerFrameUnused; // never read
274  /*0x08*/ u16 vibratoRateStart; // initially 0x800
276  /*0x0C*/ u16 vibratoRateTarget; // initially 0x800
280  /*0x14*/ u16 vibratoDelay;
281  /*0x16*/ u16 delay;
282  /*0x18*/ s16 instOrWave; // either 0 (none), instrument index + 1, or
283  // 0x80..0x83 for sawtooth/triangle/sine/square waves.
284  /*0x1A*/ s16 transposition;
285  /*0x1C*/ f32 volumeScale;
286  /*0x20*/ f32 volume;
287  /*0x24*/ f32 pan;
288  /*0x28*/ f32 panChannelWeight; // proportion of pan that comes from the channel (0..1)
289  /*0x2C*/ f32 freqScale;
290  /*0x30*/ u8 (*dynTable)[][2];
291  /*0x34*/ struct Note *noteUnused; // never read
292  /*0x38*/ struct SequenceChannelLayer *layerUnused; // never read
293  /*0x3C*/ struct Instrument *instrument;
294  /*0x40*/ struct SequencePlayer *seqPlayer;
295  /*0x44*/ struct SequenceChannelLayer *layers[4];
296  /*0x54*/ s8 soundScriptIO[8]; // bridge between sound script and audio lib. For player 2,
297  // [0] contains enabled, [4] contains sound ID, [5] contains reverb adjustment
298  /*0x5C*/ struct M64ScriptState scriptState;
299  /*0x78*/ struct AdsrSettings adsr;
300  /*0x80*/ struct NotePool notePool;
301 }; // size = 0xC0
302 
303 struct SequenceChannelLayer // Maybe SequenceTrack?
304 {
305  /*0x00*/ u8 enabled : 1;
306  /*0x00*/ u8 finished : 1;
307  /*0x00*/ u8 unk0b20 : 1;
308  /*0x00*/ u8 unk0b10 : 1;
309  /*0x01*/ u8 unk1;
310  /*0x02*/ u8 noteDuration; // set to 0x80
312  /*0x04*/ struct Portamento portamento;
313  /*0x14*/ struct AdsrSettings adsr;
314  /*0x1C*/ u16 portamentoTime;
315  /*0x1E*/ s16 transposition; // #semitones added to play commands
316  // (m64 instruction encoding only allows referring to the limited range
317  // 0..0x3f; this makes 0x40..0x7f accessible as well)
318  /*0x20*/ f32 freqScale;
319  /*0x24*/ f32 velocitySquare;
320  /*0x28*/ f32 pan;
321  /*0x2C*/ f32 noteVelocity;
322  /*0x30*/ f32 notePan;
323  /*0x34*/ f32 noteFreqScale;
325  /*0x3A*/ s16 playPercentage; // it's not really a percentage...
326  /*0x3C*/ s16 delay;
327  /*0x3E*/ s16 duration;
328  /*0x40*/ s16 delayUnused; // set to 'delay', never read
329  /*0x44*/ struct Note *note;
330  /*0x48*/ struct Instrument *instrument;
331  /*0x4C*/ struct AudioBankSound *sound;
332  /*0x50*/ struct SequenceChannel *seqChannel;
333  /*0x54*/ struct M64ScriptState scriptState;
334  /*0x70*/ struct AudioListItem listItem;
335 }; // size = 0x80
336 
337 struct Note
338 {
339  /*0x00*/ u8 enabled : 1;
340  /*0x00*/ u8 unk0b40 : 1;
341  /*0x00*/ u8 unk0b20 : 1;
342  /*0x00*/ u8 unk0b10 : 1;
343  /*0x00*/ u8 unk0b8 : 1;
344  /*0x00*/ u8 stereoStrongRight : 1;
345  /*0x00*/ u8 stereoStrongLeft : 1;
346  /*0x00*/ u8 stereoHeadsetEffects : 1;
347  /*0x01*/ u8 usesStereo;
348  /*0x02*/ u8 unk2;
349  /*0x03*/ u8 sampleDmaIndex;
350  /*0x04*/ u8 priority;
351  /*0x05*/ u8 sampleCount; // 0, 8, 16, 32 or 64
352  /*0x06*/ u8 instOrWave;
353  /*0x07*/ u8 bankId;
354  /*0x08*/ s16 adsrVolScale;
355  /* */ u8 pad1[2];
357  /*0x0E*/ u16 headsetPanLeft;
360  /*0x14*/ s32 unk14;
363  /*0x20*/ u16 unk20;
364  /*0x24*/ struct AudioBankSound *sound;
368  /*0x34*/ struct SubStruct_func_80318F04 *unk34; // or s16*
369  /*0x38*/ f32 frequency;
370  /*0x3C*/ u16 targetVolLeft;
371  /*0x3E*/ u16 targetVolRight;
372  /*0x40*/ u8 reverb;
373  /*0x41*/ u8 unused1; // never read, set to 0x3f
374  /*0x44*/ struct NoteAttributes attributes;
375  /*0x54*/ struct AdsrState adsr;
376  /*0x74*/ struct Portamento portamento;
377  /*0x84*/ struct VibratoState vibratoState;
378  /*0x9C*/ s16 curVolLeft;
379  /*0x9E*/ s16 curVolRight;
380  /*0xA0*/ s16 reverbVol;
381  /*0xA2*/ s16 unused2; // never read, set to 0
382  /*0xA4*/ struct AudioListItem listItem;
383  /* */ u8 pad2[0xc];
384 }; // size = 0xC0
385 
386 //this is probably just an array with a bunch of indexes
388 {
389  s16 unk00[0x10];
390  s16 unk20[0x10];
391  s16 unk40[0x28];
392  s16 unk90[0x10];
393  s16 unkB0[0x20];
394  s16 unkF0[0x10];
395  s16 samples[0x40];
396 };
397 
399 {
400  /*0x00*/ u32 frequency;
402  /*0x05*/ u8 unk5; // stored to D_802212A2, always 1
403  /*0x06*/ u16 unk6; // memory requirement of some sort
404  /*0x08*/ u16 unk8; // gain? stored to D_802211B0.unk4
405  /*0x0A*/ u16 volume;
410 }; // size = 0x1C
411 
412 #endif /* _AUDIO_INTERNAL_H */
u16 unk8
Definition: internal.h:404
f32 notePan
Definition: internal.h:322
u8 reverb
Definition: internal.h:372
f32 volume
Definition: internal.h:286
u8 * pc
Definition: internal.h:176
u8 largeNotes
Definition: internal.h:266
u8 bankDmaInProgress
Definition: internal.h:188
Definition: internal.h:258
u8 stereoStrongRight
Definition: internal.h:344
Definition: internal.h:151
struct SequenceChannel * seqChannel
Definition: internal.h:332
struct Drum ** drums
Definition: internal.h:162
u32 start
Definition: internal.h:109
u8 unk1
Definition: internal.h:309
u16 tempoAcc
Definition: internal.h:200
Definition: internal.h:175
s16 delay
Definition: internal.h:241
struct Drum ** drums
Definition: internal.h:172
u8 normalRangeHi
Definition: internal.h:143
signed char s8
Definition: ultratypes.h:11
u16 headsetPanLeft
Definition: internal.h:357
struct AudioBankSound * sound
Definition: internal.h:364
u32 bankDmaCurrDevAddr
Definition: internal.h:223
struct Instrument * instrument
Definition: internal.h:293
u8 action
Definition: internal.h:235
Definition: internal.h:398
struct SequencePlayer * seqPlayer
Definition: internal.h:294
u8 priority
Definition: internal.h:350
struct NotePool * pool
Definition: internal.h:68
f32 vibratoFreqScale
Definition: internal.h:362
unsigned short int u16
Definition: ultratypes.h:14
Definition: internal.h:250
u16 volume
Definition: internal.h:405
s16 playPercentage
Definition: internal.h:325
u16 rate
Definition: internal.h:84
u16 targetVolLeft
Definition: internal.h:370
u8 unused
Definition: internal.h:168
s16 duration
Definition: internal.h:327
struct AdsrEnvelope * envelope
Definition: internal.h:145
s16 initial
Definition: internal.h:237
u8 notePriority
Definition: internal.h:271
struct AudioBank * loadingBank
Definition: internal.h:222
u8 unused
Definition: internal.h:267
OSMesgQueue seqDmaMesgQueue
Definition: internal.h:215
struct AudioListItem * next
Definition: internal.h:63
f32 cur
Definition: internal.h:97
u16 fadeTimer
Definition: internal.h:201
signed short int s16
Definition: ultratypes.h:13
OSIoMesg seqDmaIoMesg
Definition: internal.h:217
u8 unused1
Definition: internal.h:373
f32 pan
Definition: internal.h:255
f32 extent
Definition: internal.h:99
u8 numDrums
Definition: internal.h:170
#define CHANNELS_MAX
Definition: internal.h:9
u8 bankId
Definition: internal.h:353
u8 hasInstrument
Definition: internal.h:264
u16 sustain
Definition: internal.h:230
u8 loadingBankNumDrums
Definition: internal.h:198
struct Instrument ** instruments
Definition: internal.h:171
u8 finished
Definition: internal.h:261
u8 stereoHeadsetEffects
Definition: internal.h:346
Definition: internal.h:337
struct Note * note
Definition: internal.h:329
f32 panChannelWeight
Definition: internal.h:288
Definition: internal.h:79
u8 unk0b20
Definition: internal.h:341
u8 muteBehavior
Definition: internal.h:192
u8 muteBehavior
Definition: internal.h:269
u32 frequency
Definition: internal.h:400
s8 * curve
Definition: internal.h:82
s8 seqVariation
Definition: internal.h:189
u8 unk5
Definition: internal.h:402
Definition: os_pi.h:58
struct SubStruct_func_80318F04 * unk34
Definition: internal.h:368
struct SequenceChannelLayer * prevParentLayer
Definition: internal.h:365
s16 target
Definition: internal.h:238
u8 seqDmaInProgress
Definition: internal.h:187
struct Note * noteUnused
Definition: internal.h:291
s16 shortNoteDefaultPlayPercentage
Definition: internal.h:324
s16 delay
Definition: internal.h:103
s16 current
Definition: internal.h:239
u8 * shortNoteDurationTable
Definition: internal.h:213
s16 * volOut
Definition: internal.h:246
s16 sustain
Definition: internal.h:242
u8 sampleCount
Definition: internal.h:351
u8 unk0b8
Definition: internal.h:343
f32 fadeVolume
Definition: internal.h:205
u16 vibratoDelay
Definition: internal.h:280
u8 unk2
Definition: internal.h:348
s16 delay
Definition: internal.h:326
f32 tuning
Definition: internal.h:136
f32 freqScale
Definition: internal.h:318
u8 unk0b10
Definition: internal.h:263
u8 stopScript
Definition: internal.h:262
u16 extentChangeTimer
Definition: internal.h:87
Definition: internal.h:71
f32 freqScale
Definition: internal.h:289
u16 rateChangeTimer
Definition: internal.h:86
u8 unused
Definition: internal.h:125
u8 enabled
Definition: internal.h:305
struct SequenceChannel * seqChannel
Definition: internal.h:80
u8 loaded
Definition: internal.h:141
f32 speed
Definition: internal.h:98
u8 numInstruments
Definition: internal.h:169
Definition: internal.h:182
u16 prevHeadsetPanRight
Definition: internal.h:358
struct SequenceChannelLayer * parentLayer
Definition: internal.h:366
u8 * sampleAddr
Definition: internal.h:127
float f32
Definition: ultratypes.h:29
s16 transposition
Definition: internal.h:202
OSMesgQueue bankDmaMesgQueue
Definition: internal.h:218
u32 temporarySeqMem
Definition: internal.h:408
u8 stereoHeadsetEffects
Definition: internal.h:265
s16 unused2
Definition: internal.h:381
OSIoMesg bankDmaIoMesg
Definition: internal.h:220
u8 reverb
Definition: internal.h:270
Definition: internal.h:227
u32 count
Definition: internal.h:111
struct SequenceChannelLayer * layerUnused
Definition: internal.h:292
f32 volumeScale
Definition: internal.h:285
u8 portamentoTargetNote
Definition: internal.h:311
u16 unk6
Definition: internal.h:403
u32 temporaryBankMem
Definition: internal.h:409
u16 delay
Definition: internal.h:88
u8 loadingBankId
Definition: internal.h:196
u8 state
Definition: internal.h:190
f32 muteVolumeScale
Definition: internal.h:208
u8 enabled
Definition: internal.h:339
union AudioListItem::@8 u
u32 persistentSeqMem
Definition: internal.h:406
u8 unk0b10
Definition: internal.h:308
void * value
Definition: internal.h:65
struct SequenceChannelLayer * wantedParentLayer
Definition: internal.h:367
u32 time
Definition: internal.h:81
u16 vibratoExtentStart
Definition: internal.h:275
struct AdpcmBook * book
Definition: internal.h:129
u8 depth
Definition: internal.h:179
volatile u8 enabled
Definition: internal.h:184
f32 fadeVelocity
Definition: internal.h:206
Definition: internal.h:133
s32 order
Definition: internal.h:118
u32 pad
Definition: internal.h:112
Definition: internal.h:107
u16 vibratoExtentTarget
Definition: internal.h:277
u16 vibratoRateTarget
Definition: internal.h:276
u8 * bankDmaCurrMemAddr
Definition: internal.h:221
s16 envIndex
Definition: internal.h:240
u16 vibratoRateChangeDelay
Definition: internal.h:278
u16 vibratoRateStart
Definition: internal.h:274
Definition: internal.h:166
Definition: internal.h:303
struct AdpcmLoop * loop
Definition: internal.h:128
u32 persistentBankMem
Definition: internal.h:407
u8 noteAllocPolicy
Definition: internal.h:268
s8 reverb
Definition: internal.h:252
Definition: internal.h:102
struct AdsrEnvelope * envelope
Definition: internal.h:231
u8 * shortNoteVelocityTable
Definition: internal.h:212
f32 pan
Definition: internal.h:287
struct AudioBankSample * sample
Definition: internal.h:135
s32 currentHiRes
Definition: internal.h:245
u8 sampleDmaIndex
Definition: internal.h:349
OSMesg bankDmaMesg
Definition: internal.h:219
s16 arg
Definition: internal.h:104
u8 * seqData
Definition: internal.h:204
f32 noteVelocity
Definition: internal.h:321
s16 adsrVolScale
Definition: internal.h:354
OSMesg seqDmaMesg
Definition: internal.h:216
u16 extent
Definition: internal.h:85
u8 usesStereo
Definition: internal.h:347
s16 transposition
Definition: internal.h:284
u8 noteDuration
Definition: internal.h:310
u16 delay
Definition: internal.h:281
u8 active
Definition: internal.h:83
f32 velocitySquare
Definition: internal.h:319
Definition: internal.h:160
u16 tempo
Definition: internal.h:199
u8 noteAllocPolicy
Definition: internal.h:191
u16 prevHeadsetPanLeft
Definition: internal.h:359
struct AudioBankSound * sound
Definition: internal.h:331
s16 transposition
Definition: internal.h:315
u8 unk0b40
Definition: internal.h:340
struct AdsrEnvelope * envelope
Definition: internal.h:157
s32 unk14
Definition: internal.h:360
f32 velocity
Definition: internal.h:254
s16 curVolLeft
Definition: internal.h:378
u8 updatesPerFrameUnused
Definition: internal.h:273
unsigned char u8
Definition: ultratypes.h:12
u32 sampleSize
Definition: internal.h:130
s16 delayUnused
Definition: internal.h:328
u8 stereoStrongLeft
Definition: internal.h:345
u8 muted
Definition: internal.h:186
u8 unk0b10
Definition: internal.h:342
f32 volume
Definition: internal.h:207
u8 loadingBankNumInstruments
Definition: internal.h:197
s16 fadeOutVel
Definition: internal.h:243
s16 instOrWave
Definition: internal.h:282
Definition: internal.h:234
f32 pan
Definition: internal.h:320
u16 delay
Definition: internal.h:203
u8 finished
Definition: internal.h:185
u8 state
Definition: internal.h:236
u8 instOrWave
Definition: internal.h:352
signed int s32
Definition: ultratypes.h:15
struct Instrument * instrument
Definition: internal.h:330
Definition: internal.h:116
u16 portamentoTime
Definition: internal.h:314
s32 velocity
Definition: internal.h:244
f32 freqScale
Definition: internal.h:253
Definition: internal.h:123
s32 npredictors
Definition: internal.h:119
f32 portamentoFreqScale
Definition: internal.h:361
u32 end
Definition: internal.h:110
struct AdsrEnvelope * envelope
Definition: internal.h:247
s32 count
Definition: internal.h:66
u16 headsetPanRight
Definition: internal.h:356
Definition: internal.h:387
s32 bankDmaRemaining
Definition: internal.h:224
u8 releaseRate
Definition: internal.h:153
u8 loaded
Definition: internal.h:126
u8 unk1
Definition: internal.h:154
u8 finished
Definition: internal.h:306
u8 maxSimultaneousNotes
Definition: internal.h:401
u8 loaded
Definition: internal.h:155
u16 targetVolRight
Definition: internal.h:371
s16 curVolRight
Definition: internal.h:379
Definition: internal.h:139
u8 unk0b20
Definition: internal.h:307
u8 releaseRate
Definition: internal.h:144
u8 releaseRate
Definition: internal.h:229
f32 frequency
Definition: internal.h:369
unsigned int u32
Definition: ultratypes.h:16
Definition: internal.h:53
u16 vibratoExtentChangeDelay
Definition: internal.h:279
u8 bankId
Definition: internal.h:272
u16 unk20
Definition: internal.h:363
Definition: internal.h:95
u8 normalRangeLo
Definition: internal.h:142
u8 seqId
Definition: internal.h:193
s16 reverbVol
Definition: internal.h:380
u8 enabled
Definition: internal.h:260
f32 noteFreqScale
Definition: internal.h:323
u8 mode
Definition: internal.h:96
struct AudioListItem * prev
Definition: internal.h:62