DMXD Files
In a DMXD file you can define a list of commands you want to use to control your controller with. The limitation of version 0.1.0 is that there is only one controller per .dmxd and .dmx file.
Sections:
DMXD files have 2 sections you need to know about in 0.1.0
.alias
This tells the interpreter to match the dmx controller section to this file.
.defines
This is where you define all your commands and what it does.
Types of commands
There are two types of commands you can use in your DMXD file those are exact and range
Exact
Exact command definitions are exactly that command:midi_event = note. So for this its great for things like toggling blackout or chases.
Range
Range command definitions allow you to define the starting midi note and then have it stop after a specific value. This is great for controllers that let you change scenes with midi so you don't need to define every bank and scene define but just the bank then give a range for the interpreter. To do this you do command x/#:midi_event = note. The space after the command name is not needed. A command define s1x/20:midi_on = 00 is perfectly fine just note you will need to type s120 for the command to do midi note 20.
There's a known bug in the current 0.1.0 compiler build affecting this syntax — see the Roadmap for details.
Values
note
The value on the right of = is a plain decimal MIDI note number (0-127), not hexadecimal — s1x/20:midi_on = 00 means decimal 0, and a slot resolves to note + (slot - 1).
midi_event
This picks which kind of MIDI note event the command represents: midi_on, midi_off, or clear.
As of 0.1.0 the compiler doesn't yet act differently based on which midi_event you write — see the Roadmap. Treat midi_event as reserved for now; pick the value that best documents your intent until this is implemented.