Instrument Definition: Korg Minilogue XD

VERSION 1 # Currently, this should only be 1.

# Supports all alphanumeric ASCII, and ' ', '_', '-', '+' - can also be NULL
TRACKNAME Minilogue

# Can be POLY, DRUM, MPE, or NULL
TYPE POLY

# Can be A, B, C, D, USBD, USBH, CVGx (x between 1&4), CVx, Gx, or NULL
OUTPORT A

# Can be x (between 1-16), or NULL -- this is ignored if output port is not MIDI
OUTCHAN 8

# Can be NONE, ALLACTIVE, A, B, USBH, USBD, CVG, or NULL
INPORT NULL

# Can be x (between 1-16), ALL, or NULL. This definition will be ignored if INPORT is NONE, ALLACTIVE or CVG
INCHAN NULL

# DRUMLANES
# Syntax: ROW:TRIG:CHAN:NOTENUMBER NAME
# ROW must be between 1 and 8
# TRIG can be between 0 and 127, or NULL
# CHAN can be a number between 1 and 16, Gx, CVx, CVGx (x between 1 and 4), or NULL
# NOTENUMBER can be between 0 and 127, or NULL
# NAME supports all alphanumeric ASCII, and ' ', '_', '-', '+' - can also be NULL
# Please note this section will be discarded for tracks which are not DRUM tracks
[DRUMLANES]
[/DRUMLANES]


# PC
# Syntax: NUMBER NAME
# number must be either:
#   - A number (for simple PC)
#   - Three numbers, delimited by ':', which represent PC:MSB:LSB. You can put 'NULL' to not set the MSB/LSB.
# PC must be between 1...128
# MSB/LSB must be between 0...127
[PC]
[/PC]


# CC
# Syntax: CC_NUMBER NAME or CC_NUMBER:DEFAULT=xx NAME
# DEFAULT_VALUE must be a valid number between 0 and 127
[CC]
1 MOD-Wheel
7 Volume
5 Portamento
11 Expression
27 Voice-Depth

50 VCO1 Wave
48 VCO1 Octave
34 VCO1 Pitch
36 VCO1 Shape
51 VCO2 Wave
49 VCO1 Octave
35 VCO1 Pitch
37 VCO1 Shape
80 OSC-Sync On/Off
81 Ring On/Off
41 Cross-Mod Depth

53 ME Type
103 ME Sub-Type
54 ME Shape
104 Shift Shape

39 Mix VCO1
40 Mix VCO2
33 Mix ME

43 Filter Cutoff
44 Filter Resonance
84 Filter Drive
85 Filter Keytrack

16 Amp Attack
17 Amp Decay
18 Amp Sustain
19 Amp Release

20 EG Attack
21 EG Decay
22 EG Intesity
23 EG Target

57 LFO Wave
58 LFO Mode
24 LFO Rate
26 LFO Intensity
56 LFO Target

88 Mod Type
96 Mod Sub-Type
28 Mod Time
29 Mod Depth
89 Delay Type
105 Delay Time
112 Delay Depth
107 Delay Dry/Wet
90 Reverb Type
114 Reverb Time
115 Reverb Depth
110 Reverb Dry/Wet
92 Modulation On/Off
94 Delay On/Off
95 Reverb On/Off
[/CC]


# NRPN
# Syntax: "MSB:LSB:DEPTH NAME" or "MSB:LSB:DEPTH:DEFAULT=xx NAME"
# Lsb & msb should be between 0 and 127
# DEPTH can be 7 or 14
# For NRPN: DEFAULT_VALUE must be a valid number, either between 0 and 127 (for 7 bit NRPNs) or between 0 and 16383 (for 14bit NRPNs)
[NRPN]
[/NRPN]


# ASSIGN
# Syntax: POT_NUMBER TYPE:VALUE or POT_NUMBER TYPE:VALUE DEFAULT=DEFAULT_VALUE
# POT_NUMBER must be between 1 and 8
# TYPE can be "CC", "PB" (pitchbend), "AT" (aftertouch), "CV", "NRPN", or "NULL" (this won't assign the pot).
# Non explicitly-defined pots will be considered "NULL"
# VALUE VALIDATION
#### For CC: Value must be a valid number between 0 and 119
#### For PB and AT, any text after the TYPE will be ignored
#### For CV, value must be between 1 and 4
#### For NRPN, value must be MSB:LSB:DEPTH, with both lsb & msb bebtween 0 and 127, and DEPTH being either 7 or 14
# DEFAULT VALUE
#### For CC: DEFAULT_VALUE must be a valid number between 0 and 127
#### For PB: DEFAULT_VALUE must be a valid number between 0 and 16383
#### For NRPN: DEFAULT_VALUE must be a valid number, either between 0 and 127 (for 7 bit NRPNs) or between 0 and 16383 (for 14bit NRPNs)
#### For CV: DEFAULT_VALUE must be either a valid number between 0 and 65535, or a voltage between -5V and 5V, e.g. "-4.25V" or "1.7V"
#### Please note default value will be ignored for PB and AT messages.
[ASSIGN]
[/ASSIGN]


# AUTOMATION
# Syntax: TYPE:VALUE
# TYPE can be "CC", "PB" (pitchbend), "AT" (aftertouch), "CV", or "NRPN"
# VALUE VALIDATION
#### For CC: Value must be a valid number between 0 and 119
#### For PB and AT, any text after the TYPE will be ignored
#### For CV, value must be between 1 and 4
#### For NRPN, value must be MSB:LSB:DEPTH, with both lsb & msb bebtween 0 and 127, and DEPTH being either 7 or 14
[AUTOMATION]
[/AUTOMATION]


# This section will be readable from Hapax.
[COMMENT]
Korg Minilogue XD
[/COMMENT]
4 Likes

Just got a Monologue XD. Time to test this :metal:t2:

I just noticed that the 2.0 Update added a few CCs:

1 Joystick+
2 Joystick-
98 CV IN 1
99 CV IN 2
2 Likes

Thanks!
For CC 1 and 2, that’s actually a pretty important difference. Previously, CC 1 was MOD-Wheel, now it is only the positive mod wheel and CC 2 is the negative mod wheel. That’s a nice upgrade and probably would have been confusing as heck if I had used CC 1 with my (still relatively new to me) Minilogue XD.

But looking into this further, it seems like 98 and 99 and NRPN LSB and NRPN MSB (which is the standard, I think?)

Oh, you’re right. Didn’t catch that. Interpreted it to mean the XD’s two CV Ins would be translated into Midi messages or whatever they were designated to control would also react to those CCs. Will try and test that now.

UPDATE: Can’t seem to make the CV In related CCs do anything. Weird. CC1 + 2 are really useful changes indeed. I also should’ve tried using the CV Ins much sooner.

The NPRN implementation chart from Korg:


 *3 : Non Registered Parameter Number (NRPN) 
