{
 "id": "novation-launchkey-25-mk4",
 "short": "lk25mk4",
 "name": "Novation Launchkey 25 MK4",
 "maker": "Novation",
 "kind": "device",
 "channel": 1,
 "match": {
  "ports": [
   "launchkey\\s*(?:mk\\s*4\\s*)?25(?!\\d)(?!\\s*mk\\s*(?:i{1,3}|[123])\\b)"
  ],
  "prefer": [
   "\\bmidi\\b(?!\\s*2)",
   "midi\\s*1"
  ],
  "avoid": [
   "daw",
   "midiin2",
   "midi\\s*2",
   "\\bin\\s*2\\b",
   "port\\s*2"
  ]
 },
 "sources": [
  {
   "title": "Launchkey MK4 Programmer's Reference Guide v2.0 (Novation)",
   "url": "https://fael-downloads-prod.focusrite.com/customer/prod/downloads/launchkey_mk4_programmer_s_reference_guide_v2_en.pdf",
   "note": "two USB MIDI interfaces: \"MIDI In / Out\" carries performance (keys, wheels, pad and encoder Custom Modes), \"DAW In / Out\" is for DAWs; the device powers up in Standalone (MIDI) mode and a DIN output repeats the MIDI-port data; Drum mode pads: channel 10, bottom row 36 37 38 39 44 45 46 47, top row 40 41 42 43 48 49 50 51 (figure on p. 12; the pads report poly aftertouch on channel 10 when selected); in DAW mode the encoders send CC 21–28 (absolute: Plugin, Mixer, Sends) or CC 85–92 (relative: Transport) on channel 16 over the DAW port; note-off = note-on velocity 0; middle C = C3 = note 60; the Launchkey 25/37 have no faders (fader mode is 49/61 only)"
  },
  {
   "title": "Launchkey 25 User Guide v3.0 (Novation)",
   "url": "https://fael-downloads-prod.focusrite.com/customer/prod/downloads/launchkey_mk4_25_user_guide_v3_en.pdf",
   "note": "hardware: two wheels (pitch, modulation), 8 encoders, 16 velocity-sensitive pads with polyphonic aftertouch, 25 synth-action keys, sustain jack, 5-pin DIN MIDI out, no faders; keyboard powers on at C2–C4 with C3 = middle C (so C2–C4 (notes 48–72)); Settings defaults: Keys Channel 1, Chords Channel 3, Drums Channel 10, Pad Aftertouch Polyphonic, Power On Modes Encoder Custom 1 / Pad Drum; Drum mode: pads C1 to D♯2 (bottom left to top right) on channel 10; four encoder and four pad Custom Modes, edited in Novation Components (no default CC numbers printed); macOS DAW ports \"Launchkey 25 DAW In\" / \"Launchkey 25 DAW Out\", Windows \"MIDIIN2 (Launchkey 25 MIDI)\"; weight and size 461 × 251 mm"
  },
  {
   "title": "Launchkey MK4 Components Guide (Novation support)",
   "url": "https://support.novationmusic.com/hc/en-gb/articles/20229018847506-Launchkey-MK4-Components-Guide",
   "note": "Mod Wheel/Strip tab: default message CC 1 (editable); Pedal tab: sustain pedal default CC 64 (editable); encoders send CC or NRPN, absolute or relative, channel 1–16 or Global, set per encoder"
  },
  {
   "title": "Using Launchkey MK4 in Ableton Live (Novation support)",
   "url": "https://support.novationmusic.com/hc/en-gb/articles/20212269909522-Using-Launchkey-MK4-in-Ableton-Live",
   "note": "Windows: the DAW ports appear as \"(Port 2)\" or \"MIDIIN2 (LKMK4 MIDI)\" / \"MIDIOUT2 (LKMK4 MIDI)\" (no key count in that name, so it cannot be told from the other MK4 sizes and is left unmatched); on the other ports the article writes \"Launchkey MK4 61 MIDI\" and \"Launchkey MK4 61 DAW (or similar)\" — i.e. \"Launchkey MK4 <keys> MIDI|DAW\""
  },
  {
   "title": "zynthian-ui zynthian_ctrldev_launchkey_mk4_37.py (non-official)",
   "url": "https://github.com/zynthian/zynthian-ui/blob/oram/zyngine/ctrldev/zynthian_ctrldev_launchkey_mk4_37.py",
   "note": "Linux port names of the Launchkey 37 MK4: \"Launchkey MK4 37 DAW In\" and \"Launchkey MK4 37 IN 2\" (the second interface); the first interface is the MIDI port"
  },
  {
   "title": "Ardour surfaces/launchkey_4/launchkey_4.cc (non-official)",
   "url": "https://github.com/Ardour/ardour/blob/master/libs/surfaces/launchkey_4/launchkey_4.cc",
   "note": "finds the DAW port of the regular model with the regex \"Launchkey MK4.*(DAW|MIDI 2|DA$)\" and of the Mini with \"Launchkey Mini MK4.*(DAW|MIDI 2|DA$)\": the Mini MK4 is named \"Launchkey Mini MK4 …\", which this profile does not match"
  }
 ],
 "notes": "Standalone, MIDI port (the device powers up in Standalone mode; no DAW needed). Keys C2–C4 (notes 48–72), channel 1 (Keys Channel setting; octave and transpose buttons shift the range, the faceplate follows any note on the channel). Pads in the default Drum mode: notes 36–51 on channel 10 with poly aftertouch (factory Pad Aftertouch = Polyphonic), 2 × 8 as in the Programmer's Reference (bottom-left 36 … top-right 51). Pitch wheel = pitch bend, mod wheel = CC 1 and sustain pedal = CC 64 are Novation's defaults (Components Guide); the channel they use is not printed (Keys Channel 1 assumed). The 25 MK4 has no faders or fader buttons (49/61 only) and the wheels are real wheels (the Mini MK4 has touch strips; it is a different profile family and not matched). Encoders: power-on mode is Custom 1 but Novation prints no default numbers — CC 21–28 on channel 1 is a placeholder, marked unverified (學習 rebinds, or set them in Novation Components). DAW mode (Plugin / Mixer / Sends / Transport encoders, DAW pad layout, track and transport buttons, screen and LED control) needs a DAW and talks on the DAW port, channels 1, 7 and 16 — not modelled. In Standalone the DAW-control buttons send CC on channel 16 (Programmer's Reference, Figure 1) but the printed figures do not show a Launchkey 25 map: Shift, Octave, Transpose, Settings, Scale, Chord Map, Arp, Fixed Chord, Track, workflow and transport buttons are drawn, not mapped; chord, scale and arp output follows the Chords Channel (default 3) and is not modelled. Port names: macOS \"Launchkey MK4 25 MIDI\" / \"… DAW\" (per the Novation Ableton article's \"Launchkey MK4 61 MIDI/DAW\" pattern and the Linux names above — not seen on a Mac for this model); Windows names the first interface \"Launchkey 25 MIDI\" and the DAW one \"MIDIIN2 (LKMK4 MIDI)\". The profile matches \"Launchkey 25\" with or without \"MK4\" in either order, and neither the Launchkey Mini 25/37 (MK3 or MK4), the other MK4 sizes, nor MK3 ports. No LED feedback. Faceplate proportions come from the published size; unconfirmed on hardware.",
 "face": {
  "w": 100,
  "h": 54.27,
  "label": "Launchkey 25 MK4",
  "body": "#141416",
  "deco": [
   {
    "type": "buttons",
    "x": 3.52,
    "y": 16.08,
    "w": 13.07,
    "h": 3.02,
    "items": [
     "Oct −",
     "Oct +"
    ]
   },
   {
    "type": "screen",
    "x": 20.6,
    "y": 2.01,
    "w": 14.07,
    "h": 5.03,
    "text": "LK 25"
   },
   {
    "type": "buttons",
    "x": 20.6,
    "y": 8.04,
    "w": 14.07,
    "h": 3.02,
    "items": [
     "Shift",
     "Settings"
    ]
   },
   {
    "type": "buttons",
    "x": 20.6,
    "y": 12.06,
    "w": 14.07,
    "h": 2.76,
    "items": [
     "‹ Track",
     "Track ›"
    ]
   },
   {
    "type": "buttons",
    "x": 20.6,
    "y": 15.58,
    "w": 14.07,
    "h": 2.76,
    "items": [
     "Scale",
     "Chord Map"
    ]
   },
   {
    "type": "buttons",
    "x": 20.6,
    "y": 19.1,
    "w": 14.07,
    "h": 2.76,
    "items": [
     "Arp",
     "Fixed"
    ]
   },
   {
    "type": "buttons",
    "x": 79.15,
    "y": 2.26,
    "w": 4.52,
    "h": 5.03,
    "items": [
     "⌃",
     "⌄"
    ]
   },
   {
    "type": "buttons",
    "x": 79.15,
    "y": 8.54,
    "w": 4.52,
    "h": 5.03,
    "items": [
     "›"
    ]
   },
   {
    "type": "buttons",
    "x": 79.15,
    "y": 14.07,
    "w": 4.52,
    "h": 5.03,
    "items": [
     "Func"
    ]
   },
   {
    "type": "buttons",
    "x": 84.42,
    "y": 2.51,
    "w": 13.57,
    "h": 3.02,
    "items": [
     "Capture",
     "Undo"
    ]
   },
   {
    "type": "buttons",
    "x": 84.42,
    "y": 6.03,
    "w": 13.57,
    "h": 3.02,
    "items": [
     "Quant",
     "Metro"
    ]
   },
   {
    "type": "buttons",
    "x": 84.42,
    "y": 12.56,
    "w": 13.57,
    "h": 3.52,
    "items": [
     "■",
     "Loop"
    ]
   },
   {
    "type": "buttons",
    "x": 84.42,
    "y": 16.58,
    "w": 13.57,
    "h": 3.52,
    "items": [
     "▶",
     "●"
    ]
   }
  ]
 },
 "sections": [
  {
   "id": "wheels",
   "label": "",
   "x": 3.52,
   "y": 25.13,
   "w": 14.07,
   "h": 25.13,
   "cols": 2,
   "rows": 1,
   "controls": [
    "pitch",
    "mod"
   ]
  },
  {
   "id": "pedal",
   "label": "",
   "x": 3.52,
   "y": 20.6,
   "w": 13.07,
   "h": 4.02,
   "cols": 1,
   "rows": 1,
   "controls": [
    "sustain"
   ]
  },
  {
   "id": "knobs",
   "label": "",
   "x": 36.18,
   "y": 2.01,
   "w": 42.21,
   "h": 5.53,
   "cols": 8,
   "rows": 1,
   "controls": [
    "k1",
    "k2",
    "k3",
    "k4",
    "k5",
    "k6",
    "k7",
    "k8"
   ]
  },
  {
   "id": "pads",
   "label": "",
   "x": 36.18,
   "y": 8.54,
   "w": 42.21,
   "h": 10.55,
   "cols": 8,
   "rows": 2,
   "controls": [
    "pad9",
    "pad10",
    "pad11",
    "pad12",
    "pad13",
    "pad14",
    "pad15",
    "pad16",
    "pad1",
    "pad2",
    "pad3",
    "pad4",
    "pad5",
    "pad6",
    "pad7",
    "pad8"
   ]
  },
  {
   "id": "keys",
   "label": "",
   "x": 20.1,
   "y": 23.62,
   "w": 75.38,
   "h": 28.64,
   "cols": 1,
   "rows": 1,
   "controls": [
    "keys"
   ]
  }
 ],
 "portrait": [
  {
   "id": "knobs",
   "cols": 4,
   "rows": 2,
   "weight": 2,
   "controls": [
    "k1",
    "k2",
    "k3",
    "k4",
    "k5",
    "k6",
    "k7",
    "k8"
   ]
  },
  {
   "id": "pads",
   "cols": 4,
   "rows": 4,
   "weight": 3,
   "controls": [
    "pad9",
    "pad10",
    "pad11",
    "pad12",
    "pad13",
    "pad14",
    "pad15",
    "pad16",
    "pad1",
    "pad2",
    "pad3",
    "pad4",
    "pad5",
    "pad6",
    "pad7",
    "pad8"
   ]
  },
  {
   "id": "wheels",
   "cols": 3,
   "rows": 1,
   "weight": 1.3,
   "controls": [
    "pitch",
    "mod",
    "sustain"
   ]
  },
  {
   "id": "keys",
   "cols": 1,
   "rows": 1,
   "weight": 3,
   "controls": [
    "keys"
   ]
  }
 ],
 "controls": [
  {
   "id": "pitch",
   "type": "wheel",
   "label": "Pitch",
   "msg": "pitchbend",
   "group": "strip",
   "color": "white",
   "note": "Pitch wheel: Novation says it sends pitch bend messages; the channel is not printed — it follows the Keys Channel (default 1), assumed."
  },
  {
   "id": "mod",
   "type": "wheel",
   "label": "Mod",
   "msg": "cc",
   "cc": 1,
   "group": "strip",
   "color": "white",
   "note": "Default CC 1 per the Launchkey MK4 Components Guide (Mod Wheel/Strip tab: \"default is CC 1\"; editable in Components). Its MIDI channel is not printed — the Keys Channel (default 1) is assumed."
  },
  {
   "id": "k1",
   "type": "knob",
   "label": "1",
   "msg": "cc",
   "cc": 21,
   "group": "knob",
   "color": "cyan",
   "verified": false,
   "note": "The power-on Encoder mode is Custom 1 (Settings → Power On Modes), but Novation prints no default CC for it — the values are set in Components. CC 21–28 on channel 1 is a placeholder: CC 21–28 are the encoders' DAW-mode numbers (channel 16) in the Programmer's Reference. Check the number and channel in Components, or use 學習. Absolute vs relative is also a Components option (relative not assumed)."
  },
  {
   "id": "k2",
   "type": "knob",
   "label": "2",
   "msg": "cc",
   "cc": 22,
   "group": "knob",
   "color": "cyan",
   "verified": false,
   "note": "The power-on Encoder mode is Custom 1 (Settings → Power On Modes), but Novation prints no default CC for it — the values are set in Components. CC 21–28 on channel 1 is a placeholder: CC 21–28 are the encoders' DAW-mode numbers (channel 16) in the Programmer's Reference. Check the number and channel in Components, or use 學習. Absolute vs relative is also a Components option (relative not assumed)."
  },
  {
   "id": "k3",
   "type": "knob",
   "label": "3",
   "msg": "cc",
   "cc": 23,
   "group": "knob",
   "color": "cyan",
   "verified": false,
   "note": "The power-on Encoder mode is Custom 1 (Settings → Power On Modes), but Novation prints no default CC for it — the values are set in Components. CC 21–28 on channel 1 is a placeholder: CC 21–28 are the encoders' DAW-mode numbers (channel 16) in the Programmer's Reference. Check the number and channel in Components, or use 學習. Absolute vs relative is also a Components option (relative not assumed)."
  },
  {
   "id": "k4",
   "type": "knob",
   "label": "4",
   "msg": "cc",
   "cc": 24,
   "group": "knob",
   "color": "cyan",
   "verified": false,
   "note": "The power-on Encoder mode is Custom 1 (Settings → Power On Modes), but Novation prints no default CC for it — the values are set in Components. CC 21–28 on channel 1 is a placeholder: CC 21–28 are the encoders' DAW-mode numbers (channel 16) in the Programmer's Reference. Check the number and channel in Components, or use 學習. Absolute vs relative is also a Components option (relative not assumed)."
  },
  {
   "id": "k5",
   "type": "knob",
   "label": "5",
   "msg": "cc",
   "cc": 25,
   "group": "knob",
   "color": "cyan",
   "verified": false,
   "note": "The power-on Encoder mode is Custom 1 (Settings → Power On Modes), but Novation prints no default CC for it — the values are set in Components. CC 21–28 on channel 1 is a placeholder: CC 21–28 are the encoders' DAW-mode numbers (channel 16) in the Programmer's Reference. Check the number and channel in Components, or use 學習. Absolute vs relative is also a Components option (relative not assumed)."
  },
  {
   "id": "k6",
   "type": "knob",
   "label": "6",
   "msg": "cc",
   "cc": 26,
   "group": "knob",
   "color": "cyan",
   "verified": false,
   "note": "The power-on Encoder mode is Custom 1 (Settings → Power On Modes), but Novation prints no default CC for it — the values are set in Components. CC 21–28 on channel 1 is a placeholder: CC 21–28 are the encoders' DAW-mode numbers (channel 16) in the Programmer's Reference. Check the number and channel in Components, or use 學習. Absolute vs relative is also a Components option (relative not assumed)."
  },
  {
   "id": "k7",
   "type": "knob",
   "label": "7",
   "msg": "cc",
   "cc": 27,
   "group": "knob",
   "color": "cyan",
   "verified": false,
   "note": "The power-on Encoder mode is Custom 1 (Settings → Power On Modes), but Novation prints no default CC for it — the values are set in Components. CC 21–28 on channel 1 is a placeholder: CC 21–28 are the encoders' DAW-mode numbers (channel 16) in the Programmer's Reference. Check the number and channel in Components, or use 學習. Absolute vs relative is also a Components option (relative not assumed)."
  },
  {
   "id": "k8",
   "type": "knob",
   "label": "8",
   "msg": "cc",
   "cc": 28,
   "group": "knob",
   "color": "cyan",
   "verified": false,
   "note": "The power-on Encoder mode is Custom 1 (Settings → Power On Modes), but Novation prints no default CC for it — the values are set in Components. CC 21–28 on channel 1 is a placeholder: CC 21–28 are the encoders' DAW-mode numbers (channel 16) in the Programmer's Reference. Check the number and channel in Components, or use 學習. Absolute vs relative is also a Components option (relative not assumed)."
  },
  {
   "id": "pad1",
   "type": "pad",
   "label": "",
   "msg": "note",
   "ch": 10,
   "note": 36,
   "aftertouch": "poly",
   "group": "pad",
   "color": "lime"
  },
  {
   "id": "pad2",
   "type": "pad",
   "label": "",
   "msg": "note",
   "ch": 10,
   "note": 37,
   "aftertouch": "poly",
   "group": "pad",
   "color": "lime"
  },
  {
   "id": "pad3",
   "type": "pad",
   "label": "",
   "msg": "note",
   "ch": 10,
   "note": 38,
   "aftertouch": "poly",
   "group": "pad",
   "color": "lime"
  },
  {
   "id": "pad4",
   "type": "pad",
   "label": "",
   "msg": "note",
   "ch": 10,
   "note": 39,
   "aftertouch": "poly",
   "group": "pad",
   "color": "lime"
  },
  {
   "id": "pad5",
   "type": "pad",
   "label": "",
   "msg": "note",
   "ch": 10,
   "note": 44,
   "aftertouch": "poly",
   "group": "pad",
   "color": "lime"
  },
  {
   "id": "pad6",
   "type": "pad",
   "label": "",
   "msg": "note",
   "ch": 10,
   "note": 45,
   "aftertouch": "poly",
   "group": "pad",
   "color": "lime"
  },
  {
   "id": "pad7",
   "type": "pad",
   "label": "",
   "msg": "note",
   "ch": 10,
   "note": 46,
   "aftertouch": "poly",
   "group": "pad",
   "color": "lime"
  },
  {
   "id": "pad8",
   "type": "pad",
   "label": "",
   "msg": "note",
   "ch": 10,
   "note": 47,
   "aftertouch": "poly",
   "group": "pad",
   "color": "lime"
  },
  {
   "id": "pad9",
   "type": "pad",
   "label": "",
   "msg": "note",
   "ch": 10,
   "note": 40,
   "aftertouch": "poly",
   "group": "pad",
   "color": "lime"
  },
  {
   "id": "pad10",
   "type": "pad",
   "label": "",
   "msg": "note",
   "ch": 10,
   "note": 41,
   "aftertouch": "poly",
   "group": "pad",
   "color": "lime"
  },
  {
   "id": "pad11",
   "type": "pad",
   "label": "",
   "msg": "note",
   "ch": 10,
   "note": 42,
   "aftertouch": "poly",
   "group": "pad",
   "color": "lime"
  },
  {
   "id": "pad12",
   "type": "pad",
   "label": "",
   "msg": "note",
   "ch": 10,
   "note": 43,
   "aftertouch": "poly",
   "group": "pad",
   "color": "lime"
  },
  {
   "id": "pad13",
   "type": "pad",
   "label": "",
   "msg": "note",
   "ch": 10,
   "note": 48,
   "aftertouch": "poly",
   "group": "pad",
   "color": "lime"
  },
  {
   "id": "pad14",
   "type": "pad",
   "label": "",
   "msg": "note",
   "ch": 10,
   "note": 49,
   "aftertouch": "poly",
   "group": "pad",
   "color": "lime"
  },
  {
   "id": "pad15",
   "type": "pad",
   "label": "",
   "msg": "note",
   "ch": 10,
   "note": 50,
   "aftertouch": "poly",
   "group": "pad",
   "color": "lime"
  },
  {
   "id": "pad16",
   "type": "pad",
   "label": "",
   "msg": "note",
   "ch": 10,
   "note": 51,
   "aftertouch": "poly",
   "group": "pad",
   "color": "lime"
  },
  {
   "id": "sustain",
   "type": "button",
   "label": "Sustain",
   "msg": "cc",
   "cc": 64,
   "group": "button",
   "color": "white",
   "note": "Sustain pedal jack: default CC 64 per the Launchkey MK4 Components Guide (Pedal tab: \"default is CC 64\"; editable). Channel is not printed — the Keys Channel (default 1) is assumed."
  },
  {
   "id": "keys",
   "type": "keys",
   "label": "Keys",
   "msg": "note",
   "from": 48,
   "to": 72,
   "group": "note"
  }
 ]
}
