The Delights of Interapplication MIDI
There’s just something absolutely “right” about programming MIDI in Max. That shouldn’t be a big surprise, since Max was originally MIDI only (and wow, that was a while ago). Still, Max carries most of its early legacy completely intact (what went missing? Points for old timers if you can tell us in the comments….)
Programming MIDI apps in Max is a rare joy. You have so much control, and it’s where all of the awesomeness of the Max event model really shines. These days, not many people think to program just in MIDI - but it’s a powerful and CPU-light way of managing an enormous potential creative workspace.
Just about every application out there has MIDI remote control built in in some form or other (if it doesn’t, maybe it has OSC, so you can use Max to do a controlled conversion). The beauty of MIDI is its simplicity and age; it’s an extremely lightweight format, and nearly everybody uses it.
Programming MIDI in Max means you can go beyond the traditional uses of MIDI as an instrument controller, you can bend the raw bytes of MIDI to whatever purpose you can think of. These days there are all sorts of ways you can transmit MIDI, over networks, wirelessly via Bluetooth, you name it.
There are times when merely getting applications to talk to each other at all is a challenge, but MIDI makes that easy.
Let’s round up the ways you can send MIDI between applications on Windows and Mac.
Windows
Windows does not have inter-application MIDI built into the operating system. Max users have relied on applications such as MIDIYoke for many years for MIDI driver simulation.
The most up to date MIDI routing on Windows these days is the nerds project - they have a free version, a paid version, a network version, and an audio patchbay (à la Soundflower). They support Windows 10, as well.
Find the nerds project here: http://www.nerds.de/
![](https://1cyjknyddcx62agyb002-c74projects.s3.amazonaws.com/files/2015/09/windows-midi-ports-600x585.png)
Macintosh
You can actually create virtual MIDI ports in Max on the fly on a Macintosh, using the creatinport and createoutport messages to the Max application. To create a virtual MIDI port called “myvirtualport”, put the following two messages in message boxes, lock your patch, and click on them:
; #SM createinport myvirtualport CoreMIDI
and
; #SM createoutport myvirtualport CoreMIDI
That’s it. The MIDI ports you create this way will remain active for as long as you have the Max application open.
Working with Logic presents some challenges: Logic will rewire your entire environment whenever the MIDI ports change. My preferred way of creating virtual ports on a Mac is to add IAC MIDI ports - that way, they are always active and will not freak everything out when you restart Max. To get this going, launch the Audio MIDI Setup (it’s located in the Applications/Utilities folder on your Mac), select the MIDI window and double-click the IAC driver to display its Properties Window. From this window, you can enable the driver and add your own named virtual drivers.
![](https://1cyjknyddcx62agyb002-c74projects.s3.amazonaws.com/files/2015/09/IAC-driver-window-566x600.png)
You’re all set now, with unlimited MIDI routing options for old school Max mayhem!
by Andrew Pask on September 29, 2015