microKEY MIDI Implementation Version 1.00 (2010.01.18) 1. Transmitted Data ------------------------------------------------------------ 1-1 Channel Messages [H]:Hex, [D]:Decimal +--------+----------+----------+-----------------------------------------------+ | Status | Second | Third | Description (Transmitted by ) | | [Hex] | [H] [D] | [H] [D] | | +--------+----------+----------+-----------------------------------------------+ | 8n | kk (kk) | 40 (64) | Note Off (Keyboard) *1 | | 9n | kk (kk) | VV (VV) | Note On (Keyboard) *1 | | Bn | cc (cc) | vv (vv) | Control Change (Mod wheel) | | En | bb (bb) | bb (bb) | Pitch Bend Change (Pitch wheel) | +--------+----------+----------+-----------------------------------------------+ n : MIDI Channel = 0~15 VV : Velocity = 1~127 cc : Control Change# = 0~127 vv : Value = 0~127 kk : 0 ~ 127 (37 keys + OctaveShift + Transpose) 1-2 Universal System Exclusive Message ( Non Realtime ) Device Inquiry Reply +---------+-----------------------------------------------+ | Byte[H] | Description | +---------+-----------------------------------------------+ | F0 | Exclusive Status | | 7E | Non Realtime Message | | 0g | Global MIDI Channel ( Device ID ) | | 06 | General Information | | 02 | Identity Reply | | 42 | KORG ID ( Manufacturers ID ) | | 0A | Software Project ( Family ID (LSB)) | | 01 | ( Family ID (MSB)) | | 01 | ( Member ID (LSB)) | | 00 | ( Member ID (MSB)) | | xx | ( Minor Ver. (LSB)) | | xx | ( Minor Ver. (MSB)) | | xx | ( Major Ver. (LSB)) | | xx | ( Major Ver. (MSB)) | | F7 | End Of Exclusive | +---------+-----------------------------------------------+ This message is transmitted whenever an Inquiry Message Request is received. 1-3 System Exclusive Message Transmitted Command List Structure of microKEY System Exclusive Messages 1st Byte = F0 : Exclusive Status 2nd Byte = 42 : KORG 3rd Byte = 4g : g : Global MIDI Channel 4th Byte = 00 : Software Project (microKEY: 00010AH) 5th Byte = 01 : 6th Byte = 0A : 7th Byte = 01 : Sub ID 8th Byte = cd : 0dvmmmmm d (1: Controller->Host) v (0: 2 Bytes Data Format, 1: Variable) mmmmm (Command Number) 9th Byte = nn : 2 Bytes Format: Function ID, Variable: Num of Data 10th Byte = dd : Data : LastByte = F7 : End of Exclusive +-----------------+---------------------------------------+ |6th Byte command#| Description/Command | | [Bin (Hex)] | | +-----------------+---------------------------------------+ | 010 11111 (5F) | Packet Communication *3| | 011 11110 (7E) | Port Detect | | 011 11111 (7F) | Data Dump *3| +-----------------+---------------------------------------+ *3 :Function ID Code List +-------------+-----------------------------------+-----+ | Function ID | Description/Function | | | [Hex] | | | +-------------+-----------------------------------+-----+ | 40 | Scene Data Dump | R | | 4F | Scene Change | R | | 23 | Data Load Completed | E | | 24 | Data Load Error | E | | 21 | Write Completed | E | | 22 | Write Error | E | +-------------+-----------------------------------+-----+ Transmitted when R : Request Message is received. E : Exclusive Message is received. 1-4 Search Device Message Search Device Reply +---------+------------------------------------------------+ | Byte[H] | Description | +---------+------------------------------------------------+ | F0 | Exclusive Status | | 42 | KORG ID ( Manufacturers ID ) | | 50 | Search Device | | 01 | Reply | | 0g | gggg: MIDI Global Channel ( Device ID ) | | dd | Echo Back ID | | 0A | microKEY ID ( Family ID (LSB)) | | 01 | microKEY ID ( Family ID (MSB)) | | 01 | microKEY Member ID ( Member ID (LSB)) | | 00 | microKEY Member ID ( Member ID (MSB)) | | xx | ( Minor Ver. (LSB)) | | xx | ( Minor Ver. (MSB)) | | xx | ( Major Ver. (LSB)) | | xx | ( Major Ver. (MSB)) | | F7 | End Of Exclusive | +---------+------------------------------------------------+ g : MIDI Global Channel = 0 ~ F dd : Echo Back ID = copy from SEARCH DEVICE REQUEST message. This message is transmitted whenever a SEARCH DEVICE REQUEST is received. 2. Recognized Receive Data ----------------------------------------------------- 2-1 Universal System Exclusive Message (Non Realtime) Inquiry Message Request +---------+-----------------------------------------------+ | Byte[H] | Description | +---------+-----------------------------------------------+ | F0 | Exclusive Status | | 7E | Non Realtime Message | | gg | Global MIDI Channel | | 06 | General Information | | 01 | Identity Request | | F7 | End Of Exclusive | +---------+-----------------------------------------------+ gg = 00~0F :Received if Global Channel 7F :Received on any Channel 2-2 System Exclusive Message Received Command List Structure of microKEY System Exclusive Messages 1st Byte = F0 : Exclusive Status 2nd Byte = 42 : KORG 3rd Byte = 4g : g : Global MIDI Channel 4th Byte = 00 : Software Project (microKEY: 00010AH) 5th Byte = 01 : 6th Byte = 0A : 7th Byte = ss : Sub ID (01: microKEY, 7F: All-Call) 8th Byte = cd : 0dvmmmmm d (0: Host->Controller) v (0: 2 Bytes Data Format, 1: Variable) mmmmm (Command Number) 9th Byte = nn : 2 Bytes Format: Function ID, Variable: Num of Data 10th Byte = dd : Data : LastByte = F7 : End of Exclusive +-----------------+---------------------------------------+ |6th Byte command#| Description/Command | | [Bin (Hex)] | | +-----------------+---------------------------------------+ | 000 11110 (1E) | Port Detect Request | | 000 11111 (1F) | Data Dump Request *3| | 011 11111 (7F) | Data Dump *3| +-----------------+---------------------------------------+ *3 :Function ID Code List +-------------+-----------------------------------+ | Function ID | Description/Function | | [Hex] | | +-------------+-----------------------------------+ | 10 | Scene Data Dump Request | | 40 | Scene Data Dump | | 11 | Scene Data Write Request | | 14 | Scene Change Request | +-------------+-----------------------------------+ 2-3 Search Device Message Search Device Request +---------+------------------------------------------------+ | Byte[H] | Description | +---------+------------------------------------------------+ | F0 | Exclusive Status | | 42 | KORG ID ( Manufacturers ID ) | | 50 | Search Device | | 00 | Request | | dd | Echo Back ID | | F7 | END OF EXCLUSIVE | +---------+------------------------------------------------+ Receive this message, and transmits SEARCH DEVICE REPLY message including copied Echo Back ID. 3. MIDI Exclusive Format (R:Receive, T:Transmit) ----------------------------- 3-1 Standard Messages (1) Scene Data Dump Request R,- +----------------+------------------------------------------------------------------+ | Byte | Description | +----------------+------------------------------------------------------------------+ | F0,42,4g, | Exclusive Header g;Global Channel [Hex] | | 00,01,0A,01, | Software Project (microKEY: 00010AH, Sub ID: 01) | | 0001 1111 (1F) | Data Dump Command (Host->Controller, 2Bytes Format) | | 0001 0000 (10) | Scene Data Dump Request | | 0000 0000 (00) | | | 1111 0111 (F7) | End of Exclusive (EOX) | +----------------+------------------------------------------------------------------+ When this message was received, the microKEY transmits a Func=40(Scene Data Dump) or a Func=24(NAK) message. (2) Scene Data Write Request R,- +----------------+------------------------------------------------------------------+ | Byte | Description | +----------------+------------------------------------------------------------------+ | F0,42,4g, | Exclusive Header g;Global Channel [Hex] | | 00,01,0A,01, | Software Project (microKEY: 00010AH, Sub ID: 01) | | 0001 1111 (1F) | Data Dump Command (Host->Controller, 2Bytes Format) | | 0001 0000 (11) | Scene Data Write Request | | 0000 0000 (00) | | | 1111 0111 (F7) | End of Exclusive (EOX) | +----------------+------------------------------------------------------------------+ When this message was received, the microKEY writes the current scene data to the internal memory and transmits a Func=21(Write Complete) or a Func=22(Write Error) message. (3) Scene Change Request R,- +----------------+------------------------------------------------------------------+ | Byte | Description | +----------------+------------------------------------------------------------------+ | F0,42,4g, | Exclusive Header g;Global Channel [Hex] | | 00,01,0A,01, | Software Project (microKEY: 00010AH, Sub ID: 01) | | 0001 1111 (1F) | Data Dump Command (Host->Controller, 2Bytes Format) | | 0001 0100 (14) | Scene Change Request | | 0000 0000 (00) | Destination Scene No.(0 fixed) | | 1111 0111 (F7) | End of Exclusive (EOX) | +----------------+------------------------------------------------------------------+ When this message was received, the microKEY loads the scene data to the current scene from the internal memory, and transmits Func=4F(Scene Change) and Func=23(ACK) messages or a Func=24(NAK) message. (4) Scene Data Dump R,T +----------------+------------------------------------------------------------------+ | Byte | Description | +----------------+------------------------------------------------------------------+ | F0,42,4g, | Exclusive Header g;Global Channel [Hex] | | 00,01,0A,01, | Software Project (microKEY: 00010AH, Sub ID: 01) | | 0111 1111 (7F) | Data Dump Command (Host<->Controller, Variable Format) | | 0111 1111 (7F) | Over 0x7F Data | | 0000 0010 (02) | 2 Bytes structure | | 0000 0010 (02) | Num of Data MSB (1+293 Bytes : 100100110) | | 0010 0110 (26) | Num of Data LSB | | 0100 0000 (40) | Scene Data Dump | | 0ddd dddd (dd) | Data (NOTE 1,2) | | : | : | | 1111 0111 (F7) | End of Exclusive (EOX) | +----------------+------------------------------------------------------------------+ When this message was received, the microKEY saves them to the current scene data and transmits a Func=23(ACK) or a Func=24(NAK) message. When a Func=10(Scene Data Dump Request) message was received, the microKEY transmits this message with the current scene data. (5) Data Load Completed (ACK) -,T +----------------+------------------------------------------------------------------+ | Byte | Description | +----------------+------------------------------------------------------------------+ | F0,42,4g, | Exclusive Header g;Global Channel [Hex] | | 00,01,0A,01, | Software Project (microKEY: 00010AH, Sub ID: 01) | | 0101 1111 (5F) | Data Dump Command (Host<-Controller, 2Bytes Format) | | 0010 0011 (23) | Data Load Completed | | 0000 0000 (00) | | | 1111 0111 (F7) | End of Exclusive (EOX) | +----------------+------------------------------------------------------------------+ When the operation was completed, the microKEY transmits this message. (6) Data Load Error (NAK) -,T +----------------+------------------------------------------------------------------+ | Byte | Description | +----------------+------------------------------------------------------------------+ | F0,42,4g, | Exclusive Header g;Global Channel [Hex] | | 00,01,0A,01, | Software Project (microKEY: 00010AH, Sub ID: 01) | | 0101 1111 (5F) | Data Dump Command (Host<-Controller, 2Bytes Format) | | 0010 0100 (24) | Data Load Error | | 0000 0000 (00) | | | 1111 0111 (F7) | End of Exclusive (EOX) | +----------------+------------------------------------------------------------------+ When the operation was not completed, the microKEY transmits this message. (7) Write Completed -,T +----------------+------------------------------------------------------------------+ | Byte | Description | +----------------+------------------------------------------------------------------+ | F0,42,4g, | Exclusive Header g;Global Channel [Hex] | | 00,01,0A,01, | Software Project (microKEY: 00010AH, Sub ID: 01) | | 0101 1111 (5F) | Data Dump Command (Host<-Controller, 2Bytes Format) | | 0010 0001 (21) | Write Completed | | 0000 0000 (00) | | | 1111 0111 (F7) | End of Exclusive (EOX) | +----------------+------------------------------------------------------------------+ When the writing operation was completed, the microKEY transmits this message. (8) Write Error -,T +----------------+------------------------------------------------------------------+ | Byte | Description | +----------------+------------------------------------------------------------------+ | F0,42,4g, | Exclusive Header g;Global Channel [Hex] | | 00,01,0A,01, | Software Project (microKEY: 00010AH, Sub ID: 01) | | 0101 1111 (5F) | Data Dump Command (Host<-Controller, 2Bytes Format) | | 0010 0010 (22) | Write Error | | 0000 0000 (00) | | | 1111 0111 (F7) | End of Exclusive (EOX) | +----------------+------------------------------------------------------------------+ When the writing operation was not completed, the microKEY transmits this message. (9) Scene Change -,T +----------------+------------------------------------------------------------------+ | Byte | Description | +----------------+------------------------------------------------------------------+ | F0,42,4g, | Exclusive Header g;Global Channel [Hex] | | 00,01,0A,01, | Software Project (microKEY: 00010AH, Sub ID: 01) | | 0101 1111 (5F) | Data Dump Command (Host<-Controller, 2Bytes Format) | | 0100 1111 (4F) | Scene Change | | 0000 0000 (00) | Scene No. (0 fixed) | | 1111 0111 (F7) | End of Exclusive (EOX) | +----------------+------------------------------------------------------------------+ When the microKEY completed to load the scene, it transmits this message. (10) Port Detect Request R,- +----------------+------------------------------------------------------------------+ | Byte | Description | +----------------+------------------------------------------------------------------+ | F0,42,4g, | Exclusive Header g;Global Channel [Hex] | | 00,01,0A, | Software Project (microKEY: 00010AH) | | 0mmm mmmm (mm) | Device Sub ID | | 0001 1110 (1E) | Port Detect Command (Host->Controller, 2Bytes Format) | | 0000 0000 (00) | | | 0ppp pppp (pp) | Echo Back ID | | 1111 0111 (F7) | End of Exclusive (EOX) | +----------------+------------------------------------------------------------------+ mm : 01=microKEY, 7F=All-Call pp : 1~127 When this message was received, the microKEY transmit a Command=7E(Port Detect) message. (11) Port Detect -,T +----------------+------------------------------------------------------------------+ | Byte | Description | +----------------+------------------------------------------------------------------+ | F0,42,4g, | Exclusive Header g;Global Channel [Hex] | | 00,01,0A,01, | Software Project (microKEY: 00010AH, Sub ID: 01) | | 0111 1110 (7E) | Port Detect Command (Host<-Controller, Variable Format) | | 0000 0101 (05) | Num of Data (5Bytes) | | 0ppp pppp (pp) | Echo Back ID | | 0000 0001 (01) | Num of IN-Port | | 0000 0000 (00) | Dedicated IN-Port Number | | 0000 0001 (01) | Num of OUT-Port | | 0000 0000 (00) | Dedicated OUT-Port Number | | 1111 0111 (F7) | End of Exclusive (EOX) | +----------------+------------------------------------------------------------------+ When a Command=1E(Port Detect Request) message was received, the microKEY transmits this message. NOTE 1: Scene Data Dump Format 256 bytes = 7*36+4 -> 8*36+(4+1) => 293 bytes (TABLE 1) NOTE 2: The Dump Data Conversion Data (1set = 8bit x 7Byte) b7 ~ b0 b7 ~ b0 b7 ~~ b0 b7 ~ b0 +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+ +-+-+-~~-+-+-+ +-+-+-+-+-+-+-+-+ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+ +-+-+-~~-+-+-+ +-+-+-+-+-+-+-+-+ 7n+0 7n+1 7n+2 ~~ 7n+5 7n+6 MIDI Data (1set = 7bit x 8Byte) b7b7b7b7b7b7b7 b6 ~ b0 b6 ~~ b0 b6 ~ b0 +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+ +-+-+-~~-+-+-+ +-+-+-+-+-+-+-+-+ |0| | | | | | | | |0| | | | | | | | |0| | | | | |0| | | | | | | | +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+ +-+-+-~~-+-+-+ +-+-+-+-+-+-+-+-+ 7n+6,5,4,3,2,1,0 7n+0 7n+1 ~~ 7n+5 7n+6 TABLE 1 : Scene Parameter +--------+-------------------------+---------------------------------------+ | | PARAMETER | VALUE | +--------+-------------------------+---------------------------------------+ | Common Parameters | +--------+-------------------------+---------------------------------------+ | 0 | MIDI channel | 0~15 | | +-------------------------+---------------------------------------+ | 1~7 | Reserved | 0xff | +--------+-------------------------+---------------------------------------+ | Keyboard Parameters | +--------+-------------------------+---------------------------------------+ | 8 | Transpose | 64+/-12=-12~+12 | | +-------------------------+---------------------------------------+ | 9 | Velocity Curve | 0~7/8 = Curve1~8/Const | | +-------------------------+---------------------------------------+ | 10 | Const Velocity Value | 1~127 | | +-------------------------+---------------------------------------+ | 11~15 | Reserved | 0xff | +--------+-------------------------+---------------------------------------+ | Mod Wheel Parameters | +--------+-------------------------+---------------------------------------+ | 16 | Assign Type | 0/1=No Assign/Control Change | | +-------------------------+---------------------------------------+ | 17 | CC Number | 0~127 | | +-------------------------+---------------------------------------+ | 18 | Reserved | 0xff | | +-------------------------+---------------------------------------+ | 19 | Bottom Value | 0~127 | | +-------------------------+---------------------------------------+ | 20 | Top Value | 0~127 | | +-------------------------+---------------------------------------+ | 21~23 | Reserved | 0xff | +--------+-------------------------+---------------------------------------+ | 24~255 | Reserved | 0xff | +--------+-------------------------+---------------------------------------+ Total 256 Bytes