Intro¶
python-lpd8 is a pythonic abstraction for the Akai LPD8 midi controller. It allows you to attach callback functions to each pad and knob, making integration into your application extremely easy.
This is a minimal working example:
from lpd8mido import LPD8DeviceMido
from time import sleep
def exampleCallback(programNum: int, padNum: int, knobNum: int, value: int, noteon: int, noteoff: int, cc: int, pc: int):
print("CB program: %s pad: %s knob: %s value: %s" % (programNum, padNum, knobNum, value))
lpd8 = LPD8DeviceMido()
for i in range(8):
lpd8.addPadCB(0, i, exampleCallback)
lpd8.addKnobCB(0, i, exampleCallback)
while(True):
lpd8.tick()
sleep(0.01)
While you’ve activated the first program and are in PAD-mode you should get messages that looks like this every time you hit a pad or turn a knob:
CB program: 0 pad: 0 knob: None value: 19
CB program: 0 pad: 1 knob: None value: 4
CB program: 0 pad: 2 knob: None value: 20
CB program: 0 pad: 3 knob: None value: 7
CB program: 0 pad: None knob: 5 value: 37
CB program: 0 pad: None knob: 5 value: 38
CB program: 0 pad: None knob: 5 value: 39
CB program: 0 pad: None knob: 5 value: 40