home *** CD-ROM | disk | FTP | other *** search
/ C++ Games Programming / CPPGAMES.ISO / mt / mpu401.h < prev    next >
Text File  |  1989-01-12  |  6KB  |  143 lines

  1. /* mpu401.h     header file */
  2. /* mpu-401 command and message summary */
  3.  
  4. /* mpu marks */
  5.  
  6. #define NOP             0xf8        /* no operation */
  7. #define MES_END         0xf9        /*  measure end */
  8. #define DATA_END        0xfc        /*  end data */
  9.  
  10. /* mpu messages */
  11.  
  12. #define REQ_T1          0xf0    /* track data request track 1 */
  13. #define REQ_T2          0xf1    
  14. #define REQ_T3          0xf2
  15. #define REQ_T4          0xf3
  16. #define REQ_T5          0xf4
  17. #define REQ_T6          0xf5
  18. #define REQ_T7          0xf6
  19. #define REQ_T8          0xf7    /* track data request track 8 */
  20. #define TIME_OUT        0xf8    /* timing overflow */
  21. #define CONDUCT         0xf9    /* conductor data request */
  22. #define ALL_END         0xfc    /* all end */
  23. #define CLOCK_OUT       0xfd    /* clock to host */
  24. #define ACK             0xfe    /* acknowledge */
  25. #define SYS_MES         0xff    /* system message */
  26.  
  27. /* mpu commands */
  28.  
  29. #define STOP_PLAY       0x05
  30. #define START_PLAY      0x0a
  31. #define STOP_REC        0x11
  32. #define START_REC       0x22
  33. #define STOP_OVDUB      0x15
  34. #define START_OVDUB     0x2A
  35.  
  36. #define N0_ALL_OFF      0x30    /* all notes off */
  37. #define NO_RTIME        0x32    /* no real time */
  38. #define THRU_OFF_CHAN   0x33    /* thru : off on channels */
  39. #define WITH_TIME       0x34    /* with timing byte : on */
  40. #define MODE_THRU       0x35    /* mode mes : on */
  41. #define EXCL_THRU       0x36    /* exclusive thru : on */
  42. #define COM_THRU        0x38    /* common to host : on */
  43. #define REAL_THRU       0x39    /* real time to host : on */
  44. #define UART            0x3f    /* uart mode */
  45.  
  46. /* channel reference table numbers are normally computed */
  47.  
  48. /*
  49. 40 - 4f sets channel reference table a
  50. 50 - 5f b
  51. 60 - 6f c
  52. 70 - 7f d
  53. */
  54.  
  55. #define INT_CLOCK       0x80    /* internal clock */
  56. #define FSK_CLOCK       0x81    /* fsk clock */
  57. #define MIDI_CLOCK      0x82    /* midi clock */
  58. #define MET_ON_WOUT     0x83    /* metronome : on - w/o accents */
  59. #define MET_OFF         0x84    /* metronome : off */
  60. #define MET_ON_WITH     0x85    /* metronome : on - with accents */
  61. #define BEND_OFF        0x86    /* bender : off */
  62. #define BEND_ON         0x87    /* bender : on */
  63. #define THRU_OFF        0x88    /* midi thru : off */
  64. #define THRU_ON         0x89    /* midi thru : on */
  65. #define DSTOP_OFF       0x8a    /* data in stop mode : off */
  66. #define DSTOP_ON        0x8b    /* data in stop mode : on */
  67. #define MEAS_OFF        0x8c    /* send measure end : off */
  68. #define MEAS_ON         0x8d    /* send measure end : on */
  69. #define COND_OFF        0x8e    /* conductor : off */
  70. #define COND_ON         0x8f    /* conductor : on */
  71. #define REAL_OFF        0x90    /* real time affecton : off */
  72. #define REAL_ON         0x91    /* real time affection : on */
  73. #define FSK_INT         0x92    /* fsk to internal */
  74. #define FSK_MIDI        0x93    /* fsk to midi */
  75. #define CLOCK_OFF       0x94    /* clock to host : off */
  76. #define CLOCK_ON        0x95    /* clock to host : on */
  77. #define EXCL_OFF        0x96    /* exclusive to host : off */
  78. #define EXCL_ON         0x97    /* exclusive to host : on */
  79.  
  80. #define CHANA_OFF       0x98    /* reference table a : off */
  81. #define CHANA_ON        0x99    /* a : on */
  82. #define CHANB_OFF       0x9a    /* b : off */
  83. #define CHANB_ON        0x9b    /* b : on */
  84. #define CHANC_OFF       0x9c    /* c : off */
  85. #define CHANC_ON        0x9d    /* c : on */
  86. #define CHAND_OFF       0x9e    /* d : off */
  87. #define CHAND_ON        0x9f    /* d : on */
  88.  
  89. /* reading data */
  90.  
  91. #define REQ_CNT0        0xa0    /* request play counter of track 1 */
  92. #define REQ_CNT1        0xa1
  93. #define REQ_CNT2        0xa2
  94. #define REQ_CNT3        0xa3
  95. #define REQ_CNT4        0xa4
  96. #define REQ_CNT5        0xa5
  97. #define REQ_CNT6        0xa6
  98. #define REQ_CNT7        0xa7
  99.  
  100. #define REQ_REC_CNT     0xab    /* request record counter */
  101. #define REQ_VER         0xac    /* request version */
  102. #define REQ_REV         0xad    /* request revision */
  103. #define REQ_TEMPO       0xaf    /* request tempo */
  104.  
  105. #define RES_RTEMPO      0xb1    /* resets relative tempo */
  106. #define CLEAR_PCOUNT    0xb8    /* clear play counters */
  107. #define CLEAR_PMAP      0xb9    /* clear play map - all notes off */
  108. #define CLEAR_REC       0xba    /* clear record counter */
  109.  
  110. #define TB_48           0xc2    /* 48 timebase */
  111. #define TB_72           0xc3
  112. #define TB_96           0xc4
  113. #define TB_120          0xc5
  114. #define TB_144          0xc6
  115. #define TB_168          0xc7
  116. #define TB_192          0xc8
  117.  
  118. #define WSD0            0xd0    /* want to send data on track 1 */
  119. #define WSD1            0xd1
  120. #define WSD2            0xd2
  121. #define WSD3            0xd3
  122. #define WSD4            0xd4
  123. #define WSD5            0xd0
  124. #define WSD6            0xd6
  125. #define WSD7            0xd7
  126.  
  127. #define WS_SYS          0xdf    /* want to send system message */
  128.  
  129. /* set conditions and values (follow by 1 byte data) */
  130.  
  131. #define SET_TEMPO       0xe0    /* set tempo */
  132. #define SET_RTEMPO      0xe1    /* relative tempo */
  133. #define SET_GRAD        0xe2    /* graduation */
  134. #define MIDI_METRO      0xe4    /* midi clocks per metronome beep */
  135. #define METRO_MEAS      0xe6    /* metro/meas */
  136. #define INT_HOST        0xe7    /* int * 4 / clock to host */
  137. #define ACT_TRACK       0xec    /* active tracks on/off */
  138. #define SEND_PCOUNT     0xed    /* send play counter on/off */
  139. #define CHAN_ON1        0xee    /* acceptable channels 1 - 8 on/off */
  140. #define CHAN_ON2        0xef    /* acceptable channels 9 - 16 on/off */
  141.  
  142. #define RESET           0xff
  143.