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 minilogue xd MIDI implementation
The MIDI implementation of the Korg minilogue xd: what it answers to, and the 121 controls it offers, on firmware 2.10.
At a glance
- Firmware
- This page describes firmware 2.10.
- MIDI channel
- Any one of 1 to 16.
- Voices
- 4.
- Note range
- Not recorded.
- Velocity
- Sent and received.
- Aftertouch
- Channel pressure, one value for every key. It sends none.
- Pitch bend
- Not recorded.
- Program change
- Received and sent, with 500 presets.
- MIDI clock
- Sent and received.
- Start and stop
- Sent and received.
- Control change
- 60 controls, in the table below.
- NRPN
- Supported. 61 of the controls below have one.
- System exclusive
- Supported.
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/minilogue_xd") has loaded them.
| Control | CC | NRPN | Values |
|---|---|---|---|
Bank Select (MSB)bank_select_msb |
0 | 0 | |
Bank Select (LSB)bank_select_lsb |
32 | 0-4 | |
Modulation1 (Joystick +Y, vv=0~127)modulation1 |
1 | 0-127 | |
Modulation2 (Joystick -Y, vv=0~127)modulation2 |
2 | 0-127 | |
PORTAMENTOportamento |
5 | 0-127 | |
AMP EG ATTACKamp_eg_attack |
16 | 0-127 | |
AMP EG DECAYamp_eg_decay |
17 | 0-127 | |
AMP EG SUSTAINamp_eg_sustain |
18 | 0-127 | |
AMP EG RELEASEamp_eg_release |
19 | 0-127 | |
EG ATTACKeg_attack |
20 | 0-127 | |
EG DECAYeg_decay |
21 | 0-127 | |
EG INTeg_int |
22 | 0-127 | |
EG TARGETeg_target |
23 | 0-42 cutoff, 43-85 pitch2, 86-127 pitch |
|
LFO RATElfo_rate |
24 | 0-127 | |
LFO INTlfo_int |
26 | 0-127 | |
VOICE MODE DEPTHvoice_mode_depth |
27 | 0-127 | |
MOD FX TIMEmod_fx_time |
28 | 0-127 | |
MOD FX DEPTHmod_fx_depth |
29 | 0-127 | |
MULTI LEVELmulti_level |
33 | 0-127 | |
VCO 1 PITCHvco_1_pitch |
34 | 0-127 | |
VCO 2 PITCHvco_2_pitch |
35 | 0-127 | |
VCO 1 SHAPEvco_1_shape |
36 | 0-127 | |
VCO 2 SHAPEvco_2_shape |
37 | 0-127 | |
VCO 1 LEVELvco_1_level |
39 | 0-127 | |
VCO 2 LEVELvco_2_level |
40 | 0-127 | |
CROSS MOD DEPTHcross_mod_depth |
41 | 0-127 | |
CUTOFFcutoff |
43 | 0-127 | |
RESONANCEresonance |
44 | 0-127 | |
VCO 1 OCTAVEvco_1_octave |
48 | 0-31 ft_16, 32-63 ft_8, 64-95 ft_4, 96-127 ft_2 |
|
VCO 2 OCTAVEvco_2_octave |
49 | 0-31 ft_16, 32-63 ft_8, 64-95 ft_4, 96-127 ft_2 |
|
VCO 1 WAVEvco_1_wave |
50 | 0-42 sqr, 43-85 tri, 86-127 saw |
|
VCO 2 WAVEvco_2_wave |
51 | 0-42 sqr, 43-85 tri, 86-127 saw |
|
MULTI TYPEmulti_type |
53 | 0-42 noise, 43-85 vpm, 86-127 usr |
|
MULTI SHAPEmulti_shape |
54 | 0-127 | |
LFO TARGETlfo_target |
56 | 0-42 cutoff, 43-85 shape, 86-127 pitch |
|
LFO WAVElfo_wave |
57 | 0-42 sqr, 43-85 tri, 86-127 saw |
|
LFO MODElfo_mode |
58 | 0-42 one_shot, 43-85 normal, 86-127 bpm |
|
VOICE MODE DEPTH no displayvoice_mode_depth_no_display |
59 | 0-127 | |
DAMPERdamper |
64 | 0-127 | |
SYNCsync |
80 | 0-63 on, 64-127 off |
|
RINGring |
81 | 0-63 on, 64-127 off |
|
CUTOFF KEYTRACKcutoff_keytrack |
83 | 0-42 pct_0, 43-85 pct_50, 86-127 pct_100 |
|
CUTOFF DRIVEcutoff_drive |
84 | 0-42 pct_0, 43-85 pct_50, 86-127 pct_100 |
|
MOD FX TYPEmod_fx_type |
88 | 0-25 chorus, 26-51 ensemble, 52-76 phaser, 77-101 flanger, 102-127 user |
|
DELAY SUB TYPEdelay_sub_type |
89 | 0-6 stereo, 7-12 mono, 13-19 ping_pong, 20-25 hipass, 26-31 tape, 32-38 one_tap, 39-44 stereo_bpm, 45-51 mono_bpm, 52-57 ping_bpm, 58-63 hipass_bpm, 64-70 tape_bpm, 71-76 doubling, 77-83 user1, 84-89 user2, 90-95 user3, 96-102 user4, 103-108 user5, 109-115 user6, 116-121 user7, 122-127 user8 |
|
REVERB SUB TYPEreverb_sub_type |
90 | 0-127 | |
MOD FX ON-OFFmod_fx_on_off |
92 | 0-63 off, 64-127 on |
|
DELAY ON-OFFdelay_on_off |
93 | 0-63 off, 64-127 on |
|
REVERB ON-OFFreverb_on_off |
94 | 0-63 off, 64-127 on |
|
MOD FX SUB TYPEmod_fx_sub_type |
96 | 0-127 | |
MULTI SUB TYPE SELECTmulti_sub_type_select |
103 | 0-127 | |
MULTI SHIFT SHAPEmulti_shift_shape |
104 | 0-127 | |
DELAY TIMEdelay_time |
105 | 0-127 | |
DELAY DEPTHdelay_depth |
106 | 0-127 | |
DELAY DRY WETdelay_dry_wet |
107 | 0-127 | |
REVERB TIMEreverb_time |
108 | 0-127 | |
REVERB DEPTHreverb_depth |
109 | 0-127 | |
REVERB DRY WETreverb_dry_wet |
110 | 0-127 | |
CV IN1cv_in1 |
118 | 0-127 | |
CV IN2cv_in2 |
119 | 0-127 | |
PROGRAM NAME 1program_name_1 |
1 MSB 0, LSB 1 |
0-127 | |
PROGRAM NAME 2program_name_2 |
2 MSB 0, LSB 2 |
0-127 | |
PROGRAM NAME 3program_name_3 |
3 MSB 0, LSB 3 |
0-127 | |
PROGRAM NAME 4program_name_4 |
4 MSB 0, LSB 4 |
0-127 | |
PROGRAM NAME 5program_name_5 |
5 MSB 0, LSB 5 |
0-127 | |
PROGRAM NAME 6program_name_6 |
6 MSB 0, LSB 6 |
0-127 | |
PROGRAM NAME 7program_name_7 |
7 MSB 0, LSB 7 |
0-127 | |
PROGRAM NAME 8program_name_8 |
8 MSB 0, LSB 8 |
0-127 | |
PROGRAM NAME 9program_name_9 |
9 MSB 0, LSB 9 |
0-127 | |
PROGRAM NAME 10program_name_10 |
10 MSB 0, LSB 10 |
0-127 | |
PROGRAM NAME 11program_name_11 |
11 MSB 0, LSB 11 |
0-127 | |
PROGRAM NAME 12program_name_12 |
12 MSB 0, LSB 12 |
0-127 | |
VOICE MODE TYPEvoice_mode_type |
16 MSB 0, LSB 16 |
0-127, or 0-4 by NRPN | |
MULTI SELECT NOISEmulti_select_noise |
17 MSB 0, LSB 17 |
0-127, or 0-3 by NRPN | |
MULTI SELECT VPMmulti_select_vpm |
18 MSB 0, LSB 18 |
0-127, or 0-15 by NRPN | |
MULTI SELECT USERmulti_select_user |
19 MSB 0, LSB 19 |
0-127, or 0-15 by NRPN | |
MULTI SHAPE NOISEmulti_shape_noise |
20 MSB 0, LSB 20 |
0-127, or 0-1023 by NRPN | |
MULTI SHAPE VPMmulti_shape_vpm |
21 MSB 0, LSB 21 |
0-127, or 0-1023 by NRPN | |
MULTI SHAPE USERmulti_shape_user |
22 MSB 0, LSB 22 |
0-127, or 0-1023 by NRPN | |
MULTI SHIFT SHAPE NOISEmulti_shift_shape_noise |
23 MSB 0, LSB 23 |
0-127, or 0-1023 by NRPN | |
MULTI SHIFT SHAPE VPMmulti_shift_shape_vpm |
24 MSB 0, LSB 24 |
0-127, or 0-1023 by NRPN | |
MULTI SHIFT SHAPE USERmulti_shift_shape_user |
25 MSB 0, LSB 25 |
0-127, or 0-1023 by NRPN | |
BEND RANGE (+)bend_range_plus |
32 MSB 0, LSB 32 |
0-127, or 0-12 by NRPN | |
BEND RANGE (-)bend_range_minus |
33 MSB 0, LSB 33 |
0-127, or 0-12 by NRPN | |
JOYSTICK ASSIGN (+)joystick_assign_plus |
34 MSB 0, LSB 34 |
0-127, or 0-28 by NRPN | |
JOYSTICK RANGE (+)joystick_range_plus |
35 MSB 0, LSB 35 |
0-127, or 0-200 by NRPN | |
JOYSTICK ASSIGN (-)joystick_assign_minus |
36 MSB 0, LSB 36 |
0-127, or 0-28 by NRPN | |
JOYSTICK RANGE (-)joystick_range_minus |
37 MSB 0, LSB 37 |
0-127, or 0-200 by NRPN | |
CV IN MODEcv_in_mode |
40 MSB 0, LSB 40 |
0-127, or 0-2 by NRPN | |
CV IN 1 ASSIGNcv_in_1_assign |
41 MSB 0, LSB 41 |
0-127, or 0-28 by NRPN | |
CV IN 1 RANGEcv_in_1_range |
42 MSB 0, LSB 42 |
0-127, or 0-200 by NRPN | |
CV IN 2 ASSIGNcv_in_2_assign |
43 MSB 0, LSB 43 |
0-127, or 0-28 by NRPN | |
CV IN 2 RANGEcv_in_2_range |
44 MSB 0, LSB 44 |
0-127, or 0-200 by NRPN | |
MICRO TUNINGmicro_tuning |
48 MSB 0, LSB 48 |
0-127 | |
SCALE KEYscale_key |
49 MSB 0, LSB 49 |
0-127, or 0-24 by NRPN | |
PROGRAM TUNINGprogram_tuning |
50 MSB 0, LSB 50 |
0-127, or 0-100 by NRPN | |
LFO KEY SYNClfo_key_sync |
52 MSB 0, LSB 52 |
0 off, 1 on |
|
LFO VOICE SYNClfo_voice_sync |
53 MSB 0, LSB 53 |
0 off, 1 on |
|
LFO TARGET OSClfo_target_osc |
54 MSB 0, LSB 54 |
0-127, or 0-3 by NRPN | |
EG VELOCITYeg_velocity |
56 MSB 0, LSB 56 |
0-127 | |
AMP VELOCITYamp_velocity |
57 MSB 0, LSB 57 |
0-127 | |
MULTI OCTAVEmulti_octave |
58 MSB 0, LSB 58 |
0-127, or 0-3 by NRPN | |
MULTI ROUTINGmulti_routing |
59 MSB 0, LSB 59 |
0-127 | |
EG LEGATOeg_legato |
60 MSB 0, LSB 60 |
0 off, 1 on |
|
PORTAMENTO MODEportamento_mode |
61 MSB 0, LSB 61 |
0 auto, 1 on |
|
PORTAMENTO BPM SYNCportamento_bpm_sync |
62 MSB 0, LSB 62 |
0 off, 1 on |
|
PROGRAM LEVELprogram_level |
63 MSB 0, LSB 63 |
0-127, or 0-120 by NRPN | |
VPM PARAM 1 (Feedback)vpm_param_1 |
64 MSB 0, LSB 64 |
0-127, or 0-200 by NRPN | |
VPM PARAM 2 (Noise Depth)vpm_param_2 |
65 MSB 0, LSB 65 |
0-127, or 0-200 by NRPN | |
VPM PARAM 3 (Shape Mod Int)vpm_param_3 |
66 MSB 0, LSB 66 |
0-127, or 0-200 by NRPN | |
VPM PARAM 4 (Mod Attack)vpm_param_4 |
67 MSB 0, LSB 67 |
0-127, or 0-200 by NRPN | |
VPM PARAM 5 (Mod Decay)vpm_param_5 |
68 MSB 0, LSB 68 |
0-127, or 0-200 by NRPN | |
VPM PARAM 6 (Mod Key Track)vpm_param_6 |
69 MSB 0, LSB 69 |
0-127, or 0-200 by NRPN | |
USER PARAM 1user_param_1 |
72 MSB 0, LSB 72 |
0-127 | |
USER PARAM 2user_param_2 |
73 MSB 0, LSB 73 |
0-127 | |
USER PARAM 3user_param_3 |
74 MSB 0, LSB 74 |
0-127 | |
USER PARAM 4user_param_4 |
75 MSB 0, LSB 75 |
0-127 | |
USER PARAM 5user_param_5 |
76 MSB 0, LSB 76 |
0-127 | |
USER PARAM 6user_param_6 |
77 MSB 0, LSB 77 |
0-127 | |
Program Transposeprogram_transpose |
80 MSB 0, LSB 80 |
0-127, or 1-25 by NRPN | |
MASTER VOLUMEmaster_volume |
127 MSB 0, LSB 127 |
0-127, or 0-16383 by NRPN |
Where these facts come from
Source documents
- minilogue xd/MIDI Implimentation, Revision 1.01, dated 10 February 2020, its MIDI implementation, read on 13 September 2026 (the file read).
- minilogue xd/Owner's Manual (English), dated 17 July 2025, its user manual, read on 13 September 2026 (the file read).
How they were read
MIDI implementation (plain text, no pages at all), sections 1-1 and 2-1 for the channel messages, 1-2 and 2-3 for the real-time messages, and the Non Registered Parameter Number table under footnote *3; and the owner's manual (68pp) at pp. 45 and 66 for the MIDI channel setting and the specifications.
The instrument transmits 64 control changes and recognises 67. The three it recognises and never sends are All Sound Off, Local Sw and All Note Off, which are channel mode messages belonging to the MIDI specification rather than to any instrument, and are excluded for that reason rather than missed. Four more are the machinery of other messages rather than controls of their own, and are excluded too: Data Entry MSB, NRPN MSB and LSB, and the LSB VALUE register described below. Bank Select MSB and LSB are controls, as bank select is wherever a maker numbers it.
What a value means is taken from the receive side throughout, because a definition's named values answer what to send in order to put a control into a state. That matters here, because the two sides disagree.
SYNC and RING are printed with opposite polarity in the two sections. Transmitting, "SYNC:OFF, ON = vv:0,127" (midi_impl); receiving, "vv:0~63,64~127 = SYNC:ON, OFF" (midi_impl). So a value of 0 is sent to mean OFF and is received to mean ON, and the same for RING. This file records the receive reading, which is what reaches the instrument, and the contradiction is recorded here rather than resolved.
Three further faults in the document, all left as the maker printed them.
First, the row for REVERB SUB TYPE cites footnote *6-14, and no such footnote exists in the document; the footnote numbered *5-14 is defined, is cited by nothing, and carries exactly this control's eighteen names. Its bands are used, and this note is why.
Second, MOD FX TYPE's receive bands are printed "0~25,26~51,52~76,77~102,102~127" (midi_impl), in which 102 both ends one band and begins the next. The band starts recorded here make 102 the first value of USER, which is one reading of an overlap the document does not resolve.
Third, the transmitted value list for MOD FX SUB TYPE under USER ends "112,128", and 128 is not a value a 7-bit control change can carry; every sibling list in the document ends 127. Nothing here depends on it, since the receive side governs.
NOT RECORDED, and marked in place:
- the range of notes it answers to, which neither document states;
- whether it acts on note-off velocity;
- and the value bands for the two controls whose meaning depends on another control's setting, which the format cannot express - MOD FX SUB TYPE depends on MOD FX TYPE, and MULTI SUB TYPE SELECT on MULTI TYPE, each with a different set of bands under each.
One further thing the format cannot carry, and the file does not pretend to: this maker sends many controls at 10-bit resolution by first sending the low three bits as CC 63, then the upper seven as the control's own number. That is not the MMA's 14-bit pairing of a coarse and a fine controller, so no control here declares a fine half, and every range below is the 7-bit one the control change itself carries.