Skip to main content

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.

caution

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.

caution

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.