Learn tips on using MIDI translators to convert and re-route MIDI messages between your DJ software and MIDI controller.


Author Ean Golden created a preset file for Charlie Roberts' program, midiStroke, that makes live looping with a single button possible in Serato Scratch Live. Click here to download the Mac-only midiStroke preset file and instructions.

Sometimes it seems just about any product you can imagine is out there on the market. Lately, we have seen this trickle into the digital-DJ world, where you can do nearly anything — except your laundry — with modern software. But DJs always want more. The good news is that there are many ways you can take advanced control over your DJ software, enabling possibilities even the programmers may not have thought of. But a word of caution: This stuff is not for the plug-and-play fainthearted. Patience, creativity and out-of-the-box thinking are all required. On the positive side, though, if you start to incorporate these techniques into your rig, you will be in very good company. Artists like Kid Beyond, Jamie Lidell and a host of others are using these concepts in their groundbreaking live shows. I am referring to MIDI translators — intermediary programs that sit between software and MIDI controllers, converting a simple click into a multitude of MIDI and data controls. These handy plug-ins can make performing with your computer a more streamlined undertaking.


There are many translators out there, but here are a few of the most commonly used: If you're on the Windows platform, Bome MIDI Translator is a powerful tool (www.bome.com), and controlAid is a similar program on Mac that offers several Ableton Live-targeted features. Both of these programs convert and reroute MIDI messages in a variety of ways. The tricky part is that some also convert MIDI into keystrokes, which allows you to do things that normally require the mouse or keyboard. A simple program for Mac that just converts MIDI to keystrokes is appropriately called midiStroke. Both midiStroke and controlAid can be downloaded for free at www.charlie-roberts.com.

Another program for Mac is SubtleSoft MidiPipe (http://homepage.mac.com/nicowald/SubtleSoft), a nicely laid-out program that does not offer MIDI to keystroke but has powerful tools for mangling MIDI messages. MidiPipe is a logical program that sends a MIDI signal along a digital pipeline. The pipe always starts off with a MIDI In module where you define which MIDI input to effect. Any number of changes, duplication and filters then go between that input and the MIDI Out module — your new virtual MIDI output. That virtual bus will now show up as an available MIDI source inside your DJ software. Many Serato Scratch Live users have been using Bone and midiStroke translators in the past year to connect their M-Audio Trigger Fingers and other MPC-like controllers to Scratch Live. But that's old news now; by the time you read this, Serato will have released version 1.8, which supports direct MIDI input. So instead, let's look at a few specific ways that you can use translators to streamline advanced techniques.


Scratch Live has a microphone input that supports internal recording, which can be saved and loaded into a track for playback and scratching. Taking it a step further, I wanted to see if I could make Serato perform Kid Beyond-style live looping with a single button. To accomplish that, you can use midiStroke to split a single MIDI note into two different actions. A MIDI button can send its range of off/on values in two different ways, momentary and toggle. Momentary sends a 0 value when the button is pushed in and a 127 when it is released. Toggle sends 0 the first time the button is pushed and 127 the following time. You need to program your MIDI device depending on how you want your loop button to behave. In toggle mode, one click will start the recording, and a second click will end it by loading the recording into a deck. With momentary, that occurs as soon as the button is released. But what does the program do with that data?

On remixmag.com you will find a preset file for midiStroke that will save you the time of programming this example. However, here is a quick overview so you can apply the idea to other applications: midiStroke is looking for a specific MIDI channel and Control Change number twice. Any time it receives a 0 or 127 value, the values get converted into a different keystroke. The 0 value gets assigned to CTRL + N (start microphone recording). The 127 then triggers Shift + Right arrow, which ends the recording and loads it into a deck. Since looping works only in relative and internal mode, the 0 value is also programmed to send out F1 (switching the program into internal mode). You can apply this logic to as many commands as you want and also duplicate the entire thing for the left and right decks.


A popular application for MIDI translators is Ableton Live. There are so many things you have control over that it helps to group them into a logical event sequences. For example, the translator commands of Kid Beyond's Abeton-powered looping rig are so condensed and streamlined that he is able to control his show through foot pedals without ever touching the computer.

The basic premise is a more complicated extension of the Serato example. MIDI commands are duplicated and converted into keystroke and MIDI messages. These commands each trigger a series of logical actions that result in a simple, effective stage show. Live looping, for example, is commonly set up in the following manner: A single button is assigned to each loop slot. The button can start and stop not only the recording of that loop slot, but it can start and stop the other slots as well. So you can easily create many layers of on-the-fly loops without ever skipping a beat — that is, thanks to the geeky-sounding MIDI translators, proof that a little work behind the scenes can make for very cool shows onstage.

Download the preset file for midiStroke atremixmag.com.