KRONOS_MIDI_SysEx

KORG Proprietary System Exclusive Messages For KRONOS                          Version 1.07 (May 3, 2011)

1 Function Code

               Function Code (5th byte of exclusive message) List
      +------+------------------------------------------+----------------+
      | Func | Description                              |Receive/Transmit|
      +------+------------------------------------------+----------------+
      |  72  | Object Dump Request                      |Receive         |
      |  73  | Object Dump                              |Receive/Transmit|
      |  76  | Store Bank Request                       |Receive/Transmit|
      |      |                                          |                |
      |  74  | Current Object Dump Request              |Receive         |
      |  75  | Current Object Dump                      |Receive/Transmit|
      |      |                                          |                |
      |  30  | Current Sample Information Request       |Receive         |
      |  31  | Current Sample Information               |Transmit        |
      |      |                                          |                |
      |  79  | SMF Data Dump Request                    |Receive         |
      |  7A  | SMF Data Dump                            |Transmit        |
      |  7B  | Preset Pattern SMF Dump                  |Receive         |
      |      |                                          |                |
      |  43  | Parameter Change                         |Receive/Transmit|
      |  41  | Sequencer Parameter Change               |Receive/Transmit|
      |  6D  | KARMA Parameter Change                   |Receive/Transmit|
      |  6E  | Drum Track Parameter Change              |Receive/Transmit|
      |      |                                          |                |
      |  71  | Set Current Object                       |Receive/Transmit|
      |  53  | Drum Kit Parameter Change                |Receive/Transmit|
      |  55  | Wave Seq Parameter Change                |Receive/Transmit|
      |      |                                          |                |
      |  12  | Mode Request                             |Receive         |
      |  42  | Mode Data                                |Transmit        |
      |  4E  | Mode Change                              |Receive/Transmit|
      |      |                                          |                |
      |  7C  | Change Program Bank Type                 |Receive         |
      |  7D  | Query Program Bank Type                  |Receive         |
      |  7E  | Query Program Bank Type Reply            |Transmit        |
      |      |                                          |                |
      |  78  | Reset Controller                         |Receive/Transmit|
      |      |                                          |                |
      |  13  | Song Select                              |Receive/Transmit|
      |      |                                          |                |
      |  24  | Reply                                    |Transmit        |
      +------+------------------------------------------+----------------+


[72] Object Dump Request                                                  Receive
        F0, 42, 3g, 68          Excl Header
        72                      Function
        obj                     *1
        bank                    *2
        idH                     Index (bit7-13)
        idL                     Index (bit0-6)
        F7                      End of Excl

 Requests the instrument to send an Object Dump message (function 73).
 Instrument responds with a Reply message (function 24) for invalid requests.


[73] Object Dump                                                          Receive/Transmit
        F0, 42, 3g, 68          Excl Header
        73                      Function
        obj                     *1
        bank                    *2
        idH                     Index (bit7-13)
        idL                     Index (bit0-6)
        version                 obj's version number
        data                    *3
        F7                      End of Excl

 After receiving this message & data, transmits Func=24 message.
 
 Note: when the instrument receives messages of this type, the data is not
 committed to storage until a Store Bank Request has been received. You may send
 multiple objects to a single bank (e.g., Program U-A000 ~ U-A127) and follow
 this with a single Store Bank Request for that bank.

 The instrument transmits messages of this type in response to Object Dump
 Requests (function 72) or by using Dump menu items from the Global/MIDI menu.
 In the case of the latter, the instrument also sends Store Bank Requests at the
 end of each bank it has transmitted.


[76] Store Bank Request                                                   Receive/Transmit
        F0, 42, 3g, 68          Excl Header
        76                      Function
        obj                     *1
        bank                    *2
        F7                      End of Excl

 After receiving this message, commits the specified bank to non-volatile
 storage. Instrument then transmits a Reply message (function 24). Use this
 message after sending the instrument Object Dump (function 73) messages. The
 instrument also transmits this message after using the instrument's menus to
 sending dumps, but not in response to Object Dump Request messages.


[74] Current Object Dump Request                                          Receive
        F0, 42, 3g, 68          Excl Header
        74                      Function
        obj                     *1
        F7                      End of Excl

 Requests the instrument to send the contents of the edit buffer for the
 specified object type as a Current Object Dump message (function 75).
 Instrument responds with a Reply message (function 24) for invalid requests.


