Mario Kart 64
Loading...
Searching...
No Matches
AudioBank.h
Go to the documentation of this file.
1#pragma once
2
3#include <cstdint>
4#include "AudioSample.h"
5#include "resource/Resource.h"
6
7struct AudioBankSound {
9 float tuning; // frequency scale factor
10}; // size = 0x8
11
12struct AdsrEnvelope {
13 int16_t delay;
14 int16_t arg;
15}; // size = 0x4
16
17struct Instrument {
18 /*0x00*/ uint8_t loaded;
19 /*0x01*/ uint8_t normalRangeLo;
20 /*0x02*/ uint8_t normalRangeHi;
21 /*0x03*/ uint8_t releaseRate;
26}; // size = 0x20
27
28struct Drum {
29 uint8_t releaseRate;
30 uint8_t pan;
31 uint8_t loaded;
34};
35
36struct CtlEntry {
37 uint8_t bankId;
39 uint8_t numDrums;
40 struct Instrument **instruments;
41 struct Drum **drums;
42}; // size = 0xC
43
44namespace SM64 {
45class AudioBank : public Ship::Resource<CtlEntry> {
46 public:
47 using Resource::Resource;
48
49 AudioBank() : Resource(std::shared_ptr<Ship::ResourceInitData>()) {}
50 ~AudioBank() override;
51
53 size_t GetPointerSize();
54
56
57 std::vector<Instrument*> instruments;
58 std::vector<Drum*> drums;
59};
60}
AudioBank()
Definition AudioBank.h:49
CtlEntry mData
Definition AudioBank.h:55
std::vector< Drum * > drums
Definition AudioBank.h:58
~AudioBank() override
Definition AudioBank.cpp:11
size_t GetPointerSize()
Definition AudioBank.cpp:8
std::vector< Instrument * > instruments
Definition AudioBank.h:57
CtlEntry * GetPointer()
Definition AudioBank.cpp:4
Definition AudioBankFactory.h:6
Definition SpaghettiGui.cpp:43
Definition internal.h:115
s16 delay
Definition internal.h:116
s16 arg
Definition internal.h:117
Definition internal.h:134
Definition internal.h:143
f32 tuning
Definition internal.h:145
struct AudioBankSample * sample
Definition internal.h:144
Definition internal.h:172
struct Drum ** drums
Definition internal.h:177
u8 bankId
Definition internal.h:173
u8 numDrums
Definition internal.h:175
struct Instrument ** instruments
Definition internal.h:176
u8 numInstruments
Definition internal.h:174
Definition internal.h:159
u8 pan
Definition internal.h:161
u8 loaded
Definition internal.h:162
struct AdsrEnvelope * envelope
Definition internal.h:164
struct AudioBankSound sound
Definition internal.h:163
u8 releaseRate
Definition internal.h:160
Definition internal.h:148
u8 releaseRate
Definition internal.h:152
struct AdsrEnvelope * envelope
Definition internal.h:153
struct AudioBankSound lowNotesSound
Definition internal.h:154
u8 loaded
Definition internal.h:149
u8 normalRangeLo
Definition internal.h:150
struct AudioBankSound highNotesSound
Definition internal.h:156
u8 normalRangeHi
Definition internal.h:151
struct AudioBankSound normalNotesSound
Definition internal.h:155