Subsystem Search

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 beats MIDI implementation

The MIDI implementation of the Korg volca beats: what it answers to, and the 20 controls it offers.

At a glance

Firmware
Not recorded.
MIDI channel
Any one of 1 to 16.
MIDI mode
3: omni off, poly.
Voices
Not recorded.
Notes
Each note plays a drum of its own, listed below.
Note range
36 to 75: C2 to D#5, 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
20 controls, in the tables below.
NRPN
None.
System exclusive
None.

Drum notes

Each drum plays from the note beside it.

Drum Note
kick 36, C2
snare 38, D2
clap 39, D#2
cl_hat 42, F#2
lo_tom 43, G2
op_hat 46, A#2
crash 49, C#3
hi_tom 50, D3
agogo 67, G4
claves 75, D#5

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_beats") has loaded them.

Part level

Control CC Values
Part level (kick)
part_level_kick
40 0-127
Received, never sent
Part level (snare)
part_level_snare
41 0-127
Received, never sent
Part level (lo tom)
part_level_lo_tom
42 0-127
Received, never sent
Part level (hi tom)
part_level_hi_tom
43 0-127
Received, never sent
Part level (cl hat)
part_level_cl_hat
44 0-127
Received, never sent
Part level (op hat)
part_level_op_hat
45 0-127
Received, never sent
Part level (clap)
part_level_clap
46 0-127
Received, never sent
Part level (claves)
part_level_claves
47 0-127
Received, never sent
Part level (agogo)
part_level_agogo
48 0-127
Received, never sent
Part level (crash)
part_level_crash
49 0-127
Received, never sent

PCM speed

Control CC Values
PCM speed (clap)
pcm_speed_clap
50 0-127
Received, never sent
PCM speed (claves)
pcm_speed_claves
51 0-127
Received, never sent
PCM speed (agogo)
pcm_speed_agogo
52 0-127
Received, never sent
PCM speed (crash)
pcm_speed_crash
53 0-127
Received, never sent

Stutter

Control CC Values
Stutter time
stutter_time
54 0-127
Received, never sent
Stutter depth
stutter_depth
55 0-127
Received, never sent

Decay

Control CC Values
Decay (tom)
decay_tom
56 0-127
Received, never sent
Decay (closed hat)
decay_closed_hat
57 0-127
Received, never sent
Decay (open hat)
decay_open_hat
58 0-127
Received, never sent

Without a group

Control CC Values
Hat grain
hat_grain
59 0-127
Received, never sent

Where these facts come from

Source documents

How they were read

volca beats MIDI Implementation, a plain text file of 3.9 KB: every controller number and every note number below is one of its rows. volca beats MIDI Implementation Chart, one sheet, for everything else the instrument does and does not answer to. Owner's Manual, for the two global settings and for the MIDI channel. And Korg's downloads page and System Updater page, for what is published and for what has changed since.

THE CHART'S MARKS ARE DRAWINGS. Pulling the text out of that sheet gives its headings, its row names, its values and its footnotes, and not one O and not one X - every Yes and every No on it is a vector, and its own legend's two symbols are missing from the text for the same reason. So both readings of the chart here were made by eye off renders at 300 to 600 dots to the inch, and neither could have been taken from the file. That is the EP-133's and the DrumBrute Impact's situation in a third maker's document.

TWENTY CONTROLLER NUMBERS, 40 TO 59, WITH NOTHING UNUSED IN BETWEEN, and ten note numbers from 36 to 75. The text file gives both in hexadecimal and in decimal, which is the one thing in it that can be checked without a second reader, and the two agree on all thirty rows.

THE TEXT FILE IS PRINTED ONCE, which is worth saying because two other Korg text implementations in this corpus are not: the electribe's prints its whole table twice and so does the minilogue's, and a reader who took the second printing for more rows would double the map. Asserted rather than assumed.

THE TWO DOCUMENTS DISAGREE ABOUT ONE THING AND THE CHART CONTRADICTS ITSELF IN ONE CELL. The chart's Velocity Note On cell, read at 600 dots to the inch, holds a cross and a value together: a cross, then "9n, V=1 - 127" (chart p. 1). A cross means not recognised and that value is the form of what is recognised, so the cell cannot be read either way. The text file settles it with no ambiguity at all: "Note On vv=1~127" (midi_impl) sits under its heading "2.RECOGNIZED RECEIVE DATA" (midi_impl), and that is what velocity records below.

AND WHAT THE CHART DOES NOT COUNT AS A CONTRADICTION. Its Velocity Note Off row is a cross in both columns, while the text file lists two Note Off forms among the messages it recognises. They are about different things: the chart's row is release velocity, which this instrument ignores, and the text file's rows are the note-off messages themselves, which it accepts. Both are recorded.

THE OWNER'S MANUAL LEAVES THE MIDI SOCKET OUT OF ITS OWN SPECIFICATION. Its walkthrough of the back panel describes it - "This jack is where you can connect an external MIDI device to control the sound generator of the volca beats" (manual) - and its Main Specifications list the connectors as the headphones jack and the two sync jacks and nothing else. The instrument has a MIDI IN and the specification does not say so.

THE MAKER SPELLS THINGS SEVERAL WAYS AND EVERY SPELLING HERE IS ITS OWN. The chart's PCM SPEED row names the parts "(CLAP, CALVES, AGOGO, CRASH)" (chart p. 1), where the text file and the rest of the chart write CLAVES. The text file's real-time table reads "Contiune" for Continue (midi_impl). The setting that gates every control is "MIDI RX Short Message" (midi_impl) in the text file and "MIDI RX ShortMessage" (chart p. 1) on the chart, which is also how the owner's manual writes it (manual). And the three controls at 56, 57 and 58 are "DECAY (TOM)" (midi_impl), "DECAY (CLOSED HAT)" (midi_impl) and "DECAY (OPEN HAT)" (midi_impl) in the text file, against "TOM DECAY" (chart p. 1), "CLOSED HAT DECAY" (chart p. 1) and "OPEN HAT DECAY" (chart p. 1) on the chart. The labels below follow the text file, because that is the document the numbers come from. None of it changes a number.

AND THE OLDER DOCUMENT CARRIES THE HIGHER VERSION. The chart is dated 2013.06.10 at version 1.00 and the text file 2013.06.23 at revision 0.01, thirteen days later. Which is a reminder that a version number is a label a maker chooses rather than an order, and that age is not it either.