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 keys MIDI implementation
The MIDI implementation of the Korg volca keys: what it answers to, and the 16 controls it offers, on firmware 1.03.
At a glance
- Firmware
- This page describes firmware 1.03.
- MIDI channel
- Any one of 1 to 16.
- MIDI mode
- 3: omni off, poly.
- Voices
- 3, or 1 as set on the instrument.
- 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
- Not received or sent.
- MIDI clock
- Received.
- Start and stop
- Received.
- Control change
- 16 controls, in the tables below.
- NRPN
- None.
- System exclusive
- None.
Controls
In the order the definition gives them, by group. Under each control is the name a program calls it by, once pymidiinstrumentdefs.load("korg/volca_keys") has loaded them.
VCO
| Control | CC | Values |
|---|---|---|
OCTAVEoctave |
41 | 0-21 thirty_two_foot, 22-43 sixteen_foot, 44-65 eight_foot, 66-87 four_foot, 88-109 two_foot, 110-127 one_footReceived, never sent |
VOICEvoice_mode |
40 | 0-12 poly, 13-37 unison, 38-62 octave, 63-87 fifth, 88-112 unison_ring, 113-127 poly_ringReceived, never sent |
DETUNEdetune |
42 | 0-127 Received, never sent |
PORTAMENTOportamento |
5 | 0-127 Received, never sent |
VCO EG INTvco_eg_int |
43 | 0-127 Received, never sent |
VCF
| Control | CC | Values |
|---|---|---|
CUTOFFcutoff |
44 | 0-127 Received, never sent |
VCF EG INTvcf_eg_int |
45 | 0-127 Received, never sent |
EG
| Control | CC | Values |
|---|---|---|
EG ATTACKeg_attack |
49 | 0-127 Received, never sent |
EG DECAY/RELEASEeg_decay_release |
50 | 0-127 Received, never sent |
EG SUSTAINeg_sustain |
51 | 0-127 Received, never sent |
LFO
| Control | CC | Values |
|---|---|---|
LFO RATElfo_rate |
46 | 0-127 Received, never sent |
LFO PITCH INTlfo_pitch_int |
47 | 0-127 Received, never sent |
LFO CUTOFF INTlfo_cutoff_int |
48 | 0-127 Received, never sent |
DELAY
| Control | CC | Values |
|---|---|---|
DELAY TIMEdelay_time |
52 | 0-127 Received, never sent |
DELAY FEEDBACKdelay_feedback |
53 | 0-127 Received, never sent |
Without a group
| Control | CC | Values |
|---|---|---|
EXPRESSIONexpression |
11 | 0-127 Received, never sent |
Where these facts come from
Source documents
- volca keys MIDI Implementation, Revision 0.01, dated 23 June 2013, implementation, read on 6 October 2026 (the file read).
- volca keys MIDI Implementation Chart, Ver. 1.02, dated 10 June 2013, chart, read on 6 October 2026 (the file read).
- volca keys Owner's Manual, EFGSCJ3, owner's manual, read on 6 October 2026 (the file read).
- volca keys release notes, version 1.03, dated 20 August 2019, its release notes, read on 6 October 2026 (the file read).
How they were read
SIXTEEN CONTROLLERS, GIVEN TWICE AND AGREEING EXACTLY. The implementation is a 3.9 KB text file - 5, 11, and 40 to 53 - and the chart's Control Change block lists the same sixteen in the same order. The two were compared number by number rather than read from one and assumed of the other, which is what korg/volca_fm established at rank 102 when its two copies disagreed.
NOTHING IS TRANSMITTED, AND THE MAKER SAYS WHY IN ONE LINE. "No message is transmitted. (The volca keys is not equipped with a MIDI Out jack.)" (implementation). The chart says it a second way: 34 crosses in the Transmitted column and not one circle, on every row it has. So every control below is direction: receives, and a consumer can stop wondering what this instrument reports - it has nowhere to report to. The same sentence, about a different volca, is in korg/volca_fm.
THE MARKS ARE NOT IN THE CHART'S TEXT LAYER, so none of that came from reading it as text. Its circles and crosses are vector drawings, and so are the two in its own legend - which is the tell, because the legend extracts as ": Yes" and ": No" with the symbols gone. Read as shapes against that legend, by the same code, and then rendered and looked at.
EVERY ONE OF THE SIXTEEN IS BEHIND A GLOBAL SWITCH THAT IS ON WHEN THE INSTRUMENT ARRIVES. "*1: Received when global parameter MIDI RX ShortMessage is set to ON." (chart), and the manual's global parameter table marks the factory setting with an asterisk: *On. The clock has a second switch set the same way, MIDI Clock Src defaulting to *Auto. This is the volca fm's arrangement exactly, and the opposite of dreadbox/nymphes, whose eighty-two controls are off until somebody turns them on.
AND THE MANUAL CONTRADICTS ITSELF ABOUT THOSE SETTINGS, WHICH MATTERS BECAUSE THAT IS WHERE A READER WILL GO TO CHANGE THEM. Firmware 1.03 added an eighth global parameter - "Support for setting sync unit in global parameter." (release_note) - and the manual's table duly has eight rows, ending Sync input/output unit. The instruction printed above that table still says seven: "Press a keyboard button 1-7 to specify the setting for the global parameter." (manual p. 1). The release note asked for the manuals to be downloaded again and they were changed, in one of the two places that needed it. So the table is right and the sentence above it is not.
CONTROLLER 11 HAS NO KNOB, WHICH IS WHY IT IS IN NO GROUP. "*3: Cannot be changed with machine operations; can only be changed with MIDI." (chart) - so EXPRESSION exists only as a message. The other fifteen are grouped by the manual's own five panel sections, VCO, VCF, EG, LFO and DELAY, and this one belongs to none of them because there is nothing on the panel to put it beside.
TWO CONTROLLERS ARE CHOICES RATHER THAN AMOUNTS, and the implementation gives both their bands in hexadecimal and decimal together. Controller 40 is the VOICE knob's six modes, which the manual explains: "POLY: Up to three chords of the sawtooth wave can be played." (manual p. 1), "UNISON: The sawtooth wave is produced at the same pitch by the three VCOs." (manual p. 1), and "POLY RING: Up to three chords are played with ring modulation applied to the square wave." (manual p. 1). Controller 41 is the octave footage, 32' down to 1'.
SONG POSITION IS ANSWERED TO, WHICH IS WORTH SAYING BECAUSE A SIBLING COULD NOT SAY IT. The implementation gives the message - F2, with "pppp : 0~15 = STEP 1 ~ STEP 16" (implementation) - and the chart circles the row. korg/volca_sample met the identical release note, "Fixes MIDI Song Position Pointer." (release_note), against a chart that crossed the row, and recorded the doubt rather than resolving it. Here three documents agree.
NOT RECORDED, THE PITCH BEND RANGE. The chart circles it and the implementation lists En among the channel messages, and no document gives a range or a setting for it - so this definition says it is answered to and cannot say how far. The same gap korg/volca_fm has.
NOT RECORDED, EITHER OF THE TWO GATES THE DOCUMENTS DISAGREE ABOUT. The chart footnotes pitch bend *1 and song position *2, making each conditional on a global parameter; the implementation footnotes neither, putting *1 only on the notes and the sixteen controllers and its own clock footnote only on the four realtime messages. Both say the messages are answered to and they cannot both be right about when, so neither account is carried.
CHECKED AND ABSENT: NRPN, which no document mentions, and whose numbers are not among the sixteen the chart and the implementation both list - 5, 11 and 40 to 53, all received and none sent. The aftertouch, program change and system exclusive below are checked absences too - crossed in both columns on the chart, and absent from an implementation whose whole contents are four sections long.