POLYSIX-M V1.1 MIDI IMPLEMENTATION 10 Sep 1989 ================================== Transmitted data ================ (A),(B),(C) or (D) means that the messages are only transmitted when the respective output filters are enabled nnnn is the midi output channel x is don't care 1001 nnnn Key on/off (A) 0kkk kkkk Key number (36..96) 0vvv vvvv Velocity (64=on;0=off) 1100 nnnn Program change (C) 0ppp pppp Program number (0..127) Note:The programs are arranged in the following order: Pgms no 0 - 7: Group 1:Bank A:Programs 1..8 Pgms no 8 - 15: Group 1:Bank B:Programs 1..8 .. Pgms no 24 - 31: Group 1:Bank D:Programs 1..8 Pgms no 32 - 39: Group 2:Bank A:Programs 1..8 .. Pgms no 112 - 127: Group 4:Bank D:Programs 1..8 1011 nnnn Control change 0000 0001 Mod wheel;address 1 (B) 0vvv vvvv Value (0..127) 1011 nnnn Control change 0100 0000 Sustain pedal;address 64 (D) 0vvv vvvv Value (0=off,127=on) 1011 nnnn Control change 0100 0100 Ch mem pedal;address 70 (D) 0vvv vvvv Value (0=off,127=on) Note:Only one of sustain pedal/ch mem pedal will be transmitted, depending on the setting of the Ch Mem Pedal parameter (CH MEM - 1). 1011 nnnn Control change 0111 1011 All keys off (A) 0000 0000 Note:All keys off is transmitted: A) When arpeggiator is stopped or started B) When output channel is changed, and (A) is enabled C) When output filter A is turned off 1110 nnnn Pitch bend (B) 0lll llll LSB 0hhh hhhh MSB Note:LSB is 0 if MSB<65, LSB=2*(MSB-64) if MSB>64 1111 0000 System exclusive 0100 0010 Korg ID (42h;66) 0000 nnnn Midi channel 0ccc cccc Command code 1111 0111 End of exclusive Note:The only system exclusive messages transmitted are program dumps. These may be initiated by: A) Pressing MANUAL in TAPE MODE, when neither POLY, UNISON, CH MEM is lit. B) Upon reception of a valid dump request command (se received data). The following command codes may be sent: C=0 sending all 128 programs C=1,2,3,4 sending memory group 1,2,3 or 4 respectively The data format is as follows: Each program consists of 16 data bytes. However, since these are in the range 0..255, they cannot be transmitted in this form via MIDI. Therefore, each byte is broken down into two nybbles, and is sent low nybble first. Each program therefore consists of 32 MIDI bytes, in the range 0..15. The programs are sent in program number order (see above:program changes). At the end of a dump, a checksum is sent. This checksum is generated by adding all the program data bytes (not MIDI bytes) in the dump, and keeping only the 7 lowest bits. The checksum is transmitted directly after the last program nybble. Thus, all 128 programs constitute 128*16*2+1=4097 MIDI bytes (the segment above), whereas a single memory group (32 programs) is 32*16*2+1=1025 MIDI bytes (including the checksum byte). Example:128 program dump: 1111 0000 Sysex 0100 0010 Korg ID 0000 nnnn Midi ch 0000 0000 Command code 0; 128 programs 0000 llll Group 1, Bank A, Program 1, low nybble of 1. byte 0000 hhhh Group 1, Bank A, Program 1, high nybble of 1. byte 0000 llll Group 1, Bank A, Program 1, low nybble of 2. byte 0000 hhhh Group 1, Bank A, Program 1, high nybble of 2. byte .. 0000 hhhh Group 4, Bank D, Program 8, high nybble of 16. byte 0ccc cccc Checksum of the preceeding 128*16=2048 program data bytes 1111 0111 EOX 1111 1110 Active sensing Note:Active sensing is transmitted every 150ms except during MIDI dump and tape operations. Received data ============= (A),(B),(C) or (D) means that the messages are only recognized hen the respective input filters are enabled. The mode messages (Control 122..127) will only be recognized on the set midi in channel, regardless of omni on or off. This is noted in the tables below as (*). nnnn is the midi input channel x is don't care 1000 nnnn Key off (A) 0kkk kkkk Key number 0xxx xxxx Release velocity (ignored) 1001 nnnn Key on/off (A) 0kkk kkkk Key number 0vvv vvvv Velocity (0=off, all others =on) Note:The Polysix-M will respond to the entire MIDI key range 0..127; however notes generating higher pitches than 4' key number 96 will be reduced by octaves until they are within playable range. 1100 nnnn Program change (C) 0ppp pppp Program number (0..127) Note:See Transmitted Data for program order. 1011 nnnn Control change 0000 0001 Mod wheel;address 1 (B) 0vvv vvvv Value (0..127) 1011 nnnn Control change 0100 0000 Sustain pedal;address 64 (D) 0vvv vvvv Value (0=off,all others=on) 1011 nnnn Control change 0100 0100 Ch mem pedal;address 70 (D) 0vvv vvvv Value (0=off,all others=on) 1011 nnnn Control change 0100 0101 Arpeggiator switch; address 71 0vvv vvvv Value (0=off,all others=on) Note:The arpeggiator switch command has the same function as the front panel ARPEGGIATOR button. Do not confuse it with the MIDI start/stop commands. 1011 nnnn Control change 0111 1010 LOCAL command (*) 0lll llll 0 = local off, all others = local on 1011 nnnn Control change 0111 1011 All keys off (A) (*) 0xxx xxxx 1011 nnnn Control change 0111 1100 OMNI OFF command (*) 0xxx xxxx Note:OMNI OFF also functions as all notes off. 1011 nnnn Control change 0111 1101 OMNI ON command (*) 0xxx xxxx 1011 nnnn Control change 0111 1110 MONO ON command (*) 0000 0001 Only mono-1 is recognized Note:MONO ON will set the Polysix-M in UNISON mode and turn all notes off. 1011 nnnn Control change 0111 1111 POLY ON command (*) 0xxx xxxx Note:POLY ON will set the Polysix-M in POLY mode and turn all notes off. 1110 nnnn Pitch bend (B) 0lxx xxxx LSB 0hhh hhhh MSB 1111 0000 System exclusive 0100 0010 Korg ID (42h;66) 0000 nnnn Midi channel 0ccc cccc Command code (Commands 16..20 have no data) 1111 0111 End of exclusive (not necessary) The following command codes are recognized: Code Meaning Action 0 128-program dump follows Loads data into memory if WRITE is ENABLEd 1 Memory grp 1 dump follows - " - 2 Memory grp 2 dump follows - " - 3 Memory grp 3 dump follows - " - 4 Memory grp 4 dump follows - " - 16 Request 128 program dump Sends 128-program dump (see Transmitted Data) 17 Request memory grp 1 dump Sends 32 programs of memory grp 1 ( - " - ) 18 Request memory grp 2 dump Sends 32 programs of memory grp 2 ( - " - ) 19 Request memory grp 3 dump Sends 32 programs of memory grp 3 ( - " - ) 20 Request memory grp 4 dump Sends 32 programs of memory grp 4 ( - " - ) See the Transmitted Data section for information on the dump formats. 1111 1000 MIDI timing clock Note:The timing clock is for the arpeggiator. The arpeggiator trigger is generated by dividing the midi clock by the required clock division ratio. The midi clock divider operates even when midi sync is not enabled, allowing the arpeggiator to synchronize properly even if midi sync has not been enabled since the reception of the last START command. The midi timing clock is recognized for midi clock divider counting purposes only after a START or CONTINUE command. Midi clocks after a STOP command will not be recognized. The following clock division ratios are employed: Ratio Arp. step length Clock division parameter 2 32nd note triplet 1 3 32nd note 2 4 16th note triplet 3 6 16th note 4 8 8th note triplet 5 12 8th note 6 16 quarter note triplet 7 24 quarter note 8 1111 1010 START command 1111 1011 CONTINUE command 1111 1100 STOP command Note:The operation of the START,CONTINUE and STOP commands are as follows: When a START command is received, the internal midi clock divider is reset and enabled. If midi sync is enabled and the arpeggiator is on, the next midi clock will trigger the arpeggiator. The CONTINUE command functions in the same way as the START command, except that the midi clock divider is not reset. Thus, it enables the midi clock divider, allowing the arpeggiator to operate, if midi sync is enabled. The STOP command halts the midi clock divider. Subsequent midi clock bytes will neither be counted by the midi clock divider nor trigger the arpeggiator, until a START or CONTINUE command is received. Note that the START, CONTINUE and STOP commands do not actually turn the arpeggiator on or off. 1111 1110 Active sensing Note:If active sensing is not repeated within 300ms of being received, the Polysix-M will turn all notes off. MIDI IMPLEMENTATION CHART for Korg Polysix with MIDI ==================================================== +--------------------------+------------+-------------+----------------------+ : Function : Transmit : Receive : Remarks : +--------------------------+------------+-------------+----------------------+ : Basic Default : 1-16 : 1-16 : : : Channel Changed : 1-16 : 1-16 : : +--------------------------+------------+-------------+----------------------+ : Default : X : 3 : : : Mode Messages : X : OMNI ON/OFF,: : : : : POLY,MONO : : : Altered : ********** : MONO,M<>1 : not recognized : +--------------------------+------------+-------------+----------------------+ : Note : 36-96 : 0-127 : : : Number True voice : ********** : Within oscillator range : +--------------------------+------------+-------------+----------------------+ : Velocity Note on : X ; v=64 : X : : : Note off : X ; v=0 : X : : +--------------------------+------------+-------------+----------------------+ : After Individual : X : X : : : Touch Channel : X : X : : +--------------------------+------------+-------------+----------------------+ : Pitch Bend : O (B) : : O (B) : When enabled : +--------------------------+------------+-------------+----------------------+ : 1 : O (B) : O (B) : Mod (When enabled) : : Control 64 : O (D) : O (D) : Sus (When enabled) : : Change 70 : O (D) : O (D) : Ch mem (When enabled): : 71 : O : O : Arpeggiator : +--------------------------+------------+-------------+----------------------+ : Prog : O (C) : O (C) : 0-127 : : Change true program : ********** : 0-127 : : +--------------------------+------------+-------------+----------------------+ : System exclusive : O : O : Program dumps : +--------------------------+------------+-------------+----------------------+ : System Song Pos : X : X : : : Common Song Sel : X : X : : : Tune : X : X : : +--------------------------+------------+-------------+----------------------+ : System Clock : X : O : For arpeggiator : : Real Time Commands : X : O : : +--------------------------+------------+-------------+----------------------+ : Auxiliary Local on/off : X : O : : : Messages All keys off : O (A) : O (A) : When enabled : : : 123 : 123 : : : Active Sense : O : O : : : Reset : X : X : : +--------------------------+------------+-------------+----------------------+ : Notes : (A),(B),(C),(D) refer to the input and output : : : midi filters : +--------------------------+------------+-------------+----------------------+ Mode 1 : OMNI ON, POLY Mode 2 : OMNI ON, MONO O : Yes Mode 3 : OMNI OFF, POLY Mode 4 : OMNI OFF, MONO X : No