Basics of DMX Lang
Intro
DMX Lang works on a principal of converting text into MIDI files. Now how do we define what text does in the generated MIDI output? That is where our define files come in. Now just like in the programming language C you need to define what a "command" or function is and does.
How it works
DMX-Lang works on the principal of taking what your controller needs to see in MIDI then with a definition file that defines what text represents in a MIDI event then writes a file that can be played in your conventional DAW or directly. Since this language is very fluid there really isn't a base set of internal commands except for a few logic based ones — see Builtin Commands. This is to keep the language modular and expandable over time. If some new DMX controller comes out and the language doesn't support it yet then you don't have to wait for the compiler to support it. With this thinking, the language can even be used outside of lighting entirely and even be used for things like game or even application development. This can be done since the language is basically an intermediary between text and midi so if the app or game uses midi in a way as long as the DMXD and DMX files are syntactically correct it can be used.
Where to go next
- New to DMX Lang? Start with Installation to get the compiler running.
- Ready to write code? Read DMX Files and DMXD Files for the syntax reference.
- Want to see it all put together? Jump to the full worked example.
Basics of DMX files
.dmx is the file extension used for this compiler but the compiler only checks if the syntax is correct but for the sake of uniformity use .dmx for this language.
Basics of DMXD files
.dmxd files are what defines what MIDI events corelate to what text command. These files can have multiple controller definitions but only one controller can be used on a single .dmx file.
What do I mean when Compiler or Interpreter are used?
In these docs I will use both the words compiler and interpreter. The use of word depends on what portion of the building process the file is parsed in. For interpreter that is when all commands/defines in a .dmx/.dmxd file are being parsed and stored for later use either for converting to midi or for the definition of what note to put when you type blackout.