/* CONVERT.H 28-jun-88, Marc Savary, AdLib Inc. Header for conversion procedures of *.ROL files to *.MUS ( MIDI like) files. */ #define SYSTEM_XOR_BYTE 0xF0 #define EOX_BYTE 0xF7 #define OVERFLOW_BYTE 0xF8 #define STOP_BYTE 0xFC #define NOTE_OFF_BYTE 0x80 #define NOTE_ON_BYTE 0x90 #define AFTER_TOUCH_BYTE 0xA0 #define CONTROL_CHANGE_BYTE 0xB0 #define PROG_CHANGE_BYTE 0xC0 #define CHANNEL_PRESSURE_BYTE 0xD0 #define PITCH_BEND_BYTE 0xE0 #define ADLIB_CTRL_BYTE 0x7F /* for System exclusive */ #define TEMPO_CTRL_BYTE 0 #define NR_VOICES 11 #define N_ROLL_VOICES NR_VOICES #define TUNE_NAME_SIZE 30 #define FILLER_SIZE 8 #define FILLER2_SIZE 8 #define TIMBRE_DEF_LEN 28 #define TIMBRE_DEF_SIZE ( TIMBRE_DEF_LEN * sizeof( int)) #define OVERFLOW 240 #define DEFAULT_TICK_BEAT 240 struct MusHeader { char majorVersion; char minorVersion; long tuneId; char tuneName[ TUNE_NAME_SIZE]; char tickBeat; char beatMeasure; long totalTick; long dataSize; long nrCommand; char filler[ FILLER_SIZE]; char soundMode; /* 0: melodic, 1: percussive */ char pitchBRange; /* 1 - 12 */ unsigned basicTempo; char filler2[ FILLER2_SIZE]; /* char data[]; */ };