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.

Add new comment

Default

  • Use [fn]...[/fn] (or <fn>...</fn>) to insert automatically numbered footnotes.
  • You may link to images on this site using a special syntax
  • Web page addresses and e-mail addresses turn into links automatically.
  • To post pieces of code, surround them with <code>...</code> tags. For PHP code, you can use <?php ... ?>, which will also colour it based on syntax.
  • Internal paths in single or double quotes, written as "internal:node/99", for example, are replaced with the appropriate absolute URL or path. Paths to files in single or double quotes, written as "files:somefile.ext", for example, are replaced with the appropriate URL that can be used to download the file.
  • Filtered words will be replaced with the filtered version of the word.
  • Lines and paragraphs break automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <blockquote> <q>

Issue

  • Lines and paragraphs break automatically.
  • To post pieces of code, surround them with <code>...</code> tags. For PHP code, you can use <?php ... ?>, which will also colour it based on syntax.
  • Allowed HTML tags: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>

Drinking Game

  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <img> <p> <br> <pre> <h2> <h3> <h4>
  • Images may be embedded like: [image:node_id align=alignment hspace=n vspace=n border=n size=label width=n height=n nolink=(0|1) class=name style=style-data node=id] Leave off any attributes you don't want.
  • [img_assist|...] tags will be displayed, maybe. Please don't make more of them.

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.
CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
Refresh Type the characters you see in this picture. Type the characters you see in the picture; if you can't read them, submit the form and a new image will be generated. Not case sensitive.  Switch to audio verification.