Easy and comprehensive MIDI IO for .Net

PortMidiDotNet is PInvoke style wrapper around the PortMidi C library, for the purpose of adding MIDI input/output to any .Net project. However rather than simply wrapping the original function calls, the library provides a full object-based API, and adds support for additional protocols which sit on top of the MIDI standard.

Explore PortMidiDotNet on GitHub


  • Event-based MIDI input
  • Full support for MTC (MIDI time-code)
  • Full support for MSC (MIDI show control)


PortMidiDotNet is a PCL (portable class library), however support is currently limited to platforms supported by PortMidi. The initial goal is support for both Windows and Mono/Xamarin.Mac applications.


PortMidiDotNet is licensed under LGPL 3.0. This means you're free to use it in any commercial or non-commercial applications as long as you only link to the compiled library. Any additions or modifications to the source code must be published under the same license.