I’ve developped a tool for MacOS called « MIDIRouter » which does what the name implies: it’s able to route (and transform) MIDI messages over MIDI interfaces.
Before going deeper into its features, let’s try to understand what I’m trying to achieve.
I have a few multi-effects on my studio (an Ensoniq DP/4, a Digitech Studio Quad v2) and actually I don’t use them that much. They’re behind me on a rack which is not really convenient to update settings and listen to the results, especially for reverbs.
So I ended up buying a Faderfox EC4 (http://faderfox.de/ec4.html) wich is a programmable MIDI remote.
Using the EC4, I’m able to associate any VPot to a given MIDI mesage type: send a program change, a control change (pitch bend, aftertouch, Note On, etc.) and customize displayed text to my needs.
This looked quite promizing, but the EC4 has some limitations:
- When using a ControlChange, displayed value does not necessarily match with the ouput value. Control Changes values can be 7 bits (0 to 127) or 14 bits (0 to 16383) while I can setup displayed value to (0, 127), (0,1000), etc.
- The Ensoniq DP/4 requires proprietary Sysex messages to change its parameters, this is not supported by the EC4
- I plan to use the EC4 for other purposes (control DAW plugins is among them), so I want it to be connected to my Mac and forward some messages to my effects chain
So I needed a software that would be able to:
- Watch an input MIDI device for a certain type of messages (with wildcard support)
- Extract a value (7bits or 14bits) from those messages (a program value from a Program Change, a control value from a Control Change, etc.
- Remap the value to the expected output value range (« my EC4 shows a value in the range [0-100], sends a [0-127] value and I want to then to my effect a [0-64] value »)
- Re-emit a MIDI message to the output interface using eventually another MIDI message type (« transform the EC4 Control Change messages into DP/4 Sysex messages) including the extracted value
This actually does not exist, so I developped MIDIRouter: https://github.com/NothNoth/MIDIRouter
MIDIRouter is free to use for personal use and « quite cheap » for professional use.
In the next article, we’ll be setting up a simple routing: