Mixman DM2

I got a used Mixman DM2 and here's some notes on what I've done with it on day one. This is on Windows XP; you can use the device on earlier versions of Windows, but not later ones. Works fine on OSX and Linux supposedly, but I haven't tried it in either place.

You can get the driver and software download from the Digital Blue drivers page. Along with DM2 to MIDI and LoopBe1 you can turn the DM2 into a MIDI controller. Using PPJoy and GlovePIE you can turn a MIDI controller into one or more virtual joysticks. A bit of configuration is necessary, but it is not too arduous.

Digital Blue used to be the online distribution partner for the Mixman DM2 and they still provide the CD image as a download, though how long that will last is anyone's guess. You'll need the driver from the CD; Mixman only provides updates, which you will also need to use the software and driver on Windows XP.

DM2 to MIDI is a free-as-in-beer tool to read from the DM2's driver and generate MIDI events. The events are generated on the MIDI device of your choice. If you don't want the events to appear to come from a MIDI device you actually have in your system, you'll want to use a virtual MIDI device; I successfully used LoopBe1. For older versions of Windows you can use MIDI Yoke.

PPJoy is a parallel port joystick driver, but it also lets you create virtual joysticks. GlovePIE is a tool for turning input events into other kinds of events, including input events; I used it to turn MIDI events into Joystick events. The events are taken from the virtual MIDI device created with LoopBe1 and sent to the virtual joystick device created with PPJoy. If you want, you can also mix your existing input devices with the DM2, by editing the script.

Aside from creating a script for GlovePIE, which I approached by reading a friendly forum post, all you need do is configure each control on the DM2 to output as a MIDI "controller" via DM2 to MIDI. The controllers typically provide 8-bit values of 0 to 127, and we will use the defaults. The only non-default setting is for the joystick Y axis, where you want to reverse the minimum and maximum such that the minimum is 127 and the maximum is 0. Otherwise this axis will end up reversed. You can then save your DM2 to MIDI settings in a file for later use.

The GlovePIE script can be tricky to understand, so I will simply include it here:

PPJoy1.Analog0 = ((midi3.cc7)*2) -1 // x axis
PPJoy1.Analog1 = ((midi3.cc1)*2) -1 // y axis
PPJoy1.Analog2 = ((midi3.cc12)*2) -1 // left rotary
PPJoy1.Analog3 = ((midi3.cc13)*2) -1 // right rotary
PPJoy1.Analog4 = ((midi3.cc10)*2) -1 // slider

PPJoy1.Digital0 = midi3.cc32 // button 1
PPJoy1.Digital1 = midi3.cc30 // button 2
PPJoy1.Digital2 = midi3.cc31 // button 3
PPJoy1.Digital3 = midi3.cc14 // button 4
PPJoy1.Digital4 = midi3.cc15 // button 5
PPJoy1.Digital5 = midi3.cc26 // button 6
PPJoy1.Digital6 = midi3.cc27 // button 7
PPJoy1.Digital7 = midi3.cc28 // button 8
PPJoy1.Digital8 = midi3.cc29 // button 9
PPJoy1.Digital9 = midi3.cc23 // button 10
PPJoy1.Digital10 = midi3.cc24 // button 11
PPJoy1.Digital11 = midi3.cc25 // button 12

PPJoy1.Digital12 = midi3.cc64 // button 13, left hand
PPJoy1.Digital13 = midi3.cc65 // button 14
PPJoy1.Digital14 = midi3.cc66 // button 15
PPJoy1.Digital15 = midi3.cc67 // button 16
PPJoy1.Digital12 = midi3.cc68 // button 17
PPJoy1.Digital13 = midi3.cc69 // button 18
PPJoy1.Digital14 = midi3.cc70 // button 19
PPJoy1.Digital15 = midi3.cc71 // button 20

PPJoy1.Digital16 = midi3.cc72 // button 21, right hand
PPJoy1.Digital17 = midi3.cc73 // button 22
PPJoy1.Digital18 = midi3.cc74 // button 23
PPJoy1.Digital19 = midi3.cc75 // button 24
PPJoy1.Digital20 = midi3.cc76 // button 25
PPJoy1.Digital21 = midi3.cc77 // button 26
PPJoy1.Digital22 = midi3.cc78 // button 27
PPJoy1.Digital23 = midi3.cc79 // button 28

// debug = [ PPJoy1.Analog0, PPJoy1.Analog1 ]

I'm not sure all these buttons actually work; I think that it will be necessary to create another device and map some of the buttons to that device in order to pick them all up. PPJoy is only showing 16 buttons for my virtual joystick device.

In summary, it is moderately complicated but completely possible to turn the Mixman DM2 into a game controller. It's even easier to turn it into a MIDI device so as to control other music programs; it is a somewhat popular input device for use with Traktor. The software that comes with the DM2 is actually fairly amusing, though, so why not give it a whirl? (It doesn't work without the device, so don't bother downloading it if you don't have one.) Right now you can pick them up used for $30-60, usually with the CD.