+---------+-----------------------------+--------------------------+
| MSB LSB |       Parameter             | Data Entry(MSB) Value    |
| [H] [H] |                             |                          |
+---------+-----------------------------+--------------------------+
| --  01  | PROGRAM NAME 1              | ASCII           *note P1 |
| --  02  | PROGRAM NAME 2              | ASCII           *note P1 |
| --  03  | PROGRAM NAME 3              | ASCII           *note P1 |
| --  04  | PROGRAM NAME 4              | ASCII           *note P1 |
| --  05  | PROGRAM NAME 5              | ASCII           *note P1 |
| --  06  | PROGRAM NAME 6              | ASCII           *note P1 |
| --  07  | PROGRAM NAME 7              | ASCII           *note P1 |
| --  08  | PROGRAM NAME 8              | ASCII           *note P1 |
| --  09  | PROGRAM NAME 9              | ASCII           *note P1 |
| --  0A  | PROGRAM NAME 10             | ASCII           *note P1 |
| --  0B  | PROGRAM NAME 11             | ASCII           *note P1 |
| --  0C  | PROGRAM NAME 12             | ASCII           *note P1 |
|         |                             |                          |
| --  10  | VOICE MODE TYPE             | 0~4                 *3-5 |
| --  11  | MULTI SELECT NOISE          | 0~3             *note P6 |
| --  12  | MULTI SELECT VPM            | 0~15            *note P7 |
| --  13  | MULTI SELECT USER           | 0~15            *note P8 |
| --  14  | MULTI SHAPE NOISE           | 0~1023              *3-1 |
| --  15  | MULTI SHAPE VPM             | 0~1023              *3-1 |
| --  16  | MULTI SHAPE USER            | 0~1023              *3-1 |
| --  17  | MULTI SHIFT SHAPE NOISE     | 0~1023              *3-1 |
| --  18  | MULTI SHIFT SHAPE VPM       | 0~1023              *3-1 |
| --  19  | MULTI SHIFT SHAPE USER      | 0~1023              *3-1 |
|         |                             |                          |
| --  20  | BEND RANGE (+)              | 0~12 = Off,1Note~12Note  |
| --  21  | BEND RANGE (-)              | 0~12 = Off,1Note~12Note  |
| --  22  | JOYSTICK ASSIGN (+)         | 0~28           *note P19 |
| --  23  | JOYSTICK RANGE (+)          | 0~200 = -100%~+100% *3-2 |
| --  24  | JOYSTICK ASSIGN (-)         | 0~28           *note P19 |
| --  25  | JOYSTICK RANGE (-)          | 0~200 = -100%~+100% *3-2 |
| --  28  | CV IN MODE                  | 0~2            *note P20 |
| --  29  | CV IN 1 ASSIGN              | 0~28           *note P19 |
| --  2A  | CV IN 1 RANGE               | 0~200 = -100%~+100% *3-2 |
| --  2B  | CV IN 2 ASSIGN              | 0~28           *note P19 |
| --  2C  | CV IN 2 RANGE               | 0~200 = -100%~+100% *3-2 |
|         |                             |                          |
| --  30  | MICRO TUNING                | 0~127               *3-6 |
| --  31  | SCALE KEY                   | 0~24 = -12Note~+12Note   |
| --  32  | PROGRAM TUNING              | 0~100 = -50Cent~+50Cent  |
| --  34  | LFO KEY SYNC                | 0,1 = Off,On             |
| --  35  | LFO VOICE SYNC              | 0,1 = Off,On             |
| --  36  | LFO TARGET OSC              | 0~3            *note P22 |
| --  38  | EG VELOCITY                 | 0-127                    |
| --  39  | AMP VELOCITY                | 0-127                    |
| --  3A  | MULTI OCTAVE                | 0-3 = 16',8',4',2'       |
| --  3B  | MULTI ROUTING               | 0,1 = Pre VCF, Post VCF  |
| --  3C  | EG LEGATO                   | 0,1 = Off, On            |
| --  3D  | PORTAMENTO MODE             | 0,1 = Auto, On           |
| --  3E  | PORTAMENTO BPM SYNC         | 0,1 = Off, On            |
| --  3F  | PROGRAM LEVEL               | 0~120 = -18dB~+6dB       |
|         |                             |                          |
| --  40  | VPM PARAM 1 (Feedback)      | 0~200 = -100%~+100% *3-2 |
| --  41  | VPM PARAM 2 (Noise Depth)   | 0~200 = -100%~+100% *3-2 |
| --  42  | VPM PARAM 3 (Shape Mod Int) | 0~200 = -100%~+100% *3-2 |
| --  43  | VPM PARAM 4 (Mod Attack)    | 0~200 = -100%~+100% *3-2 |
| --  44  | VPM PARAM 5 (Mod Decay)     | 0~200 = -100%~+100% *3-2 |
| --  45  | VPM PARAM 6 (Mod Key Track) | 0~200 = -100%~+100% *3-2 |
| --  48  | USER PARAM 1                |           *note P23 *3-2 |
| --  49  | USER PARAM 2                |           *note P23 *3-2 |
| --  4A  | USER PARAM 3                |           *note P23 *3-2 |
| --  4B  | USER PARAM 4                |           *note P23 *3-2 |
| --  4C  | USER PARAM 5                |           *note P23 *3-2 |
| --  4D  | USER PARAM 6                |           *note P23 *3-2 |
|         |                             |                          |
| --  50  | Program Transpose            | 1~25 = -12Note~+12Note   |
| --  7F  | MASTER VOLUME               | 0~16383        *3-4 *3-3 |
+---------+-----------------------------+--------------------------+

 *3-1 : When a 10 bit value is received the lower 3 bits are first expected via
        a CC #63(0x3f) message (or assumed 0), then the upper 7 bits are expected
        via a CC #6(0x6) message.
 *3-2 : When an 8 bit value is received the lower 3 bits are first expected via
        a CC #63(0x3f) message (or assumed 0), then the upper 5 bits are expected
        via a CC #6(0x6) message.
 *3-3 : When a 14 bit value is received the lower 7 bits are first expected via
        a CC #63(0x3f) message (or assumed 0), then the upper 7 bits are expected
        via a CC #6(0x6) message.
 *3-4 : Only sent when PolyChain=Master, and not sent via USB MIDI.

 *3-5 (VOICE MODE)
    0 : ARP LATCH
    1 : ARP
    2 : CHORD
    3 : UNISON
    4 : POLY

 *3-6 (MICRO TUNING)
    0 : Equal Temp
    1 : Pure Major
    2 : Pure Minor
    3 : Pythagorean
    4 : Werckmeister
    5 : Kirnburger
    6 : Slendro
    7 : Pelog
    8 : Ionian
    9 : Dorian
   10 : Aeolian
   11 : Major Penta
   12 : Minor Penta
   13 : Reverse
   14 : AFX001
   15 : AFX002
   16 : AFX003
   17 : AFX004
   18 : AFX005
   19 : AFX006
   20 : DC001
   21 : DC002
   22 : DC003
  112 : USER SCALE 1
  113 : USER SCALE 2
  114 : USER SCALE 3
  115 : USER SCALE 4
  116 : USER SCALE 5
  117 : USER SCALE 6
  118 : USER OCTAVE 1
  119 : USER OCTAVE 2
  120 : USER OCTAVE 3
  121 : USER OCTAVE 4
  122 : USER OCTAVE 5
  123 : USER OCTAVE 6

