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 multi/poly MIDI implementation
The MIDI implementation of the Korg multi/poly: what it answers to, and the 50 controls it offers.
At a glance
- Firmware
- Not recorded.
- MIDI channel
- Any one of 1 to 16.
- Parts
- Layer A: on the base MIDI channel until the player gives it one of its own, taking notes and controls.
Layer B: on the base MIDI channel until the player gives it one of its own, taking notes and controls.
Layer C: on the base MIDI channel until the player gives it one of its own, taking notes and controls.
Layer D: on the base MIDI channel until the player gives it one of its own, taking notes and controls. - MIDI mode
- 3: omni off, poly.
- Voices
- 60, shared by the parts that play notes.
- Note range
- 0 to 127: C-1 to G9, counting middle C as C4.
- Velocity
- Sent and received. Release velocity is received.
- Aftertouch
- Channel pressure and polyphonic, each answered. It sends none.
- Pitch bend
- Not recorded.
- Program change
- Received and sent, with 64 presets.
- MIDI clock
- Sent and received.
- Start and stop
- Neither sent nor received.
- Control change
- Assigned by the player, apart from the 50 controls below.
- NRPN
- None.
- System exclusive
- Supported.
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/multi_poly") has loaded them.
On the base MIDI channel
Scale select
| Control | CC | Values |
|---|---|---|
Scale Selectscale_select |
9 | 0-127 The factory's number, which the player can change |
Mod knobs
| Control | CC | Values |
|---|---|---|
Mod Knob 1mod_knob_1 |
24 | 0-127 The factory's number, which the player can change |
Mod Knob 2mod_knob_2 |
25 | 0-127 The factory's number, which the player can change |
Mod Knob 3mod_knob_3 |
26 | 0-127 The factory's number, which the player can change |
Mod Knob 4mod_knob_4 |
27 | 0-127 The factory's number, which the player can change |
Kaoss physics
| Control | CC | Values |
|---|---|---|
Kaoss Physics Finger On/Offkaoss_finger |
20 | 0-127 The factory's number, which the player can change |
Kaoss Physics Throw 1kaoss_throw_1 |
105 | 0-127 The factory's number, which the player can change |
Kaoss Physics Throw 2kaoss_throw_2 |
106 | 0-127 The factory's number, which the player can change |
Kaoss Physics Throw 3kaoss_throw_3 |
107 | 0-127 The factory's number, which the player can change |
Kaoss Physics Throw 4kaoss_throw_4 |
108 | 0-127 The factory's number, which the player can change |
Kaoss Physics Throw 5kaoss_throw_5 |
109 | 0-127 The factory's number, which the player can change |
Kaoss Physics Throw 6kaoss_throw_6 |
110 | 0-127 The factory's number, which the player can change |
Kaoss Buttonkaoss_button |
12 | 0-127 |
Kaoss Pad Xkaoss_pad_x |
18 | 0-127 The factory's number, which the player can change |
Kaoss Pad Ykaoss_pad_y |
19 | 0-127 The factory's number, which the player can change |
Controllers
| Control | CC | Values |
|---|---|---|
Modulationmodulation |
1 | 0-127 |
Volumevolume |
7 | 0-127 Received, never sent |
Panpan |
10 | 0-127 Received, never sent |
Expressionexpression |
11 | 0-127 Received, never sent |
Pedals
| Control | CC | Values |
|---|---|---|
Damperdamper |
64 | 0-127 |
Sostenutosostenuto |
66 | 0-127 Received, never sent |
Softsoft |
67 | 0-127 Received, never sent |
Layer A
Controllers
| Control | CC | Values |
|---|---|---|
Modulationlayer_a_modulation |
1 | 0-127 Received, never sent; Only once moved off the base MIDI channel |
Volumelayer_a_volume |
7 | 0-127 Received, never sent; Only once moved off the base MIDI channel |
Panlayer_a_pan |
10 | 0-127 Received, never sent; Only once moved off the base MIDI channel |
Expressionlayer_a_expression |
11 | 0-127 Received, never sent; Only once moved off the base MIDI channel |
Pedals
| Control | CC | Values |
|---|---|---|
Damperlayer_a_damper |
64 | 0-127 Received, never sent; Only once moved off the base MIDI channel |
Sostenutolayer_a_sostenuto |
66 | 0-127 Received, never sent; Only once moved off the base MIDI channel |
Softlayer_a_soft |
67 | 0-127 Received, never sent; Only once moved off the base MIDI channel |
Layer B
Controllers
| Control | CC | Values |
|---|---|---|
Modulationlayer_b_modulation |
1 | 0-127 Received, never sent; Only once moved off the base MIDI channel |
Volumelayer_b_volume |
7 | 0-127 Received, never sent; Only once moved off the base MIDI channel |
Panlayer_b_pan |
10 | 0-127 Received, never sent; Only once moved off the base MIDI channel |
Expressionlayer_b_expression |
11 | 0-127 Received, never sent; Only once moved off the base MIDI channel |
Pedals
| Control | CC | Values |
|---|---|---|
Damperlayer_b_damper |
64 | 0-127 Received, never sent; Only once moved off the base MIDI channel |
Sostenutolayer_b_sostenuto |
66 | 0-127 Received, never sent; Only once moved off the base MIDI channel |
Softlayer_b_soft |
67 | 0-127 Received, never sent; Only once moved off the base MIDI channel |
Layer C
Controllers
| Control | CC | Values |
|---|---|---|
Modulationlayer_c_modulation |
1 | 0-127 Received, never sent; Only once moved off the base MIDI channel |
Volumelayer_c_volume |
7 | 0-127 Received, never sent; Only once moved off the base MIDI channel |
Panlayer_c_pan |
10 | 0-127 Received, never sent; Only once moved off the base MIDI channel |
Expressionlayer_c_expression |
11 | 0-127 Received, never sent; Only once moved off the base MIDI channel |
Pedals
| Control | CC | Values |
|---|---|---|
Damperlayer_c_damper |
64 | 0-127 Received, never sent; Only once moved off the base MIDI channel |
Sostenutolayer_c_sostenuto |
66 | 0-127 Received, never sent; Only once moved off the base MIDI channel |
Softlayer_c_soft |
67 | 0-127 Received, never sent; Only once moved off the base MIDI channel |
Layer D
Controllers
| Control | CC | Values |
|---|---|---|
Modulationlayer_d_modulation |
1 | 0-127 Received, never sent; Only once moved off the base MIDI channel |
Volumelayer_d_volume |
7 | 0-127 Received, never sent; Only once moved off the base MIDI channel |
Panlayer_d_pan |
10 | 0-127 Received, never sent; Only once moved off the base MIDI channel |
Expressionlayer_d_expression |
11 | 0-127 Received, never sent; Only once moved off the base MIDI channel |
Pedals
| Control | CC | Values |
|---|---|---|
Damperlayer_d_damper |
64 | 0-127 Received, never sent; Only once moved off the base MIDI channel |
Sostenutolayer_d_sostenuto |
66 | 0-127 Received, never sent; Only once moved off the base MIDI channel |
Softlayer_d_soft |
67 | 0-127 Received, never sent; Only once moved off the base MIDI channel |
Where these facts come from
Source documents
- multi/poly, multi/poly module Owner's Manual, E 2, dated 16 January 2025, its user manual, read on 2 October 2026 (the file read).
- multipoly Property Exchange MIDI Implementation, Version 1.1, dated 18 September 2025, its MIDI implementation, read on 2 October 2026 (the file read).
- Downloads | multi/poly | KORG (USA), its download page, read on 2 October 2026 (the file read).
How they were read
Owner's Manual, 133 pages, the edition Korg names E 2, published 01/2025: the MIDI implementation chart on printed p. 127, MIDI CC Assign on pp. 121-122, the specifications on p. 126, the structure on p. 3, the Layer's MIDI settings on p. 13, the modulation sources on p. 64, the Utility MIDI settings on pp. 118-120, and the aftertouch source on p. 120.
THE NUMBERS BELOW ARE OF TWO KINDS AND THE FILE KEEPS THEM APART. Nine are fixed, from the chart: modulation at CC 1, volume at 7, pan at 10, expression at 11, the Kaoss pad's two axes at 18 and 19, and the damper, sostenuto and soft pedals at 64, 66 and 67. Twelve are factory defaults a player can reassign, from MIDI CC Assign: "You can control Scale Select and each Mod Knob directly from MIDI CCs" (p. 121), and its table gives Scale Select 9, Mod Knobs 1 to 4 as 24 to 27, and Kaoss Physics "18-20, 105-110" (p. 121). They are recorded because a factory default is a fact about the instrument as it leaves the factory, and marked as defaults so that nothing reads them as fixed.
THE TWO PAGES AGREE WITH EACH OTHER. The chart marks "2-6, 8-9, 12-31, 32-63, 65, 67-95, 102-119" (p. 127) as "Assignable for controllers and modulation" (p. 127), which is 107 of the 128 numbers, and every default above falls inside it. Only CC 0 and CC 96 to 101 appear nowhere in that block at all.
THAT RANGE IS WHERE FOURTEEN THINGS MAY BE PUT, NOT A HUNDRED CONTROLLERS, and reading its two O marks without its footnote is the mistake this instrument invites. Footnote *1 narrows it: "Sent and received by Mod Knobs and Scale Select when assigned in UTILITY > MIDI CC Assign; also received as programmable modulation sources" (p. 127). The settings page offers exactly fourteen assignable slots - nine for Kaoss Physics, one for Scale Select, four for the Mod Knobs - and they are the fourteen numbers below that are not fixed.
AND THE CHART CONTRADICTS ITSELF ABOUT CC 67, exactly as the wavestate's does. Its own row gives 67 to the soft pedal, recognised and not sent, while the assignable range printed directly below it begins at 67 and is marked both ways. The same template, the same contradiction, on a second instrument - which makes it the chart's rather than the instrument's, though neither document says so. The dedicated row is followed here, as it is there, and 68 would make the range consistent; that is a guess rather than a reading, so it is not made.
READING THAT CHART NEEDS CARE AND THE REASON IS NOT THE ONE THE wavestate HAD. Three of its spans come back 29 below the characters they draw - the heading "Recognized" as 5HFRJQL]HG, and the two lines of the model block - which is the opsix's cipher on a page where nothing else needs it. Testing for odd bytes would decode the model line and leave the heading, because 5HFRJQL]HG is printable throughout; the font is what tells them apart. The columns here were settled from the page's own geometry, by the three vertical rules at x 215.0, 302.7 and 387.5 and by which of them each heading falls between, and the two mark columns are in the order they read - "Transmitted" left, "Recognized" right.
THE PAGE ALSO CARRIES A HEADING THAT IS NOT PRINTED ON IT. A span reading MIDI Implementation Chart sits above the visible "[Analog Modeling Synthesizer]" (p. 127) and renders as nothing at all, so an extractor reports a title the page does not show.
AND THE CHART CALLS THE X-Y PAD SOMETHING THE INSTRUMENT IS NOT. Its row for 18 and 19 reads "Kaoss Pad X, Y" (p. 127), where the front panel, the settings page and the chapter on it all say Kaoss Physics; Kaoss Pad is this maker's name for a different product line. The labels below follow the chart for those two numbers and the manual for the rest.
THE INSTRUMENT SENDS LESS THAN IT RECEIVES, which is what direction is for: volume, pan, expression, sostenuto and soft are recognised and never sent. Modulation, the two Kaoss pad axes and the damper travel both ways, and so does every default, which footnote *1 puts plainly: "Sent and received by Mod Knobs and Scale Select when assigned in UTILITY > MIDI CC Assign; also received as programmable modulation sources" (p. 127).
WHICH LAYER A MOD KNOB REACHES IS DECIDED BY THE CHANNEL AND NOT BY THE NUMBER. There are four Layers and one set of four Mod Knob numbers: "MIDI CCs received by and sent from the Program Mod Knobs, for any Layer with Use Global MIDI Channel enabled" (p. 118). So a Layer given a channel of its own answers to 24 to 27 on that channel. The format cannot write one control for whichever part receives it, and the rule this follows writes per-part copies of the standard controllers alone, so those four name no part and this says so instead.
SEVEN STANDARD CONTROLLERS ARE WRITTEN FIVE TIMES, SINCE 2026-10-14: once for the Global Channel and once for each Layer taken off it. A control naming no part is on the Global Channel, where a Layer left on it receives them. The seven keyed layer_a_ to layer_d_ are modulation, volume, pan, expression, damper, sostenuto and soft, numbers 1, 7, 10, 11, 64, 66 and 67, for a Layer whose Use Global MIDI Channel is off: its channel setting "sets the channel on which the Layer will receive MIDI" (p. 13). No page names the channel on which such a Layer receives any of the seven. They rest on that sentence and on the Layer's two switches: with Rx Other CCs on, the Layer "will respond normally to MIDI CCs" (p. 13), and the only number either switch names is 64, since with Rx Damper on the Layer "will respond to the connected damper pedal and to MIDI CC#64" (p. 13). Each of the seven is received only, since what the keyboard and its controllers send goes out on the Global Channel, "except for Program Mod Knobs" (p. 118). This is the modwave's arrangement, on the same sentences.
THE MOD KNOBS' 24 TO 27 ARE NOT WRITTEN FOR EACH LAYER, because the rule this follows writes per part only the standard controllers. The sentence of p. 13 covers their controllers as much as the seven, and p. 118 says more of them than any page says of the seven: the Global Channel carries their controllers "for any Layer with Use Global MIDI Channel enabled" (p. 118), and what the controllers send goes there "except for Program Mod Knobs" (p. 118). So, though no page says it in terms, 24 to 27 reach a Layer taken off the Global Channel on its own channel, as the paragraph on the Mod Knobs above says, and no control here carries that.
BOTH KINDS OF AFTERTOUCH ARE RECEIVED AND NEITHER IS SENT. The chart marks both Polyphonic (Key) and Channel aftertouch as recognised and neither as transmitted, and a setting chooses which reaches the sound: "AT Source ... Off: All aftertouch will be ignored. Channel: The mod source 'Aftertouch' receives Channel Aftertouch ... Poly: The mod source 'Aftertouch' receives Poly Aftertouch ... Chan+Poly: The mod source 'Aftertouch' receives both Channel and Poly Aftertouch" (p. 120). So voice.aftertouch is both, since the model answers to either kind and which one reaches the sound is the player's setting, and aftertouch_transmits is false. The keyboard itself has none: "Note: Aftertouch is supported via MIDI only" (p. 119).
NOT RECORDED: THE PITCH BEND RANGE. The chart marks pitch bend as travelling both ways and gives no span, and the words "bend range" appear on no page of the manual.
CHECKED AND ABSENT: NRPN and RPN. Neither word appears anywhere in the 133 pages, and the Property Exchange files hold no controller number at all. Transport likewise: the chart marks Song Position, Song Select, Tune Request and the real-time Commands X in both columns, so start and stop neither arrive nor leave, where the clock does both.