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
imp.dmx.read 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.
imp.dmx.map~ - Map a signal level to a DMX value.
imp.dmx.pixelmap – Map an RGBA jitter matrix to DMX values.
Licensing
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 atdavid@theimpersonalstereo.com. For the full terms of the license, seehttp://creativecommons.org/licenses/by-nc-sa/3.0/.
Download this tool
Tool Files
imp_dmx_V0_5
I followed your install instructions and the objects do not show up.
Thanks
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.
so how far is the "future development ".
imp.dmx.pixelmap would be great!
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.
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?
Hello, I just observed the same thing. Max processor usage goes up from <10% to >100% in activity monitor (on a macbook pro from 2011 with 2 GHz Intel Core i7), just by creating the imp.arnet.controller object, so it makes me hesitate to use it.
Hello,
I am interested in controlling some light devices via artnet on a Mac with a M1 processor.
Is it possible to use imp.dmx or is there any other external ?
thanks in advance,
pc
Author