1 Like

I’ve added the NRPN parameters from the list above. Here’s my full definition including a bunch of preset templates for quick access.

VERSION 1
TRACKNAME Minilogue XD
TYPE POLY
OUTPORT NULL
OUTCHAN NULL
INPORT ALLACTIVE
INCHAN NULL

# PC
# Syntax: NUMBER NAME
# number must be either:
#   - A number (for simple PC)
#   - Three numbers, delimited by ':', which represent PC:MSB:LSB. You can put 'NULL' to not set the MSB/LSB.
# PC must be between 1...128
# MSB/LSB must be between 0...127
[PC]
1:0:0 Patch 001
1:0:1 Patch 101
1:0:2 Patch 201
1:0:3 Patch 301
1:0:4 Patch 401
51:0:3 T BASIC SAW
52:0:3 T BASIC TRI
53:0:3 T BASIC SQR
54:0:3 T BASIC SIN
55:0:3 T LAYER OCT
56:0:3 T LAYER 5TH
57:0:3 T 3SAW POLY
58:0:3 T 4SAW DUO
59:0:3 T 8SAW MODO
60:0:3 T SYNC VCO2
61:0:3 T RING VCO2
62:0:3 T XMOD VCO2
63:0:3 T RESO VELO
64:0:3 T SHORT TOM
65:0:3 T SWEEPING
66:0:3 T EG+1SHOT
67:0:3 T PWM
68:0:3 T VPM MOD
69:0:3 T TRILL LFO
70:0:3 T PUMP SAW
71:0:3 T CHORD HIT
72:0:3 T RAND ARP
73:0:3 T REPEATER
74:0:3 T PINGPONG
75:0:3 T DOWNPOUR
76:0:3 T 100 WET
77:0:3 T DOUBLING
78:0:3 T PARROTED
79:0:3 T PUMP NOIS
80:0:3 T DOWNSAMPL
81:0:3 T THRU VCF
82:0:3 T 2 SINES
83:0:3 T REVERSED
84:0:3 T LONG SEQ
85:0:3 T STRINGS
86:0:3 T BRASS
87:0:3 T ORGAN
88:0:3 T WAH CLAV
89:0:3 T A EPIANO
90:0:3 T D EPIANO
91:0:3 T A BELL
92:0:3 T D BELL
93:0:3 T SUB BASS
94:0:3 T LOFI SINE
95:0:3 T MONO DRV
96:0:3 T ROAR VPM
97:0:3 T TALKIE
98:0:3 T KICK
99:0:3 T SNARE
100:0:3 T HATS
[/PC]

# CC
# Syntax: CC_NUMBER NAME or CC_NUMBER:DEFAULT=xx NAME
# DEFAULT_VALUE must be a valid number between 0 and 127
[CC]
1 Joystick+
2 Joystick-
7 Volume
5 Portamento
11 Expression
27 Voice-Depth
64 Sustain

50 VCO1 Wave
48 VCO1 Octave
34 VCO1 Pitch
36 VCO1 Shape
51 VCO2 Wave
49 VCO1 Octave
35 VCO1 Pitch
37 VCO1 Shape
80 OSC-Sync On/Off
81 Ring On/Off
41 XMod Depth

53 ME Type
103 ME Sub-Type
54 ME Shape
104 Shift Shape

39 MIX VCO1
40 MIX VCO2
33 MIX ME

43 VCF Cutoff
44 VCF Resonance
84 VCF Drive
85 VCF Keytrack

16 AMP Attack
17 AMP Decay
18 AMP Sustain
19 AMP Release

20 EG Attack
21 EG Decay
22 EG Intesity
23 EG Target

57 LFO Wave
58 LFO Mode
24 LFO Rate
26 LFO Intensity
56 LFO Target

