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