00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef _MIDI_SPEC_
00029 #define _MIDI_SPEC_
00030
00031
00032
00033
00034
00035 #define MIDI_RESETCONTROLLERS 0x79
00036 #define MIDI_LOCALCONTROL 0x7a
00037 #define MIDI_ALLNOTESOFF 0x7b
00038 #define MIDI_OMNIOFF 0x7c
00039 #define MIDI_OMNION 0x7d
00040 #define MIDI_MONO 0x7e
00041 #define MIDI_POLY 0x7f
00042 #define MIDI_NOTEOFF 0x80
00043 #define MIDI_NOTEON 0x90
00044 #define MIDI_POLYPRES 0xa0
00045 #define MIDI_CONTROL 0xb0
00046 #define MIDI_PROGRAM 0xc0
00047 #define MIDI_CHANPRES 0xd0
00048 #define MIDI_PITCH 0xe0
00049 #define MIDI_CHANMODE MIDI_CONTROL
00050 #define MIDI_SYSTEM 0xf0
00051 #define MIDI_SYSEXCL (MIDI_SYSTEM | 0x0)
00052 #define MIDI_TIMECODEQUARTER (MIDI_SYSTEM | 0x1)
00053 #define MIDI_SONGPOS (MIDI_SYSTEM | 0x2)
00054 #define MIDI_SONGSEL (MIDI_SYSTEM | 0x3)
00055 #define MIDI_TUNEREQ (MIDI_SYSTEM | 0x6)
00056 #define MIDI_EOX (MIDI_SYSTEM | 0x7)
00057 #define MIDI_CLOCK (MIDI_SYSTEM | 0x8)
00058 #define MIDI_START (MIDI_SYSTEM | 0xa)
00059 #define MIDI_CONTINUE (MIDI_SYSTEM | 0xb)
00060 #define MIDI_STOP (MIDI_SYSTEM | 0xc)
00061 #define MIDI_ACTIVE (MIDI_SYSTEM | 0xe)
00062 #define MIDI_RESET (MIDI_SYSTEM | 0xf)
00063
00064 #define MIDI_MAXDATA 0x7f
00065 #define MIDI_OP(y) (y & (MIDI_STATUSMASK))
00066 #define MIDI_DATA(y) (y & (MIDI_MAXDATA))
00067 #define MIDI_MAXCHAN 0x0f
00068 #define MIDI_NUMCHANS 16
00069 #define MIDI_NUMKEYS 128
00070 #define MIDI_ZEROBEND 0x2000
00071 #define MIDI_DEFAULTVELOCITY 64
00072
00073
00074 #define MIDI_BANKSELECT_MSB 0
00075 #define MIDI_MODWHEEL 1
00076 #define MIDI_BREATH 2
00077 #define MIDI_FOOT 4
00078 #define MIDI_PORTAMENTOTIME 5
00079 #define MIDI_DATAENTRY 6
00080 #define MIDI_MAINVOLUME 7
00081 #define MIDI_BALANCE 8
00082 #define MIDI_PAN 10
00083 #define MIDI_EXPRESSION 11
00084 #define MIDI_EFFECTCONTROL1 12
00085 #define MIDI_EFFECTCONTROL2 13
00086
00087
00088 #define MIDI_MODWHEELLSB (1 + 31)
00089 #define MIDI_BREATHLSB (2 + 31)
00090 #define MIDI_FOOTLSB (4 + 31)
00091 #define MIDI_PORTAMENTOTIMELSB (5 + 31)
00092 #define MIDI_DATAENTRYLSB (6 + 31)
00093 #define MIDI_MAINVOLUMELSB (7 + 31)
00094 #define MIDI_BALANCELSB (8 + 31)
00095 #define MIDI_PANLSB (10 + 31)
00096 #define MIDI_EXPRESSIONLSB (11 + 31)
00097
00098
00099 #define MIDI_BANKMSB 0
00100 #define MIDI_BANKLSB 32
00101
00102 #define MIDI_DAMPER 64
00103 #define MIDI_PORTAMENTO 65
00104 #define MIDI_SOSTENUTO 66
00105 #define MIDI_SOFTPEDAL 67
00106 #define MIDI_LEGATOFOOTSWITCH 68
00107 #define MIDI_HOLD2 69
00108
00109
00110 #define MIDI_SOUNDVARIATION 70
00111 #define MIDI_HARMONICINTENSITY 71
00112 #define MIDI_RELEASETIME 72
00113 #define MIDI_ATTACKTIME 73
00114 #define MIDI_BRIGHTNESS 74
00115
00116 #define MIDI_PORTAMENTOCONTROL 84
00117
00118
00119
00120
00121 #define MIDI_EXTERNALEFFECTSDEPTH 91
00122 #define MIDI_TREMELODEPTH 92
00123 #define MIDI_CHORUSDEPTH 93
00124 #define MIDI_DETUNEDEPTH 94
00125 #define MIDI_PHASERDEPTH 95
00126
00127
00128
00129 #define MIDI_EFFECTS1 91
00130 #define MIDI_EFFECTS2 92
00131 #define MIDI_EFFECTS3 93
00132 #define MIDI_EFFECTS4 94
00133 #define MIDI_EFFECTS5 95
00134 #define MIDI_DATAINCREMENT 96
00135 #define MIDI_DATADECREMENT 97
00136
00137
00138 #define MIDI_PITCHBENDRANGE 100
00139
00140
00141
00142
00143 #define MIDI_STATUSBIT 0x80
00144 #define MIDI_STATUSMASK 0xf0
00145 #define MIDI_SYSRTBIT 0x08
00146
00147
00148 #define MIDI_TYPE_SYSTEM_REALTIME(byte) (((byte)&0xf8) == 0xf8)
00149 #define MIDI_TYPE_1BYTE(byte) ( MIDI_TYPE_SYSTEM_REALTIME(byte) \
00150 || (byte) == 0xf6 || (byte) == 0xf7)
00151 #define MIDI_TYPE_2BYTE(byte) ( (((byte)&0xe0) == 0xc0) \
00152 || (((byte)&0xe0) == 0xd0) \
00153 || ((byte)&0xfd) == 0xf1)
00154 #define MIDI_TYPE_3BYTE(byte) ( ((byte)&0xc0) == 0x80 \
00155 || ((byte)&0xe0) == 0xe0 \
00156 || (byte) == 0xf2)
00157 #define MIDI_TYPE_SYSTEM(byte) (((byte)&0xf0) == 0xf0)
00158 #define MIDI_EVENTSIZE(byte) (MIDI_TYPE_1BYTE(byte) ? 1 : \
00159 MIDI_TYPE_2BYTE(byte) ? 2 : 3)
00160
00161 #endif