lang/python/ RtMidi


Install with

python -m pip install rtmidi

Simple Midi Input

Interactive transcript

>>> from rtmidi import *
>>> midiin = RtMidiIn()
>>> midiin.
midiin.LINUX_ALSA        midiin.cancelCallback(   midiin.isPortOpen(
midiin.MACOSX_CORE       midiin.closePort(        midiin.openPort(
midiin.RTMIDI_DUMMY      midiin.getMessage(       midiin.openVirtualPort(
midiin.UNIX_JACK         midiin.getPortCount(     midiin.setCallback(
midiin.UNSPECIFIED       midiin.getPortName(      
midiin.WINDOWS_MM        midiin.ignoreTypes(      
>>> midiin.getPortCount()
4
>>> n = midiin.getPortCount()
>>> for i in range(n):
...   print(midiin.getPortName(i))
... 
loop a
loop b
KOMPLETE KONTROL M32
Komplete Kontrol M DAW
>>> midiin.openPort(2)
>>> def f(*xs,**kw):
...   print(xs,kw)

and then press keys. So

from rtmidi import RtMidiIn
pat = "M32"
midiin = RtMidiIn()
for i in range(midiin.getPortCount()):
  name = midiin.getPortName(name)
  if pat in name:
    midiin.openPort(i)
    break
else:
  print(f"Didn't find port with name containing {pat}")
  exit(1)
def cb(*xs,**kw):
  print(xs,kw)
midiin.setCallback(cb)
# and then press keys and turn knobs