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 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
PORTAMENTO
portamento
5 0-127
AMP EG ATTACK
amp_eg_attack
16 0-127
AMP EG DECAY
amp_eg_decay
17 0-127
AMP EG SUSTAIN
amp_eg_sustain
18 0-127
AMP EG RELEASE
amp_eg_release
19 0-127
EG ATTACK
eg_attack
20 0-127
EG DECAY
eg_decay
21 0-127
EG INT
eg_int
22 0-127
EG TARGET
eg_target
23 0-42 cutoff, 43-85 pitch2, 86-127 pitch
LFO RATE
lfo_rate
24 0-127
LFO INT
lfo_int
26 0-127
VOICE MODE DEPTH
voice_mode_depth
27 0-127
MOD FX TIME
mod_fx_time
28 0-127
MOD FX DEPTH
mod_fx_depth
29 0-127
MULTI LEVEL
multi_level
33 0-127
VCO 1 PITCH
vco_1_pitch
34 0-127
VCO 2 PITCH
vco_2_pitch
35 0-127
VCO 1 SHAPE
vco_1_shape
36 0-127
VCO 2 SHAPE
vco_2_shape
37 0-127
VCO 1 LEVEL
vco_1_level
39 0-127
VCO 2 LEVEL
vco_2_level
40 0-127
CROSS MOD DEPTH
cross_mod_depth
41 0-127
CUTOFF
cutoff
43 0-127
RESONANCE
resonance
44 0-127
VCO 1 OCTAVE
vco_1_octave
48 0-31 ft_16, 32-63 ft_8, 64-95 ft_4, 96-127 ft_2
VCO 2 OCTAVE
vco_2_octave
49 0-31 ft_16, 32-63 ft_8, 64-95 ft_4, 96-127 ft_2
VCO 1 WAVE
vco_1_wave
50 0-42 sqr, 43-85 tri, 86-127 saw
VCO 2 WAVE
vco_2_wave
51 0-42 sqr, 43-85 tri, 86-127 saw
MULTI TYPE
multi_type
53 0-42 noise, 43-85 vpm, 86-127 usr
MULTI SHAPE
multi_shape
54 0-127
LFO TARGET
lfo_target
56 0-42 cutoff, 43-85 shape, 86-127 pitch
LFO WAVE
lfo_wave
57 0-42 sqr, 43-85 tri, 86-127 saw
LFO MODE
lfo_mode
58 0-42 one_shot, 43-85 normal, 86-127 bpm
VOICE MODE DEPTH no display
voice_mode_depth_no_display
59 0-127
DAMPER
damper
64 0-127
SYNC
sync
80 0-63 on, 64-127 off
RING
ring
81 0-63 on, 64-127 off
CUTOFF KEYTRACK
cutoff_keytrack
83 0-42 pct_0, 43-85 pct_50, 86-127 pct_100
CUTOFF DRIVE
cutoff_drive
84 0-42 pct_0, 43-85 pct_50, 86-127 pct_100
MOD FX TYPE
mod_fx_type
88 0-25 chorus, 26-51 ensemble, 52-76 phaser, 77-101 flanger, 102-127 user
DELAY SUB TYPE
delay_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 TYPE
reverb_sub_type
90 0-127
MOD FX ON-OFF
mod_fx_on_off
92 0-63 off, 64-127 on
DELAY ON-OFF
delay_on_off
93 0-63 off, 64-127 on
REVERB ON-OFF
reverb_on_off
94 0-63 off, 64-127 on
MOD FX SUB TYPE
mod_fx_sub_type
96 0-127
MULTI SUB TYPE SELECT
multi_sub_type_select
103 0-127
MULTI SHIFT SHAPE
multi_shift_shape
104 0-127
DELAY TIME
delay_time
105 0-127
DELAY DEPTH
delay_depth
106 0-127
DELAY DRY WET
delay_dry_wet
107 0-127
REVERB TIME
reverb_time
108 0-127
REVERB DEPTH
reverb_depth
109 0-127
REVERB DRY WET
reverb_dry_wet
110 0-127
CV IN1
cv_in1
118 0-127
CV IN2
cv_in2
119 0-127
PROGRAM NAME 1
program_name_1
1
MSB 0, LSB 1
0-127
PROGRAM NAME 2
program_name_2
2
MSB 0, LSB 2
0-127
PROGRAM NAME 3
program_name_3
3
MSB 0, LSB 3
0-127
PROGRAM NAME 4
program_name_4
4
MSB 0, LSB 4
0-127
PROGRAM NAME 5
program_name_5
5
MSB 0, LSB 5
0-127
PROGRAM NAME 6
program_name_6
6
MSB 0, LSB 6
0-127
PROGRAM NAME 7
program_name_7
7
MSB 0, LSB 7
0-127
PROGRAM NAME 8
program_name_8
8
MSB 0, LSB 8
0-127
PROGRAM NAME 9
program_name_9
9
MSB 0, LSB 9
0-127
PROGRAM NAME 10
program_name_10
10
MSB 0, LSB 10
0-127
PROGRAM NAME 11
program_name_11
11
MSB 0, LSB 11
0-127
PROGRAM NAME 12
program_name_12
12
MSB 0, LSB 12
0-127
VOICE MODE TYPE
voice_mode_type
16
MSB 0, LSB 16
0-127, or 0-4 by NRPN
MULTI SELECT NOISE
multi_select_noise
17
MSB 0, LSB 17
0-127, or 0-3 by NRPN
MULTI SELECT VPM
multi_select_vpm
18
MSB 0, LSB 18
0-127, or 0-15 by NRPN
MULTI SELECT USER
multi_select_user
19
MSB 0, LSB 19
0-127, or 0-15 by NRPN
MULTI SHAPE NOISE
multi_shape_noise
20
MSB 0, LSB 20
0-127, or 0-1023 by NRPN
MULTI SHAPE VPM
multi_shape_vpm
21
MSB 0, LSB 21
0-127, or 0-1023 by NRPN
MULTI SHAPE USER
multi_shape_user
22
MSB 0, LSB 22
0-127, or 0-1023 by NRPN
MULTI SHIFT SHAPE NOISE
multi_shift_shape_noise
23
MSB 0, LSB 23
0-127, or 0-1023 by NRPN
MULTI SHIFT SHAPE VPM
multi_shift_shape_vpm
24
MSB 0, LSB 24
0-127, or 0-1023 by NRPN
MULTI SHIFT SHAPE USER
multi_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 MODE
cv_in_mode
40
MSB 0, LSB 40
0-127, or 0-2 by NRPN
CV IN 1 ASSIGN
cv_in_1_assign
41
MSB 0, LSB 41
0-127, or 0-28 by NRPN
CV IN 1 RANGE
cv_in_1_range
42
MSB 0, LSB 42
0-127, or 0-200 by NRPN
CV IN 2 ASSIGN
cv_in_2_assign
43
MSB 0, LSB 43
0-127, or 0-28 by NRPN
CV IN 2 RANGE
cv_in_2_range
44
MSB 0, LSB 44
0-127, or 0-200 by NRPN
MICRO TUNING
micro_tuning
48
MSB 0, LSB 48
0-127
SCALE KEY
scale_key
49
MSB 0, LSB 49
0-127, or 0-24 by NRPN
PROGRAM TUNING
program_tuning
50
MSB 0, LSB 50
0-127, or 0-100 by NRPN
LFO KEY SYNC
lfo_key_sync
52
MSB 0, LSB 52
0 off, 1 on
LFO VOICE SYNC
lfo_voice_sync
53
MSB 0, LSB 53
0 off, 1 on
LFO TARGET OSC
lfo_target_osc
54
MSB 0, LSB 54
0-127, or 0-3 by NRPN
EG VELOCITY
eg_velocity
56
MSB 0, LSB 56
0-127
AMP VELOCITY
amp_velocity
57
MSB 0, LSB 57
0-127
MULTI OCTAVE
multi_octave
58
MSB 0, LSB 58
0-127, or 0-3 by NRPN
MULTI ROUTING
multi_routing
59
MSB 0, LSB 59
0-127
EG LEGATO
eg_legato
60
MSB 0, LSB 60
0 off, 1 on
PORTAMENTO MODE
portamento_mode
61
MSB 0, LSB 61
0 auto, 1 on
PORTAMENTO BPM SYNC
portamento_bpm_sync
62
MSB 0, LSB 62
0 off, 1 on
PROGRAM LEVEL
program_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 1
user_param_1
72
MSB 0, LSB 72
0-127
USER PARAM 2
user_param_2
73
MSB 0, LSB 73
0-127
USER PARAM 3
user_param_3
74
MSB 0, LSB 74
0-127
USER PARAM 4
user_param_4
75
MSB 0, LSB 75
0-127
USER PARAM 5
user_param_5
76
MSB 0, LSB 76
0-127
USER PARAM 6
user_param_6
77
MSB 0, LSB 77
0-127
Program Transpose
program_transpose
80
MSB 0, LSB 80
0-127, or 1-25 by NRPN
MASTER VOLUME
master_volume
127
MSB 0, LSB 127
0-127, or 0-16383 by NRPN

Where these facts come from

Source documents

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:

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.