yaze 0.3.2
Link to the Past ROM Editor
 
Loading...
Searching...
No Matches
song_data.h File Reference
#include <array>
#include <cstdint>
#include <string>
#include <vector>
Include dependency graph for song_data.h:

Go to the source code of this file.

Classes

struct  yaze::zelda3::music::Note
 Represents a single musical note. More...
 
struct  yaze::zelda3::music::MusicCommand
 Represents an N-SPC command (opcodes 0xE0-0xFF). More...
 
struct  yaze::zelda3::music::TrackEvent
 A single event in a music track (note, command, or control). More...
 
struct  yaze::zelda3::music::MusicTrack
 One of 8 channels in a music segment. More...
 
struct  yaze::zelda3::music::MusicSegment
 A segment containing 8 parallel tracks. More...
 
struct  yaze::zelda3::music::MusicSong
 A complete song composed of segments. More...
 
struct  yaze::zelda3::music::MusicInstrument
 An instrument definition with ADSR envelope. More...
 
struct  yaze::zelda3::music::MusicSample
 A BRR-encoded audio sample. More...
 

Namespaces

namespace  yaze
 
namespace  yaze::zelda3
 Zelda 3 specific classes and functions.
 
namespace  yaze::zelda3::music
 Contains classes and functions for handling music data in Zelda 3.
 

Enumerations

enum class  yaze::zelda3::music::CommandType : uint8_t {
  yaze::zelda3::music::SetInstrument = 0xE0 , yaze::zelda3::music::SetPan = 0xE1 , yaze::zelda3::music::PanFade = 0xE2 , yaze::zelda3::music::VibratoOn = 0xE3 ,
  yaze::zelda3::music::VibratoOff = 0xE4 , yaze::zelda3::music::SetMasterVolume = 0xE5 , yaze::zelda3::music::MasterVolumeFade = 0xE6 , yaze::zelda3::music::SetTempo = 0xE7 ,
  yaze::zelda3::music::TempoFade = 0xE8 , yaze::zelda3::music::GlobalTranspose = 0xE9 , yaze::zelda3::music::ChannelTranspose = 0xEA , yaze::zelda3::music::TremoloOn = 0xEB ,
  yaze::zelda3::music::TremoloOff = 0xEC , yaze::zelda3::music::SetChannelVolume = 0xED , yaze::zelda3::music::ChannelVolumeFade = 0xEE , yaze::zelda3::music::CallSubroutine = 0xEF ,
  yaze::zelda3::music::VibratoFade = 0xF0 , yaze::zelda3::music::PitchEnvelopeTo = 0xF1 , yaze::zelda3::music::PitchEnvelopeFrom = 0xF2 , yaze::zelda3::music::PitchEnvelopeOff = 0xF3 ,
  yaze::zelda3::music::Tuning = 0xF4 , yaze::zelda3::music::EchoVBits = 0xF5 , yaze::zelda3::music::EchoOff = 0xF6 , yaze::zelda3::music::EchoParams = 0xF7 ,
  yaze::zelda3::music::EchoVolumeFade = 0xF8 , yaze::zelda3::music::PitchSlide = 0xF9 , yaze::zelda3::music::PercussionPatch = 0xFA
}
 

Functions

uint16_t yaze::zelda3::music::LookupNSpcPitch (uint8_t note_byte)
 Look up the DSP pitch value for an N-SPC note byte.
 

Variables

constexpr int yaze::zelda3::music::kCommandParamCount [32]
 
constexpr uint8_t yaze::zelda3::music::kNoteMinPitch = 0x80
 
constexpr uint8_t yaze::zelda3::music::kNoteMaxPitch = 0xC7
 
constexpr uint8_t yaze::zelda3::music::kNoteTie = 0xC8
 
constexpr uint8_t yaze::zelda3::music::kNoteRest = 0xC9
 
constexpr uint8_t yaze::zelda3::music::kTrackEnd = 0x00
 
constexpr uint8_t yaze::zelda3::music::kDurationQuarter = 0x48
 
constexpr uint8_t yaze::zelda3::music::kDurationQuarterDot = 0x6C
 
constexpr uint8_t yaze::zelda3::music::kDurationQuarterTrip = 0x30
 
constexpr uint8_t yaze::zelda3::music::kDurationEighth = 0x24
 
constexpr uint8_t yaze::zelda3::music::kDurationEighthDot = 0x36
 
constexpr uint8_t yaze::zelda3::music::kDurationEighthTrip = 0x18
 
constexpr uint8_t yaze::zelda3::music::kDurationSixteenth = 0x12
 
constexpr uint8_t yaze::zelda3::music::kDurationSixteenthDot = 0x1B
 
constexpr uint8_t yaze::zelda3::music::kDurationThirtySecond = 0x09
 
constexpr uint32_t yaze::zelda3::music::kOverworldBankRom = 0xD1EF5
 
constexpr uint32_t yaze::zelda3::music::kDungeonBankRom = 0xD8000
 
constexpr uint32_t yaze::zelda3::music::kCreditsBankRom = 0xD5380
 
constexpr uint16_t yaze::zelda3::music::kSongTableAram = 0xD000
 
constexpr uint16_t yaze::zelda3::music::kInstrumentTableAram = 0x3D00
 
constexpr uint16_t yaze::zelda3::music::kSampleTableAram = 0x3C00
 
constexpr uint16_t yaze::zelda3::music::kSampleDataAram = 0x4000
 
constexpr int yaze::zelda3::music::kOverworldBankMaxSize = 12032
 
constexpr int yaze::zelda3::music::kDungeonBankMaxSize = 11200
 
constexpr int yaze::zelda3::music::kCreditsBankMaxSize = 4200
 
constexpr uint16_t yaze::zelda3::music::kNSpcPitchTable [72]
 
constexpr uint32_t yaze::zelda3::music::kExpandedOverworldBankRom = 0x1A9EF5
 
constexpr uint32_t yaze::zelda3::music::kExpandedAuxBankRom = 0x1ACCA7
 
constexpr uint16_t yaze::zelda3::music::kAuxSongTableAram = 0x2B00
 
constexpr int yaze::zelda3::music::kExpandedOverworldBankMaxSize = 0x2DAE
 
constexpr int yaze::zelda3::music::kAuxBankMaxSize = 0x0688
 
constexpr uint32_t yaze::zelda3::music::kExpandedMusicHookAddress = 0x008919
 
constexpr uint8_t yaze::zelda3::music::kJslOpcode = 0x22
 
constexpr const char * yaze::zelda3::music::kDefaultInstrumentNames []
 
constexpr const char * yaze::zelda3::music::kNoteNames []