    /*********************************************************

      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_ */