blob: 01d43fd2b5dc978a1533fba573eb4969b5b78712 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
|
/******************************/
/* */
/* midi.h */
/* */
/* Definition der Midi-Events */
/* */
/******************************/
/***************************/
/* Channel Voice Messages. */
/***************************/
#define MIDI_NOTE_OFF (0x80)
#define MIDI_NOTE_ON (0x90)
#define MIDI_POLY_AFTERTOUCH (0xA0)
#define MIDI_CTRL_CHANGE (0xB0)
#define MIDI_PROG_CHANGE (0xC0)
#define MIDI_CHNL_AFTERTOUCH (0xD0)
#define MIDI_PITCH_BEND (0xE0)
/********************/
/* System Messages. */
/********************/
#define MIDI_SYSTEM_MSG (0xF0)
#define MIDI_SYSTEM_EXCLUSIVE (0xF0)
#define MIDI_SONG_POSITION_PTR (0xF2)
#define MIDI_SONG_SELECT (0xF3)
#define MIDI_TUNE_REQUEST (0xF6)
#define MIDI_EOX (0xF7)
#define MIDI_FILE_META_EVENT (0xFF)
/******************************/
/* System Real-Time Messages. */
/******************************/
#define MIDI_TIMING_CLOCK (0xF8)
#define MIDI_START (0xFA)
#define MIDI_CONTINUE (0xFB)
#define MIDI_STOP (0xFC)
#define MIDI_ACTIVE_SENSING (0xFE)
#define MIDI_SYSTEM_RESET (0xFF)
/*******************************/
/* MIDI file format constants. */
/*******************************/
#define MIDI_FILE_HEADER "MThd"
#define MIDI_TRACK_HEADER "MTrk"
/**************************/
/* MIDI file Meta-Events. */
/**************************/
#define MIDI_SEQUENCE_NUMBER (0x00)
#define MIDI_TEXT_EVENT (0x01)
#define MIDI_CHANNEL_PREFIX (0x20)
#define MIDI_END_OF_TRACK (0x2F)
#define MIDI_SET_TEMPO (0x51)
#define MIDI_SMPTE_OFFSET (0x54)
#define MIDI_TIME_SIGNATURE (0x58)
#define MIDI_KEY_SIGNATURE (0x59)
#define MIDI_SEQUENCER_SPECIFIC (0x7F)
/******************************/
/* Specific Text Meta-Events. */
/******************************/
#define MIDI_COPYRIGHT_NOTICE (0x02)
#define MIDI_TRACK_NAME (0x03)
#define MIDI_INSTRUMENT_NAME (0x04)
#define MIDI_LYRIC (0x05)
#define MIDI_TEXT_MARKER (0x06)
#define MIDI_CUE_POINT (0x07)
#define MAJOR 0
#define MINOR 1
typedef struct header_struct {
char MThd[5];
unsigned int chunk_length;
short int format, tracks, per_quarter;
} Header;
typedef struct track_str {
char MTrk[5];
int chunk_length;
} Track_Header;
|