Advertisement
Guest User

Untitled

a guest
Oct 6th, 2023
219
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement