This page is read from MIDI Instrument Definitions, a Python library used in the author's other projects, in which every number is traced to a document its maker published. Its source is on GitHub.
Korg volca drum MIDI implementation
The MIDI implementation of the Korg volca drum: what it answers to, and the 85 controls it offers.
At a glance
- Firmware
- Not recorded.
- MIDI channel
- 1 only, except in Single channel.
- Modes
- Split channel: the mode it ships in.
Single channel: its base MIDI channel is any one of 1 to 16. - Parts
- Part, 6 of them: on 6 MIDI channels in a row from the base, taking notes and controls, in Split channel only.
PART1: on the base MIDI channel, taking controls, with how notes reach it not recorded, in Single channel only.
PART2: on the base MIDI channel, taking controls, with how notes reach it not recorded, in Single channel only.
PART3: on the base MIDI channel, taking controls, with how notes reach it not recorded, in Single channel only.
PART4: on the base MIDI channel, taking controls, with how notes reach it not recorded, in Single channel only.
PART5: on the base MIDI channel, taking controls, with how notes reach it not recorded, in Single channel only.
PART6: on the base MIDI channel, taking controls, with how notes reach it not recorded, in Single channel only. - MIDI mode
- 3: omni off, poly.
- Voices
- Not recorded.
- Notes
- Each note sounds the part whose MIDI channel carries it, whatever its number.
- Note range
- 0 to 127: C-1 to G9, counting middle C as C4.
- Velocity
- Received. Release velocity is ignored.
- Aftertouch
- None, sent or answered.
- Pitch bend
- Not recorded.
- Program change
- Received.
- MIDI clock
- Received.
- Start and stop
- Received.
- Control change
- 85 controls, in the tables below.
- NRPN
- None.
- System exclusive
- None.
Controls
In the order the definition gives them, by part and group. Under each control is the name a program calls it by, once pymidiinstrumentdefs.load("korg/volca_drum") has loaded them.
Part
In Split channel only.
Sound controls
| Control | CC | Values |
|---|---|---|
Select, layer 1select_1 |
14 | 0-127 Received, never sent |
Select, layer 2select_2 |
15 | 0-127 Received, never sent |
Select, both layersselect_both |
16 | 0-127 Received, never sent |
Level, layer 1level_1 |
17 | 0-127 Received, never sent |
Level, layer 2level_2 |
18 | 0-127 Received, never sent |
Level, both layerslevel_both |
19 | 0-127 Received, never sent |
EG Attack, layer 1eg_attack_1 |
20 | 0-127 Received, never sent |
EG Attack, layer 2eg_attack_2 |
21 | 0-127 Received, never sent |
EG Attack, both layerseg_attack_both |
22 | 0-127 Received, never sent |
EG Release, layer 1eg_release_1 |
23 | 0-127 Received, never sent |
EG Release, layer 2eg_release_2 |
24 | 0-127 Received, never sent |
EG Release, both layerseg_release_both |
25 | 0-127 Received, never sent |
Pitch, layer 1pitch_1 |
26 | 0-127 Received, never sent |
Pitch, layer 2pitch_2 |
27 | 0-127 Received, never sent |
Pitch, both layerspitch_both |
28 | 0-127 Received, never sent |
Mod Amount, layer 1mod_amount_1 |
29 | 0-127 Received, never sent |
Mod Amount, layer 2mod_amount_2 |
30 | 0-127 Received, never sent |
Mod Amount, both layersmod_amount_both |
31 | 0-127 Received, never sent |
Mod Rate, layer 1mod_rate_1 |
46 | 0-127 Received, never sent |
Mod Rate, layer 2mod_rate_2 |
47 | 0-127 Received, never sent |
Mod Rate, both layersmod_rate_both |
48 | 0-127 Received, never sent |
Part parameters
| Control | CC | Values |
|---|---|---|
Panpan |
10 | 0-127 Received, never sent |
Bit Reductionbit_reduction |
49 | 0-127 Received, never sent |
Wave Folderwave_folder |
50 | 0-127 Received, never sent |
Drivedrive |
51 | 0-127 Received, never sent |
Dry Gaindry_gain |
52 | 0-127 Received, never sent |
Waveguide
| Control | CC | Values |
|---|---|---|
Waveguide Sendwaveguide_send |
103 | 0-127 Received, never sent |
On the base MIDI channel
Waveguide
| Control | CC | Values |
|---|---|---|
Waveguide Modelwaveguide_model |
116 | 0-127 Received, never sent |
Waveguide Decaywaveguide_decay |
117 | 0-127 Received, never sent |
Waveguide Bodywaveguide_body |
118 | 0-127 Received, never sent |
Waveguide Tunewaveguide_tune |
119 | 0-127 Received, never sent |
PART1
In Single channel only.
Sound controls
| Control | CC | Values |
|---|---|---|
Select, both layerssingle_part_1_select_both |
14 | 0-127 Received, never sent |
Level, both layerssingle_part_1_level_both |
15 | 0-127 Received, never sent |
Mod Amount, both layerssingle_part_1_mod_amount_both |
16 | 0-127 Received, never sent |
Mod Rate, both layerssingle_part_1_mod_rate_both |
17 | 0-127 Received, never sent |
Pitch, both layerssingle_part_1_pitch_both |
18 | 0-127 Received, never sent |
EG Attack, both layerssingle_part_1_eg_attack_both |
19 | 0-127 Received, never sent |
EG Release, both layerssingle_part_1_eg_release_both |
20 | 0-127 Received, never sent |
Part parameters
| Control | CC | Values |
|---|---|---|
Pansingle_part_1_pan |
109 | 0-127 Received, never sent |
Waveguide
| Control | CC | Values |
|---|---|---|
Waveguide Sendsingle_part_1_waveguide_send |
103 | 0-127 Received, never sent |
PART2
In Single channel only.
Sound controls
| Control | CC | Values |
|---|---|---|
Select, both layerssingle_part_2_select_both |
23 | 0-127 Received, never sent |
Level, both layerssingle_part_2_level_both |
24 | 0-127 Received, never sent |
Mod Amount, both layerssingle_part_2_mod_amount_both |
25 | 0-127 Received, never sent |
Mod Rate, both layerssingle_part_2_mod_rate_both |
26 | 0-127 Received, never sent |
Pitch, both layerssingle_part_2_pitch_both |
27 | 0-127 Received, never sent |
EG Attack, both layerssingle_part_2_eg_attack_both |
28 | 0-127 Received, never sent |
EG Release, both layerssingle_part_2_eg_release_both |
29 | 0-127 Received, never sent |
Part parameters
| Control | CC | Values |
|---|---|---|
Pansingle_part_2_pan |
110 | 0-127 Received, never sent |
Waveguide
| Control | CC | Values |
|---|---|---|
Waveguide Sendsingle_part_2_waveguide_send |
104 | 0-127 Received, never sent |
PART3
In Single channel only.
Sound controls
| Control | CC | Values |
|---|---|---|
Select, both layerssingle_part_3_select_both |
46 | 0-127 Received, never sent |
Level, both layerssingle_part_3_level_both |
47 | 0-127 Received, never sent |
Mod Amount, both layerssingle_part_3_mod_amount_both |
48 | 0-127 Received, never sent |
Mod Rate, both layerssingle_part_3_mod_rate_both |
49 | 0-127 Received, never sent |
Pitch, both layerssingle_part_3_pitch_both |
50 | 0-127 Received, never sent |
EG Attack, both layerssingle_part_3_eg_attack_both |
51 | 0-127 Received, never sent |
EG Release, both layerssingle_part_3_eg_release_both |
52 | 0-127 Received, never sent |
Part parameters
| Control | CC | Values |
|---|---|---|
Pansingle_part_3_pan |
111 | 0-127 Received, never sent |
Waveguide
| Control | CC | Values |
|---|---|---|
Waveguide Sendsingle_part_3_waveguide_send |
105 | 0-127 Received, never sent |
PART4
In Single channel only.
Sound controls
| Control | CC | Values |
|---|---|---|
Select, both layerssingle_part_4_select_both |
55 | 0-127 Received, never sent |
Level, both layerssingle_part_4_level_both |
56 | 0-127 Received, never sent |
Mod Amount, both layerssingle_part_4_mod_amount_both |
57 | 0-127 Received, never sent |
Mod Rate, both layerssingle_part_4_mod_rate_both |
58 | 0-127 Received, never sent |
Pitch, both layerssingle_part_4_pitch_both |
59 | 0-127 Received, never sent |
EG Attack, both layerssingle_part_4_eg_attack_both |
60 | 0-127 Received, never sent |
EG Release, both layerssingle_part_4_eg_release_both |
61 | 0-127 Received, never sent |
Part parameters
| Control | CC | Values |
|---|---|---|
Pansingle_part_4_pan |
112 | 0-127 Received, never sent |
Waveguide
| Control | CC | Values |
|---|---|---|
Waveguide Sendsingle_part_4_waveguide_send |
106 | 0-127 Received, never sent |
PART5
In Single channel only.
Sound controls
| Control | CC | Values |
|---|---|---|
Select, both layerssingle_part_5_select_both |
80 | 0-127 Received, never sent |
Level, both layerssingle_part_5_level_both |
81 | 0-127 Received, never sent |
Mod Amount, both layerssingle_part_5_mod_amount_both |
82 | 0-127 Received, never sent |
Mod Rate, both layerssingle_part_5_mod_rate_both |
83 | 0-127 Received, never sent |
Pitch, both layerssingle_part_5_pitch_both |
84 | 0-127 Received, never sent |
EG Attack, both layerssingle_part_5_eg_attack_both |
85 | 0-127 Received, never sent |
EG Release, both layerssingle_part_5_eg_release_both |
86 | 0-127 Received, never sent |
Part parameters
| Control | CC | Values |
|---|---|---|
Pansingle_part_5_pan |
113 | 0-127 Received, never sent |
Waveguide
| Control | CC | Values |
|---|---|---|
Waveguide Sendsingle_part_5_waveguide_send |
107 | 0-127 Received, never sent |
PART6
In Single channel only.
Sound controls
| Control | CC | Values |
|---|---|---|
Select, both layerssingle_part_6_select_both |
89 | 0-127 Received, never sent |
Level, both layerssingle_part_6_level_both |
90 | 0-127 Received, never sent |
Mod Amount, both layerssingle_part_6_mod_amount_both |
96 | 0-127 Received, never sent |
Mod Rate, both layerssingle_part_6_mod_rate_both |
97 | 0-127 Received, never sent |
Pitch, both layerssingle_part_6_pitch_both |
98 | 0-127 Received, never sent |
EG Attack, both layerssingle_part_6_eg_attack_both |
99 | 0-127 Received, never sent |
EG Release, both layerssingle_part_6_eg_release_both |
100 | 0-127 Received, never sent |
Part parameters
| Control | CC | Values |
|---|---|---|
Pansingle_part_6_pan |
114 | 0-127 Received, never sent |
Waveguide
| Control | CC | Values |
|---|---|---|
Waveguide Sendsingle_part_6_waveguide_send |
108 | 0-127 Received, never sent |
Where these facts come from
Source documents
- volca drum MIDI Implementation Chart (Split channel), E 1, dated 29 March 2019, its MIDI implementation, read on 2 October 2026 (the file read).
- volca drum Owner's Manual, EFGSCJ 4, dated 7 November 2024, its user manual, read on 2 October 2026 (the file read).
- volca drum MIDI Implementation Chart (Single channel), E 1, dated 29 March 2019, its MIDI implementation, read on 2 October 2026 (the file read).
- Downloads | volca drum | KORG (USA), its download page, read on 2 October 2026 (the file read).
- Downloads | volca drum - System Updater | KORG (USA), 1.14, dated 10 September 2019, its release notes, read on 2 October 2026 (the file read).
How they were read
MIDI Implementation Chart (Split channel), one page, which is the whole of the split-channel map below: p. 1. Owner's Manual, the edition Korg names EFGSCJ 4, eight sheets of six languages: printed p. 3, the English one. MIDI Implementation Chart (Single channel), p. 1, which is the whole of the single-channel map below. And two pages of Korg's own site, saved as text and cited for what Korg publishes and for the system versions.
THE SPLIT-CHANNEL CHART IS THE FACTORY DEFAULT and is the split mode below. Its Mode row is remarked "Channel 1-6 = Parts 1-6" (chart p. 1) and its Velocity row "n=0-5 (Channel 1-6 = Parts 1-6)" (chart p. 1), so the six parts are separately addressable with nothing set and nothing learned.
THE SINGLE-CHANNEL CHART IS A DIFFERENT MAP, NOT THE SPLIT ONE MOVED. Setting a MIDI channel switches the instrument to the single-channel implementation, where all six parts answer on that one channel and each gets a block of nine numbers of its own - part 1 on 14 to 20 with 103 and 109, part 2 on 23 to 29 with 104 and 110, part 3 on 46 to 52 with 105 and 111, part 4 on 55 to 61 with 106 and 112, part 5 on 80 to 86 with 107 and 113, part 6 on 89, 90, 96 to 100 with 108 and 114, and the resonator still on 116 to 119. Twenty-one numbers mean different things in the two implementations: CC 14 is layer 1's Select on the split channels and part 1's both-layer Select on the single one. A twenty-second, CC 103, keeps its name and changes whose it is: the send of whichever part's channel carries it on the split channels, and part 1's alone on the single one. Every layer parameter on the single-channel chart carries the 1-2 suffix, so a part there reaches both of its layers at once and neither layer alone. Those six blocks are the parts single_part_1 to single_part_6 below, which exist in the single mode only.
THE TWO CHARTS ORDER A PART'S PARAMETERS DIFFERENTLY, which is a second trap for anyone copying one from the other. The split chart runs select, level, attack, release, pitch, mod amount and mod rate; the single chart runs select, level, mod amount, mod rate, pitch, attack and release: "PART1: SELECT1-2, LEVEL1-2, MODAMT1-2, MODRATE1-2" (alternate_chart p. 1) and then "PART1: PITCH1-2, EGATT1-2, EGREL1-2" (alternate_chart p. 1).
FOUR PARAMETERS EXIST IN ONE IMPLEMENTATION AND NOT THE OTHER. Bit reduction, wave folder, drive and dry gain are CC 49 to 52 on the split channels, and in the single-channel map those four numbers belong to part 3, which leaves that implementation with no way to reach them at all. It also has no CC 10: each part's pan has a number of its own there. And the fourteen controls that reach one layer alone are the split channels' only, so the single channel cannot set one layer without the other.
EACH ROW PAIRS ITS NUMBERS TO ITS NAMES BY ORDER ALONE, which is the trap in reading either chart. A row of the split chart reads "14, 15, 16" against "SELECT1, SELECT2, SELECT1-2" (chart p. 1), and SELECT1-2 is not a range covering two numbers: it is a third control that moves both layers at once, which is what the panel's LAYER 1/2 button does - "The button will light up when both layers are selected at once" (p. 3). The single-channel chart is where the misreading costs most: every layer name there has the 1-2 form, and read as ranges one part's nine controls become sixteen. Every row of both charts was checked to have exactly as many names as numbers: the split chart's ten rows give thirty-one controls and the single chart's nineteen give fifty-eight.
THE INSTRUMENT SENDS NOTHING. No row of either chart has an O in its Transmitted column, and the specification lists one connector - "MIDI IN connector" (p. 3) - with no OUT and no THRU. So every control below is marked receives, and clock and transport likewise.
TWO GLOBAL SETTINGS CAN TURN OFF WHAT THIS FILE DESCRIBES, and both ship on. Footnote *1, carried by every control-change row and by the note row, reads "Received when global parameter MIDI RX ShortMessage is set to ON" (chart p. 1), and the manual's table of global parameters marks On as the factory default for it (p. 3). Footnote *2, on song position, clock and commands, reads "Not received when global parameter MIDI Clock src is set to Internal; received when set to Auto" (chart p. 1), and Auto is that parameter's factory default (p. 3).
THAT FOOTNOTE IS APPLIED UNEVENLY, which is worth knowing before anyone relies on it. It marks the Note Number row, making note reception depend on MIDI RX ShortMessage too, and it does not mark the Velocity row directly below - which is where the chart actually states that note on is received. One of those two rows is marked wrongly and the chart does not say which.
CC 46 TO 52 ARE THE LSB PARTNERS OF CC 14 TO 20 IN THE SPECIFICATION, and both charts give them parameters of their own. On the split channels, anything sending 14-bit controller pairs will move a part's mod rate while it means to refine its select, its bit reduction, wave folder or drive while it means a level, and its dry gain while it means layer 1's attack. On the single channel the pairs cross parts: 46 to 52 are part 3's block and 14 to 20 part 1's, and 55 to 61 are part 4's and the partners of part 2's 23 to 29, so a pair aimed at part 1 or 2 moves the same parameter of part 3 or 4. Neither chart warns about it. That is a caution for a consumer rather than a fault in the file: the numbers below are what the maker published.
THE SINGLE-CHANNEL CHART ALSO GIVES PART 6 FIVE NUMBERS THE SPECIFICATION KEEPS FOR OTHER WORK. 96 and 97 are data increment and decrement there, 98 and 99 the two halves of an NRPN's number and 100 half of an RPN's, and the chart has them as part 6's mod amount, mod rate, pitch, attack and release: "PART6: SELECT1-2, LEVEL1-2, MODAMT1-2, MODRATE1-2" (alternate_chart p. 1) against 89, 90, 96 and 97, and the next row against 98, 99 and 100. So anything that sends an NRPN or an RPN on that channel moves part 6's pitch, attack or release. 6, 38 and 101 are on neither chart.
NOTES REACH A PART WITHOUT NAMING ONE. The chart recognises note numbers 0 to 127 and remarks "Each sound does not correspond to a note number" (chart p. 1), so on the split channels the channel says which part sounds and the note number says nothing at all. That is why addressing is any: the part takes every note, and no note says more than another.
NOT RECORDED: which channel carries the four resonator controls in the split-channel implementation. The resonator is shared - "each part has two identical layers and the waveguide resonator is shared for all parts" (p. 3) - so those four are not a part's, and the chart does not say whether they answer on all six channels or on one. They name no part below, which in this format puts them on the base channel, channel 1: that is where the file's shape leaves them and not something the chart says. In the single-channel implementation there is one channel, and they are on it.
NOT RECORDED: which part a note sounds in the single-channel implementation. The split chart's Velocity row says which, "n=0-5 (Channel 1-6 = Parts 1-6)" (chart p. 1), and the single chart's has no remark. Its Note Number row recognises 0 to 127 with the split chart's remark, "Each sound does not correspond to a note number." (alternate_chart p. 1), and with six parts on one channel the channel cannot say either. The 1.14 system, later than both charts, lists "Fixed single channel MIDI handling of note events." (release_notes) and does not say what the handling is; the update manual in its archive, which sits behind a licence agreement, was not read here. So the six parts there are recorded as taking controls, which is all the chart gives each of them, and each says unrecorded: [notes]: notes arrive on that channel, and how one reaches a part is not in the documents.
NOT RECORDED:
- polyphony, which neither chart nor manual states for a part or for the instrument;
- the pitch bend range, there being no pitch bend;
- and how many presets a program change reaches.
The manual's program memory is sixteen locations loaded with FUNC + LOAD PRG. (p. 3) and nothing connects a program change to them, so the number is not written here.
CHECKED AND ABSENT: NRPN and RPN. Neither word, nor Registered, nor Parameter Number, appears anywhere on either chart or on printed page 3 of the manual. Three of their numbers are on the single-channel chart as part 6's own, as above. System exclusive is marked X in both columns of both charts.