A collection of Max/MSP/Jitter abstractions for dealing with DMX data.

imp.dmx is a cross-platform collection of Max/MSP/Jitter abstractions for dealing with DMX data in various forms. It focuses around the use of jitter matrices to store data, which the objects then read and write to. The aim is to provide the bridge between your patch and whatever object or method you use to output DMX from Max. The abstractions use native Max objects only, excepting the Art-Net patches which use some custom java networking objects, included in the distribution package.

All abstractions have fullly-featured help patchers and a comprehensive manual is included, along with an example patch showing configurations for popular DMX hardware configurations.


imp.dmx Version 0.5 – OS X and Windows

The download is provided as a Max package. To install, unzip the archive, locate the “Max/Packages” folder in Documents (OS X) or My Documents (Windows), and copy the imp.dmx folder into it.

Abstractions Included

  • reads a list of consecutive DMX values out from a matrix.
  • imp.dmx.write writes a list of consecutive DMX values into a matrix.
  • imp.dmx.get gets the values of specified channels from a matrix.
  • imp.dmx.put puts specified values into specified channels in a matrix.
  • imp.dmx.prefix prefixes channel addresses to a list of consecutive DMX values to create a prefixed list.
  • imp.dmx.defix creates a list of consecutive DMX values from multiple lists of channel/value pairs (prefixed lists).
  • imp.dmx.artnetin broadcasts an inputted list of consecutive DMX values over IP using the Art-Net protocol.
  • imp.dmx.artnetout receives Art-Net broadcast DMX and outputs it as a list of consecutive DMX values.
  • imp.dmx.8to16 converts a single 16-bit int into two 8-bit ints, the MSB and LSB.
  • imp.dmx.16to8 converts two 8-bit ints into a 16-bit int, using them as the MSB and LSB.
  • imp.dmx.rgbcmy converts RGB values to CMY or vice versa.

Future Development

The roster of abstractions included in imp.dmx will increase in future versions. The following is a list of abstractions likely to be included in the next version:

  • imp.dmx.test – Quick, general purpose DMX testing functions.
  • imp.dmx.blackout – An easy switchable blackout function.
  • imp.dmx.midiin – Convert MIDI CC values to DMX channel values.
  • imp.dmx.midiout – Convert DMX channel values to MIDI CC values.
  • imp.dmx.oscin – Convert OSC information to DMX channel values.
  • imp.dmx.oscout – Convert DMX channel values to OSC information.
  • – Map a signal level to a DMX value.
  • imp.dmx.pixelmap – Map an RGBA jitter matrix to DMX values.


Everything included in this package is released under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported license. This means that you are free to share and adapt the package, however you must credit the original work to ‘David Butler / The Impersonal Stereo’, and distribute the resulting adaptation under the same or a similar license. You may not use this work for commercial purposes (any venture where the primary goal is profit) without permission. If you wish to do so, please contact me at
For the full terms of the license, see