home *** CD-ROM | disk | FTP | other *** search
/ Boink! 1995 May/June / Image.bin / musik / midi / tools / midisp.txt < prev    next >
Text File  |  1994-11-18  |  24KB  |  643 lines

  1. MIDI
  2. MUSICAL INSTRUMENT DIGITAL INTERFACE
  3.  
  4. Specification 1.0
  5. INTRODUCTION
  6.  
  7. MIDI is the acronym for Musical Instrument Digital Interface.
  8.  
  9. MIDI enables synthesizers, sequencers, home computers, rhythm machines, etc.
  10. to be intercon- nected through a standard interface.
  11.  
  12. Each MIDI-equipped instrument usually contains a receiver and a transmitter.
  13. Some instruments may contain only a receiver or transmitter.  The receiver
  14. receives messages in MIDI format and executes MIDI commands.  It consists of an
  15. optoisolator, Universal Asynchronous Receiver/Transmitter (UART), and other
  16. hardware needed to perform the intended functions.  The transmitter originates
  17. messages in MIDI format, and transmits them by way of a UART and line driver.
  18.  
  19. The MIDI standard hardware and data format are defined in this specification.
  20.  
  21.  
  22. CONVENTIONS
  23.  
  24. Status and Data bytes given in Tables I through VI are given in binary.
  25.  
  26. Numbers followed by an "H" are in hexadecimal.
  27.  
  28. All other numbers are in decimal.
  29.  
  30.  
  31. HARDWARE
  32.  
  33. The interface operates at 31.25 (+/- 1%) Kbaud, asynchronous, with a start
  34. bit, 8 data bits (D0 to D7), and a stop bit.  This makes a total of 10 bits for
  35. a period of 320 microseconds per serial byte.
  36.  
  37. Circuit: 5 mA current loop type.  Logical 0 is current ON.  One output shall
  38. drive one and only one input.  The receiver shall be opto-isolated and require
  39. less than 5 mA to turn on.  Sharp PC-900 and HP 6N138 optoisolators have been
  40. found acceptable.  Other high-speed optoisolators may be satisfactory.  Rise
  41. and fall times should be less than 2 microseconds.
  42.  
  43. Connectors: DIN 5 pin (180 degree) female panel mount receptacle.  An example
  44. is the SWITCHCRAFT 57 GB5F.  The connectors shall be labelled "MIDI IN" and
  45. "MIDI OUT".  Note that pins 1 and 3 are not used, and should be left
  46. unconnected in the receiver and transmitter.
  47.  
  48. NOTES:
  49.  
  50. 1. Optoisolator is Sharp PC-900.
  51.      (HP 6N138 or other optoisolator can be used with appropriate changes.)
  52.  
  53. 2. Gates "A" are IC or transistor.
  54.  
  55. 3. Resistors are 5%
  56.  
  57.  
  58. Cables shall have a maximum length of fifty feet (15 meters), and shall be
  59. terminated on each end by a corresponding 5-pin DIN male plug, such as the
  60. SWITCHCRAFT 05GM5M.  The cable shall be shielded twisted pair, with the shield
  61. connected to pin 2 at both ends.
  62.  
  63. A "MIDI THRU" output may be provided if needed, which provides a direct copy
  64. of data coming in MIDI IN.  For very long chain lengths (more than three
  65. instruments), higher-speed optoisolators must be used to avoid additive
  66. rise/fall time errors which affect pulse width duty cycle.
  67.  
  68.  
  69. DATA FORMAT
  70.  
  71. All MIDI communication is acheived through multi-byte "messages" consisting of
  72. one Status byte followed by one or two Data bytes, except Real-Time and
  73. Exclusive messages (see below).
  74.  
  75. MESSAGE TYPES
  76.  
  77. Messages are divided into two main categories: Channel and System.
  78.  
  79. Channel
  80.  
  81. Channel messages contain a four-bit number in the Status byte which address
  82. the message specifically to one of sixteen channels.  These messages are
  83. thereby intended for any units in a system whose channel number matches the
  84. channel number encoded into the Status byte.
  85.  
  86. There are two types of Channel messages: Voice and Mode.
  87.  
  88.         Voice
  89.         To control the instrument's voices, Voice messages are sent
  90.         over the Voice Channels.
  91.  
  92.         Mode
  93.         To define the instrument's response to Voice messages, Mode
  94.  messages are sent over the instument's Basic Channel.
  95.  
  96.  
  97. System
  98. System messages are not encoded with channel numbers.
  99.  
  100. There are three types of System messages: Common, Real-Time, and Exclusive.
  101.  
  102.         Common
  103.         Common messages are intended for all units in a system.
  104.  
  105.         Real-Time
  106.         Real-Time messages are intended for all units in a system.
  107.         They contain Status bytes only -- no Data bytes.  Real-Time
  108.  messages may be sent at any time -- even between bytes of a
  109.         message which has a different status.  In such cases the
  110.         Real-Time message is either ignored or acted upon, after which
  111.         the receiving process resumes under the previous status.
  112.  
  113.         Exclusive
  114.         Exclusive messages can contain any number of Data bytes, and
  115.         are terminated by an End of Exclusive (EOX) or any other Status
  116.         byte.  These messages include a Manufacturer's Identification
  117.         (ID) code.  If the receiver does not recognize the ID code, it
  118.         should ignore the ensuing data.
  119.  
  120.         So that other users can fully access MIDI instruments,  manufacturers
  121.         should publish the format of data following their ID code. Only the
  122.  manufacturer can update the format following their ID.
  123.  
  124. DATA TYPES
  125.  
  126. Status Bytes
  127.  
  128. Status bytes are eight-bit binary numbers in which the Most Significant Bit
  129. (MSB) is set (binary 1).  Status bytes serve to identify the message type, that
  130. is, the purpose of the Data bytes which follow the Status byte.
  131.  
  132. Except for Real-Time messages, new Status bytes will always command the
  133. receiver to adopt their status, even if the new Status is received before the
  134. last message was completed.
  135.  
  136.         Running Status
  137.         For Voice and Mode messages only, when a Status byte is
  138.  received and processed, the receiver will remain in that status
  139.    until a different Status byte is received.  Therefore, if the same
  140.         Status byte would be repeated, it may (optionally) be omitted so
  141.         that only the correct number of Data bytes need be sent.  Under
  142.         Running Status, then, a complete message need only consist of
  143.         specified Data bytes sent in the specified order.
  144.  
  145.         The Running Status feature is especially useful for
  146.         communicating long strings of Note On/Off messages, where
  147.         "Note On with Velocity of 0" is used for Note Off.  (A separate
  148.         Note Off Status byte is also available.)
  149.  
  150.         Running Status will be stopped when any other Status byte 
  151.  intervenes, except that Real-Time messges will only interrupt    
  152.  the Running Status temporarily.
  153.  
  154.         Unimplemented Status
  155.         Any status bytes received for functions which the receiver has  not
  156.  implemented should be ignored, and subsequent data bytes ignored.
  157.  
  158.         Undefined Status
  159.         Undefined Status bytes must not be used.  Care should be taken  to
  160.  prevent illegal messages from being sent during power-up or
  161.         power-down.  If undefined Status bytes are received, they     
  162.  should be ignored, as should subsequent Data bytes.
  163.  
  164. Data Bytes
  165. Following the Status byte, there are (except for Real-Time messages) one or
  166. two Data bytes which carry the content of the message.  Data bytes are
  167. eight-bit binary numbers in which the MSB is reset (binary 0).  The number and
  168. range of Data bytes which must follow each Status byte are specified in the
  169. tables which follow.  For each Status byte the correct number of Data bytes
  170. must always be sent.  Inside the receiver, action on the message should wait
  171. until all Data bytes required under the current status are received.  Receivers
  172. should ignore Data bytes which have not been properly preceeded by a valid
  173. Status byte (with the exception of "Running Status," above).
  174.  
  175.  
  176. CHANNEL MODES
  177.  
  178. Synthesizers contain sound generation elements called voices.  Voice
  179. assignment is the algorithmic process of routing Note On/Off data from the
  180. keyboard to the voices so that the musical notes are correctly played with
  181. accurate timing.
  182.  
  183. When MIDI is implemented, the relationship between the sixteen available MIDI
  184. channels and the synthesizer's voice assignment must be defined.  Several Mode
  185. messages are available for this purpose (see Table III).  They are Omni
  186. (On/Off), Poly, and Mono.  Poly and Mono are mutually exclusive, i.e., Poly
  187. Select disables Mono, and vice versa.  Omni, when on, enables the receiver to
  188. receive Voice messages in all voice Channels without discrimination.  When Omni
  189. is off, the receiver will accept Voice messages from only the selected Voice
  190. Channel(s).  Mono, when on, restricts the assignment of Voices to just one
  191. voice per Voice Channel (Monophonic.)  When Mono is off (=Poly On), any number
  192. of voices may be allocated by the Receiver's normal voice assignment algorithm
  193. (Polyphonic.)
  194.  
  195. For a receiver assigned to Basic Channel "N," the four possible modes arising
  196. from the two Mode messages are:
  197.  
  198.  Mode   Omni
  199.  
  200.  
  201. 1       On      Poly    Voice messages are received from all Voice
  202.      channels and assigned to voices polyphonically.
  203.   
  204. 2       On      Mono    Voice messages are received from all Voice
  205.              Channels, and control only one voice,
  206.                     monophonically.
  207.  
  208. 3       Off     Poly    Voice messages are received in Voice channel N
  209.            only, and are assigned to voices polyphonically.
  210.  
  211. 4       Off     Mono    Voice messages are received in Voice channels
  212.            N thru N+M-1, and assigned monophonically to
  213.                  voices 1 thru M, respectively.  The number of                 
  214.  voices M is specified
  215.    by the third byte of the Mono Mode Message.
  216.  
  217. Four modes are applied to transmitters (also assigned to Basic Channel N).
  218. Transmitters with no channel selection capability will normally transmit on
  219. Basic Channel 1 (N=0).
  220.  
  221. Mode    Omni
  222.  
  223.  
  224. 1       On      Poly    All voice messages are transmitted in Channel N.
  225.  
  226. 2       On      Mono    Voice messages for one voice are sent in Channel N.
  227.  
  228. 3       Off     Poly    Voice messages for all voices are sent in Channel N.
  229.  
  230. 4       Off     Mono    Voice messages for voices 1 thru M are
  231.     transmitted in Voice Channels N thru N+M-1,
  232.                         respectively.  (Single voice per channel).
  233.  
  234. A MIDI receiver or transmitter can operate under one and only one mode at a
  235. time.  Usually the receiver and transmitter will be in the same mode.  If a
  236. mode cannot be honored by the receiver, it may ignore the message (and any
  237. subsequent data bytes), or it may switch to an alternate mode (usually Mode 1,
  238. Omni  On/Poly).
  239.  
  240. Mode messages will be recognized by a receiver only when sent in the Basic
  241. Channel to which the receiver has been assigned, regardless of the current
  242. mode.  Voice messages may be received in the Basic Channel and in other
  243. channels (which are all called Voice Channels), which are related specifically
  244. to the Basic channel by the rules above, depending on which mode has been
  245. selected.
  246.  
  247. A MIDI receiver may be assigned to one or more Basic Channels by default or by
  248. user control.  For example, an eight-voice synthesizer might be assigned to
  249. Basic Channel 1 on power-up.  The user could then switch the instrument to be
  250. configured as two four-voice synthesizers, each assigned to its own Basic
  251. Channel.  Separate Mode messages would then be sent to each four-voice
  252. synthesizer, just as if they were physically separate instruments.
  253.  
  254. POWER-UP DEFAULT CONDITIONS
  255.  
  256. On power-up all instruments should default to Mode #1.  Except for Note On/Off
  257. Status, all Voice messages should be disabled.  Spurious or undefined
  258. transmissions must be suppressed.
  259.  
  260.  
  261.  TABLE I
  262.  
  263. SUMMARY OF STATUS BYTES
  264.  
  265.  
  266. STATUS  # OF DATA       DESCRIPTION
  267. D7---D0 BYTES
  268.  
  269. Channel Voice Messages
  270.  
  271. 1000nnnn                2       Note Off event
  272.  
  273. 1001nnnn                2       Note On event (velocity=0: Note Off)
  274.  
  275. 1010nnnn                2       Polyphonic key pressure/after touch
  276.  
  277. 1011nnnn                2       Control change
  278.  
  279. 1100nnnn                1       Program change
  280.  
  281. 1101nnnn                1       Channel pressure/after touch
  282.  
  283. 1110nnnn                2       Pitch bend change
  284.  
  285.  
  286. Channel Mode Messages
  287.  
  288. 1011nnnn                2       Selects Channel Mode
  289.  
  290.  
  291. System Messages
  292.  
  293. 11110000                *****   System Exclusive
  294.  
  295. 11110sss                0 to 2  System Common
  296.  
  297. 11111ttt                0       System Real Time
  298.  
  299.  
  300. NOTES:
  301.         nnnn:   N-1, where N = Channel #,
  302.                         i.e. 0000 is Channel 1.
  303.                         0001 is Channel 2.
  304.                         .
  305.                         .
  306.                         .
  307.                         1111 is Channel 16.
  308.         *****:  0iiiiiii, data, ..., EOX
  309.         iiiiiii:        Identification
  310.         sss:    1 to 7
  311.         ttt:    0 to 7
  312.  
  313.  
  314. TABLE II
  315.  
  316. CHANNEL VOICE MESSAGES
  317.  
  318.  
  319. STATUS  DATA BYTES      DESCRIPTION
  320.  
  321.  
  322. 1000nnnn        0kkkkkkk        Note Off (see notes 1-4)
  323.         0vvvvvvv        vvvvvvv: note off velocity
  324.  
  325. 1001nnnn        0kkkkkkk        Note On (see notes 1-4)
  326.         0vvvvvvv        vvvvvvv - 0: velocity
  327.                         vvvvvvv = 0: note off
  328.  
  329. 1010nnnn        0kkkkkkk        Polyphonic Key Pressure (After-Touch)
  330.         0vvvvvvv        vvvvvvv: pressure value
  331.  
  332. 1011nnnn        0ccccccc        Control Change
  333.         0vvvvvvv        ccccccc: control # (0-121) (see notes 5-8)
  334.                         vvvvvvv: control value
  335.  
  336.                         ccccccc = 122 thru 127: Reserved.
  337.                         (See Table III)
  338.  
  339. 1100nnnn        0ppppppp        Program Change
  340.                         ppppppp: program number (0-127)
  341.  
  342. 1101nnnn        0vvvvvvv        Channel Pressure (After-Touch)
  343.                         vvvvvvv: pressure value
  344.  
  345. 1110nnnn        0vvvvvvv        Pitch Bend Change LSB (see note 10)
  346.         0vvvvvvv        Pitch Bend Change MSB
  347.  
  348.  
  349.  
  350. NOTES:
  351.  
  352. 1. nnnn: Voice Channel # (1-16, coded as defined in Table I notes)
  353.  
  354. 2. kkkkkkk: note # (0 - 127)
  355.       kkkkkkk = 60: Middle C of keyboard
  356.  
  357.     0     12     24     36     48     60     72     84     96     108     120
  358.     127
  359.   -----------------------------------------------------------------
  360.                 ac        c         c          c          c         c
  361. c          c
  362.                          |-------------- piano range -------------------|
  363.  
  364.  
  365. 3. vvvvvvv: key velocity
  366.       A logarithmic scale would be advisable.
  367.  
  368.    0                  1                                      64
  369.                       127
  370.   -------------------------------------------------------------------
  371.   off                 ppp      pp      p     mp      mf      f
  372.           ff        fff
  373.  
  374.    vvvvvvv = 64: in case of no velocity sensors
  375.    vvvvvvv = 0: Note Off, with velocity = 64
  376.  
  377.  
  378. 4.  Any Note On message sent should be balanced by sending a Note Off message
  379. for that note in that channel at some later time.
  380.  
  381.  
  382. 5.  ccccccc: control number
  383.  
  384.  
  385.         ccccccc Description
  386.  
  387.  
  388.         0       Continuous Controller 0 MSB
  389.         1       Continuous Controller 1 MSB (MODULATION BENDER)
  390.         2       Continuous Controller 2 MSB
  391.         3       Continuous Controller 3 MSB
  392.         4-31    Continuous Controllers 4-31 MSB
  393.         32      Continuous Controller 0 LSB
  394.         33      Continuous Controller 1 LSB (MODULATION BENDER)
  395.         34      Continuous Controller 2 LSB
  396.         35      Continuous Controller 3 LSB
  397.         36-63   Continuous Controllers 4-31 LSB
  398.         64-95   Switches (On/Off)
  399.         96-121  Undefined
  400.         122-127 Reserved for Channel Mode messages (see Table III).
  401.  
  402.  
  403. 6.  All controllers are specifically defined by agreement of the MIDI
  404. Manufacturers Association (MMA) and the Japan MIDI Standards Committee (JMSC).
  405. Manufacturers can request throught the MMA or JMSC that logical controllers be
  406. assigned to physical ones as necessary.  The controller allocation table must
  407. be provided in the user's operation manual.
  408.  
  409. 7.  Continuous controllers are divided into Most Significant and Least
  410. Significant Bytes.  If only seven bits of resolution are needed for any
  411. particular controllers, only the MSB is sent.  It is not necessary to send the
  412. LSB.  If more resolution is needed, then both are sent, first the MSB, then the
  413. LSB.  If only the LSB has changed in value, the LSB may be sent without
  414. re-sending the MSB.
  415.  
  416. 8.  vvvvvvv: control value (MSB)
  417.  
  418.      (for controllers)
  419.  
  420.           0
  421.               127
  422.         |-----------------------------------------------------------------|
  423.           min
  424.       max
  425.  
  426.      (for switches)
  427.  
  428.           0
  429.                127
  430. |        -        -        -        -        -        -        -        -
  431.   -        -        -    |
  432.            off
  433.               on
  434.  
  435.         Numbers 1 through 126, inclusive, are ignored.
  436.  
  437.  
  438. 9.  Any messages (e.g. Note On), which are sent successively under the same
  439. status, can be sent without a Status byte until a different Status byte is
  440. needed.
  441.  
  442. 10.  Sensitivity of the pitch bender is selected in the receiver.  Center
  443. position value (no pitch change) is 2000H, which would be transmitted
  444. EnH-00H-40H.
  445. TABLE III
  446.  
  447. CHANNEL MODE MESSAGES
  448.  
  449.  
  450. STATUS  DATA BYTES                   DESCRIPTION
  451.  
  452.  
  453. 1011nnnn        0ccccccc        Mode Messages
  454.         0vvvvvvv
  455.                         ccccccc = 122:  Local Control
  456.                         vvvvvvv = 0, Local Control Off
  457.                         vvvvvvv = 127, Local Control On
  458.  
  459.                         ccccccc = 123:  All Notes Off
  460.                         vvvvvvv = 0
  461.  
  462.                         ccccccc = 124: Omni Mode Off (All Notes Off)
  463.                         vvvvvvv = 0
  464.  
  465.                         ccccccc = 125: Omni Mode On (All Notes Off)
  466.                         vvvvvvv = 0
  467.  
  468.                         ccccccc = 126: Mono Mode On (Poly Mode Off)
  469.                                                    (All Notes Off)
  470.                         vvvvvvv = M, where M is the number of channels.
  471.                         vvvvvvv = 0, the number of channels equals the number 
  472.          of voices in the receiver.
  473.  
  474.                         ccccccc = 127: Poly Mode On (Mono Mode Off)
  475.                         vvvvvvv = 0    (All Notes Off)
  476.  
  477.  
  478. NOTES:
  479.  
  480. 1. nnnn: Basic Channel # (1-16, coded as defined in Table I)
  481.  
  482. 2.  Messages 123 thru 127 function as All Notes Off messages.  They will turn
  483. off all voices controlled by the assigned Basic Channel.  Except for message
  484. 123, All Notes Off, they should not be sent periodically, but only for a
  485. specific purpose.  In no case should they be used in lieu of Note Off commands
  486. to turn off notes which have been previously turned on.  Therefore any All
  487. Notes Off command (123-127) may be ignored by receiver with no possibility of
  488. notes staying on, since any Note On command must have a corresonding specific
  489. Note Off command.
  490.  
  491. 3.  Control Change #122, Local Control, is optionally used to interrupt the
  492. internal control path between the keyboard, for example, and the
  493. sound-generating circuitry.  If 0 (Local Off mesage) is received, the path is
  494. disconnected: the keyboard data goes only to MIDI and the sound-generating
  495. circuitry is controlled only by incoming MIDI data.  If a 7FH (Local On
  496. message) is received, normal operation is restored.
  497.  
  498. 4.  The third byte of "Mono" specifies the number of channels in which
  499. Monophonic Voice messages are to be sent.  This number, "M", is a number
  500. between 1 and 16.  The channel(s) being used, then, will be the current Basic
  501. Channel (=N) thru N+M-1 up to a maximum of 16.  If M=0, this is a special case
  502. directing the receiver to assign all its voices, one per channel, from the
  503. Basic Channel N through 16.
  504.  
  505.  
  506. TABLE IV
  507.  
  508. SYSTEM COMMON MESSAGES
  509.  
  510.  
  511. STATUS  DATA BYTES                   DESCRIPTION
  512.  
  513.  
  514. 11110001                Undefined
  515.  
  516. 11110010                Song Position Pointer
  517.         0lllllll        lllllll: (Least significant)
  518.         0hhhhhhh        hhhhhhh: (Most significant)
  519.  
  520. 11110011        0sssssss        Song Select
  521.                 sssssss: Song #
  522.  
  523. 11110100                Undefined
  524.  
  525. 11110101                Undefined
  526.  
  527. 11110110        none    Tune Request
  528.  
  529. 11110111        none    EOX: "End of System Exclusive" flag
  530.  
  531.  
  532. 1.  Song Position Pointer: Is an internal register which holds the number of
  533. MIDI beats (1 beat = 6 MIDI clocks) since the start of the song.  Normally it
  534. is set to 0 when the START switch is pressed, which starts sequence playback.
  535. It then increments with every sixth MIDI clock receipt, until STOP is pressed.
  536. If CONTINUE is pressed, it continues to increment.  It can be arbitrarily
  537. preset (to a resolution of 1 beat) by the SONG POSITION POINTER message.
  538.  
  539. 2.  Song Select:  Specifies which song or sequence is to be played upon
  540. receipt of a Start (Real-Time) message.
  541.  
  542. 3.  Tune Request:  Used with analog synthesizers to request them to tune their
  543. oscillators.
  544.  
  545. 4.  EOX:  Used as a flag to indicate the end of a System Exclusive
  546. transmission (see Table VI).
  547.  
  548.  
  549. TABLE V
  550.  
  551. SYSTEM REAL TIME MESSAGES
  552.  
  553.  
  554. STATUS  DATA BYTES               DESCRIPTION
  555.  
  556. 11111000                Timing Clock
  557. 11111001                Undefined
  558. 11111010                Start
  559. 11111011                Continue
  560. 11111100                Stop
  561. 11111101                Undefined
  562. 11111110                Active Sensing
  563. 11111111                System Reset
  564.  
  565.  
  566. NOTES:
  567.  
  568. 1.  The System Real Time messages are for synchronizing all of the system in
  569. real time.
  570.  
  571. 2.  The System Real Time messages can be sent at any time.  Any messages which
  572. consist of two or more bytes may be split to insert Real Time messages.
  573.  
  574. 3.  Timing clock (F8H)
  575. The system is synchronized with this clock, which is sent at a rate of 24
  576. clocks/quarter note.
  577.  
  578. 4.  Start (from the beginning of song) (FAH)
  579. This byte is immediately sent when the PLAY switch on the master (e.g.
  580. sequencer or rhythm unit) is pressed.
  581.  
  582. 5.  Continue (FBH)
  583. This is sent when the CONTINUE switch is hit.  A sequence will continue at the
  584. time of the next clock.
  585.  
  586. 6.  Stop (FCH)
  587. This byte is immediately sent when the STOP switch is hit.  It will stop the
  588. sequence.
  589.  
  590. 7.  Active Sensing (FEH)
  591. Use of this message is optional, for either receivers or transmitters.  This
  592. is a "dummy" Status byte that is sent every 300 ms (max), whenever there is no
  593. other activity on MIDI.  The receiver will operate normally if it never
  594. receives FEH.  Otherwise, if FEH is ever received, the receiver will expect to
  595. receive FEH or a transmission of any type every 300 ms (max).  If a period of
  596. 300 ms passes with no activity, the receiver will turn off the voices and
  597. return to normal operation.
  598.  
  599. 8.  System Reset (FFH)
  600. This message initializes all of the system to the condition of just having
  601. turned on power.  The system Reset message should be used sparingly, preferably
  602. under manual command only.  In particular, it should not be sent automatically
  603. on power up.
  604.  
  605.  
  606. TABLE VI
  607.  
  608. SYSTEM EXCLUSIVE MESSAGES
  609.  
  610.  
  611. STATUS  DATA BYTES             DESCRIPTION
  612.  
  613.  
  614. 11110000                Bulk dump etc.
  615.         0iiiiiii        iiiiiii:  identification
  616.              .
  617.         (0*******)
  618.              .  Any number of bytes may be sent here, for any
  619. purpose, as long as they all have a zero in the most significant bit.
  620.         (0*******)
  621.              .
  622.         11110111        EOX: "End of System Exclusive"
  623.  
  624.  
  625. NOTES:
  626.  
  627. 1.  iiiiiii: identification ID (0-127)
  628.  
  629. 2.  All bytes between the System Exclusive Status byte and EOX or the next
  630. Status byte must have zeroes in the MSB.
  631.  
  632. 3.  The ID number can be obtained from the MMA or JMSC.
  633.  
  634. 4.  In no case should other Status or Data bytes (except Real-Time) be
  635. interleaved with System Exclusive, regardless of whether or not the ID code is
  636. recognized.
  637.  
  638. 5.  EOX or any other Status byte, except Real-Time, will terminate a System
  639. Exclusive message, and should be sent immediately at its conclusion.
  640.  
  641. **** END of Spec. ****
  642.  
  643.