MIDI

If you're developing anything with MIDI you may want to send/receive MIDI messages. While MIDI is technically a Serial protocol, often times you'll be working with a 'native MIDI HID USB' device, so it doesnt show up as a COM port

Find your MIDI Device

Native MIDI USB is a class device, you do not need a driver, and it should appear under your Sound Controllers devices in the dev manager

Software Options

There's a few different ways to debug MIDI so I'll give you some options

  • MIDI-OX - the most popular and full featured MIDI software, but is not open source
  • MIDI Tester - not good for testing received messages, but good for sending data to a MIDI device. Open source.
  • Haskell-OX - doesn't display messages but is very fast and easy to tie, say, incoming MIDI messages to another MIDI device or to the Windows Synth. Free.

MIDI-OX

A handy, if slightly older, tool that I like is MIDI-OX. Note it isn't open source, and is not free for commercial use, but it does have a trial period and its pretty nice!

Download it from http://www.midiox.com/

Install it as normal:

Basic MIDI message send/receive

You'll need to tell MIDI OX which device to listen to for MIDI messages. Clickt he blue MIDI Icon in the menu bar or select the Options->MIDI Devices... menu

You'll get this window

Deselect "Automatically attach Inputs to Outputs during selection"

then Click on the MIDI Input ("Circuit Play MIDI") in the top left box, and it will automatically get added to the devices we listen to.

Now in the main windows, it will start printing out incoming messages

MIDITester

Another option is the Japanase-written MIDITester which is available from http://openmidiproject.osdn.jp/MIDITester_en.html

On the off chance that site is down, here's a mirror of version 4.1 Don't download this unless the main site is down!

This program doesnt have an installer, just uncompress it to run

You'll probably want to start by changing the language to English

After restarting, you can select the MIDI device you're testing, for my test I am not linking the input to output

OK so its a little different than MIDI-OX, you can see at the very bottom incoming messages appear at the bottom status bar. You can send outgoing messages by clicking on the piano keys

Haskell OX

This is the simplest tool but it works fine for just connecting two MIDI devices together, or connecting MIDI In messages to the Windows built in MIDI Synth. It's written more as a demo of Haskell + MIDI and seems to be free (but not technically open source)

Available from http://donyaquick.com/software/ (http://www.donyaquick.com/files/HaskellOx.exe)

On the off chance the site is down, here's a mirror (Don't use this link if the site is up!)

I just tied the Circuit Playground to the wavetable synth so it would play notes on the computer when the MIDI notes were sent

This guide was first published on May 05, 2016. It was last updated on May 05, 2016. This page (MIDI) was last updated on Sep 15, 2019.