# pip install python-rtmidi Does work on windows (tested with [[anaconda3]] and [python 3.9](Python39)) Install with ```bash python -m pip install python-rtmidi ``` ### Fixes I had to ```bash sudo ln -s /usr/lib/x86_64-linux-gnu/alsa-lib /usr/lib64 ``` in order for it to work on one of my Ubuntu 22.04 laptops. ## Simple midi input logger ```python from rtmidi import MidiIn from time import sleep midiin = MidiIn() for i,x in enumerate(midiin.get_ports()): if "M32" in x: n = i break else: print(f"Couldn't find M32 port") def cb(e,x): data,t = e print(data,t) midiin.set_callback(cb) midiin.open_port(n) try: while True: sleep(1) except KeyboardInterrupt: exit(0) ``` # pip install rtmidi Does not work on Windows Install with ```bash python -m pip install rtmidi ``` ## Simple Midi Input Interactive transcript ```python >>> 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 ```python 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 ```