Hi everyone!
I'm trying to make sense of the MIDI implementation document for my Volca FM and I'm getting nowhere. I have no previous experience with SysEx and I can't understand how to read the tables. I want to program sliders on my MIDI controller to control operator output level. Can someone take a look at this and give me a few pointers?
KORG volca fm MIDI Implementation Revision 1.01 (2016.4.07)
1.TRANSMITTED DATA
No message is transmitted.
(The volca fm is not equipped with a MIDI Out jack.)2.RECOGNIZED RECEIVE DATA
2-1 CHANNEL MESSAGES [H]:Hex, [D]: Decimal, :Binary
+--------+---------+-------------+-----------------------------------------+
| Status | Second | Third | Description |
| [Hex] | [H] [D] | [H] [D] | |
+--------+---------+-------------+-----------------------------------------+
| 8n | kk (kk) | vv (vv) | Note Off vv=0~127 *1|
| 9n | kk (kk) | 00 (00) | Note Off *1|
| 9n | kk (kk) | vv (vv) | Note On vv=1~127 *1*2|
| Bn | 08 (40) | vv (vv) | TRANSPOSE *1*3-1|
| | | | OCTAVE *1*3-2|
| Bn | 29 (41) | vv (vv) | VELOCITY *1*4|
| Bn | 2A (42) | vv (vv) | MODULATOR ATTACK *1*5|
| Bn | 2B (43) | vv (vv) | MODULATOR DECAY *1*5|
| Bn | 2C (44) | vv (vv) | CARRIER ATTACK *1*5|
| Bn | 2D (45) | vv (vv) | CARRIER DECAY *1*5|
| Bn | 2E (46) | vv (vv) | LFO RATE *1*6|
| Bn | 2F (47) | vv (vv) | LFO PITCH DEPTH *1*6|
| Bn | 30 (48) | vv (vv) | ALGTM *1*7|
| Bn | 31 (49) | vv (vv) | ARP TYPE *1*8|
| Bn | 32 (50) | vv (vv) | ARP DIV *1*9|
| En | bb (bb) | bb (bb) | Pitch Bend |
+--------+---------+-------------+-----------------------------------------+n : MIDI Channel = 0 ~ F
vv : Value*1 : This message is recognized when the "MIDI RX Short Message" is set to "On".
*2 : Velocity is not used.
*3-1 : This message is recognized when the "TRANSPOSE NOTE" is set to "On".
[H] [D] [H] [D] [D]
00 (00) ~ 12 (18) : -3
13 (19) ~ 24 (36) : -2
25 (37) ~ 36 (54) : -1
37 (55) ~ 49 (73) : 0
50 (74) ~ 59 (89) : 1
60 (90) ~ 6D (109) : 2
6E (110) ~ 7F (127) : 3*3-2 : This message is recognized when the "TRANSPOSE NOTE" is set to "Off".
[H] [D] [H] [D] [D]
00 (00) ~ 07 (07) : -36,-36,-35,-35,-34,-34,-33,-32
08 (08) ~ 0F (15) : -32,-31,-31,-30,-29,-29,-28,-28
10 (16) ~ 17 (23) : -27,-26,-26,-25,-25,-24,-23,-23
18 (24) ~ 1F (31) : -22,-22,-21,-20,-20,-19,-19,-18
20 (32) ~ 27 (39) : -17,-17,-16,-16,-15,-14,-14,-13
28 (40) ~ 2F (47) : -13,-12,-11,-11,-10,-10, -9, -8
30 (48) ~ 37 (55) : -8, -7, -7, -6, -5, -5, -4, -4
38 (56) ~ 3F (63) : -3, -2, -2, -1, -1, 0, 0, 0
40 (64) ~ 47 (71) : 0, 0, 0, 0, 1, 1, 2, 2
48 (72) ~ 4F (79) : 3, 4, 4, 5, 5, 6, 7, 7
50 (80) ~ 57 (87) : 8, 8, 9, 10, 10, 11, 11, 12
58 (88) ~ 5F (95) : 13, 13, 14, 14, 15, 16, 16, 17
60 (96) ~ 67 (103) : 17, 18, 19, 19, 20, 20, 21, 22
68 (104) ~ 6F (111) : 22, 23, 23, 24, 25, 25, 26, 26
70 (112) ~ 77 (119) : 27, 28, 28, 29, 29, 30, 31, 31
78 (120) ~ 7F (127) : 32, 32, 33, 34, 34, 35, 35, 36*4 : [H] [D] [H] [D] [D]
00 (00) : 1
01 (01) ~ 7F (127) : 1~127*5 : [H] [D] [H] [D] [D]
00 (00) ~ 07 (07) : -63,-63,-62,-61,-60,-59,-58,-57
08 (08) ~ 0F (15) : -56,-55,-54,-53,-52,-51,-50,-49
10 (16) ~ 17 (23) : -48,-47,-46,-45,-44,-43,-42,-41
18 (24) ~ 1F (31) : -40,-39,-38,-37,-36,-35,-34,-33
20 (32) ~ 27 (39) : -32,-31,-30,-29,-28,-27,-26,-25
28 (40) ~ 2F (47) : -24,-23,-22,-21,-20,-19,-18,-17
30 (48) ~ 37 (55) : -16,-15,-14,-13,-12,-11,-10,- 9
38 (56) ~ 3F (63) : - 8,- 7,- 6,- 5,- 4,- 3,- 2,- 1
40 (64) ~ 47 (71) : 0,+ 1,+ 2,+ 3,+ 4,+ 5,+ 6,+ 7
48 (72) ~ 4F (79) : + 8,+ 9,+10,+11,+12,+13,+14,+15
50 (80) ~ 57 (87) : +16,+17,+18,+19,+20,+21,+22,+23
58 (88) ~ 5F (95) : +24,+25,+26,+27,+28,+29,+30,+31
60 (96) ~ 67 (103) : +32,+33,+34,+35,+36,+37,+38,+39
68 (104) ~ 6F (111) : +40,+41,+42,+43,+44,+45,+46,+47
70 (112) ~ 77 (119) : +48,+49,+50,+51,+52,+53,+54,+55
78 (120) ~ 7F (127) : +56,+57,+58,+59,+60,+61,+62,+63*6 : [H] [D] [H] [D] [D]
00 (00) ~ 07 (07) : 0, 0, 1, 2, 3, 3, 4, 5
08 (08) ~ 0F (15) : 6, 7, 7, 8, 9, 10, 10, 11
10 (16) ~ 17 (23) : 12, 13, 14, 14, 15, 16, 17, 17
18 (24) ~ 1F (31) : 18, 19, 20, 21, 21, 22, 23, 24
20 (32) ~ 27 (39) : 25, 25, 26, 27, 28, 28, 29, 30
28 (40) ~ 2F (47) : 31, 32, 32, 33, 34, 35, 35, 36
30 (48) ~ 37 (55) : 37, 38, 39, 39, 40, 41, 42, 42
38 (56) ~ 3F (63) : 43, 44, 45, 46, 46, 47, 48, 49
40 (64) ~ 47 (71) : 50, 50, 51, 52, 53, 53, 54, 55
48 (72) ~ 4F (79) : 56, 57, 57, 58, 59, 60, 60, 61
50 (80) ~ 57 (87) : 62, 63, 64, 64, 65, 66, 67, 67
58 (88) ~ 5F (95) : 68, 69, 70, 71, 71, 72, 73, 74
60 (96) ~ 67 (103) : 75, 75, 76, 77, 78, 78, 79, 80
68 (104) ~ 6F (111) : 81, 82, 82, 83, 84, 85, 85, 86
70 (112) ~ 77 (119) : 87, 88, 89, 89, 90, 91, 92, 92
78 (120) ~ 7F (127) : 93, 94, 95, 96, 96, 97, 98, 99*7 : [H] [D] [H] [D] : [D]
00 (0) ~ 07 (07) : 0, 0, 0, 0, 1, 1, 1, 1
08 (8) ~ 0F (15) : 2, 2, 2, 2, 3, 3, 3, 3
10 (16) ~ 17 (23) : 4, 4, 4, 4, 5, 5, 5, 5
18 (24) ~ 1B (27) : 6, 6, 6, 6, 7, 7, 7, 7
20 (32) ~ 27 (39) : 8, 8, 8, 9, 9, 9, 9, 10
28 (40) ~ 2F (47) : 10, 10, 10, 11, 11, 11, 11, 12
30 (48) ~ 37 (55) : 12, 12, 12, 13, 13, 13, 13, 14
38 (56) ~ 3F (63) : 14, 14, 14, 15, 15, 15, 15, 16
40 (64) ~ 47 (71) : 16, 16, 17, 17, 17, 17, 18, 18
48 (72) ~ 4F (79) : 18, 18, 19, 19, 19, 19, 20, 20
50 (80) ~ 57 (87) : 20, 20, 21, 21, 21, 21, 22, 22
58 (88) ~ 5F (95) : 22, 22, 23, 23, 23, 23, 24, 24
60 (96) ~ 67 (103) : 24, 25, 25, 25, 25, 26, 26, 26
68 (104) ~ 6F (111) : 26, 27, 27, 27, 27, 28, 28, 28
70 (112) ~ 77 (119) : 28, 29, 29, 29, 29, 30, 30, 30
78 (120) ~ 7F (127) : 30, 31, 31, 31, 31, 32, 32, 32*8 : [H] [D] [H] [D]
00 (00) ~ 0C (12) : OFF
0D (13) ~ 19 (25) : RISE1
1A (26) ~ 26 (38) : RISE2
27 (39) ~ 33 (51) : RISE3
34 (52) ~ 39 (57) : FALL1
40 (58) ~ 49 (73) : FALL2
50 (74) ~ 59 (89) : FALL3
60 (90) ~ 66 (102) : RAND1
67 (103) ~ 73 (115) : RAND2
74 (104) ~ 7F (127) : RAND3*9 : [H] [D] [H] [D]
00 (00) ~ 0B (11) : 1/12
0C (12) ~ 17 (23) : 1/8
18 (24) ~ 22 (35) : 1/4
23 (36) ~ 2E (46) : 1/3
2F (47) ~ 3A (58) : 1/2
3B (59) ~ 45 (69) : 2/3
46 (70) ~ 51 (81) : 1/1
52 (82) ~ 5D (93) : 3/2
5E (94) ~ 68 (104) : 2/1
69 (105) ~ 74 (116) : 3/1
75 (117) ~ 7F (127) : 4/12-2.SYSTEM COMMON MESSAGES
+-----------+-----------+-----------+------------------------------+
| Status[H] | Second | Third | Description |
|-----------+-----------+-----------+------------------------------+
| F2 | 0xxx xxxx | 0xxx pppp | Song Position Pointer |
+-----------+-----------+-----------+------------------------------+pppp : 0~15 = STEP 1 ~ STEP 16
x : ignored2-3 SYSTEM REALTIME MESSAGES
+-----------+----------------------------------------------+
| Status[H] | Description |
+-----------+----------------------------------------------+
| F8 | Timing Clock *8|
| FA | Start *8|
| FB | Continue *8|
| FC | Stop *8|
| FE | Active Sensing |
+-----------+----------------------------------------------+*8 : This message is recognized when the "MIDI Clock Src" is set to "Auto".
2-4 SYSTEM EXCLUSIVE MESSAGE
+-----------+----------------------------------------------+
| Byte[H] | Description |
+-----------+----------------------------------------------+
| F0 | Exclusive Status |
| 43 | YAMAHA ID |
| 00 | Global MIDI Channel ( Device ID ) |
| 0p | Format Number ( 0, 9=1voice, 32voices ) |
| dd | Byte Count MSB ( 01, 20=1voice, 32voices ) |
| dd | Byte Count LSB ( 1B, 00=1voice, 32voices ) |
| 0ddd dddd | Data (TABLE 1=1voice) |
| : | (TABLE 2=32voices) |
| F7 | End Of Exclusive |
+-----------+----------------------------------------------+TABLE1 : Voice Parameter for 1voice (The "Format Number" is set to "0".)
+-------------+----------------------------------------------+--------------------+
| No. (bit) | PARAMETER | VALUE/DESCRIPTION |
+-------------+----------------------------------------------+--------------------+
| 0 | Operator 6 EG Rate 1 | 0~99 |
+-------------+----------------------------------------------+--------------------+
| 1 | Operator 6 EG Rate 2 | 0~99 |
+-------------+----------------------------------------------+--------------------+
| 2 | Operator 6 EG Rate 3 | 0~99 |
+-------------+----------------------------------------------+--------------------+
| 3 | Operator 6 EG Rate 4 | 0~99 |
+-------------+----------------------------------------------+--------------------+
| 4 | Operator 6 EG Level 1 | 0~99 |
+-------------+----------------------------------------------+--------------------+
| 5 | Operator 6 EG Level 2 | 0~99 |
+-------------+----------------------------------------------+--------------------+
| 6 | Operator 6 EG Level 3 | 0~99 |
+-------------+----------------------------------------------+--------------------+
| 7 | Operator 6 EG Level 4 | 0~99 |
+-------------+----------------------------------------------+--------------------+
| 8 | Operator 6 Keyboard Level Scale Break Point | 0~99 |
+-------------+----------------------------------------------+--------------------+
| 9 | Operator 6 Keyboard Level Scale Left Depth | 0~99 |
+-------------+----------------------------------------------+--------------------+
| 10 | Operator 6 Keyboard Level Scale Right Depth | 0~99 |
+-------------+----------------------------------------------+--------------------+
| 11 | Operator 6 Keyboard Level Scale Left Curve | 0~3 |
+-------------+----------------------------------------------+--------------------+
| 12 | Operator 6 Keyboard Level Scale Right Curve | 0~3 |
+-------------+----------------------------------------------+--------------------+
| 13 | Operator 6 Keyboard Rate Scaling | 0~7 |
+-------------+----------------------------------------------+--------------------+
| 14 | Operator 6 Modulation Sensitivity Amplitude | 0~3 |
+-------------+----------------------------------------------+--------------------+
| 15 | Operator 6 Operator Key Velocity Sensitivity | 0~7 |
+-------------+----------------------------------------------+--------------------+
| 16 | Operator 6 Operator Output Level | 0~99 |
+-------------+----------------------------------------------+--------------------+
| 17 | Operator 6 Oscillator Mode | 0~1 |
+-------------+----------------------------------------------+--------------------+
| 18 | Operator 6 Oscillator Frequency Coarse | 0~31 |
+-------------+----------------------------------------------+--------------------+
| 19 | Operator 6 Oscillator Frequency Fine | 0~99 |
+-------------+----------------------------------------------+--------------------+
| 20 | Detune | 0~14 |
+-------------+----------------------------------------------+--------------------+
| 21~125 | Operator 5~1 | |
+-------------+----------------------------------------------+--------------------+
| 126 | Pitch EG Rate 1 | 0~99 |
+-------------+----------------------------------------------+--------------------+
| 127 | Pitch EG Rate 2 | 0~99 |
+-------------+----------------------------------------------+--------------------+
| 128 | Pitch EG Rate 3 | 0~99 |
+-------------+----------------------------------------------+--------------------+
| 129 | Pitch EG Rate 4 | 0~99 |
+-------------+----------------------------------------------+--------------------+
| 130 | Pitch EG Level 1 | 0~99 |
+-------------+----------------------------------------------+--------------------+
| 131 | Pitch EG Level 2 | 0~99 |
+-------------+----------------------------------------------+--------------------+
| 132 | Pitch EG Level 3 | 0~99 |
+-------------+----------------------------------------------+--------------------+
| 133 | Pitch EG Level 4 | 0~99 |
+-------------+----------------------------------------------+--------------------+
| 134 | Algorithm | 0~31 |
+-------------+----------------------------------------------+--------------------+
| 135 | Feedback | 0~7 |
+-------------+----------------------------------------------+--------------------+
| 136 | Oscillator Sync | 0~1 |
+-------------+----------------------------------------------+--------------------+
| 137 | LFO Speed | 0~99 |
+-------------+----------------------------------------------+--------------------+
| 138 | LFO Delay | 0~99 |
+-------------+----------------------------------------------+--------------------+
| 139 | LFO Pitch Modulation Depth | 0~99 |
+-------------+----------------------------------------------+--------------------+
| 140 | LFO Amplitude Modulation Depth | 0~99 |
+-------------+----------------------------------------------+--------------------+
| 141 | LFO Sync | 0~1 |
+-------------+----------------------------------------------+--------------------+
| 142 | LFO Wave | 0~5 |
+-------------+----------------------------------------------+--------------------+
| 143 | Modulation Sensitivity Pitch | 0~7 |
+-------------+----------------------------------------------+--------------------+
| 144 | Transpose | 0~48 |
+-------------+----------------------------------------------+--------------------+
| 145~154 | Voice Name 1~10 | ASCII |
+-------------+----------------------------------------------+--------------------+
| 155 B5 | Operator 1 On/Off | 0~1 |
| -------+----------------------------------------------+--------------------+
| B4 | Operator 2 On/Off | 0~1 |
| -------+----------------------------------------------+--------------------+
| B3 | Operator 3 On/Off | 0~1 |
| -------+----------------------------------------------+--------------------+
| B2 | Operator 4 On/Off | 0~1 |
| -------+----------------------------------------------+--------------------+
| B1 | Operator 5 On/Off | 0~1 |
| -------+----------------------------------------------+--------------------+
| B0 | Operator 6 On/Off | 0~1 |
+-------------+----------------------------------------------+--------------------+TABLE2 : Voice Parameter for 32voices (The "Format Number" is set to "9".)
+-------------+----------------------------------------------+--------------------+
| No. (bit) | PARAMETER | VALUE/DESCRIPTION |
+-------------+----------------------------------------------+--------------------+
| 0 | Operator 6 EG Rate 1 | 0~99 |
+-------------+----------------------------------------------+--------------------+
| 1 | Operator 6 EG Rate 2 | 0~99 |
+-------------+----------------------------------------------+--------------------+
| 2 | Operator 6 EG Rate 3 | 0~99 |
+-------------+----------------------------------------------+--------------------+
| 3 | Operator 6 EG Rate 4 | 0~99 |
+-------------+----------------------------------------------+--------------------+
| 4 | Operator 6 EG Level 1 | 0~99 |
+-------------+----------------------------------------------+--------------------+
| 5 | Operator 6 EG Level 2 | 0~99 |
+-------------+----------------------------------------------+--------------------+
| 6 | Operator 6 EG Level 3 | 0~99 |
+-------------+----------------------------------------------+--------------------+
| 7 | Operator 6 EG Level 4 | 0~99 |
+-------------+----------------------------------------------+--------------------+
| 8 | Operator 6 Keyboard Level Scale Break Point | 0~99 |
+-------------+----------------------------------------------+--------------------+
| 9 | Operator 6 Keyboard Level Scale Left Depth | 0~99 |
+-------------+----------------------------------------------+--------------------+
| 10 | Operator 6 Keyboard Level Scale Right Depth | 0~99 |
+-------------+----------------------------------------------+--------------------+
| 11 B2~3 | Operator 6 Keyboard Level Scale Right Curve | 0~3 |
| -------+----------------------------------------------+--------------------+
| B0~1 | Operator 6 Keyboard Level Scale Left Curve | 0~3 |
+-------------+----------------------------------------------+--------------------+
| 12 B0-2 | Operator 6 Keyboard Rate Scaling | 0~7 |
| -------+----------------------------------------------+--------------------+
| B3-6 | Detune | 0~14 |
+-------------+----------------------------------------------+--------------------+
| 13 B2~4 | Operator 6 Operator Key Velocity Sensitivity | 0~7 |
| -------+----------------------------------------------+--------------------+
| B0~1 | Operator 6 Modulation Sensitivity Amplitude | 0~3 |
+-------------+----------------------------------------------+--------------------+
| 14 | Operator 6 Operator Output Level | 0~99 |
+-------------+----------------------------------------------+--------------------+
| 15 B1~5 | Operator 6 Oscillator Frequency Coarse | 0~31 |
| -------+----------------------------------------------+--------------------+
| B0 | Operator 6 Oscillator Mode | 0~1 |
+-------------+----------------------------------------------+--------------------+
| 16 | Operator 6 Oscillator Frequency Fine | 0~99 |
+-------------+----------------------------------------------+--------------------+
| 17~101 | Operator 5~1 | |
+-------------+----------------------------------------------+--------------------+
| 102 | Pitch EG Rate 1 | 0~99 |
+-------------+----------------------------------------------+--------------------+
| 103 | Pitch EG Rate 2 | 0~99 |
+-------------+----------------------------------------------+--------------------+
| 104 | Pitch EG Rate 3 | 0~99 |
+-------------+----------------------------------------------+--------------------+
| 105 | Pitch EG Rate 4 | 0~99 |
+-------------+----------------------------------------------+--------------------+
| 106 | Pitch EG Level 1 | 0~99 |
+-------------+----------------------------------------------+--------------------+
| 107 | Pitch EG Level 2 | 0~99 |
+-------------+----------------------------------------------+--------------------+
| 108 | Pitch EG Level 3 | 0~99 |
+-------------+----------------------------------------------+--------------------+
| 109 | Pitch EG Level 4 | 0~99 |
+-------------+----------------------------------------------+--------------------+
| 110 | Algorithm | 0~31 |
+-------------+----------------------------------------------+--------------------+
| 111 B3 | Oscillator Sync | 0~1 |
| -------+----------------------------------------------+--------------------+
| B0~2 | Feedback | 0~7 |
+-------------+----------------------------------------------+--------------------+
| 112 | LFO Speed | 0~99 |
+-------------+----------------------------------------------+--------------------+
| 113 | LFO Delay | 0~99 |
+-------------+----------------------------------------------+--------------------+
| 114 | LFO Pitch Modulation Depth | 0~99 |
+-------------+----------------------------------------------+--------------------+
| 115 | LFO Amplitude Modulation Depth | 0~99 |
+-------------+----------------------------------------------+--------------------+
| 116 B4~7 | Modulation Sensitivity Pitch | 0~7 |
| -------+----------------------------------------------+--------------------+
| B1~3 | LFO Wave | 0~5 |
| -------+----------------------------------------------+--------------------+
| B0 | LFO Sync | 0~1 |
+-------------+----------------------------------------------+--------------------+
| 117 | Transpose | 0~48 |
+-------------+----------------------------------------------+--------------------+
| 118~127 | Voice Name 1~10 | ASCII |
+-------------+----------------------------------------------+--------------------+
Looking over the manuals ( https://www.korg.com/us/support/download/product/0/558/ ), I don't see a way to control the output level of a single operator via a MIDI message.
The Control Change messages the Volca FM receives let you change some individual parameters, but I don't see ones for the output levels of the operators.
The System Exclusive messages it receives are bulk dumps reportedly in the style of Yamaha DX7 bulk dump data. This lets you send all the data for the current program (or for all 32 programs) into your Volca FM. Although the bulk dump includes settings for the operator output levels, you would also have to send all the other data for the current program in the same message.
No, there’s no CC for operator level, that’s why I was hoping I could change this via SysEx. But you’re saying it’s not possible to change a single parameter without having to send the whole patch? That’s a bummer.
Thanks for taking the time anyway!