{
 "id": "novation-launchpad-pro-mk3",
 "short": "lppro3",
 "name": "Novation Launchpad Pro MK3",
 "maker": "Novation",
 "kind": "device",
 "channel": 1,
 "match": {
  "ports": [
   "lppromk3",
   "launchpad\\s*pro\\s*(\\[?mk\\s*3\\]?|3\\b)"
  ],
  "prefer": [
   "midi"
  ],
  "avoid": [
   "daw",
   "\\bdin\\b",
   "midiin[23]",
   "midiout[23]"
  ]
 },
 "sources": [
  {
   "title": "Launchpad Pro [MK3] Programmer's reference manual (Novation)",
   "url": "https://fael-downloads-prod.focusrite.com/customer/prod/s3fs-public/downloads/LPP3_prog_ref_guide_200415.pdf",
   "note": "official. 'Programmer mode layout' diagram (p.19): 8×8 pads = notes 11–88, 11 bottom-left, +1 to the right, +10 per row up; top row CC 91–98 (CC 90 top-left, CC 99 the logo); left column CC 80, 70 … 10 (top to bottom); right column CC 89, 79 … 19; the row under the grid CC 101–108, the row under that CC 1–8; 'all buttons and pads accept either Note or Control Change messages. The indicated type is which is sent by the device'. LEDs: note-on or CC on ch 1 = static, ch 2 = flashing, ch 3 = pulsing, velocity / value = palette index (0 off, 3 white, 5 red, 13 yellow, 21 green, 37 turquoise, 45 blue); Live/Programmer toggle F0 00 20 29 02 0E 0E <0|1> F7; three ports LPProMK3 MIDI / DIN / DAW"
  },
  {
   "title": "Launchpad Pro [MK3] User Guide v1 (Novation)",
   "url": "https://fael-downloads-prod.focusrite.com/customer/prod/s3fs-public/downloads/Launchpad%20Pro%20User%20Guide.pdf",
   "note": "official. §3 Hardware Overview (what is printed on each button: the top row ◀ ▶ Session Note Chord Custom Sequencer Projects, the left column ▲ ▼ Clear Duplicate Quantise Fixed Length Play Record, the right column Patterns … Print to Clip, the Ableton track controls Record Arm … Stop Clip); §10.4 pressure mode off / polyphonic / channel; §10.7 Programmer mode: hold Setup, press the orange Scene Launch button, release Setup; the unit always powers on into Live mode"
  }
 ],
 "notes": "Models Programmer mode, the one layout in which every pad and button has a documented message. Live mode (what the unit boots into) is different: Note, Chord, Custom and Session modes each send their own notes. Enter Programmer mode from the unit (hold Setup, press the orange Scene Launch button, release Setup) or with the SysEx F0 00 20 29 02 0E 0E 01 F7 (stays off by default: the element sends no SysEx). Use the first port, \"LPProMK3 MIDI\" (macOS), not DIN or DAW. The manual gives a channel only for lighting (ch 1 static, 2 flashing, 3 pulsing); channel 1 for what the pads and buttons send is an assumption (the worked examples are all channel 1), not a line of the manual: unconfirmed. Pads send velocity; their pressure (off, polyphonic or channel aftertouch) is a unit setting and is not modelled. The labels on the buttons are what the Live-mode faceplate prints; in Programmer mode they are only positions. CC 99 lights the logo and the Setup button sends nothing: both are drawn only. LED feedback: pads light turquoise (palette 37) while played, buttons white (palette 3).",
 "face": {
  "w": 100,
  "h": 98,
  "label": "Launchpad Pro",
  "body": "#101012",
  "deco": [
   {
    "type": "logo",
    "x": 86.7,
    "y": 4.7,
    "w": 8,
    "h": 8
   },
   {
    "type": "buttons",
    "x": 5.6,
    "y": 86.4,
    "w": 6.2,
    "h": 5,
    "items": [
     "Setup"
    ]
   }
  ]
 },
 "sections": [
  {
   "id": "shift",
   "label": "",
   "x": 5.6,
   "y": 4.7,
   "w": 8,
   "h": 8,
   "cols": 1,
   "rows": 1,
   "controls": [
    "shift"
   ]
  },
  {
   "id": "nav",
   "label": "",
   "x": 14.6,
   "y": 4.7,
   "w": 71.2,
   "h": 8,
   "cols": 8,
   "rows": 1,
   "controls": [
    "prev",
    "next",
    "session",
    "notemode",
    "chord",
    "custom",
    "seq",
    "projects"
   ]
  },
  {
   "id": "left",
   "label": "",
   "x": 5.6,
   "y": 13.9,
   "w": 8,
   "h": 71,
   "cols": 1,
   "rows": 8,
   "controls": [
    "up",
    "down",
    "clear",
    "dup",
    "quant",
    "fixed",
    "play",
    "rec"
   ]
  },
  {
   "id": "grid",
   "label": "",
   "x": 14.6,
   "y": 13.9,
   "w": 71.2,
   "h": 71,
   "cols": 8,
   "rows": 8,
   "controls": [
    "pad57",
    "pad58",
    "pad59",
    "pad60",
    "pad61",
    "pad62",
    "pad63",
    "pad64",
    "pad49",
    "pad50",
    "pad51",
    "pad52",
    "pad53",
    "pad54",
    "pad55",
    "pad56",
    "pad41",
    "pad42",
    "pad43",
    "pad44",
    "pad45",
    "pad46",
    "pad47",
    "pad48",
    "pad33",
    "pad34",
    "pad35",
    "pad36",
    "pad37",
    "pad38",
    "pad39",
    "pad40",
    "pad25",
    "pad26",
    "pad27",
    "pad28",
    "pad29",
    "pad30",
    "pad31",
    "pad32",
    "pad17",
    "pad18",
    "pad19",
    "pad20",
    "pad21",
    "pad22",
    "pad23",
    "pad24",
    "pad9",
    "pad10",
    "pad11",
    "pad12",
    "pad13",
    "pad14",
    "pad15",
    "pad16",
    "pad1",
    "pad2",
    "pad3",
    "pad4",
    "pad5",
    "pad6",
    "pad7",
    "pad8"
   ]
  },
  {
   "id": "right",
   "label": "",
   "x": 86.7,
   "y": 13.9,
   "w": 8,
   "h": 71,
   "cols": 1,
   "rows": 8,
   "controls": [
    "patterns",
    "steps",
    "patset",
    "velocity",
    "prob",
    "mutation",
    "micro",
    "print"
   ]
  },
  {
   "id": "select",
   "label": "",
   "x": 14.6,
   "y": 86,
   "w": 71.2,
   "h": 4.2,
   "cols": 8,
   "rows": 1,
   "controls": [
    "sel1",
    "sel2",
    "sel3",
    "sel4",
    "sel5",
    "sel6",
    "sel7",
    "sel8"
   ]
  },
  {
   "id": "track",
   "label": "",
   "x": 14.6,
   "y": 91,
   "w": 71.2,
   "h": 4.6,
   "cols": 8,
   "rows": 1,
   "controls": [
    "arm",
    "mute",
    "solo",
    "vol",
    "pan",
    "sends",
    "device",
    "stop"
   ]
  }
 ],
 "portrait": [
  {
   "id": "top",
   "cols": 9,
   "rows": 1,
   "weight": 0.9,
   "controls": [
    "shift",
    "prev",
    "next",
    "session",
    "notemode",
    "chord",
    "custom",
    "seq",
    "projects"
   ]
  },
  {
   "id": "grid",
   "cols": 8,
   "rows": 8,
   "weight": 8,
   "controls": [
    "pad57",
    "pad58",
    "pad59",
    "pad60",
    "pad61",
    "pad62",
    "pad63",
    "pad64",
    "pad49",
    "pad50",
    "pad51",
    "pad52",
    "pad53",
    "pad54",
    "pad55",
    "pad56",
    "pad41",
    "pad42",
    "pad43",
    "pad44",
    "pad45",
    "pad46",
    "pad47",
    "pad48",
    "pad33",
    "pad34",
    "pad35",
    "pad36",
    "pad37",
    "pad38",
    "pad39",
    "pad40",
    "pad25",
    "pad26",
    "pad27",
    "pad28",
    "pad29",
    "pad30",
    "pad31",
    "pad32",
    "pad17",
    "pad18",
    "pad19",
    "pad20",
    "pad21",
    "pad22",
    "pad23",
    "pad24",
    "pad9",
    "pad10",
    "pad11",
    "pad12",
    "pad13",
    "pad14",
    "pad15",
    "pad16",
    "pad1",
    "pad2",
    "pad3",
    "pad4",
    "pad5",
    "pad6",
    "pad7",
    "pad8"
   ]
  },
  {
   "id": "scene",
   "cols": 8,
   "rows": 1,
   "weight": 0.9,
   "controls": [
    "patterns",
    "steps",
    "patset",
    "velocity",
    "prob",
    "mutation",
    "micro",
    "print"
   ]
  },
  {
   "id": "edit",
   "cols": 8,
   "rows": 1,
   "weight": 0.9,
   "controls": [
    "up",
    "down",
    "clear",
    "dup",
    "quant",
    "fixed",
    "play",
    "rec"
   ]
  },
  {
   "id": "select",
   "cols": 8,
   "rows": 1,
   "weight": 0.6,
   "controls": [
    "sel1",
    "sel2",
    "sel3",
    "sel4",
    "sel5",
    "sel6",
    "sel7",
    "sel8"
   ]
  },
  {
   "id": "track",
   "cols": 8,
   "rows": 1,
   "weight": 0.8,
   "controls": [
    "arm",
    "mute",
    "solo",
    "vol",
    "pan",
    "sends",
    "device",
    "stop"
   ]
  }
 ],
 "controls": [
  {
   "id": "pad1",
   "type": "pad",
   "label": "",
   "msg": "note",
   "note": 11,
   "group": "pad",
   "color": "cyan",
   "led": {
    "msg": "note",
    "on": 37,
    "off": 0
   }
  },
  {
   "id": "pad2",
   "type": "pad",
   "label": "",
   "msg": "note",
   "note": 12,
   "group": "pad",
   "color": "cyan",
   "led": {
    "msg": "note",
    "on": 37,
    "off": 0
   }
  },
  {
   "id": "pad3",
   "type": "pad",
   "label": "",
   "msg": "note",
   "note": 13,
   "group": "pad",
   "color": "cyan",
   "led": {
    "msg": "note",
    "on": 37,
    "off": 0
   }
  },
  {
   "id": "pad4",
   "type": "pad",
   "label": "",
   "msg": "note",
   "note": 14,
   "group": "pad",
   "color": "cyan",
   "led": {
    "msg": "note",
    "on": 37,
    "off": 0
   }
  },
  {
   "id": "pad5",
   "type": "pad",
   "label": "",
   "msg": "note",
   "note": 15,
   "group": "pad",
   "color": "cyan",
   "led": {
    "msg": "note",
    "on": 37,
    "off": 0
   }
  },
  {
   "id": "pad6",
   "type": "pad",
   "label": "",
   "msg": "note",
   "note": 16,
   "group": "pad",
   "color": "cyan",
   "led": {
    "msg": "note",
    "on": 37,
    "off": 0
   }
  },
  {
   "id": "pad7",
   "type": "pad",
   "label": "",
   "msg": "note",
   "note": 17,
   "group": "pad",
   "color": "cyan",
   "led": {
    "msg": "note",
    "on": 37,
    "off": 0
   }
  },
  {
   "id": "pad8",
   "type": "pad",
   "label": "",
   "msg": "note",
   "note": 18,
   "group": "pad",
   "color": "cyan",
   "led": {
    "msg": "note",
    "on": 37,
    "off": 0
   }
  },
  {
   "id": "pad9",
   "type": "pad",
   "label": "",
   "msg": "note",
   "note": 21,
   "group": "pad",
   "color": "cyan",
   "led": {
    "msg": "note",
    "on": 37,
    "off": 0
   }
  },
  {
   "id": "pad10",
   "type": "pad",
   "label": "",
   "msg": "note",
   "note": 22,
   "group": "pad",
   "color": "cyan",
   "led": {
    "msg": "note",
    "on": 37,
    "off": 0
   }
  },
  {
   "id": "pad11",
   "type": "pad",
   "label": "",
   "msg": "note",
   "note": 23,
   "group": "pad",
   "color": "cyan",
   "led": {
    "msg": "note",
    "on": 37,
    "off": 0
   }
  },
  {
   "id": "pad12",
   "type": "pad",
   "label": "",
   "msg": "note",
   "note": 24,
   "group": "pad",
   "color": "cyan",
   "led": {
    "msg": "note",
    "on": 37,
    "off": 0
   }
  },
  {
   "id": "pad13",
   "type": "pad",
   "label": "",
   "msg": "note",
   "note": 25,
   "group": "pad",
   "color": "cyan",
   "led": {
    "msg": "note",
    "on": 37,
    "off": 0
   }
  },
  {
   "id": "pad14",
   "type": "pad",
   "label": "",
   "msg": "note",
   "note": 26,
   "group": "pad",
   "color": "cyan",
   "led": {
    "msg": "note",
    "on": 37,
    "off": 0
   }
  },
  {
   "id": "pad15",
   "type": "pad",
   "label": "",
   "msg": "note",
   "note": 27,
   "group": "pad",
   "color": "cyan",
   "led": {
    "msg": "note",
    "on": 37,
    "off": 0
   }
  },
  {
   "id": "pad16",
   "type": "pad",
   "label": "",
   "msg": "note",
   "note": 28,
   "group": "pad",
   "color": "cyan",
   "led": {
    "msg": "note",
    "on": 37,
    "off": 0
   }
  },
  {
   "id": "pad17",
   "type": "pad",
   "label": "",
   "msg": "note",
   "note": 31,
   "group": "pad",
   "color": "cyan",
   "led": {
    "msg": "note",
    "on": 37,
    "off": 0
   }
  },
  {
   "id": "pad18",
   "type": "pad",
   "label": "",
   "msg": "note",
   "note": 32,
   "group": "pad",
   "color": "cyan",
   "led": {
    "msg": "note",
    "on": 37,
    "off": 0
   }
  },
  {
   "id": "pad19",
   "type": "pad",
   "label": "",
   "msg": "note",
   "note": 33,
   "group": "pad",
   "color": "cyan",
   "led": {
    "msg": "note",
    "on": 37,
    "off": 0
   }
  },
  {
   "id": "pad20",
   "type": "pad",
   "label": "",
   "msg": "note",
   "note": 34,
   "group": "pad",
   "color": "cyan",
   "led": {
    "msg": "note",
    "on": 37,
    "off": 0
   }
  },
  {
   "id": "pad21",
   "type": "pad",
   "label": "",
   "msg": "note",
   "note": 35,
   "group": "pad",
   "color": "cyan",
   "led": {
    "msg": "note",
    "on": 37,
    "off": 0
   }
  },
  {
   "id": "pad22",
   "type": "pad",
   "label": "",
   "msg": "note",
   "note": 36,
   "group": "pad",
   "color": "cyan",
   "led": {
    "msg": "note",
    "on": 37,
    "off": 0
   }
  },
  {
   "id": "pad23",
   "type": "pad",
   "label": "",
   "msg": "note",
   "note": 37,
   "group": "pad",
   "color": "cyan",
   "led": {
    "msg": "note",
    "on": 37,
    "off": 0
   }
  },
  {
   "id": "pad24",
   "type": "pad",
   "label": "",
   "msg": "note",
   "note": 38,
   "group": "pad",
   "color": "cyan",
   "led": {
    "msg": "note",
    "on": 37,
    "off": 0
   }
  },
  {
   "id": "pad25",
   "type": "pad",
   "label": "",
   "msg": "note",
   "note": 41,
   "group": "pad",
   "color": "cyan",
   "led": {
    "msg": "note",
    "on": 37,
    "off": 0
   }
  },
  {
   "id": "pad26",
   "type": "pad",
   "label": "",
   "msg": "note",
   "note": 42,
   "group": "pad",
   "color": "cyan",
   "led": {
    "msg": "note",
    "on": 37,
    "off": 0
   }
  },
  {
   "id": "pad27",
   "type": "pad",
   "label": "",
   "msg": "note",
   "note": 43,
   "group": "pad",
   "color": "cyan",
   "led": {
    "msg": "note",
    "on": 37,
    "off": 0
   }
  },
  {
   "id": "pad28",
   "type": "pad",
   "label": "",
   "msg": "note",
   "note": 44,
   "group": "pad",
   "color": "cyan",
   "led": {
    "msg": "note",
    "on": 37,
    "off": 0
   }
  },
  {
   "id": "pad29",
   "type": "pad",
   "label": "",
   "msg": "note",
   "note": 45,
   "group": "pad",
   "color": "cyan",
   "led": {
    "msg": "note",
    "on": 37,
    "off": 0
   }
  },
  {
   "id": "pad30",
   "type": "pad",
   "label": "",
   "msg": "note",
   "note": 46,
   "group": "pad",
   "color": "cyan",
   "led": {
    "msg": "note",
    "on": 37,
    "off": 0
   }
  },
  {
   "id": "pad31",
   "type": "pad",
   "label": "",
   "msg": "note",
   "note": 47,
   "group": "pad",
   "color": "cyan",
   "led": {
    "msg": "note",
    "on": 37,
    "off": 0
   }
  },
  {
   "id": "pad32",
   "type": "pad",
   "label": "",
   "msg": "note",
   "note": 48,
   "group": "pad",
   "color": "cyan",
   "led": {
    "msg": "note",
    "on": 37,
    "off": 0
   }
  },
  {
   "id": "pad33",
   "type": "pad",
   "label": "",
   "msg": "note",
   "note": 51,
   "group": "pad",
   "color": "cyan",
   "led": {
    "msg": "note",
    "on": 37,
    "off": 0
   }
  },
  {
   "id": "pad34",
   "type": "pad",
   "label": "",
   "msg": "note",
   "note": 52,
   "group": "pad",
   "color": "cyan",
   "led": {
    "msg": "note",
    "on": 37,
    "off": 0
   }
  },
  {
   "id": "pad35",
   "type": "pad",
   "label": "",
   "msg": "note",
   "note": 53,
   "group": "pad",
   "color": "cyan",
   "led": {
    "msg": "note",
    "on": 37,
    "off": 0
   }
  },
  {
   "id": "pad36",
   "type": "pad",
   "label": "",
   "msg": "note",
   "note": 54,
   "group": "pad",
   "color": "cyan",
   "led": {
    "msg": "note",
    "on": 37,
    "off": 0
   }
  },
  {
   "id": "pad37",
   "type": "pad",
   "label": "",
   "msg": "note",
   "note": 55,
   "group": "pad",
   "color": "cyan",
   "led": {
    "msg": "note",
    "on": 37,
    "off": 0
   }
  },
  {
   "id": "pad38",
   "type": "pad",
   "label": "",
   "msg": "note",
   "note": 56,
   "group": "pad",
   "color": "cyan",
   "led": {
    "msg": "note",
    "on": 37,
    "off": 0
   }
  },
  {
   "id": "pad39",
   "type": "pad",
   "label": "",
   "msg": "note",
   "note": 57,
   "group": "pad",
   "color": "cyan",
   "led": {
    "msg": "note",
    "on": 37,
    "off": 0
   }
  },
  {
   "id": "pad40",
   "type": "pad",
   "label": "",
   "msg": "note",
   "note": 58,
   "group": "pad",
   "color": "cyan",
   "led": {
    "msg": "note",
    "on": 37,
    "off": 0
   }
  },
  {
   "id": "pad41",
   "type": "pad",
   "label": "",
   "msg": "note",
   "note": 61,
   "group": "pad",
   "color": "cyan",
   "led": {
    "msg": "note",
    "on": 37,
    "off": 0
   }
  },
  {
   "id": "pad42",
   "type": "pad",
   "label": "",
   "msg": "note",
   "note": 62,
   "group": "pad",
   "color": "cyan",
   "led": {
    "msg": "note",
    "on": 37,
    "off": 0
   }
  },
  {
   "id": "pad43",
   "type": "pad",
   "label": "",
   "msg": "note",
   "note": 63,
   "group": "pad",
   "color": "cyan",
   "led": {
    "msg": "note",
    "on": 37,
    "off": 0
   }
  },
  {
   "id": "pad44",
   "type": "pad",
   "label": "",
   "msg": "note",
   "note": 64,
   "group": "pad",
   "color": "cyan",
   "led": {
    "msg": "note",
    "on": 37,
    "off": 0
   }
  },
  {
   "id": "pad45",
   "type": "pad",
   "label": "",
   "msg": "note",
   "note": 65,
   "group": "pad",
   "color": "cyan",
   "led": {
    "msg": "note",
    "on": 37,
    "off": 0
   }
  },
  {
   "id": "pad46",
   "type": "pad",
   "label": "",
   "msg": "note",
   "note": 66,
   "group": "pad",
   "color": "cyan",
   "led": {
    "msg": "note",
    "on": 37,
    "off": 0
   }
  },
  {
   "id": "pad47",
   "type": "pad",
   "label": "",
   "msg": "note",
   "note": 67,
   "group": "pad",
   "color": "cyan",
   "led": {
    "msg": "note",
    "on": 37,
    "off": 0
   }
  },
  {
   "id": "pad48",
   "type": "pad",
   "label": "",
   "msg": "note",
   "note": 68,
   "group": "pad",
   "color": "cyan",
   "led": {
    "msg": "note",
    "on": 37,
    "off": 0
   }
  },
  {
   "id": "pad49",
   "type": "pad",
   "label": "",
   "msg": "note",
   "note": 71,
   "group": "pad",
   "color": "cyan",
   "led": {
    "msg": "note",
    "on": 37,
    "off": 0
   }
  },
  {
   "id": "pad50",
   "type": "pad",
   "label": "",
   "msg": "note",
   "note": 72,
   "group": "pad",
   "color": "cyan",
   "led": {
    "msg": "note",
    "on": 37,
    "off": 0
   }
  },
  {
   "id": "pad51",
   "type": "pad",
   "label": "",
   "msg": "note",
   "note": 73,
   "group": "pad",
   "color": "cyan",
   "led": {
    "msg": "note",
    "on": 37,
    "off": 0
   }
  },
  {
   "id": "pad52",
   "type": "pad",
   "label": "",
   "msg": "note",
   "note": 74,
   "group": "pad",
   "color": "cyan",
   "led": {
    "msg": "note",
    "on": 37,
    "off": 0
   }
  },
  {
   "id": "pad53",
   "type": "pad",
   "label": "",
   "msg": "note",
   "note": 75,
   "group": "pad",
   "color": "cyan",
   "led": {
    "msg": "note",
    "on": 37,
    "off": 0
   }
  },
  {
   "id": "pad54",
   "type": "pad",
   "label": "",
   "msg": "note",
   "note": 76,
   "group": "pad",
   "color": "cyan",
   "led": {
    "msg": "note",
    "on": 37,
    "off": 0
   }
  },
  {
   "id": "pad55",
   "type": "pad",
   "label": "",
   "msg": "note",
   "note": 77,
   "group": "pad",
   "color": "cyan",
   "led": {
    "msg": "note",
    "on": 37,
    "off": 0
   }
  },
  {
   "id": "pad56",
   "type": "pad",
   "label": "",
   "msg": "note",
   "note": 78,
   "group": "pad",
   "color": "cyan",
   "led": {
    "msg": "note",
    "on": 37,
    "off": 0
   }
  },
  {
   "id": "pad57",
   "type": "pad",
   "label": "",
   "msg": "note",
   "note": 81,
   "group": "pad",
   "color": "cyan",
   "led": {
    "msg": "note",
    "on": 37,
    "off": 0
   }
  },
  {
   "id": "pad58",
   "type": "pad",
   "label": "",
   "msg": "note",
   "note": 82,
   "group": "pad",
   "color": "cyan",
   "led": {
    "msg": "note",
    "on": 37,
    "off": 0
   }
  },
  {
   "id": "pad59",
   "type": "pad",
   "label": "",
   "msg": "note",
   "note": 83,
   "group": "pad",
   "color": "cyan",
   "led": {
    "msg": "note",
    "on": 37,
    "off": 0
   }
  },
  {
   "id": "pad60",
   "type": "pad",
   "label": "",
   "msg": "note",
   "note": 84,
   "group": "pad",
   "color": "cyan",
   "led": {
    "msg": "note",
    "on": 37,
    "off": 0
   }
  },
  {
   "id": "pad61",
   "type": "pad",
   "label": "",
   "msg": "note",
   "note": 85,
   "group": "pad",
   "color": "cyan",
   "led": {
    "msg": "note",
    "on": 37,
    "off": 0
   }
  },
  {
   "id": "pad62",
   "type": "pad",
   "label": "",
   "msg": "note",
   "note": 86,
   "group": "pad",
   "color": "cyan",
   "led": {
    "msg": "note",
    "on": 37,
    "off": 0
   }
  },
  {
   "id": "pad63",
   "type": "pad",
   "label": "",
   "msg": "note",
   "note": 87,
   "group": "pad",
   "color": "cyan",
   "led": {
    "msg": "note",
    "on": 37,
    "off": 0
   }
  },
  {
   "id": "pad64",
   "type": "pad",
   "label": "",
   "msg": "note",
   "note": 88,
   "group": "pad",
   "color": "cyan",
   "led": {
    "msg": "note",
    "on": 37,
    "off": 0
   }
  },
  {
   "id": "shift",
   "type": "button",
   "label": "Shift",
   "msg": "cc",
   "cc": 90,
   "group": "nav",
   "color": "white",
   "led": {
    "msg": "cc",
    "on": 3,
    "off": 0
   }
  },
  {
   "id": "prev",
   "type": "button",
   "label": "◀",
   "msg": "cc",
   "cc": 91,
   "group": "nav",
   "color": "white",
   "led": {
    "msg": "cc",
    "on": 3,
    "off": 0
   }
  },
  {
   "id": "next",
   "type": "button",
   "label": "▶",
   "msg": "cc",
   "cc": 92,
   "group": "nav",
   "color": "white",
   "led": {
    "msg": "cc",
    "on": 3,
    "off": 0
   }
  },
  {
   "id": "session",
   "type": "button",
   "label": "Session",
   "msg": "cc",
   "cc": 93,
   "group": "nav",
   "color": "lime",
   "led": {
    "msg": "cc",
    "on": 3,
    "off": 0
   }
  },
  {
   "id": "notemode",
   "type": "button",
   "label": "Note",
   "msg": "cc",
   "cc": 94,
   "group": "nav",
   "color": "amber",
   "led": {
    "msg": "cc",
    "on": 3,
    "off": 0
   }
  },
  {
   "id": "chord",
   "type": "button",
   "label": "Chord",
   "msg": "cc",
   "cc": 95,
   "group": "nav",
   "color": "coral",
   "led": {
    "msg": "cc",
    "on": 3,
    "off": 0
   }
  },
  {
   "id": "custom",
   "type": "button",
   "label": "Custom",
   "msg": "cc",
   "cc": 96,
   "group": "nav",
   "color": "cyan",
   "led": {
    "msg": "cc",
    "on": 3,
    "off": 0
   }
  },
  {
   "id": "seq",
   "type": "button",
   "label": "Seq",
   "msg": "cc",
   "cc": 97,
   "group": "nav",
   "color": "white",
   "led": {
    "msg": "cc",
    "on": 3,
    "off": 0
   }
  },
  {
   "id": "projects",
   "type": "button",
   "label": "Projects",
   "msg": "cc",
   "cc": 98,
   "group": "nav",
   "color": "white",
   "led": {
    "msg": "cc",
    "on": 3,
    "off": 0
   }
  },
  {
   "id": "up",
   "type": "button",
   "label": "▲",
   "msg": "cc",
   "cc": 80,
   "group": "edit",
   "color": "white",
   "led": {
    "msg": "cc",
    "on": 3,
    "off": 0
   }
  },
  {
   "id": "down",
   "type": "button",
   "label": "▼",
   "msg": "cc",
   "cc": 70,
   "group": "edit",
   "color": "white",
   "led": {
    "msg": "cc",
    "on": 3,
    "off": 0
   }
  },
  {
   "id": "clear",
   "type": "button",
   "label": "Clear",
   "msg": "cc",
   "cc": 60,
   "group": "edit",
   "color": "white",
   "led": {
    "msg": "cc",
    "on": 3,
    "off": 0
   }
  },
  {
   "id": "dup",
   "type": "button",
   "label": "Dup",
   "msg": "cc",
   "cc": 50,
   "group": "edit",
   "color": "white",
   "led": {
    "msg": "cc",
    "on": 3,
    "off": 0
   }
  },
  {
   "id": "quant",
   "type": "button",
   "label": "Quant",
   "msg": "cc",
   "cc": 40,
   "group": "edit",
   "color": "white",
   "led": {
    "msg": "cc",
    "on": 3,
    "off": 0
   }
  },
  {
   "id": "fixed",
   "type": "button",
   "label": "Fixed",
   "msg": "cc",
   "cc": 30,
   "group": "edit",
   "color": "white",
   "led": {
    "msg": "cc",
    "on": 3,
    "off": 0
   }
  },
  {
   "id": "play",
   "type": "button",
   "label": "▷",
   "msg": "cc",
   "cc": 20,
   "group": "edit",
   "color": "white",
   "led": {
    "msg": "cc",
    "on": 3,
    "off": 0
   }
  },
  {
   "id": "rec",
   "type": "button",
   "label": "○",
   "msg": "cc",
   "cc": 10,
   "group": "edit",
   "color": "white",
   "led": {
    "msg": "cc",
    "on": 3,
    "off": 0
   }
  },
  {
   "id": "patterns",
   "type": "button",
   "label": "Pattern",
   "msg": "cc",
   "cc": 89,
   "group": "scene",
   "color": "violet",
   "led": {
    "msg": "cc",
    "on": 3,
    "off": 0
   }
  },
  {
   "id": "steps",
   "type": "button",
   "label": "Steps",
   "msg": "cc",
   "cc": 79,
   "group": "scene",
   "color": "violet",
   "led": {
    "msg": "cc",
    "on": 3,
    "off": 0
   }
  },
  {
   "id": "patset",
   "type": "button",
   "label": "Pat Set",
   "msg": "cc",
   "cc": 69,
   "group": "scene",
   "color": "violet",
   "led": {
    "msg": "cc",
    "on": 3,
    "off": 0
   }
  },
  {
   "id": "velocity",
   "type": "button",
   "label": "Vel",
   "msg": "cc",
   "cc": 59,
   "group": "scene",
   "color": "violet",
   "led": {
    "msg": "cc",
    "on": 3,
    "off": 0
   }
  },
  {
   "id": "prob",
   "type": "button",
   "label": "Prob",
   "msg": "cc",
   "cc": 49,
   "group": "scene",
   "color": "violet",
   "led": {
    "msg": "cc",
    "on": 3,
    "off": 0
   }
  },
  {
   "id": "mutation",
   "type": "button",
   "label": "Mutate",
   "msg": "cc",
   "cc": 39,
   "group": "scene",
   "color": "violet",
   "led": {
    "msg": "cc",
    "on": 3,
    "off": 0
   }
  },
  {
   "id": "micro",
   "type": "button",
   "label": "Micro",
   "msg": "cc",
   "cc": 29,
   "group": "scene",
   "color": "violet",
   "led": {
    "msg": "cc",
    "on": 3,
    "off": 0
   }
  },
  {
   "id": "print",
   "type": "button",
   "label": "Print",
   "msg": "cc",
   "cc": 19,
   "group": "scene",
   "color": "violet",
   "led": {
    "msg": "cc",
    "on": 3,
    "off": 0
   }
  },
  {
   "id": "sel1",
   "type": "button",
   "label": "",
   "msg": "cc",
   "cc": 101,
   "group": "select",
   "color": "white",
   "led": {
    "msg": "cc",
    "on": 3,
    "off": 0
   }
  },
  {
   "id": "sel2",
   "type": "button",
   "label": "",
   "msg": "cc",
   "cc": 102,
   "group": "select",
   "color": "white",
   "led": {
    "msg": "cc",
    "on": 3,
    "off": 0
   }
  },
  {
   "id": "sel3",
   "type": "button",
   "label": "",
   "msg": "cc",
   "cc": 103,
   "group": "select",
   "color": "white",
   "led": {
    "msg": "cc",
    "on": 3,
    "off": 0
   }
  },
  {
   "id": "sel4",
   "type": "button",
   "label": "",
   "msg": "cc",
   "cc": 104,
   "group": "select",
   "color": "white",
   "led": {
    "msg": "cc",
    "on": 3,
    "off": 0
   }
  },
  {
   "id": "sel5",
   "type": "button",
   "label": "",
   "msg": "cc",
   "cc": 105,
   "group": "select",
   "color": "white",
   "led": {
    "msg": "cc",
    "on": 3,
    "off": 0
   }
  },
  {
   "id": "sel6",
   "type": "button",
   "label": "",
   "msg": "cc",
   "cc": 106,
   "group": "select",
   "color": "white",
   "led": {
    "msg": "cc",
    "on": 3,
    "off": 0
   }
  },
  {
   "id": "sel7",
   "type": "button",
   "label": "",
   "msg": "cc",
   "cc": 107,
   "group": "select",
   "color": "white",
   "led": {
    "msg": "cc",
    "on": 3,
    "off": 0
   }
  },
  {
   "id": "sel8",
   "type": "button",
   "label": "",
   "msg": "cc",
   "cc": 108,
   "group": "select",
   "color": "white",
   "led": {
    "msg": "cc",
    "on": 3,
    "off": 0
   }
  },
  {
   "id": "arm",
   "type": "button",
   "label": "Arm",
   "msg": "cc",
   "cc": 1,
   "group": "track",
   "color": "amber",
   "led": {
    "msg": "cc",
    "on": 3,
    "off": 0
   }
  },
  {
   "id": "mute",
   "type": "button",
   "label": "Mute",
   "msg": "cc",
   "cc": 2,
   "group": "track",
   "color": "amber",
   "led": {
    "msg": "cc",
    "on": 3,
    "off": 0
   }
  },
  {
   "id": "solo",
   "type": "button",
   "label": "Solo",
   "msg": "cc",
   "cc": 3,
   "group": "track",
   "color": "amber",
   "led": {
    "msg": "cc",
    "on": 3,
    "off": 0
   }
  },
  {
   "id": "vol",
   "type": "button",
   "label": "Vol",
   "msg": "cc",
   "cc": 4,
   "group": "track",
   "color": "amber",
   "led": {
    "msg": "cc",
    "on": 3,
    "off": 0
   }
  },
  {
   "id": "pan",
   "type": "button",
   "label": "Pan",
   "msg": "cc",
   "cc": 5,
   "group": "track",
   "color": "amber",
   "led": {
    "msg": "cc",
    "on": 3,
    "off": 0
   }
  },
  {
   "id": "sends",
   "type": "button",
   "label": "Sends",
   "msg": "cc",
   "cc": 6,
   "group": "track",
   "color": "amber",
   "led": {
    "msg": "cc",
    "on": 3,
    "off": 0
   }
  },
  {
   "id": "device",
   "type": "button",
   "label": "Device",
   "msg": "cc",
   "cc": 7,
   "group": "track",
   "color": "amber",
   "led": {
    "msg": "cc",
    "on": 3,
    "off": 0
   }
  },
  {
   "id": "stop",
   "type": "button",
   "label": "Stop",
   "msg": "cc",
   "cc": 8,
   "group": "track",
   "color": "amber",
   "led": {
    "msg": "cc",
    "on": 3,
    "off": 0
   }
  }
 ]
}
