View difference between Paste ID: TALuA2hT and 0NKrjFVA
SHOW: | | - or go back to the newest paste.
1
#!/bin/python
2
3
# Script requries sendmidi:
4
#   https://github.com/gbevin/SendMIDI
5
#   https://aur.archlinux.org/packages/sendmidi
6
7
# Run as sudo
8
# Press F12 to enable/disable
9
10
11
import struct
12
import time
13
import sys
14
import os
15
16
# ______
17
# Change path below to your keyboard in /dev/input
18
19
path = "/dev/input/by-id/Your-keyboard-path"
20
21
FORMAT = 'llHHI'
22
EVENT_SIZE = struct.calcsize(FORMAT)
23
24
evfile = open(path, "rb")
25
26
event = evfile.read(EVENT_SIZE)
27
28
enabled = False
29
30
keydict = {
31
    44: 60, # C
32
    31: 61, # C#
33
    45: 62, # D
34
    32: 63, # D#
35
    46: 64, # E
36
    47: 65, # F
37
    34: 66,
38
    48: 67, # G
39
    35: 68, # G#
40
    49: 69, # A
41
    36: 70, # A#
42
    50: 71, # B
43
    51: 72, # C
44
    38: 73, # C#
45
    52: 74, # D
46
    30: 75, # D#
47
    43: 76, # E
48
    
49
    16: 71,
50
    3: 72,
51
    17: 73,
52
    4: 74,
53
    18: 75,
54
    19: 76,
55
    6: 77,
56
    20: 78,
57
    7: 79,
58
    21: 80,
59
    8: 81,
60
    22: 82,
61
    23: 83,
62
    10: 84,
63
    24: 85,
64
    11: 86,
65
    25: 87,
66
    
67
    
68
    
69
}
70
71
while event:
72
	(tv_sec, tv_usec, type, code, value) = struct.unpack(FORMAT, event)
73
	    
74
	if (code == 88 and value == 1):
75
	    enabled = not enabled
76
	else:
77
	    if (code in keydict and enabled == True):
78
	        if (value == 1):
79
	            os.system("sendmidi dev \"Renoise MIDI In Port A\" on "+ str(keydict[code])+" 127")
80
	        if (value == 0):
81
	            os.system("sendmidi dev \"Renoise MIDI In Port A\" off "+ str(keydict[code])+" 127")
82
	        pass
83
	    
84
	event = evfile.read(EVENT_SIZE)
85