Viewed 27425 times

I want to write C/C++ programs that take input from a MIDI device.

The MIDI device connects to my PC using a USB connector.

I'm looking for a (C/C++ implemented) library that I can use to read the MIDI signals from the MIDI device through the USB port.

I'm happy manipulating the MIDI data once I get it, I just don't want to have to implement the code for its capture.

I'm planning on writing my code using the Bloodshed Dev-C++ IDE on Windows XP.

3 answers given for "C/C++ library for reading MIDI signals from a USB MIDI device"

Accepted Solution

PortMidi is another open source cross-platform MIDI I/O library worth checking out. On the other hand, if you are working on a sysex type of app, then direct Win32 works easily enough.

Just came across another open source cross-platform framework that includes MIDI support: Juce.

Also, I should note that there isn't anything special about a USB connected MIDI device. It will still be presented as a MIDI device in Windows and you will use standard MIDI APIs (mmsystem) to communicate with it.

[July 2014] I just came across RtMidi that looks to be a nice, compact, open source cross-platform C++ library.

Check out the open source project source files with 'midi' in the name, you'll probably find what you're looking for.

Maybe the Jack source code may help too. It's a sound driver for Posix compatible systems with a lot of possibilities and supports USB and Firewire audio devices.