Skip to main content

DMX Files

File initialization

While .dmx files are not your traditional binary file like a .wav or .midi file but it does need a few things to be set.

.controller

This is what should be used at the top of all .dmx files, followed by a name, e.g. .controller obey70. This name must exactly match the .alias value in the .dmxd file you compile against — if they don't match, the compiler refuses to build and warns you instead.

.bpm

This sets the bpm for the entire sequence if omitted a BPM of 120 is inferred as per the MIDI 1.0 specification.

.channel

This sets the midi channel for the sequence.

.commands

This tells the interpreter that everything after is your actual sequence. This should always be the last section in version 0.1.0.

Skeleton

Every .dmx file follows this shape:

.controller obey70
.bpm #
.channel #
.commands
COMMANDS...

See the full worked example for a .dmx file paired with a matching .dmxd file.

Builtin Commands

delta

This does exactly what it means. The delta command tells the the dmx lang interpreter to wait X seconds before moving to the next command. In version 0.1.0 this has to be exact to the second.

loop

This is just a way to simplify the reuse of a sequence. Think of it like an internal chase sequence like on the Chauvet DJ controllers. It tells the dmx lang interpreter to duplicate the looped section X times. To signify the end of a looped section you put end

Comments

To make a comments in version 0.1.0 you put a single ; and everything after it is discarded. There are no multiline comments in version 0.1.0