Korg X3 Connexion

©Ludovic Grossard, 1998-2002
korg X3
Version française
Technical issues
X3's specifications
The advantages
Pcg file format
Global Parameter Table
Drum Parameter Table
Sysex file format
User Manual
Programs change
Guest book

Sysex: abbreviation of System Exclusive

Class of MIDI messages allowing non normalized data exchange (every manufacturer owning an ID number can create some)

Sysexs allow to communicate with the keyboard, and to change any internal parameter. Data are written in hexadecimal. Here are some explanations on Korg X3 Sysex:

Every sysex is constituted by four elements:

Some examples are shown here


The header includes manufacturer code and keyboard model code. This allows the keyboard to "know" if the received sysex is really send for it (absolutely necessary if several keyboards are plugged together). The Korg X3 header is:

F0 42 3g 35

F0 Exclusive status
42 Korg ID
3g Global channel
35 X3 ID

(page 190 of the operating manual)

The different values of g are listed below:

Global midi channel 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
g value 0 1 2 3 4 5 6 7 8 9 A B C D E F

Usually, the keyboard's global midi channel is equal to 1. So the header is F0 42 30 35

function code

The header is followed by he function code (enabled function codes are shown below):

code function Description
42 Mode Data
47 All Drum Sound (PCM Card) Name Dump
45 All Multisound Sound (PCM Card) Name Dump
4E Mode Change
41 Parameter Change
53 Drumkit Parameter Change
40 Program Parameter Dump
4C All Program Parameter Dump
49 Combination Parameter Dump
4D All Combination Parameter Dump
48 All Sequence Data Dump
51 Global Data Dump
52 Drums Data Dump
50 All Data (Global, Drum, Combi) Dump
26 Received Message Format Error
23 Data Load Complete
24 Data Load Error
21 Write Completed
22 Write Error

(page 190 of the operating manual)


In general case, this part of the sysex includes two things: the parameter number that we will to change, and the new value for this parameter. Those two informations are each represented by two Bytes: LSB MSB (Low Significant Byte / Most Significant Byte). Consequently, you must write the parameter number and its value in a reversed way. Here is a concrete example: Consider we want to change the parameter number 1 and to give it the 5 value

The parameter number is 00 01, and we will write it 01 00 (reversed)

The parameter value is 00 05, and we will write it 05 00 (reversed)

So you have to send 01 00 05 00.

End of sysex message

Every sysex message ends with F7 (EOX = End of exclusive)


Example 1: mode change

We will see in this example how to change Korg X3 modes, (i.e. PROGAM, COMBI, EDIT PROGRAM, EDIT COMBI, SEQ, EDIT SEQ, GLOBAL et DISK modes).

We can see here that the mode change function code is 4E

The use of this code function is shown below:

Bytes Description
F0 42 3g 35 header
4E Mode Change
0m Mode data

(page 193 of the operating manual)

The mode is given by the m value:

0: Combination 3: Edit Program 6: Global
1: Edit Combi 4: Sequencer 7: Disk
2: Program 5: Edit Sequencer

(note 11, page 195 of the operating manual)

To work in the combination mode for example, you have to send the following sysex (global channel 1):

F0 42 30 35 4E 00 00 F7

And for the sequencer mode:

F0 42 30 35 4E 04 00 F7

Easy, isn't it ?

You can put this at the beginning of a song (with cubase or cakewalk for example). This will put the Korg X3's mode to sequencer when you start playing the song.

Example 2: How to change sounds parameters ?

We will here change sounds parameters via sysex. More precisely, we will change the first oscillator's panoramic.We first have to place the keyboard in the edit program mode by the following sysex:

F0 42 30 35 4E 03 00 F7.

We can see in the herethat the mode change function code is 41

The use of this code function is shown here

Bytes Description
F0 42 3g 35 header
0100 0001 (41) Parameter change
0ppp pppp (pp) Parameter number (LSB) (table 6~9)
0ppp pppp (pp) Parameter number (MSB) (table 6~9)
0vvv vvvv (vv) Value (LSB bit6~0) (note 12)
0vvv vvvv (vv) Value (MSB bit13~7) (note 12)
1111 0111 (F7) EOX

(note 23,page 194 of the operating manual)

The notes in italics refer to tables and notes of the operationg manual, where we can found how to use the parameterchange function code.Table 6 corresponds to program parameters. This table shows all the parameters of a sound in the X3. Here isan extract of this table. The parameter that interrets us is in red color.

td>29 td>C Send Level td>82 bit4~7 td>30 td>D Send Level td>82 bit0~3 colspan="3">VDF-1
N0. PARAMETER N0 of table 1
..... .......... .......
20 VDA Amplitude 36
21 VDF MG Int 39
22 Pitch Bend Range 37
23 VDF Sweep Int 38
24 Multisound 12,13
25 Level 65
26 Octave 14
27 Pitch EG Int 40
28 A:B Pan> 86
31 Cutoff Value 50
32 EG Intensity 53
..... ......... .........

tabe 7 (table 6, page 199 of the operating manual)

The parameter number that corresponds to the panoramic is 28. Be careful, this value is expressed in the decimal system. You have to convert it in the hexadecimal system, giving 1C. Remind that you must write the function code in a reversed way. So we write 1C 00. The third column of table 7 refers to table 1. In this table, the way to calculate the value to send is explained. Here, we have to refer to number 86 of table 1. Here is an extract of this table:

..... ........ ...........
85 F-1, A-1 KBD Track Mode *4
86 A:B PAN 00~1E,FF *5
87 --- 133 Same as Osc-1 (40~86)
..... ........ ...........

table 8 (extact of table 1, page 196 of the operating manual)

The values of the panoramic control vary between 00 et 1E. (*5) indicates that more informations are available:

00 A
.... ....
.... ....
1E B
1F PRG (Only Comb. Seq data)

table 9 (remark 5, page 196 of the operating manual)

To set the panoramic of the first oscillator, you have to send the 00 00 value for a 14A pan, the 01 00 for the 13Avalue, the value 02 00 ... (don't forget to write it in a reversed way, 02 00 instead of 00 02).

For example, to set the pan to CNT, you have to send the 0F 00 value.

Octets Description
F0 42 30 35 Header (channel 1)
41 Parameter change
1C oscillator 1 panoramic parameter (LSB)
00 oscillator 1 panoramic parameter (MSB)
0F panoramic value(LSB)
00 panoramic value(MSB)

You have to sent the following sysex: F0 42 30 35 41 1C 00 0F 00 F7