The WHET DJ Language Compiler for Musical Composition is a project by William Falk-Wallace, Hila Gutfreund, Emily Lemonier, and Thomas Elling for Columbia University's COMSW4115: Programming Languages and Translators Class in Fall 2013, taught by Stephen Edwards.
DJ is a procedural scripting language which provides a programming paradigm for algorithmic music production. Through its utilization of themes and motifs, music is naturally repetitive and often dynamic. DJ provides control-flow mechanisms, including for and loop functions, which simplify the development of structured iterative music. The DJ Language also makes use of conditional logic and supports standard MIDI sound banks to facilitate the production of deeply textured musical compositions. The language also abstracts away the intricacies and limitations of the MIDI specification, including channeling, patch-maps and instrumentation, while retaining conventions familiar to programmers of Java as well as MIDI, allowing the artist to focus on her or his work: composing songs.
For DJ language documentation, installation, and compiler usage instructions please see documentation here.