November 30, 2024, 07:04:23 am
Welcome, Guest. Please login or register
News:

Arturia Forums



Author Topic: Community-driven MIDI reference for KeyLab 88 MkII  (Read 1314 times)

to7m

  • Newbie
  • *
  • Posts: 1
  • Karma: 0
Community-driven MIDI reference for KeyLab 88 MkII
« on: March 12, 2020, 07:14:36 pm »
This forum's captchas make it too annoying to use, I'm putting it on Reddit instead:
https://www.reddit.com/r/midi/comments/fhp8qr/communitydriven_midi_reference_for_keylab_88_mkii/
« Last Edit: March 12, 2020, 11:45:12 pm by to7m »

bostonsynth

  • Apprentice
  • *
  • Posts: 19
  • Karma: 0
Re: Community-driven MIDI reference for KeyLab 88 MkII
« Reply #1 on: March 12, 2020, 09:48:41 pm »
Wow wow wow thank you for this. You are the best.


Hi all,

Given Arturia's frankly shameful lack of proper documentation, I've decided to make this post as a substitute for an official MIDI spec sheet for communication to the Arturia KeyLab 88 MkII. After making the mistake of buying this keyboard, I've invested a lot of time into figuring this out, and so have many others, so it makes sense to put it all in one place. All further MIDI message contributions welcome!

The two ports will be referred to as port0 and port1. All values in decimal. Hopefully the rest of my formatting will be clear.

Code: [Select]
drum pads lights on/off:
    (port0, [153, pad_number + 35, status])
        pad_number = the number on the pad
        status = off is 0, on is 127
        example: turn pad 7 off
            = (port0, [153, pad_number:7 + 35, status:off])
            = (port0, [153, 7 + 35, 0])
            = (port0, [153, 42, 0])
track/global control lights on/off:
    solo, mute, record:
        (port1, [144, select_number + button_number, status])
            select_number = which of the Select buttons is active (1-8)
            button_number = solo is 7, mute is 15, record is -1
            status = off is 0, on is 127
            example: turn record on for select 6
                = (port1, [144, select_number:6 + button_number:record, status:on])
                = (port1, [144, 6 + -1, 1])
                = (port1, [144, 5, 1])
    read, write, save, in, out, metro, undo:
        (port1, [144, button_number, status])
            button_number = read is 74, write is 75, save is 80, in is 87, out is 88, metro is 89, undo is 81
            status = off is 0, on is 127
            example: turn save off
                = (port1, [144, button_number:save, status:off])
                = (port1, [144, 80, 0])
transports lights on/off:
    (port1, [144, button_number, status])
        button_number = rewind is 91, fast-forward is 92, stop is 93, pause/play is 94, record is 95, loop is 86
        status = off is 0, on is 127
        example: turn loop on
            = (port1, [144, button_number:loop, status:on])
            = (port1, [144, 86, 127])
part button lights on/off:
    (port1, [144, 48 - part_number, status])
        part_number = the number on the button
        status = off is 0, on is 127
        example: turn part 2 button off
            = (port1, [144, 48 - part_number:2, status:off])
            = (port1, [144, 48 - 2, 0])
            = (port1, [144, 46, 0])
select Select number:
    (port1, [144, select_number + 23, 127])
        select_number = the number below the button (1-8)
        example: select Select 3
            = (port1, [144, select_number:3 + 23, 127])
            = (port1, [144, 3 + 23, 127])
            = (port1, [144, 26, 127])

 

Carbonate design by Bloc
SMF 2.0.17 | SMF © 2019, Simple Machines