/*********************************************************
libmus.h : Nintendo 64 Music Tools Programmers Library
(c) Copyright 1997/1998, Software Creations (Holdings) Ltd.
Version 3.11
Music library data definition header file.
**********************************************************/
#ifndef _LIBMUS_DATA_H_
#define _LIBMUS_DATA_H_
#include <libaudio.h>
/* sample pointer bank header structure (will be moved into player.h!) */
typedef struct
{
unsigned char header_name[16]; /* "Nu64 pointer bank" (or something like that) */
unsigned long flags; /* 32 bit flags */
unsigned long wbk_name[3]; /* 12 byte ASCII name (currently unused) */
int count; /* number of samples contained in sample bank */
/* the three pointers below must be consecutive */
unsigned char *basenote; /* address of corse tune array */
float *detune; /* address of fine tune array */
ALWaveTable **wave_list; /* address of wave table pointer array */
} ptr_bank_t;
/* note lengths */
#define qv 24
#define sq 12
#define dcr 72
#define ddcr 84
#define dsq 6
#define dqv 36
#define cr 48
#define mn 96
#define crtr 16
#define ddqv 42
#define hdsqtr 1
#define sqtr 4
#define qvtr 8
#define dtsq 18
#define hdsq 3
#define sb 192
#define dmn 144
/* note values */
#define cs0 1
#define d0 2
#define ds0 3
#define e0 4
#define f0 5
#define fs0 6
#define g0 7
#define gs0 8
#define a0 9
#define as0 10
#define b0 11
#define c1 12
#define cs1 13
#define d1 14
#define ds1 15
#define e1 16
#define f1 17
#define fs1 18
#define g1 19
#define gs1 20
#define a1 21
#define as1 22
#define b1 23
#define c2 24
#define cs2 25
#define d2 26
#define ds2 27
#define e2 28
#define f2 29
#define fs2 30
#define g2 31
#define gs2 32
#define a2 33
#define as2 34
#define b2 35
#define c3 36
#define cs3 37
#define d3 38
#define ds3 39
#define e3 40
#define f3 41
#define fs3 42
#define g3 43
#define gs3 44
#define a3 45
#define as3 46
#define b3 47
#define c4 48
#define cs4 49
#define d4 50
#define ds4 51
#define e4 52
#define f4 53
#define fs4 54
#define g4 55
#define gs4 56
#define a4 57
#define as4 58
#define b4 59
#define c5 60
#define cs5 61
#define d5 62
#define ds5 63
#define e5 64
#define f5 65
#define fs5 66
#define g5 67
#define gs5 68
#define a5 69
#define as5 70
#define b5 71
#define c6 72
#define cs6 73
#define d6 74
#define ds6 75
#define e6 76
#define f6 77
#define fs6 78
#define g6 79
#define gs6 80
#define a6 81
#define as6 82
#define b6 83
#define c7 84
#define cs7 85
#define d7 86
#define ds7 87
#define e7 88
#define f7 89
#define fs7 90
#define g7 91
#define gs7 92
#define a7 93
#define as7 94
#define b7 95
/* commands */
#define Cstop 0x80
#define Cwave 0x81
#define Cport 0x82
#define Cportoff 0x83
#define Cdefa 0x84
#define Ctempo 0x85
#define Ccutoff 0x86
#define Cendit 0x87
#define Cvibup 0x88
#define Cvibdown 0x89
#define Cviboff 0x8a
#define Clength 0x8b
#define Cignore 0x8c
#define Ctrans 0x8d
#define Cignoretrans 0x8e
#define Cdistort 0x8f
#define Cadsr 0x90
#define Cenvoff 0x91
#define Cenvon 0x92
#define Ctroff 0x93
#define Ctron 0x94
#define Cfor 0x95
#define Cnext 0x96
#define Cwobble 0x97
#define Cwobbleoff 0x98
#define Cvelon 0x99
#define Cveloff 0x9a
#define Cvelocity 0x9b
#define Cpan 0x9c
#define Cstereo 0x9d
#define Cdrums 0x9e
#define Cdrumsoff 0x9f
#define Cprint 0xa0
#define Cgoto 0xa1
#define Creverb 0xa2
#define Crandnote 0xa3
#define Crandvolume 0xa4
#define Crandpan 0xa5
#define Cvolume 0xa6
#define Cstartfx 0xa7
#define Cbendrange 0xa8
#define Csweep 0xa9
#define Cchangefx 0xaa
#define Cmarker 0xab
#define Clength0 0xac
#define Clast 0xad
#endif /* _LIBMUS_DATA_H_ */