wxMidi: A MIDI interface based on PortMidi

wxMidi logo wxMidi is a component for software developers using the wxWidgets application development framework. With this component you can add MIDI in/out support to your wxWidgets application. wxMidi is a wrapper for PortMidi, the Portable Real-Time MIDI Library.

wxMidi offers a set of classes: wxMidiSystem, wxMidiDevice, wxMidiMessage, wxMidiDatabaseGM and derived from them, that interfaces wxWidgets with the PortMidi library.

download button

wxMidi features

  • wxMidi provides a suitable interface, object oriented, to use portmidi with wxWidgets.
  • All strings has been moved from PortMidi and adapted to support internationalization.
  • In PortMidi SysEx messages are received in chunks with real-time messages interleaved. In wxMidi, sysex messages are received completed, in a single string of bytes, and any real-time message embedded is delivered before the sysex message is delivered.
  • In PortMidi user has to deal with buffer's allocation issues. In wxMidi, all buffer allocation for messages is hidden in the wxMidi classes. User has not to worry abut this.
  • wxMidi also includes an additional feature, class wxMidiDatabaseGB, which provides methods for dealing with the General MIDI Standard (GM) instruments list.

By now, these classes wrap only the most important PortMidi features but they are perfectly integrated with wxWidgets and easily extensible since they provide good commented code and documentation.

The wxMidi package includes a sample application that uses the wxMidi classes showing their main features and usage.

Why wxMidi?

During LenMus Phonascus development, it was necessary to write code to deal with MIDI messages. As I was using wxWidgets, I thought it could be of benefit for the wxWidgets developers community to put my code available as an wxWidgets component. It is a way of saying 'thank you' to all other wxWidgets debvelopers.

Last updated: 2015/01/09