Main >> Technology and Learning >> pyPortMidi

pyPortMidi graphic
behold the MIDI plug
pyPortMidi is a Python wrapper I wrote for PortMidi. PortMidi is a cross-platform C library for realtime MIDI control. Using pyPortMidi, you can send and receive MIDI data in realtime from Python.

Besides using pyPortMidi to communicate to synthesizers and the like, it is possible to use pyPortMidi as a way to send MIDI messages between software packages on the same computer. For example, Using pyPortMidi and MIDI-YOKE on a Windows machine, it is possible to send realtime MIDI messages between programs on the same computer using loopback virtual MIDI ports.

pyPortMidi is now in a distribution package that supports compiling from Win32, Linux, and OS X from the source. There is also binary available for Win32 Python 2.3.x and Win32 Python 2.4.

The source distribution includes a compiled version of the PortMidi C library for Win32, OS X, and Linux.

I welcome feedback.
email me at

Version 0.0.3 - released March 15, 2005 --- license added March 15, 2010

download platform-independent source code in tar.gz format

download platform-independent source code in zip format

download Win32 self-installing executable for Python 2.3.x

download compiled Win32/Python 2.4 binary distribution in .zip format

pyPortMidi license

Need help? pyPortMidi not installing correctly? Notes, updates, usage and binaries for Python 2.5, now available on pyPortMidi's wiki page.

Note: to compile source on Python 2.4, you must patch Pyrex distutils. Directions are here