[75] Current Object Dump                                                  Receive/Transmit
        F0, 42, 3g, 68          Excl Header
        75                      Function
        obj                     *1
        version                 obj's version number
        data                    *3
        F7                      End of Excl

 This message type is sent in response to a Current Object Dump Request. There
 is no method to send messages of this type from the instrument's user
 interface. Instrument sends a Reply message (function 24) on receipt of
 messages of this type. When receiving this message type, the contents of the
 specified object type's edit buffer is resplaced. The object is not stored
 however until the user writes the object using the instrument's menus or front
 panel.


[30] Current Sample Information Request                                   Receive
        F0, 42, 3g, 68          Excl Header
        30                      Function
        kind                    *8
        bank (MSB)
        bank (LSB)              *8
        F7                      End of Excl

 Request sample information (function 31) of the specified kind for the
 specified bank. Responds with Reply (function 24) for an invalid request.


[31] Current Sample Information                                           Transmit
        F0, 42, 3g, 68          Excl Header
        31                      Function
        kind                    *8
        bank (MSB)
        bank (LSB)              *8
        data                    *3
        F7                      End of Excl

 The contents of data depend on the kind. Data is 8-bit data converted to 7-bit
 data for transmission (see *3).

 Kind 0: List of installed EXs
        - Array of this structure, with one array element per installed EXs:

                struct {
                        unsigned char bank[2];
                        unsigned char name[24];
                }

          where bank is an EXs bank code (1-16383), MSB first, as described in *8.

 Kinds 1-4: Multisample Names:
        - Number of Multi/Drum Samples [2 bytes]
        - Namelist of Multi/Drum Samples [Number of Multi/Drum Samples * 24 (name) bytes]
        - Startoffsetlist of Multi/Drum Samples [Number of Multi/Drum Samples * 1 byte]

 Kind 5: List of Currently Loaded EXs
        - bit array of loaded EXs banks:

                unsigned char bitArray[(# installed EXs + 7) / 8]

          where each bit corresponds to an EXs:

                bitArray[(EXs#-1) / 8] >> ((EXs#-1) % 8) & 1

          1 indicates that one or more multisamples or drum samples from this
          EXs is loaded.

 Kinds 6-9: Lists of Loaded Multisamples / Drum Samples
        - bit array of loaded multisamples or drum samples within the specified EXs:

                unsigned char bitArray[(# of multisamples or drum samples + 7) / 8]

          where each bit corresponds to a multisample or drum sample:

                bitArray[num / 8] >> (num % 8) & 1

          1 indicates multisample or drum sample num is loaded.

 Kind 10: List of RAM Multisamples
        - Namelist of RAM Multisamples [1000 (Number of RAM Multisamples) * 24 (name) bytes]

 Kind 11: List of RAM Multisamples
        - Namelist of RAM Samples [4000 (Number of RAM Samples) * 24 (name) bytes]

 Kind 12: Notification of RAM or EXs Bank Members Loaded or Unloaded.
        - There is no data for this kind. Message simply indicates that the
          specified bank has had a multisample or drum sample loaded or unloaded.
          Use kinds 5-11 to see what has changed.
        - Instrument sends this message in response to user activity, not in response
          to a sys/ex request.


[79] SMF Data Dump Request                                                Receive
        F0, 42, 3g, 68          Excl Header
        79                      Function
        songNumH                (bits 7-13)
        songNumL                (bits 0-6)
        trackNum
        startMeasH              (bits 7-13)
        startMeasL              (bits 0-6)
        endMeasH                (bits 7-13)
        endMeasL                (bits 0-6)
        00                      reserved
        F7                      End of Excl


[7A] SMF Data Dump                                                        Transmit
        F0, 42, 3g, 68          Excl Header
        7A                      Function
        error code              0 for success, non-zero error code on failure.
        sizeH                   (bits 14-20) # of binary data bytes (i.e., prior
                                to 7 to 8-byte conversion)
        sizeM                   (bits 7-13)
        sizeL                   (bits 0-6)
        00                      reserved
        data                    *3
        F7                      End of Excl

 Transmitted in response to an SMF Data Dump Request message (function 79).


[7B] Preset Pattern SMF Dump                                              Receive
        F0, 42, 3g, 68          Excl Header
        7B                      Function
        size3                   (bits 21-27)
        size2                   (bits 14-20)
        size1                   (bits 7-13)
        size0                   (bits 0-6)
        patNumH                 (bits 7-13)
        patNumL                 (bits 0-6)
        name char 1
        :
        name char 24
        data                    *3
        F7                      End of Excl


[43] Parameter Change                                                     Receive/Transmit
        F0, 42, 3g, 68          Excl Header
        43                      Function
        TYP                     part of parameter id (see combi.txt, etc)
        SOC                     part of parameter id (see combi.txt, etc)
        SUB                     part of parameter id (see combi.txt, etc)
        PID                     part of parameter id (see combi.txt, etc)
        IDX                     part of parameter id (see combi.txt, etc)
        valueH                  Value   (bit14-20)   (*4)
        valueM                  Value   (bit7-13)    (*4)
        valueL                  Value   (bit0-6)     (*4)
        F7                      End of Excl

 or

        F0, 42, 3g, 68          Excl Header
        43                      Function
        TYP                     part of parameter id (see combi.txt, etc)
        SOC                     part of parameter id (see combi.txt, etc)
        SUB                     part of parameter id (see combi.txt, etc)
        7F                      part of parameter id (see combi.txt, etc)
        PIDH                    (bits 7-14) part of parameter id (see combi.txt, etc)
        PIDL                    (bits 0-6) part of parameter id (see combi.txt, etc)
        IDX                     part of parameter id (see combi.txt, etc)
        valueH                  Value   (bit14-20)   (*4)
        valueM                  Value   (bit7-13)    (*4)
        valueL                  Value   (bit0-6)     (*4)
        F7                      End of Excl

 Most of the instrument's parameters (mainly those that control the synthesis
 engine) can be edited with this kind of message. There are some other special
 case parameter messages (e.g., Drum Kit Parameter Change, Wave Seq Parameter
 Change, etc) for controlling other specific sets of parameters. Which
 parameters are currently available for editing depends on the instrument's mode
 (e.g., combi parameters are only allowed while in combi mode).

 The first form is used for parameter ids 0..126, the second form is for
 parameter ids 127..16383. As a convenience, the instrument accepts either form
 for parameter ids 0..126.


[41] Sequencer Parameter Change                                           Receive/Transmit
        F0, 42, 3g, 68          Excl Header
        41                      Function
        TYP                     part of parameter id (see combi.txt, etc)
        SOC                     part of parameter id (see combi.txt, etc)
        SUB                     part of parameter id (see combi.txt, etc)
        PID                     part of parameter id (see combi.txt, etc)
        IDX                     part of parameter id (see combi.txt, etc)
        valueH                  Value   (bit14-20)   (*4)
        valueM                  Value   (bit7-13)    (*4)
        valueL                  Value   (bit0-6)     (*4)
        F7                      End of Excl


[6D] KARMA Parameter Change                                               Receive/Transmit
        F0, 42, 3g, 68          Excl Header
        6D                      Function
        TYP                     part of parameter id (see combi.txt, etc)
        SOC                     part of parameter id (see combi.txt, etc)
        SUB                     part of parameter id (see combi.txt, etc)
        PID                     part of parameter id (see combi.txt, etc)
        IDX                     part of parameter id (see combi.txt, etc)
        valueH                  Value   (bit14-20)   (*4)
        valueM                  Value   (bit7-13)    (*4)
        valueL                  Value   (bit0-6)     (*4)
        F7                      End of Excl


[6E] Drum Track Parameter Change                                          Receive/Transmit
        F0, 42, 3g, 68          Excl Header
        6E                      Function
        TYP                     part of parameter id (see combi.txt, etc)
        SOC                     part of parameter id (see combi.txt, etc)
        SUB                     part of parameter id (see combi.txt, etc)
        PID                     part of parameter id (see combi.txt, etc)
        IDX                     part of parameter id (see combi.txt, etc)
        valueH                  Value   (bit14-20)   (*4)
        valueM                  Value   (bit7-13)    (*4)
        valueL                  Value   (bit0-6)     (*4)
        F7                      End of Excl


[71] Set Current Object                                                   Receive/Transmit
        F0, 42, 3g, 68          Excl Header
        71                      Function
        obj                     object type: 0=drum kit, 1=wave seq
        idH                     Index (bit7-13)
        idL                     Index (bit0-6)
        F7                      End of Excl

 This message identifies which drum kit or wave sequence is being edited with
 Drum Kit or Wave Seq Parameter Change messages (functions 53 and 55).

 Index indicates which drum kit or wave sequence to select, using linear
 addressing instead of bank + id. This is the same means of addressing drum kits
 and wave sequences used by the HD-1 MS number parameter.


[53] Drum Kit Parameter Change                                            Receive/Transmit
        F0, 42, 3g, 68          Excl Header
        53                      Function
        key                     key index (0-7F)
        VSP                     part of parameter id (see DrumKit.txt)
        PID                     part of parameter id (see DrumKit.txt)
        valueH                  Value   (bit14-20)   (*4)
        valueM                  Value   (bit7-13)    (*4)
        valueL                  Value   (bit0-6)     (*4)
        F7                      End of Excl

 See DrumKit.txt for details.


[55] Wave Seq Parameter Change                                            Receive/Transmit
        F0, 42, 3g, 68          Excl Header
        55                      Function
        step                    step index (0-3F)
        PID                     part of parameter id (see WaveSequence.txt)
        valueH                  Value   (bit14-20)   (*4)
        valueM                  Value   (bit7-13)    (*4)
        valueL                  Value   (bit0-6)     (*4)
        F7                      End of Excl

 See WaveSequence.txt for details.


[12] Mode Request                                                         Receive
        F0, 42, 3g, 68          Excl Header
        12                      Function
        F7                      End of Excl

 Requests that the instrument send a Mode Data message (function 42).


[42] Mode Data                                                            Transmit
        F0, 42, 3g, 68          Excl Header
        42                      Function
        0000 mmmm               Mode                    (*5)
        0ooo oooo               Option                  (*7)
        0sss ssss               Setup data1             (*7)
        0ddd dddd               Setup data2             (*7)
        0eee eeee               Setup data3             (*7)
        F7                      End of Excl

 After receiving Func=12 message, transmits this message & data.


[4E] Mode Change                                                          Receive/Transmit
        F0, 42, 3g, 68          Excl Header
        4E                      Function
        0000 mmmm               Mode                    (*5)
        F7                      End of Excl

 After receiving this message & data, changes the Mode, and transmits Func=24 message.
 When the Mode is changed by SW, transmits this message & data.


[7C] Change Program Bank Type                                             Receive
        F0, 42, 3g, 68          Excl Header
        7C                      Function
        bank                    *2
        type                    0: HD-1, 1: EXi
        F7                      End of Excl

 After receiving this message, if the new type doesn't match the current type,
 reformats and erases specified bank. After that transmits Func=24 message.


[7D] Query Program Bank Type                                              Receive
        F0, 42, 3g, 68          Excl Header
        7D                      Function
        bank                    *2
        F7                      End of Excl

 Request the bank type of the specified program bank. Instrument responds with a
 Query Program Bank Type Reply (function 7E) or Reply (function 24) for invalid
 requests.


[7E] Query Program Bank Type Reply                                        Transmit
        F0, 42, 3g, 68          Excl Header
        7E                      Function
        type                    0: HD-1, 1: EXi
        F7                      End of Excl

 Sent in response to a Query Program Bank Type message (function 7D).


[78] Reset Controller                                                     Receive/Transmit
        F0, 42, 3g, 68          Excl Header
        78                      Function
        channel                 MIDI channel
        cc                      CC# (0-119)
        F7                      End of Excl

 Transmits this message when RESET CONTROLS is used with a controller assigned
 to CC 17, 19, 20, or 21. These CCs are special because they generate both
 unipolar and bipolar AMS and DMod signals. The special reset state for these is
 with the controller set to 64 and all AMS and DMod signals set to 0.

 Receiving this message resets any CC to its default value.


[13] Song Select                                                          Receive/Transmit
        F0, 42, 3g, 68          Excl Header
        13                      Function
        00,                     (reserved)
        songNumMSB,             14-bit song number, MSB first
        songNumLSB,
        F7                      End of Excl

 This message is an extended-range form of the MIDI song select system message
 F3. Unlike F3, it is capable of selecting songs 0..16383. Also unlike F3, this
 message is transmitted and received regardless of the instrument's MIDI clock
 sync setting.


[24] Reply                                                                Transmit
        F0, 42, 3g, 68          Excl Header
        24                      Function
        Reply Code              *6
        F7                      End of Excl

 Transmits this message as a reply for some received message. In some cases this
 message is sent only when an error occurs and has a non-zero Reply Code. In
 others (e.g., after receiving an Object Dump) a Reply message is always sent.
 In these cases a Reply Code of zero indicates success, while a non-zero Reply
 Code indicates failure.


*1
        obj = 00 : Program
              01 : Combination
              02 : Song Timbre Set
              03 : Global
              04 : Drum Kit
              05 : Wave Seq
              06 : KARMA GE (NOTE: GEs are not edited on the instrument, so there is no edit buffer)
              07 : KARMA Template
              08 : Song Control
              09 : Song Event
              0A : Song Region
              0B : Reserved
              0C : KARMA GE RTP Info (See KARMA_GE_RTP.txt)
              0D : Set List (index=set list)
              0E : Drum Track Pattern
              0F : Drum Track Pattern Event (See KRONOS_DrumTrackPatternEvent.txt)
              10 : Set List Slot Comments (bank=set list, index=slot)
              11 : Set List Slot Name (bank=set list, index=slot)
              12 : Combi Name
              13 : Program Name
              14 : Song Name
              15 : Wave Seq Name
              16 : Drum Kit Name
              17 : Set List Name (index=set list)

*2
 The meaning of bank depends on the object type.

 Program, Program Name:
        bank =  0 -  5 : INT-A - F
               10 - 1A : GM, g(1)-g(9), g(d) (read-only)
               40 - 46 : USER-A - G

 Combi, Combi Name:
        bank =  0 -  6 : INT-A - G
               40 - 46 : USER-A - G

 Drum Kit, Drum Kit Name:
        bank =       0 : INT
                    10 : GM (read-only)
               40 - 46 : USER-A - G

 Wave Seq, Wave Seq Name:
        bank =       0 : INT
               40 - 46 : USER-A - G

 KARMA GE:
        bank =  0 -  B : USER-A - L

 KARMA Template:
        bank =  0 -  3 : USER-A - D

 KARMA GE RTP Info:
        bank =  0
        index = 0 - 2047: Preset
                2048 -  : U-A000 - 

 Set List Slot Comments, Set List Slot Name
        bank =  0 - 7F : set list #

 For all other types (e.g., Song, Set List, etc) bank must be 0.

*3
 The detailed information about "data," see the text files specific to HD-1, EXi, etc.
 Internal data is converted to MIDI data using following method.
+----------------------------------------------------------------------------------------+
|  Internal 7byte data <--convert--> MIDI 8 byte data                                    |
|  example) Internal data(bit image) MIDI data(bit image)                                |
|                Aaaaaaaa            0GFEDCBA                                            |
|                Bbbbbbbb            0aaaaaaa                                            |
|                Cccccccc            0bbbbbbb                                            |
|                Dddddddd            0ccccccc                                            |
|                Eeeeeeee            0ddddddd                                            |
|                Ffffffff            0eeeeeee                                            |
|                Gggggggg            0fffffff                                            |
|                Hhhhhhhh            0ggggggg                                            |
|                Iiiiiiii            0NMLKJIH                                            |
|                   :                0hhhhhhh                                            |
|                   :                   :                                                |
|                Vvvvvvvv            000000WV                                            |
|                Wwwwwwww            0vvvvvvv                                            |
|                                    0wwwwwww                                            |
|                                    11110111 (EOX=F7H)                                  |
+----------------------------------------------------------------------------------------+

*4
 The format is 21-bit 2's complement. Typical use is to convert this to a 32-bit 
 signed integer:
 
         valueH : 0scccccc
         valueM : 0bbbbbbb
         valueL : 0aaaaaaa

         int    : ssssssss sssscccc ccbbbbbb baaaaaaa

*5
        mmm = 0 : COMBINATION
              1 : reserved
              2 : PROGRAM
              3 : reserved
              4 : SEQUENCER
              5 : reserved
              6 : SAMPLING
              7 : GLOBAL
              8 : DISK
              9 : SET LIST

*6
        cc =  0 : No error
              1 : parameter type specified is incorrect for current mode
              2 : unknown param message type, unknown parameter id or index
              3 : short or otherwise mangled message
              4 : target object not found
              5 : insufficient resources to complete request
              6 : paramter value is out of range
              7 : (internal error code)
             64 : other error:
                    - program bank is wrong type for received program dump (Func 73, 75).
                    - invalid data in Preset Pattern Dump (Func 7B).
             65 : target object is protected
             66 : memory overflow

*7
        oo : bit 0   = 0 : No EXB-DI, = 1 : EXB-DI is installed (always 0 for KRONOS)

        ss : bit 0,1 = 0 : Note Receive is All,    = 1 : Even,          = 2 : Odd
             bit 2-4 = 0 : MIDI Clock is Internal, = 1 : External MIDI, = 2 : Auto MIDI, = 3 : External USB, = 4 : Auto USB

        dd : bit 0   = 0 : Prog Mem is not protected,          = 1 : protected
             bit 1   = 0 : Combi Mem is not protected,         = 1 : protected
             bit 2   = 0 : Song Mem is not protected,          = 1 : protected
             bit 3   = 0 : Drum Kit Mem is not protected,      = 1 : protected
             bit 4   = 0 : Wave Seq Mem is not protected,      = 1 : protected
             bit 5   = 0 : KARMA GE Mem is not protected,      = 1 : protected
             bit 6   = 0 : Internal HDD Save is not protected, = 1 : protected

        ee : bit 0   = 0 : Set List Mem is not protected,      = 1 : protected

*8
 Sample Information request and dump

       kind =   0 : List of installed EXs
                1 : List of Mono Multisamples in each EXs
                2 : List of Stereo Multisamples in each EXs
                3 : List of Mono Drum samples in each EXs
                4 : List of Stereo Drum samples in each EXs
                5 : List of Currently Loaded EXs
                6 : List of Currently Loaded Mono Multisamples for a Single EXs Bank
                7 : List of Currently Loaded Stereo Multisamples for a Single EXs Bank
                8 : List of Currently Loaded Mono Drum samples for a Single EXs Bank
                9 : List of Currently Loaded Stereo Drum samples for a Single EXs Bank
               10 : List of RAM Multisamples
               11 : List of RAM Samples
               12 : Notification of RAM or EXs Bank Members Loaded or Unloaded.

       bank =   0 : RAM
                1 : EXs1
                2 : EXs2
              ...
            16383 : EXs16383

 Note that bank doesn't apply to all kinds of sample information. It is
 supported for kinds: 1-4, 6-9. Otherwise bank is 0.


                              EVENT DATA FORMAT IN SONG

 *  Event bit image

    |M  07  L|M  06  L|M  05  L|M  04  L|M  03  L|M  02  L|M  01  L|M  00  L|
    |kkkkkkkk|........|........|........|........|........|........|........|

    k: kind(8bit)

    master track event
    kind =
    0x01: Bar
    0x03: TrkEnd
    0x0b: TempoChg

    track event
    kind =
    0x01: Bar
    0x02: Pat
    0x03: TrkEnd
    0x09: Note
    0x0a: PolyPress
    0x0b: ControlChg
    0x0c: ProgramChg
    0x0d: ChPress
    0x0e: PitchBend

    0x0f: Excl
    0x07: ExclData
    0x08: ExclEnd

    pattern event
    kind =
    0x01: Bar
    0x03: TrkEnd
    0x09: Note
    0x0a: PolyPress
    0x0b: ControlChg
    0x0c: ProgramChg
    0x0d: ChPress
    0x0e: PitchBend

 *  Bar Event bit image

    |M  07  L|M  06  L|M  05  L|M  04  L|M  03  L|M  02  L|M  01  L|M  00  L|
    |00000001|........|........|MMMMMMMM|ssssssss|ssssssss|mmmmmmmm|mmmmmmmm|

    m: meas
    s: size
    M: meter    * only mastertrk, patterntrk

    meter format
       bit image (M16)  |01 23 4567|
       bit 0-1 undefined
       bit 2-3 0:specified 1:/4 2:/8 3:/16
       bit 4-7 0~15


 *  TrkEnd Event bit image

    |M  07  L|M  06  L|M  05  L|M  04  L|M  03  L|M  02  L|M  01  L|M  00  L|
    |00000011|........|........|........|........|........|mmmmmmmm|mmmmmmmm|

    m: meas


 *  TempoChg Event bit image

    |M  07  L|M  06  L|M  05  L|M  04  L|M  03  L|M  02  L|M  01  L|M  00  L|
    |00001011|.......u|........|NNNNNNNN|VVVVVVVV|VVVVVVVV|tttttttt|tttttttt|

    t: tick
    N: No.(=0x6b [fixed])
    u: last tempo unfixed
    V: tempo val

 *  Pat Event bit image (Instead of BAR)

    |M  07  L|M  06  L|M  05  L|M  04  L|M  03  L|M  02  L|M  01  L|M  00  L|
    |00000010|........|........|MMMMMMMM|nnnnnnnn|nnnnnnnn|mmmmmmmm|mmmmmmmm|

    m: trk meas
    n: pat No.
    M: pat meas


 *  Note Event bit image

    |M  07  L|M  06  L|M  05  L|M  04  L|M  03  L|M  02  L|M  01  L|M  00  L|
    |00001001|........|kkkkkkkk|vvvvvvvv|llllllll|llllllll|tttttttt|tttttttt|

    t: tick     (=0xfff :tie from last measure)
    k: key No.
    v: vel
    l: length   (=0xfff :tie to next measure)


 *   PolyPress Event bit image

    |M  07  L|M  06  L|M  05  L|M  04  L|M  03  L|M  02  L|M  01  L|M  00  L|
    |00001010|........|........|........|vvvvvvvv|kkkkkkkk|tttttttt|tttttttt|

    t: tick
    k: key No.
    v: val


 *   ControlChg Event bit image

    |M  07  L|M  06  L|M  05  L|M  04  L|M  03  L|M  02  L|M  01  L|M  00  L|
    |00001011|.......u|........|vvvvvvvv|VVVVVVVV|nnnnnnnn|tttttttt|tttttttt|

    t: tick
    n: control No.
    u: unfixed
    V: val
    v: last val

 *   ProgramChg Event bit image

    |M  07  L|M  06  L|M  05  L|M  04  L|M  03  L|M  02  L|M  01  L|M  00  L|
    |00001100|.......u|bbbbbbbb|nnnnnnnn|BBBBBBBB|NNNNNNNN|tttttttt|tttttttt|

    t: tick
    N: prog No.
    B: bank
    n: last prog No.
    u: last prog No. and bank unfixed
    b: last bank

 *  ChPress Event bit image

    |M  07  L|M  06  L|M  05  L|M  04  L|M  03  L|M  02  L|M  01  L|M  00  L|
    |00001101|.......u|........|........|vvvvvvvv|VVVVVVVV|tttttttt|tttttttt|

    t: tick
    V: val
    v: last val
    u: last val unfixed


 *   PitchBend Event bit image

    |M  07  L|M  06  L|M  05  L|M  04  L|M  03  L|M  02  L|M  01  L|M  00  L|
    |00001110|.......u|hhhhhhhh|llllllll|HHHHHHHH|LLLLLLLL|tttttttt|tttttttt|

    t: tick
    L: val(low)
    H: val(high)
    l: last val(low)
    h: last val(high)
    u: last val unfixed


 *   ExclEvent bit image

    |M  07  L|M  06  L|M  05  L|M  04  L|M  03  L|M  02  L|M  01  L|M  00  L|
    |00001111|......eu|........|LLLLLLLL|LLLLLLLL|LLLLLLLL|tttttttt|tttttttt|

    t: tick     (=0xfff :invalid message)
    e: enable parameter change
    u: last val unfixed
    L: last Value
    
 *   ExclDataEvent bit image

    |M  07  L|M  06  L|M  05  L|M  04  L|M  03  L|M  02  L|M  01  L|M  00  L|
    |00000111|dddddddd|dddddddd|dddddddd|dddddddd|dddddddd|dddddddd|dddddddd|

    d: data

 *  EOXEvent bit image

    |M  07  L|M  06  L|M  05  L|M  04  L|M  03  L|M  02  L|M  01  L|M  00  L|
    |00001000|........|........|........|........|........|........|........|

    d: data






-Revision History-
Rev     Date			Description
1.0     July 12 2010		Initial Release.
1.01    July 13 2010		Revised wording of file cross-reference for "data" sections; new SysEx Product ID changes headers.
1.02    July 13 2010		Added 9 = SET LIST to mode change.
1.03    July 24 2010		Added Set List obj = 0d; added note re no GE edit buffers	    
1.04    Feb  23 2011		Added Set List Comment and name objs (10H an 11H, respectively), updated version byte decription for dumps
1.05    Mar  10 2011		Added program bank type messages, new dump object types, and corrected several errors and omissions.
1.06    Apr   1 2011		Added sample bank information messages.
1.07    May   3 2011		Added extended-range song select message (func 13).