MIDI Monitor


version 1.3
1.7 MB

What is it?

MIDI Monitor is a utility for Mac OS X which displays MIDI signals in a variety of formats. It can watch both incoming and outgoing MIDI streams, and can filter them by message type and channel.

Musicians will find it handy for tracking down confusing MIDI problems.
Programmers can use it to test MIDI drivers and applications.

MIDI Monitor is free to download and use. The source code is available as Open Source (under the BSD license).

Screen Shots

System Requirements

  • Mac OS X, Intel, 10.5.8 or later
  • MIDI hardware interface with Mac OS X driver



3 September 2012: 1.3 released.

  • Fixed a bug: the "spying" driver wasn't being installed properly.
  • Added "expert mode" to display some messages more accurately (but more confusingly).
  • Added automatic updating via Sparkle.
  • Built for 32- and 64-bit. No more messages about the MIDI Server having to restart in 32-bit mode.
  • No longer works on PowerPC or 10.3 or 10.4, sorry. If necessary, get version 1.2.5, which does.
  • Picked a better font for the long data views.

5 November 2011: 1.2.5 released.

  • Updated the list of manufacturer IDs.

10 October 2009: 1.2.4 released.

  • Fixed a bug introduced in 1.2.3: spying didn't work.

28 September 2009: 1.2.3 released.

  • Fixed a race condition in incoming MIDI processing, which could lead to a crash.
  • Updated the list of manufacturer IDs.

18 August 2009: 1.2.2 released.

  • Fixed a bug: in the sources list, some one-port MIDI interfaces did not have names.

29 March 2009: 1.2.1 released.

  • Fixed a bug: the "receiving sysex" spinner did not go away after short sysex messages were received.
  • Sysex messages from DSI devices are now shown as "Sequential / DSI" (since both Sequential and DSI use the same manufacturer ID).
  • New icon thanks to David Clark!

7 September 2008: 1.2 released.

  • MIDI events are now saved in documents.
  • Fixed an old and embarrassing bug with the disclosable Sources and Filters sections. They now work correctly when the window is nearly the size of the screen.
  • When new events are received, don't always scroll to the bottom, and show the events more quickly.
  • Fixed more cosmetic bugs: Source names would disappear when clicked, when running on Leopard. Selection highlight on the event list could get cut off. Disclosure button animation was flickery.
  • Simplified some threading code, which makes the app more stable, especially as MIDI devices are added and removed.
  • Updated the source code to work with Xcode 3.1.
  • Now requires OS X 10.3.9 or later. If you're still on 10.2, use the old version, 1.1.8.

22 January 2006: 1.1.8 released.

  • MIDI Monitor is now a Universal application. It is 100% native on Intel and PowerPC.
  • The source code has been updated to work with Xcode 2.2.

12 September 2004: 1.1.7 released.

  • MIDI Monitor is now open source!
  • Rewrote some code to remove dependencies on the Omni frameworks. This makes it easier for me to distribute the code, and easier for others to build the code. It also makes the application slightly smaller.
    • The downside: MIDI Monitor now requires Mac OS X 10.2 or later. I don't think this will be a hardship since most MIDI drivers and applications are now built for 10.2. If you need a version which runs on 10.1, download it here.
  • Fixed a bug which prevented external device names from appearing in the Sources section.

23 July 2003: 1.1.6 released.

  • Invalid MIDI data now can be viewed in a separate window, just like SysEx events.
  • Fixed a bug which caused the manufacturer of SysEx events to be shown as "Unknown" instead of the real manufacturer.

13 July 2003: 1.1.5 released.

  • MIDI Monitor used to ignore invalid MIDI data. Now it displays invalid data as though it is just another kind of message. You can filter invalid messages, too.
  • Added a preference to turn off the warning when closing a modified window.
  • When new MIDI sources appear, new windows are now opened more reliably.

15 November 2002: 1.1.4 released.

  • Fixed a bug that caused a crash when receiving sysex under Mac OS X 10.2.2.
  • We now take advantage of some new MIDI capabilities in 10.2. We show the names of devices which are attached to input and output ports, and handle device and property discovery more efficiently.
  • You can now copy MIDI messages to the clipboard, and can see the contents of more than one sysex message at once.
  • Improved the way the disclosable areas animate under 10.2.
  • Improved the code for installing the "spy" MIDI driver.

2 August 2002: 1.1.3 released.

  • Fixed a bug which caused "Act as a destination for other programs" to not work on Mac OS X 10.2.

