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 microKORG2 MIDI implementation
The MIDI implementation of the Korg microKORG2: what it answers to, and the 189 controls it offers, on firmware 1.02.
At a glance
- Firmware
- This page describes firmware 1.02.
- MIDI channel
- Any one of 1 to 16.
- Parts
- Timbre 1: on the base MIDI channel, taking notes, controls, and program changes.
Timbre 2: on a MIDI channel of its own, taking notes and controls. - MIDI mode
- 3: omni off, poly.
- Voices
- 8, 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 ignored.
- Aftertouch
- None, sent or answered.
- Pitch bend
- 24 semitones, and the range can be changed.
- Program change
- Received and sent, with 256 presets.
- MIDI clock
- Sent and received.
- Start and stop
- Neither sent nor received.
- Control change
- 81 controls, in the tables below.
- NRPN
- Supported. 108 of the controls below have one.
- 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/microkorg2") has loaded them.
On the base MIDI channel
Performance
| Control | CC | NRPN | Values |
|---|---|---|---|
Modulationmodulation |
1 | 0-127 | |
Holdhold |
64 | 0-127 |
PITCH
| Control | CC | NRPN | Values |
|---|---|---|---|
Portamento Timeportamento_time |
5 | 0-127 | |
Portamento Modeportamento_mode |
65 | 0-63 fingered, 64-127 always |
TIMBRE
| Control | CC | NRPN | Values |
|---|---|---|---|
Timbre Leveltimbre_level |
7 | 0-127 | |
Timbre Pantimbre_pan |
10 | 0-127 | |
Timbre Transposetimbre_transpose |
35 | 0-127 | |
Timbre FineTunetimbre_fine_tune |
36 | 0-127 |
VOICE
| Control | CC | NRPN | Values |
|---|---|---|---|
Unison Detuneunison_detune |
33 | 0-127 | |
Unison Spreadunison_spread |
34 | 0-127 |
OSC 1
| Control | CC | NRPN | Values |
|---|---|---|---|
OSC1 Waveosc1_wave |
8 | 0-21 saw, 22-42 square, 43-63 triangle, 64-85 sine, 86-106 dwgs, 107-127 one_shot |
|
OSC1 Shape/Sampleosc1_shape_sample |
9 | 0-127 | |
OSC1 Mod Amountosc1_mod_amount |
15 | 0-127 | |
OSC1 Semitonesosc1_semitones |
16 | 0-127 | |
OSC1 FineTuneosc1_fine_tune |
17 | 0-127 | |
OSC1 Levelosc1_level |
23 | 0-127 |
OSC 2
| Control | CC | NRPN | Values |
|---|---|---|---|
OSC2 Waveosc2_wave |
18 | 0-21 saw, 22-42 square, 43-63 triangle, 64-85 sine, 86-106 dwgs, 107-127 one_shot |
|
OSC2 Shape/Sampleosc2_shape_sample |
19 | 0-127 | |
OSC2 Mod Amountosc2_mod_amount |
20 | 0-127 | |
OSC2 Semitonesosc2_semitones |
21 | 0-127 | |
OSC2 FineTuneosc2_fine_tune |
22 | 0-127 | |
OSC2 Levelosc2_level |
24 | 0-127 |
OSC 3
| Control | CC | NRPN | Values |
|---|---|---|---|
OSC3 Levelosc3_level |
25 | 0-127 | |
OSC3 Waveosc3_wave |
48 | 0-21 saw, 22-42 square, 43-63 triangle, 64-85 sine, 86-106 dwgs, 107-127 one_shot |
|
OSC3 Shape/Sampleosc3_shape_sample |
49 | 0-127 | |
OSC3 Semitonesosc3_semitones |
51 | 0-127 | |
OSC3 FineTuneosc3_fine_tune |
52 | 0-127 |
NOISE
| Control | CC | NRPN | Values |
|---|---|---|---|
Noise Levelnoise_level |
26 | 0-127 | |
Noise Typenoise_type |
29 | 0-31 lpf, 32-63 hpf, 64-95 bpf, 96-127 deci |
|
Noise Colornoise_color |
30 | 0-127 |
FILTER
| Control | CC | NRPN | Values |
|---|---|---|---|
Filter Typefilter_type |
27 | 0-127 | |
Filter Keytrackfilter_keytrack |
28 | 0-127 | |
Filter Resonancefilter_resonance |
71 | 0-127 | |
Filter Cutofffilter_cutoff |
74 | 0-127 | |
Filter Drivefilter_drive |
83 | 0-127 |
Amp EG
| Control | CC | NRPN | Values |
|---|---|---|---|
Amp EG Sustainamp_eg_sustain |
70 | 0-127 | |
Amp EG Releaseamp_eg_release |
72 | 0-127 | |
Amp EG Attackamp_eg_attack |
73 | 0-127 | |
Amp EG Decayamp_eg_decay |
75 | 0-127 | |
Amp EG Velocity Sensamp_eg_velocity_sens |
79 | 0-127 |
Filter EG
| Control | CC | NRPN | Values |
|---|---|---|---|
Filter EG Intensityfilter_eg_intensity |
84 | 0-127 | |
Filter EG Attackfilter_eg_attack |
85 | 0-127 | |
Filter EG Decayfilter_eg_decay |
86 | 0-127 | |
Filter EG Sustainfilter_eg_sustain |
87 | 0-127 | |
Filter EG Releasefilter_eg_release |
88 | 0-127 |
LFO 1
| Control | CC | NRPN | Values |
|---|---|---|---|
LFO1 Wavelfo1_wave |
89 | 0-25 triangle, 26-51 saw_down, 52-76 saw_up, 77-102 square, 103-127 sample_and_hold |
|
LFO1 Frequencylfo1_frequency |
90 | 0-127 | |
LFO1 Smoothlfo1_smooth |
91 | 0-127 |
LFO 2
| Control | CC | NRPN | Values |
|---|---|---|---|
LFO2 Frequencylfo2_frequency |
76 | 0-127 | |
LFO2 Delaylfo2_delay |
92 | 0-127 | |
LFO2 Wavelfo2_wave |
102 | 0-25 triangle, 26-51 saw_down, 52-76 saw_up, 77-102 square, 103-127 sample_and_hold |
Virtual patch
| Control | CC | NRPN | Values |
|---|---|---|---|
Patch1 Intensitypatch1_intensity |
103 | 0-127 | |
Patch2 Intensitypatch2_intensity |
104 | 0-127 | |
Patch3 Intensitypatch3_intensity |
105 | 0-127 | |
Patch4 Intensitypatch4_intensity |
106 | 0-127 | |
Patch5 Intensitypatch5_intensity |
107 | 0-127 | |
Patch6 Intensitypatch6_intensity |
108 | 0-127 | |
Patch 1 Source 1patch1_source1 |
512 MSB 4, LSB 0 |
0-127, or 0-17 by NRPN | |
Patch 2 Source 1patch2_source1 |
513 MSB 4, LSB 1 |
0-127, or 0-17 by NRPN | |
Patch 3 Source 1patch3_source1 |
514 MSB 4, LSB 2 |
0-127, or 0-17 by NRPN | |
Patch 4 Source 1patch4_source1 |
515 MSB 4, LSB 3 |
0-127, or 0-17 by NRPN | |
Patch 5 Source 1patch5_source1 |
516 MSB 4, LSB 4 |
0-127, or 0-17 by NRPN | |
Patch 6 Source 1patch6_source1 |
517 MSB 4, LSB 5 |
0-127, or 0-17 by NRPN | |
Patch 1 Source 2patch1_source2 |
528 MSB 4, LSB 16 |
0-127, or 0-17 by NRPN | |
Patch 2 Source 2patch2_source2 |
529 MSB 4, LSB 17 |
0-127, or 0-17 by NRPN | |
Patch 3 Source 2patch3_source2 |
530 MSB 4, LSB 18 |
0-127, or 0-17 by NRPN | |
Patch 4 Source 2patch4_source2 |
531 MSB 4, LSB 19 |
0-127, or 0-17 by NRPN | |
Patch 5 Source 2patch5_source2 |
532 MSB 4, LSB 20 |
0-127, or 0-17 by NRPN | |
Patch 6 Source 2patch6_source2 |
533 MSB 4, LSB 21 |
0-127, or 0-17 by NRPN | |
Patch 1 Destinationpatch1_destination |
544 MSB 4, LSB 32 |
0-127, or 0-75 by NRPN | |
Patch 2 Destinationpatch2_destination |
545 MSB 4, LSB 33 |
0-127, or 0-75 by NRPN | |
Patch 3 Destinationpatch3_destination |
546 MSB 4, LSB 34 |
0-127, or 0-75 by NRPN | |
Patch 4 Destinationpatch4_destination |
547 MSB 4, LSB 35 |
0-127, or 0-75 by NRPN | |
Patch 5 Destinationpatch5_destination |
548 MSB 4, LSB 36 |
0-127, or 0-75 by NRPN | |
Patch 6 Destinationpatch6_destination |
549 MSB 4, LSB 37 |
0-127, or 0-75 by NRPN |
MOD
| Control | CC | NRPN | Values |
|---|---|---|---|
Mod Control1mod_control1 |
12 | 0-127 | |
Mod Control2mod_control2 |
111 | 0-127 | |
Mod Control3mod_control3 |
112 | 0-127 |
DELAY
| Control | CC | NRPN | Values |
|---|---|---|---|
Delay Control2delay_control2 |
13 | 0-127 | |
Delay Control3delay_control3 |
113 | 0-127 | |
Delay Control4delay_control4 |
114 | 0-127 | |
Delay Control1delay_control1 |
115 | 0-127 |
REVERB
| Control | CC | NRPN | Values |
|---|---|---|---|
Reverb Control2reverb_control2 |
14 | 0-127 | |
Reverb Control3reverb_control3 |
116 | 0-127 | |
Reverb Control4reverb_control4 |
117 | 0-127 | |
Reverb Control1reverb_control1 |
118 | 0-127 |
EQ
| Control | CC | NRPN | Values |
|---|---|---|---|
EQ Output Feedbackeq_output_feedback |
93 | 0-127 | |
EQ High Frequencyeq_high_frequency |
94 | 0-127 | |
EQ Low Frequencyeq_low_frequency |
95 | 0-127 | |
EQ High Gaineq_high_gain |
109 | 0-127 | |
EQ Low Gaineq_low_gain |
110 | 0-127 |
Arpeggiator
| Control | CC | NRPN | Values |
|---|---|---|---|
Arpeggiator Off/Onarpeggiator_off_on |
2 MSB 0, LSB 2 |
0 off, 1 on |
|
Arpeggiator Latch Off/Onarpeggiator_latch_off_on |
4 MSB 0, LSB 4 |
0 off, 1 on |
|
Arpeggiator Swingarpeggiator_swing |
5 MSB 0, LSB 5 |
0-127 | |
Arpeggiator Resolutionarpeggiator_resolution |
6 MSB 0, LSB 6 |
0-127, or 0-6 by NRPN | |
Arpeggiator Typearpeggiator_type |
7 MSB 0, LSB 7 |
0-127, or 0-9 by NRPN | |
Arpeggiator Octave Rangearpeggiator_octave_range |
8 MSB 0, LSB 8 |
0-127, or 0-3 by NRPN | |
Arpeggiator Last Steparpeggiator_last_step |
9 MSB 0, LSB 9 |
0-127, or 0-7 by NRPN | |
Arpeggiator Gate Timearpeggiator_gate_time |
10 MSB 0, LSB 10 |
0-127, or 0-100 by NRPN | |
Arpeggiator Target Timbrearpeggiator_target_timbre |
11 MSB 0, LSB 11 |
0 both_timbre, 1 timbre1, 2 timbre2 |
|
Arpeggiator Key Syncarpeggiator_key_sync |
12 MSB 0, LSB 12 |
0 off, 1 on |
Vocoder
| Control | CC | NRPN | Values |
|---|---|---|---|
Vocoder Mic Directvocoder_mic_direct |
641 MSB 5, LSB 1 |
0-127 | |
Vocoder Synth Dry/Wetvocoder_synth_dry_wet |
642 MSB 5, LSB 2 |
0-127, or 0-100 by NRPN | |
Vocoder Formantvocoder_formant |
643 MSB 5, LSB 3 |
0-127 | |
Vocoder Resonancevocoder_resonance |
644 MSB 5, LSB 4 |
0-127 | |
Vocoder E.F.Sensvocoder_e_f_sens |
645 MSB 5, LSB 5 |
0-127 | |
Vocoder Band 1 Levelvocoder_band1_level |
656 MSB 5, LSB 16 |
0-127 | |
Vocoder Band 2 Levelvocoder_band2_level |
657 MSB 5, LSB 17 |
0-127 | |
Vocoder Band 3 Levelvocoder_band3_level |
658 MSB 5, LSB 18 |
0-127 | |
Vocoder Band 4 Levelvocoder_band4_level |
659 MSB 5, LSB 19 |
0-127 | |
Vocoder Band 5 Levelvocoder_band5_level |
660 MSB 5, LSB 20 |
0-127 | |
Vocoder Band 6 Levelvocoder_band6_level |
661 MSB 5, LSB 21 |
0-127 | |
Vocoder Band 7 Levelvocoder_band7_level |
662 MSB 5, LSB 22 |
0-127 | |
Vocoder Band 8 Levelvocoder_band8_level |
663 MSB 5, LSB 23 |
0-127 | |
Vocoder Band 9 Levelvocoder_band9_level |
664 MSB 5, LSB 24 |
0-127 | |
Vocoder Band 10 Levelvocoder_band10_level |
665 MSB 5, LSB 25 |
0-127 | |
Vocoder Band 11 Levelvocoder_band11_level |
666 MSB 5, LSB 26 |
0-127 | |
Vocoder Band 12 Levelvocoder_band12_level |
667 MSB 5, LSB 27 |
0-127 | |
Vocoder Band 13 Levelvocoder_band13_level |
668 MSB 5, LSB 28 |
0-127 | |
Vocoder Band 14 Levelvocoder_band14_level |
669 MSB 5, LSB 29 |
0-127 | |
Vocoder Band 15 Levelvocoder_band15_level |
670 MSB 5, LSB 30 |
0-127 | |
Vocoder Band 16 Levelvocoder_band16_level |
671 MSB 5, LSB 31 |
0-127 | |
Vocoder Band 1 Panvocoder_band1_pan |
672 MSB 5, LSB 32 |
0-127 | |
Vocoder Band 2 Panvocoder_band2_pan |
673 MSB 5, LSB 33 |
0-127 | |
Vocoder Band 3 Panvocoder_band3_pan |
674 MSB 5, LSB 34 |
0-127 | |
Vocoder Band 4 Panvocoder_band4_pan |
675 MSB 5, LSB 35 |
0-127 | |
Vocoder Band 5 Panvocoder_band5_pan |
676 MSB 5, LSB 36 |
0-127 | |
Vocoder Band 6 Panvocoder_band6_pan |
677 MSB 5, LSB 37 |
0-127 | |
Vocoder Band 7 Panvocoder_band7_pan |
678 MSB 5, LSB 38 |
0-127 | |
Vocoder Band 8 Panvocoder_band8_pan |
679 MSB 5, LSB 39 |
0-127 | |
Vocoder Band 9 Panvocoder_band9_pan |
680 MSB 5, LSB 40 |
0-127 | |
Vocoder Band 10 Panvocoder_band10_pan |
681 MSB 5, LSB 41 |
0-127 | |
Vocoder Band 11 Panvocoder_band11_pan |
682 MSB 5, LSB 42 |
0-127 | |
Vocoder Band 12 Panvocoder_band12_pan |
683 MSB 5, LSB 43 |
0-127 | |
Vocoder Band 13 Panvocoder_band13_pan |
684 MSB 5, LSB 44 |
0-127 | |
Vocoder Band 14 Panvocoder_band14_pan |
685 MSB 5, LSB 45 |
0-127 | |
Vocoder Band 15 Panvocoder_band15_pan |
686 MSB 5, LSB 46 |
0-127 | |
Vocoder Band 16 Panvocoder_band16_pan |
687 MSB 5, LSB 47 |
0-127 | |
Vocoder Band 1 Formantvocoder_band1_formant |
688 MSB 5, LSB 48 |
0-127 | |
Vocoder Band 2 Formantvocoder_band2_formant |
689 MSB 5, LSB 49 |
0-127 | |
Vocoder Band 3 Formantvocoder_band3_formant |
690 MSB 5, LSB 50 |
0-127 | |
Vocoder Band 4 Formantvocoder_band4_formant |
691 MSB 5, LSB 51 |
0-127 | |
Vocoder Band 5 Formantvocoder_band5_formant |
692 MSB 5, LSB 52 |
0-127 | |
Vocoder Band 6 Formantvocoder_band6_formant |
693 MSB 5, LSB 53 |
0-127 | |
Vocoder Band 7 Formantvocoder_band7_formant |
694 MSB 5, LSB 54 |
0-127 | |
Vocoder Band 8 Formantvocoder_band8_formant |
695 MSB 5, LSB 55 |
0-127 | |
Vocoder Band 9 Formantvocoder_band9_formant |
696 MSB 5, LSB 56 |
0-127 | |
Vocoder Band 10 Formantvocoder_band10_formant |
697 MSB 5, LSB 57 |
0-127 | |
Vocoder Band 11 Formantvocoder_band11_formant |
698 MSB 5, LSB 58 |
0-127 | |
Vocoder Band 12 Formantvocoder_band12_formant |
699 MSB 5, LSB 59 |
0-127 | |
Vocoder Band 13 Formantvocoder_band13_formant |
700 MSB 5, LSB 60 |
0-127 | |
Vocoder Band 14 Formantvocoder_band14_formant |
701 MSB 5, LSB 61 |
0-127 | |
Vocoder Band 15 Formantvocoder_band15_formant |
702 MSB 5, LSB 62 |
0-127 | |
Vocoder Band 16 Formantvocoder_band16_formant |
703 MSB 5, LSB 63 |
0-127 |
Hard tune
| Control | CC | NRPN | Values |
|---|---|---|---|
Hardtune Intensityhardtune_intensity |
769 MSB 6, LSB 1 |
0-127 | |
Hardtune Speedhardtune_speed |
770 MSB 6, LSB 2 |
0-127 | |
Hardtune Formanthardtune_formant |
771 MSB 6, LSB 3 |
0-127 |
Harmonizer
| Control | CC | NRPN | Values |
|---|---|---|---|
Harmonies Levelharmonies_level |
897 MSB 7, LSB 1 |
0-127 | |
Harmonizer Stereo Spreadharmonizer_stereo_spread |
898 MSB 7, LSB 2 |
0-127 | |
Harmonizer Formantharmonizer_formant |
899 MSB 7, LSB 3 |
0-127 | |
Harmonizer Pitch Detuneharmonizer_pitch_detune |
900 MSB 7, LSB 4 |
0-127 | |
Harmonizer Delayharmonizer_delay |
901 MSB 7, LSB 5 |
0-127 | |
Harmony Numberharmony_number |
912 MSB 7, LSB 16 |
0-127, or 1-2 by NRPN | |
Harmony 1 Pitch (Type 1)harmony1_pitch_type1 |
928 MSB 7, LSB 32 |
0-127, or 0-28 by NRPN | |
Harmony 1 Pitch (Type 2)harmony1_pitch_type2 |
929 MSB 7, LSB 33 |
0-127, or 0-20 by NRPN | |
Harmony 1 Pitch (Type 3)harmony1_pitch_type3 |
930 MSB 7, LSB 34 |
0-127, or 0-24 by NRPN | |
Harmony 1 Pitch (Type 4)harmony1_pitch_type4 |
931 MSB 7, LSB 35 |
0-127, or 0-28 by NRPN | |
Harmony 1 Pitch (Type 5)harmony1_pitch_type5 |
932 MSB 7, LSB 36 |
0-127, or 0-12 by NRPN | |
Harmony 1 Pitch (Type 6)harmony1_pitch_type6 |
933 MSB 7, LSB 37 |
0-127, or 0-8 by NRPN | |
Harmony 1 Pitch (Type 7)harmony1_pitch_type7 |
934 MSB 7, LSB 38 |
0-127, or 0-48 by NRPN | |
Harmony 2 Pitch (Type 1)harmony2_pitch_type1 |
944 MSB 7, LSB 48 |
0-127, or 0-28 by NRPN | |
Harmony 2 Pitch (Type 2)harmony2_pitch_type2 |
945 MSB 7, LSB 49 |
0-127, or 0-20 by NRPN | |
Harmony 2 Pitch (Type 3)harmony2_pitch_type3 |
946 MSB 7, LSB 50 |
0-127, or 0-24 by NRPN | |
Harmony 2 Pitch (Type 4)harmony2_pitch_type4 |
947 MSB 7, LSB 51 |
0-127, or 0-28 by NRPN | |
Harmony 2 Pitch (Type 5)harmony2_pitch_type5 |
948 MSB 7, LSB 52 |
0-127, or 0-12 by NRPN | |
Harmony 2 Pitch (Type 6)harmony2_pitch_type6 |
949 MSB 7, LSB 53 |
0-127, or 0-8 by NRPN | |
Harmony 2 Pitch (Type 7)harmony2_pitch_type7 |
950 MSB 7, LSB 54 |
0-127, or 0-48 by NRPN |
Loop recorder
| Control | CC | NRPN | Values |
|---|---|---|---|
LoopRec Stutterloop_rec_stutter |
1040 MSB 8, LSB 16 |
0 off, 1 on_forward, 2 on_reverse |
|
LoopRec Stutter Lengthloop_rec_stutter_length |
1041 MSB 8, LSB 17 |
0-127, or 0-10 by NRPN | |
LoopRec Stutter Offsetloop_rec_stutter_offset |
1042 MSB 8, LSB 18 |
0-127 | |
Loop Play Levelloop_play_level |
1043 MSB 8, LSB 19 |
0-127 |
Without a group
| Control | CC | NRPN | Values |
|---|---|---|---|
Bank Select(MSB)bank_select_msb |
0 | 0 | |
Bank Select(LSB)bank_select_lsb |
32 | 0 classic, 1 modern, 2 future, 3 user |
Timbre 2
Performance
| Control | CC | NRPN | Values |
|---|---|---|---|
Modulationtimbre_2_modulation |
1 | 0-127 | |
Holdtimbre_2_hold |
64 | 0-127 |
PITCH
| Control | CC | NRPN | Values |
|---|---|---|---|
Portamento Timetimbre_2_portamento_time |
5 | 0-127 | |
Portamento Modetimbre_2_portamento_mode |
65 | 0-63 fingered, 64-127 always |
TIMBRE
| Control | CC | NRPN | Values |
|---|---|---|---|
Timbre Leveltimbre_2_timbre_level |
7 | 0-127 | |
Timbre Pantimbre_2_timbre_pan |
10 | 0-127 |
Where these facts come from
Source documents
- microKORG2/MIDI Implementation, Revision 1.0, dated 10 May 2024, its MIDI implementation, read on 4 October 2026 (the file read).
- microKORG2/Owner's Manual (En), Published 10/2024, dated 27 August 2024, its user manual, with the numbers on page 133 given only as a picture, read on 4 October 2026 (the file read).
- microKORG2 version 2.0, 2.0, dated 7 October 2025, its firmware addendum, read on 4 October 2026 (the file read).
- Downloads | microKORG2 - System Updater | KORG (USA), 2.0.2, dated 10 December 2025, its release notes, read on 4 October 2026.
- microKORG2 - SYNTHESIZER/VOCODER | KORG (USA), its product page, read on 4 October 2026.
How they were read
Four documents, all Korg's own, and the first two carry the map twice over.
THE MIDI IMPLEMENTATION IS A PLAIN TEXT FILE WITH NO PAGES, cited by its own section numbers. It states "microKORG 2 MIDI Implementation Revision 1.0 (2024.05.10)" (implementation) on its first line, which is the document's revision and not the instrument's - the trap the wavestate's chart set, and the TR-6S's. Korg's download page dates the same file 2024.11.27, seven months later, which is when it was last posted.
ITS PANEL TABLE GIVES 71 CONTROL CHANGES, numbered 5 to 118, each with a parameter name and a value description. Both channel-message tables, the transmitted and the recognised, carry one row for the lot of them and say the same thing about it - "Control Data cc=5~118" (implementation) - so this instrument sends every number it answers to. THAT IS THE DIFFERENCE FROM THE microKORG, whose implementation gives no controller number for any panel parameter because the numbers there are the player's to assign. Here they are fixed, and the manual says so in as many words: "On the microKORG2, control change numbers are assigned to the main parameters that alter the sound, and you can use an external MIDI sequencer to trigger the sound generator while controlling these parameters" (p. 84).
AND THE MANUAL PRINTS THE SAME MAP TWICE MORE, which is this document set's own redundancy and was asserted rather than trusted. Its MIDI Implementation Chart, on printed page 133, lists 79 controller numbers in 22 rows; eight of them - 0, 1, 6, 32, 38, 64, 98 and 99 - are bank select, the modulation wheel, data entry, the damper pedal and the NRPN pair rather than panel parameters, and the remaining 71 are the implementation's table exactly. Separately, the manual's own parameter pages name a number beside a parameter wherever there is one, in two schemes: 70 controller numbers, which are 69 of the implementation's 71 plus controller 1 for the modulation wheel, and 77 NRPN addresses. The only two of the panel table it never names are Timbre Level and Timbre Pan, which have no numbered entry of their own anywhere in 134 pages.
THAT SECOND SCHEME IS EASY TO MISS AND IT IS THE ONE THAT MATTERS. The manual writes a run of parameters as one span - "(NRPN 4, 32...37)" (p. 71) for the six virtual patch destinations, "(NRPN 5, 16...31)" (p. 91) for the sixteen vocoder band levels - and names single addresses the same way, "(NRPN 6, 1)" and "(NRPN 6, 2)" and "(NRPN 6, 3)" (p. 92). Six of the addresses it gives are addresses the implementation never prints at all, and they are exactly the six needed to make the implementation's broken rows whole.
THE CHART'S PAGE CANNOT BE READ AS TEXT. Its type was converted to outlines when the manual was made, so printed page 133 carries 2,362 vector drawings and 79 characters - the running header and the heading. It was read from a render of that page instead, which is the one reading here that nothing else checks, and it is declared as pictured_pages so that a checker finding no numbers on that page knows why.
WHERE THE IMPLEMENTATION CONTRADICTS ITSELF, AND WHAT THE MANUAL PUTS RIGHT. Its NRPN table prints each number in hexadecimal and again in decimal, which is a check the document makes on itself and fails twice: Hardtune Speed is printed as "06 | 01 ( 2)" (implementation) and Hardtune Formant as "06 | 02 ( 3)" (implementation). Taken as hexadecimal, Speed lands on Hardtune Intensity's own address; taken as decimal, the three run 1, 2, 3. SEPARATELY, ALL SIX Patch N Destination ROWS CARRY THE SAME ADDRESS, "04 | 20 (32)" (implementation), where the six Source 1 rows run 04/00 to 04/05 and the six Source 2 rows run 04/10 to 04/15 - so five of the six cannot be right.
THE MANUAL SETTLES BOTH, ON ITS OWN PAGES AND IN ITS OWN SCHEME: the hard tune page annotates Intensity, Speed and Formant "(NRPN 6, 1)", "(NRPN 6, 2)" and "(NRPN 6, 3)" (p. 92), and the virtual patch page annotates Destination "(NRPN 4, 32...37)" (p. 71). Both are coherent, both agree with the implementation wherever it is coherent, and together they account for every one of its 108 rows. So all 108 are below, the eight taken from the manual rather than from the implementation, each with a comment saying what the implementation prints instead. That is a second document of the maker's own correcting the first, not a choice between two columns with nothing to settle it.
AND THE TWO DOCUMENTS DISAGREE ABOUT TWO THINGS, which is recorded rather than resolved. The implementation's recognised table lists "Local Control Off/On" (implementation) on controller 122; the chart's Aux Messages row for Local On/Off says X in both columns. And the chart says All Notes Off is transmitted, while the only thing the implementation's transmitted table carries there is All Sound Off, controller 120, sent when a global setting changes. Both numbers are in the range this format refuses as controls in any case, so neither affects what is below.
TWO TIMBRES, ON TWO CHANNELS THE PLAYER SETS SEPARATELY. "Sets the global MIDI channel. This MIDI channel is used to transmit and receive note messages, bend messages and control change messages for Timbre 1" (p. 84), and "Sets the MIDI channel that Timbre 2 will send and receive MIDI messages on" (p. 84). The chart's own note says the same of the parameters: the channel for Timbre 2's timbre parameters is Timbre 2 Channel. So a timbre parameter reaches whichever timbre's channel it arrives on. A control naming no part is written on the global channel, which is Timbre 1's, and six standard controllers are written again for Timbre 2, keyed timbre_2_: modulation, portamento time, timbre level, timbre pan, hold and portamento mode, numbers 1, 5, 7, 10, 64 and 65. Four of the six are timbre parameters, which the chart's note covers in so many words. Modulation and hold are not: the chart puts the note's mark, *C, on their rows as it does on every controller row but bank select's, and they rest, for sending as for receiving, on the manual's sentence above, that Timbre 2's channel is the one it sends and receives MIDI messages on. Every other timbre parameter below reaches Timbre 2 on its channel in the same way, and names no part only because the rule this follows covers the standard controllers. The effect and equaliser controllers, and the NRPNs that are the program's and not a timbre's, belong to neither timbre: they carry the same mark, and no page says which channel they use. Bank select is not written again: its row is the one controller row that carries *P instead, the mark it shares with the program change row, and no page says which channel it, or a program change, is received on. Timbre 2 is used only in a program whose Timbre Mode is Dual. "Single: Only one timbre is used." (p. 51), and Timbre 2's level and its pan each carry the note "This is enabled when Timbre Mode is set to 'Dual'." (p. 49). No page says what Timbre 2's channel does in a Single program.
A THIRD CHANNEL ONLY TRANSMITS: "Sets the MIDI channel used for transmitting note messages corresponding to the pitch that's detected by the vocal processor" (p. 84), which can be any of the sixteen or Disable. It is not a part, because nothing can be sent to it.
THE SYSTEM VERSION THESE DOCUMENTS DESCRIBE IS NOT THE CURRENT ONE, and the way that was established is worth keeping. Korg's system update page lists 1.02, 2.0.0, 2.0.1 and 2.0.2. Every MIDI-visible thing version 2.0 added was searched for in the implementation by name and none of it is there: Key Split, logueSDK, Low Mode, Slice, Step Record, Level Scale and Pan Scale return nothing in 1,784 lines. Two published lists are demonstrably short because of it - the virtual patch source list ends at 17 and Osc3 is now a source, and the destination list ends at 75 while the version 2.0 supplement says "both Vocoder Level Scale and Vocoder Pan Scale are available as virtual patch destinations" (p. 6). The custom oscillator adds a wave this file's osc1_wave bands do not have, since version 2.0 says to "set WAVE to USER" (p. 7).
SO THE RANGES ON THE PATCH SOURCES BELOW, AND THE WAVE BANDS, ARE RIGHT FOR SYSTEM 1.02 AND SHORT FOR 2.0.2. Korg has published no numbers for what 2.0 added.
THE COLOUR VARIANTS ARE THIS INSTRUMENT, settled three ways rather than assumed. The product page describes the MBK and MWH as "two limited edition color models" (product_page) differing in the control panel, side panel, dials and wheels; the manual's specification covers all three in one weight line, "MK-2: 2.2 kg/4.85 lb, MK-2 MBK/MWH: 2.1 kg/4.63 lb" (p. 131); and the system updater page says it "can be used for the following products as well" (release_notes) and names "microKORG2 MBK/MWH" (release_notes). One system, one manual, one map.
AND IT IS NOT THE microKORG, THE microKORG S, THE XL, THE XL+ OR THE CRYSTAL. Those are different instruments with different maps, and korg/microkorg is already here. The older name is a prefix of every newer one, so a substring test would have matched this instrument's documents for the ancestor and the ancestor's for this one. Counted instead with a whole-name test that refuses the characters which would make it a longer name, the implementation mentions microKORG 2 three times and no other microKORG at all - so nothing in it had to be scoped away. WHAT A TEXT SEARCH CANNOT SEE is the chart on printed page 133, whose Model field reads "microKORG 2" in outlines rather than in text; it was read from the render with the rest of that page.
NO MIDI THRU. The specification lists "MIDI IN, OUT connectors" (p. 131) and a "USB Type-C port" (p. 131), and the rear panel names the same two. Routing chooses between: "USB+MIDI" or "USB" (p. 84) - so the USB port is never off, and there is no setting that leaves only the sockets live.
FOUR THINGS ARE ABSENT FROM MIDI AND WERE CHECKED RATHER THAN ASSUMED. The damper has no half position: "The microKORG2 does not have a half-damper function" (p. 82), so controller 64 is a switch whatever a pedal sends. The pitch bend range has no number at all - it is a per-timbre program parameter on the PITCH page (p. 53) and neither the implementation's table nor the manual's annotations give it a controller or an NRPN. Controller 50 is the one gap inside the OSC 3 run, 48, 49, 51, 52, and what sits between Shape/Sample and Semitones on the maker's own OSC 3 page is "OSC Mod Type (ModType)" (p. 58), printed with no number where every parameter around it has one. And there is no global dump: the implementation's function code list offers current program and one program and nothing else, so the MIDI channels, the clock source, local control and the four MIDI filters cannot be read or written over system exclusive as documented.
ONE MORE ASYMMETRY BETWEEN THE TWO DOCUMENTS, which is not a contradiction but will catch somebody out: the manual's prose never writes "bank select", anywhere in its 134 pages. Bank select is documented only in the implementation, under its note *2, and in the manual's own chart on printed page 133, which is drawn without a text layer, in its controller row and its Program Change remark. A reader working from the manual's prose alone would conclude this instrument has 64 programs.
TWO PAGES OF THE MANUAL PRINT NO NUMBER OF THEIR OWN - its first sheet and its last - so neither is cited here. Every other sheet prints its own sheet number, which is why the offset below is nothing.