
Controller Definition files
A controller in VirtualDJ 6 and 7 is defined by two files, a "definition" file and a "mapper" file.
The definition file gives a human-readable name to every MIDI code or HID zone.
The mapper file associates each name with an action in VDJscript.
Many controllers already have a definition embedded inside VirtualDJ.
If you have a controller that is not recognized natively by VirtualDJ, or if you are a manufacturer working on a new controller, it is very easy to create a new definition file for this controller.
The definition files are standard XML files, and must be installed in the MyDocuments/VirtualDJ/Devices/ folder on PC or /users/YOURNAME/Documents/VirtualDJ/Devices on Mac.
The syntax of the definition file depends on the interface used (HID or MIDI):
See also:
- Differences between HID and MIDI protocols
- How to implement a HID firmware
The mapping files are also standard XML files, and must be installed in the MyDocuments/VirtualDJ/Mappers/ folder on PC or /users/YOURNAME/Documents/VirtualDJ/Mappers/ on Mac.
Mapping files for the built-in (Native supported) controllers will only appear in this folder if they have been modified by the user via CONFIG -> Mappers in VirtualDJ.
The root element of the xml must be <mapper>, with these properties:
- device: unique string that identifies the controller, as used in the definition
- author: (optional) name of the author of this xml file
- description: (optional) alternative name of the controller to be shown in CONFIG -> Mappers
- version: the minimum version of VirtualDJ that the mapper is designed for (E.g: 702 = 7.0.2)
- date: the date when the mapper was created or last updated
- priority: (optional) gives the mapping a higher or lower priority over another mapping for the same controller, e.g: -1 is higher priority, 1 is lower
Each mapped button, knob, slider, etc. is defined by a <map> child item of the <mapper> element with the following properties:
- value: name of the button, knob, slider, etc. to map
- action: VDJscript action to perform when the button is pressed, knob is moved, etc.
Example:
<?xml version="1.0" encoding="UTF-8"?>
<mapper device="MYCONTROLLER" author="Me" description="My Controller" version="702" date="14/03/2011">
<map value="CUE" action="cue_stop" />
<map value="PLAY" action="play_pause" />
<map value="JOG" action="jogwheel" />
<map value="PITCH" action="pitch_slider" />
</mapper>
<mapper device="MYCONTROLLER" author="Me" description="My Controller" version="702" date="14/03/2011">
<map value="CUE" action="cue_stop" />
<map value="PLAY" action="play_pause" />
<map value="JOG" action="jogwheel" />
<map value="PITCH" action="pitch_slider" />
</mapper>
Wiki HOME