blob: 7eca87ef519a1830b64f93503c261c50fbfceca8 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
import mido
lp_key = [[j for j in range(i * 16, i * 16 + 8)] for i in range(0,8)]
GREEN = 124
YELLOW = 126
RED = 3
_light_ctrl_msg = mido.Message('note_on', channel=0)
_inport = None
_outport = None
_callbacks_on_press = dict()
_callbacks_on_release = dict()
_debug = False
def midi_init(device_name="Launchpad Mini MIDI 1"):
global _inport, _outport
_inport = mido.open_input(device_name)
_outport = mido.open_output(device_name)
_inport.callback = _callback
def button_on(button, colour):
if _debug: print(f"outport: {_outport}")
if _outport:
msg = _light_ctrl_msg.copy(note=button, velocity=colour)
if _debug: print(f"sending {msg}")
_outport.send(msg)
def button_off(button):
if _outport:
msg = _light_ctrl_msg.copy(note=button, velocity=0)
_outport.send(msg)
def on_press(button, function):
_callbacks_on_press[button] = function
def on_release(button, function):
_callbacks_on_release[button] = function
def _callback(msg):
if msg.velocity == 0:
if msg.note in _callbacks_on_release:
_callbacks_on_release[msg.note]()
elif msg.velocity == 127:
if msg.note in _callbacks_on_press:
_callbacks_on_press[msg.note]()
|