88 MOD Type
96 MOD Sub-Type
28 MOD Time
29 MOD Depth
89 DLY Type
105 DLY Time
112 DLY Depth
107 DLY Dry/Wet
90 RVB Type
114 RVB Time
115 RVB Depth
110 RVB Dry/Wet
92 MOD On/Off
94 DLY On/Off
95 RVB On/Off
98 CV IN 1
99 CV IN 2
[/CC]

# NRPN
# Syntax: "MSB:LSB:DEPTH NAME" or "MSB:LSB:DEPTH:DEFAULT=xx NAME"
# Lsb & msb should be between 0 and 127
# DEPTH can be 7 or 14
# For NRPN: DEFAULT_VALUE must be a valid number, either between 0 and 127 (for 7 bit NRPNs) or between 0 and 16383 (for 14bit NRPNs)
[NRPN]
:16:7 Voice Mode Type
:17:7 MSEL Noise
:18:7 MSEL VPM
:19:7 MSEL USR
:20:14 MSHP Noise
:21:14 MSHP VPM
:22:14 MSHP USR
:23:14 MSHFT Noise
:24:14 MSHFT VPM
:25:14 MSHFT USR
:32:7 BEND RANGE+
:33:7 BEND RANGE-
:34:7 JSTK+ ASSGN
:35:14 JSTK+ RANGE
:36:7 JSTK- ASSGN
:37:14 JSTK- RANGE
:38:7 CV IN MODE
:39:7 CV1 ASSGN
:40:7 CV1 RANGE
:41:7 CV2 ASSGN
:42:7 CV2 RANGE
:48:7 MICRO TUNING
:49:7 SCALE KEY
:50:7 PRGM TUNING
:52:7 LFO KEY SYNC
:53:7 LFO VOICE SYNC
:54:7 LFO TARGET OSC
:56:7 EG VELOCITY
:57:7 AMP VELOCITY
:58:7 MULTI OCT
:59:7 MULTI ROUTE
:60:7 EG LEGATO
:61:7 PORTA MODE
:62:7 PORTA BPM SYNC
:63:7 PRGM LVL
:64:14 VPM PAR 1
:65:14 VPM PAR 2
:66:14 VPM PAR 3
:67:14 VPM PAR 4
:68:14 VPM PAR 5
:69:14 VPM PAR 6
:72:14 USR PAR 1
:73:14 USR PAR 2
:74:14 USR PAR 3
:75:14 USR PAR 4
:76:14 USR PAR 5
:77:14 USR PAR 6
:80:7 PRGM TRANSPOSE
:127:14 MASTER VOL
[/NRPN]

# ASSIGN
# Syntax: POT_NUMBER TYPE:VALUE or POT_NUMBER TYPE:VALUE DEFAULT=DEFAULT_VALUE
# POT_NUMBER must be between 1 and 8
# TYPE can be "CC", "PB" (pitchbend), "AT" (aftertouch), "CV", "NRPN", or "NULL" (this won't assign the pot).
# Non explicitly-defined pots will be considered "NULL"
# VALUE VALIDATION
#### For CC: Value must be a valid number between 0 and 119
#### For PB and AT, any text after the TYPE will be ignored
#### For CV, value must be between 1 and 4
#### For NRPN, value must be MSB:LSB:DEPTH, with both lsb & msb bebtween 0 and 127, and DEPTH being either 7 or 14
# DEFAULT VALUE
#### For CC: DEFAULT_VALUE must be a valid number between 0 and 127
#### For PB: DEFAULT_VALUE must be a valid number between 0 and 16383
#### For NRPN: DEFAULT_VALUE must be a valid number, either between 0 and 127 (for 7 bit NRPNs) or between 0 and 16383 (for 14bit NRPNs)
#### For CV: DEFAULT_VALUE must be either a valid number between 0 and 65535, or a voltage between -5V and 5V, e.g. "-4.25V" or "1.7V"
#### Please note default value will be ignored for PB and AT messages.
[ASSIGN]
[/ASSIGN]

# AUTOMATION
# Syntax: TYPE:VALUE
# TYPE can be "CC", "PB" (pitchbend), "AT" (aftertouch), "CV", or "NRPN"
# VALUE VALIDATION
#### For CC: Value must be a valid number between 0 and 119
#### For PB and AT, any text after the TYPE will be ignored
#### For CV, value must be between 1 and 4
#### For NRPN, value must be MSB:LSB:DEPTH, with both lsb & msb bebtween 0 and 127, and DEPTH being either 7 or 14
[AUTOMATION]
[/AUTOMATION]

[COMMENT]
Korg Minilogue XD
[/COMMENT]
1 Like

:pray: Thank you @polynil! I just picked up an XD yesterday and I love it! I’ll try this out and iterate on it if I see anything else that can be added from the spec sheet.