22 July 2002: 1.1.2 released.

  • Made spying less likely to cause the MIDI system to slow down when it is under heavy load. Simplified the MIDI driver by doing so, and fixed some bugs which could (in rare cases) cause the MIDI system to crash.
    This also (coincidentally) appears to fix a crash when MIDI Monitor is spying and Sibelius quits.
  • Improved performance by drawing the list of messages less frequently.

6 June 2002: 1.1.1 released.

  • Fixed a bug which caused spying to stop working in Mac OS X 10.1.5.

12 April 2002: 1.1 released.

  • MIDI Monitor can now "spy" on MIDI data as it is sent to destinations by other applications. This happens outside of the normal MIDI processing system, so the sending applications are completely unaware that it's happening, and there is nothing to configure. Just choose the destinations that you're interested in, and you'll see the events as they are sent.

    (This spying is done by a new MIDI driver. MIDI Monitor will automatically install it in your home folder in the Library/Audio/MIDI Drivers folder. It is perfectly harmless and invisible to other applications, and will do nothing when MIDI Monitor isn't using it.)

  • One MIDI Monitor window can now show multiple sources of data at the same time. The Source popup menu is now an outline view, with a checkbox for each source.
  • Redesigned the UI for the Sources and Filter sections.

23 February 2002: 1.0.3 released.

  • If the MIDI system cannot be initialized, show an error message and quit instead of failing in incomprehensible ways.

21 February 2002: 1.0.2 released.

  • Sources are now sorted correctly.
  • If a controller's name is not known, show it as "Controller 9" rather than just "Controller".
  • Fixed the default position of windows so they don't go underneath the dock (if the dock is on the left side of the screen).
  • Show the full contents of the SysEx message in the details window, including the starting byte (F0). Added a preference for whether saved SysEx data should always include the closing EOX (F7) byte, or whether it should only be included if it was originally received.

30 January 2002: 1.0.1 released.

  • SysEx data is now shown in a separate window, instead of in the main event list. This is a lot faster and easier to use. You can now save the SysEx data to a file, too.
  • Corrected the labeling of the note display options. The labels are now "Middle C = C3" and "Middle C = C4", instead of "Standard" and "Yamaha". (I had them backwards--Yamaha in fact uses C3.)
  • Updated documentation to mention a new driver for Roland MIDI interfaces.

29 December 2001: 1.0 released!

  • When receiving system exclusive data (which can take some time), MIDI Monitor now shows a progress indicator.
  • System exclusive data is now shown exactly as it was received, which may be with or without an ending EOX ($F7) byte.
  • When MIDI Monitor is acting as a destination for other applications, we put "MIDI Monitor" in the name of the endpoint, along with the document name.
  • Fixed the size of the outline column so the disclosure triangle doesn't disappear in some circumstances.

2 December 2001: 1.0 beta 4 released.

  • Other applications can now send MIDI data directly to MIDI Monitor. That is, it can now act as a "virtual destination".
  • Window positions are now saved properly.
  • Speed improvements: Making new windows is now much faster, and the application now launches a little faster.
  • When opening a document, we now warn the user if the selected source can't be found.
  • Added options to automatically pick a new source if the selected source disappears, and to automatically open new windows when new sources appear.
  • If an event's timestamp is 0, when displaying it as a clock time, show it as "*** ZERO ***" instead of an arbitrarily wrong, but valid-looking, time. This should only happen if another application sends us data with a zero timestamp, which I consider to be an error. (This is still open for debate, though.)

27 November 2001: 1.0 beta 3 released.

  • Fixed an embarrassing bug which disabled the Preferences, About, and Help menu items.
  • Added a "Clear Events" menu, which does the same thing as the Clear button. This makes it obvious that the shortcut for this command is Command-K.
  • Fixed some minor bugs with updating the list of sources, which would crop up when virtual sources were added to the system.

20 November 2001: 1.0 beta 2 released.

  • MIDI Monitor now follows the new guidelines for displaying the names of the input ports. If any of the port names overlap, we also display the device's name in front of the port name.
  • When the MIDI setup changes, the program will now keep using the selected port, if it still exists. (This already worked in some, but not all, cases.)
  • Added a menu command to restart the MIDI system. This is probably only of use to driver developers, and it only works on 10.1 and later.

5 November 2001: First beta release (1.0 beta 1).


Please send questions or comments to: MIDIMonitor@snoize.com