imp.dmx - DMX for Max.

    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.

    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 For the full terms of the license, see
    Tool Files
    • imp_dmx_V0_5

    • Jun 01 2012 | 2:33 pm
      I followed your install instructions and the objects do not show up. Thanks
    • Aug 29 2013 | 8:39 pm
      Wow, please work on this further, this is amazing, the abilities present and those you are working on are beyond amazing. The ability to read RGBA and then translate into DMX values is a game cchanger. keep up the solid work.
    • Mar 31 2015 | 9:57 am
      so how far is the "future development ".
      imp.dmx.pixelmap would be great!
    • Aug 04 2015 | 2:26 pm
      This was part of my inspiration for creating Afterglow, my own open-source lighting control environment, and afterglow-max, which hosts and controls it within Max. Check it out if you are interested in working with light shows on a higher level of abstraction.
    • Jan 18 2017 | 10:24 am
      Hey David,
      I'm seeing high CPU use by just opening the imp.artnet.controller help patch. 15% on high end quad-core i7 CPU. Is this expected?